G060 (Little Mermaid) seems to work fine in an emulator.
(MMC1, 128KB PRG)
$CCD0 is the beginning of the ROM data, rip out the next $20000 bytes, slap a header on it.
Seems to be just the US version with a cheat mode added, and X replacing N in the font (PUSH START BUTTOX)
Now, going to look at G061.
Again, cutting everything up to and including the Need:%x string.
Cut the footer down to next valid ROM size, determine header.
(Little Mermaid was ~133KB after truncating the beginning part.
ROM data should be multiple of 8KB.)
Is this version of Lot Lot supposed to start at Round 0 with a required score of 60,000 to pass?
(normal ROM starts at round 1, with a 20,000 point requirement)
Magmax works. Glitchy initial scores. Is that normal?
G-067 is some Mahjong game by Sachen. 48KB, possibly made in 1989.
So, TRE, master of Sachen, any idea?
Mappy has issues. First of all, the ripped ROM is 40KB, but the real ROM is only 24KB (the 16KB PRG is repeated twice. I eliminated the duplicate bank) Next, the game crashes because at $007E is the opcode $FC, which is apparently an undefined opcode on the 6502 (though it is JSR indexed indirect on the 65816), this code is $F0 (BEQ) in the original.
Millipede also crashes because of an unsupported instruction.
At $C767 (offset $777 in the headered ROM) is the hex F7 10 FF.
This is "SBC DP Indirect Long Indexed, Y". As the 6502 does not support long addressing, it fails. Replacing with the original instruction JMP $C764 (hex 4C 64 C7) makes the ROM work.
So, in conclusion:
#60 to #66, #69: Converted to NES.
#67: Unknown mapper
#68, #70: Either bad rip, or the (emulated) CPU is not 100% compatible, causing crashes when run under an emulator.
Okay, I made a program to automate ripping the ROMs.
Crashes at #144, which doesn't have the "Need:%x" string.
The game is Pyramid. Comparing to the existing dump, I know the data starts at $C910 in the .bin. I'll have to check later if there is any distinguishable pattern.
(Pyramid is 16KB PRG + 8KB CHR, but as it appears in the past, 16KB PRG ROMs are boosted to 32KB by duplicating the PRG)
Even afterwards, going to have to manually add headers.
Shouldn't be too hard for known games, but that'll prove challenging for unknown versions.
One amusing thing I noticed about Mappy.
For some reason, the text at the beginning of the ROM (COPYRIGHT ...)
has this line of code overwriting the original text:
LDA #$00
STA $C001
Pretty odd. Addresses $8000-FFFF are ROM when read, mapper registers when written. Except Mappy doesn't use a mapper (#0), thus if this instruction is used (I don't think so, as there's no code after), it is unknown what would happen.
(not to mention if the ROM was writable, this code would be in the CPU memory space at $C000, thus storing the 0 over itself)
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum