Hello there,
I recently bought Top Gun - Second Mission and it was the US version which holds a Konami-TLROM board a.k.a. 352026.
So I wanted to replace with another MMC3 game using 27c512 EPROMs, since both MaskROMs had 28 Pins (PRG and CHR ROM).
PRG ROM:
Soldered in directly, lifted /OE and wired it to GND.
CHR ROM:
Soldered in directly, lifted /OE and /CE just in case but kept them connecting to their position.
Result: Grey screen
Does anyone know the pinout of this or is the 74HC32 doing something with the mapping?
Almost always, a 74'32 on a PCB with a 28-pin 128KiB CHR ROM is to combine the PPU /RD and PPU /A13 signals into CHR /OE. It shouldn't cause any problems for you.
Unfortunately, NesCartDB doesn't have any PCB backs to allow me to guarantee that:
http://bootgod.dyndns.org:7777/profile.php?id=156
Unfortunately this doens't work. The game I'm trying to make is Mario Bros. Tower RE.
This was converted to MMC3 (TxROM) Mapper 4.
Can it be possible that the game won't run on a MMC3A chip? I've seen this happening before.
Well, easy test is to try to put some other game in place for the time being.
You could also play with the debugger in one of NO$NES / Nintendulator / FCEUX to see if the game writes 0 to $C000.
Well, looking at the image info with Nestopia pretty much explained my mistake.
Board: MMC rev. B
So MMC3A won't work, sadly.
Did it really say just "MMC", or did it say MMC1 or MMC3? In the case of MMC1, the biggest difference is a corner case related to battery save. In the case of MMC3, the difference is whether or not scanline IRQs can fire on consecutive scanlines.
Yea, it only said MMC, not MMC3 nor MMC1, yet the ROM Info says TxROM (mapper 4). Probably a typo there?
MMC3A will fail only if the game relies on being able to set IRQs on consecutive lines. In a debugging emulator, try looking for writes of $00 to $C001.
According to the emulator (FCEUX) the games writes $00 to $C001.
Oops, I made an error. The scanline count is written to $C000, and $C001 is just a trigger to restart the counter. What values are written to $C000? And does the game also enable IRQs by writing to $E001 (the written doesn't matter) and doing CLI?
Hm, obviously I'm doing something wrong because I never used a NES debugger before, only SNES.
Either way, at $C000 it tells me "ADC #$00" = 69 00 in hex.
And at $E000 is a branch D0 64 in hex.
A little late: Nestopia doesn't support the MMC3A's silicon bug, although it does keep track of which games use the MMC3A/B/C. Furthermore, some MMC3Bs have the silicon bug and some don't. So just relying on the line in Nestopia's source that says
Code:
case Mmc3::REV_B: Log::Flush( "Board: MMC rev. B" NST_LINEBREAK ); break;
isn't informative.
Anyway, you can't just inspect the location in memory, or in the ROM; you'll actually need to set up a breakpoint in an emulator on writes to $c000 and see what the written value is.
Alternatively, one could compile a version of $emulator that will explicitly warn on games that write 0...
The error was a wrong INES header, obviously.
Game was NROM, not TxROM. >_>
Thanks for the help though!
I wonder how hard it'd be to
convert the NROM game to MMC3.
That'll work too, except I soldered the game already.
Most likely will remove the MMC3 chip and connect the address and data pins there to make it NROM compatible.
Ice Man wrote:
That'll work too, except I soldered the game already.
Most likely will remove the MMC3 chip and connect the address and data pins there to make it NROM compatible.
Desolder it just maybe?
That's what I did.
Desoldered and connected the pins accordingly.