Jump to content
IGNORED

OT - JavaScript


Recommended Posts

It's certainly possible to have the jzIntv C code translated to Javascript with tools such as llvm-gcc and Emscripten. Also, I believe the SDL functions are already available in this environment. I'm almost certain that it should run at a decent speed on a recent browser (and a not too old PC). I don't have a precise idea on how much manual tweaking that would require, though.

 

As a side note, I've written a native Javascript Intellivision emulator which was originally called jsInty. I'll probably have to look for a different name to avoid confusion. It's not quite ready for prime-time. Most games are already running correctly, but it's lacking things like Intellicart/CC3 support. I've recently re-written the audio part with the AudioContext interface instead of my first attempt with the Audio Data API which is now deprecated.

  • Like 1
Link to comment
Share on other sites

It's certainly possible to have the jzIntv C code translated to Javascript with tools such as llvm-gcc and Emscripten. Also, I believe the SDL functions are already available in this environment. I'm almost certain that it should run at a decent speed on a recent browser (and a not too old PC). I don't have a precise idea on how much manual tweaking that would require, though.

 

I came here to say almost exactly this, but you beat me to it. In my copious free time I'd like to try it. I probably need a faster PC at this point though, as I'm rocking a 6 year old Linux box at the moment.

Link to comment
Share on other sites

 

Your awesomeness is legendary!

 

The reason this jumped into my head at all was because GroovyBee posted a .ROM recently and I only had an iPad around, so I RDP'd to a Windows PC so I could run jzIntv (a "First World" problem if there ever was one). Doing JavaScript (with a newish fast computer/device) makes it easier to access Inty stuff all around.

 

On a tangent, archive.org is doing a lot of work with preserving old computers and making their content available with JavaScript runtimes, so having something like Goat Nom preserved for all posterity would be an awesome thing. :)

 

 

[snip]

 

a side note, I've written a native Javascript Intellivision emulator which was originally called jsInty. I'll probably have to look for a different name to avoid confusion. It's not quite ready for prime-time. Most games are already running correctly, but it's lacking things like Intellicart/CC3 support. I've recently re-written the audio part with the AudioContext interface instead of my first attempt with the Audio Data API which is now deprecated.

Link to comment
Share on other sites

@Oscar and everyone interested in that stuff:

 

I've just set up a quick and dirty test version where you can play Stonix (full game) with the copyright-free 'miniexec' and 'minigrom'.

 

Here it is : http://beta.intygo.com/

 

intygo.png

 

Just press the 'play' icon on the main window to start the game. As an example, I've included the 'monitor' and 'GRAM watch' debugging windows.

 

I recommend to turn Firebug off on Firefox if you have it installed: it is significantly slowing down the emulator. That may be true for other add-ons and other browsers. Any feedback about performance and browser compatibility is welcome. It's working best on Chrome on my box.

 

