If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Notes:The Adventures of Mighty Max (SNES)

From The Cutting Room Floor
(Redirected from Notes:Mighty Max (SNES))
Jump to navigation Jump to search

This page contains notes for the game The Adventures of Mighty Max (SNES).

Boot Up

$81/81D6 A9 00 00    LDA #$0000
$81/81D9 85 D5       STA $D5    [$00:00D5]   //Players: ONE
$81/81DB 64 D3       STZ $D3    [$00:00D3]   //Start Normal
$81/81DD A9 0A 00    LDA #$000A              //Volcano - use Pro Action Replay code 8181DExx to change starting level
$81/81E0 85 DB       STA $DB    [$00:00DB]   //Level
$81/81E2 A9 01 00    LDA #$0001
$81/81E5 85 D7       STA $D7    [$00:00D7]   //SOUND FX: ON
$81/81E7 85 D9       STA $D9    [$00:00D9]   //MUSIC: ON

Options

$81/DEBD A5 D1       LDA $D1    [$00:00D1]   //cursor index in options
$81/DEBF D0 03       BNE $03    [$DEC4]      //branch to $DEC4 if not on Players selection
$81/DEC1 A9 03 00    LDA #$0003              //wrap cursor to Music selection
$81/DEC4 3A          DEC A                   //cursor index -1
$81/DEC5 85 D1       STA $D1    [$00:00D1]
$81/DEC7 80 C6       BRA $C6    [$DE8F]

$81/DEC9 A5 D1       LDA $D1    [$00:00D1]   //cursor index in options
$81/DECB C9 02 00    CMP #$0002              //check if cursor is on Music selection (use Pro Action Replay code 81DECC03 to access Level)
$81/DECE D0 03       BNE $03    [$DED3]      //branch to $DED3 if cursor is not on Music selection
$81/DED0 A9 FF FF    LDA #$FFFF              //wrap cursor to Players selection
$81/DED3 1A          INC A                   //cursor index +1
$81/DED4 85 D1       STA $D1    [$00:00D1]
$81/DED6 80 B7       BRA $B7    [$DE8F]
ROM addr, data
01B080 64DF print PLAYERS selection
01B082 64DF print SOUND FX selection
01B084 64DF print MUSIC selection
01B086 0000 finished (would need to be $64DF to print the 4th option LEVEL, and then #$0000 would need to be inserted at $01B088 to terminate).


ROM addr, data
01B088 0100 number of options for PLAYERS
01B08A 0100 number of options for SOUND FX
01B08C 0100 number of options for MUSIC
01B08E 1800 number of options for LEVEL


ROM addr, data
01B090 B5B0 pointer to PLAYERS text
01B092 CCB0 pointer to SOUND FX text
01B094 E7B0 pointer to MUSIC text
01B096 FEB0 pointer to LEVEL text


ROM addr, data
01B098 C2B0 pointer to ONE text
01B09A C7B0 pointer to TWO text
01B09C DAB0 pointer to OFF text
01B09E E2B0 pointer to ON text
01B0A0 F2B0 pointer to OFF text
01B0A2 F9B0 pointer to ON text
(immediately after this is the beginning of the GAME OPTIONS text, which means there's no pointers to print text for the LEVEL selection index)


$81/DF24 E2 20       SEP #$20
$81/DF26 C2 10       REP #$10
$81/DF28 A2 00 00    LDX #$0000
$81/DF2B 86 7C       STX $7C    [$00:007C]
$81/DF2D A9 83       LDA #$83                //bank
$81/DF2F 85 7E       STA $7E    [$00:007E]
$81/DF31 A0 A4 B0    LDY #$B0A4              //addr for GAME OPTIONS text in options menu
$81/DF34 22 2F F3 81 JSL $81F32F[$81:F32F]   //print text
$81/DF38 C2 30       REP #$30
$81/DF3A 64 08       STZ $08    [$00:0008]   //counter for each selection available in options
$81/DF3C A5 08       LDA $08    [$00:0008]
$81/DF3E 0A          ASL A
$81/DF3F AA          TAX
$81/DF40 BF 80 B0 83 LDA $83B080,x           //load pointer to programming to execute
$81/DF44 F0 1D       BEQ $1D    [$DF63]      //branch to $DF63 if finished loading all options
$81/DF46 F4 5C DF    PEA $DF5C               //push return address to stack (ie, returns to $DF5D)
$81/DF49 3A          DEC A
$81/DF4A 48          PHA
$81/DF4B A5 08       LDA $08    [$00:0008]
$81/DF4D C5 D1       CMP $D1    [$00:00D1]
$81/DF4F F0 06       BEQ $06    [$DF57]      //not checked, but probably related to changing the font color for the current selection
$81/DF57 A9 04 00    LDA #$0004
$81/DF5A 85 C5       STA $C5    [$00:00C5]
$81/DF5C 60          RTS

Game Progress Table

  • The stage order is: Volcano, Space, Inca, Water, Jungle
$82/8007 A5 DB       LDA $DB    [$00:00DB]   //starting level set on boot up, can be changed in options with unused Level option (default $0A = Volcano)
$82/8009 8F 2A 54 7E STA $7E542A[$7E:542A]
$82/800D A9 05 00    LDA #$0005              //Space
$82/8010 8F 2C 54 7E STA $7E542C[$7E:542C]
$82/8014 A9 14 00    LDA #$0014              //Inca
$82/8017 8F 2E 54 7E STA $7E542E[$7E:542E]
$82/801B A9 0F 00    LDA #$000F              //Water
$82/801E 8F 30 54 7E STA $7E5430[$7E:5430]
$82/8022 A9 00 00    LDA #$0000              //Jungle
$82/8025 8F 32 54 7E STA $7E5432[$7E:5432]
$82/8029 A9 00 80    LDA #$8000              //end
$82/802C 8F 34 54 7E STA $7E5434[$7E:5434]

Passwords

  • Contains levels cleared, score, and possibly other data. Note that 2P passwords are longer (probably to store the 2P score)
  • Memory address 7EA29B holds bits of levels that were cleared:
$02 = Water    7E5430 set to #$FFFF
$04 = Inca     7E542E set to #$FFFF
$08 = Space    7E542C set to #$FFFF
$10 = Volcano  7E542A set to #$FFFF