Nukey Shay Posted October 13, 2008 Share Posted October 13, 2008 (edited) 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 October 13, 2008 by Nukey Shay Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted October 13, 2008 Share Posted October 13, 2008 (edited) .. Edited October 13, 2008 by Nukey Shay Quote Link to comment Share on other sites More sharing options...
Rom Hunter Posted October 13, 2008 Share Posted October 13, 2008 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! Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted October 13, 2008 Share Posted October 13, 2008 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. Quote Link to comment Share on other sites More sharing options...
Tempest Posted October 13, 2008 Share Posted October 13, 2008 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 Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted October 13, 2008 Share Posted October 13, 2008 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. Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted October 13, 2008 Author Share Posted October 13, 2008 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... Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted October 13, 2008 Author Share Posted October 13, 2008 I also forgot to mention those Dig Dug dumps ( I hope NE146 doesn't read this ) are all from the same cart. Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted October 13, 2008 Share Posted October 13, 2008 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). Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted October 13, 2008 Author Share Posted October 13, 2008 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 Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted October 13, 2008 Author Share Posted October 13, 2008 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. Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted October 13, 2008 Author Share Posted October 13, 2008 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. Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted October 14, 2008 Author Share Posted October 14, 2008 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. Quote Link to comment Share on other sites More sharing options...
Rom Hunter Posted October 14, 2008 Share Posted October 14, 2008 Ok, here's the fifth zip: Roms5.zip Let me know if you don't want to receive Supercharger ROMs anymore. Galaxian has two [a]lternates. Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted October 15, 2008 Author Share Posted October 15, 2008 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. Quote Link to comment Share on other sites More sharing options...
Rom Hunter Posted October 15, 2008 Share Posted October 15, 2008 Ok, thanks. I'll await Nukey's further examinations of these ROMs Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted October 15, 2008 Share Posted October 15, 2008 (edited) 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 October 15, 2008 by Nukey Shay Quote Link to comment Share on other sites More sharing options...
Rom Hunter Posted October 15, 2008 Share Posted October 15, 2008 (edited) 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. Edited October 15, 2008 by Rom Hunter Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted October 15, 2008 Share Posted October 15, 2008 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). Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted October 15, 2008 Share Posted October 15, 2008 BTW I dunno if you want to remove the broken Gas Hog. It really isn't a bad dump...just a possible earlier version. That would explain why the [a]lternate version is stable. The changes are just too specific to be coincidence. Quote Link to comment Share on other sites More sharing options...
Rom Hunter Posted October 15, 2008 Share Posted October 15, 2008 Thanks, Nukey. I will post the sixth zip tomorrow. Quote Link to comment Share on other sites More sharing options...
user42 Posted October 16, 2008 Share Posted October 16, 2008 Just want to say thanks to you guys for all the work, I love what you are doing here. I wish I could help out but "no knowlege+no free time=no help from me" Anyways, thanks alot, keep up the good work. I look forward to "RomHunters a2600 v4 Roms" Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted October 16, 2008 Author Share Posted October 16, 2008 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? Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted October 16, 2008 Share Posted October 16, 2008 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?? Quote Link to comment Share on other sites More sharing options...
Omegamatrix Posted October 16, 2008 Author Share Posted October 16, 2008 (edited) 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 October 16, 2008 by Omegamatrix Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.