Difference between revisions of "Bionic Commando"

From NES Hacker Wiki
Jump to: navigation, search
Line 522: Line 522:
 
  10 - Dead
 
  10 - Dead
 
  11 - Passing through a door)
 
  11 - Passing through a door)
  060C - Ego Frame number (2-6 walking, A - Idle, 1 - duck, more)
+
  060C - Player Frame number (2-6 walking, A - Idle, 1 - duck, more)
 
   
 
   
 
  0611 - Arm swinging
 
  0611 - Arm swinging
  0620 - Flag for direction Ego is facing (0 - Right, 1 - Left)
+
  0620 - Flag for direction Player is facing (0 - Right, 1 - Left)
 
   
 
   
  0625 - Ego position on swing and swing failure values (1-7)
+
  0625 - Player position on swing and swing failure values (1-7)
 
   
 
   
 
  062C - Flag for direction Enemy 1 is facing
 
  062C - Flag for direction Enemy 1 is facing
  0633 - Flag for direction Ego is facing (0 - Right, 1 - Left)
+
  0633 - Flag for direction Player is facing (0 - Right, 1 - Left)
 
  0634 - Flag for direction bullet 1 is moving (0 - Right, 1 - Left)
 
  0634 - Flag for direction bullet 1 is moving (0 - Right, 1 - Left)
 
  0635 - Flag for direction bullet 1 is moving (0 - Right, 1 - Left)
 
  0635 - Flag for direction bullet 1 is moving (0 - Right, 1 - Left)
 
  0636 - Flag for direction bullet 1 is moving (0 - Right, 1 - Left)
 
  0636 - Flag for direction bullet 1 is moving (0 - Right, 1 - Left)
 
   
 
   
  063B-063E - Flag for direction Enemy 1 is facing
+
  063B-0644 - Flag for direction Enemy/NPC 1 is facing
 
0642 - Outside neutral zone flag (in some areas)
 
 
   
 
   
 
  0648 - Bullet 1 active Flag (Flare counts as a bullet)
 
  0648 - Bullet 1 active Flag (Flare counts as a bullet)
Line 543: Line 541:
 
  064A - Bullet 1 active Flag
 
  064A - Bullet 1 active Flag
 
  064B - POW active flag
 
  064B - POW active flag
 
 
  064C - Arm State (0 - none, 1 - out, 2 - connected)
 
  064C - Arm State (0 - none, 1 - out, 2 - connected)
 
  0647 - Enemy 1 X position
 
  0647 - Enemy 1 X position
Line 550: Line 547:
 
  0654 - Gets set from 1 to 0 when you pickup the delta comm
 
  0654 - Gets set from 1 to 0 when you pickup the delta comm
 
   
 
   
  065A - Ego State
+
  065A - Player State
 
  00 - Idle
 
  00 - Idle
 
  01 - Walking
 
  01 - Walking
Line 597: Line 594:
 
  06B5 - Object 8 effects
 
  06B5 - Object 8 effects
 
   
 
   
  06BA - Effects ego collisions
+
  06BA - Effects Player collisions
 
   
 
   
  06BF - Arm distance from ego
+
  06BF - Arm distance from Player
 
   
 
   
 
  06D2 - Arm throw state (3 - Up, 6 - Up angle, 4 - Straight, 5 - Ducking)
 
  06D2 - Arm throw state (3 - Up, 6 - Up angle, 4 - Straight, 5 - Ducking)
Line 610: Line 607:
 
  0714 - Object 4 bouncing flag
 
  0714 - Object 4 bouncing flag
 
   
 
   
  0719 - Ego Y velocity
+
  0719 - Player Y velocity
 
   
 
   
 
  0724 - Object 1 Y velocity
 
  0724 - Object 1 Y velocity
 
  0725 - Object 2 Y velocity
 
  0725 - Object 2 Y velocity
 
   
 
   
  072C - Increments by 10 as ego flies through the air.
+
  072C - Increments by 10 as Player flies through the air.
 
   
 
   
 
  0737 - Object 1 counter
 
  0737 - Object 1 counter
Line 622: Line 619:
 
  073A - Object 4 counter
 
  073A - Object 4 counter
 
   
 
   
  073F - Unknown Ego status (00 - Init, Move - A0, 20 - Falling)
+
  073F - Unknown Player status (00 - Init, Move - A0, 20 - Falling)
 
   
 
   
 
  074A - Enemy jumping status (BD - Normal, 28 - Jumping)
 
  074A - Enemy jumping status (BD - Normal, 28 - Jumping)
Line 632: Line 629:
 
   
 
   
 
  0779 - Player hit points (0-8)
 
  0779 - Player hit points (0-8)
  077A - Player bullet's damage value 1
+
  077A - Player bullet's damage, bullet 1
  077B - Player bullet's damage value 2
