Variables $10 Copy of PPU Control Register 1 $11 Copy of PPU Control Register 2 $12 Copy of PPU Scroll Register Low $13 Copy of PPU Scroll Register High $15 Copy of gamepad 1 bits $16 Copy of gamepad 2 bits $18-1F LFSR Apparently, bytes $20, $24, $28 and $2C are a sign flag for each BCD number, although they are never used in the game. $21-23 BCD high score $25-27 BCD player 1 score $29-2B BCD player 2 score $2D-2F BCD bonus counter $34 Divider counter $35-3E In-game counters $3F-45 In-game divide-by-10 counters Timers $41-42 Bonus score sprite duration $4E Unknown flag 0 = demo mode/normal gameplay 1 = otherwise (game over, game select, etc.) $4F Unknown flag 0 = Gameplay frozen? 1 = Gameplay unfrozen? $50 Game type 0 = 1 player game A 1 = 1 player game B 2 = 2 player game A 3 = 2 player game B $51 1 player/2 player game flag #18 = 1 Player #1C = 2 Players $52 Current player playing 0 = Player 1 1 = Player 2 $53 Current stage 1 = Barrels 3 = Elevators 4 = Rivets (2 is unused) $54 Level number (off by one, starts with #00) 0 = Level 1 1 = Level 2, etc. $55 Current player lives $56 Current 4-axis movement (excluding jump) 0 = None 1 = Right 2 = Left 4 = Down 8 = Up $57 Player horizontal orientation 1 = Right 2 = Left $58 Demo mode flag 1 = Demo mode 0 = Not in demo mode $59 Jumpman's platform number, counting from bottom to top, starting at 1 Note: in the barrel and rivet stages, the number is exact; in the elevator stage, it is approximate $5A "Jumpman is in contact with a platform" flag (1 = in contact, 0 = not in contact) $5B Vertical position counter - Jumpman climbing a stair in contact with a platform $5C "Vertical cycling counter" - Jumpman climbing a stair without being in contact with a platform (a vertical cycling counter #00-#06) $5D Hardcoded object index, based on stage #09 on stage 1 #03 on stage 3 #00 on stage 4 $5E-64 Barrel status #01 = rolling along platform #02 = rolling down a ladder #08 = falling off a platform's end (and rolling along) #10 = rebounding after falling and hitting a platform #20 = rolling off screen after falling and hitting a platform #40 = ?? #80 = in DK's hands, prior to being thrown #81 = ?? #C0 = falling down below DK, rebounding on each platform (either straight down or in zigzag) #C1 = falling straight down and colliding with a platform #C2 = falling straight down and colliding with the bottom platform $68-$6C Platform floor for the barrels on stage 1 $72-76 Sprite tile number for barrels on stage 1 $8A-8F Barrel step counter $96 Jumpman status 01 = Walking 04 = Jumping 02 = On a staircase 08 = Falling down 0A = Using hammer FF = Dead/dying $9A Stage 4 victory flag $9B Seems to alternate between 0 and 1 on each step that Jumpman takes $9C Vertical position of Jumpman's top-left sprite $BE Flag - Seems to be 1 = "update Jumpman's frame" $C1-C9 "Rivet removed" flag array 0 = present 1 = removed $F0-FB Audio stuff? $F4 Sequence number of note for audio channel 1 $F8 Sequence number of note for audio channel 2 $FA Sequence number of note for audio channel 3 $0100 Local copy of Audio status register $0200-02FF Sprite/object area (4 bytes per sprite) Byte 0 Vertical position Byte 1 Tile number Byte 2 Attributes (flipping/priority/palette) Byte 3 Horizontal position $0330-$036F BKG tiles update list (in the same format that the VRAM Write routine uses) $0330 list size (in bytes) $0331-... Data bytes Last byte must be a #00 (end of list marker) $0400-0401 Stage number player 1/player 2 $0402-0403 Level number player 1/player 2 $0404-0405 Lives player 1/player 2 $0406-0407 Game over player 1/player 2 (1 = Game over) $0408-0409 Extra life awarded flag (1 = awarded, 0 = not awarded) $044F Counter of removed rivets (stage 4) $0505 BKG update flag? #10 = DK frame change $0507-??? Stored high score $050B Demo mode - movement processing has started flag, 1 = started, 0 = not started $050C Demo mode - next movement counter $050D Demo mode - movement type 00 - No movement 01 - Right 02 - Left 05 - Jump 08 - Up $050E Demo mode - recorded movement counter $0510 Game select sprite (asterisk) - Horizontal position $0511 Game select sprite (asterisk) - Vertical position $0512 "Select" is pressed flag $0516 Pause mode 1 = Paused 0 = Unpaused $0517 Seems to be a pause mode transition counter. When pause mode is engaged or disengaged, sprites remain frozen on screen and the pause music plays during the transition. $0518 Silent attract screen iterations ---------------------------------------------------------------------------- Sprite information: The first 4 sprites in the sprite area seem to always be Jumpman's 4 sprites. That is sprites 0-3, in addresses $0200-$020F. Some sprite positions: Sprite # Address $2C0-$2CF bonus score sprites (2 tiles per sprite, 2 bonus score sprites max.) 52-55 $2D0-$2DF the two hammers, barrels stage 56-57 $2E0-$2E7 oil can fire, barrels stage 58-63 $2E8-$2FF Pauline Sprite byte 2 (ID/status) Mario 00(when facing right)/40(when facing left) Pauline 01 Oil can fire 02 Hammers 03 Fire enemy, stage 1 02/42 Bonus score 01 Most likely, things like these are encoded in this byte: -Horizontal mirroring for the sprite -Collision with Jumpman triggers death Sprite tiles: 00-2F Jumpman, frames 0-11 14-17 Jumpman carrying the hammer, frame A 18-1B Jumpman carrying the hammer, frame B 24-27 Jumpman climbing a ladder (the 2 different frames are produced by horizontal sprite mirroring) 30-33 Barrel destroyed, frame A 34-37 Barrel destroyed, frame B 38-3B Barrel destroyed, frame C 3C-3F Barrel destroyed, frame D 40-57 DK falling upside down (after winning stage 4) 60-63 Jumpman finishing the climb of a ladder, frame A 64-67 Jumpman finishing the climb of a ladder, frame B 68-6B Jumpman post-ladder climb, facing towards the background 6C-6F Jumpman rotating while dying, frame D 70-73 Jumpman rotating while dying, frame A 74-77 Jumpman rotating while dying, frame B 78-7B Jumpman rotating while dying, frame C 7C-7F Jumpman dead 80-8F Barrel rolling, frames 0-3 90-93 Barrel in free fall, frame A 94-97 Barrel in free fall, frame B 98-9F Fire enemy (barrels and elevators stage), frames A-B A0-A1 Metallic platform A2 Asterisk (in game select screen) A8-AF Fire enemies (rivets stage), frames A-B C0-C3 Spring, extended C4-C7 Spring, compressed C8-CB Heart (when winning a level) D0-D3 Bonus score, left parts D4 Bonus score, right part ("00") D5-D6 Pauline's head D7-DA Pauline's lower part, frame A DB-DE Pauline's lower part, frame B F6-F7 Hammer in vertical orientation F8-F9 Hammer in horizontal orientation, facing left FA-FB Hammer in horizontal orientation, facing right FC-FD Oil can fire, frame A FE-FF Oil can fire, frame B