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

Notes:Bomb Jack (Arcade)

From The Cutting Room Floor
Jump to navigation Jump to search

This page contains notes for the game Bomb Jack (Arcade).

Bonus Life code:

#BONUS LIVES (SCORE) SUBROUTINE
5A07: C9            ret			;This routine has been dummied out. Change to push af (E5).
5A08: C5            push bc		;Push BC.
5A09: D5            push de		;Push DE.
!CHECK BONUS LIFE TEMP VAR
5A0A: 3A AE 81      ld   a,($81AE)	;Set A to Bonus Life Temp Var.
5A0D: FE FF         cp   $FF		;Check if Temp Var is set to FF.
5A0F: CA E3 5A      jp   z,$5AE3	;If true, jump out. No more bonus lives this game.
!CHECK DIP SWITCH SETTINGS
5A12: 3A 14 80      ld   a,($8014)	;Set A to Dip Switch 2 settings.
5A15: E6 07         and  $07		;AND with 07 - Get the Extra Life settings.
5A17: FE 00         cp   $00		;Check if it's set to "None"
5A19: 20 03         jr   nz,$5A1E	;If not, jump.
5A1B: C3 E3 5A      jp   $5AE3		 ;Jump out of subroutine - no extra lives.
5A1E: FE 01         cp   $01		;Is the Bonus Life setting "Every 100k?"
5A20: 20 05         jr   nz,$5A27	;If it's not, jump to next check.
5A22: 06 0A         ld   b,$0A		 ;Set Bonus Life Value No.1 to 0A (100k).
5A24: C3 59 5A      jp   $5A59		 ;Jump to "Bonus Life - Variable" point.
5A27: FE 02         cp   $02		;Is the bonus life setting "Every 30k?"
5A29: 20 05         jr   nz,$5A30	;If it's not, jump to next check.
5A2B: 06 03         ld   b,$03		 ;Set Bonus Life Value No.1 to 03 (30k).
5A2D: C3 59 5A      jp   $5A59		 ;Jump to "Bonus Life - Variable" point.
5A30: FE 03         cp   $03		;Is the bonus life setting "50k only?"
5A32: 20 05         jr   nz,$5A39	;If it's not, jump to next check.
5A34: 06 05         ld   b,$05		 ;Set Bonus Life Value No.1 to 05 (50k).
5A36: C3 69 5A      jp   $5A69		 ;Jump to "Bonus Life - One Only" point.
5A39: FE 04         cp   $04		;Is the bonus life setting "100k only?"
5A3B: 20 05         jr   nz,$5A42	;If it's not, jump to next check.
5A3D: 06 0A         ld   b,$0A		 ;Set Bonus Life Value No.1 to 0A (100k).
5A3F: C3 69 5A      jp   $5A69		 ;Jump to "Bonus Life - One Only" point.
5A42: FE 05         cp   $05		;Is the bonus life setting "50k and 100k?"
5A44: 20 07         jr   nz,$5A4D	;If it's not, jump to next check.
5A46: 06 05         ld   b,$05		 ;Set Bonus Life Value No.1 to 05 (50k).
5A48: 0E 0A         ld   c,$0A		 ;Set Bonus Life Value No.2 to 0A (100k).
5A4A: C3 7A 5A      jp   $5A7A		 ;Jump to "Bonus Life - Two Only" point.
5A4D: FE 06         cp   $06		;Is the bonus life setting "100k and 300k?"
5A4F: C2 9F 5A      jp   nz,$5A9F	;If it's not, jump to "Bonus Life - 50k, 100k, 300k" point.
5A52: 06 0A         ld   b,$0A		 ;Set Bonus Life Value No.1 to 0A (100k).
5A54: 0E 1E         ld   c,$1E		 ;Set Bonus Life Value No.2 to 1E (300k).
5A56: C3 7A 5A      jp   $5A7A		 ;Jump to "Bonus Life - Two Only" point.
!BONUS LIFE - VARIABLE
5A59: 16 00         ld   d,$00		;Set D to 00.
5A5B: 3A AD 81      ld   a,($81AD)	 ;Set A to Bonus Life Counter.
5A5E: B8            cp   b		 ;Check is player has reached the requisite number of points.
5A5F: DA D4 5A      jp   c,$5AD4	 ;If so, jump to "Bonus Life Incrementing" point.
5A62: 14            inc  d		 ;Increment D.
5A63: 90            sub  b		 ;Subtract 1 from B.
5A64: 32 AD 81      ld   ($81AD),a	 ;Set Bonus Life Counter to A.
5A67: 18 F2         jr   $5A5B		 ;Jump back and check again.
!BONUS LIFE - ONE ONLY
5A69: 3A AD 81      ld   a,($81AD)	;Set A to Bonus Life Counter.
5A6C: B8            cp   b		;Check if player has reached the Bonus Life value.
5A6D: DA E3 5A      jp   c,$5AE3	;If not, branch out.
5A70: 16 01         ld   d,$01		 ;Set D to 01.
5A72: 3E FF         ld   a,$FF		 ;Set A to FF.
5A74: 32 AE 81      ld   ($81AE),a	 ;Set Bonus Life Temp Var to FF.
5A77: C3 D4 5A      jp   $5AD4		 ;Jump to "Bonus Life Incrementing" point.
!BONUS LIFE - TWO ONLY
5A7A: 16 00         ld   d,$00		;Set D to 00.
5A7C: 3A AE 81      ld   a,($81AE)	;Set A to Bonus Life Temp Var.
5A7F: FE 01         cp   $01		;Check if the player has recieved an extra life for the first Bonus Life value.
5A81: 28 0D         jr   z,$5A90	;If true, don't bother checking it again.
5A83: 3A AD 81      ld   a,($81AD)	 ;Set A to Bonus Life Counter.
5A86: B8            cp   b		 ;Check if player has reached the first Bonus Life value.
5A87: DA E3 5A      jp   c,$5AE3	 ;If not, branch out.
5A8A: 14            inc  d		  ;Increment D.
5A8B: 3E 01         ld   a,$01		  ;Set A to 01.
5A8D: 32 AE 81      ld   ($81AE),a	  ;Set Bonus Life Temp Var to 01.
5A90: 3A AD 81      ld   a,($81AD)	;Set A to Bonus Life Counter.
5A93: B9            cp   c		;Check if player has reached the second Bonus Life value.
5A94: 38 3E         jr   c,$5AD4	;If not, jump to "Bonus Life Incrementing" point.
5A96: 14            inc  d		 ;Increment D.
5A97: 3E FF         ld   a,$FF		 ;Set A to FF.
5A99: 32 AE 81      ld   ($81AE),a	;Set Bonus Life Temp Var to FF.
5A9C: C3 D4 5A      jp   $5AD4		;Jump to Bonus Life
!BONUS LIFE - 50k, 100k, 300k
5A9F: 16 00         ld   d,$00		;Set D to 00.
5AA1: 3A AE 81      ld   a,($81AE)	;Set A to Bonus Live Temp Var.
5AA4: FE 01         cp   $01		;Check if the player has recieved an extra life for the first Bonus Life value.
5AA6: 28 12         jr   z,$5ABA	;If true, don't check it again.
5AA8: FE 02         cp   $02		 ;Check if the player has recieved an extra life for the second Bonus Life value.
5AAA: 28 1B         jr   z,$5AC7	 ;If true, don't check it again.
5AAC: 3A AD 81      ld   a,($81AD)	  ;Set A to Bonus Life Counter.
5AAF: FE 05         cp   $05		  ;Check if player has reached 50k points.
5AB1: DA E3 5A      jp   c,$5AE3	  ;If not, branch out.
5AB4: 14            inc  d		   ;Increment D.
5AB5: 3E 01         ld   a,$01		   ;Set A to 01.
5AB7: 32 AE 81      ld   ($81AE),a	   ;Set Bonus Life Temp Var to 01.
5ABA: 3A AD 81      ld   a,($81AD)	  ;Set A to Bonus Life Counter.
5ABD: FE 0A         cp   $0A		  ;Check if player has reached 100k points.
5ABF: 38 13         jr   c,$5AD4	  ;If not, jump to "Bonus Life Incrementing" point.
5AC1: 14            inc  d		   ;Increment D.
5AC2: 3E 02         ld   a,$02		   ;Set A to 02.
5AC4: 32 AE 81      ld   ($81AE),a	   ;Set Bonus Life Temp Var to 02.
5AC7: 3A AD 81      ld   a,($81AD)	  ;Set A to Bonus Life Counter.
5ACA: FE 1E         cp   $1E		  ;Check if player has reached 300k points.
5ACC: 38 06         jr   c,$5AD4	  ;If not, jump to "Bonus Life Incrementing" point.
5ACE: 14            inc  d		   ;Increment D.
5ACF: 3E FF         ld   a,$FF		   ;Set A to FF.
5AD1: 32 AE 81      ld   ($81AE),a	   ;Set Bonus Life Temp Var to FF.
!BONUS LIFE INCREMENTING
5AD4: 7A            ld   a,d		;Set A to D.
5AD5: FE 00         cp   $00		;Check if player has recieved any bonus lives.
5AD7: 28 0A         jr   z,$5AE3	;If not, branch out.
5AD9: 3A 9B 81      ld   a,($819B)	 ;Set number of lives to A.
5ADC: 82            add  a,d		 ;Add D to A.
5ADD: 32 9B 81      ld   ($819B),a	 ;Give the player the appropriate number of bonus lives.
5AE0: CD F3 4F      call $4FF3		 ;Call (HUD update?) subroutine.
5AE3: D1            pop  de		;Pop DE.
5AE4: C1            pop  bc		;Pop BC.
5AE5: F1            pop  af		;Pop AF.
5AE6: C9            ret			;End of subroutine.