Jump to content
IGNORED

Working Atari 2600/VCS games on VirtualVCS


doctorclu

Recommended Posts

That worked quite well! :D. How much extra space did you have to add for all the text to look legible?

None. I just changed the relative placement of P0 and P1 on those scanlines. Like I said, it looks weird, but you can read it. Based on what I've read in this thread about things not be resized or duplicated, I'm assuming the emulator doesn't support NUSIZ. So there's not really anything we can do about the missing graphics.

  • Like 1
Link to comment
Share on other sites

I downloaded Virtual Jaguar and gave it a go. Played as all the different characters. Won a game or two. So display issues aside it seems to work ok. The display is heavily timing dependent, and the emulator timing seems a little off. I may be able to tweak things and get it looking more or less correct (except for the missing sprite copies). It will probably take a lot of trial and error though. Since I don't want to bug you every time, I just want to verify that you are just copy/pasting into the existing binary at those specific locations? Are you using a regular hex editor or is there something written specifically for the Jaguar?

Link to comment
Share on other sites

Virtual Jaguar displayed VirtualVCS? :o What version? The version I was using on the Mac didn't get past the opening menu screen.

 

You got it! :D. Been using Hexfiend on the Mac.

 

Dungeon 2 was pasted into the hex at 38768 or you can search for the opening hex string "78D8A200 8AA8CA9A"

 

Cool that you are willing to alter a game for this limited emulator if nothing else to note what is not working (specially) :P and maybe get some pointers on how to alter other games to work with the emulator in it's current state.

 

So for the above... :thumbsup: (Wanted to Salute but they didn't have that one in the forum emojis)

 

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

 

I got a request yesterday for the google spreadsheet of working games. I don't mind granting access to that. But I kinda abandoned that as soon as I started it. Reason: when I first started that list I was EXTREMELY lucky with the few games I initially tried like the fan made Mario Brothers (which all but completely worked), Frogger, Astroblast, Gorf, and a few others. That was before I did the "852c" hex search, found about 300 games at 4K or less, and then systematically found less than a 100 games that even displayed and even less that that did anything worth talking about.

 

Was easier to mentioned the games worth any note than to say what didn't work at that point.

Edited by doctorclu
Link to comment
Share on other sites

I've pretty much confirmed it doesn't process NUSIZ. I removed all the NUSIZ commands from my 2600 rom and the game world displays identical (see attached) to what we see on the Jaguar.

 

d2(wNUSIZ turned off for comparison to VirtualVCS).bin

 

NUSIZ is used in a lot of programs. So that would mean for example no 3 enemy planes in Combat. The bomber would only be normal sized. Pretty much any Space Invader type game would be messed up. Etc. So between that, the insane speed things get run at, collision detection issues, flicker issues, etc. I would be shocked if you find more then a few that work good enough to be called playable. Everything pretty much needs to be turn based (board games, etc).

 

I've tried, but can't get the text to display any better than what we have in that last rom you posted. Move it a pixel closer to each other and you get the squished mess. It also moves things at the top of the screen too close to each other depending on the layout (whenever the initial placement of the sprite is not on the left). This of course doesn't happen in Stella, z26, or on hardware, so I'm not sure what all the differences are, but it is obviously doing things differently and the overall timing is off.

 

 

  • Like 2
Link to comment
Share on other sites

Ha... yeh playing the game you put together is basically the experience on VirtualVCS. WITH SOUND! :P. Well I applaud you for trying and for helping nail down one of the major areas I would have worked on.

 

What you say makes a lot of sense. Even Space Battle, which is the best operating game I've found, seemed effected by NUSIZ as the characters in the game are smaller than usual by just a little bit. The speed of the game I attribute to be on difficulty A, the default setting for VirtualVCS. So at this point if I could get a programmers help for Carl at Songbird (who currently has the source code) I would get them to focus on setting up a difficulty switch and see about getting NUSIZ working.

 

That would help Gorf, Frogger, Gopher/Gravedigger, Lock and Chase, and a few other non-hit detection games work.

 

AND allow Dungeon 2 to display right.

 

Wonder how much paytheon we would need to raise to get a programmer to do that much?

Link to comment
Share on other sites

Out of curiosity, I tried several of my games. Anything written in bB fails immediately. Even the really old versions. My asm stuff works but has the usual issues. Bifröst displays and plays (attached if you want to see). It has collision detection and NUSIZ issues as expected. It also has positioning issues as seen in Dungeon II. That could be a byproduct of not processing things like the NUSIZ and sound commands. The cycles that would have been used for that don't get used. Or there could be a flaw in the HMOVE emulation. Don't know. Even throwing money at it, I doubt you'll be able to find a programmer to get the issues ironed out. It's most likely going to require somebody who really knows the in and outs of writing a 2600 emulator. Only a handful of those guys are around and they are busy with their own projects.

 

2600 rom

bifrost_20181104.bin

 

Jag rom

vvcs-bifrost.rom

  • Like 1
Link to comment
Share on other sites

Out of curiosity, I tried several of my games. Anything written in bB fails immediately. Even the really old versions. My asm stuff works but has the usual issues. Bifröst displays and plays (attached if you want to see). It has collision detection and NUSIZ issues as expected. It also has positioning issues as seen in Dungeon II. That could be a byproduct of not processing things like the NUSIZ and sound commands. The cycles that would have been used for that don't get used. Or there could be a flaw in the HMOVE emulation. Don't know. Even throwing money at it, I doubt you'll be able to find a programmer to get the issues ironed out. It's most likely going to require somebody who really knows the in and outs of writing a 2600 emulator. Only a handful of those guys are around and they are busy with their own projects.

 

2600 rom

attachicon.gifbifrost_20181104.bin

 

Jag rom

attachicon.gifvvcs-bifrost.rom

 

All good points and I'll give the bifrost Jag binary a try tomorrow. This emulator has a lot of potential. I play some games (Space Attack, Sky Diver, a few others) and it's really a lot of fun. Amazing how well the Tom processor on the Jaguar can handle the 6507 emulation. I've pitched some ideas, mainly the patheon idea. For now it is what it is, bugs and all. But still far more than I ever expected a system with a 68000 could do.

Link to comment
Share on other sites

Cool reference doc, thanks!

 

I just glanced through the VVCS source and can confirm I did not find any references to NUSIZ beyond a single declaration of two emulator variables. So it's defined, but not used in the code. Same is probably true for numerous other TIA features.

  • Like 1
Link to comment
Share on other sites

I'm definitely not a 2600 programmer, so what is NUSIZ?

 

Sorry that VVCS never makes it to the top of my hobby projects list -- it's a bit daunting to learn how to emulate the 2600 hardware inside a Jaguar program. Maybe when I'm retired. ;)

 

Totally get you there. Baby steps. So now I think adding a difficulty switch would be awesome. :D

 

Cool reference doc, thanks!

 

I just glanced through the VVCS source and can confirm I did not find any references to NUSIZ beyond a single declaration of two emulator variables. So it's defined, but not used in the code. Same is probably true for numerous other TIA features.

 

No problem. Been fun to tinker with.

 

Yeh aside from 6507 emulation I think it would be easier to count what does work for TIA features verses what doesn't (since they are numerous.)

 

All the same, I played Hangman on my phone emulating a Jaguar emulating a 2600 today while in a meeting. ;)

Link to comment
Share on other sites

  • 3 months later...

Kicking this (still excited that the Jaguar can actually play a handful of 2600 games, still blows my mind).   Plan on at the very least creating a few compilations of 2600 games with menu screens. 

 

Would love to see the difficulty switch added to the emulator.

Link to comment
Share on other sites

  • 3 years later...
On 7/12/2019 at 10:48 AM, Songbird said:

Well, I often seem to be saying this, but "when I get a big chunk of free time" I'd like to add some features to this, including bankswitching for bigger ROMs, better menu to allow more games, and the difficulty switch support.

 

Was asked about this today, was fun looking over this again.

 

Thinking I need to explore some games that (more than less) worked like Bank Heist, Boxing, Dragon Defender, and Mogul Maniac.   And probably others I've yet to find that are in the 4K or less in size variety.  (as the emulator cannot handle bank switching yet)

 