+
  077B - Player bullet's damage, bullet 2
  077C - Player bullet's damage value 3
+
  077C - Player bullet's damage, bullet 3
   
+
  077D - POW's damage
 +
 
 
  0783 - Enemy 1 HP  When killed = FF until bullet goes away. Includes bosses and main systems.
 
  0783 - Enemy 1 HP  When killed = FF until bullet goes away. Includes bosses and main systems.
 
  0784 - Enemy 2 HP
 
  0784 - Enemy 2 HP
Line 655: Line 653:
 
  07AC - Bullet canister 3 timeout and hop count
 
  07AC - Bullet canister 3 timeout and hop count
 
   
 
   
  07E3 - Flag for ego falling (0 - falling, 1 - on ground or arm attached)
+
  07E3 - Flag for player falling (0 - falling, 1 - on ground or arm attached)
  07E6 - Ego State
+
  07E6 - Player State
 
  00 - Not on screen
 
  00 - Not on screen
 
  01 - Walking
 
  01 - Walking
Line 673: Line 671:
 
  11 - Injured
 
  11 - Injured
 
  12 - Dead)
 
  12 - Dead)
  07E7 - Same as above.
+
  07E7 - Mirror of 07E6
 
   
 
   
 
  07EB - Hyper Bazooka flag
 
  07EB - Hyper Bazooka flag
Line 679: Line 677:
 
===ROM Addresses===
 
===ROM Addresses===
  
  28010-2B00F - Bank containing Sprite datas
+
  28010-2B00F - Bank containing Sprite data
 
   
 
   
 
  2F2DC - Main map Tilemap. Describes what 8x8 tile make up each tile the Area map.
 
  2F2DC - Main map Tilemap. Describes what 8x8 tile make up each tile the Area map.
Line 706: Line 704:
 
         3F60C (18) : Item (Gamma communicator) found in 1st chamber in Area 14.
 
         3F60C (18) : Item (Gamma communicator) found in 1st chamber in Area 14.
 
         3F60F (19) : Item (Delta communicator) found in 2nd chamber in Area 15.
 
         3F60F (19) : Item (Delta communicator) found in 2nd chamber in Area 15.
         3F610 (17) : Item (Beta communcator) found in 1st chamber in Area 16.
+
         3F610 (17) : Item (Beta communicator) found in 1st chamber in Area 16.
 
         3F614 (04) : Item (Machine gun) found in 1st chamber in Area 18.
 
         3F614 (04) : Item (Machine gun) found in 1st chamber in Area 18.
 
         3F615 (04) : Item (Machine gun) found in 2nd chamber in Area 18.
 
         3F615 (04) : Item (Machine gun) found in 2nd chamber in Area 18.

Revision as of 14:30, 5 April 2013

Bionic Commando is a platform game where you play the role of Rad in his battle against the BADDS to rescue Super Joe and stop their evil empire from taking over the world. Rather than allow the player to jump, all vertical movements must be made using your trusty bionic arm. This creates a difficult learning curve, but once arm manipulation is learned, the game becomes relatively easy. Each area ends with a boss battle to win a new power up item.

Easy Cheats

Addr Val Cmp Description
Icon-Lives.png C135 09 02 Start with 9 Lives
Icon-Lives.png C135 63 02 Start with 99 Lives
Icon-Lives-Infinite.png 004A 09 - Infinite Lives
Icon-HitPoints-Infinite.png 0779 06 - Infinite Hit Points
Icon-Weapon.png 04CC 01 - Start With Rocket Launcher
Icon-Weapon.png 04CD 01 - Start With Wide Cannon
Icon-Weapon.png 04CE 01 - Start With Joe's Machinegun
Icon-Weapon.png 04CF 01 - Start With 3-Way
Icon-Armor.png 04D2 01 - Start With Pendant
Icon-Armor.png 04D3 01 - Start With Helmet
Icon-Armor.png 04D4 01 - Start With Bulletproof Vest
Icon-Item.png 04D9 01 - Start With Flare Bomb
Icon-Item.png 04DA 01 - Start With Medicine
Icon-Item.png 04DB 01 - Start With Permit
Icon-Weapon.png 04DC 01 - Start With Steel Boots
Icon-Weapon.png 04DD 01 - Start With Rapid Fire Device
Icon-Item.png 04E1 01 - Start With Beta Communicator
Icon-Item.png 04E2 01 - Start With Gamma Communicator
Icon-Item.png 04E3 01 - Start With Delta Communicator
Icon-Powerup.png 04C2 00 - Infinite Medicine (When equipped)
Icon-Powerup.png 0697 FF - POW Remains Until You Leave the Room
Icon-Powerup.png 04C1 01 - Flare Bombs Unnecessary In Area 4
Icon-Warp.png 04F7 01 - Hidden Passages Revealed
Icon-Continue.png 04FA 09 - Infinite Continues
Icon-Challenge.png C135 01 02 Start With 1 Life
Icon-Challenge.png 004A 00 - Start With 1 Life, No 1 Ups
Icon-Challenge.png 0779 00 - No Bonus Hit Points
Icon-Challenge.png 04DA 00 - Can't Obtain Medicine (Item)
Icon-Challenge.png 04FA 00 - No Continues
See the guide on Easy Cheats to find out how to use these.

