krzysiobal wrote:
Code:
Presumable order of ROM chunks:
PRG: 512 kB ROM (U2) + 512 kB ROM (U3) + 32 kB ROM (U1) + 8 kB RAM (U5, not soldered)
CHR: 512 kB ROM (U10) + 512 kB ROM (U4) + 8 kB RAM (U6)
[...A.BCD] $6000-$7fff - control register, set to 0 on powerup/reset
| |||
| ||+-- PRG/CHR-A17
| |+--- PRG/CHR-A18
| +---- PRG/CHR-A19
+------ ROM selection: 0=ROM with MENU U1, 1=ROMs with games (U2+U3)
+------ might also block further writes to this reg when set to 1 (needs pal analysis for confirmation)
PRG A16-A13: controlled by MMC3
PRG A17: controlled by PAL (can come from MMC3-PRG-A17 or from PAL)
PRG A18 = C
PRG A19 = B
CHR A16-A10: controlled by MMC3
CHR A17: controlled by PAL (can come from MMC3-PRG-A17 or from PAL)
CHR A18 = C
CHR A19 = B
Doubts:
* I don't see any bit determining if CHR-ROM or CHR-RAM should be applied.
Maybe it's hardcoded that for menu (REG=%00000) and for position 3 (REG=%10010)
it should enable RAM, otherwise ROM
* I don't see any bit determining if PRG A17/CHR A17 should come from MMC3 (bank size 256 kB)
or from PAL (bank size 128 kB)
* PAL's pin 18/19 are shorted
* Why PAL needs MMC3-PRG-!CE pin, if it already has wired CPU-!ROMSEL and CPU-R/!W?
PRG-ROM | PRG-RAM | CHR-ROM | CHR-RAM | $6000
0. Menu | 32 kB | 0 | 0 | 8 kB | %00000 (relies on powerup value )
1. Super Contra | 128 kB | 0 | 128 kB | 0 | %10000
2. Ninja Gaiden 2 | 128 kB | 0 | 128 kB | 0 | %10001
3. Contra | 128 kB | 0 | 0 | 8 kB | %10010
4. Double Dragon 2 | 128 kB | 0 | 128 kB | 0 | %10011
5. Kage | 128 kB | 0 | 128 kB | 0 | %10100
6. Ninja Gaiden 3 | 128 kB | 0 | 128 kB | 0 | %10101
7. Double Dragon 3 | 128 kB | 0 | 128 kB | 0 | %10110
8. Dead Fox | 128 kB | 0 | 128 kB | 0 | %10111
.--v--.
MMC3_PRG_nCE -> |01 20| -- VCC
M2 -> |02 19| -> CHR_RAM_CS
CPU_nROMSEL -> |03 18| -> CHR_RAM_CS
CPU_A14 -> |04 17| <- CPU_RnW
CPU_A13 -> |05 16| -> CHR_A17
REG_D4 -> |06 15| -> CHR_RAM/nROM
REG_D2 -> |07 14| <- MMC3_CHR_A17
REG_D1 -> |08 13| -> PRG A17
REG_D0 -> |09 12| -> REG_nWR
GND -- |10 11| <- MMC3_PRG_A17
'-----'
PAL
REG_nWR <= 0 when CPU_nROMSEL=1 and M2=1 and CPU_A14=1 and CPU_A13=1 and CPU_RnW=0 else 1
If that's PAL failure, you can replace it with fresh new pre-programmed GAL.
But I'd check first U8.pin 1 voltage when cartridge is running (you don't have to solder all elements, just 74174, diode/resistor and capacitor).
Attachments is my dump ROM files.
Your reply has been very helpful.The third game Contra, is a 256KB game converted to Mapper4 using the Japanese version of Contra. According to your tips, the menu without soldered U9(GAL16V8) works normally but cannot select the game, and the menu after soldered U9(GAL16V8) does not work normally and nothing is displayed on the screen.So I think the U9 is damaged.But I didn't have the ability to write equations for GAL16V8.Can you help me write the final GAL equations?If you can, thank you very much!