Jump to content
IGNORED

Working Atari 2600/VCS games on VirtualVCS


doctorclu

Recommended Posts

Welcome to the VirtualVCS (Atari 2600) emulator for the Atari Jaguar

written by Bryan Edewaard and Damien Jones of Temporary Sanity Designs (TSD).

 

Fun stories of the development can be found at this place, and this place.

-------------------------------------------------------------

Over time TSD handed the VirtualVCS source code to Carl Forhan who assemebled, with considerable work, the VirtualVCS demo that has floated around the internet for years. With the release by Curt Vendel, Atari Historian, of the other Atari 2600 emulator, it has been the hope of Carl, Curt, and many others (including myself) to one day see working Atari 2600 games on the Atari Jaguar.

 

As later explained in this message under "Background information" game images have been hex edited in to replace the game images already in the VirtualVCS demo. The menu graphics format in VirtualVCS were unraveled by sh3-rg.  A sweep for "STA CXCLR" (85 2c) and those that use that method of hit detection also helped.

 

The main objective is to find games that work in the confines of the abilities of VirtualVCS in it's alpha state. The strengths of this emulator being very close to true speed emulation, good controls, and many display abilities intact. The weaknesses being no sound, no hit detection, some display abilities needing refinement and no apparent bank switching ability using rom images of 4K or less. Limiting, but not impossible.

 

All efforts are for the enjoyment of the Jaguar community, and in the hopes to understanding the true technical limitations to add in better development of VirtualVCS and/or the 2600 emulator later down the road. Images can be loaded on rom loaders (Skunkboard, Flash card (though not tested)) to try out. No actual cartridges will be sold from this, strictly fun and research.

 

------------------------------------------------------------------------------------------------------------------

The Downloads!!

 

post-4709-0-60897900-1521697015.thumb.jpg.608c0f0bab5200e6ce03eb6f0e295409.jpg

post-4709-0-06467300-1522252722.png

  • Mario Brother 4K fan playable game released March 23, 2018:

 

post-4709-0-42061500-1522252871.png

 

post-4709-0-67531400-1523987443.thumb.png.b5ade12d7cc2d357ac31045b26c17d33.png

post-4709-0-39643000-1523988188.thumb.png.c70906b6f01bfb8423d68565ecbe9084.png

 

post-4709-0-50992000-1524075543.thumb.png.8c88dfdc759dc3750b16998c5ce58252.png

 

 

1726555623_ScreenShot2022-11-08at9_20_10AM.thumb.png.2ba3e8d9379ff4df71e5327e627bf6cd.png

217529603_ScreenShot2022-11-07at2_39_23PM.thumb.png.893069a56edeeb05079997474344507b.png

 

 

Other Downloads:

 

 

        Instructions provided for others to experiment with VirtualVCS to find other games that work as well.

 

post-4709-0-27265300-1523989337.png

 

Mario bros_4k_v2.bin vvcs-Mario brothers.rom

  • Like 6
Link to comment
Share on other sites

Here are the rom bank locations I have found so far:

 

Combat 2K 07770 07F60
Pac-Man 4K 08770 09760
Adventure 4K 09770 0A760
Yars Revenge 4K
Defender 4K
Berzerk 4K

 

Here is what I've tested:

Asteroids - haven't been able to get anything over 4K to display

Checkers - Activision - Displays half the board.

Dragster - a non-85 2C game, doesn't display right.

Missile Command - Half a display, no cursor.

Night Driver - Car with no moving road.

Superman - An established 85 2C game so no hit detection. Jittery screen, but displays and you can fly Superman around.

Okie-Dokie - black screen.

 

One interesting thing, if you check the "Bubsy2" game, both version of the Bubsy hack were 4K games, yet #1 on the number pad (a 2K slot) loads one 4K game, and #2 (a 4K slot) loads the next 4K game. All said, not entirely sure the hex locations are important or if it is looking for roms in a sequential order?

vvcs-Bubsy2.rom

Edited by doctorclu
Link to comment
Share on other sites

It's so cool to see this running again. Damien Jones and I wrote it (Damien was majorly into fractals and did that title screen & my biggest contribution was the 6507 emulator on Tom) and we did a ton of testing to figure out how to shave wait states on the RAM bus. We were so sure Atari was going to love it. They said they did but kept putting us off because Dave Staugas was also working on an emulator in house (although we didn't know that at the time) so we stopped working on it. Soon after the Jag was gone.

 

