Jump to content
IGNORED

2600 Rom Comparisions and Dumps


Omegamatrix

Recommended Posts

I checked five of these ROMs. They all contain code which reacts to the difficulty switch. But the code is different between ROMs and so is the reaction. Some can switch, some only if they start in a certain bank and some will never switch.

 

I am not sure what to make of it. The ROM combinations seem to be identical with their menu driven multi carts (using F6), there is even F6 hotspot access. But the ROMs differ. Maybe they were experimenting with switch selection and failed? @alex_79 What do you think?

Spoiler



; Boom Bang (AKA Crackpots) (HES) (PAL).bin
; Bank 0:
Lfff0
    lda     SWCHB                   ;4
    asl                             ;2
    bcs     Lfff9                   ;2/3
    bit.w   ram_F9                  ;4   =  12
Lfff9
    brk                             ;7   =   7

; Bank 1:
Lfff0
    lda     SWCHB                   ;4
    asl                             ;2
    bcc     Lfff9                   ;2/3
    bit.w   ram_F6                  ;4   =  12
Lfff9
    brk                             ;7   =   7


; Challenge (HES) (PAL).bin
; (diff=A + bank=0 works)
; Bank 0:
Start
    sei                             ;2
    cld                             ;2
    ldx     #$00                    ;2   =   6
Lf2b4
    inx                             ;2
    bne     Lf2b4                   ;2/3
    lda     SWCHB                   ;4
    asl                             ;2
    bcs     Lf2c0                   ;2/3
    jmp     Lfff5                   ;3   =  15
Lf2c0
    jmp     Lf000                   ;3   =   3 *

    ...

Lfff5
    nop                             ;2
    nop                             ;2
    nop                             ;2
    bit     Lffd0                   ;4
    jmp     Start                   ;3   =  13 *

; Bank 1:
    nothing


; Pigs 'N' Wolf (AKA Oink) (HES) (PAL).bin
; Bank 0:
Start
    lda     SWCHB                   ;4
    asl                             ;2
    bcs     Lfff9                   ;2/3
    bit     Lfff9                   ;4   =  12
Lfff9
    jmp     Lf000                   ;3   =   3

; Bank 1:
Start
    lda     SWCHB                   ;4
    asl                             ;2
    bcc     Lfff9                   ;2/3 =   8
Lfff6
    bit     Lfff6                   ;4   =   4
Lfff9
    jmp     Lf000                   ;3   =   3 *


; Star Warrior (AKA Star Wars - The Empire Strikes Back) (HES) (PAL).bin
; (diff=A works)
; Bank 0:
Lf032
    bit     Lfff9                   ;4
Start
    bcs     Lf010                   ;2/3

; Bank 1:
Lf032
    bit     Lfff6                   ;4
Start
    sei                             ;2
    cld                             ;2
    ldx     #$00                    ;2
    txa                             ;2   =  12
Lf03a
    sta     VSYNC,x                 ;4
    txs                             ;2
    inx                             ;2
    bne     Lf03a                   ;2/3
    lda     SWCHB                   ;4
    sta     ram_F0                  ;3
    asl                             ;2
    bcs     Lf032                   ;2/3


; Wall Defender (AKA Wall Break) (HES) (PAL).bin
; (diff=A + bank=0 works)
; Bank 0:
Start
    ldx     #$00                    ;2   =   2
Lfda2
    inx                             ;2
    bne     Lfda2                   ;2/3
    lda     SWCHB                   ;4
    asl                             ;2
    bcc     Lfdae                   ;2/3
    jmp     Lf000                   ;3   =  15 *

Lfdae
    jmp     Lfff5                   ;3   =   3
    ...
Lfff5
    nop                             ;2
    nop                             ;2
    nop                             ;2
    brk                             ;7   =  13

; Bank 1:
    nothing


 

 

  • Like 1
Link to comment
Share on other sites

22 hours ago, Thomas Jentzsch said:

@alex_79 What do you think?

No clue. It's really weird if they produced those games like that on purpose.

 

Maybe is the result of defective chips? They still somewhat worked and so they sold them as single games (with that notice about the difficulty switch). Maybe they were actually   16k roms (4 games in 1, selected by using both difficulty switches).

 

23 hours ago, Thomas Jentzsch said:

@Ballblaɀer Do the 2nd games work on real hardware if you put the switch into the other position?

I'm curious about that too. In addition, could you dump them again as 16k (F6) roms?

 

If anyone has one of those carts with a bad/worn out label and is willing to open it, it would also be interesting to see what kind of chips are in there.

Link to comment
Share on other sites

1 hour ago, alex_79 said:

Maybe they were actually   16k roms (4 games in 1, selected by using both difficulty switches).

I had the same idea, but all five games only check bit 7 of SWCHB. It is possible, but IMO pretty unlikely that the check is always in the missing 8K. And if they removed the code, why not for bit 7 too?

