Jump to content
IGNORED

2600 Rom Comparisions and Dumps


Omegamatrix

Recommended Posts

:lol:

 

I take that back. Crossforce [a] IS a bad dump. A whole lot of addresses where only the upper nybble of bytes differ (producing a lot of ingame glitches)! Obviously bad.

 

 

But yeah...the 4 you mentioned are bad and can be done away with (in addition to this one).

Edited by Nukey Shay
Link to comment
Share on other sites

:lol:

 

I take that back. Crossforce [a] IS a bad dump. A whole lot of addresses where only the upper nybble of bytes differ (producing a lot of ingame glitches)! Obviously bad.

 

 

But yeah...the 4 you mentioned are bad and can be done away with (in addition to this one).

 

It's done.

 

I will post the next zip tomorrow.

 

Thanks, Nukey!

 

8)

Link to comment
Share on other sites

I'm gonna make a comparison disassembly of Dodge'Em to find out what had been changed for the alternate version in the meantime. I really hope you can get somebody with SC expertise to look at those Dragonstomper variations...because they are all different and contain a lot of added program code between each of them.

Link to comment
Share on other sites

Keep up the good work guys, I'm fascinated by this thread.

 

I wish I could comb through the code in my prototypes the same way you guys can (my assembly just isn't strong enough). I could make the roms available if someone wanted to look through them (been meaning to do that for a long time now anyway). I just need to see which ones I promised not to release (my memory is a bit hazy about this after all these years which could lead to trouble).

 

Tempest

Link to comment
Share on other sites

DOS' file compare command should help you for hush-hush binaries 8k and higher...you don't even need to know assembly.

 

fc /b file1 file2 > changes.txt

 

The text file would contain all of the differences. If the listed addresses are hotspots or ram, they can safely be ignored (the console does). Only changes in other areas really need study.

Link to comment
Share on other sites

I looked at the NTSC version of Dodge 'em here:

 

http://www.atariage.com/forums/index.php?s...t&p=1259237

 

Perhaps the PAL versions were followed suite? i.e. glitch in the original NTSC version >> which gets translated to PAL >> NTSC version gets fixed >> new NTSC version then converted to PAL

 

 

 

Dig Dug is a headache. I found my old post and it turns out that I got 4 new versions without matching the other two. Of course two of those I completely ignore the ram (which is probably what we should do), but even when I read the ram I got nothing like those other dumps. I also double checked these dumps by dumping each of them twice. Also you should note when it says "2600 speed" it is reading the hotspot, and "7800 speed" ot is not.

 

Dig_Dug__freshly_dumped_.zip

 

 

The question becomes what do you keep? If we ignore the ram and ignore the hotspot they all should match...

Link to comment
Share on other sites

Dumbo is easy. The one marked [a] has less scan lines, but the other is a nice 312 scanlines.

 

LF024:
STA	WSYNC		  ; 3
DEX				   ; 2
BNE	LF024		  ; 2
STX	VSYNC		  ; 3
LDA	#$35		   ; 2   Alternate uses #$20, resulting in less scan lines
STA	TIM64T		 ; 4
INC	$84			; 5
BNE	LF036		  ; 2
INC	$85			; 5
LF036:
LDX	#$01		   ; 2
JSR	LFACC		  ; 6
LDX	#$00		   ; 2
JSR	LFACC		  ; 6
LDX	#$01		   ; 2
LDA	$81			; 3
BMI	LF04B		  ; 2
LDA	$80			; 3
AND	#$0F		   ; 2
TAX				   ; 2
LF04B:
LDA	LFE30,X		; 4
STA	$F5			; 3
LF050:
LDA	LFE33,X		; 4
STA	$F6			; 3
JMP	LFFEA		  ; 3
LF058:
LDA	INTIM		  ; 4
BNE	LF058		  ; 2
STA	CXCLR		  ; 3
STA	HMCLR		  ; 3
LDA	$80			; 3
AND	#$0F		   ; 2
TAX				   ; 2
LDA	LFE3C,X		; 4
STA	$F5			; 3
LDA	LFE3F,X		; 4
STA	$F6			; 3
JMP	LFFEA		  ; 3
STA	WSYNC		  ; 3
LDA	#$02		   ; 2
STA	VBLANK		 ; 3
LDA	#$2B		   ; 2   Alternate uses #$20, resulting in less scan lines
STA	TIM64T		 ; 4
LDA	$80			; 3
AND	#$0F		   ; 2
TAX				   ; 2
LDA	LFE42,X		; 4
STA	$F5			; 3
LDA	LFE45,X		; 4
STA	$F6			; 3
JMP	LFFEA		  ; 3

Link to comment
Share on other sites

When a cart contains added ram, wouldn't trying to dump linked ROM addresses produce random values? I dunno much about it (other than it makes no difference to the console either way).

We should ignore ram altogether. How could they ever match? It is written over and not part of the code.

 

 

Anyhow if we could physically erase the ram, hotspots, etc from all six versions they should all look like the one I did mark "ingore ram, 7800 speed". That is the shell. That is all that is used.

Link to comment
Share on other sites

I just made a .dif file in HOM3 with the [a] version and my (ignore ram, 7800 speed) version. Basically it erased the page of ram in each bank, and cleared the hotspots. Applying this mask (difference file) to all five other versions they end up matching 100%. This means the actual code (the shell) is the same in all six versions, and that they are all functionally the same.

 

 

The ram is the first page in every bank. The hotspots are at $xFF6, $xFF7, $xFF8, $xFF9 in each bank. Is that correct, Nukey?

 

 

Dig_Dug__comparisons_.zip

 

 

 

HOM3 continues to amaze me. It does a lot of things. :)

