If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
Notes:Viewpoint (Genesis)
Jump to navigation
Jump to search
This page contains notes for the game Viewpoint (Genesis).
Controller Test?
When controller buttons are pressed, the corresponding bits are set in RAM address $FF1154. This memory address gets cleared when the game is paused (see $00F4B0 in the pause debug section) but otherwise appears unused.
... 00:0FB2 33 C0 MOVE.w D0,($00FF1152) 00:0FB8 81 79 OR.W D0;($00FF1154) 00:0FBE 4E 75 RTS
Pause Debug
The debug programming is located at offset $00F4D0-00F527.
... 00:F4A8 3F 3C MOVE.w #$0001,-(A7) 00:F4AC 4E 4F TRAP #$F 00:F4B0 42 79 CLR.W ($00FF1154) //why? 00:F4B6 08 39 BTST #7,($00FF1152) //P1 controller Start 00:F4BE 66 00 BNE #$0068 [00:F528] //branch to $00F528 if P1 Start was pressed 00:F4C2 08 39 BTST #7,($00FF1153) //P2 controller Start 00:F4CA 66 00 BNE #$005C [00:F528] //branch to $00F528 if P2 Start was pressed 00:F4CE 60 D8 BRA #$D8 [00:F4A8] //pause loop (NOP this operation to access debug) debug programming 00:F4D0 30 39 MOVE.w ($00FF1150),D0 //controller presses 00:F4D6 02 40 ANDI.W #$4040,D0 //A button 00:F4DA 67 CC BEQ #$CC [00:F4A8] //branch to $00F4A8 if A button not pressed on P1 or P2 controller 00:F4DC 30 39 MOVE.w ($00FF1152),D0 //controller presses 00:F4E2 02 40 ANDI.W #$1010,D0 //B button 00:F4E6 67 00 BEQ #$002E [00:F516] //branch to $00F516 if B button not pressed on P1 or P2 controller 00:F4EA 08 2E BTST #0,$0253(A6) //check if player 1 or player 2 is currently playing (RAM $FF4115: 01=player 1 playing, 02=player 2 playing) 00:F4F0 67 00 BEQ #$000A [00:F4FC] //branch to $00F4FC if player 2 is playing player 1 00:F4F4 30 3C MOVE.w #$0001,D0 00:F4F8 60 00 BRA #$0006 [00:F500] player 2 00:F4FC 30 3C MOVE.w #$FFFF,D0 00:F500 48 E7 MOVEM.L {d0-a7}[80 00],-(A7) 00:F504 4E B9 JSR ($000E2BF0) 00:F50A 4C DF MOVEM.L (A7)+,{a7-d0}[00 01] 00:F50E 4E B9 JSR ($000E32F6) 00:F514 60 92 BRA #$92 [00:F4A8] //end of A+B debug 00:F516 30 39 MOVE.w ($00FF1152),D0 //controller presses 00:F51C 02 40 ANDI.W #$2020,D0 //C button 00:F520 67 86 BEQ #$86 [00:F4A8] //branch to $00F4A8 (ie, exit debug) if C button not pressed on P1 or P2 controller 00:F522 42 2E CLR.B $0005(A6) //changes RAM address $FF3EC7 from $01 to $00 to clear stage 00:F526 60 80 BRA #$80 [00:F4A8] //end of A+C debug resume game 00:F528 33 FC MOVE.w #$0100,($00A11100) 00:F530 08 39 BTST #0,($00A11100) 00:F538 66 F6 BNE #$F6 [00:F530] 00:F53A 13 FC MOVE.b #$80,($00A01C10) 00:F542 33 FC MOVE.w #$0000,($00A11100) 00:F54A 3F 3C MOVE.w #$0001,-(A7) 00:F54E 4E 4F TRAP #$F 00:F550 54 8F ADDQ.L #2,A7 00:F552 33 FC MOVE.w #$0000,($00FF0D6A) 00:F55A 4E 75 RTS