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

Notes:Proto:Bio-Hazard Battle

From The Cutting Room Floor
Jump to navigation Jump to search

This page contains notes for the game Proto:Bio-Hazard Battle.

RAM addresses

FFF6A4 stage index, 16-bit

FFF6E2 TONB string

FFF6EE P1 controller
FFF6EF P2 controller
FFF6F0 P1 controller
FFF6F1 P2 controller

FFF6FE 00=active gameplay FF=boot up ??? TODO
FFF6FF 00=1play mode, 01=2play mode, 02=modem?, 03=modem?

FFF702 FF=stage 3 demo mode 00=stage 4 demo mode

FFF721 current ship selected on player select screen (value=00, 01, 02, 03)
FFF728 P1 controller
FFF729 P1 controller

FFF731 current ship selected on player select screen (value=00, 01, 02, 03)
FFF738 P2 controller
FFF739 P2 controller

Programming

00:0476  42 B8  CLR.L   ($F6DE)                  ; set starting a game flag (i.e., not demo mode)
00:047A  42 78  CLR.W   ($F6CC)
00:047E  61 00  BSR     #$12BC [00:173C]
00:0482  78 0C  MOVEQ   #$0C,D4                  ; lock Modem start (bit $04), Options (bit $08). use PAR code 000482:7808 to unlock Modem start
00:0484  61 00  BSR     #$206E [00:24F4]         ; P2 controller related subroutine
00:0488  67 02  BEQ     #$02 [00:048C]           ; branch to $00048C if P2 controller disconnected/invalid?
00:048A  54 04  ADDQ.B  #2,D4                    ; lock 2play Start (bit $02)
00:048C  70 F0  MOVEQ   #$F0,D0                  ; A,B,C, Start buttons
00:048E  C0 38  AND.B   ($F6F1),D0               ; P2 controller
00:0492  67 04  BEQ     #$04 [00:0498]           ; branch to $000498 if P2 controller buttons not pressed (P1 pressed Start on title screen)
00:0494  88 3C  OR.B    #$05,D4                  ; P2 pressed Start on title screen, so lock 1play start (bit $01) and Modem start (bit $04)
00:0498  41 FA  LEA     $FFAE(PC),A0
00:049C  32 3C  MOVE.w  #$0070,D1
00:04A0  74 50  MOVEQ   #$50,D2
00:04A2  76 00  MOVEQ   #$00,D3
00:04A4  61 00  BSR     #$6B0A [00:6FB0]

...

00:0880  61 00  BSR     #$FFFFFBF4 [00:0476]
00:0884  70 00  MOVEQ   #$00,D0
00:0886  4E B9  JSR     ($000F0000)
00:088C  4A B8  TST.L   ($F6DE)
00:0890  67 2A  BEQ     #$2A [00:08BC]           ; branch to $0008BC if starting a game (not demo mode)
00:0892  41 F9  LEA     ($0006F9C8),A0           ; stage 3 demo
00:0898  46 38  NOT.B   ($F702)
00:089C  6B 06  BMI     #$06 [00:08A4]           ; branch to $0008A4 if stage 3 demo
00:089E  41 F9  LEA     ($00070CC8),A0           ; stage 4 demo
00:08A4  61 00  BSR     #$195A [00:2200]
00:08A8  61 00  BSR     #$1968 [00:2212]
00:08AC  72 00  MOVEQ   #$00,D1
00:08AE  12 00  MOVE.b  D0,D1
00:08B0  E0 48  LSR.W   #0,D0
00:08B2  11 C0  MOVE.b  D0,($F6FF)
00:08B6  31 C1  MOVE.w  D1,($F6A4)               ; stage index for upcoming demo
00:08BA  60 06  BRA     #$06 [00:08C2]
00:08BC  31 FC  MOVE.w  #$0002,($F6A4)           ; game starts on stage 3 (change value to start on other stages - PAR code 0008BE:000x)
...
00:08C2  42 38  CLR.B   ($F6FE)
00:08C6  21 FC  MOVE.l  #$544F4E42,($F6E2)       ; TONB