Link to comment
Share on other sites

Nukey?

 

I took another look at how HOM3 uses the difference file, and it wasn't patching it like I thought. The difference file is used to do a rollback of sorts, I think. Anyhow I manually deleted the ram and hotspots for each Dig Dug rom and compared them. They are all 100% identical now (except of course between PAL and NTSC). In other words, no alternates.

 

Dig_Dug__all_versions_.zip

 

I tried them with the Krok on real hardware they all worked perfectly.

 

 

Here is a list of all the Superchip games that I know of:

 

8k

 

Defender II (aka Stargate)

Stargate (aka Defender II)

Elevator Action

 

16k

 

Crack'ed (Prototype)

Crystal Castles

Dark Chambers

Desert Falcon

Dig Dug

Jr. Pac-Man

Klax

Millipede

Off the Wall

Radar Lock

Save Mary!

Secret Quest

Shooting Arcade (Prototype)

Sprint Master

Super Football

 

32k

 

Fatal Run

 

 

If there are alternates or protos for any of these then seperating the hotspots and ram from the code will tell if it is different or not. There are also other companies with different bankswitching and added ram carts.

 

 

BTW if you ever want to delete a page of code quickly use HOM3, but highlight the HEX values like this (not the black and white bits). It deletes a lot quicker that way. Also you have to hit the delete button on your keyboard. You can't right click, delete.

post-7074-1223958164_thumb.png

Link to comment
Share on other sites

Both Fatal run roms are the same. The ram in the alternate is all $FF while the original is all $00. I would keep the original over the alternate as most of the Superchip games in the rom collection were dumped this way.

 

Fatal_Run.zip

 

I believe the Enduro Alternate is suffering from bit rot. CLC doesn't make sense to me here, but I have seen other roms use SEI before (although I don't think the 2600 uses one).

 

 

; original rom


START:
SEI ;  opcode $78 ( 0111 1000 )
JMP	LF26B

;===============================
; [a]lternative rom


START:
CLC ;  opcode $18 ( 0001 1000 )   maybe bit rot?
JMP	LF26B

;===============================




LF26B:
LDA	#0
TAX
LF26E:
STA	0,X
TXS
STX	$AF
INX
BNE	LF26E

 

 

 

Can't remember the hotspots in a 8k bankswitch, although I see 0FF9 and 1FF8 differences come up over and over in lots of 8k carts. I believe the Ghostbusters, Ghost Manor, and Fathom are all the same. Would like somebody in the know to confirm/deny please.

 

 

file 1: Fathom (PAL).bin
file 2: Fathom (PAL) [a].bin

  file 1  file 2
0FF9	FF	  00
1FF8	FF	  00