And I wonder as Space Chase was spot on if the shots could be changed/hacked in the game itself to use something other than the flicker effect "ball" so that shots can be seen?  There are a few games that would work near perfectly (yes still no sound) if I could figure that out.   And other games if I could change the hit detection somehow would also work.   All has to work in the 6507 emulator limitations.

 

All this might be fun to revisit, maybe make another game pack of games that are mostly playable.   Polish the Sci-Fi pack a bit more.

 

Still just excited that the Jaguar can play this much of the Atari 2600 games. 

 

And BTW Songbird, whenever you see this, making a version where the emulator is on regular difficulty verses the hard difficulty automatically, or a switch, would be awesome.  But BTW, the stuff you have done the Jaguar, Lynx, and Nuon has been awesome so hey I understand. 

  • Like 3
Link to comment
Share on other sites

This is quite hacky, but maybe it will help on the difficulty switch settings without me spending a ton of time sifting through the code...

 

I found a comment in the code that talks about setting all switches to 'UP' position for the 2600 emulation. I'm not sure yet which switches match to which bits, but look for this hex string in the ROM: 30FCFFFF. The 'FFFF' part is all switches set to "up" (meaning "1"). You could try setting individual bits to zero within that 2-byte string, and see if one of them changes the difficulty switch behavior. Give it a shot and let me know what happens.

Link to comment
Share on other sites

4 hours ago, Songbird said:

I found a comment in the code that talks about setting all switches to 'UP' position for the 2600 emulation. I'm not sure yet which switches match to which bits, but look for this hex string in the ROM: 30FCFFFF. The 'FFFF' part is all switches set to "up" (meaning "1"). You could try setting individual bits to zero within that 2-byte string, and see if one of them changes the difficulty switch behavior. Give it a shot and let me know what happens.

Found it, and tried various combinations of 0000, 00FF, and FF00 in the place of the FFFF.   No change in difficulty that I saw.

 

Unless "OO" was the wrong answer to replace FF in this case.   If you have anything else to try I'll give it a shot.

Link to comment
Share on other sites

10 minutes ago, doctorclu said:

Found it, and tried various combinations of 0000, 00FF, and FF00 in the place of the FFFF.   No change in difficulty that I saw.

 

Unless "OO" was the wrong answer to replace FF in this case.   If you have anything else to try I'll give it a shot.

Don't know if it will matter, but did you use zeros, and not the letter O?  Hard to tell with the font.

Link to comment
Share on other sites

FFFF represents 16 individual bits. So you would need to try 16 patterns where you set a single bit to zero:

 

FFFE

FFFD

FFFB

FFF7

FFEF

FFDF

 

and so on.

 

Keep in mind, I'm not sure how the switches are viewed by the 2600 emulator or even which ones are actually implemented. That would take a lot more digging.

Link to comment
Share on other sites

2 hours ago, s0c7 said:

I banged this 2600 binary out tonight. It will show the current state of the left and right difficulty switches. It may help as you experiment. Don't have time right now to hack it into the Jag image, but hopefully it'll work for you.

diff_switches.bin 4 kB · 0 downloads

Oh this is amazing!   :D   Thank you!

 

Program works fine, displaying L & R and the A and presumably B position.  Nice nice.  Here it is in the VVCS rom image as option 2 on the menu where Pac-Man normally is.

 

vvcs A.rom.zip

  • Like 1
Link to comment
Share on other sites

3 hours ago, Songbird said:

FFFF represents 16 individual bits. So you would need to try 16 patterns where you set a single bit to zero:

 

FFFE

FFFD

FFFB

FFF7

FFEF

FFDF

 

and so on.

 

Keep in mind, I'm not sure how the switches are viewed by the 2600 emulator or even which ones are actually implemented. That would take a lot more digging.

Well I've been playing with this and trying combinations...

 

296596079_ScreenShot2022-11-05at1_03_15AM.png.854c09a1285b73f262fb38de8b9545b1.png371592430_ScreenShot2022-11-05at1_03_31AM.png.4deedd478e169f792ddb931b5ee3fe00.png

 

Using the test rom from s0c7 so far no love.  Not done, but what was tested so far.

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...