I now use the TSD logo on all my Atari PCB projects.

  • Like 7
Link to comment
Share on other sites

Do you have a later or more complete version than the one available?

Unfortunately, no. Carl Forhan said the version he got from us didn't compile without some work, so I'll never know what actually happened and if he got the last version. We also made a video tape of all the Jaguar stuff we wrote and that got lost as well.

  • Sad 1
Link to comment
Share on other sites

Good hearing your input on this Bryan! :D I would ask how much functional the last version was, but unless we find that, what's the point.

 

Maybe a better question is what was it like programming based on the Tom processor? The speed it was working at was fluid and definitely better than what the 68000 could do by a long shot.

 

So was the plan to tap into the Jerry chip for the sound eventually?

Link to comment
Share on other sites

Tom is pretty quick as long as you can fit the whole job inside it. The only thing we did on Tom was the CPU emulation, I think. I can remember 2 tricks that really helped. One was saving each byte of the game as a 32-bit word that had the next 3 bytes included (1 to 4 expansion of the data**). The idea was to never make another bus fetch necessary when processing a single instruction. Once you know the length of the current instruction, you can start the next one fetching. The other trick was to put some LUTs in Tom to shave cycles off of common instructions, especially regarding setting the flags.

 

The idea was that Jerry would be free to do everything else. Tom would pass a list of time-stamped register updates to Jerry and the sound and video would be made from those. The 68000 would only be used for maintenance things here and there.

 

The idea was to hit the bus as little as possible since that's where the Jag steps on its own balls.

 

 

 

** A 2600 cartridge would be copied to RAM like this:

 

B0, B1, B2, B3, B4, B5 -> becomes -> B3B2B1B0, B4B3B2B1, B5B4B3B2 etc..

 

This way, you can always have 4 bytes loaded in a register starting at any arbitrary byte position and just shift them down.

  • Like 2
Link to comment
Share on other sites

Here's a question, with this way this is currently written do you think any rom images over 4K will possibly work? Current roms are a 2K rom followed by several 4K roms. Do you remember if the code pull from a location or looked for a rom not looking at the length but when the rom appears in order or in a directory?

Link to comment
Share on other sites

Played with this more tonight. And have a new rom image to present, but first the game graveyard...

 

post-4709-0-44358300-1522206784.png

So far from tinkering this emulator requires that we have games that are 4K or less, and have no hit detection. So that eliminates many.

 

So then are the brave games that tried and crashed and burned due to display reasons. Those poor volunteers were:

2048 2600 Puzzle

2048 4vcs Beta4 (jumbled black and white graphics)

2600 Hero

3D Tic Tac Toe (shows half the boards)

Action Simon Says

Assembloids Demo (shows an awesome first page, and that's all)

Asteriods (multiple tries for a 8K game)

Basic Math

Blackjack

Casino

Dig Dug (Attempt at a 16k game)

Dragster (the original inspiration for this thread, controls work, dragster is all squished)

Missile Command (only half a screen displays

Night Driver (shows "car" but no road movement.)

Slot Machine (black screen)

Video Checkers (black screen)

Checkers Activision (displayed half the board)

Video Chess (displayed half the board)

 

---------------------------------------

So what do we have tonight? For the first time ever, a Jaguar game cart with multiple playable VCS/2600 games. As soon as the title screen comes up just hit the number of the games listed below. No, the menu screen is not modified yet but come to find out, it is a unnecessary step if you know where you're going.

 

 

post-4709-0-69733600-1522211797_thumb.jpg

1. Frogger

Leap past cars you can see and can't see while crossing logs you can see and can't see. :P The trick? Stick close to the cars you can see, and if you jump and miss a turtle or log, there is a 50/50 chance there is an invisible one that might catch you....

 

[Don't forget that at the beginning your frog will not move till the intro song (which naturally we can't hear as the emulator has no sound currently) finishes.]

 

post-4709-0-17814800-1522211925_thumb.jpgpost-4709-0-41164900-1522211943_thumb.jpg

2. Astrosmash

Frantic asteroid and bomb blasting fun from this Intellivision classic converted to the VCS played on a Jaguar! You'll be hitting the option button many times to reset this game to show you can't be punked by some rapidly falling rocks.

 

post-4709-0-73156800-1522212016_thumb.jpg

3. Gorf

Enjoy this Midway classic as aliens are blasted only to have others appear and take their place!!

The missing artifact of duplication in display makes for a new level of challenge in a familar game!

 

post-4709-0-29837300-1522212136_thumb.jpg

4. Flag Capture

It's Minesweeper before that was a thing, now playable with a Jaguar controller! :P

 

post-4709-0-49868800-1522212212_thumb.jpg

5. Hangman

Complementing the relaxing game of Flag Capture is Hangman, the other, non-hit detection game that inspired a whole line of games that would actually play on a alpha version of a VCS emulator, showing as the screenshot says that this "could" be done. ;)

 