file 1: Galaxian (PAL).bin
file 2: Galaxian (PAL) [a1].bin
file 3: Galaxian (PAL) [a2].bin

  file 1  file 2  file 3
0FF9	FF	  00	  00
0FFE	00	  00	  41
0FFF	60	  60	  FF

1FF8	FF	  00	  00
1FFF	6C	  6C	  FF



file 1: Ghost Manor (PAL).bin
file 2: Ghost Manor (PAL) [a].bin

  file 1  file 2
0FF9	FF	  F8
1FF8	FF	  83



file 1: Ghostbusters (PAL).bin
file 2: Ghostbusters (PAL) [a].bin

  file 1  file 2
0FF9	FF	  EA
1FF8	FF	  EA

 

 

I don't have time to do any more for a couple of days.

Link to comment
Share on other sites

The difference between an SEI and CLC opcode is very minimal...$78 vs. $18. SEI is a "standard" way to boot a 2600 game (along with CLD, because the status of both is unknown). So Enduro [a] is pretty clear to be a bad dump.

 

Regarding Supercharger games...I think that these will have a -very- low probability of being "bad" (because the original copies are already non-ROMchip media...easily copied to a .bin image). But I'll still look for bit differences/dropped bytes if you want. The full version Escape from the Mindmaster [a] is a shorter size...so it most likely is an incorrectly-labelled split (1 of 4) rom. It ties in pretty close to the first part of the full version (45 bytes differ). Preview rom?

 

About the Mindmaster (4 of 4) differences...only 6 bytes differ. Somebody needs to check the significance of the three (3) bytes before the hotspots, and which one has correct hardware vectors:

 

byte location, "original", [a], description:

000017F0: 00 32 ?
000017F4: 00 3A ?
000017F7: 32 00 ?
000017F8: 32 3D hotspot
000017FB: 3A 32 NMI vector MSB
000017FC: 22 19 Reset vector LSB
000017FF: 3D 22 Interrupt vector MSB

 

Fireball [a] has a whole lot of added stuff that is mostly zeros in the "original". More study is needed for this one. It could very well be that the [a]lternate is correct and "original" is bad (due to all those missing values)...but I don't know enough about disassembling Supercharger games.

 

 

As mentioned...Fathom, Ghost Manor, and Ghostbusters [a]lternates are only on the hotspots.

 

@Omega: Standard 8k bankswitching uses $xFF8 and $xFF9, standard 16k uses $xFF6 through $xFF9, and standard 32k uses $xFF4 through $xFFB. The 2600 doesn't use the NMI vector (so non-bankswitched games often use that space for other things)...but in standard bankswitching carts, accessing bytes above the hotspots would inadvertantly trigger a switch.

 

 

Galaxian [a1] and [a2] feature changes only on the hotspots and interrupt vector spaces (Galaxian doesn't use interrupts). Bad dumps.

 

Gas Hog "original" features 5 differing values and an incorrect MSB in the interrupt vector. Although interrupts are not used, common practice was to place the reset vector values there too (just in case the game is fried and subsequently hits a BRK instruction). An interesting note is that the other altered values pertain to timer settings and colors. This causes it to have an erratic scanline count. [a] has a stable 262 count. Neither one is a bad dump. [a] is just a better (fixed) version.

 

 

Moving a little slower here...life kinda threw me a curve. Apologies.

Edited by Nukey Shay
Link to comment
Share on other sites

So these can REMOVED:

 

Enduro (Digivision) [a]

 

Fatal Run (Ultimate Driving) (1989) (Atari - Sculptured Software, Steve Aguirre) (CX26162) (PAL) [a]

 

Fathom (1983) (Imagic, Wilfredo 'Willy' Aguilar, Michael Becker, Rob Fulop) (720111-2A, 13205) (PAL) [a]

 

Galaxian (1983) (Atari - GCC, Mark Ackerman, Glenn Parker) (CX2684, CX2684P) (PAL) [a1]

 

Galaxian (1983) (Atari - GCC, Mark Ackerman, Glenn Parker) (CX2684, CX2684P) (PAL) [a2]

 

Ghost Manor (1983) (Xonox - K-Tel Software - Beck-Tech) (6210, 06002, 06004, 99002) (PAL) [a]

 

Ghostbusters (1985) (Activision, David Crane, Dan Kitchen) (EAG-108-04, EAZ-108-04B) (PAL) [a]

 

 

Gas Hog [a] should stay in and Gas Hog "original" can be removed?

 

 

The Supercharger ROMs stay in.

 

8)

