Go Dizzy Go Dizziness

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems.

Moderator: Moderators

Post Reply
krzysiobal
Posts: 827
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland

Go Dizzy Go Dizziness

Post by krzysiobal » Fri Oct 23, 2020 5:04 pm

Go Dizzy Go Dizziness
There is an arcade game, named Go Dizzy Go, made by CodeMasters.

Image Image

The standalone game can be acquired from 4 sources and each of them represents a little different ROM!

1. Quattro Arcade multicart (72 pin)
Image Image Image Image Image Image

ROM layout is following
00000-0ffff: CJ
10000-1ffff: F16 Renegade
20000-2ffff: Stunt Buggies
30000-3ffff: Go Dizzy Go (and the multicart's menu)

Codemasters' logo splash screen is contained in the last game only, but it is displayed after choosing each of them, so there is some logic involved to jump to last game's rom, display logo and then come back from the routine.
Anyway, one can get a perferctly working standalone GoDizzyGo game by just taking the fourth chunk, changing reset vector and making one jump (changing just reset vector makes the game to hang randomly because it uses the ram cell at $7fe without initialization)

Code: Select all

----------ORIGINAL-------------+-------AFTER MODIFICATION-------
03:C087: AD FF 07  LDA $07FF   | a9 97     LDA $#97
03:C08A: 48        PHA         | 8d fe 07  STA $7fe
03:C08B: 20 2C C5  JSR $C52C   | 48        PHA
03:C08E: EA        NOP         | 20 2C C5  JSR $C52C
03:C08F: EA        NOP         | 68        PLA
03:C090: EA        NOP         | EA        NOP
03:C091: 68        PLA         |
OF:FFFA: 07 c0                 |
OF:FFFC: 1a c0                 | 04 c0
OF:FFFE: f9 ff                 |
BTW. I've analyzed the PCB images from nescartdb and it contradics what wiki says:
* pin 2 and pin 15 are exchanged,
* PRG A16 = $8000.4 and PRG A17 = $8000.3, not vice versa

Code: Select all

                                                 .--v--.
                                          +5V -- |01 20| <- CPU A14    
                                      CPU R/W -> |02 19| <- CPU A13
                                      PRG /CE <- |03 18| -> ($c000-$ffff).1 OR CPU-A14 (wired to PRG A15)
(wired to PRG A14) ($c000-$ffff).0 OR CPU-A14 <- |04 17| -> ($8000-$bfff).4            (wired to PRG A16)
                                           M2 -> |05 16| <- ??                         (wired to GND)
                                       CPU A0 -> |06 15| <- CPU /RMS
                                       CPU D0 -> |07 14| -> ($8000-$bfff).3            (wired to A17)
                                       CPU D1 -> |08 13| -> CIC stun
                                       CPU D2 -> |09 12| <- CPU D4 
                                          GND -- |10 11| <- CPU D3 
                                                 '-----'
                                                 BF9096
2. Quattro Arcade multicart (60 pin)
There exists two label variants. No idea how they look inside and if they share the same ROM as the 72 pin version.
Image Image

3. Pegasus 4 in 1 (Zlota Czworka - ang. The Golden Four)
Image Image Image Image

BF9096 in this cartridge is connected in the same way as in NES Quattro Arcade version.

ROM layout is following
00000-0ffff: Soccer
10000-1ffff: Boomerang Kid
20000-2ffff: Go Dizzy Go
30000-3ffff: Super Robin Hood
Taking the third chunk and applying exactly the same changes like mentioned above gives us working standalone ROM.

4. Go Dizzy Go [60pin, pirate/blob]
This is quite interesting - non round-cornered shell, not original label and not BIC-XX PCB, just a blob one. And an unpopulated DIP20 chip, which pinout matches exactly... the BF9096 mentioned earlier.
Do you see that mysterious jumper, connecting PRG-ROM-A16 between VCC (default), BF90960-PRG-A16 and GND? Changing it to GND reveals the hidden game pre-burned into catridge - Codemasters' Soccer!

Image Image Image Image

The game works correctly on emulator, but on real console.. there are some glitches (looks like one or more VRAM cells were overwritten)
Image

5. Go Dizzy Go [60 pin, original/chips]
Woah, BF9097 chip in non Firehawk game? Yea (BTW. Super Robin Hood, another 64KB game also contains this chip). Note that despite PCB having the same markings (BIC-58), it is routed a little differently because BF9097 has the following pinout:

Code: Select all

                                                 .--v--.
                                          +5V -- |01 20| <- CPU A14    
                                      CPU R/W -> |02 19| <- CPU A13
                                      PRG /CE <- |03 18| -> ($c000-$ffff).1 OR CPU-A14 (wired to PRG A15)
(wired to PRG A14) ($c000-$ffff).0 OR CPU-A14 <- |04 17| -> ($8000-$bfff).4            (wired to PRG-DIP32.2=PRG A16 (*))
                                           M2 -> |05 16| -> ($c000-$ffff).2 OR CPU-A14 (not wired)
                                       CPU A0 -> |06 15| <- ??                         (wired to GND)
                                       CPU D0 -> |07 14| <- CPU /RMS
                                       CPU D1 -> |08 13| -> CIC stun                   (not wired)
                                       CPU D2 -> |09 12| <- CPU D4
                                          GND -- |10 11| <- CPU D3
                                                 '-----'
                                                 BF9097
(*) instead of DIP32, 64kB DIP28 is wired which does not use this pin
Also, pin 17 (which on Firehawk is meant to be CIR-A10) and here is purposed to be reacts not only to $8000-$9fff, but to whole $8000-$bfff range

Image Image Image Image

This ROM, works perfectly ok on console, but in emu.. has black status bar. WTF?
Image

https://gofile.io/d/ugm9Os

Post Reply