As the URL suggests, this is just some beta stuff. This is especially true for the audio output which may sound crappy as hell if / when it goes out of sync. You should not have this problem with Internet Explorer : last time I checked, it was not supporting the AudioContext interface at all (it may have changed since then -- I don't know).

 

@First Spear: IntyGO is supposed to become a web portal where you can play, upload and share Intellivision ROMs, either with everyone or just a private group. You'll also have the possibility to embed the emulator wherever you want -- just like a YouTube player -- as long as the ROMs are public ones. I have many other plans for it, but these are the main points of the story.

 

Please do not share this URL outside this forum for now. This beta version is far too unstable.

 

Arnauld

 

Edited by Arnauld
  • Like 3
Link to comment
Share on other sites

How is this useful, without very blatant copyright infringement (the EXEC and GROM at the very least)?

 

Can homebrew that is freely available, like say Christmas Carol, run in jzintv without either of those ROMs?

 

 

/Devil's Advocate

 

Yes. The Christmas Carol free ROM that I distribute does not use the EXEC or GROM binaries from Intellivision Productions, Inc. It uses the "miniexec" and "minigrom" reverse-engineered by Joe Z. that use none of their intellectual property.

 

The "miniexec" is merely a "stub" to let the Intellivision run normally. Christmas Carol does not invoke any of the EXEC so it works fine.

 

-dZ.

Link to comment
Share on other sites

 

Yes. The Christmas Carol free ROM that I distribute does not use the EXEC or GROM binaries from Intellivision Productions, Inc. It uses the "miniexec" and "minigrom" reverse-engineered by Joe Z. that use none of their intellectual property.

 

The "miniexec" is merely a "stub" to let the Intellivision run normally. Christmas Carol does not invoke any of the EXEC so it works fine.

 

Oh! Very cool! I've never seen mention of these before, just the usual "you must find your own EXEC.bin and GROM.bin" comments. I'm pretty sure none of my IntyBASIC stuff uses anything from the EXEC either, but I always assumed the emulator wouldn't run without it. Someone should bundle all of the 100% free ROMs together with an emulator, if it hasn't been done already.

Link to comment
Share on other sites

Wow! I'm impressed. :) :thumbsup:

 

BTW, IntyBASIC doesn't require the EXEC to work :) so any games created with it would be able to run in this emulator.

 

In a MacBook Pro with Firefox 39 it runs rather smoothly, the sound breaks slightly making a werrrrp effect.

Link to comment
Share on other sites

 

BTW, IntyBASIC doesn't require the EXEC to work :) so any games created with it would be able to run in this emulator.

 

In a MacBook Pro with Firefox 39 it runs rather smoothly, the sound breaks slightly making a werrrrp effect.

 

Very cool to hear. I think this could open up a whole new audience to Intellivision homebrew. It's a niche we can carve out all our own, because the old commercial software can't legally run this way. I suppose the 3rd party stuff doesn't use the EXEC either, however you'd still have to distribute Imagic etc ROMs.

  • Like 1
Link to comment
Share on other sites

How is this useful, without very blatant copyright infringement (the EXEC and GROM at the very least)?

This is has been answered by DZ-Jay already. So, yes: it is primarily homebrew oriented. At least for the public part.

 

However, once you've created your account and uploaded your own images of EXEC.BIN, GROM.BIN and old commercial ROMs, you'll be able to play them. Technically, the server will store a single copy of a duplicated file and just associate it in the DB with all users who uploaded it. You can think of it like a reverse emuparadise. ^^ I think this is legally OK.

Edited by Arnauld
Link to comment
Share on other sites

 

Oh! Very cool! I've never seen mention of these before, just the usual "you must find your own EXEC.bin and GROM.bin" comments. I'm pretty sure none of my IntyBASIC stuff uses anything from the EXEC either, but I always assumed the emulator wouldn't run without it. Someone should bundle all of the 100% free ROMs together with an emulator, if it hasn't been done already.

 

Yep, that was my point in making a "MiniEXEC" and "MiniGROM."

 

The "MiniGROM" contains a generic 8-bit font (and depending on version may or may not contain the graphic characters). The MiniEXEC contains minimal code to boot games that put their start code after the title string, and a minimal title screen for games that have a title string, but wait for a controller input to jump to the game. And of course it includes the necessary ISR hooks. Those are practically baked into the hardware.

 

I didn't put much more effort into either, on the basis that I wouldn't know what mattered until they saw more use. For most games that never touch the EXEC (aside from what's absolutely necessary), and only rely on basic alphanumerics (and maybe graphic shapes) from the GROM, I figured what I did have was enough for most things.

 

If either needs to be enhanced, I'm open.

Edited by intvnut
Link to comment
Share on other sites

Very cool to hear. I think this could open up a whole new audience to Intellivision homebrew. It's a niche we can carve out all our own, because the old commercial software can't legally run this way. I suppose the 3rd party stuff doesn't use the EXEC either, however you'd still have to distribute Imagic etc ROMs.

 

Well, despite claims that 3rd party programs don't use the EXEC and GROM, I haven't found it to be entirely true. I don't have a list of offenders offhand.

 

I do remember Beamrider used at least one GROM card from the graphic set for a vertical bar. (I remember as I had mapped the GROM at that point to the CGA font, and the middle of the screen was filled with lower-case 'alpha' characters.)

 

I also vaguely remember another game called the EXEC multiply routine. But that may have been a homebrew. I really don't remember now. That's a decade or more ago.

Link to comment
Share on other sites

I'm thinking in loud voice that I could reuse a free Javascript editor, make a Javascript IntyBASIC compiler and then everything would be online :)

I suppose the compiler could be kept on the server side, since you probably want to send and store both the source code and the final binary anyway.

  • Like 1
Link to comment
Share on other sites

I suppose the compiler could be kept on the server side, since you probably want to send and store both the source code and the final binary anyway.

 

Doesn't that open you up to all sorts of nefarious security attacks? AS1600 certainly isn't sandboxed in any meaningful way, and IntyBASIC's ASM keyword feeds through arbitrary text to AS1600.

Link to comment
Share on other sites

You guys are on a tangent that literally makes no sense to me. Are our PCs so underpowered that we feel the need to compile on large, centralized machines these days? :D

 

I gather that nanochess's post was tongue-in-cheek, but just in case it wasn't - there are better things to spend y'alls time on :P

  • Like 1
Link to comment
Share on other sites

You guys are on a tangent that literally makes no sense to me. Are our PCs so underpowered that we feel the need to compile on large, centralized machines these days? :D

 

I gather that nanochess's post was tongue-in-cheek, but just in case it wasn't - there are better things to spend y'alls time on :P

I was thinking the same thing. It sounds like a neat technical challenge, but I really do not see myself relying on someone else's resources to keep and run my games. It's bad enough when large corporations backed with renowned brands and pools of money shutdown a licensing or hosting server. :/

Link to comment
Share on other sites

I was thinking the same thing. It sounds like a neat technical challenge, but I really do not see myself relying on someone else's resources to keep and run my games. It's bad enough when large corporations backed with renowned brands and pools of money shutdown a licensing or hosting server. :/

i dont get it either.
Link to comment
Share on other sites

I wasn't thinking in saving programs in server.

 

But compiling in the user computer running in the browser and passing the binary directly to the emulator without passing through other computer.

my problem isnt that you accomplished this. My problem is i just dont understand the need to have it running in javascript. Is there a reason why someone would need to do this?
Link to comment
Share on other sites

my problem isnt that you accomplished this. My problem is i just dont understand the need to have it running in javascript. Is there a reason why someone would need to do this?

 

I guess for that group of people who can't figure out how to get an emulator running on their local machine, but are able to to write games for 1970s hardware.

 

I say that sarcastically, but it's always possible these people exist :) I worked with guys who were geniuses on old mainframes, but couldn't find the Control Panel in Windows.

Link to comment
Share on other sites

@Oscar and everyone interested in that stuff:

 

I've just set up a quick and dirty test version where you can play Stonix (full game) with the copyright-free 'miniexec' and 'minigrom'.

 

Here it is : http://beta.intygo.com/

 

intygo.png

 

Just press the 'play' icon on the main window to start the game. As an example, I've included the 'monitor' and 'GRAM watch' debugging windows.

 

I recommend to turn Firebug off on Firefox if you have it installed: it is significantly slowing down the emulator. That may be true for other add-ons and other browsers. Any feedback about performance and browser compatibility is welcome. It's working best on Chrome on my box.

 

As the URL suggests, this is just some beta stuff. This is especially true for the audio output which may sound crappy as hell if / when it goes out of sync. You should not have this problem with Internet Explorer : last time I checked, it was not supporting the AudioContext interface at all (it may have changed since then -- I don't know).

 

@First Spear: IntyGO is supposed to become a web portal where you can play, upload and share Intellivision ROMs, either with everyone or just a private group. You'll also have the possibility to embed the emulator wherever you want -- just like a YouTube player -- as long as the ROMs are public ones. I have many other plans for it, but these are the main points of the story.

 

Please do not share this URL outside this forum for now. This beta version is far too unstable.

 

Arnauld

 

I really like the Live GRAM viewer.

Link to comment
Share on other sites

I wasn't thinking in saving programs in server.

 

But compiling in the user computer running in the browser and passing the binary directly to the emulator without passing through other computer.

 

I was more replying to Arnauld's comment:

 

I suppose the compiler could be kept on the server side, since you probably want to send and store both the source code and the final binary anyway.

 

That makes no sense to me. Make it all run in the browser, which means the compiler runs in the browser, not the server.

 

 

 

I guess for that group of people who can't figure out how to get an emulator running on their local machine, but are able to to write games for 1970s hardware.

 

We have seen tech support requests along the lines of "IntyBASIC doesn't open, it just flashes a window" and all levels of aversion to anything involving a command prompt...

 

Just because many of us were tempered in the fires of command lines, text mode, debug monitors, etc... doesn't mean all of us were. That said, that fiery landscape is the only realm I truly understand. :) I need to rely on the rest of y'all to help bridge it into the gooey GUI world. ;)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...