North America

Bionic Commando.png

Memory Addresses

000A - Accumulator Register

000F - Gets set to 0A when an action is performed
0019 - The column of the highlighting box at equipment screen
001A - The row of the highlighting box at equipment screen
001D - Flag for which direction player is facing (00 - left, 01 - right)

004A - Player Lives
004D - Area (Is updated on map screen as helicopter moves) 

0054-0055 - The location as the title logo is drawn on the screen

0057 - The game over screen timeout

005F - Changes with player position or enemy position if one if on the screen (probably a temp variable)

0061 - Player X position on screen (Read only)
0062 - Player Y position on screen (Read only)

006A-006B - Delay after title screen finishes drawing to start intro or demo.

0080 - The cursor toggle (0-Comm / 1-Wire, 0-Desc / 1-Tran)

0082 - Flag during intro story. 08 - Clear text. 09 - Writing text. 0A - Waiting after text. 0B - Fade out.

0085 - Toggles from 1 to 0 as text is being written to the screen during intro

0087-0088 - Delay counters for writing text and clearing text during intro story

00C0-00EF - Loaded palette colors.

A Button
| B Button
| | Start
| | | Select
| | | | Up
| | | | | Down
| | | | | | Left
| | | | | | | Right
| | | | | | | |
0:0:0:0:0:0:0:0

00F8 - Controller 1 Press (0 - Idle, 1 - Right, 2 - left, 4 - Down, 8 - Up, 10 - Start, 20 - Select, 40 - B, 80 - A)
00FA - Controller 1 Down  (0 - Idle, 1 - Right, 2 - left, 4 - Down, 8 - Up, 10 - Start, 20 - Select, 40 - B, 80 - A)

0106 - Destination area part 1 in map mode
0107 - Destination area part 2 in map mode

0150-01F0 - Sound data being processed
01FC-01FF - Stack

H Mirror
| V Mirror
| | Priority
| | | ??? Palette
0:0:0:000 00 ------- Effects Byte

00 - Object Y Position
01 - Object #
02 - Object Flags
03 - Object X Position

0200-02FF - Sprite Memory
0300-03FF - Name Table?

0400-043F - PPU Memory used to animate the background. (Enemy doors, text, fire, etc.)

0440 - Map Helicopter - Process Flag (00 - Ignore, 01 - Active, +80 - Hidden)
0441 - Map Truck 1 - Process Flag
0442 - Map Truck 2 - Process Flag
0443 - Map Truck 3 - Process Flag
0444 - Map Truck 4 - Process Flag
0445 - Map Truck 5 - Process Flag

0449 - Map Helicopter Frame
044A - Map Truck 1 - Pattern (01) The patterns predict how the trucks turn when they reach each area.
044B - Map Truck 2 - Pattern (03)
044C - Map Truck 3 - Pattern (04)
044D - Map Truck 4 - Pattern (05)
044E - Map Truck 5 - Pattern (07)

0450 - Cover up object for secret passage between areas 15 and 18
0451 - Cover up object for secret passage between areas 14 and 17
0452 - Map Helicopter - X
0453 - Map Truck 1 - X
0454 - Map Truck 2 - X
0455 - Map Truck 3 - X
0456 - Map Truck 4 - X
0457 - Map Truck 5 - X

045C - Map Truck 1 - Unknown Counter
045D - Map Truck 2 - Unknown Counter
045E - Map Truck 3 - Unknown Counter
045F - Map Truck 4 - Unknown Counter
0460 - Map Truck 5 - Unknown Counter

0464 - Map Helicopter - Y
0465 - Map Truck 1 - Y
0466 - Map Truck 2 - Y
0467 - Map Truck 3 - Y
0468 - Map Truck 4 - Y
0469 - Map Truck 5 - Y

046D - Map Helicopter Propeller toggle (00 - Spin 1, C0 - Spin 2)
046E - Map Truck 1 - Unknown Counter
046F - Map Truck 2 - Unknown Counter
0470 - Map Truck 3 - Unknown Counter
0471 - Map Truck 4 - Unknown Counter
0472 - Map Truck 5 - Unknown Counter

0476 - Map Helicopter - Graphic offset
0477 - Map Truck 1 - Graphic offset
0478 - Map Truck 2 - Graphic offset
0479 - Map Truck 3 - Graphic offset
047A - Map Truck 4 - Graphic offset
047B - Map Truck 5 - Graphic offset

