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)
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.