Link to comment
Share on other sites

I have the pictured carts two plus Boom Bang as standalone HES carts. I cannot get any of the three unadvertised games to play on my 2600 no matter what I do with the difficulty switches. Tried powering on and reinserting lots and lots of times, tried frying the carts a bit... nothing. Boom Bang and Pigs 'N' Wolf both play the advertised game no matter what position my right difficulty switch is in. Star Warrior gives me a black screen upon startup with the right switch in the A position. Not entirely sure how I was able to 4K dump Dolphin from the PNW cart, honestly.

 

I will try dumping these carts to F6 ROMs later tonight or tomorrow, sure.

Link to comment
Share on other sites

F6 dumps of the three cartridges are here. Assuming I'm interpreting the debugger mode in Stella properly, there's data in four 4K banks for each.

 

Boom Bang (AKA Crackpots) (HES) (PAL) (F6 dump).bin

Pigs 'N' Wolf (AKA Oink) (HES) (PAL) (F6 dump).bin

Star Warrior (AKA Star Wars - The Empire Strikes Back) (HES) (PAL) (F6 dump).bin

Link to comment
Share on other sites

13 hours ago, Thomas Jentzsch said:

I had the same idea, but all five games only check bit 7 of SWCHB. It is possible, but IMO pretty unlikely that the check is always in the missing 8K. And if they removed the code, why not for bit 7 too?

My theory is that they didn't alter the code, but that half of the rom is inaccessible because of a production error (faulty bankswicthing logic and/or faulty mask rom). This could possibly only make sense if they used custom mask roms, and not eproms, as they could just have reprogrammed them with correct code in that case. Still very unlikely, anyway, but it's the best I can think of explain those weird roms.

 

9 hours ago, Ballblaɀer said:

I have the pictured carts two plus Boom Bang as standalone HES carts. I cannot get any of the three unadvertised games to play on my 2600 no matter what I do with the difficulty switches. Tried powering on and reinserting lots and lots of times, tried frying the carts a bit... nothing. Boom Bang and Pigs 'N' Wolf both play the advertised game no matter what position my right difficulty switch is in. Star Warrior gives me a black screen upon startup with the right switch in the A position.

Thanks. That matches emulation when using the 8k dumps you provided.

 

9 hours ago, Ballblaɀer said:

Not entirely sure how I was able to 4K dump Dolphin from the PNW cart, honestly.