047F - Map Helicopter - Direction (0 - Right, 1 - Down+Right, 2 - Down, 3 - Down+Left, 4 - Left, 5-Up+Left, 6 - Up, 7 - Up+Right)
0480 - Map Truck 1 - Direction
0481 - Map Truck 2 - Direction
0482 - Map Truck 3 - Direction
0483 - Map Truck 4 - Direction
0484 - Map Truck 5 - Direction

0488 - Map Loop (0 - Reset, 1 - Idle, 2 - Moving)
0489 - Map Truck 1 - Status for next direction (1 - Idle, 2 - Switch to next direction)
048A - Map Truck 2 - Status for next direction
048B - Map Truck 3 - Status for next direction
048C - Map Truck 4 - Status for next direction
048D - Map Truck 5 - Status for next direction

0491 - Map Status (00 - Descend Screen, 01 - Please Instruct Us / Moving, 02 - Descend/Transfer, 03 - Choose Destination)
049A - Map Helicopter Transfer index (2, 4, 6, 8, A) - Also countdown after collision with truck.

04A3 - The number of the truck that you last hit (1-5 trucks, 7 - Passage 18-15 8 - Passage 14-17)
04A4 - Map Truck 1 - Hidden Timeout (Set to FF when you defeat a truck. When it becomes 0, truck flag is ANDed with 80)
04A5 - Map Truck 2 - Hidden Timeout 
04A6 - Map Truck 3 - Hidden Timeout 
04A7 - Map Truck 4 - Hidden Timeout 
04A8 - Map Truck 5 - Hidden Timeout 

04AD - Map Truck 1 - Next index direction
04AE - Map Truck 2 - Next index direction
04AF - Map Truck 3 - Next index direction
04B0 - Map Truck 4 - Next index direction
04B1 - Map Truck 5 - Next index direction

04B5 - Map Helicopter - Area
04B6 - Map Truck 1 - Area
04B7 - Map Truck 2 - Area
04B8 - Map Truck 3 - Area
04B9 - Map Truck 4 - Area
04BA - Map Truck 5 - Area

04BE - The number of the door that you last exited. Used for where to return you when you die.
04BF - Door locked flag (only gets checked when an area is initialized) Only one door can be locked per map.

04C1 - Flare used flag (00 - No, 01 - Yes)
04C2 - Medicine used flag (00 - No, 01 - Yes)

04CA - Selected Gun (0 - Rifle, 1 - Launcher, 2 - Wide, 3 - Machine, 4 - 3 Way)
04CB - Rifle Flag
04CC - Rocket Launcher Flag
04CD - Wide Cannon Flag
04CE - Machinegun Flag
04CF - 3-Way Flag
04D0 - Unused Gun Flag 
04D1 - Selected Armor (0 - Pendant, 1 - Helmet, 2 - BPV)
04D2 - Pendant Flag
04D3 - Helmet Flag
04D4 - Bulletproof Vest Flag
04D5 - Unused Armor Flag 1
04D6 - Unused Armor Flag 2
04D7 - Unused Armor Flag 3
04D8 - Selected Item (0 - Flares, 1 - Medicine, etc.)
04D9 - Flare Bomb Flag
04DA - Medicine Flag
04DB - Permit Flag
04DC - Steel Boots Flag
04DD - Rapid Fire Device Flag
04DE - Unused Item Flag
04DF - Selected Communicator (0 - Alpha, 1 - Beta, 2 - Gamma, 3 - Delta)
04E0 - Alpha Communicator Flag
04E1 - Beta Communicator Flag
04E2 - Gamma Communicator Flag
04E3 - Delta Communicator Flag
04E4 - Unused Communicator Flag 1
04E5 - Unused Communicator Flag 2
04E6 - The highlighted position in the item selection screen
04E7 - Bullet Canisters Collected Place holder 9xx
04E8 - Bullet Canisters Collected Place holder x9x
04E9 - Bullet Canisters Collected Place holder xx9
04EA - Maximum Player Hit Points (00 at game start, loaded into current Hit Points)
04EB - Beat Area 1 Flag
04EC - Beat Area 2 Flag
04ED - Beat Area 3 Flag
04EE - Beat Area 4 Flag
04EF - Beat Area 5 Flag
04F0 - Beat Area 6 Flag
04F1 - Beat Area 7 Flag
04F2 - Beat Area 8 Flag
04F3 - Beat Area 9 Flag
04F4 - Beat Area 10 Flag
04F5 - Beat Area 11 Flag
04F6 - Beat Area 12 Flag (Unused?)
04F7 - Underground passage's found flag (00 - No, 01 - Yes)

04FA - Eagle Badges

