Dr. Robotnik's Mean Bean Machine (Genesis)
|Dr. Robotnik's Mean Bean Machine|
This game has a notes page
This game has a prototype article
Dr. Robotnik's Mean Bean Machine is a Westernized Puyo Puyo based on the syndicated cartoon Adventures of Sonic the Hedgehog.
Most of these are leftovers from Puyo Puyo.
Perhaps unsurprisingly, the game still contains unused assets from the arcade Puyo Puyo. The game no longer contains the "Insert Coin" prompt that was buried in the Mega Drive Puyo Puyo's title screen data, but still contains the credit(s) counter in its gameplay sprite data.
8x16 text is used rather than a unique graphic for the PAUSE text. This is the one used in Puyo Puyo.
Graphics used in Puyo Puyo to denote the 1P VS 2P difficulty modes.
While the game only uses numbers from 1 to 5 to mark the difficulty levels, other numbers do exist.
The entire Endless/Lesson Mode tileset is still present in the game, but is never used. As this game uses only one graphic pointer for the entirety of Scenario Mode (unlike Puyo Puyo), the leftover Lesson Stages do not actually load this tileset. Note that the palette which should be used for these tiles either has been removed or it's never loaded, so the one from Puyo Puyo is used in the image.
This shadowed block was part of the background in the Endless Mode from Puyo Puyo. While a similar set of tiles is still used as the background of various screens, this one is not.
The flashing square is only used in the first Lesson stage.
This is the tutorial text shown in the first Lesson Stage in Puyo Puyo. Since this is only present in the Endless Mode tileset (which is never loaded during gameplay), the actual object appears scrambled when the stage is accessed in the game.
Graphics of Arle! They are always loaded initially (and then partially overwritten) during cutscenes due to developer laziness as they contain the dialog box sprites.
Sprites of Harpy exist too for whatever reason; these are probably the forgotten duplicate Harpy sprite data from Puyo Puyo, as these are never even loaded by Mean Bean Machine either.
Leftovers from the Game Over screen of Puyo Puyo. Unsurprisingly, they are never loaded in memory too.
More leftovers from Game Over screens, this time from the 1P VS 2P Mode.
The graphics from High Score screen used in Puyo Puyo were replaced during the conversion, but not completely as they still get loaded in memory.
The High Score screen only uses letters.
This was used to mark the different game modes. Appropriate graphics exist and are used in this game.
The original font of Puyo Puyo is only used in the Checksum Error Screen, so most of it is unused, including numbers and their duplicates.
Another leftover from Puyo Puyo. The font used in the demo mode of the original game obviously isn't used here.
While this 8x16 font is used during the cast roll in Puyo Puyo, this game uses a different 8x8 one. This is another of the few graphics to never get loaded.
The Lesson Stages of Puyo Puyo are still present, and can be accessed via patch code 00BEFE:00?? (where "??" is 00, 01, or 02), although they're a bit glitchy: the tutorial text is scrambled, no music plays, Coconuts stands at odd positions in the stage intros, and Scratch takes the place of Skeleton-T as the challenger. The flashing squares showing which beans can be cleared with the current piece still remain, though. Beating the third Lesson Stage advances the player to the ending scene.
In the Genesis Puyo Puyo, the game was programmed to check the RAM at 00FFFC02 was set to 0000. If this was the case, the Sound Test would not display in the Options. If you beat the Scenario Mode once or use a code at the Title Screen, it would send FFFF to the RAM at 00FFFC02. This would then display the Sound Test in the Options.
In the Korean version of Mean Bean Machine, as well as the prototype (when the hardware region is Japanese), the Sound Test is automatically available upon starting the game. Other versions of the game still retain the code to check if the Sound Test can be displayed in the Options, albeit normally inaccessible.
Code to display the text "SOUND TEST" in "OPTIONS" (USA Version): 0233F8 4A 79 TST.W ($00FFFC02) ; Checks the word in FFFC02. 0233FE 67 14 BEQ #$14  ; If word is 0000, then jump to 23414. 023402 10 3C MOVE.B #$07,D0 ; Copy byte 07 to D0 (option that is selected). 023406 3A 3C MOVE.W #$0B9E,D5 ; Copy byte 0B9E to D5 (text position). 02340A 43 F9 LEA ($00023416),A1 ; Load 023416 into A1. 023410 61 00 BSR #$FB16 [022F28] ; Jump to 23F28. 023414 4E 75 RTS ; Return to start. Code for number of options to select in "OPTIONS" (USA Version): 023088 14 3C MOVE.B #$06,D2 ; Copy byte 06 to D2 (Sound Test can't be selected). 02308C 4A 79 TST.W ($00FFFC02) ; Checks the word in FFFC02. 023092 67 06 BEQ #$06 [02309A] ; If word is 0000, then jump to 2309A. 023096 14 3C MOVE.B #$07,D2 ; Copy byte 07 to D2 (Sound Test can be selected). 02309A
Unlike the Genesis Puyo Puyo, the code has been removed so you can't unlock the Sound Test if you beat Scenario Mode or enter a code at the Title Screen. The programmers have added some code that loads before the Title Screen, where FFFF is moved to the RAM at 00FFFC02 (so the Sound Test will display). It then checks the Hardware Version of the Mega Drive. If the Mega Drive is not Japanese, then it reverses the bytes so 0000 is now in the RAM at 00FFFC02 (so the Sound Test will not display).
Code is activated before the Title Screen (USA Version): 00E102 33 FC MOVE.W #$FFFF,($00FFFC02) ; Move FFFF to FFFC02. 00E10A 61 00 BSR #$0BAE [00ECBA] ; Jump to 00ECBA. 00ECBA 10 39 MOVE.B ($00A10001),D0 ; Copy Hardware Version byte (A10001) to D0. 00ECC0 02 00 ANDI.B #$C0,D0 ; Perform a logical AND on C0 and byte in D0 (basically bits 5 to 0 will always become 0, while bit 7 [Region] and bit 6 [Display] are kept the same). 00ECC4 67 14 BEQ #$14 [00ECDA] ; If bits 7 & 6 equal 00, then jump to ECDA. 00ECC6 30 39 MOVE.W ($00FFFC02),D0 ; Move word from FFFC02 to D0. 00ECCC 46 40 NOT.W D0 ; Reverse the bits in D0. 00ECCE 33 C0 MOVE.W D0,($00FFFC02) ; Move word from D0 to FFFC02. 00ECD4 4E F9 JMP ($00023536) ; Jump to 23536. 00ECDA 4E 75 RTS ; Return to start.
In the Sonic Classics version, the code to prevent the Sound Test from being displayed has been modified. The code to check the Hardware Version is still there, but the rest of the instructions have been set to no operation (with two instructions not doing anything useful). Then 0000 is moved to the RAM at 00FFFC02 (so the Sound Test will not display).
Code is activated before the SEGA Logo (Sonic Classic - USA/Europe V1.1): 1224F6 10 39 MOVE.B ($00A10001),D0 ; Copy Hardware Version Byte (A10001) to D0. 1224FC 02 00 ANDI.B #$C0,D0 ; Perform a logical AND on C0 and byte in D0 (basically bits 5 to 0 will always become 0, while bit 7 [Region] and bit 6 [Display] are kept the same). 122500 04 00 SUBI.B #$00,D0 ; Subtract 0 from D0. 122504 4E 71 NOP ; No operation. 122506 4E 71 NOP ; No operation. 122508 4E 71 NOP ; No operation. 12250A 4E 71 NOP ; No operation. 12250C 13 FC MOVE.B #$00,($00FF0A3A) ; Move 00 to FF0A3A. 122514 4E 75 RTS ; Return to start. Code is activated before the Title Screen (Sonic Classic - USA/Europe V1.1): 10E10C 33 FC MOVE.W #$0000,($00FFFC02) ; Move 0000 to FFFC02. 10E114 61 00 BSR #$0BAE [10ECC4] ; Jump to 0BAE.
The game has 26 tracks (this includes the "No Music" track)", but the game only allows 19 of them to be selected in the Sound Test. The programmers have added some code that checks the Hardware Version of the Mega Drive. If the Mega Drive is Japanese, then it increases the value so all 26 tracks can be selected instead of 19.
Code to unlock extra sounds if the Hardware Version is Japan (USA Version): 0227FC 1E 39 MOVE.B ($00A10001),D7 ; Copy Hardware Version byte (A10001) to D7. 022802 02 07 ANDI.B #$C0,D7 ; Check bits 7 & 6 from D7 (Region & Display). 022806 66 04 BNE #$04 [02280C] ; If bits 7 & 6 are not 00, then jump to 2280C. 022808 14 3C MOVE.B #$1A,D2 ; Copy byte 1A to D2 (26 tracks can be selected). 02280C
If you go to the following ROM location, you can change the hex byte from 13 to 1A. This will allow you to select all the tracks on any Hardware Version of the Mega Drive.
Number of tracks to select (USA Version): 022839 = Number of "Music Tracks" that can be selected in the Sound Test.
Present in the Sound Test are 6 unused tracks. These are mostly leftover tracks from the Genesis Puyo Puyo. Some are based from Genesis Puyo Puyo, but have been updated to use different instruments and actual drum samples, rather than the noise-based percussion instruments that were used in the original game.
|01||A rendition of Kraftwerk's "Home Computer", removed for licensing reasons. In an earlier build of the game, this was the title screen music.|
|0C||The Stage Clear original track from the Genesis Puyo Puyo.|
|0F||The Brave of Puyopuyo original track from the Genesis Puyo Puyo. A remixed version of this track is used before you play against Dr. Robotnik.|
|10||The Theme of Puyopuyo original track from the Genesis Puyo Puyo. A remixed version of this track is used for the Cast Roll.|
|14||A faster and slightly altered version of the Stage 13 Battle Theme.|
|15||A very weird sound.|
Game Genie Codes
If you have a Game Genie, then use the following cheat codes to unlock the Sound Test and select all the tracks.
Dr. Robotnik's Mean Bean Machine (USA Version): F2WA-EA8J - Skip the Region Check. BA4T-EA2R - Disable Checksum. CHTT-BCAC - Unlock the Sound Test. DJYA-FEK2 - Listen to the unused music in Sound Test. Dr. Robotnik's Mean Bean Machine (Europe Version): F2WA-EA8N - Skip the Region Check. BA4T-EA2W - Disable Checksum. CHTT-BCAJ - Unlock the Sound Test. DJYA-FEK6 - Listen to the unused music in Sound Test. Sonic Classic (USA/Europe V1.1): CTDW-TA3C - Disable Checksum. 99TV-B92R - Unlock the Sound Test. DJYB-FENC - Listen to the unused music in Sound Test. Sonic Compilation (Europe V1.0): MJAW-TRCR - Skip the Region Check. CHTV-BCAR - Unlock the Sound Test. DJYB-FENC - Listen to the unused music in Sound Test.
The checksum error screen from the Genesis Puyo Puyo still exists in this game, and is still triggered in the same way, which is of course the ROM checksum failing.
The game contains tilemaps from the 1P VS 2P and Endless Mode used in Puyo Puyo.
The tilemap is split in many parts. Find all of these.
Note that while the tileset for Endless Mode still exists, the 1P VS 2P one doesn't.
Sixth Puyo Color
Color ID: 02
Like in Puyo Puyo, code for the sixth colored puyo still exists here and its palette is used properly. As the graphics were overwritten, in the fixed screenshot tiles from the violet puyo are used.
The Korean version changed the lockout error message to capital letters, and corrected the "onry" typo to "only".
There is a code that can bypass the lockout error message by entering the following inputs on controller 2:
A A ↑ → ↓ ← B B → ↓ ← ↑ C C ↓ ← ↑ → S S
Note: This can only be attempted once. If you mess up, then you will need to reset your console to try again.
Code to detect if the correct inputs on controller 2 have been pressed: ROM:0002253E @@ChkCode: ; CODE XREF: ObjLockoutBypass+2Cj ROM:0002253E lea (r_P2_Data).l,a1 ROM:00022544 lea (LockoutBypassCode).l,a2 ROM:0002254A move.w $26(a0),d0 ROM:0002254E move.b (a2,d0.w),d0 ROM:00022552 cmpi.b #$FF,d0 ROM:00022556 beq.s @@BypassLockout ROM:00022558 move.b 1(a1),d1 ROM:0002255C beq.s @@NoButton ROM:0002255E cmp.b d0,d1 ROM:00022560 bne.s @@NoMatch ROM:00022562 addq.w #1,$26(a0) ROM:00022566 ROM:00022566 @@NoButton: ; CODE XREF: ObjLockoutBypass+52j ROM:00022566 rts ROM:00022568 ; --------------------------------------------------------------------------- ROM:00022568 ROM:00022568 @@BypassLockout: ; CODE XREF: ObjLockoutBypass+4Cj ROM:00022568 move.b #0,(r_BC_Stop).l ROM:00022570 rts ROM:00022572 ; --------------------------------------------------------------------------- ROM:00022572 ROM:00022572 @@NoMatch: ; CODE XREF: ObjLockoutBypass+1Aj ROM:00022572 ; ObjLockoutBypass+26j ... ROM:00022572 jsr (ObjDelay).l ROM:00022578 nop ROM:0002257A rts ... ROM:00023520 LockoutBypassCode:dc.b $40 ; DATA XREF: ObjLockoutBypass+3Ao ROM:00023521 dc.b $40 ROM:00023522 dc.b 1 ROM:00023523 dc.b 8 ROM:00023524 dc.b 2 ROM:00023525 dc.b 4 ROM:00023526 dc.b $10 ROM:00023527 dc.b $10 ROM:00023528 dc.b 8 ROM:00023529 dc.b 2 ROM:0002352A dc.b 4 ROM:0002352B dc.b 1 ROM:0002352C dc.b $20 ROM:0002352D dc.b $20 ROM:0002352E dc.b 2 ROM:0002352F dc.b 4 ROM:00023530 dc.b 1 ROM:00023531 dc.b 8 ROM:00023532 dc.b $80 ROM:00023533 dc.b $80 ROM:00023534 dc.b $FF ROM:00023535 dc.b 0