the cutting room mirror

Pinocchio (32X)

This game was never completed and/or given a public release.
As a result of this, keep in mind that the developers might have used or deleted some of the content featured here, had the game actually been released.

The 32X Pinocchio is a platformer based on the Disney film, featuring different palettes than the Genesis and SNES iterations and the added feature of parallax scrolling.

It has never been officially confirmed why this iteration was scrapped, though it is most likely due to Pinocchio being delayed and by the time the game was eventually released on other platforms, the 32X had been long since discontinued due to its low sales. A European prototype dated December 6, 1995 was eventually released.

Cheat Menu#

After loading a level, pause the game and press C, A, B, C, A, B, C, A, B. If done correctly, pressing A, B, or C will reset the game. Select "Start" in the main menu, and the cheat menu will load.

Any input done while paused is checked in the SH-2 code by function 0x02082a10, comparing against an input sequence of 9 button values, stored at 0x02082a38. If the sequence is correct, variable 0x060006f8 is set to -1, allowing the cheat menu handler at 0x0208c598 to be reached.

Although the level select works as expected, the Lives and Invulnerability settings don't seem to function.

(Source: [https://hiddenpalace.org/Pinocchio_32x_(Dec_6,_1995_prototype) Hidden Palace (initial discovery)], QUFB (reverse engineering))

CPU Synchronization Text#

On every 32X game, CPUs can read and write to communication registers defined on both the Mega Drive and 32X memory maps. SH-2 Boot ROM code uses predefined words, such as "M_OK" and "S_OK". On game ROM code, this communication is open for implementation. In this case, the developers chose some colorful words.

For example, on the M68000 code at function 0x3f0, we see "FUCK" being sent, then "FISH" being read:

00000d8e 20 3c 46        move.l     #0x4655434b,D0 ; "FUCK"
         55 43 4b
00000d94 2b 40 00 20     move.l     D0,(offset DAT_00a15120,A5)
00000d98 2b 40 00 24     move.l     D0,(offset DAT_00a15124,A5)
00000d9c 2b 7c 12        move.l     #0x12345678,(offset DAT_00a15128,A5)
         34 56 78
         00 28
                     LAB_00000da4
                     XREF[2]:     00000dac(j), 00000db6(j)
00000da4 0c ad 46        cmpi.l     #0x46495348,(offset DAT_00a15120,A5) ; "FISH"
         49 53 48
         00 20
00000dac 66 f6           bne.b      LAB_00000da4
00000dae 0c ad 46        cmpi.l     #0x46495348,(offset DAT_00a15124,A5) ; "FISH"
         49 53 48
         00 24
00000db6 66 ec           bne.b      LAB_00000da4

While on the SH-2 code, we see "FUCK" being read, then "FISH" being sent:

060006a0 d1 0e           mov.l      @(060006dc,pc),r1 = "FUCK "
                     LAB_SH2_SDRAM__060006a2                    
                     XREF[1]:     SH2_SDRAM::060006a6(j)
060006a2 c6 08           mov.l      @(0x20,gbr),r0=>DAT_20004020
060006a4 30 10           cmp/eq     r1,r0
060006a6 8b fc           bf         LAB_SH2_SDRAM__060006a2
060006a8 d0 0b           mov.l      @(060006d8,pc),r0 = "FISH"
060006aa c2 08           mov.l      r0,@(0x20,gbr=>DAT_20004020)

(Source: QUFB)

Unused Text#

0xB2F has a small amount of text which goes unused since there's no currently-known 32X prototype that was made for the North American versions.

NTSC MEGA DRIVE 
NTSC GENESIS