0537 - Bullet 1 is active flag
0538 - Bullet 2 is active flag
0539 - Bullet 3 is active flag
053A - POW is active flag
053B - Arm Flag (0 - None, 1 - Out, 80 - ?)
053C - Enemy Bullet 1 Active Flag
053D - Enemy Bullet 2 Active Flag
053E - Enemy 1 Active Flag (Main System Bullet counts as enemy)
053F - Enemy 2 Active Flag
0540 - Enemy 3 Active Flag
0541 - Object 1 Active Flag
0542 - Object 2 Active Flag
0543 - Object 3 Active Flag
0544 - Object 4 Active Flag
0545 - Object 5 Active Flag
0546 - Object 6 Active Flag
0547 - Object 7 Active Flag
0548 - Object 8 Active Flag

055D - Player Bullet 1 flag. (00 - Moving or hit wall, 01 - Off Screen right, FF - Off screen left)
055E - Player Bullet 2 flag. (00 - Moving or hit wall, 01 - Off Screen right, FF - Off screen left)
055F - Player Bullet 3 flag. (00 - Moving or hit wall, 01 - Off Screen right, FF - Off screen left)

0562 - Enemy bullet 1 flag (00 - Moving or hit wall, 01 - Off Screen right, FF - Off screen left)
0563 - Enemy bullet 2 flag (00 - Moving or hit wall, 01 - Off Screen right, FF - Off screen left)
0564 - Enemy 1 flag opposite?
0565 - Enemy 2 flag opposite?
0566 - Enemy 3 flag opposite?
0567 - Object 1 X Screen offset (How many screens away this object is from player)
0568 - Object 2 X Screen offset
0569 - Object 3 X Screen offset
056A - Object 4 X Screen offset
056B - Object 5 X Screen offset
056C - Object 6 X Screen offset
056D - Object 7 X Screen offset
056E - Object 8 X Screen offset
056F - Player X position
0570 - Bullet 1 X position
0571 - Bullet 2 X position
0572 - Bullet 3 X position
0573 - POW X Position
0574 - Arm X position
0575 - Enemy Bullet 1 X position
0576 - Enemy Bullet 2 X position
0577 - Enemy 1 X Position (Main system bullet counts as enemy)
0578 - Enemy 2 X position
0579 - Enemy 3 X position
057A - Object 1 X position
057B - Object 2 X position
057C - Object 3 X position
057D - Object 4 X position
057E - Object 5 X position
057F - Object 6 X position
0580 - Object 7 X position
0581 - Object 8 X position
0582 - Highlighting box X position in prep screen.
0583 - Increments by 20 when player attempts to alter X position.

058B - Increments by 20 when enemy attempts to alter X position.
058C - Increments by 20 when enemy attempts to alter X position.
058D - Increments by 20 when enemy attempts to alter X position.

058F - Enemy Cycle by 20

05A1 - Object 1 Y Screen offset (How many screens away this object is from player)
05A2 - Object 2 Y Screen offset 
05A3 - Object 3 Y Screen offset 
05A4 - Object 4 Y Screen offset 
05A5 - Object 5 Y Screen offset 
05A6 - Object 6 Y Screen offset 
05A7 - Object 7 Y Screen offset 
05A8 - Object 8 Y Screen offset 
05A9 - Player Y position
05AA - Bullet 1 Y Position
05AB - Bullet 2 Y Position
05AC - Bullet 3 Y Position
05AD - POW Y Position
05AE - Arm Y Position
05AF - Enemy Bullet 1 Y position
05B0 - Enemy Bullet 2 Y position
05B1 - Enemy 1 Y Position (Main system bullet counts as enemy)
05B2 - Enemy 2 Y Position
05B3 - Enemy 3 Y Position
05B4 - Object 1 Y position
05B5 - Object 2 Y position
05B6 - Object 3 Y position
05B7 - Object 4 Y position
05B8 - Object 5 Y position
05B9 - Object 6 Y position
05BA - Object 7 Y position
05BB - Object 8 Y position
05BC - Highlighting box Y position in prep screen.
05BD - Increments by 20 when player attempts to alter Y position.

05C5 - Increments by 20 when enemy attempts to alter X position.
05C6 - Increments by 20 when enemy attempts to alter X position.
05C7 - Increments by 20 when enemy attempts to alter X position.

05D0 - Player Frame (26 - Idle, 4B - Walking, 71 - Duck/Arm Angle, FD - Arm Up, 
05DA - Enemy 1 state
05DB - Enemy 1 Graphic pointer
05DD - Enemy 1 Frame
05DE - Main System Explosion Frame
05DF - Enemy 2 state
05E0 - Enemy 3 state
05E9 - Player Swing Frame
05EF - Enemy 1 Graphic pointer 2

05F8 - Player Frame (00 - Idle, 48 - connected up, 60 - connected angle 2A, 5?, 8? - Walking)

0604 - Enemy Animation Frame
060A - Player State
	00 - Idle
	01 - Walking
	02 - Ducking
	03 - Arm attached Directly Up
	04 - Arm attached angle
	05 - Falling
	06 - Parachuting
	08 - Arm attached duck/walk
	0A - Injured
	10 - Dead
	11 - Passing through a door)