Edited by Rom Hunter
Link to comment
Share on other sites

That is correct.

 

It seems that Escape from the Mindmaster (Labyrinth) (1982) (Starpath Corporation, Dennis Caswell) (5) (AR-4200) [a] needs renaming to be an [a]lternate rom of the NTSC split version (1 of 4). Not an alternate rom of the FULL version like it's currently named. But Like I said, I dunno exactly what those changes are. It could be just a routine that had been moved (zeroes in one when the other shows data for the first half of changes, and visa-versa for the other half).

Link to comment
Share on other sites

You've done a bang up job with your manual scans thread too User42. I downloaded that the other day. Very useful!! Maybe its because the playing a 2600 sometimes is like "I have no idea what the Hell is going on, there are blobs on the screen and then I die", lol.

 

 

@ Nukey I keep noticing 8k alternates with differences in the hotspots only, over and over. Eckhard told me that although the 7800 dumper can read the hotspot with the -a switch, you can never be sure if you read it correctly. There are so many roms on the net. Some dumped with eprom readers, some with the 7800 dumper, some with other dumpers... It only becomes clear if they are the same rom when we ignore the hotspot. I hate the fact that many of the roms out there have misread hotspots, and we don't know which. I'm very much tempted to delete all the hotspots in my rom collection just to keep it consistent. What are your thoughts?

Link to comment
Share on other sites

IMO hotspots or ram do not matter. May as well be zeros there.

 

It's interesting that this process has turned up some that have "ghosts in the machine" i.e. valid unused code that exists in those areas like the 2-pack specials...to give clues about a given game's development...but ultimately it changes nothing on what you or the console "sees". This is not the same as code that is actually used where it makes no difference...such as a reset or interrupt vector pointing directly to a JMP (superfluous code).

 

In a perfect world, the [!] roms would have already been 100% faithful reproductions of the binary chips. There's no way to actually get there, because there's no way to be sure that a chip exists someplace out there with such changes. So the best that we can do is eliminate those that show evidence as being bad or including incorrect values. Only the exception mentioned above is a special case...where it can be sure that those values ARE correct, regardless of how they are (not) utilized. This is cyberspace, so bad, incorrect, overdumps, underdumps, etc. will ALWAYS be out there, no matter what we do. It looks like you may have just added more alternates yourself ;)

 

That being said, I'm content with just having the final versions of released games (or the most recent proto version for unreleased games) :) I'm just here to look and report. It's kind of neat that the alternate version of No Escape! (which is pretty certian to be a bad dump) fixes an erratic scanline problem in the released cartridge version...purely by chance if that is the case. What are the odds of that??

Link to comment
Share on other sites

I find the "ghost in the machines" interesting too. Gas Hog is a good example of a fixed version. When Homer had his copy dumped I remember the colors were good and the scanline stable, but I knew nothing of assembly back then and wondered if the original was a bad dump or not. I'm glad that came up as I kind of forgot about it.

 

 

Thinking of Thomas's idea, today I tried looking for a program that could replace a byte(s) at a certain location for all the files in a folder with a certain extention (ie .bin). It occured to me that it would be really easy to seperate all the roms by sizes, and further seperate them again by the different bankswitching schemes. That wouldn't be to hard at all. You could then run such a program and simultaniously mask out all the ram and hotspots. Follow this up with Clonespy and you save about 1/2 work of comparing each rom. More time could be spent on the ones that are left.

 

 

I couldn't find anything though. I tried looking up some freeware, looked in c programs, command line help, etc... I still think it's out there, maybe in the form of a batch file?

 

 

I think for my own use I will use $00 in all the hotspots of roms on my drive. Gives it a nice unity. Most of the roms in roms collection are either $00 or $FF anyhow.

 

 

 

Anyhow bring on the next set, Rom!!

Edited by Omegamatrix
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...