To initialize, it does 4 writes:
0x32 -> 0x4800
0x37 -> 0x4900
0x1 -> 0x4A00
0x18 -> 0x4E00
I'm not exactly sure what they do, but it looks like it's setting up some IRQ behaviour. The write of 0x1 might be setting up mirroring mode?
The game expects to split the screen using IRQs (more then one per frame)
Here is the IRQ:
Code: Select all
====IRQ====
0201: 4C JMP $CF02 A:10 X:00 Y:00 P:24 SP:FA Cy:1281871 nvTbdIzc
CF02: 85 STA $F7 A:10 X:00 Y:00 P:24 SP:FA Cy:1281874 nvTbdIzc
CF04: EE INC $01E4 A:10 X:00 Y:00 P:24 SP:FA Cy:1281877 nvTbdIzc
CF07: AD LDA $01E4 A:10 X:00 Y:00 P:24 SP:FA Cy:1281883 nvTbdIzc
CF0A: 29 AND #$01 A:03 X:00 Y:00 P:24 SP:FA Cy:1281887 nvTbdIzc
CF0C: F0 BEQ $CF20 A:01 X:00 Y:00 P:24 SP:FA Cy:1281889 nvTbdIzc
CF0E: A9 LDA #$24 A:01 X:00 Y:00 P:24 SP:FA Cy:1281891 nvTbdIzc
CF10: 8D STA $2006 A:24 X:00 Y:00 P:24 SP:FA Cy:1281893 nvTbdIzc
CF13: A9 LDA #$00 A:24 X:00 Y:00 P:24 SP:FA Cy:1281897 nvTbdIzc
CF15: 8D STA $2006 A:00 X:00 Y:00 P:26 SP:FA Cy:1281899 nvTbdIZc
CF18: A9 LDA #$83 A:00 X:00 Y:00 P:26 SP:FA Cy:1281903 nvTbdIZc
CF1A: 8D STA $2000 A:83 X:00 Y:00 P:A4 SP:FA Cy:1281905 NvTbdIzc
CF1D: 4C JMP $CF41 A:83 X:00 Y:00 P:A4 SP:FA Cy:1281909 NvTbdIzc
CF41: EE INC $02D1 A:83 X:00 Y:00 P:A4 SP:FA Cy:1281912 NvTbdIzc
CF44: AD LDA $02D1 A:83 X:00 Y:00 P:24 SP:FA Cy:1281918 nvTbdIzc
CF47: C9 CMP #$5C A:4F X:00 Y:00 P:24 SP:FA Cy:1281922 nvTbdIzc
CF49: 90 BCC $CF4F A:4F X:00 Y:00 P:A4 SP:FA Cy:1281924 NvTbdIzc
CF4F: A5 LDA $F7 A:4F X:00 Y:00 P:A4 SP:FA Cy:1281927 NvTbdIzc
CF51: 40 RTI A:10 X:00 Y:00 P:24 SP:FA Cy:1281930 nvTbdIzc
Does anyone know of any other examples of IRQs being acknowledged in non-standard ways? Maybe that will point me in the right direction on how to approach emulating this ROM.