060C - Player Frame number (2-6 walking, A - Idle, 1 - duck, more)

0611 - Arm swinging
0620 - Flag for direction Player is facing (0 - Right, 1 - Left)

0625 - Player position on swing and swing failure values (1-7)

062C - Flag for direction Enemy 1 is facing
0633 - Flag for direction Player is facing (0 - Right, 1 - Left)
0634 - Flag for direction bullet 1 is moving (0 - Right, 1 - Left)
0635 - Flag for direction bullet 1 is moving (0 - Right, 1 - Left)
0636 - Flag for direction bullet 1 is moving (0 - Right, 1 - Left)

063B-0644 - Flag for direction Enemy/NPC 1 is facing

0648 - Bullet 1 active Flag (Flare counts as a bullet)
0649 - Bullet 1 active Flag
064A - Bullet 1 active Flag
064B - POW active flag
064C - Arm State (0 - none, 1 - out, 2 - connected)
0647 - Enemy 1 X position

0652 - Darkness status (0 - Light, 1 - Pitch Black, 2 - Eyes Adjusted)
0654 - Gets set from 1 to 0 when you pickup the delta comm

065A - Player State
	00 - Idle
	01 - Walking
	02 - Ducking
	03 - Arm attached Directly Up
	04 - Arm attached angle
	05 - Falling at an angle
	07 - Falling straight down
	0A - Recoiling from damage
	10 - Dead

0665 - Enemy 1 State (0 - Idle, Walking, 2/3 - Jumping down, etc.) Changes per enemy
0666 - Enemy 2 State (0 - Idle, Walking, 2/3 - Jumping down, etc.)

0680 - Delay from death to reset.
0681 - Bullet 1 duration
0682 - Bullet 1 duration
0683 - Bullet 1 duration
0684 - POW duration x256

068B - The timeout for resetting the palette to semi dark in area 4.

0697 - POW duration x1

069E - Effect darkness timeouts

06A7 - Bullet 1 state
	00 - none
	02 - Hit something/Timed Out
	08 - remove
	0A - in flight
	+10 - if bullet is a 2x2 sprite like rocket launcher or 3-way.
06A8 - Bullet 2 state
06A9 - Bullet 3 state

06AB - Flag for arm attached (00 - not attached, F7 - attached)
06AC - Enemy Bullet 1 effects
06AD - Enemy Bullet 2 effects
06AE - Object 1 effects (Add 10 for shimmering, 20 for behind background, 40 for flashing)
06AF - Object 2 effects
06B0 - Object 3 effects
06B1 - Object 4 effects
06B2 - Object 5 effects
06B3 - Object 6 effects
06B4 - Object 7 effects
06B5 - Object 8 effects

06BA - Effects Player collisions

06BF - Arm distance from Player

06D2 - Arm throw state (3 - Up, 6 - Up angle, 4 - Straight, 5 - Ducking)

06D7 - Slow accumulator

0711 - Object 1 bouncing flag
0712 - Object 2 bouncing flag
0713 - Object 3 bouncing flag
0714 - Object 4 bouncing flag

0719 - Player Y velocity

0724 - Object 1 Y velocity
0725 - Object 2 Y velocity

072C - Increments by 10 as Player flies through the air.

0737 - Object 1 counter
0738 - Object 2 counter
0739 - Object 3 counter
073A - Object 4 counter

073F - Unknown Player status (00 - Init, Move - A0, 20 - Falling)

074A - Enemy jumping status (BD - Normal, 28 - Jumping)

075D - Object 1 incrementer (for soldiers it counts down from 8. When 0 is reached, they jump)
075E - Object 2 incrementer (Bullet canisters count up by 10 each time they bounce)
075F - Object 3 incrementer
0760 - Object 4 incrementer

0779 - Player hit points (0-8)
077A - Player bullet's damage, bullet 1
077B - Player bullet's damage, bullet 2
077C - Player bullet's damage, bullet 3
077D - POW's damage
0783 - Enemy 1 HP   When killed = FF until bullet goes away. Includes bosses and main systems.
0784 - Enemy 2 HP
0785 - Enemy 3 HP
0786 - Enemy 4 HP
0787 - Enemy 5 HP
0788 - Enemy 6 HP
0789 - Enemy 7 HP
078A - Enemy 8 HP
078B - Enemy 9 HP
078C - Enemy 10 HP

0791 - Arm value of some sort

0796 - Enemy invincibility time

07AA - Bullet canister 1 timeout and hop count
07AB - Bullet canister 2 timeout and hop count
07AC - Bullet canister 3 timeout and hop count