If you set your dumper software to dump a 4k game, it will simply read the 4k cartridge address space from beginning to end. If the starting bank is the one with "Dolphin", then you get code for that game until the dumper reaches the "fff9" address, which is the hotspot for the last bank (Pig 'n' Wolf") and will switch to it, resulting in the last 7 bytes of the dump being from the other game. By chance, "Dolphin" still works even with those few bytes changed.

 

 

4 hours ago, Ballblaɀer said:

F6 dumps of the three cartridges are here. Assuming I'm interpreting the debugger mode in Stella properly, there's data in four 4K banks for each.

Thanks for the new dumps.

Yes, there's data in there, but by looking at it we can see that there's no reaction when hitting the "FFF6" and "FFF7" hotspots (which select the first and second bank respectively in a "F6" cartridge). The first two banks either contain an exact copy of the last bank, or a copy of the penultimate one with the last 7 bytes changed, like in the "Dolphin" example above.


So the 8k dumps posted earlier are the correct dumps, as they represent what a real atari 2600 "sees" with those carts.

 

  • Like 2
Link to comment
Share on other sites

13 hours ago, alex_79 said:

If you set your dumper software to dump a 4k game, it will simply read the 4k cartridge address space from beginning to end. If the starting bank is the one with "Dolphin", then you get code for that game until the dumper reaches the "fff9" address, which is the hotspot for the last bank (Pig 'n' Wolf") and will switch to it, resulting in the last 7 bytes of the dump being from the other game. By chance, "Dolphin" still works even with those few bytes changed.

This was the part that I don't think I totally understood until now... the dumping software ignores/doesn't react to the startup code that otherwise tells a 2600 to jump to the correct startup/initialization bank, yes? This explains why I was able to dump Dolphin -- it randomly started reading from that bank -- but I wasn't able to get it working on my 2600... right?

 

13 hours ago, alex_79 said:

So the 8k dumps posted earlier are the correct dumps, as they represent what a real atari 2600 "sees" with those carts.

Probably this is just a question of pragmatics, but... if the ROM being dumped is a 16K mask ROM, isn't the F6 dump the most "correct" dump regardless of what the Atari sees? The cartridge could randomly start in any of the four banks, but the startup code in each instructs the console to switch to the proper initialization bank, right? I realize that this is ultimately not important... but if an 8K dump is more correct than a 4K dump, here, doesn't that make the argument for a 16K dump being the one we want?

Link to comment
Share on other sites

3 hours ago, Ballblaɀer said:

the dumping software ignores/doesn't react to the startup code that otherwise tells a 2600 to jump to the correct startup/initialization bank, yes?

Yes, the dumper doesn't execute any code from the cartridge. It just reads the bytes sequentially.

 

Quote

This explains why I was able to dump Dolphin -- it randomly started reading from that bank -- but I wasn't able to get it working on my 2600... right?

It doesn't work with the real cart (or in emulation when using the complete 8k dump) because there's code in it that switches to the other bank.

In a 4k dump, there's no other bank, so that code has no effect and (by chance) the game runs.

 

Quote

if the ROM being dumped is a 16K mask ROM, isn't the F6 dump the most "correct" dump regardless of what the Atari sees?

No, those 16k dumps demonstrate that the cart only has 2 banks and uses the "F8" scheme. The first 8k in the 16k dumps are an artifact that results by dumping it as "F6", but they don't exists on the actual cart.

 

The "partially disabled 16k mask rom" is just an hypothesis to try to explain the weird code in those carts. And even if it really was the case, you couldn't dump the disabled part from the cartridge pins. If the Atari cannot access it, the dumper cannot either. (If half of it was disabled intentionally, it would be possible to dump it by desoldering the chip from the board, but in case of defective mask rom, you would need to decap it).

 

 

 

 

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

All ROMs are fine, but they were already known (except one). The differences are only in the Superchip RAM or the bankswitching hotspots.

 

Space Cavern has a minor difference, they reduced the scanlines from 312 to 310.

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

The PAL version of Stronghold (CommaVid) has now been dumped, thanks to Dionoid!

http://www.atarimania.com/game-atari-2600-vcs-stronghold_18507.html

 


PAL ROMs left to dump:


- Coco Nuts (Telesys)

- Plate Mania (Home Vision)
- Topy (Home Vision)
- Treasure Discovery (Home Vision)
- X’Mission (Home Vision)


The Home Vision ones are PAL originals.

 


Also interested in a ROM dump of:

Air Battle:
http://www.atarimania.com/game-atari-2600-vcs-air-battle_19390.html

Seal to Whales:
http://www.atarimania.com/game-atari-2600-vcs-seal-to-whales_14531.html

Color Bars:
http://www.atarimania.com/game-atari-2600-vcs-color-bars_31509.html

If anyone with a dumper has the chance to .bin these, please let me know!

 

8)

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

On 8/5/2022 at 6:46 PM, Thomas Jentzsch said:

I checked five of these ROMs. They all contain code which reacts to the difficulty switch. But the code is different between ROMs and so is the reaction. Some can switch, some only if they start in a certain bank and some will never switch.

So which of these six can really start up the UNadvertized game on real hardware?
http://www.atarimania.com/list_games_atari-2600-vcs-hes-cardboard_label_27_2_G.html

8)

Edited by Rom Hunter
Link to comment
Share on other sites

Challenge and Wall Defender. To make the 2nd game work in Stella, set start the bank to 0 in the Game Properties and the right difficulty to A in the Power-On options. 

 

It depends on the cart's hardware if that works. If the hardware makes the cart always start in bank 1, it does not work. There are quite a lot of ROMs which are prepared for the cart starting in a random bank. I don't know how the HES carts work here. 

 

I think we could find out by repeated dumping the carts without using bankswitching.

 

Another idea would be frying. But there we have even less knowledge what exactly is happening. Stella currently only randomizes the TIA and ZP RAM. But maybe the program counter, the flags and the registers are relevant here too. And maybe this can even randomize the bank. We just do not know.

 

BTW: Gorf is 4K.

Link to comment
Share on other sites

On 8/21/2022 at 3:17 PM, Thomas Jentzsch said:

BTW: Gorf is 4K.

Good catch.

I removed it from the database (it was the CBS PAL version, the HES version contains more games than only Gorf).

So this one still needs to be dumped from the actual HES cart.

8)

Edited by Rom Hunter
Link to comment
Share on other sites

5 hours ago, DrVector said:

I am attaching other ROM dumps of my games.

Only four of them differ from the already dumped ones (Jr. Pac-Man, Dark Chambers, RealSports Tennis and Desert Falcon) and I don't think they differ at important spots.

Am I correct, Thomas?

Better check for 100% identical before posting.

8)

Edited by Rom Hunter
Link to comment
Share on other sites

  • 1 month later...
On 3/15/2007 at 9:10 PM, Omegamatrix said:

This thread is devoted to comparing the old era roms of the atari 2600 library. Have you ever wondered why there is 3 versions of a particular rom with no visible differences?

Just saw this list and I think I've got a few of the undumped cartridges (and a dumper).

 

I posted PAL Black Hole (Hot Shot / Goliath) here last month. 

I'm not sure if your list is up to date.

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