Jump to content
IGNORED

JS7800: Atari 7800 JavaScript Emulator


raz0red

Recommended Posts

A new version of JS7800 has been posted:

 

https://raz0red.github.io/js7800

 

In addition to some minor bug fixes, the following updates have been made:

 

1.) The addition of @Trebor's palettes. You can select from his "Cool, Warm, and Dark" palettes in "Display" settings. The palettes are available in two variations, "Dark and Light" based on the brightness level of the palettes. A big thanks to @Trebor for contributing his palettes and helping me get them integrated.

 

2.) A new "Fullscreen" scaling option in "Display" settings. This allows for enabling integer vertical scaling (versus "Fill screen"). Integer scaling ensures that no fractional pixels (vertically) are present when in full screen mode. Horizontal scaling in fullscreen is still controlled via the "Aspect ratio" option. A 1:1 "Aspect ratio" combined with "Fullscreen" integer scaling will ensure that no fractional pixels are present when in fullscreen mode.  

 

3.) Added "Super Cobra", "Color Selector Demo", and "Worm!" to the default cartridge list. Updated "Dragon's Cache" to the latest version.

 

4.) Added a new "Global Leaderboard" page. 

 

https://raz0red.github.io/js7800/leaderboard/

 

The leaderboard page allows for viewing the current high scores for games that are compatible with JS7800 global high scores. This simplifies viewing high scores for games, as previously they could only be viewed by playing the game and waiting for the scores to appear. In addition to the current high scores, this page also displays players with top points obtained across all games (1-5 points per mode based on position). The leaderboard also attempts to determine what the top 5 most competitive games are at any moment. There is also a panel that shows the top players for the current set of "most competitive" games. 

 

JS7800 also provides a link to the "Global Leaderboard" via an icon that looks like a "medal" in the command bar. If the current game supports global high scores, the global leaderboard will be launched contextually. 

 

It is also possible to launch JS7800 contextually from the leaderboard for a subset of games. A small controller will appear in the bottom right of the selection header if JS7800 can be launched for the current game.

 

Thanks,

Chris 

Edited by raz0red
  • Like 6
  • Thanks 2
Link to comment
Share on other sites

14 minutes ago, gambler172 said:

Hi Chris

great idea...  however on my old laptop,it works not really good.But on my friends high end PC,it looks great.

 

Hi-

 

Thanks a lot for the report. Unfortunately, at this point it does require a newer PC. I do plan on adding some settings that would allow for better support across all hardware (frame skipping, etc.). It would be great if you could help test those changes once they become available.

 

Thanks,

Chris

  • Like 3
Link to comment
Share on other sites

43 minutes ago, raz0red said:

 

Hi-

 

Thanks a lot for the report. Unfortunately, at this point it does require a newer PC. I do plan on adding some settings that would allow for better support across all hardware (frame skipping, etc.). It would be great if you could help test those changes once they become available.

 

Thanks,

Chris

Hi Chris

it is a pleasure for me ?

A downloadable version would be great too.....if this is doable.

greetings Walter

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

A new version of JS7800 has been posted:

 

https://raz0red.github.io/js7800

 

1.) The XM implementation has been updated to be consistent with the released hardware. All the credit for this feature goes to @RevEng who provided the source code to base the implementation on and answered all of my annoying questions. There is an option in the "Advanced" tab of the settings dialog that can be used to control when XM is enabled. By default, it is enabled based on the value in the cartridge header or the value in the internal JS7800 cartridge database. It can also be set to always enabled or disabled. 

 

2.) Initial version of the Yamaha (YM2151) sound chip. There is a fairly high likelihood that several defects exist with this initial implementation.

 

3.) Added ability to disable vertical sync ("Advanced" tab of settings dialog).

 

4.) Added Zanac and Side-Crawler's Dance Yamaha music demos to the default cartridge list. Added an XM memory test developed by @RevEng to the default cartridge list.

 

Thanks,

Chris

 

  • Like 6
Link to comment
Share on other sites

10 hours ago, raz0red said:

All the credit for this feature goes to @RevEng who provided the source code to base the implementation on and answered all of my annoying questions.

You are entirely too humble and kind, Chris. Having a reference implementation and a brain to pick is helpful, for sure, but you deserve 99% of the credit for the feature. (which in my estimation is 100% kick-ass, along with the rest of JS7800!)

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

16 minutes ago, gambler172 said:

How about a downloadable version?

Hi Walter-

 