07E3 - Flag for player falling (0 - falling, 1 - on ground or arm attached)
07E6 - Player State
	00 - Not on screen
	01 - Walking
	02 - Ducking
	03 - Arm Up
	04 - Arm walking
	05 - Arm ducking
	06 - Arm Angle
	09 - Climbing
	0A - Parachuting
	0B - Falling
	0C - Swinging 1
	0D - Swinging 2
	0E - Swinging 3
	10 - Idle
	11 - Injured
	12 - Dead)
07E7 - Mirror of 07E6

07EB - Hyper Bazooka flag

ROM Addresses

28010-2B00F - Bank containing Sprite data

2F2DC - Main map Tilemap. Describes what 8x8 tile make up each tile the Area map.
        (Within the map window. The map grid is 26 tiles wide and 18 tiles high.)

3652F - For each Area (01 to 19): Determines if hero enters Area with parachute or not.
        Values:
        01: Parachute in
        00: Enter through door

369AF - Main map Trucks: Pattern and starting Area, combined into one byte for each truck.
        Format:
        High 4 bits: Truck movement pattern.
        Low 4 bits: Starting Area (decides starting X and Y).

3E3CD - Main map Attribute Table buffer.
        3E3CD (23) : VRAM Address High
        3E3CE (C0) : VRAM Address Low
        3E3CF (30) : Number of bytes to write
        3E3D0 and on : Attribute table data. Used to determine what BG palette is used
            for every 16x16 pixel piece of the main game map.

3F60A - For each Room Id from $37 to $44, Item found in special room.
        (Changes what item you get, but does not change sprite)
        3F60B (0F) : Item (Flare bomb) found in 2nd chamber in Area 13. 
        3F60C (18) : Item (Gamma communicator) found in 1st chamber in Area 14.
        3F60F (19) : Item (Delta communicator) found in 2nd chamber in Area 15.
        3F610 (17) : Item (Beta communicator) found in 1st chamber in Area 16.
        3F614 (04) : Item (Machine gun) found in 1st chamber in Area 18.
        3F615 (04) : Item (Machine gun) found in 2nd chamber in Area 18.

3F618 - For each Room Id from $37 to $44, Sprite Address for Item in chamber.
        Each chamber has a 16-bit Address. The value is $FFFF if there is no
        Item in the chamber.
        3F61A (AAC2) : Sprite address (Flare bomb) for 2nd chamber in Area 13.
        3F61C (AAF5) : Sprite address (Gamma comm.) for 1st chamber in Area 14.
        3F622 (AAE4) : Sprite address (Delta comm.) for 2nd chamber in Area 15.
        3F624 (AAD3) : Sprite address (Beta comm.) for 1st chamber in Area 16.
        3F62C (AB06) : Sprite address (Machine gun) for 1st chamber in Area 18.
        3F62E (AB06) : Sprite address (Machine gun) for 2nd chamber in Area 18.

Map Notes

Power Technical Requirements
8  - Must beat areas 1-6 and have gamma communicator
10 - Must beat area 7 and have delta communicator
12 - ?

                        +--+     +--+
                        |10|=====|12|
+--+  +--+  +--+  +--+  +--+     +--+
|13|  |04|==|15|  |07|   || \\    ||
+--+  +--+  +--+  +--+   ||   \\  ||
 || //    \\ ||    || \\ ||    \\ ||
+--+  +--+  +--+  +--+  +--+     +--+
|01|  |16|==|05|  |18|  |08|     |11|
+--+  +--+  +--+  +--+  +--+     +--+
 ||    || // ||       // || \\
 ||   +--+   ||     //  +--+  +--+
 ||   |02|   ||    //   |09|  |19|
 ||   +--+   ||   //    +--+  +--+
 ||    ||    || //       ||
+--+  +--+  +--+  +--+  +--+
|00|  |03|==|06|==|14|  |17|
+--+  +--+  +--+  +--+  +--+

Truck and Helicopter X,Y position for each area
ROM Address: $36824
Area  X, Y
00 - 28, 98
01 - 28, 58
02 - 48, 78
03 - 48, 98
04 - 48, 38
05 - 68, 58
06 - 68, 98
07 - 88, 38
08 - A8, 58
09 - A8, 78
10 - A8, 28
11 - D8, 58
12 - D8, 28
13 - 28, 38
14 - 88, 98
15 - 68, 38
16 - 48, 58
17 - A8, 98
18 - 88, 58
19 - C8, 78

Truck Patterns (beginning with their initial position)
Truck 1 - 4,5,15,4,1,4...
Truck 2 - 3,6,5,2,16,5,6,3...
Truck 3 - 7,8,10,8,19,8,6,8,7...
Truck 4 - 8,19,8,7,18,7,8...
Truck 5 - 10,12,11,10...

Code

End of Area Code