post-4709-0-60198200-1522212375_thumb.png

6. DKVCS intro screen

20180327_215942.mp4

 

Sadly every version of Donkey Kong I've downloaded had hit detection that will not work on the VirtualVCS, and they were all above 8K to boot. However the title sequence of DKVCS was available at 4K and thought I would throw it in as it is an amazing version of Donkey Kong on the 2600 if you have not already tried it.

 

Enjoy this first ever Jaguar cart to contain five playable (more than less) games from the Atari 2600.

 

More multi-carts to follow! And you're welcome. ;)

 

 

 

-------------------------------------------------------------------------------------------

Things discovered:

The games can be selected on the number pad from the opening screen. Numbers 1 through 9 try to load something.

 

So far the game looks like it has allocation for six 4K banks that started and stopped as follows...

 

Combat 2K Yes 07770 78D8 A2FF 07F60 00F0 0F11
(4K) — 08760
08770
Pac-Man 4K Yes 07F70 78D8 A2FF 09760 00F0 0000
Adventure 4K Yes 09770 4CEF F278 0A760 00F0 00F0
Yars Revenge 4K Yes 0A770 E8A4 9DE4 0B760 FBFC FBFC
Defender 4K Yes 0B770 78D8 A2FF 0C760 00F0 00F0
Berzerk 4K Yes 0C770 4CAC F9A5 0d760 00F0

 

Cutting and pasting 4K images into those areas is what worked in the image I gave above.

 

In the games numbers 1-3 were select and other toggles. Option was used to start.

vvcs-multi01.rom

Edited by doctorclu
  • Like 5
Link to comment
Share on other sites

Thanks to sh3-rg we have an accurate menu for VirtualVCS - Multi01 *

 

post-4709-0-53899000-1522241148.png

 

 

* We are still perfecting the menu process so if some of the games don't work (unable to test since I am at work), feedback will be appreciated. Thanks!

vvcs-multi01gfx.rom

Edited by doctorclu
  • Like 6
Link to comment
Share on other sites

Thanks all!

 

One thing I realized I need to test: This emulator was written in the hay day of Atari, so around 1992-1993.

 

Before LCD monitors. More modern VCS emulators adjust for this.

 

Can someone try this out on a CRT monitor and see if games like Frogger and Gorf, which might have used a flicker effect, are displaying a little more accurately?

Edited by doctorclu
  • Like 1
Link to comment
Share on other sites

Can someone try this out on a CRT monitor and see if games like Frogger and Gorf, which might have used a flicker effect, are displaying a little more accurately?

 

Did and... no change. Worth a shot though.

 

Got better at Frogger. You want to stay in front of the cars as the "invisible" cars trail after the ones you see. Haven't figured out the logs yet but probably the same.

 

Defeated the mothership in Gorf tonight.

  • Like 1
Link to comment
Share on other sites

The part of the emulator that really needs work is the DSP/Jerry code. It was supposed to do all the graphics, sound, and hit detection. At this point it's at the "Hey, let's show Atari we got something running" stage.

 

I do kinda wish I had the time to look at it again. :)

  • Like 4
Link to comment
Share on other sites

Looked for the hit detection hex values in like 1,400 roms, so far 304 games could possibly work.

 

These are the more official titles weeding out anything over 4K, and then combing for the 852c code. Now to apply to VirtualVCS and see how they do.

A-Good.zip

  • Like 3
Link to comment
Share on other sites

Haha... for those that downloaded the last attachment, those are the roms that could work or at least don't have the hardware hit detection. So if you see games you want tried out, I can set them up and upload them here. Taking requests. ;)

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

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