The current builds will run locally (local files via the browser), but there are some limitations. I will look into what it would take to disable those features that require internet access when running locally. 

 

Thanks,

Chris

Link to comment
Share on other sites

A minor update to JS7800 has been posted:

 

https://raz0red.github.io/js7800

 

1.) By default, high scores for games that are not supported by the Global High Score server will be stored locally. This behavior can be disabled in the settings dialog ("High Scores" tab). Thanks a lot to @RevEng for the suggestion!

 

2.) Fixed a defect where Global High Scores were not supported when local storage was disabled in the browser (cookies disabled, etc.).

 

Thanks,

Chris

  • Like 4
Link to comment
Share on other sites

The ROM authors can provide links so their latest releases will load in JS7800. If they haven't done that, I'd encourage them to do so. If they won't do it, you can open the files in JS7800 yourself...

  • if you've downloaded the a78 file, just click on the folder icon at the bottom of the window (Select Local File)
  • If you have an AA a78 download link, just right-click and copy the link. Then in JS7800 click on the cloud icon at the bottom of the window (Select Remote File) and paste.

My 2 cents is asking Chris to keep updating all of the active WIPs, each and every release, isn't a great use of his time. :)

 

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

18 minutes ago, RevEng said:

The ROM authors can provide links so their latest releases will load in JS7800. If they haven't done that, I'd encourage them to do so. If they won't do it, you can open the files in JS7800 yourself...

  • if you've downloaded the a78 file, just click on the folder icon at the bottom of the window (Select Local File)
  • If you have an AA a78 download link, just right-click and copy the link. Then in JS7800 click on the cloud icon at the bottom of the window (Select Remote File) and paste.

My 2 cents is asking Chris to keep updating all of the active WIPs, each and every release, isn't a great use of his time. :)

 

Thanks for the info. I did not know how that works. It is a quick way to see everything made for the 7800. Well hoping one day it will have everything...

Tubes, bloc drop, I never played much before had lots of promise. Cool to see some YM demos to get an idea what a XM would be like.

Your Serpentine game is fun to play. 

Lots of cool 7800 stuff in the works. 

I am most excited for Track and Field tbh with voice etc. It looks so impressive. 

 

  • Like 1
Link to comment
Share on other sites

1 hour ago, RevEng said:

The ROM authors can provide links so their latest releases will load in JS7800. If they haven't done that, I'd encourage them to do so. If they won't do it, you can open the files in JS7800 yourself...

  • if you've downloaded the a78 file, just click on the folder icon at the bottom of the window (Select Local File)
  • If you have an AA a78 download link, just right-click and copy the link. Then in JS7800 click on the cloud icon at the bottom of the window (Select Remote File) and paste.

My 2 cents is asking Chris to keep updating all of the active WIPs, each and every release, isn't a great use of his time. :)

 

That is definitely my fault. I need to get around to updating to the newest releases. 

 

A couple things worth noting.

 

You can drag and drop links directly onto JS7800. So, you don't have to necessarily copy and paste the links (although that will work as well):

 

draglink.gif

 

The other thing to note is that the default list of ROMs that are displayed come from an external "cartridge list". You can actually create (and share) your own cartridge list and specify it via a request parameter (the same way you can specify a default cartridge). 

 

I put together a tutorial that walks through the process of creating and sharing a cartridge list here.

 

Hope this helps,

Chris

 

  • Like 4
  • Thanks 1
Link to comment
Share on other sites

  • 2 months later...

A minor update to JS7800 has been posted:

 

https://raz0red.github.io/js7800

 

1.) Added support for undocumented ASR and ANC opcodes (fixes graphical glitches with "Popeye 7800: Mini-game"). 

Thanks a lot to @RevEng for making me aware of the issue and the missing opcodes.

 

2.) Added global high score support for the latest version of "Pac-Man XM".

 

3.)  Added "Popeye 7800: Mini-game" and "Knight Guy: Castle Days" to the default list of in-development games.

Thanks a lot to @darryl1970 and @vhzc for granting permission.

 

4.) Updated to the latest versions of "Dragon's Cache", "Dragon's Descent", "GoSub", and "Spire of the Ancients".

 

Note: Updating to the latest version of "Dragon's Descent" required the global high scores for this game to be reset (the latest version modified the way high scores were stored).

 

Thanks,

Chris

  • Like 6
Link to comment
Share on other sites

  • 1 month later...

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...
  • Recently Browsing   0 members

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