ROM Address: 2B144
B134:C6 6B     DEC $006B       ; Decrease 006B (Delay for reading the end screen dialog)
B136:D0 36     BNE $B16E       ;
B138:C6 6A     DEC $006A       ; Decrease 006A (Delay for reading the end screen dialog)
B13A:10 32     BPL $B16E       ;
B13C:A4 4D     LDY $004D       ; Load Y with the {Area #}
B13E:A9 01     LDA #$01        ; 
B140:99 EA 04  STA $04EA,Y     ; Set the area flag to true for the area we're in
B143:B9 6E B1  LDA $B16E,Y     ; Load the inventory item for this area into A
B146:A8        TAY             ; Transfer A to Y
B147:D0 06     BNE $B14F       ; If there isn't an item...
B149:20 C3 D7  JSR $D7C3       ; ...jump to sub D7C3. Else...
B14F:A9 01     LDA #$01        ; Set A to TRUE
B151:99 CA 04  STA $04CA,Y     ; Set the inventory flag specified by Y to TRUE (See Bionic Commando#End of Area Inventory Items Table)
B154:A9 0A     LDA #$0A        ; Load 10 bullets.
B156:85 26     STA $0026       ; Store the 10 bullets
B158:20 BA D7  JSR $D7BA       ; Call acquire bullets routine.

End of Area Inventory Items Table

Memory Address: B16F
ROM Address: 2B17F
10 - Area 01 - Medicine
08 - Area 02 - Pendant
13 - Area 03 - Rapid Fire Device
03 - Area 04 - Wide Cannon
02 - Area 05 - Rocket Launcher
11 - Area 06 - Permit
00 - Area 07 - Nothing
12 - Area 08 - Steel Boots
05 - Area 09 - 3-Way
00 - Area 10 - Nothing (1up)
0A - Area 11 - Bullet Proof Vest
00 - Area 12 - Nothing


Use these values to alter the end of area rewards. Note: This doesn't change the game text, you must alter that as well.
01 - Rifle Flag
02 - Rocket Launcher Flag
03 - Wide Cannon Flag
04 - Machinegun Flag
05 - 3-Way Flag
08 - Pendant Flag
09 - Helmet Flag
0A - Bulletproof Vest Flag
0F - Flare Bomb Flag
10 - Medicine Flag
11 - Permit Flag
12 - Steel Boots Flag
13 - Rapid Fire Device Flag
16 - Alpha Communicator Flag
17 - Beta Communicator Flag
18 - Gamma Communicator Flag
19 - Delta Communicator Flag

Unknown Routines

9749 - 
B085 -
B9AD - 
C000 - Beginning of code
D6A0 - 
D6C1 - 
D6C7 - Load the graphic from register Y and A
D6CD - 
D6EB - 
D6F1 - 
D754 - Play sound from register Y
D75D - 
D760 - 
D778 - Gets called at game init
D79C - 
D7BA - 
D7BD - Gets called at game init
E8DF - Check for level up?
EA8F - 
F04F - 

FEE2 matches ROM location 3FEF2 (start of truck movement values)

FFFA - Non-Maskable Interrupt (NMI) Address (2 bytes)
FFFC - Reset Vector (2 bytes)
FFFE - IRQ/BRK Vector (2 bytes)

Text

Bionic Commando has a very strange table. The letters are jumbled up in a bizarre offset, most likely due to poor translation (which the game's text also suffers from). There are two files, one for the title screen the other for the game.

Title

20= 
C2='
C4=©
C5=1
C6=9
C7=8
C9=C
CA=A
CC=C
CD=O
CE=M
CF=T
D1=S
D2=R
D3=N
D4=I
D5=U
D6=E
D7=G
D8=V
D9=B
DA=P
DB=H
DC=.,
DD=.
DE=D
DF=L
E0=Y
E1=F
E2=X
E3=!
E4=@
E5=/

Game

00= 
01=F
02=0
03=G
04=1
05=H
06=2
07=I
08=3
09=J
0A=4
0B=K
0C=5
0D=L
0E=6
0F=M
10=7
11=N
12=8
13=O
14=9
15=P
16=A
17=Q
18=B
19=R
1A=C
1B=S
1C=D
1D=T
1E=E
1F=U
20=V
21=+
22=W
23=Δ
24=X
26=Y
28=Z
2A=,
2C='
2E=*
30=.
32=?
34=!
36=α
38=β
3A=γ
3C=d
3E=δ

Japan

Hitler no Fukkatsu - Top Secret.png

The Original Japanese version of the game is called ヒットラーの復活 トップシークレット (Hitler no Fukkatsu: Top Secret)​ translated: Top Secret: The Resurrection of Hitler. In the game, you blast away at Nazis and there are swastikas all over the place.


Europe

Bionic Commando (E).png

The European version of Bionic Commando is nearly identical to the North American version. No attempt was even made to re-synch the audio for the slower PAL frame rate.

Text

The text tables are identical to the North American release.


Links