![]()
Cannot retrieve contributors at this time
| ; Dragon Crystal Disassembly | |
| ; Disassembled with Emulicious | |
| ; Variable Definitions | |
| .include "defines\system_constants.i" | |
| .include "defines\asciitable.i" | |
| .include "defines\ram_map.i" | |
| .include "defines\item_constants.i" | |
| .include "defines\game_variables.i" | |
| .include "defines\monster_constants.i" | |
| .include "defines\game_message_constants.i" | |
| .include "defines\mask_constants.i" | |
| .include "defines\music_constants.i" | |
| ; End Definitions | |
| .MEMORYMAP | |
| SLOTSIZE $4001 | |
| SLOT 0 $0000 | |
| SLOTSIZE $3FFF | |
| SLOT 1 $4001 | |
| SLOTSIZE $4000 | |
| SLOT 2 $8000 | |
| DEFAULTSLOT 2 | |
| .ENDME | |
| .ROMBANKMAP | |
| BANKSTOTAL 8 | |
| BANKSIZE $4001 | |
| BANKS 1 | |
| BANKSIZE $3FFF | |
| BANKS 1 | |
| BANKSIZE $4000 | |
| BANKS 6 | |
| .ENDRO | |
| .BANK 0 SLOT 0 | |
| .ORG $0000 | |
| Origin: | |
| jp Initialize | |
| ; Empty space | |
| .ds 5, $FF | |
| .org $0008 | |
| Interrupt8: | |
| di | |
| ld a, e | |
| out (VDPControl), a | |
| ld a, $40 | |
| or d | |
| out (VDPControl), a | |
| ei | |
| ret | |
| ; Empty space | |
| .ds 5, $FF | |
| .org $0018 | |
| Interrupt18: | |
| di | |
| ld a, e | |
| out (VDPControl), a | |
| ld a, d | |
| out (VDPControl), a | |
| ei | |
| ret | |
| ; Empty space | |
| .ds 7, $FF | |
| .org $0028 | |
| Interrupt28: | |
| ld a, $E2 | |
| jp FinishVDPControlInterrupt | |
| ; Empty space | |
| .ds 3, $FF | |
| .org $0030 | |
| Interrupt30: | |
| ld a, $A2 | |
| jp FinishVDPControlInterrupt | |
| ; Empty space | |
| .ds 3, $FF | |
| ; Interrupt $38 is VBLANK | |
| .org $0038 | |
| VBlank: | |
| jp VBlankHandler | |
| FinishVDPControlInterrupt: | |
| out (VDPControl), a | |
| ld a, $81 | |
| out (VDPControl), a | |
| ret | |
| ; Data from 42 to 65 (36 bytes) | |
| Data_42: | |
| .dw $8026 $81A2 $82FF $83FF | |
| .dw $84FF $85FF $86FB $8700 | |
| .dw $8800 $8900 $8A00 | |
| ; Empty space | |
| .ds 14, $FF | |
| ; Pause handler- must be at $0066 | |
| .org $0066 | |
| PauseHandler: | |
| push af | |
| ld a, ($C019) ; If $C019 is 10, do nothing | |
| cp $0A | |
| jr nz, ++ | |
| ld a, (Autoplay) ; If autoplay is on, do nothing | |
| or a | |
| jr nz, + | |
| ld a, (PlayerSpeed) ; Get player speed | |
| cpl ; Toggle between fast speed ($FF) and slow speed ($00) | |
| ld (PlayerSpeed), a ; Save player speed | |
| +: | |
| pop af | |
| retn | |
| ++: | |
| pop af | |
| retn | |
| Initialize: | |
| di | |
| ld sp, $DFF0 | |
| im 1 | |
| ld hl, $FFFC ; Initialize mapper | |
| ld (hl), $00 | |
| inc hl ; $FFFD | |
| ld (hl), $00 | |
| inc hl ; $FFFE | |
| ld (hl), $01 | |
| inc hl ; $FFFF | |
| ld (hl), $02 | |
| ld hl, $C001 ; Zero out C001-C100 | |
| ld de, $C002 | |
| ld bc, $00FE | |
| ld (hl), $00 | |
| ldir | |
| WaitForLineB0: | |
| in a, ($7E) ; Get scan line currently being drawn | |
| cp $B0 ; Is it $B0? | |
| jr nz, WaitForLineB0 ; If not, go back and wait | |
| xor a ; Zero out a | |
| out (VDPControl), a ; Write $C000 out to the VDP to select CRAM | |
| ld a, $C0 | |
| out (VDPControl), a | |
| xor a ; Zero out a again | |
| ld b, $20 ; Load counter with $20 | |
| ex (sp), hl ; Wait | |
| ex (sp), hl | |
| -: | |
| out (VDPData), a ; Set the next palette color to black | |
| nop ; Wait | |
| djnz - ; Do this $20 times (32 times) for the whole palette | |
| DoReset: ; If the game is reset, it jumps back to this point | |
| di | |
| ld sp, $DFF0 ; Initialize stack pointer | |
| xor a ; Zero out a | |
| ld ($C005), a ; Set $C005 to zero | |
| ld ($C002), a ; Set $C002 to zero | |
| in a, (VDPControl) ; Clear VDP status flags by reading from port | |
| ld b, $16 ; Read $16 from $0042 and output to VDPControl | |
| ld c, VDPControl | |
| ld hl, Data_42 | |
| otir | |
| ld hl, $C100 ; Zero out $C100-D000 | |
| ld de, $C101 | |
| ld bc, $0EFF | |
| ld (hl), $00 | |
| ldir | |
| ld hl, $DD00 ; Zero out $DD00-DFF0 | |
| ld de, TempoTimeout | |
| ld bc, $02EF | |
| ld (hl), $00 | |
| ldir | |
| rst $30 ; Interrupt30- write $A2, $81 to VDPControl | |
| call InitializePaletteInRAM ; Initializes more memory, sets a flag in PaletteInRAMStatus | |
| call VDPOut_59D ; Some sort of display? Title screen, maybe? | |
| ld a, $FF | |
| ld (PlayerSpeed), a ; Set speed to fast ($FF) | |
| ld a, $00 ; Zero out $C019 and TableIndex1... | |
| ld ($C019), a | |
| ld (TableIndex1), a | |
| ei ; Done with setup? | |
| in a, ($DC) ; Read controller 1 input | |
| cpl ; Invert so 1 means button pressed | |
| and %00111111 ; Ignore bits used for Player 2 controller up and down input- not useful | |
| cp %00000101 ; %00000101 Up and left pressed together? Cheat? | |
| jp nz, _LABEL_111_ ; If not, go here | |
| ld a, $01 ; If pressed, set $C0D6 to $01 | |
| ld ($C0D6), a | |
| jp _LABEL_111_ | |
| ret ; Unreachable | |
| _LABEL_111_: | |
| call UpdateControllerState | |
| call _LABEL_4BD_ | |
| ld hl, _LABEL_111_ | |
| push hl | |
| ld hl, TableIndex1 | |
| ld a, ($C019) | |
| xor (hl) | |
| and $7F | |
| ld a, (hl) | |
| jr z, _LABEL_12A_ | |
| ld ($C019), a | |
| _LABEL_12A_: | |
| ld hl, JumpTable1 | |
| CallJumpTable: | |
| ld e, a ; Load index passed in a into lower byte | |
| ld d, $00 ; $00XX where XX is index | |
| add hl, de | |
| add hl, de | |
| ld a, (hl) | |
| inc hl | |
| ld h, (hl) | |
| ld l, a | |
| jp (hl) | |
| _LABEL_137_: | |
| ld a, $01 | |
| ld (VBlankAction), a | |
| _LABEL_13C_: | |
| ld a, (VBlankAction) | |
| or a | |
| jr nz, _LABEL_13C_ | |
| ret | |
| _LABEL_143_: | |
| ld a, (VBlankAction) | |
| or a | |
| jr nz, _LABEL_143_ | |
| ld a, $02 | |
| ld (VBlankAction), a | |
| _LABEL_14E_: | |
| ld a, (VBlankAction) | |
| cp $02 | |
| jr z, _LABEL_14E_ | |
| ret | |
| _LABEL_156_: | |
| ld a, (VBlankAction) | |
| or a | |
| jr nz, _LABEL_156_ | |
| ld a, $04 | |
| ld (VBlankAction), a | |
| _LABEL_161_: | |
| ld a, (VBlankAction) | |
| cp $04 | |
| jr z, _LABEL_161_ | |
| ret | |
| _LABEL_169_: | |
| ld a, $06 | |
| ld (VBlankAction), a | |
| _LABEL_16E_: | |
| ld a, (VBlankAction) | |
| or a | |
| jr nz, _LABEL_16E_ | |
| ret | |
| _LABEL_175_: | |
| ld hl, (TitleScreenCounterLow) | |
| dec hl | |
| ld (TitleScreenCounterLow), hl | |
| ld a, l | |
| or h | |
| ret | |
| ; Jump Table from 17F to 1AE (24 entries, indexed by TableIndex1) | |
| JumpTable1: | |
| .dw JumpTable1_BD7 JumpTable1_BD7 JumpTable1_BEA JumpTable1_C6D | |
| .dw SetUpGameAutoplay Origin JumpTable1_F4C JumpTable1_F4C | |
| .dw JumpTable1_1058 JumpTable1_1127 JumpTable1_11A0 DoGameOver | |
| .dw JumpTable1_1424 JumpTable1_1435 JumpTable1_152F JumpTable1_16F4 | |
| .dw JumpTable1_192B JumpTable1_1B20 JumpTable1_1CA8 JumpTable1_1CD0 | |
| .dw JumpTable1_1D11 JumpTable1_1D4B JumpTable1_153B JumpTable1_1566 | |
| VBlankHandler: | |
| push af | |
| in a, (VDPControl) | |
| and $80 | |
| jp z, _LABEL_2D1_ | |
| ld a, ($FFFF) ; Save current mapper value | |
| push af ; Save registers | |
| push bc | |
| push de | |
| push hl | |
| ex af, af' | |
| exx | |
| push af | |
| push bc | |
| push de | |
| push hl | |
| push ix | |
| push iy | |
| ld a, (VBlankAction) | |
| ld hl, VBlankActionTable | |
| jp CallJumpTable | |
| ; Jump Table from 1D1 to 1E6 (11 entries, indexed by VBlankAction) | |
| VBlankActionTable: | |
| .dw VBlankUpdateSound VBlankActionTable_20E VBlankActionTable_22F VBlankActionTable_26B | |
| .dw VBlankActionTable_275 VBlankActionTable_29D VBlankActionTable_2AC VBlankUpdateSound | |
| .dw VBlankUpdateSound VBlankUpdateSound VBlankUpdateSound | |
| ; 1st entry of Jump Table from 1D1 (indexed by VBlankAction) | |
| VBlankUpdateSound: | |
| ld hl, EndVBlank | |
| push hl | |
| ld a, $07 | |
| ld ($FFFF), a | |
| ld a, ($C002) | |
| or a | |
| jp nz, SilencePSG | |
| jp UpdateAllSound | |
| EndVBlank: | |
| pop iy | |
| pop ix | |
| pop hl | |
| pop de | |
| pop bc | |
| pop af | |
| ex af, af' | |
| exx | |
| pop hl | |
| pop de | |
| pop bc | |
| pop af | |
| ld ($FFFF), a | |
| pop af | |
| ei | |
| ret | |
| ; 2nd entry of Jump Table from 1D1 (indexed by VBlankAction) | |
| VBlankActionTable_20E: | |
| call CheckForReset | |
| call _LABEL_2DD_ | |
| call VDPOut_2E9 | |
| ld b, $00 | |
| -: | |
| djnz - | |
| ld a, (PaletteInRAMStatus) | |
| and $01 | |
| call nz, WritePalette | |
| xor a | |
| ld (PaletteInRAMStatus), a | |
| ld ($C01F), a | |
| ld (VBlankAction), a | |
| jr VBlankUpdateSound | |
| ; 3rd entry of Jump Table from 1D1 (indexed by VBlankAction) | |
| VBlankActionTable_22F: | |
| call CheckForReset | |
| call _LABEL_2DD_ | |
| call VDPOut_2E9 | |
| call _LABEL_2802_ | |
| ld a, (PaletteInRAMStatus) | |
| and $01 | |
| call nz, WritePalette | |
| call _LABEL_30CC_ | |
| call _LABEL_28B2_ | |
| call _LABEL_30DF_ | |
| call _LABEL_28FD_ | |
| xor a | |
| ld (PaletteInRAMStatus), a | |
| ld ($C01F), a | |
| ld a, (PlayerSpeed) ; Get player speed | |
| or a ; Is player speed slow ($00)? | |
| jr nz, PlayerSpeedIsFast ; If not (speed is fast/$FF), go here | |
| ld hl, VBlankAction | |
| inc (hl) | |
| jp VBlankUpdateSound | |
| PlayerSpeedIsFast: | |
| ld hl, VBlankAction | |
| ld (hl), $00 | |
| jp VBlankUpdateSound | |
| ; 4th entry of Jump Table from 1D1 (indexed by VBlankAction) | |
| VBlankActionTable_26B: | |
| call CheckForReset | |
| xor a | |
| ld (VBlankAction), a | |
| jp VBlankUpdateSound | |
| ; 5th entry of Jump Table from 1D1 (indexed by VBlankAction) | |
| VBlankActionTable_275: | |
| ld a, $00 | |
| out (VDPControl), a | |
| ld a, $88 | |
| out (VDPControl), a | |
| call _LABEL_2DD_ | |
| call VDPOut_2E9 | |
| ld b, $00 | |
| -: | |
| djnz - | |
| ld a, (PaletteInRAMStatus) | |
| and $01 | |
| call nz, WritePalette | |
| xor a | |
| ld (PaletteInRAMStatus), a | |
| ld ($C01F), a | |
| ld hl, VBlankAction | |
| inc (hl) | |
| jp VBlankUpdateSound | |
| ; 6th entry of Jump Table from 1D1 (indexed by VBlankAction) | |
| VBlankActionTable_29D: | |
| ld a, $00 | |
| out (VDPControl), a | |
| ld a, $88 | |
| out (VDPControl), a | |
| xor a | |
| ld (VBlankAction), a | |
| jp VBlankUpdateSound | |
| ; 7th entry of Jump Table from 1D1 (indexed by VBlankAction) | |
| VBlankActionTable_2AC: | |
| ld a, ($C0D2) | |
| out (VDPControl), a | |
| ld a, $89 | |
| out (VDPControl), a | |
| call VDPOut_2E9 | |
| ld b, $00 | |
| -: | |
| djnz - | |
| ld a, (PaletteInRAMStatus) | |
| and $01 | |
| call nz, WritePalette | |
| xor a | |
| ld (PaletteInRAMStatus), a | |
| ld ($C01F), a | |
| ld (VBlankAction), a | |
| jp VBlankUpdateSound | |
| _LABEL_2D1_: | |
| ld a, ($C0B7) | |
| out (VDPControl), a | |
| ld a, $88 | |
| out (VDPControl), a | |
| pop af | |
| ei | |
| ret | |
| _LABEL_2DD_: | |
| ld a, ($C014) | |
| or a | |
| ret z | |
| dec a | |
| jr z, _LABEL_2E7_ | |
| rst $28 ; Interrupt28 | |
| ret | |
| _LABEL_2E7_: | |
| rst $30 ; Interrupt30 | |
| ret | |
| VDPOut_2E9: | |
| ld c, VDPData | |
| ld a, $00 | |
| out (VDPControl), a | |
| ld a, $7F | |
| out (VDPControl), a | |
| ld hl, $C500 | |
| call OUTI64 | |
| ld a, $80 | |
| out (VDPControl), a | |
| ld a, $7F | |
| out (VDPControl), a | |
| ld hl, $C540 | |
| call OUTI128 | |
| ret | |
| CheckForReset: | |
| in a, ($DD) ; Read input from port $DD | |
| cpl ; Invert- now 1 is on | |
| and %00010000 ; Check if RESET is on | |
| jr z, NoReset ; If not, jump down | |
| ld a, (CurrentlyResetting) ; If it is set, check CurrentlyResetting | |
| or a ; Is it zero? | |
| ret nz ; If already set, return | |
| ld a, $FF ; If it is zero, set it to $FF | |
| ld (CurrentlyResetting), a | |
| jp DoReset | |
| NoReset: | |
| xor a ; Zero out a | |
| ld (CurrentlyResetting), a ; Set CurrentlyResetting flag to zero | |
| ret | |
| UpdateControllerState: | |
| ld a, (CurrentControllerState) ; Read previously stored controller state | |
| cpl ; Invert- now 1 is off, as if it was read just from the port | |
| ld d, a ; Save inverted input | |
| in a, ($DC) ; Read from controller port | |
| cpl ; Invert- now 1 is on | |
| and %00111111 ; Mask off bits used for player 2 controller | |
| ld (CurrentControllerState), a ; Store updated value in controller state | |
| and d ; Get button press continued since last state | |
| ld (LastControllerState), a ; Load into LastControllerState | |
| ld a, (Autoplay) ; If autoplay is on, return | |
| or a | |
| ret z | |
| dec a | |
| jr z, _LABEL_33C_ | |
| jr _LABEL_384_ | |
| _LABEL_33C_: | |
| ld a, (LastControllerState) | |
| and %00110000 ; Check for A or B button press | |
| jr z, _LABEL_35C_ ; If none, start autoplay | |
| xor a ; Otherwise, zero out autoplay variables | |
| ld (Autoplay), a | |
| ld (AutoplayDirection), a | |
| ld (AutoplayCountdownLow), a | |
| ld (AutoplayCountdownHigh), a | |
| ld (AutoplayVar3), a | |
| call _LABEL_42C_ | |
| ld a, $02 | |
| ld (TableIndex1), a | |
| ret | |
| _LABEL_35C_: | |
| ld hl, (AutoplayCountdownLow) | |
| ld a, l | |
| or h | |
| jr nz, _LABEL_37C_ | |
| xor a | |
| ld (Autoplay), a | |
| ld (AutoplayDirection), a | |
| ld (AutoplayCountdownLow), a | |
| ld (AutoplayCountdownHigh), a | |
| ld (AutoplayVar3), a | |
| call _LABEL_42C_ | |
| ld a, $00 | |
| ld (TableIndex1), a | |
| ret | |
| _LABEL_37C_: | |
| dec hl | |
| ld (AutoplayCountdownLow), hl | |
| ld a, h | |
| cp $02 | |
| ret nc | |
| _LABEL_384_: | |
| ld a, (AutoplayVar3) | |
| or a | |
| jr z, _LABEL_3BE_ | |
| dec a | |
| ld (AutoplayVar3), a | |
| _LABEL_38E_: | |
| ld a, (AutoplayDirection) | |
| ld hl, Data_3DE | |
| ld b, $04 | |
| Loop_396: | |
| rrca | |
| jr c, _LABEL_39F_ | |
| inc hl | |
| inc hl | |
| djnz Loop_396 | |
| jr _LABEL_3BE_ | |
| _LABEL_39F_: | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ld hl, ($C105) | |
| add hl, de | |
| ld a, (hl) | |
| and $7F | |
| jr z, _LABEL_3BE_ | |
| cp $06 | |
| jr c, _LABEL_3B3_ | |
| cp $0C | |
| jr c, _LABEL_3BE_ | |
| _LABEL_3B3_: | |
| ld a, (AutoplayDirection) | |
| ld (CurrentControllerState), a | |
| xor a | |
| ld (LastControllerState), a | |
| ret | |
| _LABEL_3BE_: | |
| ld d, $01 | |
| call GetRandomNumber | |
| and $03 | |
| _LABEL_3C5_: | |
| or a | |
| jr z, _LABEL_3CD_ | |
| dec a | |
| rlc d | |
| jr _LABEL_3C5_ | |
| _LABEL_3CD_: | |
| ld a, d | |
| ld (AutoplayDirection), a | |
| call GetRandomNumber | |
| and $1F | |
| add a, $10 | |
| ld (AutoplayVar3), a | |
| jp _LABEL_38E_ | |
| ; Data from 3DE to 3E5 (8 bytes) | |
| Data_3DE: | |
| .db $E0 $FF $20 $00 $FF $FF $01 $00 | |
| _LABEL_3E6_: | |
| ld ix, $C400 | |
| ld b, $08 | |
| jr ContinueFromSavedFunction | |
| _LABEL_3EE_: | |
| ld ix, $C100 | |
| ld b, $18 | |
| ContinueFromSavedFunction: | |
| push bc | |
| ld hl, _LABEL_403_ | |
| push hl | |
| ld l, (ix+0) | |
| ld h, (ix+1) | |
| ld a, l | |
| or h | |
| ret z | |
| jp (hl) | |
| _LABEL_403_: | |
| ld de, $0020 | |
| add ix, de | |
| pop bc | |
| djnz ContinueFromSavedFunction | |
| ret | |
| _LABEL_40C_: | |
| call LoadPaletteToRAMMirror | |
| _LABEL_40F_: | |
| ld a, $01 | |
| ld (TableIndex3), a | |
| ld hl, PaletteInRAM | |
| ld de, $C021 | |
| ld bc, $001F | |
| ld (hl), $00 | |
| ldir | |
| ld hl, PaletteInRAMStatus | |
| set 0, (hl) | |
| ld a, $04 | |
| ld ($C0A2), a | |
| ret | |
| _LABEL_42C_: | |
| ld a, $02 | |
| ld (TableIndex3), a | |
| ld hl, PaletteInRAM | |
| ld de, PaletteInRAM2 | |
| call LDI32 | |
| ld a, $04 | |
| ld ($C0A2), a | |
| ret | |
| ; Data from 440 to 442 (3 bytes) | |
| Data_440: | |
| .db $CD $50 $07 | |
| _LABEL_443_: | |
| ld a, $03 | |
| ld (TableIndex3), a | |
| ld a, $3F | |
| ld (PaletteInRAM), a | |
| ld hl, PaletteInRAM | |
| ld de, $C021 | |
| call LDI32 | |
| ld hl, PaletteInRAMStatus | |
| set 0, (hl) | |
| ld a, $04 | |
| ld ($C0A2), a | |
| ret | |
| _LABEL_461_: | |
| ld a, $04 | |
| ld (TableIndex3), a | |
| ld hl, PaletteInRAM | |
| ld de, PaletteInRAM2 | |
| call LDI32 | |
| ld a, $04 | |
| ld ($C0A2), a | |
| ret | |
| _LABEL_475_: | |
| ld c, (hl) | |
| ld b, $00 | |
| ex de, hl | |
| ld hl, PaletteInRAM | |
| add hl, bc | |
| ld ($C0A4), hl | |
| inc de | |
| ld a, (de) | |
| ld ($C0A3), a | |
| dec de | |
| ex de, hl | |
| call LoadPaletteToRAMMirror | |
| ld a, $05 | |
| ld (TableIndex3), a | |
| ld a, ($C0A3) | |
| or a | |
| jr z, _LABEL_4DC_ | |
| ld b, a | |
| ld hl, ($C0A4) | |
| xor a | |
| -: | |
| ld (hl), a | |
| inc hl | |
| djnz - | |
| ld hl, PaletteInRAMStatus | |
| set 0, (hl) | |
| ld a, $04 | |
| ld ($C0A2), a | |
| ret | |
| _LABEL_4A9_: | |
| ld a, $06 | |
| ld (TableIndex3), a | |
| ld hl, PaletteInRAM | |
| ld de, PaletteInRAM2 | |
| call LDI32 | |
| ld a, $04 | |
| ld ($C0A2), a | |
| ret | |
| _LABEL_4BD_: | |
| ld hl, $C0A2 | |
| dec (hl) | |
| ret nz | |
| ld a, $04 | |
| ld ($C0A2), a | |
| ld a, (TableIndex3) | |
| or a | |
| ret z | |
| call CallJumpTable3 | |
| ld hl, PaletteInRAMStatus | |
| set 0, (hl) | |
| ld hl, $C0A1 | |
| inc (hl) | |
| ld a, (hl) | |
| cp $04 | |
| ret nz | |
| _LABEL_4DC_: | |
| xor a | |
| ld ($C0A1), a | |
| ld (TableIndex3), a | |
| ret | |
| CallJumpTable3: | |
| ld a, (TableIndex3) ; Call func in jumptable based on TableIndex3 | |
| ld hl, JumpTable3 | |
| jp CallJumpTable | |
| ; Jump Table from 4ED to 4FA (7 entries, indexed by TableIndex3) | |
| JumpTable3: | |
| .dw Origin JumpTable3_4FB JumpTable3_504 JumpTable3_539 | |
| .dw JumpTable3_542 JumpTable3_580 JumpTable3_589 | |
| ; 2nd entry of Jump Table from 4ED (indexed by TableIndex3) | |
| JumpTable3_4FB: | |
| ld a, ($C0A1) | |
| ld d, a | |
| ld a, $03 | |
| sub d | |
| jr _LABEL_507_ | |
| ; 3rd entry of Jump Table from 4ED (indexed by TableIndex3) | |
| JumpTable3_504: | |
| ld a, ($C0A1) | |
| _LABEL_507_: | |
| ld c, a | |
| ld de, PaletteInRAM2 | |
| ld hl, PaletteInRAM | |
| ld b, $20 | |
| _LABEL_510_: | |
| push bc | |
| ld a, (de) | |
| and $03 | |
| sub c | |
| jr nc, _LABEL_518_ | |
| xor a | |
| _LABEL_518_: | |
| ld (hl), a | |
| rlc c | |
| rlc c | |
| ld a, (de) | |
| and $0C | |
| sub c | |
| jr nc, _LABEL_524_ | |
| xor a | |
| _LABEL_524_: | |
| or (hl) | |
| ld (hl), a | |
| rlc c | |
| rlc c | |
| ld a, (de) | |
| and $30 | |
| sub c | |
| jr nc, _LABEL_531_ | |
| xor a | |
| _LABEL_531_: | |
| or (hl) | |
| ld (hl), a | |
| inc hl | |
| inc de | |
| pop bc | |
| djnz _LABEL_510_ | |
| ret | |
| ; 4th entry of Jump Table from 4ED (indexed by TableIndex3) | |
| ; Title screen? | |
| JumpTable3_539: | |
| ld a, ($C0A1) | |
| ld d, a | |
| ld a, $03 | |
| sub d | |
| jr _LABEL_545_ | |
| ; 5th entry of Jump Table from 4ED (indexed by TableIndex3) | |
| JumpTable3_542: | |
| ld a, ($C0A1) | |
| _LABEL_545_: | |
| ld c, a | |
| ld de, PaletteInRAM2 | |
| ld hl, PaletteInRAM | |
| ld b, $20 | |
| Loop_54E: | |
| push bc | |
| ld a, (de) | |
| and $03 | |
| add a, c | |
| cp $04 | |
| jr c, _LABEL_559_ | |
| ld a, $03 | |
| _LABEL_559_: | |
| ld (hl), a | |
| rlc c | |
| rlc c | |
| ld a, (de) | |
| and $0C | |
| add a, c | |
| cp $10 | |
| jr c, _LABEL_568_ | |
| ld a, $0C | |
| _LABEL_568_: | |
| or (hl) | |
| ld (hl), a | |
| rlc c | |
| rlc c | |
| ld a, (de) | |
| and $30 | |
| add a, c | |
| cp $40 | |
| jr c, _LABEL_578_ | |
| ld a, $30 | |
| _LABEL_578_: | |
| or (hl) | |
| ld (hl), a | |
| inc hl | |
| inc de | |
| pop bc | |
| djnz Loop_54E | |
| ret | |
| ; 6th entry of Jump Table from 4ED (indexed by TableIndex3) | |
| JumpTable3_580: | |
| ld a, ($C0A1) | |
| ld d, a | |
| ld a, $03 | |
| sub d | |
| jr _LABEL_58C_ | |
| ; 7th entry of Jump Table from 4ED (indexed by TableIndex3) | |
| JumpTable3_589: | |
| ld a, ($C0A1) | |
| _LABEL_58C_: | |
| ld c, a | |
| ld de, ($C0A4) | |
| ld hl, $0040 | |
| add hl, de | |
| ex de, hl | |
| ld a, ($C0A3) | |
| ld b, a | |
| jp _LABEL_510_ | |
| VDPOut_59D: | |
| ld de, $0000 | |
| ld hl, $0000 | |
| ld bc, $0010 | |
| call VDPOut_Loop_632 | |
| ld de, $2000 | |
| ld hl, $0000 | |
| ld bc, $0010 | |
| call VDPOut_Loop_632 | |
| ld de, $3800 | |
| ld hl, $0000 | |
| ld bc, $0380 | |
| call VDPOut_Loop_632 | |
| ld de, $3F00 | |
| ld a, $D0 | |
| ld bc, $0001 | |
| call VDPOut_618 | |
| ld hl, $C500 | |
| ld (hl), $D0 | |
| inc hl | |
| ld de, $C502 | |
| ld (hl), $00 | |
| call LDI129 | |
| call LDI64 | |
| ret | |
| _LABEL_5DE_: | |
| ld hl, $C100 | |
| ld de, $C101 | |
| ld bc, $02FF | |
| ld (hl), $00 | |
| ldir | |
| ld de, $3F00 | |
| ld a, $D0 | |
| ld bc, $0001 | |
| call VDPOut_618 | |
| ld hl, $C500 | |
| ld (hl), $D0 | |
| inc hl | |
| ld de, $C502 | |
| ld (hl), $00 | |
| call LDI129 | |
| call LDI64 | |
| ret | |
| _LABEL_608_: | |
| rst $08 ; Interrupt8 | |
| inc b | |
| Loop_60A: | |
| ld a, b | |
| ld b, c | |
| ld c, VDPData | |
| _LABEL_60E_: | |
| outi | |
| jr nz, _LABEL_60E_ | |
| ld b, a | |
| ld c, $00 | |
| djnz Loop_60A | |
| ret | |
| VDPOut_618: | |
| ex af, af' | |
| rst $08 ; Interrupt8 | |
| ex af, af' | |
| inc b | |
| push bc | |
| ld b, c | |
| jr _LABEL_623_ | |
| Loop_620: | |
| push bc | |
| ld b, $00 | |
| _LABEL_623_: | |
| out (VDPData), a | |
| nop | |
| djnz -4 | |
| pop bc | |
| djnz Loop_620 | |
| ret | |
| ; Unused? | |
| _LABEL_62C_: | |
| out ($BE), a | |
| nop | |
| djnz -5 | |
| ret | |
| VDPOut_Loop_632: | |
| rst $08 ; Interrupt8 | |
| inc b | |
| ld d, c | |
| ld c, VDPData | |
| push bc ; Nested counters- rows and columns, maybe? | |
| ld b, d | |
| jr Inner_Loop_63E | |
| Outer_Loop_63B: | |
| push bc | |
| ld b, $00 | |
| Inner_Loop_63E: | |
| ld a, l | |
| out (c), a | |
| ld a, h | |
| jr + | |
| +: | |
| out (c), a | |
| djnz Inner_Loop_63E | |
| pop bc | |
| djnz Outer_Loop_63B | |
| ret | |
| VDPOut_64C: | |
| rst $08 ; Interrupt8 | |
| push bc | |
| ld b, c | |
| ld c, VDPData | |
| _LABEL_651_: | |
| outi | |
| outi | |
| jr nz, _LABEL_651_ | |
| ex de, hl | |
| ld bc, $0040 | |
| add hl, bc | |
| ex de, hl | |
| pop bc | |
| djnz VDPOut_64C | |
| ret | |
| VDPOut_661: | |
| rst $08 ; Interrupt8 | |
| push bc | |
| ld b, c | |
| ld c, VDPData | |
| Loop_666: | |
| outi | |
| nop | |
| jr + | |
| +: | |
| outi | |
| nop | |
| jr nz, Loop_666 | |
| ex de, hl | |
| ld bc, $0040 | |
| add hl, bc | |
| ld a, h | |
| cp $3F | |
| jr c, _LABEL_67C_ | |
| ld h, $38 | |
| _LABEL_67C_: | |
| ex de, hl | |
| pop bc | |
| djnz VDPOut_661 | |
| ret | |
| _LABEL_681_: | |
| ld a, c | |
| add a, e | |
| xor e | |
| bit 6, a | |
| jr z, VDPOut_661 | |
| ld a, c | |
| add a, e | |
| and $3F | |
| jr z, VDPOut_661 | |
| ex af, af' | |
| ld a, c | |
| add a, e | |
| and $3F | |
| neg | |
| add a, c | |
| ld c, a | |
| Loop_697: | |
| push bc | |
| push de | |
| rst $08 ; Interrupt8 | |
| ld b, c | |
| ld c, VDPData | |
| _LABEL_69D_: | |
| outi | |
| nop | |
| jr _LABEL_6A2_ | |
| _LABEL_6A2_: | |
| outi | |
| nop | |
| jr nz, _LABEL_69D_ | |
| ld a, e | |
| and $C0 | |
| ld e, a | |
| rst $08 ; Interrupt8 | |
| ex af, af' | |
| ld b, a | |
| ex af, af' | |
| _LABEL_6AF_: | |
| outi | |
| nop | |
| jr _LABEL_6B4_ | |
| _LABEL_6B4_: | |
| outi | |
| nop | |
| jr nz, _LABEL_6AF_ | |
| pop de | |
| ex de, hl | |
| ld bc, $0040 | |
| add hl, bc | |
| ld a, h | |
| cp $3F | |
| jr c, _LABEL_6C6_ | |
| ld h, $38 | |
| _LABEL_6C6_: | |
| ex de, hl | |
| pop bc | |
| djnz Loop_697 | |
| ret | |
| _LABEL_6CB_: | |
| push bc | |
| ex af, af' | |
| rst $08 ; Interrupt8 | |
| _LABEL_6CE_: | |
| ld a, (hl) | |
| out ($BE), a | |
| ex af, af' | |
| jr _LABEL_6D4_ | |
| _LABEL_6D4_: | |
| out ($BE), a | |
| ex af, af' | |
| inc hl | |
| dec c | |
| jr nz, _LABEL_6CE_ | |
| ex af, af' | |
| ex de, hl | |
| ld bc, $0040 | |
| add hl, bc | |
| ex de, hl | |
| pop bc | |
| djnz -26 | |
| ret | |
| _LABEL_6E6_: | |
| push bc | |
| rst $18 ; Interrupt18 | |
| ld b, c | |
| ld c, $BE | |
| _LABEL_6EB_: | |
| ini | |
| nop | |
| jr _LABEL_6F0_ | |
| _LABEL_6F0_: | |
| ini | |
| nop | |
| jr nz, _LABEL_6EB_ | |
| ex de, hl | |
| ld bc, $0040 | |
| add hl, bc | |
| ld a, h | |
| cp $3F | |
| jr c, _LABEL_701_ | |
| ld h, $38 | |
| _LABEL_701_: | |
| ex de, hl | |
| pop bc | |
| djnz -31 | |
| ret | |
| _LABEL_706_: | |
| ld a, c | |
| add a, e | |
| xor e | |
| bit 6, a | |
| jr z, _LABEL_6E6_ | |
| ld a, c | |
| add a, e | |
| and $3F | |
| jr z, _LABEL_6E6_ | |
| ex af, af' | |
| ld a, c | |
| add a, e | |
| and $3F | |
| neg | |
| add a, c | |
| ld c, a | |
| Loop_71C: | |
| push bc | |
| push de | |
| rst $18 ; Interrupt18 | |
| ld b, c | |
| ld c, $BE | |
| _LABEL_722_: | |
| ini | |
| nop | |
| jr _LABEL_727_ | |
| _LABEL_727_: | |
| ini | |
| nop | |
| jr nz, _LABEL_722_ | |
| ld a, e | |
| and $C0 | |
| ld e, a | |
| rst $18 ; Interrupt18 | |
| ex af, af' | |
| ld b, a | |
| ex af, af' | |
| _LABEL_734_: | |
| ini | |
| nop | |
| jr _LABEL_739_ | |
| _LABEL_739_: | |
| ini | |
| nop | |
| jr nz, _LABEL_734_ | |
| pop de | |
| ex de, hl | |
| ld bc, $0040 | |
| add hl, bc | |
| ld a, h | |
| cp $3F | |
| jr c, _LABEL_74B_ | |
| ld h, $38 | |
| _LABEL_74B_: | |
| ex de, hl | |
| pop bc | |
| djnz Loop_71C | |
| ret | |
| LoadPaletteToRAMMirror: | |
| ld de, PaletteInRAM2 | |
| jr DoLoadPalette | |
| LoadPaletteToRAMPrimary: | |
| ld a, (PaletteInRAMStatus) ; Set palette in RAM status to dirty | |
| or $01 | |
| ld (PaletteInRAMStatus), a | |
| ld de, PaletteInRAM | |
| DoLoadPalette: | |
| ld a, (hl) | |
| inc hl | |
| push hl | |
| ld l, a | |
| ld h, $00 | |
| add hl, de | |
| ex de, hl | |
| pop hl | |
| ld a, (hl) | |
| ld c, a | |
| ld b, $00 | |
| inc hl | |
| ldir | |
| ret | |
| InitializePaletteInRAM: | |
| ld hl, PaletteInRAM ; Zero out PaletteInRAM-C040 (End palette in RAM?) | |
| ld de, $C021 | |
| ld bc, $001F | |
| ld (hl), $00 | |
| ldir | |
| ld hl, PaletteInRAMStatus | |
| set 0, (hl) ; Set palette status flag clean | |
| ret | |
| WritePalette: | |
| xor a | |
| out (VDPControl), a | |
| ld a, $C0 | |
| out (VDPControl), a | |
| ld hl, PaletteInRAM | |
| ld c, VDPData | |
| jp OUTI32 | |
| ; Decompress to VDP | |
| DecompressToVDP: | |
| ld a, (hl) | |
| inc hl | |
| exx | |
| ld e, a | |
| ld d, $00 | |
| exx | |
| ld b, a | |
| -: | |
| push bc | |
| push de | |
| exx | |
| pop hl | |
| push hl | |
| exx | |
| call DecompressToVDP_7AA | |
| pop de | |
| inc de | |
| pop bc | |
| djnz - | |
| ret | |
| DecompressToVDP_7AA: | |
| ld a, (hl) | |
| inc hl | |
| or a | |
| ret z | |
| ld b, a | |
| and $80 | |
| ld c, a | |
| ld a, b | |
| and $7F | |
| ld b, a | |
| DecompressToVDP_7B6: | |
| rst $08 ; Interrupt8 | |
| ex (sp), hl | |
| ex (sp), hl | |
| jr DecompressToVDP_7BB | |
| DecompressToVDP_7BB: | |
| ld a, (hl) | |
| out (VDPData), a | |
| xor a | |
| or c | |
| jr z, DecompressToVDP_7C3 | |
| inc hl | |
| DecompressToVDP_7C3: | |
| exx | |
| add hl, de | |
| push hl | |
| exx | |
| pop de | |
| djnz DecompressToVDP_7B6 | |
| xor a | |
| or c | |
| jp nz, DecompressToVDP_7AA | |
| inc hl | |
| jp DecompressToVDP_7AA | |
| ; Decompress to RAM | |
| DecompressToRAM: | |
| ld a, (hl) | |
| inc hl | |
| exx | |
| ld e, a | |
| ld d, $00 | |
| exx | |
| ld b, a | |
| -: | |
| push bc | |
| push de | |
| exx | |
| pop hl | |
| push hl | |
| exx | |
| call DecompressToRAM_7EA | |
| pop de | |
| inc de | |
| pop bc | |
| djnz - | |
| ret | |
| DecompressToRAM_7EA: | |
| ld a, (hl) | |
| inc hl | |
| or a | |
| ret z | |
| ld b, a | |
| and $80 | |
| ld c, a | |
| ld a, b | |
| and $7F | |
| ld b, a | |
| DecompressToRAM_7F6: | |
| ld a, (hl) | |
| ld (de), a | |
| bit 7, c | |
| jr z, DecompressToRAM_7FD | |
| inc hl | |
| DecompressToRAM_7FD: | |
| exx | |
| add hl, de | |
| push hl | |
| exx | |
| pop de | |
| djnz DecompressToRAM_7F6 | |
| bit 7, c | |
| jp nz, DecompressToRAM_7EA | |
| inc hl | |
| jp DecompressToRAM_7EA | |
| _LABEL_80D_: | |
| ld a, $01 | |
| exx | |
| ld e, $FF | |
| jr _LABEL_817_ | |
| _LABEL_814_: | |
| exx | |
| ld e, $00 | |
| _LABEL_817_: | |
| exx | |
| ld ($C0CC), a | |
| rst $08 ; Interrupt8 | |
| ld c, (hl) | |
| inc hl | |
| ld b, (hl) | |
| inc hl | |
| _LABEL_820_: | |
| ld a, (hl) | |
| exx | |
| ld c, VDPData | |
| ld b, $04 | |
| ld h, a | |
| ld a, ($C0CC) | |
| _LABEL_82A_: | |
| rra | |
| ld d, h | |
| jr c, _LABEL_82F_ | |
| ld d, e | |
| _LABEL_82F_: | |
| out (c), d | |
| djnz _LABEL_82A_ | |
| exx | |
| inc hl | |
| dec bc | |
| ld a, b | |
| or c | |
| jp nz, _LABEL_820_ | |
| ret | |
| ; These two files contain large unrolled loops of OUTI, LDI, and LDD | |
| ; instructions to improve performance. | |
| .include "utils\outi.asm" | |
| .include "utils\ldi.asm" | |
| .include "utils\ldd.asm" | |
| ; $B7B Get Random Number | |
| GetRandomNumber: | |
| push hl | |
| ld hl, (RNGSeed) | |
| ld a, h | |
| rrca | |
| rrca | |
| xor h | |
| rrca | |
| xor l | |
| rrca | |
| rrca | |
| rrca | |
| rrca | |
| xor l | |
| rrca | |
| adc hl, hl | |
| jr nz, ReseedRNG | |
| ld hl, $733C | |
| ReseedRNG: | |
| ld a, r | |
| xor l | |
| ld (RNGSeed), hl | |
| pop hl | |
| ret | |
| _LABEL_B9A_: | |
| ld a, (TableIndex3) | |
| or a | |
| ret z | |
| pop hl | |
| jp _LABEL_137_ | |
| _LABEL_BA3_: | |
| call InitializePaletteInRAM | |
| ld a, $01 | |
| ld ($C014), a | |
| call _LABEL_137_ | |
| di | |
| jp VDPOut_59D | |
| ; Data from BB2 to BC7 (22 bytes) - Unused? | |
| Data_BB2: | |
| .db $3E $0F $11 $00 $2B $21 $D8 $80 | |
| .db $C3 $14 $08 $3E $0F $11 $00 $30 | |
| .db $21 $86 $80 $C3 $14 $08 | |
| _LABEL_BC8_: | |
| xor a | |
| out (VDPControl), a | |
| ld a, $88 | |
| out (VDPControl), a | |
| xor a | |
| out (VDPControl), a | |
| ld a, $89 | |
| out (VDPControl), a | |
| ret | |
| ; 1st entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_BD7: | |
| call _LABEL_B9A_ | |
| ld a, $26 | |
| out (VDPControl), a | |
| ld a, $80 | |
| out (VDPControl), a | |
| ld a, $02 | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| ; 3rd entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_BEA: | |
| call _LABEL_B9A_ | |
| ld a, $07 | |
| ld ($FFFF), a | |
| call StopAllSound | |
| ld a, $02 | |
| ld ($FFFF), a | |
| call _LABEL_BA3_ | |
| call _LABEL_5DE_ | |
| call _LABEL_BC8_ | |
| ld a, $06 | |
| ld ($FFFF), a | |
| ld hl, $8B6E | |
| ld de, $2000 | |
| call DecompressToVDP | |
| ld hl, $99B4 | |
| ld de, $0000 | |
| call DecompressToVDP | |
| ld hl, $8934 | |
| ld de, $3500 | |
| call DecompressToVDP | |
| ld hl, $878D | |
| ld de, $1A00 | |
| call DecompressToVDP | |
| ld hl, $80D6 | |
| ld de, $CB00 | |
| call DecompressToRAM | |
| ld hl, $CB00 | |
| ld de, $3886 | |
| ld bc, $0A36 | |
| call VDPOut_64C | |
| ld hl, $81E6 | |
| ld de, $3A98 | |
| ld bc, $0A10 | |
| call VDPOut_64C | |
| ld hl, $0D0C | |
| ld ($C100), hl | |
| ld hl, $8000 | |
| call LoadPaletteToRAMPrimary | |
| ld a, $02 | |
| ld ($C014), a | |
| ei | |
| ld hl, $0384 | |
| ld (TitleScreenCounterLow), hl | |
| ld a, $03 | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| ; 4th entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_C6D: | |
| call _LABEL_137_ | |
| ld a, (LastControllerState) | |
| and $30 | |
| jr z, _LABEL_CF5_ | |
| ld a, (CurrentControllerState) | |
| and $0F | |
| cp $0A | |
| jr z, SetUpGame | |
| _LABEL_C80_: | |
| xor a | |
| ld ($C0D6), a | |
| call _LABEL_42C_ | |
| ld a, $06 | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| SetUpGame: | |
| ld a, ($C0D6) ; If $C0D6 is zero, jump to _LABEL_C80_ | |
| or a | |
| jr z, _LABEL_C80_ | |
| xor a | |
| ld ($C0D6), a | |
| ld a, $01 | |
| ld (Floor), a | |
| ld a, $01 | |
| ld (CharacterLevel), a | |
| ld a, $30 | |
| ld (Food), a | |
| ld hl, $03E7 | |
| ld (CurrentHPLow), hl | |
| ld (MaxHPLow), hl | |
| ld hl, $FFFF | |
| ld (NextLevelLow), hl | |
| xor a | |
| ld ($C62A), a | |
| ld (ExperienceLow), a | |
| ld (ExperienceHigh), a | |
| ld ($C627), a | |
| ld (MoneyLow), a | |
| ld (MoneyMid), a | |
| ld (MoneyHigh), a | |
| ld a, $1E | |
| ld (BasePW), a | |
| ld (BaseAC), a | |
| ld a, DaggerSword | |
| ld (EquippedWeapon), a | |
| ld a, RobeArmor | |
| ld (EquippedArmor), a | |
| call _LABEL_101A_ | |
| ld a, $07 | |
| ld ($FFFF), a | |
| call StopAllSound | |
| call _LABEL_461_ | |
| ld a, $0D | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| _LABEL_CF5_: | |
| call _LABEL_3EE_ | |
| call _LABEL_1D60_ | |
| call _LABEL_175_ | |
| jp nz, _LABEL_137_ | |
| call _LABEL_42C_ | |
| ld a, $04 | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| ; Palette | |
| _LABEL_D0C_: | |
| inc (ix+24) | |
| ld a, (ix+24) | |
| cp $08 | |
| ret c | |
| ld (ix+24), $00 | |
| ld (ix+2), $01 | |
| ld (ix+15), $3F | |
| ld (ix+17), $80 | |
| ld (ix+21), $08 | |
| ld (ix+22), $E0 | |
| ld (ix+23), $0E | |
| ld (ix+0), $3A | |
| ld (ix+1), $0D | |
| ret | |
| _LABEL_D3A_: | |
| ld a, (ix+21) | |
| or a | |
| jr z, _LABEL_D45_ | |
| dec a | |
| ld (ix+21), a | |
| ret | |
| _LABEL_D45_: | |
| ld a, $02 | |
| ld (ix+21), a | |
| ld l, (ix+22) | |
| ld h, (ix+23) | |
| ld a, (hl) | |
| ld (ix+3), a | |
| inc hl | |
| ld (ix+22), l | |
| ld (ix+23), h | |
| inc (ix+24) | |
| ld a, (ix+24) | |
| cp $02 | |
| jr z, _LABEL_D75_ | |
| cp $08 | |
| ret c | |
| ld (ix+2), $00 | |
| ld (ix+0), $81 | |
| ld (ix+1), $0D | |
| ret | |
| _LABEL_D75_: | |
| ld a, $06 | |
| ld ($FFFF), a | |
| ld hl, $800C | |
| call _LABEL_475_ | |
| ret | |
| _LABEL_D81_: | |
| ld a, $04 | |
| ld ($FFFF), a | |
| ld hl, $800A | |
| ld de, $1C00 | |
| ld bc, $0180 | |
| call _LABEL_608_ | |
| ld a, $06 | |
| ld ($FFFF), a | |
| ld hl, $8466 | |
| ld de, $1400 | |
| call DecompressToVDP | |
| ld (ix+2), $01 | |
| ld (ix+3), $BD | |
| ld (ix+15), $00 | |
| ld (ix+17), $80 | |
| ld (ix+28), $00 | |
| ld (ix+29), $02 | |
| ld (ix+0), $C1 | |
| ld (ix+1), $0D | |
| ret | |
| _LABEL_DC1_: | |
| ld l, (ix+26) | |
| ld h, (ix+15) | |
| ld e, (ix+28) | |
| ld d, (ix+29) | |
| add hl, de | |
| ld a, h | |
| cp $80 | |
| jr nc, _LABEL_DE4_ | |
| ld (ix+26), l | |
| ld (ix+15), h | |
| ld hl, $0040 | |
| add hl, de | |
| ld (ix+28), l | |
| ld (ix+29), h | |
| ret | |
| _LABEL_DE4_: | |
| ld (ix+26), $00 | |
| ld (ix+15), $80 | |
| ld (ix+0), $01 | |
| ld (ix+1), $0E | |
| ld (ix+21), $20 | |
| ld (ix+0), $01 | |
| ld (ix+1), $0E | |
| ret | |
| _LABEL_E01_: | |
| ld a, (ix+21) | |
| or a | |
| jr z, _LABEL_E0C_ | |
| dec a | |
| ld (ix+21), a | |
| ret | |
| _LABEL_E0C_: | |
| ld (ix+24), $00 | |
| ld (ix+3), $C1 | |
| ld (ix+21), $08 | |
| ld (ix+22), $E8 | |
| ld (ix+23), $0E | |
| ld (ix+0), $29 | |
| ld (ix+1), $0E | |
| ret | |
| _LABEL_E29_: | |
| ld a, (ix+21) | |
| or a | |
| jr z, _LABEL_E34_ | |
| dec a | |
| ld (ix+21), a | |
| ret | |
| _LABEL_E34_: | |
| ld a, $03 | |
| ld (ix+21), a | |
| ld l, (ix+22) | |
| ld h, (ix+23) | |
| ld a, (hl) | |
| ld (ix+3), a | |
| inc hl | |
| ld (ix+22), l | |
| ld (ix+23), h | |
| inc (ix+24) | |
| ld a, (ix+24) | |
| cp $0B | |
| ret c | |
| ld a, MusicTrack81 | |
| ld (MusicQueue), a | |
| ld a, $40 | |
| ld (ix+21), a | |
| ld (ix+0), $66 | |
| ld (ix+1), $0E | |
| ret | |
| _LABEL_E66_: | |
| ld a, (ix+21) | |
| or a | |
| jr z, _LABEL_E71_ | |
| dec a | |
| ld (ix+21), a | |
| ret | |
| _LABEL_E71_: | |
| ld a, $06 | |
| ld ($FFFF), a | |
| ld hl, $8016 | |
| call _LABEL_475_ | |
| ld a, $40 | |
| ld (ix+21), a | |
| ld (ix+0), $8A | |
| ld (ix+1), $0E | |
| ret | |
| _LABEL_E8A_: | |
| ld a, (ix+21) | |
| or a | |
| jr z, _LABEL_E95_ | |
| dec a | |
| ld (ix+21), a | |
| ret | |
| _LABEL_E95_: | |
| ld a, $06 | |
| ld ($FFFF), a | |
| ld hl, $8020 | |
| call _LABEL_475_ | |
| ld (ix+0), $A9 | |
| ld (ix+1), $0E | |
| ret | |
| _LABEL_EA9_: | |
| ld a, (TableIndex3) | |
| or a | |
| ret nz | |
| ld a, $06 | |
| ld ($FFFF), a | |
| ld hl, $8096 | |
| ld de, $3D52 | |
| ld bc, $0220 | |
| call VDPOut_64C | |
| ld (ix+0), $C8 | |
| ld (ix+1), $0E | |
| ret | |
| _LABEL_EC8_: | |
| inc (ix+24) | |
| bit 3, (ix+24) | |
| ld hl, $0000 | |
| jr z, _LABEL_ED7_ | |
| ld hl, $0F29 | |
| _LABEL_ED7_: | |
| ld ($C03E), hl | |
| ld hl, PaletteInRAMStatus | |
| set 0, (hl) | |
| ret | |
| ; Data from EE0 to EF2 (19 bytes) | |
| Data_EE0: | |
| .db $B9 $BA $BB $BC $BB $BA $B9 $00 | |
| .db $C1 $C0 $BF $BE $BF $C0 $C1 $C2 | |
| .db $C1 $C2 $C1 | |
| ; 5th entry of Jump Table from 17F (indexed by TableIndex1) | |
| SetUpGameAutoplay: | |
| ld a, $01 | |
| ld (Autoplay), a | |
| ld hl, $0210 | |
| ld (AutoplayCountdownLow), hl | |
| ld a, $01 | |
| ld (CharacterLevel), a | |
| ld a, $30 | |
| ld (Food), a | |
| ld hl, $0064 | |
| ld (CurrentHPLow), hl | |
| ld (MaxHPLow), hl | |
| ld hl, $FFFF | |
| ld (NextLevelLow), hl | |
| xor a | |
| ld ($C62A), a | |
| ld (ExperienceLow), a | |
| ld (ExperienceHigh), a | |
| ld ($C627), a | |
| ld (MoneyLow), a | |
| ld (MoneyMid), a | |
| ld (MoneyHigh), a | |
| ld a, $0A | |
| ld (BasePW), a | |
| ld (BaseAC), a | |
| ld a, $01 | |
| ld (Floor), a | |
| ld a, DaggerSword | |
| ld (EquippedWeapon), a | |
| ld a, RobeArmor | |
| ld (EquippedArmor), a | |
| ld a, $08 | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| ; 7th entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_F4C: | |
| call _LABEL_B9A_ | |
| ld a, $02 | |
| ld ($FFFF), a | |
| call _LABEL_BA3_ | |
| call _LABEL_5DE_ | |
| ld a, $FB | |
| out (VDPControl), a | |
| ld a, $86 | |
| out (VDPControl), a | |
| ld hl, $C400 | |
| ld de, $C401 | |
| ld bc, $00FF | |
| ld (hl), $00 | |
| ldir | |
| ld a, $01 | |
| ld hl, $C935 | |
| ld b, $10 | |
| -: | |
| ld (hl), a | |
| inc a | |
| inc hl | |
| djnz - | |
| ld hl, $C935 | |
| ld de, $C945 | |
| call LDI16 | |
| ld hl, $C935 | |
| ld de, $C955 | |
| call LDI16 | |
| ld hl, $C935 | |
| ld de, $C965 | |
| call LDI16 | |
| ld hl, $C935 | |
| call _LABEL_1000_ | |
| ld hl, $C945 | |
| call _LABEL_1000_ | |
| ld hl, $C955 | |
| call _LABEL_1000_ | |
| ld hl, $C965 | |
| call _LABEL_1000_ | |
| ld a, $01 | |
| ld (CharacterLevel), a | |
| ld a, $01 | |
| ld (Floor), a | |
| ld a, $30 | |
| ld (Food), a | |
| ld hl, $0064 | |
| ld (CurrentHPLow), hl | |
| ld (MaxHPLow), hl | |
| ld hl, $0014 | |
| ld (NextLevelLow), hl | |
| xor a | |
| ld ($C62A), a | |
| ld (ExperienceLow), a | |
| ld (ExperienceHigh), a | |
| ld ($C627), a | |
| ld (MoneyLow), a | |
| ld (MoneyMid), a | |
| ld (MoneyHigh), a | |
| ld (BasePW), a | |
| ld (BaseAC), a | |
| ld a, DaggerSword | |
| ld (EquippedWeapon), a | |
| ld a, RobeArmor | |
| ld (EquippedArmor), a | |
| call _LABEL_101A_ | |
| call _LABEL_42C_ | |
| ld a, $08 | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| _LABEL_1000_: | |
| ld e, l | |
| ld d, h | |
| ld b, $10 | |
| _LABEL_1004_: | |
| push bc | |
| push hl | |
| call GetRandomNumber | |
| and $0F | |
| ld c, a | |
| ld b, $00 | |
| add hl, bc | |
| ld b, (hl) | |
| ld a, (de) | |
| ld (hl), a | |
| ld a, b | |
| ld (de), a | |
| inc de | |
| pop hl | |
| pop bc | |
| djnz _LABEL_1004_ | |
| ret | |
| _LABEL_101A_: | |
| ld hl, EquippedWeapon | |
| res 7, (hl) | |
| inc hl | |
| ld de, $C902 | |
| ld (hl), $00 | |
| call LDI6 | |
| ld a, (EquippedWeapon) | |
| cp $0E ; GreatSword? | |
| jr nz, _LABEL_1034_ | |
| ld a, $03 | |
| ld ($C901), a | |
| _LABEL_1034_: | |
| ld hl, EquippedArmor | |
| res 7, (hl) | |
| inc hl | |
| ld de, $C90A | |
| ld (hl), $00 | |
| call LDI6 | |
| ld hl, $C910 | |
| ld de, $C911 | |
| ld (hl), $00 | |
| call LDI36 | |
| jp EquipWeaponAndArmor | |
| ; Text "INIT" | |
| .include "ui\init.asm" | |
| ; 9th entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_1058: | |
| call _LABEL_B9A_ | |
| ld a, $02 | |
| ld ($FFFF), a | |
| call _LABEL_BA3_ | |
| call _LABEL_BC8_ | |
| call _LABEL_5DE_ | |
| ld de, $2B00 | |
| ld hl, $80D8 | |
| call _LABEL_80D_ | |
| ld de, $3000 | |
| ld hl, $8086 | |
| call _LABEL_80D_ | |
| ld hl, $8000 | |
| ld de, $2A80 | |
| call DecompressToVDP | |
| ld a, (Floor) | |
| dec a | |
| jr z, _LABEL_108F_ | |
| call GetRandomNumber | |
| and $03 | |
| _LABEL_108F_: | |
| ld ($C01D), a | |
| call _LABEL_2A22_ | |
| call _LABEL_2941_ | |
| call _LABEL_2492_ | |
| call _LABEL_263B_ | |
| call _LABEL_1F8F_ | |
| call _LABEL_1FB8_ | |
| call _LABEL_20BA_ | |
| ld hl, ($C105) | |
| ld de, $2D00 | |
| add hl, de | |
| call _LABEL_2DFA_ | |
| ld hl, $311A | |
| ld ($C100), hl | |
| ld hl, $3CE6 | |
| ld ($C120), hl | |
| ld hl, PreventArmorRust | |
| ld de, ParalysisTicksLeft | |
| ld (hl), $00 | |
| call LDI5 | |
| ld hl, $8064 | |
| call LoadPaletteToRAMMirror | |
| call _LABEL_27E3_ | |
| call LoadMonsterPalette | |
| ld a, $04 | |
| ld ($FFFF), a | |
| ld hl, $8000 | |
| call LoadPaletteToRAMMirror | |
| ld a, (EquippedWeapon) | |
| dec a | |
| and $0C | |
| rrca | |
| rrca | |
| ld e, a | |
| ld d, $00 | |
| ld hl, SwordColors | |
| add hl, de | |
| ld de, $C077 | |
| ldi | |
| call _LABEL_40F_ | |
| ld a, $02 | |
| ld ($C014), a | |
| ld a, (Floor) ; Select music for floor | |
| ld d, $84 ; Start with song $84 | |
| cp $0B ; If floor is 11 or greater, increment song | |
| jr c, PlayFloorMusic | |
| inc d | |
| cp $15 ; If floor is 21 or greater, increment song | |
| jr c, PlayFloorMusic | |
| inc d | |
| PlayFloorMusic: | |
| ld a, d | |
| ld (MusicQueue), a | |
| xor a | |
| ld (CurrentMessage), a | |
| ld ($CAC5), a | |
| ld a, $3C | |
| ld (PlayerIdleTimer), a | |
| ei | |
| ld a, $0A | |
| ld (TableIndex1), a | |
| jp _LABEL_143_ | |
| ; Sword colors | |
| .include "items\appearance\sword_color_palette.asm" | |
| ; 10th entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_1127: | |
| call _LABEL_B9A_ | |
| call _LABEL_BC8_ | |
| ld a, $02 | |
| ld ($FFFF), a | |
| call _LABEL_BA3_ | |
| ld de, $2B00 | |
| ld hl, $80D8 | |
| call _LABEL_80D_ | |
| ld de, $3000 | |
| ld hl, $8086 | |
| call _LABEL_80D_ | |
| ld de, $3000 | |
| call _LABEL_2941_ | |
| call _LABEL_2A22_ | |
| ld hl, ($C105) | |
| ld de, $2D00 | |
| add hl, de | |
| call _LABEL_2DFA_ | |
| call _LABEL_2E69_ | |
| call _LABEL_1F4F_ | |
| ld hl, $8064 | |
| call LoadPaletteToRAMMirror | |
| call _LABEL_27E3_ | |
| call LoadMonsterPalette | |
| ld a, $04 | |
| ld ($FFFF), a | |
| ld hl, $8000 | |
| call LoadPaletteToRAMMirror | |
| ld a, (EquippedWeapon) ; Which color is the sword, 0, 1, 2, 3? | |
| dec a | |
| and $0C | |
| rrca | |
| rrca | |
| ld e, a | |
| ld d, $00 | |
| ld hl, SwordColors | |
| add hl, de | |
| ld a, (hl) | |
| ld ($C077), a | |
| call _LABEL_40F_ | |
| ld a, $3C | |
| ld (PlayerIdleTimer), a | |
| ld a, $02 | |
| ld ($C014), a | |
| ei | |
| ld a, $0A | |
| ld (TableIndex1), a | |
| jp _LABEL_143_ | |
| ; 11th entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_11A0: | |
| call _LABEL_3EE_ | |
| ld a, $02 | |
| ld ($FFFF), a | |
| call _LABEL_2E6A_ | |
| call _LABEL_1F4F_ | |
| call _LABEL_1D60_ | |
| ld a, ($C606) | |
| or a | |
| call nz, _LABEL_225C_ | |
| ld a, ($C60E) | |
| or a | |
| call nz, _LABEL_2198_ | |
| call _LABEL_2A6C_ | |
| call _LABEL_2DAD_ | |
| jp _LABEL_143_ | |
| ; Unreachable? | |
| _LABEL_11C8_: | |
| call _LABEL_42C_ | |
| ld a, $0B | |
| ld (TableIndex1), a | |
| jp _LABEL_143_ | |
| ; Just the "Game" from "Game Over"- is Game used elsewhere? | |
| .include "ui\game_over_screen_1.asm" | |
| ; 12th entry of Jump Table from 17F (indexed by TableIndex1) | |
| DoGameOver: | |
| call _LABEL_B9A_ | |
| ld a, $02 | |
| ld ($FFFF), a | |
| call _LABEL_BA3_ | |
| call _LABEL_BC8_ | |
| call _LABEL_5DE_ | |
| ld hl, $C400 | |
| ld de, $C401 | |
| ld bc, $00FF | |
| ld (hl), $00 | |
| ldir | |
| ld de, $2B00 | |
| ld hl, $80D8 | |
| ld a, $09 | |
| call _LABEL_814_ | |
| ld de, $3000 | |
| ld hl, $8086 | |
| ld a, $09 | |
| call _LABEL_814_ | |
| ld a, $07 | |
| ld ($FFFF), a | |
| ld hl, $ACC7 | |
| ld de, $1800 | |
| call DecompressToVDP | |
| ld a, $06 | |
| ld ($FFFF), a | |
| ld hl, $99B4 | |
| ld de, $0000 | |
| call DecompressToVDP | |
| ld a, ($C01D) | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, Data_142D | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ex de, hl | |
| ld de, $38CC | |
| ld bc, $0A10 | |
| call VDPOut_64C | |
| ld a, $07 | |
| ld ($FFFF), a | |
| ld de, $3964 | |
| rst $08 ; Interrupt8 | |
| ld a, (CharacterLevel) | |
| ld b, a | |
| ld hl, $19AA | |
| ld de, $0016 | |
| -: | |
| add hl, de | |
| djnz - | |
| ld c, VDPData | |
| call OUTI22 | |
| ld de, $3A24 | |
| rst $08 ; Interrupt8 | |
| ld c, VDPData | |
| ld hl, $1990 | |
| call OUTI8 | |
| ld hl, (Floor) | |
| ld h, $00 | |
| call _LABEL_2C98_ | |
| ld e, $00 | |
| ld hl, $C0B2 | |
| ld a, (hl) | |
| call _LABEL_1940_ | |
| dec hl | |
| ld a, (hl) | |
| add a, $80 | |
| out (VDPData), a | |
| ld a, $01 | |
| out (VDPData), a | |
| ld de, $3AE4 | |
| rst $08 ; Interrupt8 | |
| ld c, VDPData | |
| ld hl, $AE3B | |
| call OUTI10 | |
| ld hl, MoneyHigh | |
| ld e, $00 | |
| ld b, $02 | |
| _LABEL_1298_: | |
| ld a, (hl) | |
| call _LABEL_1940_ | |
| dec hl | |
| ld a, (hl) | |
| rrca | |
| rrca | |
| rrca | |
| rrca | |
| call _LABEL_1940_ | |
| djnz _LABEL_1298_ | |
| ld a, (hl) | |
| and $0F | |
| add a, $80 | |
| out (VDPData), a | |
| ld a, $01 | |
| out (VDPData), a | |
| ld de, $3B8C | |
| rst $08 ; Interrupt8 | |
| ld c, VDPData | |
| ld a, ($C63F) | |
| cp $FE | |
| jr c, _LABEL_12DD_ | |
| jr z, _LABEL_12CA_ | |
| ld hl, $AEA7 | |
| ld b, $14 | |
| ld a, $11 | |
| jr _LABEL_12D1_ | |
| _LABEL_12CA_: | |
| ld hl, $AEBC | |
| ld b, $11 | |
| ld a, $11 | |
| _LABEL_12D1_: | |
| outi | |
| nop | |
| jr _LABEL_12D6_ | |
| _LABEL_12D6_: | |
| out (c), a | |
| nop | |
| jr nz, _LABEL_12D1_ | |
| jr _LABEL_131F_ | |
| _LABEL_12DD_: | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $AE5F | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ex de, hl | |
| ld b, (hl) | |
| inc hl | |
| in a, (VDPData) | |
| nop | |
| jr _LABEL_12F0_ | |
| _LABEL_12F0_: | |
| in a, (VDPData) | |
| nop | |
| jr _LABEL_12F5_ | |
| _LABEL_12F5_: | |
| in a, (VDPData) | |
| nop | |
| jr _LABEL_12FA_ | |
| _LABEL_12FA_: | |
| in a, (VDPData) | |
| nop | |
| jr _LABEL_12FF_ | |
| _LABEL_12FF_: | |
| ld c, VDPData | |
| ld a, $11 | |
| _LABEL_1303_: | |
| outi | |
| nop | |
| jr _LABEL_1308_ | |
| _LABEL_1308_: | |
| out (c), a | |
| nop | |
| jr nz, _LABEL_1303_ | |
| ld hl, $AEA1 | |
| ld bc, $06BE | |
| ld a, $11 | |
| _LABEL_1315_: | |
| outi | |
| nop | |
| jr _LABEL_131A_ | |
| _LABEL_131A_: | |
| out (c), a | |
| nop | |
| jr nz, _LABEL_1315_ | |
| _LABEL_131F_: | |
| ld a, (ContinuesSpent) | |
| cp ContinueLimit | |
| jp nc, UnableToContinue | |
| ld d, a | |
| ld a, (Floor) | |
| and $FC | |
| rrca | |
| rrca | |
| inc a | |
| add a, d | |
| ld l, a | |
| ld h, $00 | |
| call _LABEL_2C98_ | |
| ld a, ($C0B3) | |
| ld d, a | |
| ld a, ($C0B2) | |
| add a, a | |
| add a, a | |
| add a, a | |
| add a, a | |
| ld e, a | |
| ld a, ($C0B1) | |
| or e | |
| ld e, a | |
| ld hl, (MoneyMid) | |
| ld a, l | |
| sub e | |
| daa | |
| ld l, a | |
| ld a, h | |
| sbc a, d | |
| daa | |
| ld h, a | |
| jr c, UnableToContinue | |
| ld (MoneyMid), hl | |
| ld de, Data_3C90 | |
| rst $08 ; Interrupt8 | |
| ld c, VDPData | |
| ld hl, $AE45 | |
| call OUTI16 | |
| ld de, $3CAA | |
| rst $08 ; Interrupt8 | |
| ld c, VDPData | |
| ld hl, $AE55 | |
| call OUTI6 | |
| ld de, $3D2A | |
| rst $08 ; Interrupt8 | |
| ld c, VDPData | |
| ld hl, $AE5B | |
| call OUTI4 | |
| ld hl, $4F98 | |
| ld ($C100), hl | |
| ld a, $C4 | |
| ld ($C103), a | |
| ld de, $1400 | |
| rst $08 ; Interrupt8 | |
| ld a, (EquippedArmor) | |
| cp CuirassArmor ; $13 or less | |
| jr c, PlayerDeadWithLightArmor | |
| cp PlateArmor ; $16 or less | |
| jr c, PlayerDeadWithMediumArmor | |
| ld a, $02 | |
| ld hl, $B5EE | |
| jr SelectGameOverGraphics | |
| PlayerDeadWithMediumArmor: | |
| ld a, $04 | |
| ld hl, $B24A | |
| jr SelectGameOverGraphics | |
| PlayerDeadWithLightArmor: | |
| ld a, $04 | |
| ld hl, $95CA | |
| SelectGameOverGraphics: | |
| ld ($FFFF), a | |
| ld c, VDPData | |
| call OUTI128 | |
| call OUTI128 | |
| call OUTI128 | |
| jr _LABEL_13BF_ | |
| UnableToContinue: | |
| ld hl, $5010 | |
| ld ($C100), hl | |
| _LABEL_13BF_: | |
| ld hl, $5030 | |
| ld ($C120), hl | |
| ld a, $02 | |
| ld ($FFFF), a | |
| ld hl, $8064 | |
| call LoadPaletteToRAMMirror | |
| ld a, $07 | |
| ld ($FFFF), a | |
| ld a, ($C01D) | |
| and $07 | |
| rrca | |
| rrca | |
| rrca | |
| rrca | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $ADF3 | |
| add hl, de | |
| ld de, PaletteInRAM2 | |
| call LDI32 | |
| ld a, $04 | |
| ld ($FFFF), a | |
| ld hl, $8000 | |
| call LoadPaletteToRAMMirror | |
| ld a, (EquippedWeapon) | |
| dec a | |
| and $0C | |
| rrca | |
| rrca | |
| ld e, a | |
| ld d, $00 | |
| ld hl, SwordColors | |
| add hl, de | |
| ld de, $C08E | |
| ldi | |
| call _LABEL_40F_ | |
| xor a | |
| ld ($C0D5), a | |
| ld a, $02 | |
| ld ($C014), a | |
| ld a, MusicTrack83 ; Play Game Over music | |
| ld (MusicQueue), a | |
| ei | |
| ld a, $0C | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| ; 13th entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_1424: | |
| call _LABEL_3EE_ | |
| call _LABEL_1D60_ | |
| jp _LABEL_137_ | |
| ; Data from 142D to 1434 (8 bytes) | |
| ; Pointers to graphics data | |
| Data_142D: | |
| .dw $81E6 $8326 $83C6 $8286 | |
| ; 14th entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_1435: | |
| call _LABEL_B9A_ | |
| ld a, $01 | |
| ld ($C014), a | |
| call _LABEL_137_ | |
| di | |
| call VDPOut_59D | |
| call _LABEL_5DE_ | |
| call _LABEL_BC8_ | |
| ld a, $02 | |
| ld ($FFFF), a | |
| ld de, $2B00 | |
| ld hl, $80D8 | |
| ld a, $08 | |
| call _LABEL_814_ | |
| ld de, $3000 | |
| ld hl, $8086 | |
| ld a, $08 | |
| call _LABEL_814_ | |
| ld a, $06 | |
| ld ($FFFF), a | |
| ld hl, $99B4 | |
| ld de, $0000 | |
| call DecompressToVDP | |
| ld hl, $A63A | |
| ld de, $1C00 | |
| call DecompressToVDP | |
| ld de, $1200 | |
| rst $08 ; Interrupt8 | |
| ld a, (EquippedArmor) | |
| cp CuirassArmor ; Cuirass or less | |
| jr c, _LABEL_149F_ | |
| cp PlateArmor ; Plate armor or less | |
| jr c, _LABEL_1495_ | |
| ld a, $02 ; Base armor graphics? | |
| ld hl, $A02E | |
| ld de, $B5EE | |
| jr _LABEL_14A7_ | |
| _LABEL_1495_: | |
| ld a, $04 ; Gray armor graphics? | |
| ld hl, $9C8A | |
| ld de, $B24A | |
| jr _LABEL_14A7_ | |
| _LABEL_149F_: | |
| ld a, $04 ; Elaborate gray armor graphics? | |
| ld hl, $800A | |
| ld de, $95CA | |
| _LABEL_14A7_: | |
| ld ($FFFF), a | |
| ld c, VDPData | |
| call OUTI128 | |
| call OUTI128 | |
| call OUTI128 | |
| ex de, hl | |
| ld de, $1400 | |
| rst $08 ; Interrupt8 | |
| call OUTI128 | |
| call OUTI128 | |
| call OUTI128 | |
| ld a, $06 | |
| ld ($FFFF), a | |
| ld a, ($C01D) | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, Data_151F | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| inc hl | |
| push hl | |
| ex de, hl | |
| ld de, $3A98 | |
| ld bc, $0A10 | |
| call VDPOut_64C | |
| pop hl | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ex de, hl | |
| call LoadPaletteToRAMMirror | |
| ld a, (EquippedWeapon) | |
| dec a | |
| and $0C | |
| rrca | |
| rrca | |
| ld e, a | |
| ld d, $00 | |
| ld hl, SwordColors | |
| add hl, de | |
| ld de, $C077 | |
| ldi | |
| call _LABEL_443_ | |
| ld hl, $505C | |
| ld ($C100), hl | |
| ld a, $02 | |
| ld ($C014), a | |
| ei | |
| xor a | |
| ld ($C0B6), a | |
| ld hl, $003C | |
| ld (TitleScreenCounterLow), hl | |
| ld a, $0E | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| ; Data from 151F to 152E (16 bytes) | |
| ; Pointers to graphics data | |
| Data_151F: | |
| .dw $81E6 $8026 $8286 $8042 | |
| .dw $8326 $805E $83C6 $807A | |
| ; 15th entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_152F: | |
| call _LABEL_3EE_ | |
| call _LABEL_1D60_ | |
| call _LABEL_137_ | |
| jp _LABEL_137_ | |
| ; 23rd entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_153B: | |
| ld a, $A7 | |
| out (VDPControl), a | |
| ld a, $8A | |
| out (VDPControl), a | |
| ld a, $36 | |
| out (VDPControl), a | |
| ld a, $80 | |
| out (VDPControl), a | |
| ld hl, $160F | |
| ld ($C0B8), hl | |
| xor a | |
| ld ($C0B7), a | |
| ld a, MusicTrack82 | |
| ld (MusicQueue), a | |
| ld hl, $04A0 | |
| ld (TitleScreenCounterLow), hl | |
| ld a, $17 | |
| ld (TableIndex1), a | |
| ret | |
| ; 24th entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_1566: | |
| ld a, ($C0B7) | |
| neg | |
| ld d, a | |
| and $07 | |
| call z, _LABEL_15DF_ | |
| ld hl, $C0B7 | |
| dec (hl) | |
| call _LABEL_175_ | |
| jp nz, _LABEL_156_ | |
| ld a, $06 | |
| out (VDPControl), a | |
| ld a, $80 | |
| out (VDPControl), a | |
| xor a | |
| ld ($C0B7), a | |
| ld ($C0D3), a | |
| ld a, $30 | |
| ld (Food), a | |
| ld hl, $03E7 | |
| ld (CurrentHPLow), hl | |
| ld (MaxHPLow), hl | |
| xor a | |
| ld ($C62A), a | |
| ld (ExperienceLow), a | |
| ld (ExperienceHigh), a | |
| ld ($C627), a | |
| ld (MoneyLow), a | |
| ld (MoneyMid), a | |
| ld (MoneyHigh), a | |
| ld a, $1E | |
| ld (BasePW), a | |
| ld (BaseAC), a | |
| ld hl, $D300 | |
| ld de, $D301 | |
| ld (hl), $00 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI128 | |
| call _LABEL_42C_ | |
| ld a, $11 | |
| ld (TableIndex1), a | |
| ret | |
| _LABEL_15DF_: | |
| ld a, ($C0B7) | |
| neg | |
| and $F8 | |
| rrca | |
| rrca | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $3D40 | |
| add hl, de | |
| ex de, hl | |
| rst $08 ; Interrupt8 | |
| ld hl, ($C0B8) | |
| ld a, (hl) | |
| cp $FF | |
| jr z, _LABEL_1605_ | |
| ld c, VDPData | |
| outi | |
| jr _LABEL_15FF_ | |
| _LABEL_15FF_: | |
| outi | |
| ld ($C0B8), hl | |
| ret | |
| _LABEL_1605_: | |
| xor a | |
| out (VDPData), a | |
| jr _LABEL_160A_ | |
| _LABEL_160A_: | |
| jr _LABEL_160C_ | |
| _LABEL_160C_: | |
| out (VDPData), a | |
| ret | |
| .include "ui\ending.asm" | |
| ; Data at 16F3 (1 byte) | |
| .db $FF | |
| ; 16th entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_16F4: | |
| call _LABEL_B9A_ | |
| ld a, $02 | |
| ld ($FFFF), a | |
| call _LABEL_BA3_ | |
| call _LABEL_BC8_ | |
| ld de, $38C0 | |
| ld hl, $0158 | |
| ld bc, $0240 | |
| call VDPOut_Loop_632 | |
| xor a | |
| ld (CurrentMessage), a | |
| ld ($CAC5), a | |
| ld de, $2B00 | |
| ld hl, $80D8 | |
| call _LABEL_80D_ | |
| ld de, $3000 | |
| ld hl, $8086 | |
| call _LABEL_80D_ | |
| ld hl, $8000 | |
| ld de, $2A80 | |
| call DecompressToVDP | |
| ld de, $0B00 | |
| ld hl, $80D8 | |
| call _LABEL_80D_ | |
| ld de, $1000 | |
| ld hl, $8086 | |
| call _LABEL_80D_ | |
| ld de, $2020 | |
| ld hl, $97AD | |
| call DecompressToVDP | |
| ld de, $0040 | |
| ld hl, $9668 | |
| call DecompressToVDP | |
| ld de, $38CA | |
| ld hl, $9A18 | |
| ld bc, $022C | |
| call VDPOut_64C | |
| ld de, $39DC | |
| ld hl, $1954 | |
| ld bc, $0A02 | |
| call VDPOut_64C | |
| ld de, $39FC | |
| ld hl, $1968 | |
| ld bc, $0A02 | |
| call VDPOut_64C | |
| ld de, $39DE | |
| ld hl, $0155 | |
| ld bc, $000F | |
| call VDPOut_Loop_632 | |
| ld de, $3C1E | |
| ld hl, $0755 | |
| ld bc, $000F | |
| call VDPOut_Loop_632 | |
| ld de, $3CC4 | |
| ld hl, $197C | |
| ld bc, $0502 | |
| call VDPOut_64C | |
| ld de, $3CFA | |
| ld hl, $1986 | |
| ld bc, $0502 | |
| call VDPOut_64C | |
| ld de, $3CC6 | |
| ld hl, $0155 | |
| ld bc, $001A | |
| call VDPOut_Loop_632 | |
| ld de, $3DC6 | |
| ld hl, $0755 | |
| ld bc, $001A | |
| call VDPOut_Loop_632 | |
| ld de, $3D08 | |
| rst $08 ; Interrupt8 | |
| ld c, VDPData | |
| ld hl, $1990 | |
| call OUTI8 | |
| ld hl, (Floor) | |
| ld h, $00 | |
| call _LABEL_2C98_ | |
| ld e, $00 | |
| ld hl, $C0B2 | |
| ld a, (hl) | |
| call _LABEL_1940_ | |
| dec hl | |
| ld a, (hl) | |
| add a, $80 | |
| out (VDPData), a | |
| ld a, $01 | |
| out (VDPData), a | |
| ld de, $3D20 | |
| rst $08 ; Interrupt8 | |
| ld a, (CharacterLevel) | |
| ld b, a | |
| ld hl, $19AA | |
| ld de, $0016 | |
| -: | |
| add hl, de | |
| djnz - | |
| call OUTI22 | |
| ld de, $3D48 | |
| rst $08 ; Interrupt8 | |
| ld hl, $1998 | |
| call OUTI6 | |
| ld hl, (CurrentHPLow) | |
| call _LABEL_2C6D_ | |
| ld e, $00 | |
| ld hl, $C0B3 | |
| ld a, (hl) | |
| call _LABEL_1940_ | |
| dec hl | |
| ld a, (hl) | |
| call _LABEL_1940_ | |
| dec hl | |
| ld a, (hl) | |
| and $0F | |
| add a, $80 | |
| out (VDPData), a | |
| ld a, $01 | |
| out (VDPData), a | |
| ld a, $7C | |
| out (VDPData), a | |
| ld a, $01 | |
| out (VDPData), a | |
| ld hl, (MaxHPLow) | |
| call _LABEL_2C6D_ | |
| ld e, $00 | |
| ld hl, $C0B3 | |
| ld a, (hl) | |
| call _LABEL_1940_ | |
| dec hl | |
| ld a, (hl) | |
| call _LABEL_1940_ | |
| dec hl | |
| ld a, (hl) | |
| and $0F | |
| add a, $80 | |
| out (VDPData), a | |
| ld a, $01 | |
| out (VDPData), a | |
| ld de, $3D60 | |
| rst $08 ; Interrupt8 | |
| ld hl, $199E | |
| call OUTI6 | |
| ld a, (WeaponPW) | |
| ld hl, (BasePW) | |
| add a, l | |
| ld l, a | |
| ld h, $00 | |
| call _LABEL_2C98_ | |
| ld e, $00 | |
| ld a, ($C0B2) | |
| call _LABEL_1940_ | |
| ld a, ($C0B1) | |
| add a, $80 | |
| out (VDPData), a | |
| ld a, $01 | |
| out (VDPData), a | |
| ld de, $3D6E | |
| rst $08 ; Interrupt8 | |
| ld hl, $19A4 | |
| call OUTI6 | |
| ld a, (ArmorAC) | |
| ld hl, (BaseAC) | |
| add a, l | |
| ld l, a | |
| ld h, $00 | |
| call _LABEL_2C98_ | |
| ld e, $00 | |
| ld a, ($C0B2) | |
| call _LABEL_1940_ | |
| ld a, ($C0B1) | |
| add a, $80 | |
| out (VDPData), a | |
| ld a, $01 | |
| out (VDPData), a | |
| ld de, $3D8A | |
| rst $08 ; Interrupt8 | |
| ld hl, $19AA | |
| call OUTI10 | |
| ld hl, MoneyHigh | |
| ld e, $00 | |
| ld b, $02 | |
| _LABEL_18B2_: | |
| ld a, (hl) | |
| call _LABEL_1940_ | |
| dec hl | |
| ld a, (hl) | |
| rrca | |
| rrca | |
| rrca | |
| rrca | |
| call _LABEL_1940_ | |
| djnz _LABEL_18B2_ | |
| ld a, (hl) | |
| and $0F | |
| add a, $80 | |
| out (VDPData), a | |
| ld a, $01 | |
| out (VDPData), a | |
| ld de, $3DA6 | |
| rst $08 ; Interrupt8 | |
| ld hl, $19B6 | |
| call OUTI10 | |
| ld e, $00 | |
| ld a, (Food) | |
| rrca | |
| rrca | |
| rrca | |
| rrca | |
| call _LABEL_1940_ | |
| ld a, (Food) | |
| and $0F | |
| add a, $80 | |
| out (VDPData), a | |
| ld a, $01 | |
| out (VDPData), a | |
| ld hl, $49A7 | |
| ld ($C400), hl | |
| ld hl, $4C3E | |
| ld ($C420), hl | |
| ld hl, $4CC0 | |
| ld ($C440), hl | |
| ld hl, $4D5D | |
| ld ($C460), hl | |
| ld hl, $8064 | |
| call LoadPaletteToRAMMirror | |
| ld hl, $9646 | |
| call _LABEL_40C_ | |
| xor a | |
| ld ($C00B), a | |
| ld a, $02 | |
| ld ($C014), a | |
| ei | |
| ld hl, $0384 | |
| ld (TitleScreenCounterLow), hl | |
| ld a, $10 | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| ; 17th entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_192B: | |
| call _LABEL_3E6_ | |
| call _LABEL_1D9C_ | |
| call _LABEL_2DAD_ | |
| call _LABEL_137_ | |
| ld a, (CurrentControllerState) | |
| and $80 | |
| ret nz | |
| jp _LABEL_137_ | |
| _LABEL_1940_: | |
| and $0F | |
| ld d, a | |
| or e | |
| jr nz, _LABEL_1949_ | |
| xor a | |
| jr _LABEL_194C_ | |
| _LABEL_1949_: | |
| ld a, d | |
| add a, $80 | |
| _LABEL_194C_: | |
| ld e, a | |
| out (VDPData), a | |
| ld a, $01 | |
| out (VDPData), a | |
| ret | |
| ; Data from 1954 to 1B1F (460 bytes) | |
| ; Some kind of tile data- possibly the border | |
| .db $54 $01 $57 $01 $57 $01 $57 $01 $57 $01 $57 $01 $57 $01 $57 $01 | |
| .db $57 $01 $56 $07 $56 $01 $57 $07 $57 $07 $57 $07 $57 $07 $57 $07 | |
| .db $57 $07 $57 $07 $57 $07 $54 $07 $54 $01 $57 $01 $57 $01 $57 $01 | |
| .db $56 $07 $56 $01 $57 $07 $57 $07 $57 $07 $54 $07 | |
| .include "ui\hud.asm" | |
| .include "ui\character_classes.asm" | |
| ; 18th entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_1B20: | |
| call _LABEL_B9A_ | |
| ld a, $02 | |
| ld ($FFFF), a | |
| call _LABEL_BA3_ | |
| call _LABEL_BC8_ | |
| call _LABEL_5DE_ | |
| ld de, $2B00 | |
| ld hl, $80D8 | |
| call _LABEL_80D_ | |
| ld de, $3000 | |
| ld hl, $8086 | |
| call _LABEL_80D_ | |
| ld hl, $8000 | |
| ld de, $2A80 | |
| call DecompressToVDP | |
| ld a, $02 | |
| ld (Autoplay), a | |
| ld a, ($C0D3) | |
| add a, a | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, Data_1C90 | |
| add hl, de | |
| ld a, (hl) | |
| ld (Floor), a | |
| inc hl | |
| ld a, (hl) | |
| ld (CharacterLevel), a | |
| inc hl | |
| ld a, (hl) | |
| ld (EquippedWeapon), a | |
| inc hl | |
| ld a, (hl) | |
| ld (EquippedArmor), a | |
| ld a, $02 | |
| ld ($FFFF), a | |
| ld a, (Floor) | |
| dec a | |
| jr z, _LABEL_1B80_ | |
| call GetRandomNumber | |
| and $03 | |
| _LABEL_1B80_: | |
| ld ($C01D), a | |
| call _LABEL_2A22_ | |
| call _LABEL_2941_ | |
| ld hl, $D700 | |
| ld de, $D701 | |
| ld (hl), $00 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI128 | |
| ld a, $07 | |
| ld ($FFFF), a | |
| ld a, ($C0D3) | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $1C84 | |
| add hl, de | |
| ld a, (hl) | |
| inc hl | |
| ld h, (hl) | |
| ld l, a | |
| ld de, $D300 | |
| ld b, $0C | |
| _LABEL_1BC2_: | |
| push bc | |
| call LDI16 | |
| ex de, hl | |
| ld bc, $0010 | |
| add hl, bc | |
| ex de, hl | |
| pop bc | |
| djnz _LABEL_1BC2_ | |
| ld hl, $D300 | |
| ld bc, $0004 | |
| _LABEL_1BD5_: | |
| set 7, (hl) | |
| inc hl | |
| djnz _LABEL_1BD5_ | |
| dec c | |
| jr nz, _LABEL_1BD5_ | |
| ld a, $02 | |
| ld ($FFFF), a | |
| call _LABEL_1F8F_ | |
| call _LABEL_1FB8_ | |
| call _LABEL_20BA_ | |
| ld hl, $0000 | |
| call _LABEL_2DFA_ | |
| ld a, $07 | |
| ld ($FFFF), a | |
| ld a, ($C0D3) | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, Data_1C78 | |
| add hl, de | |
| ld a, (hl) | |
| inc hl | |
| ld h, (hl) | |
| ld l, a | |
| ld de, $3E00 | |
| ld bc, $0440 | |
| call VDPOut_661 | |
| ld hl, $311A | |
| ld ($C100), hl | |
| ld hl, $3CE6 | |
| ld ($C120), hl | |
| ld hl, PreventArmorRust | |
| ld de, ParalysisTicksLeft | |
| ld (hl), $00 | |
| call LDI5 | |
| ld a, $02 | |
| ld ($FFFF), a | |
| ld hl, $8064 | |
| call LoadPaletteToRAMMirror | |
| call _LABEL_27E3_ | |
| call LoadMonsterPalette | |
| ld a, $04 | |
| ld ($FFFF), a | |
| ld hl, $8000 | |
| call LoadPaletteToRAMMirror | |
| ld a, (EquippedWeapon) | |
| dec a | |
| and $0C | |
| rrca | |
| rrca | |
| ld e, a | |
| ld d, $00 | |
| ld hl, SwordColors | |
| add hl, de | |
| ld de, $C077 | |
| ldi | |
| call _LABEL_40F_ | |
| ld a, $02 | |
| ld ($C014), a | |
| xor a | |
| ld (CurrentMessage), a | |
| ld ($CAC5), a | |
| ld a, $3C | |
| ld (PlayerIdleTimer), a | |
| ei | |
| ld hl, $0078 | |
| ld (TitleScreenCounterLow), hl | |
| ld a, $12 | |
| ld (TableIndex1), a | |
| jp _LABEL_143_ | |
| ; Data from 1C78 to 1C8F (24 bytes) | |
| ; Looks like words? Pointer table? | |
| Data_1C78: | |
| .db $49 $B2 $49 $B3 $49 $B4 $49 $B5 | |
| .db $49 $B6 $49 $B7 $09 $B0 $C9 $B0 | |
| .db $89 $B1 $09 $B0 $89 $B1 $C9 $B0 | |
| ; Data from 1C90-1CA8 (24 bytes) | |
| Data_1C90: | |
| .db $01 $01 $01 $10 $08 $04 $02 $12 | |
| .db $0A $07 $03 $12 $12 $0A $08 $15 | |
| .db $18 $0C $0C $1A $1D $10 $0C $1A | |
| ; 19th entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_1CA8: | |
| call _LABEL_3EE_ | |
| ld a, $02 | |
| ld ($FFFF), a | |
| call _LABEL_1F4F_ | |
| call _LABEL_1D60_ | |
| call _LABEL_175_ | |
| jp nz, _LABEL_143_ | |
| xor a | |
| ld (Autoplay), a | |
| ld ($C0D2), a | |
| ld a, $78 | |
| ld ($C0D4), a | |
| ld a, $13 | |
| ld (TableIndex1), a | |
| jp _LABEL_143_ | |
| ; 20th entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_1CD0: | |
| ld a, ($C0D2) | |
| cp $20 | |
| jp nc, _LABEL_1CF2_ | |
| add a, $04 | |
| ld ($C0D2), a | |
| ld hl, $C10F | |
| ld de, $0020 | |
| ld b, $10 | |
| _LABEL_1CE5_: | |
| ld a, (hl) | |
| sub $04 | |
| ld (hl), a | |
| add hl, de | |
| djnz _LABEL_1CE5_ | |
| call _LABEL_1D60_ | |
| jp _LABEL_169_ | |
| _LABEL_1CF2_: | |
| ld hl, $C0D4 | |
| dec (hl) | |
| jp nz, _LABEL_169_ | |
| call _LABEL_42C_ | |
| ld a, ($C0D3) | |
| inc a | |
| ld ($C0D3), a | |
| cp $06 | |
| ld a, $11 | |
| jr nz, _LABEL_1D0B_ | |
| ld a, $14 | |
| _LABEL_1D0B_: | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| ; 21st entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_1D11: | |
| call _LABEL_B9A_ | |
| call _LABEL_BA3_ | |
| call _LABEL_BC8_ | |
| ld a, $06 | |
| ld ($FFFF), a | |
| ld de, $0000 | |
| ld hl, $A724 | |
| call DecompressToVDP | |
| ld de, $3800 | |
| ld hl, $BBA9 | |
| call DecompressToVDP | |
| ld hl, $A712 | |
| call _LABEL_40C_ | |
| ld a, $02 | |
| ld ($C014), a | |
| ei | |
| ld hl, $00B4 | |
| ld (TitleScreenCounterLow), hl | |
| ld a, $15 | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| ; 22nd entry of Jump Table from 17F (indexed by TableIndex1) | |
| JumpTable1_1D4B: | |
| ld a, (LastControllerState) | |
| and $B0 | |
| jr nz, _LABEL_1D55_ | |
| jp _LABEL_137_ | |
| _LABEL_1D55_: | |
| call _LABEL_42C_ | |
| ld a, $00 | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| _LABEL_1D60_: | |
| ld a, $03 | |
| ld ($FFFF), a | |
| call _LABEL_1E34_ | |
| xor a | |
| ld ($C5C0), a | |
| ld hl, $C5C2 | |
| _LABEL_1D6F_: | |
| ld a, (hl) | |
| cp $FF | |
| jr z, _LABEL_1D8F_ | |
| push hl | |
| ld d, a | |
| xor a | |
| srl d | |
| rra | |
| srl d | |
| rra | |
| srl d | |
| rra | |
| ld e, a | |
| ld ix, $C100 | |
| add ix, de | |
| call _LABEL_1DD4_ | |
| pop hl | |
| inc hl | |
| inc hl | |
| jr _LABEL_1D6F_ | |
| _LABEL_1D8F_: | |
| ld a, ($C5C0) | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $C500 | |
| add hl, de | |
| ld (hl), $D0 | |
| ret | |
| _LABEL_1D9C_: | |
| ld a, $03 | |
| ld ($FFFF), a | |
| xor a | |
| ld ($C5C0), a | |
| ld ix, $C400 | |
| ld de, $0020 | |
| ld b, $08 | |
| _LABEL_1DAE_: | |
| push bc | |
| push de | |
| call _LABEL_1DC6_ | |
| pop de | |
| add ix, de | |
| pop bc | |
| djnz _LABEL_1DAE_ | |
| ld a, ($C5C0) | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $C500 | |
| add hl, de | |
| ld (hl), $D0 | |
| ret | |
| _LABEL_1DC6_: | |
| ld a, (ix+2) | |
| or a | |
| ret z | |
| ld a, (ix+3) | |
| or a | |
| ret z | |
| call _LABEL_1EB1_ | |
| ret c | |
| _LABEL_1DD4_: | |
| ld a, (ix+3) | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $B129 | |
| add hl, de | |
| add hl, de | |
| ld a, (hl) | |
| inc hl | |
| ld h, (hl) | |
| ld l, a | |
| ld c, (hl) | |
| ld b, $00 | |
| inc hl | |
| ld a, ($C5C0) | |
| add a, c | |
| cp $41 | |
| ret nc | |
| push hl | |
| ld a, ($C5C0) | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $C500 | |
| add hl, de | |
| ex de, hl | |
| pop hl | |
| ld b, c | |
| _LABEL_1DFC_: | |
| ld a, (hl) | |
| add a, (ix+15) | |
| cp $D0 | |
| jr nz, _LABEL_1E05_ | |
| inc a | |
| _LABEL_1E05_: | |
| ld (de), a | |
| inc hl | |
| inc de | |
| djnz _LABEL_1DFC_ | |
| ld a, ($C5C0) | |
| add a, c | |
| cp $40 | |
| jr z, _LABEL_1E15_ | |
| ld a, $D0 | |
| ld (de), a | |
| _LABEL_1E15_: | |
| push hl | |
| ld a, ($C5C0) | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $C540 | |
| add hl, de | |
| add hl, de | |
| ex de, hl | |
| pop hl | |
| add a, c | |
| ld ($C5C0), a | |
| ld b, c | |
| _LABEL_1E28_: | |
| ld a, (hl) | |
| add a, (ix+17) | |
| ld (de), a | |
| inc hl | |
| inc de | |
| ldi | |
| djnz _LABEL_1E28_ | |
| ret | |
| _LABEL_1E34_: | |
| ld a, ($C5C1) | |
| inc a | |
| and $01 | |
| ld ($C5C1), a | |
| rra | |
| jr c, _LABEL_1E59_ | |
| ld ix, $C100 | |
| ld de, $0020 | |
| ld bc, $1800 | |
| ld hl, $C5C2 | |
| _LABEL_1E4D_: | |
| call _LABEL_1E9E_ | |
| add ix, de | |
| inc c | |
| djnz _LABEL_1E4D_ | |
| ld (hl), $FF | |
| jr _LABEL_1E70_ | |
| _LABEL_1E59_: | |
| ld ix, $C3E0 | |
| ld de, $FFE0 | |
| ld bc, $1817 | |
| ld hl, $C5C2 | |
| _LABEL_1E66_: | |
| call _LABEL_1E9E_ | |
| add ix, de | |
| dec c | |
| djnz _LABEL_1E66_ | |
| ld (hl), $FF | |
| _LABEL_1E70_: | |
| ld hl, $C5C2 | |
| _LABEL_1E73_: | |
| ld a, (hl) | |
| cp $FF | |
| ret z | |
| push hl | |
| inc hl | |
| ld e, l | |
| ld d, h | |
| ld c, (hl) | |
| inc hl | |
| _LABEL_1E7D_: | |
| ld a, (hl) | |
| cp $FF | |
| jr z, _LABEL_1E8B_ | |
| inc hl | |
| ld a, (hl) | |
| cp c | |
| call nc, _LABEL_1E90_ | |
| inc hl | |
| jr _LABEL_1E7D_ | |
| _LABEL_1E8B_: | |
| pop hl | |
| inc hl | |
| inc hl | |
| jr _LABEL_1E73_ | |
| _LABEL_1E90_: | |
| ld a, (de) | |
| ldd | |
| ex af, af' | |
| ld a, (de) | |
| ldi | |
| dec hl | |
| ld (hl), a | |
| inc hl | |
| ex af, af' | |
| ld c, (hl) | |
| ld (hl), a | |
| ret | |
| _LABEL_1E9E_: | |
| ld a, (ix+2) | |
| or a | |
| ret z | |
| ld a, (ix+3) | |
| or a | |
| ret z | |
| call _LABEL_1EB1_ | |
| ret c | |
| ld (hl), c | |
| inc hl | |
| ld (hl), a | |
| inc hl | |
| ret | |
| _LABEL_1EB1_: | |
| ld a, (ix+18) | |
| or (ix+16) | |
| jr nz, _LABEL_1EC9_ | |
| ld a, (ix+17) | |
| cp $08 | |
| jr c, _LABEL_1EC9_ | |
| ld a, (ix+15) | |
| cp $E0 | |
| jr nc, _LABEL_1EC9_ | |
| or a | |
| ret | |
| _LABEL_1EC9_: | |
| scf | |
| ret | |
| _LABEL_1ECB_: | |
| ld a, ($CA06) | |
| add a, e | |
| jr c, _LABEL_1ED5_ | |
| cp $E0 | |
| jr c, _LABEL_1ED7_ | |
| _LABEL_1ED5_: | |
| add a, $20 | |
| _LABEL_1ED7_: | |
| and $F0 | |
| ld l, a | |
| ld h, $00 | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| ld a, ($CA05) | |
| neg | |
| add a, d | |
| and $F0 | |
| rrca | |
| rrca | |
| or l | |
| ld l, a | |
| ld de, $3800 | |
| add hl, de | |
| ld a, h | |
| cp $38 | |
| ret nc | |
| ld h, $3E | |
| ret | |
| _LABEL_1EF6_: | |
| push ix | |
| pop hl | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| ld a, h | |
| sub $08 | |
| jr nz, _LABEL_1F03_ | |
| ld a, $12 | |
| _LABEL_1F03_: | |
| ld b, a | |
| ld hl, $C13E | |
| ld de, $0020 | |
| ld a, ($C11E) | |
| _LABEL_1F0D_: | |
| or (hl) | |
| add hl, de | |
| djnz _LABEL_1F0D_ | |
| jr nz, _LABEL_1F15_ | |
| xor a | |
| ret | |
| _LABEL_1F15_: | |
| scf | |
| ret | |
| _LABEL_1F17_: | |
| push hl | |
| ld a, h | |
| ex af, af' | |
| ld a, l | |
| ld hl, $C107 | |
| ld de, $001F | |
| ld b, $18 | |
| _LABEL_1F23_: | |
| cp (hl) | |
| inc hl | |
| jr nz, _LABEL_1F2C_ | |
| ex af, af' | |
| cp (hl) | |
| jr z, _LABEL_1F32_ | |
| ex af, af' | |
| _LABEL_1F2C_: | |
| add hl, de | |
| djnz _LABEL_1F23_ | |
| pop hl | |
| xor a | |
| ret | |
| _LABEL_1F32_: | |
| ld a, l | |
| and $E0 | |
| ld l, a | |
| ex de, hl | |
| pop hl | |
| scf | |
| ret | |
| _LABEL_1F3A_: | |
| ld hl, $C100 | |
| ld de, $001F | |
| ld b, $12 | |
| _LABEL_1F42_: | |
| ld a, (hl) | |
| inc hl | |
| or (hl) | |
| jr z, _LABEL_1F4C_ | |
| add hl, de | |
| djnz _LABEL_1F42_ | |
| scf | |
| ret | |
| _LABEL_1F4C_: | |
| dec hl | |
| xor a | |
| ret | |
| _LABEL_1F4F_: | |
| ld ix, $C100 | |
| ld b, $18 | |
| _LABEL_1F55_: | |
| push bc | |
| ld a, (ix+0) | |
| or (ix+1) | |
| call nz, _LABEL_1F68_ | |
| ld de, $0020 | |
| add ix, de | |
| pop bc | |
| djnz _LABEL_1F55_ | |
| ret | |
| _LABEL_1F68_: | |
| ld de, ($CA03) | |
| ld l, (ix+10) | |
| ld h, (ix+11) | |
| xor a | |
| sbc hl, de | |
| ld (ix+16), h | |
| ld (ix+15), l | |
| ld de, ($CA01) | |
| ld l, (ix+13) | |
| ld h, (ix+14) | |
| xor a | |
| sbc hl, de | |
| ld (ix+18), h | |
| ld (ix+17), l | |
| ret | |
| _LABEL_1F8F_: | |
| call _LABEL_207D_ | |
| ld ($C105), hl | |
| ld de, $FFE0 | |
| add hl, de | |
| call _LABEL_2091_ | |
| jr nc, _LABEL_1FB4_ | |
| ld de, $001F | |
| add hl, de | |
| call _LABEL_2091_ | |
| jr nc, _LABEL_1FB4_ | |
| ld de, $0002 | |
| add hl, de | |
| call _LABEL_2091_ | |
| jr nc, _LABEL_1FB4_ | |
| ld de, $001F | |
| add hl, de | |
| _LABEL_1FB4_: | |
| ld ($C125), hl | |
| ret | |
| _LABEL_1FB8_: | |
| ld iy, $C140 | |
| ld hl, (Floor) | |
| ld h, $00 | |
| dec hl | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| ld de, $9A70 | |
| add hl, de | |
| ld a, (Autoplay) | |
| cp $02 | |
| jr nz, _LABEL_1FD5_ | |
| ld b, $02 | |
| jr _LABEL_1FDD_ | |
| _LABEL_1FD5_: | |
| call GetRandomNumber | |
| and $07 | |
| add a, $06 | |
| ld b, a | |
| _LABEL_1FDD_: | |
| push bc | |
| push hl | |
| call GetRandomNumber | |
| and $0F | |
| ld e, a | |
| ld d, $00 | |
| add hl, de | |
| ld a, (hl) | |
| exx | |
| ld (iy+31), a | |
| add a, a | |
| ld l, a | |
| ld h, $00 | |
| ld de, $2012 | |
| add hl, de | |
| ld a, (hl) | |
| ld (iy+0), a | |
| inc hl | |
| ld a, (hl) | |
| ld (iy+1), a | |
| call _LABEL_207D_ | |
| ld (iy+5), l | |
| ld (iy+6), h | |
| exx | |
| ld de, $0020 | |
| add iy, de | |
| pop hl | |
| pop bc | |
| djnz _LABEL_1FDD_ | |
| ret | |
| ; Jump Table from 2012 to 2053 (33 entries, indexed by unknown) | |
| ; Appears to be related to monster generation | |
| JumpTable4: | |
| .dw JumpTable4_56C8 JumpTable4_5C9D JumpTable4_5EE6 JumpTable4_60E7 | |
| .dw JumpTable4_583E JumpTable4_5E90 JumpTable4_631A JumpTable4_64E7 | |
| .dw JumpTable4_59A6 JumpTable4_5EBB JumpTable4_677E JumpTable4_69F2 | |
| .dw JumpTable4_6BCB JumpTable4_6D47 JumpTable4_60C4 JumpTable4_62F3 | |
| .dw JumpTable4_6F6B JumpTable4_72E3 JumpTable4_64A9 JumpTable4_6730 | |
| .dw JumpTable4_70DE JumpTable4_7550 JumpTable4_69CF JumpTable4_6BA0 | |
| .dw JumpTable4_7101 JumpTable4_7573 JumpTable4_64C8 JumpTable4_6757 | |
| .dw JumpTable4_5B40 JumpTable4_6F48 JumpTable4_7124 JumpTable4_7596 | |
| .dw JumpTable4_77D1 | |
| DoJumpTable4: | |
| ld a, $02 | |
| ld ($FFFF), a | |
| ld hl, (Floor) | |
| dec hl | |
| ld h, $00 | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| ld de, $9A70 | |
| add hl, de | |
| call GetRandomNumber | |
| and $0F | |
| ld e, a | |
| ld d, $00 | |
| add hl, de | |
| ld a, (hl) | |
| ld l, a | |
| ld h, $00 | |
| add hl, hl | |
| ld de, JumpTable4 | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ret | |
| _LABEL_207D_: | |
| call GetRandomNumber | |
| ld l, a | |
| call GetRandomNumber | |
| and $03 | |
| ld h, a | |
| ld de, $D300 | |
| add hl, de | |
| call _LABEL_2091_ | |
| jr c, _LABEL_207D_ | |
| ret | |
| _LABEL_2091_: | |
| ld a, (hl) | |
| and $7F | |
| cp $04 | |
| jr z, _LABEL_209C_ | |
| cp $0C | |
| jr c, _LABEL_20B8_ | |
| _LABEL_209C_: | |
| ld a, h | |
| ex af, af' | |
| ld a, l | |
| exx | |
| ld hl, $C105 | |
| ld de, $0020 | |
| ld b, $18 | |
| _LABEL_20A8_: | |
| cp (hl) | |
| jr nz, _LABEL_20B2_ | |
| inc hl | |
| ex af, af' | |
| cp (hl) | |
| jr z, _LABEL_20B8_ | |
| ex af, af' | |
| dec hl | |
| _LABEL_20B2_: | |
| add hl, de | |
| djnz _LABEL_20A8_ | |
| exx | |
| xor a | |
| ret | |
| _LABEL_20B8_: | |
| scf | |
| ret | |
| _LABEL_20BA_: | |
| ld hl, ($C105) | |
| _LABEL_20BD_: | |
| dec hl | |
| ld a, (hl) | |
| and $7F | |
| cp $02 | |
| jr z, _LABEL_20BD_ | |
| cp $03 | |
| jr z, _LABEL_20BD_ | |
| cp $04 | |
| jr z, _LABEL_20BD_ | |
| cp $0C | |
| jr nc, _LABEL_20BD_ | |
| inc hl | |
| push hl | |
| ld b, $00 | |
| _LABEL_20D5_: | |
| inc hl | |
| inc b | |
| ld a, (hl) | |
| and $7F | |
| cp $02 | |
| jr z, _LABEL_20D5_ | |
| cp $03 | |
| jr z, _LABEL_20D5_ | |
| cp $04 | |
| jr z, _LABEL_20D5_ | |
| cp $0C | |
| jr nc, _LABEL_20D5_ | |
| pop hl | |
| ld de, $FFE0 | |
| _LABEL_20EE_: | |
| add hl, de | |
| ld a, (hl) | |
| and $7F | |
| cp $02 | |
| jr z, _LABEL_20EE_ | |
| cp $03 | |
| jr z, _LABEL_20EE_ | |
| cp $04 | |
| jr z, _LABEL_20EE_ | |
| cp $0C | |
| jr nc, _LABEL_20EE_ | |
| push hl | |
| ex de, hl | |
| ld hl, $0400 | |
| add hl, de | |
| ld c, b | |
| _LABEL_2109_: | |
| ld a, (de) | |
| bit 7, a | |
| jr nz, _LABEL_2118_ | |
| cp $05 | |
| ld a, $0A | |
| jr z, _LABEL_211A_ | |
| ld a, $05 | |
| jr _LABEL_211A_ | |
| _LABEL_2118_: | |
| ld a, $04 | |
| _LABEL_211A_: | |
| ld (hl), a | |
| inc hl | |
| inc de | |
| djnz _LABEL_2109_ | |
| pop hl | |
| _LABEL_2120_: | |
| ld de, $0020 | |
| add hl, de | |
| ld a, (hl) | |
| and $7F | |
| cp $02 | |
| jr z, _LABEL_2137_ | |
| cp $03 | |
| jr z, _LABEL_2137_ | |
| cp $04 | |
| jr z, _LABEL_2137_ | |
| cp $0C | |
| jr c, _LABEL_2178_ | |
| _LABEL_2137_: | |
| push hl | |
| ex de, hl | |
| ld hl, $0400 | |
| add hl, de | |
| ld b, c | |
| _LABEL_213E_: | |
| push bc | |
| ld a, (de) | |
| and $7F | |
| cp $0C | |
| jr c, _LABEL_2167_ | |
| cp $10 | |
| jr nc, _LABEL_214E_ | |
| ld (de), a | |
| ld (hl), a | |
| jr _LABEL_2170_ | |
| _LABEL_214E_: | |
| ld (de), a | |
| exx | |
| sub $10 | |
| add a, a | |
| ld l, a | |
| ld h, $00 | |
| ld de, $C980 | |
| add hl, de | |
| ld a, (hl) | |
| and $70 | |
| rrca | |
| rrca | |
| rrca | |
| rrca | |
| add a, $10 | |
| exx | |
| ld (hl), a | |
| jr _LABEL_2170_ | |
| _LABEL_2167_: | |
| cp $02 | |
| jr nz, _LABEL_216D_ | |
| ld a, $03 | |
| _LABEL_216D_: | |
| ld (de), a | |
| ld (hl), $09 | |
| _LABEL_2170_: | |
| inc hl | |
| inc de | |
| pop bc | |
| djnz _LABEL_213E_ | |
| pop hl | |
| jr _LABEL_2120_ | |
| _LABEL_2178_: | |
| ld b, c | |
| _LABEL_2179_: | |
| push bc | |
| push hl | |
| ld d, (hl) | |
| ld bc, $0020 | |
| add hl, bc | |
| ld e, (hl) | |
| ld a, h | |
| cp $D7 | |
| jr c, _LABEL_2187_ | |
| ld e, d | |
| _LABEL_2187_: | |
| ld c, $03 | |
| call _LABEL_23ED_ | |
| pop de | |
| ld hl, $0400 | |
| add hl, de | |
| ld (hl), a | |
| ex de, hl | |
| inc hl | |
| pop bc | |
| djnz _LABEL_2179_ | |
| ret | |
| _LABEL_2198_: | |
| ld hl, ($CA07) | |
| ld ($C60F), hl | |
| ld hl, $CB00 | |
| ld ($C611), hl | |
| ld bc, $0D10 | |
| call _LABEL_26F3_ | |
| ld hl, $CB00 | |
| ld de, ($CA09) | |
| ld bc, $1A40 | |
| call _LABEL_681_ | |
| xor a | |
| ld ($C60E), a | |
| ld ($CAC5), a | |
| ret | |
| _LABEL_21BF_: | |
| ld hl, $D300 | |
| ld bc, $0400 | |
| _LABEL_21C5_: | |
| push bc | |
| ld b, c | |
| _LABEL_21C7_: | |
| ld a, (hl) | |
| cp $03 | |
| jr nz, _LABEL_21CE_ | |
| ld (hl), $02 | |
| _LABEL_21CE_: | |
| set 7, (hl) | |
| inc hl | |
| djnz _LABEL_21C7_ | |
| pop bc | |
| djnz _LABEL_21C5_ | |
| ld hl, $C981 | |
| ld de, $0002 | |
| ld b, $36 | |
| _LABEL_21DE_: | |
| ld a, (hl) | |
| cp $03 | |
| jr nz, _LABEL_21E5_ | |
| ld (hl), $02 | |
| _LABEL_21E5_: | |
| add hl, de | |
| djnz _LABEL_21DE_ | |
| ld hl, $D700 | |
| ld de, $D701 | |
| ld (hl), $00 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| jp LDI128 | |
| _LABEL_2208_: | |
| ld hl, $D300 | |
| ld bc, $0400 | |
| _LABEL_220E_: | |
| push bc | |
| ld b, c | |
| _LABEL_2210_: | |
| ld a, (hl) | |
| and $7F | |
| cp $02 | |
| jr nz, _LABEL_2219_ | |
| ld a, $03 | |
| _LABEL_2219_: | |
| ld (hl), a | |
| inc hl | |
| djnz _LABEL_2210_ | |
| pop bc | |
| djnz _LABEL_220E_ | |
| ld hl, $D300 | |
| ld b, $20 | |
| _LABEL_2225_: | |
| push bc | |
| push hl | |
| ex de, hl | |
| ld hl, $0400 | |
| add hl, de | |
| push hl | |
| ex de, hl | |
| ld de, $0020 | |
| ld a, (hl) | |
| exx | |
| ld c, a | |
| ld d, a | |
| ld e, $00 | |
| exx | |
| add hl, de | |
| pop de | |
| ld b, $20 | |
| _LABEL_223C_: | |
| push bc | |
| ld a, h | |
| cp $D7 | |
| ld a, (hl) | |
| exx | |
| jr nc, _LABEL_2245_ | |
| ld e, a | |
| _LABEL_2245_: | |
| call _LABEL_23ED_ | |
| ld c, d | |
| ld d, e | |
| exx | |
| ld (de), a | |
| ld bc, $0020 | |
| ex de, hl | |
| add hl, bc | |
| ex de, hl | |
| add hl, bc | |
| pop bc | |
| djnz _LABEL_223C_ | |
| pop hl | |
| inc hl | |
| pop bc | |
| djnz _LABEL_2225_ | |
| ret | |
| _LABEL_225C_: | |
| ld a, (BlindnessTicksLeft) | |
| or a | |
| jr z, _LABEL_22B0_ | |
| ld hl, ($C105) | |
| ld de, $FF9E | |
| add hl, de | |
| ld bc, $0905 | |
| _LABEL_226C_: | |
| ld a, h | |
| cp $D3 | |
| jr c, _LABEL_2287_ | |
| cp $D7 | |
| jr nc, _LABEL_2287_ | |
| push bc | |
| push hl | |
| ld b, c | |
| _LABEL_2278_: | |
| ld a, (hl) | |
| cp $03 | |
| jr nz, _LABEL_227F_ | |
| ld a, $02 | |
| _LABEL_227F_: | |
| set 7, a | |
| ld (hl), a | |
| inc hl | |
| djnz _LABEL_2278_ | |
| pop hl | |
| pop bc | |
| _LABEL_2287_: | |
| ld de, $0020 | |
| add hl, de | |
| djnz _LABEL_226C_ | |
| ld hl, ($C105) | |
| ld de, $039E | |
| add hl, de | |
| ld bc, $0905 | |
| _LABEL_2297_: | |
| ld a, h | |
| cp $D7 | |
| jr c, _LABEL_22AA_ | |
| cp $DB | |
| jr nc, _LABEL_22AA_ | |
| push bc | |
| push hl | |
| ld b, c | |
| _LABEL_22A3_: | |
| ld (hl), $00 | |
| inc hl | |
| djnz _LABEL_22A3_ | |
| pop hl | |
| pop bc | |
| _LABEL_22AA_: | |
| ld de, $0020 | |
| add hl, de | |
| djnz _LABEL_2297_ | |
| _LABEL_22B0_: | |
| ld hl, ($C105) | |
| ld de, $FFDF | |
| add hl, de | |
| ld b, $04 | |
| _LABEL_22B9_: | |
| push bc | |
| ld b, $03 | |
| _LABEL_22BC_: | |
| res 7, (hl) | |
| inc hl | |
| djnz _LABEL_22BC_ | |
| ld bc, $001D | |
| add hl, bc | |
| pop bc | |
| djnz _LABEL_22B9_ | |
| ld hl, ($C105) | |
| ld de, $FFDF | |
| add hl, de | |
| ld b, $03 | |
| _LABEL_22D1_: | |
| push bc | |
| push hl | |
| push hl | |
| ld de, $FFE0 | |
| ld a, (hl) | |
| exx | |
| ld e, a | |
| exx | |
| add hl, de | |
| push hl | |
| ld a, h | |
| cp $D3 | |
| ld a, (hl) | |
| exx | |
| jr nc, _LABEL_22E5_ | |
| ld a, e | |
| _LABEL_22E5_: | |
| ld d, a | |
| exx | |
| add hl, de | |
| ld a, h | |
| cp $D3 | |
| ld a, (hl) | |
| exx | |
| jr nc, _LABEL_22F0_ | |
| ld a, d | |
| _LABEL_22F0_: | |
| ld c, a | |
| exx | |
| pop hl | |
| ld de, $0400 | |
| add hl, de | |
| ex de, hl | |
| pop hl | |
| ld b, $06 | |
| _LABEL_22FB_: | |
| push bc | |
| ld a, d | |
| cp $D7 | |
| jr c, _LABEL_2310_ | |
| ld a, h | |
| cp $D7 | |
| ld a, (hl) | |
| exx | |
| jr nc, _LABEL_2309_ | |
| ld e, a | |
| _LABEL_2309_: | |
| call _LABEL_23ED_ | |
| ld c, d | |
| ld d, e | |
| exx | |
| ld (de), a | |
| _LABEL_2310_: | |
| ld bc, $0020 | |
| ex de, hl | |
| add hl, bc | |
| ld a, h | |
| ex de, hl | |
| add hl, bc | |
| pop bc | |
| ld a, d | |
| cp $DB | |
| jr nc, _LABEL_2320_ | |
| djnz _LABEL_22FB_ | |
| _LABEL_2320_: | |
| pop hl | |
| inc hl | |
| pop bc | |
| djnz _LABEL_22D1_ | |
| ld a, (BlindnessTicksLeft) | |
| or a | |
| jr nz, _LABEL_2369_ | |
| ld hl, ($C105) | |
| ld de, $03BF | |
| add hl, de | |
| ld ($C60F), hl | |
| ld hl, $CB00 | |
| ld ($C611), hl | |
| ld bc, $0603 | |
| call _LABEL_26F3_ | |
| ld a, ($C10F) | |
| sub $20 | |
| jr nc, _LABEL_234A_ | |
| sub $20 | |
| _LABEL_234A_: | |
| ld e, a | |
| ld a, ($C111) | |
| sub $10 | |
| ld d, a | |
| call _LABEL_1ECB_ | |
| ld ($C60C), hl | |
| ld de, ($C60C) | |
| ld hl, $CB00 | |
| ld bc, $0C0C | |
| call _LABEL_681_ | |
| xor a | |
| ld ($C606), a | |
| ret | |
| _LABEL_2369_: | |
| ld hl, ($C105) | |
| ld de, $039E | |
| add hl, de | |
| ld ($C60F), hl | |
| ld hl, $CB00 | |
| ld ($C611), hl | |
| ld bc, $0905 | |
| call _LABEL_26F3_ | |
| ld a, ($C10F) | |
| sub $30 | |
| jr nc, _LABEL_2388_ | |
| sub $20 | |
| _LABEL_2388_: | |
| ld d, a | |
| ld a, ($CA06) | |
| add a, d | |
| jr c, _LABEL_2393_ | |
| cp $E0 | |
| jr c, _LABEL_2395_ | |
| _LABEL_2393_: | |
| add a, $20 | |
| _LABEL_2395_: | |
| and $F0 | |
| ld l, a | |
| ld h, $00 | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| ld a, ($C111) | |
| sub $20 | |
| ld d, a | |
| ld a, ($CA05) | |
| neg | |
| add a, d | |
| and $F0 | |
| rrca | |
| rrca | |
| or l | |
| ld l, a | |
| ld de, $3800 | |
| add hl, de | |
| ld a, h | |
| cp $38 | |
| jr nc, _LABEL_23BA_ | |
| ld h, $3E | |
| _LABEL_23BA_: | |
| ld ($C60C), hl | |
| ld hl, ($C105) | |
| ld de, $039E | |
| add hl, de | |
| ex de, hl | |
| ld hl, $DB00 | |
| ld a, e | |
| and $E0 | |
| ld e, a | |
| xor a | |
| sbc hl, de | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| ld a, h | |
| cp $08 | |
| jr c, _LABEL_23D9_ | |
| ld a, $08 | |
| _LABEL_23D9_: | |
| inc a | |
| add a, a | |
| ld b, a | |
| ld c, $14 | |
| ld de, ($C60C) | |
| ld hl, $CB00 | |
| call _LABEL_681_ | |
| xor a | |
| ld ($C606), a | |
| ret | |
| _LABEL_23ED_: | |
| bit 7, d | |
| jr nz, _LABEL_2428_ | |
| ld a, d | |
| cp $0C | |
| jr nc, _LABEL_240F_ | |
| or a | |
| jr z, _LABEL_2428_ | |
| cp $06 | |
| jr nc, _LABEL_2428_ | |
| add a, $07 | |
| cp $08 | |
| ret z | |
| cp $0C | |
| ld a, $09 | |
| ret c | |
| ld a, $0A | |
| bit 7, e | |
| ret z | |
| ld a, $06 | |
| ret | |
| _LABEL_240F_: | |
| cp $10 | |
| ret c | |
| push de | |
| sub $10 | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $C980 | |
| add hl, de | |
| ld a, (hl) | |
| and $70 | |
| rrca | |
| rrca | |
| rrca | |
| rrca | |
| add a, $10 | |
| pop de | |
| ret | |
| _LABEL_2428_: | |
| ld a, c | |
| bit 7, a | |
| jr nz, _LABEL_2461_ | |
| cp $0C | |
| jr nc, _LABEL_243A_ | |
| or a | |
| jr z, _LABEL_2461_ | |
| cp $05 | |
| jr z, _LABEL_2447_ | |
| jr nc, _LABEL_2461_ | |
| _LABEL_243A_: | |
| ld a, e | |
| cp $05 | |
| ld a, $0A | |
| ret z | |
| ld a, $07 | |
| bit 7, e | |
| ret z | |
| dec a | |
| ret | |
| _LABEL_2447_: | |
| bit 7, d | |
| jr z, _LABEL_243A_ | |
| xor a | |
| bit 7, e | |
| ret nz | |
| ld a, e | |
| or a | |
| jr z, _LABEL_245B_ | |
| cp $10 | |
| jr nc, _LABEL_245E_ | |
| cp $06 | |
| jr c, _LABEL_245E_ | |
| _LABEL_245B_: | |
| ld a, $03 | |
| ret | |
| _LABEL_245E_: | |
| ld a, $04 | |
| ret | |
| _LABEL_2461_: | |
| ld hl, Data_2480 | |
| bit 7, d | |
| jr z, _LABEL_246B_ | |
| ld hl, $2489 | |
| _LABEL_246B_: | |
| ld a, $08 | |
| bit 7, e | |
| jr nz, _LABEL_2478_ | |
| ld a, e | |
| cp $0C | |
| jr c, _LABEL_2478_ | |
| ld a, $04 | |
| _LABEL_2478_: | |
| add a, l | |
| ld l, a | |
| ld a, $00 | |
| adc a, h | |
| ld h, a | |
| ld a, (hl) | |
| ret | |
| ; Data from 2480 to 2491 (18 bytes) | |
| Data_2480: | |
| .db $01 $05 $05 $05 $05 $05 $01 $01 | |
| .db $02 $03 $04 $04 $04 $04 $04 $03 | |
| .db $03 $00 | |
| _LABEL_2492_: | |
| ld hl, $D700 | |
| ld de, $D701 | |
| ld (hl), $00 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI129 | |
| call LDI128 | |
| ld a, $03 | |
| ld ($FFFF), a | |
| call GetRandomNumber | |
| and $30 | |
| ld e, a | |
| ld d, $00 | |
| ld hl, JumpTable5 | |
| add hl, de | |
| ld b, $03 | |
| _LABEL_24C5_: | |
| push bc | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| inc hl | |
| push de | |
| pop iy | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| inc hl | |
| push hl | |
| ld hl, $24E4 | |
| push hl | |
| call GetRandomNumber | |
| and $0F | |
| ld b, a | |
| ld c, $00 | |
| ld hl, $8000 | |
| add hl, bc | |
| jp (iy) | |
| _LABEL_24E4_: | |
| pop hl | |
| pop bc | |
| djnz _LABEL_24C5_ | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| inc hl | |
| push de | |
| pop iy | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| inc hl | |
| ld hl, $2505 | |
| push hl | |
| call GetRandomNumber | |
| and $1F | |
| ld b, a | |
| ld c, $00 | |
| ld hl, $8000 | |
| add hl, bc | |
| jp (iy) | |
| _LABEL_2505_: | |
| ld hl, $D300 | |
| ld de, $D301 | |
| ld (hl), $00 | |
| call LDI31 | |
| ld hl, $D6E0 | |
| ld de, $D6E1 | |
| ld (hl), $00 | |
| call LDI31 | |
| ld hl, $D31F | |
| ld de, $001F | |
| ld b, $1F | |
| _LABEL_2523_: | |
| ld (hl), $00 | |
| inc hl | |
| ld (hl), $00 | |
| add hl, de | |
| djnz _LABEL_2523_ | |
| ld a, (Floor) | |
| cp LastFloor | |
| ld a, $01 | |
| jr z, _LABEL_2535_ | |
| xor a | |
| _LABEL_2535_: | |
| ld ($C604), a | |
| ld a, $04 | |
| ld ($C605), a | |
| ld hl, $D300 | |
| ld bc, $0004 | |
| _LABEL_2543_: | |
| ld a, (hl) | |
| cp $01 | |
| jr z, _LABEL_2559_ | |
| cp $06 | |
| jr z, _LABEL_257E_ | |
| cp $07 | |
| jr z, _LABEL_257E_ | |
| set 7, (hl) | |
| _LABEL_2552_: | |
| inc hl | |
| djnz _LABEL_2543_ | |
| dec c | |
| jr nz, _LABEL_2543_ | |
| ret | |
| _LABEL_2559_: | |
| ld a, ($C604) | |
| or a | |
| jr nz, _LABEL_257A_ | |
| ld a, ($C605) | |
| dec a | |
| ld ($C605), a | |
| jr z, _LABEL_2571_ | |
| call GetRandomNumber | |
| and $07 | |
| cp $03 | |
| jr nc, _LABEL_257A_ | |
| _LABEL_2571_: | |
| ld a, $01 | |
| ld ($C604), a | |
| ld (hl), $81 | |
| jr _LABEL_2552_ | |
| _LABEL_257A_: | |
| ld (hl), $80 | |
| jr _LABEL_2552_ | |
| _LABEL_257E_: | |
| push hl | |
| ld a, (Floor) | |
| sub $04 | |
| jr c, _LABEL_2595_ | |
| inc a | |
| ld d, a | |
| call GetRandomNumber | |
| and $3F | |
| sub d | |
| jr nc, _LABEL_2595_ | |
| pop hl | |
| set 7, (hl) | |
| jr _LABEL_2552_ | |
| _LABEL_2595_: | |
| pop hl | |
| ld (hl), $85 | |
| jr _LABEL_2552_ | |
| ; 1st entry of Jump Table from 25FB (indexed by unknown) | |
| JumpTable5_259A: | |
| ld b, $10 | |
| _LABEL_259C_: | |
| push bc | |
| call LDI16 | |
| ex de, hl | |
| ld bc, $0010 | |
| add hl, bc | |
| ex de, hl | |
| pop bc | |
| djnz _LABEL_259C_ | |
| ret | |
| ; 2nd entry of Jump Table from 25FB (indexed by unknown) | |
| JumpTable5_25AA: | |
| ex de, hl | |
| ld bc, $000F | |
| add hl, bc | |
| ex de, hl | |
| ld b, $10 | |
| _LABEL_25B2_: | |
| push bc | |
| ld b, $10 | |
| _LABEL_25B5_: | |
| ld a, (hl) | |
| ld (de), a | |
| inc hl | |
| dec de | |
| djnz _LABEL_25B5_ | |
| ex de, hl | |
| ld bc, $0030 | |
| add hl, bc | |
| ex de, hl | |
| pop bc | |
| djnz _LABEL_25B2_ | |
| ret | |
| ; 3rd entry of Jump Table from 25FB (indexed by unknown) | |
| JumpTable5_25C5: | |
| ex de, hl | |
| ld bc, $01E0 | |
| add hl, bc | |
| ex de, hl | |
| ld b, $10 | |
| _LABEL_25CD_: | |
| push bc | |
| ld b, $10 | |
| _LABEL_25D0_: | |
| ld a, (hl) | |
| ld (de), a | |
| inc hl | |
| inc de | |
| djnz _LABEL_25D0_ | |
| ex de, hl | |
| ld bc, $FFD0 | |
| add hl, bc | |
| ex de, hl | |
| pop bc | |
| djnz _LABEL_25CD_ | |
| ret | |
| ; 4th entry of Jump Table from 25FB (indexed by unknown) | |
| JumpTable5_25E0: | |
| ex de, hl | |
| ld bc, $01EF | |
| add hl, bc | |
| ex de, hl | |
| ld b, $10 | |
| _LABEL_25E8_: | |
| push bc | |
| ld b, $10 | |
| _LABEL_25EB_: | |
| ld a, (hl) | |
| ld (de), a | |
| inc hl | |
| dec de | |
| djnz _LABEL_25EB_ | |
| ex de, hl | |
| ld bc, $FFF0 | |
| add hl, bc | |
| ex de, hl | |
| pop bc | |
| djnz _LABEL_25E8_ | |
| ret | |
| ; Jump Table from 25FB to 263A (16 entries, indexed by unknown) | |
| ; This is a table of permutations of the routines at 259A, 25AA, 25E0, and 25C5 | |
| ; and the data $D300, $D310, $D510, and $D500. All possible combinations of | |
| ; routines and data are represented. | |
| ; Perhaps these are references to the four types of scenery? | |
| ; Flowers, horseheads, mountains, and mushrooms | |
| JumpTable5: | |
| .dw JumpTable5_259A $D300 | |
| .dw JumpTable5_25AA $D310 | |
| .dw JumpTable5_25E0 $D510 | |
| .dw JumpTable5_25C5 $D500 | |
| .dw JumpTable5_259A $D310 | |
| .dw JumpTable5_25C5 $D510 | |
| .dw JumpTable5_25E0 $D500 | |
| .dw JumpTable5_25AA $D300 | |
| .dw JumpTable5_259A $D510 | |
| .dw JumpTable5_25AA $D500 | |
| .dw JumpTable5_25E0 $D300 | |
| .dw JumpTable5_25C5 $D310 | |
| .dw JumpTable5_259A $D500 | |
| .dw JumpTable5_25C5 $D300 | |
| .dw JumpTable5_25E0 $D310 | |
| .dw JumpTable5_25AA $D510 | |
| _LABEL_263B_: | |
| call GetRandomNumber | |
| and $07 | |
| inc a | |
| ld b, a | |
| _LABEL_2642_: | |
| call _LABEL_26DD_ | |
| ld (hl), $8C | |
| djnz _LABEL_2642_ | |
| call GetRandomNumber | |
| and $03 | |
| inc a | |
| ld b, a | |
| _LABEL_2650_: | |
| call _LABEL_26DD_ | |
| ld (hl), $8D | |
| djnz _LABEL_2650_ | |
| call GetRandomNumber | |
| and $01 | |
| inc a | |
| ld b, a | |
| _LABEL_265E_: | |
| call _LABEL_26DD_ | |
| ld (hl), $8E | |
| djnz _LABEL_265E_ | |
| ld hl, $C980 | |
| ld de, $C981 | |
| ld (hl), $00 | |
| call LDI112 | |
| ld a, $02 | |
| ld ($FFFF), a | |
| ld a, (Floor) | |
| dec a | |
| and $1E | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $9C50 | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| exx | |
| ld hl, $C980 | |
| call GetRandomNumber | |
| and $07 | |
| ld b, a | |
| ld a, (Floor) | |
| cp $0B | |
| jr c, _LABEL_269C_ | |
| dec b | |
| cp $15 | |
| jr c, _LABEL_269C_ | |
| dec b | |
| _LABEL_269C_: | |
| bit 7, b | |
| jr z, _LABEL_26A2_ | |
| ld b, $00 | |
| _LABEL_26A2_: | |
| ld a, $03 | |
| add a, b | |
| ld b, a | |
| ld c, $90 | |
| _LABEL_26A8_: | |
| exx | |
| call GetRandomNumber | |
| and $3F | |
| ld l, a | |
| ld h, $00 | |
| add hl, de | |
| ld a, (hl) | |
| cp $20 | |
| jr nc, _LABEL_26C1_ | |
| call GetRandomNumber | |
| and $0F | |
| ld a, (hl) | |
| jr nz, _LABEL_26C1_ | |
| set 7, a | |
| _LABEL_26C1_: | |
| exx | |
| ld (hl), a | |
| inc hl | |
| ld (hl), $04 | |
| inc hl | |
| push hl | |
| call _LABEL_26DD_ | |
| ld (hl), c | |
| inc c | |
| pop hl | |
| djnz _LABEL_26A8_ | |
| ld a, (Floor) | |
| cp LastFloor | |
| ret nz | |
| call _LABEL_26DD_ | |
| ld a, $8F | |
| ld (hl), a | |
| ret | |
| _LABEL_26DD_: | |
| call GetRandomNumber | |
| ld l, a | |
| call GetRandomNumber | |
| and $03 | |
| ld h, a | |
| ld de, $D300 | |
| add hl, de | |
| ld a, (hl) | |
| and $7F | |
| cp $04 | |
| jr nz, _LABEL_26DD_ | |
| ret | |
| _LABEL_26F3_: | |
| ld a, $02 | |
| ld ($FFFF), a | |
| ld l, c | |
| ld h, $00 | |
| add hl, hl | |
| add hl, hl | |
| ld ($C615), hl | |
| dec hl | |
| dec hl | |
| dec hl | |
| dec hl | |
| ld ($C613), hl | |
| _LABEL_2707_: | |
| push bc | |
| exx | |
| ld de, ($C611) | |
| exx | |
| ld hl, ($C60F) | |
| ld b, c | |
| _LABEL_2712_: | |
| push bc | |
| ld a, (hl) | |
| and $7F | |
| exx | |
| ld l, a | |
| ld h, $00 | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| ld bc, $C800 | |
| add hl, bc | |
| ldi | |
| ldi | |
| ldi | |
| ldi | |
| push de | |
| ex de, hl | |
| ld bc, ($C613) | |
| add hl, bc | |
| ex de, hl | |
| ldi | |
| ldi | |
| ldi | |
| ldi | |
| pop de | |
| exx | |
| inc hl | |
| pop bc | |
| djnz _LABEL_2712_ | |
| exx | |
| ld hl, ($C615) | |
| add hl, de | |
| ld ($C611), hl | |
| exx | |
| ld hl, ($C60F) | |
| ld de, $0020 | |
| add hl, de | |
| ld ($C60F), hl | |
| pop bc | |
| djnz _LABEL_2707_ | |
| ret | |
| LoadMonsterPalette: | |
| ld a, (Floor) | |
| dec a | |
| and $FE | |
| add a, a | |
| add a, a | |
| ld l, a | |
| ld h, $00 | |
| ld de, MonsterPalettes | |
| add hl, de | |
| ld de, $C078 | |
| jp LDI8 | |
| ; Monster Palettes? from 276B to 27E2 (120 bytes) | |
| .include "monsters\monster_color_palettes.asm" | |
| _LABEL_27E3_: | |
| ld a, $02 | |
| ld ($FFFF), a | |
| ld a, ($C01D) | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, Data_27FA | |
| add hl, de | |
| ld a, (hl) | |
| inc hl | |
| ld h, (hl) | |
| ld l, a | |
| jp LoadPaletteToRAMMirror | |
| ; Data from 27FA to 2801 (8 bytes) | |
| Data_27FA: | |
| .db $15 $87 $29 $8A $66 $8E $8A $92 | |
| _LABEL_2802_: | |
| ld de, $0040 | |
| rst $08 ; Interrupt8 | |
| ld a, $04 | |
| ld ($FFFF), a | |
| ld hl, $2838 | |
| ld a, (EquippedArmor) | |
| and $0F | |
| cp $03 | |
| jr c, _LABEL_2826_ | |
| ld hl, $2860 | |
| cp $06 | |
| jr c, _LABEL_2826_ | |
| ld hl, $2888 | |
| ld a, $02 | |
| ld ($FFFF), a | |
| _LABEL_2826_: | |
| ld de, ($C103) | |
| ld d, $00 | |
| add hl, de | |
| add hl, de | |
| ld a, (hl) | |
| inc hl | |
| ld h, (hl) | |
| ld l, a | |
| ld c, VDPData | |
| call OUTI256 | |
| jp OUTI128 | |
| ; Data from 283A to 28B1 (120 bytes) - Unused? | |
| Data_283A: | |
| .db $0A $80 $8A $81 $0A $83 $8A $84 | |
| .db $0A $86 $8A $87 $0A $89 $8A $8A | |
| .db $0A $8C $8A $8D $0A $8F $4A $90 | |
| .db $8A $91 $0A $93 $4A $94 $CA $95 | |
| .db $0A $97 $4A $98 $CA $99 $0A $9B | |
| .db $8A $9C $0A $9E $8A $9F $0A $A1 | |
| .db $8A $A2 $0A $A4 $8A $A5 $0A $A7 | |
| .db $8A $A8 $0A $AA $8A $AB $CA $AC | |
| .db $0A $AE $8A $AF $CA $B0 $4A $B2 | |
| .db $8A $B3 $CA $B4 $4A $B6 $8A $B7 | |
| .db $2E $A0 $AE $A1 $2E $A3 $AE $A4 | |
| .db $2E $A6 $AE $A7 $2E $A9 $AE $AA | |
| .db $2E $AC $AE $AD $2E $AF $6E $B0 | |
| .db $AE $B1 $2E $B3 $6E $B4 $EE $B5 | |
| .db $2E $B7 $6E $B8 $EE $B9 $2E $BB | |
| _LABEL_28B2_: | |
| ld a, $07 | |
| ld ($FFFF), a | |
| ld de, $0200 | |
| rst $08 ; Interrupt8 | |
| ld a, (CharacterLevel) | |
| sub $04 | |
| jr nc, _LABEL_28C7_ | |
| ld hl, $92C7 | |
| jr _LABEL_28F4_ | |
| _LABEL_28C7_: | |
| and $0C | |
| cp $0C | |
| jr nz, _LABEL_28CF_ | |
| ld a, $08 | |
| _LABEL_28CF_: | |
| add a, a | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld a, ($C124) | |
| ld c, a | |
| ld a, ($C134) | |
| and $01 | |
| add a, a | |
| ld b, $03 | |
| _LABEL_28E0_: | |
| rrc c | |
| jr c, _LABEL_28E8_ | |
| add a, $04 | |
| djnz _LABEL_28E0_ | |
| _LABEL_28E8_: | |
| ld l, a | |
| ld h, $00 | |
| add hl, de | |
| ld de, Data_2911 | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ex de, hl | |
| _LABEL_28F4_: | |
| ld c, VDPData | |
| call OUTI80 | |
| ld ($C0D0), hl | |
| ret | |
| _LABEL_28FD_: | |
| ld a, $07 | |
| ld ($FFFF), a | |
| ld de, $0250 | |
| rst $08 ; Interrupt8 | |
| ld hl, ($C0D0) | |
| ld bc, $B0BE | |
| _LABEL_290C_: | |
| outi | |
| jr nz, _LABEL_290C_ | |
| ret | |
| ; Data from 2911 to 2940 (48 bytes) | |
| Data_2911: | |
| .db $C7 $96 $C7 $97 $C7 $94 $C7 $95 | |
| .db $C7 $98 $C7 $99 $C7 $9A $C7 $9B | |
| .db $C7 $9E $C7 $9F $C7 $9C $C7 $9D | |
| .db $C7 $A0 $C7 $A1 $C7 $A2 $C7 $A3 | |
| .db $C7 $A6 $C7 $A7 $C7 $A4 $C7 $A5 | |
| .db $C7 $A8 $C7 $A9 $C7 $AA $C7 $AB | |
| _LABEL_2941_: | |
| ld hl, (Floor) | |
| ld h, $00 | |
| add hl, hl | |
| ld de, $2975 | |
| add hl, de | |
| ld a, (hl) | |
| inc hl | |
| ld h, (hl) | |
| ld l, a | |
| _LABEL_294F_: | |
| ld a, (hl) | |
| or a | |
| ret z | |
| cp $0E | |
| ld a, $05 | |
| jr nz, _LABEL_295A_ | |
| ld a, $02 | |
| _LABEL_295A_: | |
| ld ($FFFF), a | |
| ld a, (hl) | |
| push hl | |
| add a, a | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $29E6 | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| inc hl | |
| ld a, (hl) | |
| inc hl | |
| ld h, (hl) | |
| ld l, a | |
| call DecompressToVDP | |
| pop hl | |
| inc hl | |
| jr _LABEL_294F_ | |
| ; Data from 2977 to 2A21 (171 bytes) | |
| .db $B3 $29 $B3 $29 $B3 $29 $B3 $29 $B8 $29 $B8 $29 $B8 $29 $B8 $29 | |
| .db $BD $29 $BD $29 $C2 $29 $C2 $29 $C7 $29 $C7 $29 $CC $29 $CC $29 | |
| .db $D1 $29 $D1 $29 $D1 $29 $D1 $29 $D6 $29 $D6 $29 $D6 $29 $D6 $29 | |
| .db $DB $29 $DB $29 $E0 $29 $E0 $29 $E5 $29 $E5 $29 $01 $02 $03 $04 | |
| .db $00 $01 $02 $05 $06 $00 $01 $02 $07 $08 $00 $07 $08 $09 $0A $00 | |
| .db $03 $04 $09 $0A $00 $03 $04 $0B $0C $00 $05 $06 $0B $0C $00 $07 | |
| .db $08 $0B $0C $00 $05 $06 $0B $0C $00 $01 $05 $06 $0A $00 $01 $0A | |
| .db $0D $0E $00 $80 $03 $00 $80 $00 $05 $08 $81 $80 $0F $B1 $86 $80 | |
| .db $19 $C7 $8D $80 $0F $EF $90 $C0 $18 $A0 $97 $40 $0F $BA $9B $C0 | |
| .db $1C $3B $A5 $80 $03 $6B $A7 $00 $06 $B4 $A8 $80 $03 $AE $AC $80 | |
| .db $07 $1E $AF $C0 $0C $73 $B2 $00 $1D $AE $BC | |
| _LABEL_2A22_: | |
| ld a, $02 | |
| ld ($FFFF), a | |
| ld hl, $820A | |
| ld de, $2020 | |
| call DecompressToVDP | |
| ld a, ($C01D) | |
| add a, a | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, Data_2A5C | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| inc hl | |
| push hl | |
| ex de, hl | |
| ld de, $2520 | |
| call DecompressToVDP | |
| pop hl | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ex de, hl | |
| ld de, $C800 | |
| call LDI88 | |
| ld hl, $86C5 | |
| ld de, $C860 | |
| jp LDI80 | |
| ; Data from 2A5C to 2A6B (16 bytes) | |
| Data_2A5C: | |
| .db $27 $87 $D1 $89 $3B $8A $0E $8E $78 $8E $32 $92 $9C $92 $EE $95 | |
| _LABEL_2A6C_: | |
| ld a, ($C0D5) | |
| or a | |
| jr nz, _LABEL_2A80_ | |
| ld a, (CurrentMessage) | |
| or a | |
| jr nz, _LABEL_2A88_ | |
| ld a, ($CAC5) | |
| or a | |
| jp nz, _LABEL_2B0B_ | |
| ret | |
| _LABEL_2A80_: | |
| xor a | |
| ld (CurrentMessage), a | |
| ld ($CAC5), a | |
| ret | |
| _LABEL_2A88_: | |
| cp $FF | |
| jp z, _LABEL_2B1B_ | |
| cp $FE | |
| jp z, _LABEL_2B23_ | |
| ld a, ($CAC5) | |
| or a | |
| jr nz, _LABEL_2ABC_ | |
| ld a, ($CA09) | |
| add a, $02 | |
| and $3F | |
| ld c, a | |
| ld hl, ($CA09) | |
| ld a, l | |
| and $C0 | |
| or c | |
| ld l, a | |
| ld de, $0540 | |
| add hl, de | |
| ld a, h | |
| cp $3F | |
| jr c, _LABEL_2AB3_ | |
| sub $07 | |
| _LABEL_2AB3_: | |
| ld h, a | |
| ld ($C7FA), hl | |
| ld a, $01 | |
| ld ($CAC5), a | |
| _LABEL_2ABC_: | |
| call _LABEL_2B2B_ | |
| ld hl, $AA47 | |
| ld de, $C700 | |
| call DecompressToRAM | |
| ld a, (CurrentMessage) | |
| cp $01 | |
| jp z, _LABEL_2B88_ | |
| cp $02 | |
| jp z, _LABEL_2BB8_ | |
| cp $03 | |
| jp z, _LABEL_2BEA_ | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $AA7F | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ex de, hl | |
| ld c, (hl) | |
| ld b, $00 | |
| inc hl | |
| ld de, $C740 | |
| ld a, $11 | |
| _LABEL_2AEF_: | |
| ldi | |
| ld a, $11 | |
| ld (de), a | |
| inc de | |
| xor a | |
| or c | |
| jr nz, _LABEL_2AEF_ | |
| _LABEL_2AF9_: | |
| ld hl, $C700 | |
| ld de, ($C7FA) | |
| ld bc, $033E | |
| call _LABEL_681_ | |
| xor a | |
| ld (CurrentMessage), a | |
| ret | |
| _LABEL_2B0B_: | |
| ld a, ($CA00) | |
| or a | |
| ret z | |
| _LABEL_2B10_: | |
| call _LABEL_2198_ | |
| _LABEL_2B13_: | |
| xor a | |
| ld (CurrentMessage), a | |
| ld ($CAC5), a | |
| ret | |
| _LABEL_2B1B_: | |
| ld a, ($CAC5) | |
| or a | |
| jr nz, _LABEL_2B10_ | |
| jr _LABEL_2B13_ | |
| _LABEL_2B23_: | |
| call _LABEL_2B2B_ | |
| xor a | |
| ld (CurrentMessage), a | |
| ret | |
| _LABEL_2B2B_: | |
| ld a, $03 | |
| ld ($FFFF), a | |
| ld hl, $AA63 | |
| ld de, $C7BA | |
| call DecompressToRAM | |
| ld hl, (CurrentHPLow) | |
| call _LABEL_2C98_ | |
| ld hl, $C7CC | |
| ld (hl), $60 ; H | |
| inc hl | |
| ld (hl), $11 | |
| inc hl | |
| ld (hl), $68 ; P | |
| inc hl | |
| ld (hl), $11 | |
| inc hl | |
| inc hl | |
| inc hl | |
| ex de, hl | |
| ld hl, $C0B3 | |
| xor a | |
| ld b, $02 | |
| _LABEL_2B57_: | |
| or (hl) | |
| jr z, _LABEL_2B63_ | |
| ld a, $80 | |
| add a, (hl) | |
| ld (de), a | |
| inc de | |
| ld a, $11 | |
| ld (de), a | |
| dec de | |
| _LABEL_2B63_: | |
| inc de | |
| inc de | |
| dec hl | |
| djnz _LABEL_2B57_ | |
| ld a, (hl) | |
| add a, $80 | |
| ld (de), a | |
| inc de | |
| ld a, $11 | |
| ld (de), a | |
| ld hl, ($CA09) | |
| ld a, l | |
| add a, $02 | |
| and $3F | |
| ld d, a | |
| ld a, l | |
| and $C0 | |
| or d | |
| ld l, a | |
| ex de, hl | |
| ld hl, $C7BA | |
| ld bc, $0310 | |
| jp _LABEL_681_ | |
| _LABEL_2B88_: | |
| ld hl, ($CAC6) | |
| call _LABEL_2C6D_ | |
| ld hl, ($AA81) | |
| ld c, (hl) | |
| ld b, $00 | |
| inc hl | |
| ld de, $C740 | |
| _LABEL_2B98_: | |
| ldi | |
| ld a, $11 | |
| ld (de), a | |
| inc de | |
| xor a | |
| or c | |
| jr nz, _LABEL_2B98_ | |
| push hl | |
| call _LABEL_2CBC_ | |
| pop hl | |
| ld c, (hl) | |
| ld b, $00 | |
| inc hl | |
| _LABEL_2BAB_: | |
| ldi | |
| ld a, $11 | |
| ld (de), a | |
| inc de | |
| xor a | |
| or c | |
| jr nz, _LABEL_2BAB_ | |
| jp _LABEL_2AF9_ | |
| _LABEL_2BB8_: | |
| ld hl, ($CAC6) | |
| call _LABEL_2C6D_ | |
| ld hl, ($AA83) | |
| ld c, (hl) | |
| ld b, $00 | |
| inc hl | |
| ld de, $C740 | |
| ld a, $11 | |
| _LABEL_2BCA_: | |
| ldi | |
| ld a, $11 | |
| ld (de), a | |
| inc de | |
| xor a | |
| or c | |
| jr nz, _LABEL_2BCA_ | |
| push hl | |
| call _LABEL_2CBC_ | |
| pop hl | |
| ld c, (hl) | |
| ld b, $00 | |
| inc hl | |
| _LABEL_2BDD_: | |
| ldi | |
| ld a, $11 | |
| ld (de), a | |
| inc de | |
| xor a | |
| or c | |
| jr nz, _LABEL_2BDD_ | |
| jp _LABEL_2AF9_ | |
| _LABEL_2BEA_: | |
| ld hl, ($CAC6) | |
| call _LABEL_2C6D_ | |
| ld hl, ($AA85) | |
| ld c, (hl) | |
| ld b, $00 | |
| inc hl | |
| ld de, $C740 | |
| _LABEL_2BFA_: | |
| ldi | |
| ld a, $11 | |
| ld (de), a | |
| inc de | |
| xor a | |
| or c | |
| jr nz, _LABEL_2BFA_ | |
| push hl | |
| push de | |
| ld a, ($CAC6) | |
| and $70 | |
| rrca | |
| rrca | |
| rrca | |
| ld e, a | |
| ld d, $00 | |
| ld hl, Data_2C61 | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ld a, ($CAC6) | |
| sub $20 | |
| jr c, _LABEL_2C32_ | |
| ld c, a | |
| ld b, $00 | |
| ld hl, $C935 | |
| add hl, bc | |
| ld a, (hl) | |
| or a | |
| jr z, _LABEL_2C32_ | |
| dec a | |
| ld hl, $0020 | |
| add hl, de | |
| ex de, hl | |
| jr _LABEL_2C37_ | |
| _LABEL_2C32_: | |
| ld a, ($CAC6) | |
| and $0F | |
| _LABEL_2C37_: | |
| add a, a | |
| ld l, a | |
| ld h, $00 | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ex de, hl | |
| ld c, (hl) | |
| ld b, $00 | |
| inc hl | |
| pop de | |
| _LABEL_2C45_: | |
| ldi | |
| ld a, $11 | |
| ld (de), a | |
| inc de | |
| xor a | |
| or c | |
| jr nz, _LABEL_2C45_ | |
| pop hl | |
| ld c, (hl) | |
| ld b, $00 | |
| inc hl | |
| _LABEL_2C54_: | |
| ldi | |
| ld a, $11 | |
| ld (de), a | |
| inc de | |
| xor a | |
| or c | |
| jr nz, _LABEL_2C54_ | |
| jp _LABEL_2AF9_ | |
| ; Data from 2C61 to 2C6C (12 bytes) | |
| Data_2C61: | |
| .db $00 $A0 $20 $A0 $40 $A0 $80 $A0 $C0 $A0 $00 $A1 | |
| _LABEL_2C6D_: | |
| ld b, $04 | |
| ld de, $2710 | |
| call _LABEL_2CB1_ | |
| ld ($C0B5), a | |
| ld de, $03E8 | |
| call _LABEL_2CB1_ | |
| ld ($C0B4), a | |
| ld de, $0064 | |
| call _LABEL_2CB1_ | |
| ld ($C0B3), a | |
| ld de, $000A | |
| call _LABEL_2CB1_ | |
| ld ($C0B2), a | |
| ld a, l | |
| ld ($C0B1), a | |
| ret | |
| _LABEL_2C98_: | |
| ld b, $04 | |
| ld de, $0064 | |
| call _LABEL_2CB1_ | |
| ld ($C0B3), a | |
| ld de, $000A | |
| call _LABEL_2CB1_ | |
| ld ($C0B2), a | |
| ld a, l | |
| ld ($C0B1), a | |
| ret | |
| _LABEL_2CB1_: | |
| xor a | |
| _LABEL_2CB2_: | |
| or a | |
| sbc hl, de | |
| jr c, _LABEL_2CBA_ | |
| inc a | |
| jr _LABEL_2CB2_ | |
| _LABEL_2CBA_: | |
| add hl, de | |
| ret | |
| _LABEL_2CBC_: | |
| ld hl, $C0B5 | |
| ld b, $04 | |
| xor a | |
| _LABEL_2CC2_: | |
| or (hl) | |
| jr z, _LABEL_2CCE_ | |
| ld a, $80 | |
| add a, (hl) | |
| ld (de), a | |
| inc de | |
| ld a, $11 | |
| ld (de), a | |
| inc de | |
| _LABEL_2CCE_: | |
| dec hl | |
| djnz _LABEL_2CC2_ | |
| ld a, $80 | |
| add a, (hl) | |
| ld (de), a | |
| inc de | |
| ld a, $11 | |
| ld (de), a | |
| inc de | |
| ret | |
| HandleTimers: | |
| call HandleFoodTimer | |
| call HandleHealTimer | |
| call HandlePoisonTimer | |
| call HandleBlindnessTimer | |
| call HandleDizzinessTimer | |
| ret | |
| HandleFoodTimer: | |
| ld d, NormalFoodTicks | |
| ld a, ($C930) | |
| or a | |
| jr z, CheckFoodTimer | |
| ld d, FoodRingFoodTicks | |
| ld a, (EquippedRing) | |
| and IgnoreItemTypeMask | |
| cp (FoodRing & IgnoreItemTypeMask) | |
| jr z, CheckFoodTimer | |
| ld d, $04 | |
| cp $07 | |
| jr nz, CheckFoodTimer | |
| ld d, $02 | |
| CheckFoodTimer: | |
| ld a, d | |
| ld hl, FoodTimer | |
| cp (hl) | |
| jr c, Eat | |
| inc (hl) | |
| ret | |
| Eat: | |
| ld (hl), $00 | |
| ld a, (Food) | |
| sub $01 | |
| daa | |
| jr c, Starve | |
| ld (Food), a | |
| ret | |
| Starve: | |
| ld hl, (CurrentHPLow) | |
| dec hl | |
| ld (CurrentHPLow), hl | |
| ld a, l | |
| or a | |
| ret nz | |
| ld a, $FF | |
| ld ($C63F), a | |
| ret | |
| HandleHealTimer: | |
| ld a, (PoisonTicksLeft) | |
| or a | |
| ret nz | |
| ld a, (Food) | |
| or a | |
| ret z | |
| ld a, ($C930) | |
| or a | |
| ld a, $08 | |
| ld de, $0001 | |
| jr z, _LABEL_2D50_ | |
| ld a, (EquippedRing) | |
| cp CursedRing | |
| ret z | |
| cp HealRing | |
| ld a, $04 | |
| jr nz, _LABEL_2D50_ | |
| ld a, $02 | |
| _LABEL_2D50_: | |
| ld hl, HealTimer | |
| inc (hl) | |
| cp (hl) | |
| jr z, _LABEL_2D58_ | |
| ret nc | |
| _LABEL_2D58_: | |
| ld (hl), $00 | |
| ld hl, (CurrentHPLow) | |
| ld de, (CharacterLevel) | |
| ld d, $00 | |
| add hl, de | |
| ld (CurrentHPLow), hl | |
| ld de, (MaxHPLow) | |
| xor a | |
| sbc hl, de | |
| jr c, _LABEL_2D74_ | |
| ld (CurrentHPLow), de | |
| _LABEL_2D74_: | |
| ld a, ($CAC5) | |
| or a | |
| ret z | |
| ld a, $FE | |
| ld (CurrentMessage), a | |
| ret | |
| HandlePoisonTimer: | |
| ld a, (PoisonTicksLeft) | |
| or a | |
| ret z | |
| dec a | |
| ld (PoisonTicksLeft), a | |
| ret | |
| HandleBlindnessTimer: | |
| ld a, (BlindnessTicksLeft) | |
| or a | |
| ret z | |
| dec a | |
| ld (BlindnessTicksLeft), a | |
| ret nz | |
| ld hl, ($C105) | |
| ld a, (hl) | |
| cp $05 | |
| ret z | |
| call _LABEL_20BA_ | |
| ld a, $01 | |
| ld ($C60E), a | |
| ret | |
| HandleDizzinessTimer: | |
| ld a, (DizzinessTicksLeft) | |
| or a | |
| ret z | |
| dec a | |
| ld (DizzinessTicksLeft), a | |
| ret | |
| _LABEL_2DAD_: | |
| ld b, $3F | |
| ld a, (PoisonTicksLeft) | |
| or a | |
| jr z, _LABEL_2DB7_ | |
| ld b, $3A | |
| _LABEL_2DB7_: | |
| ld a, (Food) | |
| or a | |
| jr nz, _LABEL_2DBF_ | |
| ld b, $0F | |
| _LABEL_2DBF_: | |
| ld hl, (MaxHPLow) | |
| srl h | |
| rr l | |
| srl h | |
| rr l | |
| ex de, hl | |
| ld hl, (CurrentHPLow) | |
| xor a | |
| sbc hl, de | |
| jr nc, _LABEL_2DE6_ | |
| ld hl, $C0BE | |
| inc (hl) | |
| ld a, (hl) | |
| bit 4, a | |
| jr z, _LABEL_2DDD_ | |
| cpl | |
| _LABEL_2DDD_: | |
| and $0C | |
| ld b, a | |
| add a, a | |
| add a, a | |
| or b | |
| or $03 | |
| ld b, a | |
| _LABEL_2DE6_: | |
| ld a, (TableIndex3) | |
| or a | |
| ld de, $C06F | |
| jr nz, _LABEL_2DF7_ | |
| ld de, $C02F | |
| ld hl, PaletteInRAMStatus | |
| set 0, (hl) | |
| _LABEL_2DF7_: | |
| ex de, hl | |
| ld (hl), b | |
| ret | |
| _LABEL_2DFA_: | |
| ld a, l | |
| and $1F | |
| sub $07 | |
| jr nc, _LABEL_2E02_ | |
| xor a | |
| _LABEL_2E02_: | |
| cp $10 | |
| jr c, _LABEL_2E08_ | |
| ld a, $10 | |
| _LABEL_2E08_: | |
| ld e, a | |
| ld d, $00 | |
| add a, a | |
| add a, a | |
| add a, a | |
| add a, a | |
| ld ($CA01), a | |
| ld a, $00 | |
| rla | |
| ld ($CA02), a | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| ld a, h | |
| sub $05 | |
| jr nc, _LABEL_2E21_ | |
| xor a | |
| _LABEL_2E21_: | |
| cp $14 | |
| jr c, _LABEL_2E27_ | |
| ld a, $14 | |
| _LABEL_2E27_: | |
| ld l, a | |
| ld h, $00 | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| ld ($CA03), hl | |
| add hl, hl | |
| add hl, de | |
| ld de, $D700 | |
| add hl, de | |
| ld ($CA07), hl | |
| ld ($C60F), hl | |
| ld hl, $CB00 | |
| ld ($C611), hl | |
| ld bc, $0C10 | |
| call _LABEL_26F3_ | |
| ld hl, $CB00 | |
| ld de, $3800 | |
| ld bc, $1840 | |
| call VDPOut_661 | |
| xor a | |
| ld ($CA05), a | |
| ld ($CA06), a | |
| ld hl, $3800 | |
| ld ($CA09), hl | |
| ld a, $02 | |
| ld ($CA0B), a | |
| ret | |
| ret ; Unreachable ret | |
| _LABEL_2E69_: | |
| ret | |
| _LABEL_2E6A_: | |
| ld a, ($CA00) | |
| or a | |
| ret z | |
| ld a, ($CAC5) | |
| or a | |
| jr z, _LABEL_2E7F_ | |
| call _LABEL_2198_ | |
| xor a | |
| ld (CurrentMessage), a | |
| ld ($CAC5), a | |
| _LABEL_2E7F_: | |
| ld a, ($CA00) | |
| rrca | |
| call c, _LABEL_2EE1_ | |
| rrca | |
| call c, _LABEL_2F22_ | |
| rrca | |
| call c, _LABEL_2F68_ | |
| rrca | |
| call c, _LABEL_2FA3_ | |
| ld hl, ($CA01) | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| ld e, h | |
| ld d, $00 | |
| ld hl, ($CA03) | |
| ld a, l | |
| and $F0 | |
| ld l, a | |
| add hl, hl | |
| add hl, de | |
| ld de, $D700 | |
| add hl, de | |
| ld ($CA07), hl | |
| ld a, ($CA05) | |
| neg | |
| and $F0 | |
| rrca | |
| rrca | |
| ld e, a | |
| ld d, $00 | |
| ld a, ($CA06) | |
| and $F0 | |
| ld l, a | |
| ld h, $00 | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| add hl, de | |
| ld de, $3800 | |
| add hl, de | |
| ld ($CA09), hl | |
| ld a, ($CA00) | |
| or a | |
| ret z | |
| rrca | |
| call c, _LABEL_2FDC_ | |
| rrca | |
| call c, _LABEL_2FF7_ | |
| rrca | |
| call c, _LABEL_3020_ | |
| rrca | |
| call c, _LABEL_3078_ | |
| ret | |
| _LABEL_2EE1_: | |
| push af | |
| ld hl, ($CA03) | |
| ld de, ($CA0B) | |
| ld d, $00 | |
| xor a | |
| sbc hl, de | |
| jr nc, _LABEL_2EFA_ | |
| ld a, ($CA03) | |
| or a | |
| jr z, _LABEL_2F1B_ | |
| ld e, a | |
| ld hl, $0000 | |
| _LABEL_2EFA_: | |
| ld ($CA03), hl | |
| ld a, ($CA06) | |
| ld b, a | |
| sub e | |
| cp $E0 | |
| jr c, _LABEL_2F08_ | |
| sub $20 | |
| _LABEL_2F08_: | |
| ld ($CA06), a | |
| ld d, a | |
| and $0F | |
| jr z, _LABEL_2F1B_ | |
| ld a, b | |
| and $0F | |
| jr z, _LABEL_2F20_ | |
| ld a, b | |
| xor d | |
| and $10 | |
| jr nz, _LABEL_2F20_ | |
| _LABEL_2F1B_: | |
| ld hl, $CA00 | |
| res 0, (hl) | |
| _LABEL_2F20_: | |
| pop af | |
| ret | |
| _LABEL_2F22_: | |
| push af | |
| ld hl, ($CA03) | |
| ld de, ($CA0B) | |
| ld d, $00 | |
| add hl, de | |
| ld a, h | |
| cp $01 | |
| jr c, _LABEL_2F40_ | |
| ld a, l | |
| sub $40 | |
| jr c, _LABEL_2F40_ | |
| neg | |
| add a, e | |
| jr z, _LABEL_2F61_ | |
| ld e, a | |
| ld hl, $0140 | |
| _LABEL_2F40_: | |
| ld ($CA03), hl | |
| ld a, ($CA06) | |
| ld b, a | |
| add a, e | |
| cp $E0 | |
| jr c, _LABEL_2F4E_ | |
| add a, $20 | |
| _LABEL_2F4E_: | |
| ld ($CA06), a | |
| ld d, a | |
| and $0F | |
| jr z, _LABEL_2F61_ | |
| ld a, b | |
| and $0F | |
| jr z, _LABEL_2F66_ | |
| ld a, b | |
| xor d | |
| and $10 | |
| jr nz, _LABEL_2F66_ | |
| _LABEL_2F61_: | |
| ld hl, $CA00 | |
| res 1, (hl) | |
| _LABEL_2F66_: | |
| pop af | |
| ret | |
| _LABEL_2F68_: | |
| push af | |
| ld hl, ($CA01) | |
| ld de, ($CA0B) | |
| ld d, $00 | |
| xor a | |
| sbc hl, de | |
| jr nc, _LABEL_2F81_ | |
| ld a, ($CA01) | |
| or a | |
| jr z, _LABEL_2F9C_ | |
| ld e, a | |
| ld hl, $0000 | |
| _LABEL_2F81_: | |
| ld ($CA01), hl | |
| ld a, ($CA05) | |
| ld b, a | |
| add a, e | |
| ld ($CA05), a | |
| ld d, a | |
| and $07 | |
| jr z, _LABEL_2F9C_ | |
| ld a, b | |
| and $07 | |
| jr z, _LABEL_2FA1_ | |
| ld a, b | |
| xor d | |
| and $08 | |
| jr nz, _LABEL_2FA1_ | |
| _LABEL_2F9C_: | |
| ld hl, $CA00 | |
| res 2, (hl) | |
| _LABEL_2FA1_: | |
| pop af | |
| ret | |
| _LABEL_2FA3_: | |
| push af | |
| ld hl, ($CA01) | |
| ld de, ($CA0B) | |
| ld d, $00 | |
| add hl, de | |
| ld a, h | |
| or a | |
| jr z, _LABEL_2FBA_ | |
| ld a, e | |
| sub l | |
| jr z, _LABEL_2FD5_ | |
| ld e, a | |
| ld hl, $0100 | |
| _LABEL_2FBA_: | |
| ld ($CA01), hl | |
| ld a, ($CA05) | |
| ld b, a | |
| sub e | |
| ld ($CA05), a | |
| ld d, a | |
| and $07 | |
| jr z, _LABEL_2FD5_ | |
| ld a, b | |
| and $07 | |
| jr z, _LABEL_2FDA_ | |
| ld a, b | |
| xor d | |
| and $08 | |
| jr nz, _LABEL_2FDA_ | |
| _LABEL_2FD5_: | |
| ld hl, $CA00 | |
| res 3, (hl) | |
| _LABEL_2FDA_: | |
| pop af | |
| ret | |
| _LABEL_2FDC_: | |
| push af | |
| ld hl, ($CA07) | |
| ld ($C60F), hl | |
| ld hl, $CA42 | |
| ld ($C611), hl | |
| ld bc, $0110 | |
| call _LABEL_26F3_ | |
| ld hl, ($CA09) | |
| ld ($CAC2), hl | |
| pop af | |
| ret | |
| _LABEL_2FF7_: | |
| push af | |
| ld hl, ($CA07) | |
| ld de, $0180 | |
| add hl, de | |
| ld ($C60F), hl | |
| ld hl, $CA42 | |
| ld ($C611), hl | |
| ld bc, $0110 | |
| call _LABEL_26F3_ | |
| ld hl, ($CA09) | |
| ld a, h | |
| add a, $06 | |
| cp $3F | |
| jr c, _LABEL_301A_ | |
| sub $07 | |
| _LABEL_301A_: | |
| ld h, a | |
| ld ($CAC2), hl | |
| pop af | |
| ret | |
| _LABEL_3020_: | |
| ld a, ($CA05) | |
| and $08 | |
| rrca | |
| rrca | |
| ex af, af' | |
| ld de, $CA0C | |
| exx | |
| ld hl, ($CA07) | |
| ld a, ($CA05) | |
| and $08 | |
| jr nz, _LABEL_3037_ | |
| inc hl | |
| _LABEL_3037_: | |
| ld de, $0020 | |
| ld b, $0C | |
| _LABEL_303C_: | |
| ld a, (hl) | |
| exx | |
| ld l, a | |
| ld h, $00 | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| ld bc, $C800 | |
| add hl, bc | |
| ex af, af' | |
| ld c, a | |
| ld b, $00 | |
| ex af, af' | |
| add hl, bc | |
| ldi | |
| ldi | |
| inc hl | |
| inc hl | |
| ldi | |
| ldi | |
| exx | |
| add hl, de | |
| djnz _LABEL_303C_ | |
| ld a, ($CA05) | |
| cpl | |
| and $08 | |
| rrca | |
| rrca | |
| add a, $02 | |
| ld d, a | |
| ld hl, ($CA09) | |
| ld a, l | |
| add a, d | |
| and $3F | |
| ld d, a | |
| ld a, l | |
| and $C0 | |
| or d | |
| ld l, a | |
| ld ($CA40), hl | |
| ret | |
| _LABEL_3078_: | |
| ld a, ($CA05) | |
| neg | |
| and $08 | |
| rrca | |
| rrca | |
| ex af, af' | |
| ld de, $CA0C | |
| exx | |
| ld hl, ($CA07) | |
| ld de, $0010 | |
| add hl, de | |
| ld de, $0020 | |
| ld b, $0C | |
| _LABEL_3092_: | |
| ld a, (hl) | |
| exx | |
| ld l, a | |
| ld h, $00 | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| ld bc, $C800 | |
| add hl, bc | |
| ex af, af' | |
| ld c, a | |
| ld b, $00 | |
| ex af, af' | |
| add hl, bc | |
| ldi | |
| ldi | |
| inc hl | |
| inc hl | |
| ldi | |
| ldi | |
| exx | |
| add hl, de | |
| djnz _LABEL_3092_ | |
| ld a, ($CA05) | |
| cpl | |
| and $08 | |
| rrca | |
| rrca | |
| ld d, a | |
| ld hl, ($CA09) | |
| ld a, l | |
| add a, d | |
| and $3F | |
| ld d, a | |
| ld a, l | |
| and $C0 | |
| or d | |
| ld l, a | |
| ld ($CA40), hl | |
| ret | |
| _LABEL_30CC_: | |
| ld a, ($CA06) | |
| out (VDPControl), a | |
| ld a, $89 | |
| out (VDPControl), a | |
| ld a, ($CA05) | |
| out (VDPControl), a | |
| ld a, $88 | |
| out (VDPControl), a | |
| ret | |
| _LABEL_30DF_: | |
| ld a, ($CA00) | |
| and $03 | |
| call nz, _LABEL_30F4_ | |
| ld a, ($CA00) | |
| and $0C | |
| call nz, _LABEL_3102_ | |
| xor a | |
| ld ($CA00), a | |
| ret | |
| _LABEL_30F4_: | |
| ld hl, $CA42 | |
| ld de, ($CAC2) | |
| ld bc, $0240 | |
| call _LABEL_681_ | |
| ret | |
| _LABEL_3102_: | |
| ld hl, $CA0C | |
| ld de, ($CA40) | |
| ld bc, $1A02 | |
| jp _LABEL_681_ | |
| _LABEL_310F_: | |
| push ix | |
| pop hl | |
| ld e, l | |
| ld d, h | |
| inc de | |
| ld (hl), $00 | |
| jp LDI31 | |
| _LABEL_311A_: | |
| call _LABEL_481B_ | |
| ld a, (ix+5) | |
| ld (ix+7), a | |
| ld a, (ix+6) | |
| ld (ix+8), a | |
| ld (ix+2), $01 | |
| ld (ix+3), $01 | |
| ld (ix+4), $02 | |
| ld (ix+19), $02 | |
| ld (ix+0), $42 | |
| ld (ix+1), $31 | |
| ret | |
| _LABEL_3142_: | |
| xor a | |
| ld ($C601), a | |
| ld hl, (CurrentHPLow) | |
| ld a, l | |
| or h | |
| jp z, _LABEL_31CB_ | |
| call _LABEL_1EF6_ | |
| jp c, _LABEL_322D_ | |
| ld a, (TableIndex3) | |
| or a | |
| ret nz | |
| ld a, (ParalysisTicksLeft) | |
| or a | |
| jp nz, HandleParalysisTimer | |
| ld a, ($C932) | |
| or a | |
| jp nz, _LABEL_374A_ | |
| ld a, (CurrentItem) | |
| or a | |
| jp nz, _LABEL_3796_ | |
| ld a, (LastControllerState) | |
| bit 5, a | |
| jp nz, _LABEL_33F8_ | |
| bit 4, a | |
| jp nz, _LABEL_31BD_ | |
| ld a, (CurrentControllerState) | |
| and $0F | |
| jp z, _LABEL_321C_ | |
| ld a, PlayerIdleTimeout | |
| ld (PlayerIdleTimer), a | |
| ld a, (DizzinessTicksLeft) | |
| or a | |
| jr nz, _LABEL_31AA_ | |
| ld a, (CurrentControllerState) | |
| and (ix+4) | |
| jr nz, _LABEL_3199_ | |
| ld a, (CurrentControllerState) | |
| _LABEL_3199_: | |
| rrca | |
| jp c, _LABEL_32C4_ | |
| rrca | |
| jp c, _LABEL_3309_ | |
| rrca | |
| jp c, _LABEL_334E_ | |
| rrca | |
| jp c, _LABEL_3393_ | |
| ret | |
| _LABEL_31AA_: | |
| call GetRandomNumber | |
| and $03 | |
| jp z, _LABEL_32C4_ | |
| dec a | |
| jp z, _LABEL_3309_ | |
| dec a | |
| jp z, _LABEL_334E_ | |
| jp _LABEL_3393_ | |
| _LABEL_31BD_: | |
| ld a, SoundEffect9B | |
| ld (SFXQueue), a | |
| call _LABEL_42C_ | |
| ld a, $0F | |
| ld (TableIndex1), a | |
| ret | |
| _LABEL_31CB_: | |
| ld a, SoundB1 ; Seems to fadeout/silence music | |
| ld (MusicQueue), a | |
| ld a, PlayerDeadMessage | |
| ld (CurrentMessage), a | |
| ld (ix+30), $01 | |
| ld (ix+24), $3C | |
| ld (ix+0), $E6 | |
| ld (ix+1), $31 | |
| ret | |
| _LABEL_31E6_: | |
| ld a, $01 | |
| ld ($C0D5), a | |
| dec (ix+24) | |
| ret nz | |
| xor a | |
| ld (CurrentMessage), a | |
| ld ($CAC5), a | |
| call _LABEL_42C_ | |
| ld a, $0B | |
| ld (TableIndex1), a ; Game over? | |
| ret | |
| HandleParalysisTimer: | |
| ld hl, ParalysisTicksLeft | |
| dec (hl) | |
| jp nz, _LABEL_33D8_ | |
| ld a, PlayerAwakenedMessage | |
| ld (CurrentMessage), a | |
| ret | |
| _LABEL_320C_: | |
| ld hl, (CurrentHPLow) | |
| ld a, l | |
| or h | |
| jp z, _LABEL_31CB_ | |
| call _LABEL_1EF6_ | |
| jr c, _LABEL_321C_ | |
| jp _LABEL_33D8_ | |
| _LABEL_321C_: | |
| ld a, ($CAC5) | |
| or a | |
| jr nz, _LABEL_322D_ | |
| ld hl, PlayerIdleTimer | |
| dec (hl) | |
| jr nz, _LABEL_322D_ | |
| ld a, PlayerIdleMessage | |
| ld (CurrentMessage), a | |
| _LABEL_322D_: | |
| call _LABEL_481B_ | |
| ld a, (ix+5) | |
| ld (ix+7), a | |
| ld a, (ix+6) | |
| ld (ix+8), a | |
| call _LABEL_4888_ | |
| ret | |
| ; Data from 3240 to 3243 (4 bytes) | |
| Data_3240: | |
| .db $06 $01 $0B $10 | |
| _LABEL_3244_: | |
| ld e, (ix+5) | |
| ld d, (ix+6) | |
| add hl, de | |
| ld a, (hl) | |
| res 7, a | |
| or a | |
| jr z, _LABEL_325E_ | |
| cp $06 | |
| jr c, _LABEL_3259_ | |
| cp $0C | |
| jr c, _LABEL_325E_ | |
| _LABEL_3259_: | |
| xor a | |
| ld (SecretPathTries), a | |
| ret | |
| _LABEL_325E_: | |
| scf | |
| ret | |
| _LABEL_3260_: | |
| ld a, h | |
| ex af, af' | |
| ld a, l | |
| ld hl, $C145 | |
| ld de, $001F | |
| ld b, $16 | |
| _LABEL_326B_: | |
| cp (hl) | |
| inc hl | |
| jr nz, _LABEL_3274_ | |
| ex af, af' | |
| cp (hl) | |
| jr z, _LABEL_3279_ | |
| ex af, af' | |
| _LABEL_3274_: | |
| add hl, de | |
| djnz _LABEL_326B_ | |
| xor a | |
| ret | |
| _LABEL_3279_: | |
| ld a, l | |
| and $E0 | |
| ld l, a | |
| scf | |
| ret | |
| _LABEL_327F_: | |
| ld a, ($C930) | |
| or a | |
| ret z | |
| ld a, (EquippedRing) | |
| and IgnoreCurseMask | |
| cp ShiftRing | |
| ret nz | |
| call GetRandomNumber | |
| and $0F | |
| ret nz | |
| pop hl | |
| call _LABEL_4888_ | |
| call _LABEL_1F8F_ | |
| call _LABEL_481B_ | |
| call _LABEL_20BA_ | |
| ld hl, ($C105) | |
| ld de, $2D00 | |
| add hl, de | |
| call _LABEL_2DFA_ | |
| push ix | |
| call _LABEL_1F4F_ | |
| pop ix | |
| call _LABEL_137_ | |
| ld a, WarpMessage | |
| ld (CurrentMessage), a | |
| xor a | |
| ld ($CAC5), a | |
| ld a, SoundEffect98 | |
| ld (SFXQueue), a | |
| jp _LABEL_3F1A_ | |
| _LABEL_32C4_: | |
| ld (ix+4), $01 | |
| ld hl, $FFE0 | |
| call _LABEL_3244_ | |
| jp c, _LABEL_321C_ | |
| call _LABEL_327F_ | |
| call _LABEL_3260_ | |
| ld de, Data_3A3A | |
| jp c, _LABEL_35CD_ | |
| ld a, $FF | |
| ld (CurrentMessage), a | |
| ld (ix+30), $01 | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| ld de, $FFE0 | |
| add hl, de | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+22), $45 | |
| ld (ix+23), $38 | |
| ld (ix+0), $30 | |
| ld (ix+1), $38 | |
| jp _LABEL_3830_ | |
| _LABEL_3309_: | |
| ld (ix+4), $02 | |
| ld hl, $0020 | |
| call _LABEL_3244_ | |
| jp c, _LABEL_321C_ | |
| call _LABEL_327F_ | |
| call _LABEL_3260_ | |
| ld de, $3A3E | |
| jp c, _LABEL_35CD_ | |
| ld a, $FF | |
| ld (CurrentMessage), a | |
| ld (ix+30), $01 | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| ld de, $0020 | |
| add hl, de | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+22), $5C | |
| ld (ix+23), $38 | |
| ld (ix+0), $49 | |
| ld (ix+1), $38 | |
| jp _LABEL_3849_ | |
| _LABEL_334E_: | |
| ld (ix+4), $04 | |
| ld hl, $FFFF | |
| call _LABEL_3244_ | |
| jp c, _LABEL_321C_ | |
| call _LABEL_327F_ | |
| call _LABEL_3260_ | |
| ld de, $3A42 | |
| jp c, _LABEL_35CD_ | |
| ld a, $FF | |
| ld (CurrentMessage), a | |
| ld (ix+30), $01 | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| ld de, $FFFF | |
| add hl, de | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+22), $75 | |
| ld (ix+23), $38 | |
| ld (ix+0), $60 | |
| ld (ix+1), $38 | |
| jp _LABEL_3860_ | |
| _LABEL_3393_: | |
| ld (ix+4), $08 | |
| ld hl, $0001 | |
| call _LABEL_3244_ | |
| jp c, _LABEL_321C_ | |
| call _LABEL_327F_ | |
| call _LABEL_3260_ | |
| ld de, $3A46 | |
| jp c, _LABEL_35CD_ | |
| ld a, $FF | |
| ld (CurrentMessage), a | |
| ld (ix+30), $01 | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| ld de, $0001 | |
| add hl, de | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+22), $8C | |
| ld (ix+23), $38 | |
| ld (ix+0), $79 | |
| ld (ix+1), $38 | |
| jp _LABEL_3879_ | |
| _LABEL_33D8_: | |
| ld a, $08 | |
| ld ($C601), a | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $08 | |
| ld (ix+0), $F5 | |
| ld (ix+1), $38 | |
| jp _LABEL_38F5_ | |
| _LABEL_33F8_: | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| ld a, (hl) | |
| cp $0C | |
| jr nc, _LABEL_3461_ | |
| ld a, (ix+4) | |
| ld hl, Data_3459 | |
| _LABEL_3409_: | |
| rrca | |
| jr c, _LABEL_3410_ | |
| inc hl | |
| inc hl | |
| jr _LABEL_3409_ | |
| _LABEL_3410_: | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| add hl, de | |
| ld a, (hl) | |
| cp $06 | |
| jr z, DoSecretPath | |
| cp $07 | |
| jp nz, _LABEL_33D8_ | |
| DoSecretPath: | |
| ld a, ($C930) | |
| or a | |
| jr z, SearchForSecretPath | |
| ld a, (EquippedRing) | |
| cp SightRing | |
| jr z, RevealSecretPath | |
| SearchForSecretPath: | |
| call GetRandomNumber | |
| and SecretPathTriesNeeded | |
| ld d, a | |
| ld a, (SecretPathTries) | |
| cp d | |
| jr c, SecretPathSearchFailed | |
| RevealSecretPath: | |
| ld (hl), $05 | |
| ld a, $01 | |
| ld ($C606), a | |
| ld a, SecretPathFoundMessage | |
| ld (CurrentMessage), a | |
| ld a, SoundEffect93 | |
| ld (SFXQueue), a | |
| ret | |
| SecretPathSearchFailed: | |
| ld a, (SecretPathTries) | |
| inc a | |
| ld (SecretPathTries), a | |
| jp _LABEL_33D8_ | |
| ; Data from 3459 to 3460 (8 bytes) | |
| Data_3459: | |
| .db $E0 $FF $20 $00 $FF $FF $01 $00 | |
| _LABEL_3461_: | |
| cp $10 | |
| jr nc, _LABEL_3476_ | |
| sub $0C | |
| jr z, _LABEL_34CF_ | |
| dec a | |
| jp z, _LABEL_3544_ | |
| dec a | |
| jp z, _LABEL_3548_ | |
| dec a | |
| jp z, _LABEL_357C_ | |
| ret | |
| _LABEL_3476_: | |
| sub $10 | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $C980 | |
| add hl, de | |
| ex de, hl | |
| ld a, (de) | |
| and $70 | |
| rrca | |
| ld c, a | |
| ld b, $00 | |
| ld hl, $C907 | |
| add hl, bc | |
| ld a, (hl) | |
| or a | |
| jr nz, _LABEL_34C7_ | |
| ld a, (de) | |
| and $7F | |
| ld ($CAC6), a | |
| ld a, ItemFoundMessage1 | |
| ld (CurrentMessage), a | |
| xor a | |
| ld b, $08 | |
| _LABEL_349E_: | |
| or (hl) | |
| jr nz, _LABEL_34A4_ | |
| dec hl | |
| djnz _LABEL_349E_ | |
| _LABEL_34A4_: | |
| inc hl | |
| ld a, (de) | |
| ld (hl), a | |
| inc de | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| ld a, (de) | |
| ld (hl), a | |
| ld bc, $0400 | |
| add hl, bc | |
| ld (hl), a | |
| ex de, hl | |
| xor a | |
| ld (hl), a | |
| dec hl | |
| ld (hl), a | |
| ld a, $01 | |
| ld ($C606), a | |
| ld a, SoundEffect93 | |
| ld (SFXQueue), a | |
| jp _LABEL_33D8_ | |
| _LABEL_34C7_: | |
| ld a, HandsFullMessage | |
| ld (CurrentMessage), a | |
| jp _LABEL_33D8_ | |
| _LABEL_34CF_: | |
| ld (hl), $04 | |
| call GetRandomNumber | |
| and $03 | |
| inc a | |
| ld b, a | |
| ld a, (Floor) | |
| ld d, a | |
| xor a | |
| _LABEL_34DD_: | |
| add a, d | |
| djnz _LABEL_34DD_ | |
| ld d, a | |
| call GetRandomNumber | |
| and $03 | |
| inc a | |
| ld b, a | |
| ld a, (CharacterLevel) | |
| ld e, a | |
| xor a | |
| _LABEL_34ED_: | |
| add a, e | |
| djnz _LABEL_34ED_ | |
| add a, d | |
| ld l, a | |
| ld h, $00 | |
| call _LABEL_2C98_ | |
| ld a, ($C0B3) | |
| ld h, a | |
| ld a, ($C0B2) | |
| add a, a | |
| add a, a | |
| add a, a | |
| add a, a | |
| ld l, a | |
| ld a, ($C0B1) | |
| or l | |
| ld l, a | |
| ld a, (MoneyLow) | |
| add a, l | |
| daa | |
| ld (MoneyLow), a | |
| ld a, (MoneyMid) | |
| adc a, h | |
| daa | |
| ld (MoneyMid), a | |
| ld a, (MoneyHigh) | |
| adc a, $00 | |
| daa | |
| ld (MoneyHigh), a | |
| cp $10 | |
| jr c, _LABEL_3532_ | |
| ld a, $99 | |
| ld (MoneyLow), a | |
| ld (MoneyMid), a | |
| ld a, $09 | |
| ld (MoneyHigh), a | |
| _LABEL_3532_: | |
| ld a, $01 | |
| ld ($C606), a | |
| ld a, GoldFoundMessage | |
| ld (CurrentMessage), a | |
| ld a, SoundEffect93 | |
| ld (SFXQueue), a | |
| jp _LABEL_33D8_ | |
| _LABEL_3544_: | |
| ld d, $10 | |
| jr _LABEL_354A_ | |
| _LABEL_3548_: | |
| ld d, $30 | |
| _LABEL_354A_: | |
| ld (hl), $04 | |
| call GetRandomNumber | |
| and $0F | |
| cp $09 | |
| jr nc, _LABEL_354A_ | |
| add a, d | |
| ld d, a | |
| call GetRandomNumber | |
| and $10 | |
| add a, d | |
| ld d, a | |
| ld a, (Food) | |
| add a, d | |
| daa | |
| jr nc, _LABEL_3567_ | |
| ld a, $99 | |
| _LABEL_3567_: | |
| ld (Food), a | |
| ld a, $01 | |
| ld ($C606), a | |
| ld a, FoodFoundMessage | |
| ld (CurrentMessage), a | |
| ld a, SoundEffect93 | |
| ld (SFXQueue), a | |
| jp _LABEL_33D8_ | |
| _LABEL_357C_: | |
| ld (hl), $04 | |
| xor a | |
| ld (CurrentMessage), a | |
| ld ($CAC5), a | |
| ld a, $01 | |
| ld ($C606), a | |
| ld ($C60E), a | |
| ld a, $3F | |
| ld (FlashColor), a | |
| ld a, (PaletteInRAM) | |
| ld (SavedColor), a | |
| ld (ix+24), $3C | |
| ld (ix+0), $B2 | |
| ld (ix+1), $35 | |
| ld a, $07 | |
| ld ($FFFF), a | |
| call StopAllSound | |
| ld a, SoundEffect95 | |
| ld (SFXQueue), a | |
| ret | |
| _LABEL_35B2_: | |
| call _LABEL_3F2B_ | |
| ret nc | |
| call _LABEL_461_ | |
| ld (ix+0), $C2 | |
| ld (ix+1), $35 | |
| ret | |
| _LABEL_35C2_: | |
| ld a, (TableIndex3) | |
| or a | |
| ret nz | |
| ld a, $0D | |
| ld (TableIndex1), a | |
| ret | |
| _LABEL_35CD_: | |
| ld (CurrentMonster), hl | |
| ld (ix+22), e | |
| ld (ix+23), d | |
| ld de, $001C | |
| add hl, de | |
| res 1, (hl) | |
| ld a, (EquippedWeapon) | |
| and IgnoreCurseMask | |
| cp $0E ; Great Sword? | |
| jr nz, _LABEL_35FD_ | |
| ld de, $0003 | |
| add hl, de | |
| ld a, (hl) | |
| or a | |
| jp z, _LABEL_372E_ | |
| cp $04 | |
| jp z, _LABEL_372E_ | |
| cp $08 | |
| jp z, _LABEL_372E_ | |
| cp $1C | |
| jp z, _LABEL_372E_ | |
| _LABEL_35FD_: | |
| call GetRandomNumber | |
| and $7F | |
| ld b, a | |
| ld hl, (CurrentMonster) | |
| ld de, $001F | |
| add hl, de | |
| ld e, (hl) | |
| ld d, $00 | |
| ld hl, Data_36F1 | |
| add hl, de | |
| ld a, (WeaponHit) | |
| sub (hl) | |
| add a, $64 | |
| cp b | |
| jp c, _LABEL_3712_ | |
| ld hl, BasePW | |
| ld a, (WeaponPW) | |
| add a, (hl) | |
| call _LABEL_4848_ | |
| ld e, a | |
| ld d, $00 | |
| ld hl, (CurrentMonster) | |
| ld bc, $001F | |
| add hl, bc | |
| ld a, (EquippedWeapon) | |
| and $7F | |
| sub $09 | |
| jp c, DoAttack | |
| jr z, DoMagiMasherSword | |
| dec a | |
| jr z, DoBushidoBladeSword | |
| dec a | |
| jr z, DoGhostKillerSword | |
| dec a | |
| jr z, DoDragonslayerSword | |
| dec a | |
| jr z, _LABEL_369F_ | |
| dec a | |
| jr z, _LABEL_36C2_ | |
| ld c, e | |
| ld b, d | |
| srl b | |
| rr c | |
| ld a, c | |
| or b | |
| jr nz, _LABEL_3657_ | |
| ld bc, $0001 | |
| _LABEL_3657_: | |
| ld hl, (CurrentHPLow) | |
| xor a | |
| sbc hl, bc | |
| ld (CurrentHPLow), hl | |
| jr nc, DoAttack | |
| ld hl, $0000 | |
| ld (CurrentHPLow), hl | |
| ld a, $FE | |
| ld ($C63F), a | |
| jr DoAttack | |
| DoMagiMasherSword: | |
| ld a, (hl) | |
| cp Witch | |
| jr z, DoubleDamage | |
| cp MadWitch | |
| jr z, DoubleDamage | |
| jr DoAttack | |
| DoBushidoBladeSword: | |
| ld a, (hl) | |
| cp Myst | |
| jr z, DoubleDamage | |
| cp DeathMyst | |
| jr z, DoubleDamage | |
| jr DoAttack | |
| DoGhostKillerSword: | |
| ld a, (hl) | |
| cp Phantom | |
| jr z, DoubleDamage | |
| cp Spectre | |
| jr z, DoubleDamage | |
| cp Wraith | |
| jr z, DoubleDamage | |
| jr DoAttack | |
| DoDragonslayerSword: | |
| ld a, (hl) | |
| cp Dragon | |
| jr nz, DoAttack | |
| ex de, hl | |
| add hl, hl | |
| add hl, hl | |
| ex de, hl | |
| jr DoAttack | |
| _LABEL_369F_: | |
| ld c, e | |
| ld b, d | |
| srl b | |
| rr c | |
| ld a, c | |
| or b | |
| jr nz, _LABEL_36AC_ | |
| ld bc, $0001 | |
| _LABEL_36AC_: | |
| ld hl, (CurrentHPLow) | |
| add hl, bc | |
| ld (CurrentHPLow), hl | |
| ld bc, (MaxHPLow) | |
| xor a | |
| sbc hl, bc | |
| jr c, DoAttack | |
| ld (CurrentHPLow), bc | |
| jr DoAttack | |
| _LABEL_36C2_: | |
| jr DoAttack | |
| DoubleDamage: | |
| ex de, hl | |
| add hl, hl | |
| ex de, hl | |
| DoAttack: | |
| ld (DamageDealt), de | |
| ex de, hl | |
| call _LABEL_486E_ | |
| ld a, e | |
| or d | |
| ld a, SoundEffect90 | |
| jr nz, _LABEL_36D7_ | |
| ld a, SoundEffect91 | |
| _LABEL_36D7_: | |
| ld (SFXQueue), a | |
| ld (ix+20), $00 | |
| ld (ix+21), $00 | |
| ld (ix+24), $08 | |
| ld (ix+0), $28 | |
| ld (ix+1), $39 | |
| jp _LABEL_3928_ | |
| ; Data from 36F1 to 3711 (33 bytes) | |
| ; Monsters? | |
| Data_36F1: | |
| .db $00 $04 $08 $0A $00 $05 $0E $18 | |
| .db $00 $08 $04 $32 $00 $14 $0C $0A | |
| .db $00 $0A $14 $0A $00 $18 $00 $1E | |
| .db $00 $0E $1E $14 $00 $0E $19 $0A | |
| .db $0A | |
| _LABEL_3712_: | |
| ld (ix+20), $00 | |
| ld (ix+21), $00 | |
| ld (ix+24), $08 | |
| ld (ix+0), $0A | |
| ld (ix+1), $39 | |
| ld a, SoundEffect92 | |
| ld (SFXQueue), a | |
| jp _LABEL_390A_ | |
| _LABEL_372E_: | |
| ld (ix+20), $00 | |
| ld (ix+21), $00 | |
| ld (ix+24), $08 | |
| ld (ix+0), $19 | |
| ld (ix+1), $39 | |
| ld a, SoundEffect92 | |
| ld (SFXQueue), a | |
| jp _LABEL_3919_ | |
| _LABEL_374A_: | |
| ld a, $04 | |
| ld ($FFFF), a | |
| ld a, ($C932) | |
| and $70 | |
| rrca | |
| rrca | |
| rrca | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $B90A | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| or a | |
| jr z, _LABEL_3768_ | |
| cp $06 | |
| jr nz, _LABEL_3779_ | |
| _LABEL_3768_: | |
| ld a, (ix+4) | |
| ld bc, $0080 | |
| ld hl, $0000 | |
| _LABEL_3771_: | |
| rrca | |
| jr c, _LABEL_3777_ | |
| add hl, bc | |
| jr _LABEL_3771_ | |
| _LABEL_3777_: | |
| add hl, de | |
| ex de, hl | |
| _LABEL_3779_: | |
| ex de, hl | |
| ld de, $0300 | |
| rst $08 ; Interrupt8 | |
| ld bc, $80BE | |
| _LABEL_3781_: | |
| outi | |
| jr nz, _LABEL_3781_ | |
| ld hl, $3DA6 | |
| ld ($C3E0), hl | |
| ld (ix+0), $AC | |
| ld (ix+1), $3A | |
| jp _LABEL_3AAC_ | |
| _LABEL_3796_: | |
| ld a, (CurrentItem) | |
| bit 7, a | |
| jr z, _LABEL_37A5_ | |
| and $70 | |
| jp z, CursedSwordAction | |
| jp CursedArmorAction | |
| _LABEL_37A5_: | |
| sub $20 | |
| jr c, DoItemAction | |
| cp $20 | |
| jr nc, DoItemAction | |
| and $70 | |
| rrca | |
| rrca | |
| ld e, a | |
| ld a, (ix+4) | |
| _LABEL_37B5_: | |
| rrca | |
| jr c, _LABEL_37BB_ | |
| inc e | |
| jr _LABEL_37B5_ | |
| _LABEL_37BB_: | |
| ld d, $00 | |
| ld hl, Data_37E0 | |
| add hl, de | |
| ld a, (hl) | |
| ld (ix+3), a | |
| DoItemAction: | |
| ld a, (CurrentItem) | |
| sub $20 ; Weapons are $0X, armor is $1X, subtract $20 to ignore those offsets | |
| and IgnoreCurseMask ; Ignore curse bit? | |
| ld e, a | |
| ld d, $00 | |
| ld hl, ItemActionOffsets | |
| add hl, de | |
| ld e, (hl) | |
| ld d, $00 | |
| ld hl, ItemActionTable | |
| add hl, de | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ex de, hl | |
| jp (hl) | |
| ; Data from 37E0 to 37EF (16 bytes) | |
| Data_37E0: | |
| .db $09 $04 $0E $13 $0A $05 $0F $14 $06 $01 $0B $10 $06 $01 $0B $10 ; Possibly identifies unidentified items? | |
| ; Table mapping items to their offsets in the item action table | |
| ItemActionOffsets: | |
| .include "items\behavior\item_action_offsets.asm" | |
| _LABEL_3830_: | |
| ld a, (ix+15) | |
| cp $58 | |
| jr z, _LABEL_3839_ | |
| jr nc, _LABEL_383F_ | |
| _LABEL_3839_: | |
| ld a, (ix+4) | |
| ld ($CA00), a | |
| _LABEL_383F_: | |
| call _LABEL_47B8_ | |
| jp _LABEL_3890_ | |
| ; Data from 3845 to 3848 (4 bytes) | |
| .db $03 $02 $07 $06 | |
| _LABEL_3849_: | |
| ld a, (ix+15) | |
| cp $68 | |
| jr c, _LABEL_3856_ | |
| ld a, (ix+4) | |
| ld ($CA00), a | |
| _LABEL_3856_: | |
| call _LABEL_47B8_ | |
| jp _LABEL_3890_ | |
| ; Data from 385C to 385F (4 bytes) | |
| .db $03 $02 $02 $01 | |
| _LABEL_3860_: | |
| ld a, (ix+17) | |
| cp $78 | |
| jr z, _LABEL_3869_ | |
| jr nc, _LABEL_386F_ | |
| _LABEL_3869_: | |
| ld a, (ix+4) | |
| ld ($CA00), a | |
| _LABEL_386F_: | |
| call _LABEL_47B8_ | |
| jp _LABEL_3890_ | |
| ; Data from 3875 to 3878 (4 bytes) | |
| .db $03 $02 $0C $0B | |
| _LABEL_3879_: | |
| ld a, (ix+17) | |
| cp $88 | |
| jr c, _LABEL_3886_ | |
| ld a, (ix+4) | |
| ld ($CA00), a | |
| _LABEL_3886_: | |
| call _LABEL_47B8_ | |
| jp _LABEL_3890_ | |
| ; Data from 388C to 388F (4 bytes) | |
| .db $03 $02 $11 $10 | |
| _LABEL_3890_: | |
| ld a, ($C601) | |
| inc a | |
| ld ($C601), a | |
| cp $08 | |
| ret c | |
| ld l, (ix+7) | |
| ld h, (ix+8) | |
| ld (ix+5), l | |
| ld (ix+6), h | |
| ld a, (hl) | |
| cp $01 | |
| jp z, _LABEL_3CD6_ | |
| ld a, (BlindnessTicksLeft) | |
| or a | |
| jr nz, _LABEL_38D2_ | |
| ld a, (hl) | |
| cp $02 | |
| jr z, _LABEL_38CA_ | |
| sub $10 | |
| jr c, _LABEL_38D2_ | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $C981 | |
| add hl, de | |
| ld a, (hl) | |
| cp $02 | |
| jr nz, _LABEL_38D2_ | |
| ld (hl), $03 | |
| _LABEL_38CA_: | |
| call _LABEL_20BA_ | |
| ld a, $01 | |
| ld ($C60E), a | |
| _LABEL_38D2_: | |
| ld a, $01 | |
| ld ($C606), a | |
| ld (ix+30), $00 | |
| ld a, (SluggishTicksLeft) | |
| or a | |
| jr nz, _LABEL_38EC_ | |
| ld (ix+0), $42 | |
| ld (ix+1), $31 | |
| jp HandleTimers | |
| _LABEL_38EC_: | |
| ld (ix+0), $0C | |
| ld (ix+1), $32 | |
| ret | |
| _LABEL_38F5_: | |
| ld a, ($C601) | |
| inc a | |
| ld ($C601), a | |
| cp $10 | |
| ret c | |
| ld (ix+0), $42 | |
| ld (ix+1), $31 | |
| jp HandleTimers | |
| _LABEL_390A_: | |
| call _LABEL_478D_ | |
| dec (ix+24) | |
| ret nz | |
| ld a, PlayerMissedMessage | |
| ld (CurrentMessage), a | |
| jp _LABEL_33D8_ | |
| _LABEL_3919_: | |
| call _LABEL_478D_ | |
| dec (ix+24) | |
| ret nz | |
| ld a, SwordDoesNothingMessage | |
| ld (CurrentMessage), a | |
| jp _LABEL_33D8_ | |
| _LABEL_3928_: | |
| ld a, (ix+24) | |
| and $01 | |
| ld hl, (CurrentMonster) | |
| ld de, $0002 | |
| add hl, de | |
| ld (hl), a | |
| call _LABEL_478D_ | |
| dec (ix+24) | |
| ret nz | |
| _LABEL_393C_: | |
| ld a, MonsterDamagedMessage1_Mirror | |
| ld (CurrentMessage), a | |
| ld hl, (DamageDealt) | |
| ld ($CAC6), hl | |
| ld hl, (CurrentMonster) | |
| ld de, $001C | |
| add hl, de | |
| set 4, (hl) | |
| ld hl, (CurrentMonster) | |
| ld de, $0002 | |
| add hl, de | |
| ld (hl), $01 | |
| ld de, $0018 | |
| add hl, de | |
| ld a, (hl) | |
| inc hl | |
| or (hl) | |
| jr nz, _LABEL_39B9_ | |
| _LABEL_3962_: | |
| ld a, VictoryMessage | |
| ld (CurrentMessage), a | |
| ld iy, (CurrentMonster) | |
| ld (iy+0), $0F | |
| inc hl | |
| ld (iy+1), $31 | |
| ld a, (iy+31) | |
| cp $1F | |
| jr c, _LABEL_39A0_ | |
| ld e, (iy+15) | |
| ld d, (iy+17) | |
| call _LABEL_1ECB_ | |
| ex de, hl | |
| ld l, (iy+5) | |
| ld h, (iy+6) | |
| ld bc, $0400 | |
| add hl, bc | |
| ld a, (hl) | |
| add a, a | |
| add a, a | |
| add a, a | |
| ld c, a | |
| ld b, $00 | |
| ld hl, $C800 | |
| add hl, bc | |
| ld bc, $0204 | |
| call _LABEL_681_ | |
| _LABEL_39A0_: | |
| ld e, (iy+31) | |
| ld d, $00 | |
| ld hl, $3A4A | |
| add hl, de | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ld hl, (ExperienceLow) | |
| add hl, de | |
| jr nc, _LABEL_39B6_ | |
| ld hl, $FFFF | |
| _LABEL_39B6_: | |
| ld (ExperienceLow), hl | |
| _LABEL_39B9_: | |
| ld de, (NextLevelLow) | |
| ld hl, (ExperienceLow) | |
| or a | |
| sbc hl, de | |
| jp c, _LABEL_33D8_ | |
| ld a, LevelUpMessage | |
| ld (CurrentMessage), a | |
| ld a, SoundEffectA9 | |
| ld (SFXQueue), a | |
| ld a, (CharacterLevel) | |
| inc a | |
| cp MaximumCharacterLevel | |
| jr c, _LABEL_39DA_ | |
| ld a, MaximumCharacterLevel | |
| _LABEL_39DA_: | |
| ld (CharacterLevel), a | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, ExperienceNeededTable ; Use high byte/low byte operator? | |
| add hl, de | |
| ld a, (hl) | |
| ld (NextLevelLow), a | |
| inc hl | |
| ld a, (hl) | |
| ld (NextLevelHigh), a | |
| ld a, (CharacterLevel) | |
| rrca | |
| rrca | |
| and $3F | |
| inc a | |
| ld d, a | |
| ld a, (BasePW) | |
| add a, d | |
| cp $3C | |
| jr c, _LABEL_3A01_ | |
| ld a, $3B | |
| _LABEL_3A01_: | |
| ld (BasePW), a | |
| ld a, (CharacterLevel) | |
| ld d, a | |
| ld a, (Floor) | |
| add a, d | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, (MaxHPLow) | |
| add hl, de | |
| ld (MaxHPLow), hl | |
| ld bc, $03E7 | |
| or a | |
| sbc hl, bc | |
| jr c, _LABEL_3A25_ | |
| ld hl, $03E7 | |
| ld (MaxHPLow), hl | |
| _LABEL_3A25_: | |
| ld hl, (CurrentHPLow) | |
| add hl, de | |
| ld (CurrentHPLow), hl | |
| or a | |
| sbc hl, bc | |
| jr c, _LABEL_3A37_ | |
| ld hl, $03E7 | |
| ld (CurrentHPLow), hl | |
| _LABEL_3A37_: | |
| jp _LABEL_3F1A_ | |
| ; Data from 3A3A to 3A49 (16 bytes) | |
| Data_3A3A: | |
| .db $04 $02 $08 $06 | |
| .db $04 $02 $03 $01 | |
| .db $04 $02 $0D $0B | |
| .db $04 $02 $12 $10 | |
| ; Data from 3A50 to 3AAB (98 bytes) | |
| ; Experience given by monsters! 3A50-3A8A | |
| .include "monsters/monster_experience_table.asm" | |
| ; Experience table 3A8B-3AAB | |
| .include "player/player_experience_needed_table.asm" | |
| _LABEL_3AAC_: | |
| ld hl, ($C3E0) | |
| ld a, l | |
| or h | |
| ret nz | |
| ld a, ($C932) | |
| or a | |
| jp z, _LABEL_33D8_ | |
| ld hl, (CurrentMonster) | |
| ld de, $001C | |
| add hl, de | |
| res 1, (hl) | |
| cp $40 | |
| jr nc, DoJumpTable6 | |
| ld a, ($C932) | |
| cp $0E | |
| jr nz, _LABEL_3AE9_ | |
| ld hl, (CurrentMonster) | |
| ld de, $001F | |
| add hl, de | |
| ld a, (hl) | |
| cp $00 | |
| jp z, _LABEL_3C74_ | |
| cp $04 | |
| jp z, _LABEL_3C74_ | |
| cp $08 | |
| jp z, _LABEL_3C74_ | |
| cp $1C | |
| jp z, _LABEL_3C74_ | |
| _LABEL_3AE9_: | |
| call GetRandomNumber | |
| and $7F | |
| ld b, a | |
| ld hl, (CurrentMonster) | |
| ld de, $001F | |
| add hl, de | |
| ld e, (hl) | |
| ld d, $00 | |
| ld hl, Data_36F1 | |
| add hl, de | |
| ld a, $64 | |
| sub (hl) | |
| cp b | |
| jp c, _LABEL_3C74_ | |
| ld a, ($C932) | |
| cp $20 | |
| jr c, _LABEL_3B0E_ | |
| xor a | |
| jr _LABEL_3B16_ | |
| _LABEL_3B0E_: | |
| ld hl, Data_3C85 | |
| ld e, a | |
| ld d, $00 | |
| add hl, de | |
| ld a, (hl) | |
| _LABEL_3B16_: | |
| ld hl, BasePW | |
| add a, (hl) | |
| call _LABEL_4848_ | |
| ld l, a | |
| ld h, $00 | |
| ld (DamageDealt), hl | |
| call _LABEL_486E_ | |
| ld a, e | |
| or d | |
| ld a, SoundEffect90 | |
| jr nz, _LABEL_3B2E_ | |
| ld a, SoundEffect91 | |
| _LABEL_3B2E_: | |
| ld (SFXQueue), a | |
| xor a | |
| ld ($C932), a | |
| jp _LABEL_393C_ | |
| ; Seems to be effects of thrown objects? | |
| DoJumpTable6: | |
| set 4, (hl) | |
| sub $40 | |
| ld e, a | |
| ld d, $00 | |
| ld hl, JumpTable6ActionOffsets | |
| add hl, de | |
| ld a, (hl) | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, JumpTable6 | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ex de, hl | |
| jp (hl) | |
| ; 1st entry of Jump Table from 3CC0 (indexed by unknown) | |
| JumpTable6_3B51: | |
| ld hl, (CurrentMonster) | |
| ld de, $001A | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ex de, hl | |
| add hl, hl | |
| ld bc, $03E7 | |
| or a | |
| sbc hl, bc | |
| jr c, _LABEL_3B68_ | |
| ld hl, $0000 | |
| _LABEL_3B68_: | |
| add hl, bc | |
| ex de, hl | |
| ld (hl), d | |
| dec hl | |
| ld (hl), e | |
| ld a, MonsterEnragedMessage | |
| ld (CurrentMessage), a | |
| xor a | |
| ld ($C932), a | |
| ld a, SoundEffectA9 | |
| ld (SFXQueue), a | |
| jp _LABEL_3F1A_ | |
| ; 2nd entry of Jump Table from 3CC0 (indexed by unknown) | |
| JumpTable6_3B7E: | |
| ld hl, (CurrentMonster) | |
| ld de, $001A | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ld c, e | |
| ld b, d | |
| srl b | |
| rr c | |
| srl b | |
| rr c | |
| ex de, hl | |
| xor a | |
| sbc hl, bc | |
| ex de, hl | |
| ld (hl), d | |
| dec hl | |
| ld (hl), e | |
| ld a, MonsterSlowMessage | |
| ld (CurrentMessage), a | |
| xor a | |
| ld ($C932), a | |
| ld a, SoundEffect90 | |
| ld (SFXQueue), a | |
| jp _LABEL_3F1A_ | |
| ; 3rd entry of Jump Table from 3CC0 (indexed by unknown) | |
| JumpTable6_3BAB: | |
| ld hl, (CurrentMonster) | |
| ld de, $001C | |
| add hl, de | |
| set 0, (hl) | |
| ld a, MonsterConfusedMessage | |
| ld (CurrentMessage), a | |
| xor a | |
| ld ($C932), a | |
| ld a, SoundEffect90 | |
| ld (SFXQueue), a | |
| jp _LABEL_3F1A_ | |
| ; 4th entry of Jump Table from 3CC0 (indexed by unknown) | |
| JumpTable6_3BC5: | |
| ld hl, (CurrentMonster) | |
| ld de, $001C | |
| add hl, de | |
| set 1, (hl) | |
| res 4, (hl) | |
| ld a, MonsterParalyzedMessage | |
| ld (CurrentMessage), a | |
| xor a | |
| ld ($C932), a | |
| ld a, SoundEffect90 | |
| ld (SFXQueue), a | |
| jp _LABEL_3F1A_ | |
| ; 5th entry of Jump Table from 3CC0 (indexed by unknown) | |
| JumpTable6_3BE1: | |
| ld hl, (CurrentMonster) | |
| ld de, $001A | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| srl d | |
| rr e | |
| srl d | |
| rr e | |
| ld a, e | |
| or d | |
| jr nz, _LABEL_3BFA_ | |
| ld de, $0001 | |
| _LABEL_3BFA_: | |
| ld (hl), d | |
| dec hl | |
| ld (hl), e | |
| ld a, MonsterSlowMessage | |
| ld (CurrentMessage), a | |
| xor a | |
| ld ($C932), a | |
| ld a, SoundEffect90 | |
| ld (SFXQueue), a | |
| jp _LABEL_3F1A_ | |
| ; 6th entry of Jump Table from 3CC0 (indexed by unknown) | |
| JumpTable6_3C0E: | |
| ld a, NothingHappenedMessage | |
| ld (CurrentMessage), a | |
| xor a | |
| ld ($C932), a | |
| jp _LABEL_3F1A_ | |
| ; 7th entry of Jump Table from 3CC0 (indexed by unknown) | |
| JumpTable6_3C1A: | |
| xor a | |
| ld ($C932), a | |
| ld hl, $0001 | |
| ld (DamageDealt), hl | |
| call _LABEL_486E_ | |
| jp _LABEL_393C_ | |
| ; 8th entry of Jump Table from 3CC0 (indexed by unknown) | |
| JumpTable6_3C2A: | |
| call _LABEL_207D_ | |
| ex de, hl | |
| ld hl, (CurrentMonster) | |
| ld bc, $0005 | |
| add hl, bc | |
| ld (hl), e | |
| inc hl | |
| ld (hl), d | |
| ld a, MonsterBlownAwayMessage | |
| ld (CurrentMessage), a | |
| xor a | |
| ld ($C932), a | |
| jp _LABEL_3F1A_ | |
| ; 9th entry of Jump Table from 3CC0 (indexed by unknown) | |
| JumpTable6_3C44: | |
| ld hl, (CurrentMonster) | |
| ld de, $001F | |
| add hl, de | |
| ld a, (hl) | |
| cp $01 | |
| jr z, _LABEL_3C5C_ | |
| cp $05 | |
| jr z, _LABEL_3C5C_ | |
| cp $09 | |
| jr z, _LABEL_3C5C_ | |
| xor a | |
| jp _LABEL_3B16_ | |
| _LABEL_3C5C_: | |
| xor a | |
| ld ($C932), a | |
| ld hl, $03E7 | |
| ld (DamageDealt), hl | |
| call _LABEL_486E_ | |
| jp _LABEL_393C_ | |
| ; 10th entry of Jump Table from 3CC0 (indexed by unknown) | |
| JumpTable6_3C6C: | |
| xor a | |
| jp _LABEL_3B16_ | |
| ; 11th entry of Jump Table from 3CC0 (indexed by unknown) | |
| JumpTable6_3C70: | |
| xor a | |
| jp _LABEL_3C5C_ | |
| _LABEL_3C74_: | |
| ld a, SoundEffect92 | |
| ld (SFXQueue), a | |
| ld a, PlayerMissedMessage | |
| ld (CurrentMessage), a | |
| xor a | |
| ld ($C932), a | |
| jp _LABEL_3F1A_ | |
| ; Data from 3C85 to 3C8F (11 bytes) | |
| Data_3C85: | |
| .db $00 $01 $02 $03 $05 $08 $0B $0E $12 $06 $06 | |
| ; Data from 3C90 to 3C9F (16 bytes) | |
| Data_3C90: | |
| .db $08 $08 $04 $08 $0C $00 $01 $02 $03 $04 $05 $06 $06 $0A $04 $0A | |
| ; Data from 3CA0 to 3CBF (32 bytes) | |
| ; Same number of actions as monsters, but doesn't seem to match up | |
| ; with monster speed or behavior | |
| ; No- appears to be combat actions based on item? | |
| JumpTable6ActionOffsets: | |
| .db $00 $00 $01 $00 $02 $02 $08 $03 $00 $00 $00 $09 $04 $00 $00 $00 | |
| .db $00 $09 $00 $09 $00 $00 $04 $0A $09 $07 $00 $00 $00 $00 $00 $00 | |
| ; Jump Table from 3CC0 to 3CD5 (11 entries, indexed by unknown) | |
| JumpTable6: | |
| .dw JumpTable6_3B51 JumpTable6_3B7E JumpTable6_3BAB JumpTable6_3BC5 | |
| .dw JumpTable6_3BE1 JumpTable6_3C0E JumpTable6_3C1A JumpTable6_3C2A | |
| .dw JumpTable6_3C44 JumpTable6_3C6C JumpTable6_3C70 | |
| _LABEL_3CD6_: | |
| ld hl, Floor | |
| inc (hl) | |
| ld a, (hl) | |
| call _LABEL_42C_ | |
| ld a, $08 | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| _LABEL_3CE6_: | |
| call _LABEL_481B_ | |
| ld a, (ix+5) | |
| ld (ix+7), a | |
| ld a, (ix+6) | |
| ld (ix+8), a | |
| ld (ix+2), $01 | |
| ld (ix+3), $15 | |
| ld (ix+4), $02 | |
| ld (ix+19), $02 | |
| ld (ix+22), $16 | |
| ld (ix+23), $3D | |
| ld (ix+0), $1A | |
| ld (ix+1), $3D | |
| ret | |
| ; Data from 3D16 to 3D19 (4 bytes) | |
| .db $07 $02 $15 $15 | |
| _LABEL_3D1A_: | |
| call _LABEL_478D_ | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_3D34_ | |
| call _LABEL_481B_ | |
| ld a, (ix+5) | |
| ld (ix+7), a | |
| ld a, (ix+6) | |
| ld (ix+8), a | |
| ret | |
| _LABEL_3D34_: | |
| ld (ix+24), $08 | |
| ld hl, ($C105) | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld e, (ix+5) | |
| ld d, (ix+6) | |
| dec de | |
| or a | |
| sbc hl, de | |
| jr z, _LABEL_3D62_ | |
| jr c, _LABEL_3D7E_ | |
| ld a, l | |
| cp $02 | |
| jr nz, _LABEL_3D70_ | |
| ld (ix+4), $08 | |
| ld (ix+0), $8A | |
| ld (ix+1), $3D | |
| jr _LABEL_3D8A_ | |
| _LABEL_3D62_: | |
| ld (ix+4), $04 | |
| ld (ix+0), $8A | |
| ld (ix+1), $3D | |
| jr _LABEL_3D8A_ | |
| _LABEL_3D70_: | |
| ld (ix+4), $02 | |
| ld (ix+0), $8A | |
| ld (ix+1), $3D | |
| jr _LABEL_3D8A_ | |
| _LABEL_3D7E_: | |
| ld (ix+4), $01 | |
| ld (ix+0), $8A | |
| ld (ix+1), $3D | |
| _LABEL_3D8A_: | |
| call _LABEL_47B8_ | |
| dec (ix+24) | |
| ret nz | |
| ld l, (ix+7) | |
| ld h, (ix+8) | |
| ld (ix+5), l | |
| ld (ix+6), h | |
| ld (ix+0), $1A | |
| ld (ix+1), $3D | |
| ret | |
| _LABEL_3DA6_: | |
| ld hl, ($C10A) | |
| ld (ix+10), l | |
| ld (ix+11), h | |
| ld hl, ($C10D) | |
| ld (ix+13), l | |
| ld (ix+14), h | |
| ld (ix+19), $04 | |
| ld (ix+2), $01 | |
| ld (ix+3), $1F | |
| ld (ix+24), $04 | |
| ld a, ($C104) | |
| ld (ix+4), a | |
| ld (ix+0), $D7 | |
| ld (ix+1), $3D | |
| ret | |
| _LABEL_3DD7_: | |
| call _LABEL_47BB_ | |
| dec (ix+24) | |
| ret nz | |
| ld a, (ix+10) | |
| and $F0 | |
| ld l, a | |
| ld h, (ix+11) | |
| add hl, hl | |
| ex de, hl | |
| ld a, (ix+13) | |
| and $F0 | |
| ld h, (ix+14) | |
| srl h | |
| rra | |
| srl h | |
| rra | |
| srl h | |
| rra | |
| srl h | |
| rra | |
| ld l, a | |
| add hl, de | |
| ld de, $D300 | |
| add hl, de | |
| ld a, (hl) | |
| and $7F | |
| jr z, _LABEL_3E51_ | |
| cp $0C | |
| jr nc, _LABEL_3E10_ | |
| cp $06 | |
| jr nc, _LABEL_3E51_ | |
| _LABEL_3E10_: | |
| ld iy, $C140 | |
| ld de, $0020 | |
| ld b, $14 | |
| _LABEL_3E19_: | |
| ld a, (iy+11) | |
| cp (ix+11) | |
| jr nz, _LABEL_3E39_ | |
| ld a, (iy+10) | |
| cp (ix+10) | |
| jr nz, _LABEL_3E39_ | |
| ld a, (iy+14) | |
| cp (ix+14) | |
| jr nz, _LABEL_3E39_ | |
| ld a, (iy+13) | |
| cp (ix+13) | |
| jr z, _LABEL_3E42_ | |
| _LABEL_3E39_: | |
| add iy, de | |
| djnz _LABEL_3E19_ | |
| ld (ix+24), $04 | |
| ret | |
| _LABEL_3E42_: | |
| push iy | |
| pop hl | |
| ld (CurrentMonster), hl | |
| ld (ix+0), $0F | |
| ld (ix+1), $31 | |
| ret | |
| _LABEL_3E51_: | |
| ld a, SoundEffect92 | |
| ld (SFXQueue), a | |
| ld a, PlayerMissedMessage | |
| ld (CurrentMessage), a | |
| xor a | |
| ld ($C932), a | |
| ld (ix+0), $0F | |
| ld (ix+1), $31 | |
| ret | |
| ; Jump Table from 3E68 to 3ED7 (56 entries, indexed by CurrentItem) | |
| ItemActionTable: | |
| .dw BladeScrollAction ShieldScrollAction NorustScrollAction BlessScrollAction | |
| .dw NothingHappenedAction MapScrollAction ShiftScrollAction MadScrollAction | |
| .dw FreezePotionAction SummonScrollAction MagiScrollAction GasScrollAction | |
| .dw GhostScrollAction DragonScrollAction BlankScrollAction FlameRodAction | |
| .dw FlashRodAction ThunderRodAction WindRodAction BerserkRodAction | |
| .dw SilentRodAction ReshapeRodAction TravelRodAction DrainRodAction | |
| .dw WitherRodAction MinhealPotionAction MidhealPotionAction SlowPotionAction | |
| .dw SlowfixPotionAction FogPotionAction UnusedDizzinessItem CurePotionAction | |
| .dw MaxhealPotionAction WitherPotionAction HealFoodRingEquipAction MagicRingEquipAction | |
| .dw SightRingEquipAction ShieldRingEquipAction OgreRingEquipAction ShiftRingEquipAction | |
| .dw CursedRingEquipAction HungerRingEquipAction ToyRingEquipAction CursedSwordAction | |
| .dw CursedSwordAction CursedArmorAction PowerPotionAction ReflexPotionAction | |
| .dw PotionScrollAction SpiritRodAction WaterPotionAction DazePotionAction | |
| .dw UnusedNothingItem UnusedNothingItem UnusedNothingItem UnusedNothingItem | |
| _LABEL_3ED8_: | |
| ld a, $3F | |
| ld (FlashColor), a | |
| jr _LABEL_3EE5_ | |
| _LABEL_3EDF_: | |
| ld a, (PaletteInRAM) | |
| ld (FlashColor), a | |
| _LABEL_3EE5_: | |
| ld a, (PaletteInRAM) | |
| ld (SavedColor), a | |
| ld (ix+24), $1E | |
| ld hl, _LABEL_3EF5_ | |
| jp SetVBlankContinuation | |
| _LABEL_3EF5_: | |
| call _LABEL_3F2B_ | |
| ret nc | |
| ld a, (NextMessage) | |
| ld (CurrentMessage), a | |
| ld hl, CurrentItem | |
| bit 7, (hl) | |
| jr z, _LABEL_3F0B_ | |
| ld a, SoundEffectAA | |
| ld (SFXQueue), a | |
| _LABEL_3F0B_: | |
| ld a, (hl) | |
| cp $23 | |
| jr nz, _LABEL_3F15_ | |
| ld a, SoundEffectAB | |
| ld (SFXQueue), a | |
| _LABEL_3F15_: | |
| ld (hl), $00 | |
| call _LABEL_4888_ | |
| _LABEL_3F1A_: | |
| ld (ix+24), $0F | |
| ld hl, _LABEL_3F24_ | |
| jp SetVBlankContinuation | |
| _LABEL_3F24_: | |
| dec (ix+24) | |
| ret nz | |
| jp _LABEL_33D8_ | |
| _LABEL_3F2B_: | |
| dec (ix+24) | |
| jr z, _LABEL_3F46_ | |
| ld a, (FlashColor) | |
| bit 0, (ix+24) | |
| jr nz, _LABEL_3F3C_ | |
| ld a, (SavedColor) | |
| _LABEL_3F3C_: | |
| ld (PaletteInRAM), a | |
| ld hl, PaletteInRAMStatus | |
| set 0, (hl) | |
| xor a | |
| ret | |
| _LABEL_3F46_: | |
| ld a, (SavedColor) | |
| ld (PaletteInRAM), a | |
| ld hl, PaletteInRAMStatus | |
| set 0, (hl) | |
| scf | |
| ret | |
| ; 1st entry of Jump Table from 3E68 (indexed by unknown) | |
| BladeScrollAction: | |
| ld a, (WeaponPW) | |
| inc a | |
| cp WeaponPWCap ; Cap weapon power at 59 | |
| jr c, SetWeaponPW | |
| ld a, WeaponPWCap-1 | |
| SetWeaponPW: | |
| ld (WeaponPW), a | |
| ld a, WeaponStrongerMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 2nd entry of Jump Table from 3E68 (indexed by unknown) | |
| ShieldScrollAction: | |
| ld hl, ArmorAC | |
| inc (hl) | |
| ld a, ArmorStrongerMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 3rd entry of Jump Table from 3E68 (indexed by unknown) | |
| NorustScrollAction: | |
| ld a, $01 | |
| ld (PreventArmorRust), a | |
| ld a, NoRustMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 4th entry of Jump Table from 3E68 (indexed by unknown) | |
| BlessScrollAction: | |
| ld a, ($C930) | |
| or a | |
| jr z, _LABEL_3F94_ | |
| ld a, (EquippedRing) | |
| and IgnoreCurseMask | |
| cp CursedRing | |
| jr c, _LABEL_3F94_ | |
| cp ToyRing | |
| jr nz, _LABEL_3FA1_ | |
| _LABEL_3F94_: | |
| ld a, (EquippedWeapon) | |
| ld d, a | |
| ld a, (EquippedArmor) | |
| or d | |
| ld d, a | |
| and $80 | |
| jr z, NothingHappenedAction | |
| _LABEL_3FA1_: | |
| ld hl, EquippedWeapon | |
| res 7, (hl) | |
| call EquipWeapon | |
| ld hl, EquippedArmor | |
| res 7, (hl) | |
| call EquipArmor | |
| ld a, ($C930) | |
| or a | |
| jr z, _LABEL_3FD2_ | |
| ld a, (EquippedRing) | |
| and IgnoreCurseMask | |
| cp CursedRing | |
| jr c, _LABEL_3FD2_ | |
| cp ToyRing | |
| jr z, _LABEL_3FD2_ | |
| ld hl, $C929 | |
| ld de, EquippedRing | |
| call LDI7 | |
| xor a | |
| ld (de), a | |
| ld ($C930), a | |
| _LABEL_3FD2_: | |
| ld a, CurseRemovedMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 5th entry of Jump Table from 3E68 (indexed by unknown) | |
| NothingHappenedAction: | |
| ld a, NothingHappenedMessage | |
| ld (NextMessage), a | |
| xor a | |
| ld (CurrentItem), a | |
| jp _LABEL_3EDF_ | |
| ; 6th entry of Jump Table from 3E68 (indexed by unknown) | |
| MapScrollAction: | |
| ld a, (BlindnessTicksLeft) | |
| or a | |
| jr nz, NothingHappenedAction | |
| ld a, (PaletteInRAM) | |
| ld (SavedColor), a | |
| ld a, $3F | |
| ld (FlashColor), a | |
| ld (ix+24), $1E | |
| ld hl, CompleteMapScrollAction | |
| jp SetVBlankContinuation | |
| .BANK 1 SLOT 1 | |
| .ORG $0000 | |
| CompleteMapScrollAction: | |
| call _LABEL_3F2B_ | |
| ret nc | |
| ld a, FloorMapRevealedMessage | |
| ld (CurrentMessage), a | |
| call _LABEL_2208_ | |
| ld a, $01 | |
| ld ($C60E), a | |
| xor a | |
| ld (CurrentItem), a | |
| call _LABEL_4888_ | |
| jp _LABEL_3F1A_ | |
| ; 7th entry of Jump Table from 3E68 (indexed by unknown) | |
| ShiftScrollAction: | |
| ld a, (PaletteInRAM) | |
| ld (SavedColor), a | |
| ld a, $3F | |
| ld (FlashColor), a | |
| ld (ix+24), $1E | |
| ld hl, ContinueShiftScrollAction | |
| jp SetVBlankContinuation | |
| ContinueShiftScrollAction: | |
| call _LABEL_3F2B_ | |
| ret nc | |
| ld a, TeleportRandomRoomMessage | |
| ld (CurrentMessage), a | |
| ld (ix+24), $1E | |
| ld hl, CompleteShiftScrollAction | |
| jp SetVBlankContinuation | |
| CompleteShiftScrollAction: | |
| dec (ix+24) | |
| ret nz | |
| call _LABEL_1F8F_ | |
| call _LABEL_481B_ | |
| call _LABEL_20BA_ | |
| ld hl, ($C105) | |
| ld de, $2D00 | |
| add hl, de | |
| call _LABEL_2DFA_ | |
| push ix | |
| call _LABEL_1F4F_ | |
| pop ix | |
| xor a | |
| ld (CurrentItem), a | |
| ld (CurrentMessage), a | |
| ld ($CAC5), a | |
| ld a, SoundEffect98 | |
| ld (SFXQueue), a | |
| ld hl, _LABEL_3142_ | |
| jp SetVBlankContinuation | |
| ; 8th entry of Jump Table from 3E68 (indexed by unknown) | |
| MadScrollAction: | |
| ld iy, $C140 | |
| ld de, $0020 | |
| ld bc, $1600 | |
| _LABEL_4081_: | |
| ld a, (iy+0) | |
| or (iy+1) | |
| jr z, _LABEL_408E_ | |
| set 0, (iy+28) | |
| inc c | |
| _LABEL_408E_: | |
| add iy, de | |
| djnz _LABEL_4081_ | |
| ld a, c | |
| or a | |
| jp z, NothingHappenedAction | |
| ld a, MonsterConfusedMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 9th entry of Jump Table from 3E68 (indexed by unknown) | |
| FreezePotionAction: | |
| call GetRandomNumber | |
| and RangeParalysisTicks | |
| inc a ; Min is one | |
| ld (ParalysisTicksLeft), a | |
| ld a, PlayerParalyzedMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 10th entry of Jump Table from 3E68 (indexed by unknown) | |
| SummonScrollAction: | |
| call _LABEL_1F3A_ | |
| jp c, NothingHappenedAction | |
| ld (CurrentMonster), hl | |
| push hl | |
| pop iy | |
| ld a, (ix+4) | |
| ld hl, Data_4115 | |
| _LABEL_40C2_: | |
| rrca | |
| jr c, _LABEL_40C9_ | |
| inc hl | |
| inc hl | |
| jr _LABEL_40C2_ | |
| _LABEL_40C9_: | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| add hl, de | |
| call _LABEL_2091_ | |
| jp c, NothingHappenedAction | |
| ld (iy+5), l | |
| ld (iy+6), h | |
| ld a, (PaletteInRAM) | |
| ld (SavedColor), a | |
| ld a, $3F | |
| ld (FlashColor), a | |
| ld (ix+24), $1E | |
| ld hl, CompleteSummonScrollAction | |
| jp SetVBlankContinuation | |
| CompleteSummonScrollAction: | |
| call _LABEL_3F2B_ | |
| ret nc | |
| xor a | |
| ld (CurrentItem), a | |
| call _LABEL_4888_ | |
| call DoJumpTable4 | |
| ld hl, (CurrentMonster) | |
| ld (hl), e | |
| inc hl | |
| ld (hl), d | |
| ld de, $001E | |
| add hl, de | |
| ld (hl), a | |
| ld a, EnemySummonedMessage | |
| ld (CurrentMessage), a | |
| jp _LABEL_3F1A_ | |
| ; Data from 4115 to 411C (8 bytes) | |
| Data_4115: | |
| .db $E0 $FF $20 $00 $FF $FF $01 $00 | |
| ; 11th entry of Jump Table from 3E68 (indexed by unknown) | |
| MagiScrollAction: | |
| ld a, (EquippedWeapon) | |
| cp MagiMasherSword | |
| jp z, NothingHappenedAction | |
| ld a, MagiMasherSword | |
| ld (EquippedWeapon), a | |
| ld hl, $0F00 | |
| ld ($C04E), hl | |
| ld hl, PaletteInRAMStatus | |
| set 0, (hl) | |
| call EquipWeapon | |
| ld a, SwordTransformedMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 12th entry of Jump Table from 3E68 (indexed by unknown) | |
| GasScrollAction: | |
| ld a, (EquippedWeapon) | |
| cp BushidoBladeSword | |
| jp z, NothingHappenedAction | |
| ld a, BushidoBladeSword | |
| ld (EquippedWeapon), a | |
| ld hl, $0F00 | |
| ld ($C04E), hl | |
| ld hl, PaletteInRAMStatus | |
| set 0, (hl) | |
| call EquipWeapon | |
| ld a, SwordTransformedMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 13th entry of Jump Table from 3E68 (indexed by unknown) | |
| GhostScrollAction: | |
| ld a, (EquippedWeapon) | |
| cp GhostKillerSword | |
| jp z, NothingHappenedAction | |
| ld a, GhostKillerSword | |
| ld (EquippedWeapon), a | |
| ld hl, $0F00 | |
| ld ($C04E), hl | |
| ld hl, PaletteInRAMStatus | |
| set 0, (hl) | |
| call EquipWeapon | |
| ld a, SwordTransformedMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 14th entry of Jump Table from 3E68 (indexed by unknown) | |
| DragonScrollAction: | |
| ld a, (EquippedWeapon) | |
| cp DragonslayerSword | |
| jp z, NothingHappenedAction | |
| ld a, DragonslayerSword | |
| ld (EquippedWeapon), a | |
| ld hl, $0F00 | |
| ld ($C04E), hl | |
| ld hl, PaletteInRAMStatus | |
| set 0, (hl) | |
| call EquipWeapon | |
| ld a, SwordTransformedMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 15th entry of Jump Table from 3E68 (indexed by unknown) | |
| BlankScrollAction: | |
| ld a, BlankScrollNothingMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3EDF_ | |
| ; 16th entry of Jump Table from 3E68 (indexed by unknown) | |
| FlameRodAction: | |
| ld a, (CharacterLevel) | |
| add a, a | |
| add a, a | |
| ld l, a | |
| ld h, $00 | |
| ld (DamageDealt), hl | |
| ld a, $03 | |
| ld (FlashColor), a | |
| ld a, SoundEffect96 | |
| ld (SFXQueue), a | |
| DoRodDamage: | |
| call _LABEL_489C_ | |
| jr nc, _LABEL_41D8_ | |
| ld a, NoEffectMessage | |
| ld (NextMessage), a | |
| ld a, SoundEffect00 | |
| ld (SFXQueue), a | |
| jp _LABEL_3EE5_ | |
| _LABEL_41D8_: | |
| ld (CurrentMonster), iy | |
| set 4, (iy+28) | |
| res 1, (iy+28) | |
| ld a, (PaletteInRAM) | |
| ld (SavedColor), a | |
| ld (ix+24), $1E | |
| ld hl, CompleteRodDamage | |
| jp SetVBlankContinuation | |
| CompleteRodDamage: | |
| ld a, (ix+24) | |
| and $01 | |
| ld hl, (CurrentMonster) | |
| ld de, $0002 | |
| add hl, de | |
| ld (hl), a | |
| call _LABEL_3F2B_ | |
| ret nc | |
| xor a | |
| ld (CurrentItem), a | |
| call _LABEL_4888_ | |
| ld hl, (DamageDealt) | |
| ld a, ($C930) | |
| or a | |
| jr z, _LABEL_4220_ | |
| ld a, (EquippedRing) | |
| cp MagicRing | |
| jr nz, _LABEL_4220_ | |
| add hl, hl | |
| ld (DamageDealt), hl | |
| _LABEL_4220_: | |
| call _LABEL_486E_ | |
| jp _LABEL_393C_ | |
| ; 17th entry of Jump Table from 3E68 (indexed by unknown) | |
| FlashRodAction: | |
| ld a, (CharacterLevel) | |
| add a, a | |
| ld d, a | |
| add a, a | |
| add a, d | |
| ld l, a | |
| ld h, $00 | |
| ld (DamageDealt), hl | |
| ld a, $3F | |
| ld (FlashColor), a | |
| ld a, SoundEffect97 | |
| ld (SFXQueue), a | |
| jp DoRodDamage | |
| ; 18th entry of Jump Table from 3E68 (indexed by unknown) | |
| ThunderRodAction: | |
| ld a, (CharacterLevel) | |
| add a, a | |
| add a, a | |
| add a, a | |
| ld l, a | |
| ld h, $00 | |
| ld (DamageDealt), hl | |
| ld a, $0F | |
| ld (FlashColor), a | |
| ld a, SoundEffect95 | |
| ld (SFXQueue), a | |
| jp DoRodDamage | |
| ; 19th entry of Jump Table from 3E68 (indexed by unknown) | |
| WindRodAction: | |
| call _LABEL_489C_ | |
| jr nc, _LABEL_4266_ | |
| ld a, NoEffectMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| _LABEL_4266_: | |
| ld (CurrentMonster), iy | |
| set 4, (iy+28) | |
| ld a, (PaletteInRAM) | |
| ld (SavedColor), a | |
| ld a, $3F | |
| ld (FlashColor), a | |
| ld (ix+24), $1E | |
| ld hl, CompleteWindRodAction | |
| jp SetVBlankContinuation | |
| CompleteWindRodAction: | |
| ld a, (ix+24) | |
| and $01 | |
| ld hl, (CurrentMonster) | |
| ld de, $0002 | |
| add hl, de | |
| ld (hl), a | |
| call _LABEL_3F2B_ | |
| ret nc | |
| xor a | |
| ld (CurrentItem), a | |
| call _LABEL_4888_ | |
| ld hl, (CurrentMonster) | |
| ld (hl), $0F | |
| inc hl | |
| ld (hl), $31 | |
| ld a, MonsterBlownAwayMessage | |
| ld (CurrentMessage), a | |
| jp _LABEL_3F1A_ | |
| ; 20th entry of Jump Table from 3E68 (indexed by unknown) | |
| BerserkRodAction: | |
| call _LABEL_489C_ | |
| jr nc, _LABEL_42B8_ | |
| ld a, NoEffectMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| _LABEL_42B8_: | |
| ld (CurrentMonster), iy | |
| set 4, (iy+28) | |
| res 1, (iy+28) | |
| ld a, (PaletteInRAM) | |
| ld (SavedColor), a | |
| ld a, $3F | |
| ld (FlashColor), a | |
| ld a, SoundEffect96 | |
| ld (SFXQueue), a | |
| ld (ix+24), $1E | |
| ld hl, CompleteBerserkRodAction | |
| jp SetVBlankContinuation | |
| CompleteBerserkRodAction: | |
| ld a, (ix+24) | |
| and $01 | |
| ld hl, (CurrentMonster) | |
| ld de, $0002 | |
| add hl, de | |
| ld (hl), a | |
| call _LABEL_3F2B_ | |
| ret nc | |
| xor a | |
| ld (CurrentItem), a | |
| call _LABEL_4888_ | |
| ld hl, (CurrentHPLow) | |
| ld e, l | |
| ld d, h | |
| srl h | |
| rr l | |
| ld a, l | |
| or h | |
| jr nz, _LABEL_4306_ | |
| ld hl, $0001 | |
| _LABEL_4306_: | |
| ld (CurrentHPLow), hl | |
| ex de, hl | |
| add hl, hl | |
| ld a, (EquippedRing) | |
| cp MagicRing | |
| jr nz, _LABEL_4313_ | |
| add hl, hl | |
| _LABEL_4313_: | |
| ld c, l | |
| ld b, h | |
| ld hl, (CurrentMonster) | |
| ld de, $001A | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ex de, hl | |
| xor a | |
| sbc hl, bc | |
| ex de, hl | |
| jr nc, _LABEL_4329_ | |
| ld de, $0000 | |
| _LABEL_4329_: | |
| ld (hl), d | |
| dec hl | |
| ld (hl), e | |
| ld a, e | |
| or d | |
| jp z, _LABEL_3962_ | |
| ld a, PlayerBerserkMessage_Mirror | |
| ld (CurrentMessage), a | |
| jp _LABEL_3F1A_ | |
| ; 21st entry of Jump Table from 3E68 (indexed by unknown) | |
| SilentRodAction: | |
| call _LABEL_489C_ | |
| jr nc, _LABEL_4346_ | |
| ld a, NoEffectMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| _LABEL_4346_: | |
| ld (CurrentMonster), iy | |
| set 4, (iy+28) | |
| ld a, (PaletteInRAM) | |
| ld (SavedColor), a | |
| ld a, $3F | |
| ld (FlashColor), a | |
| ld (ix+24), $1E | |
| ld hl, CompleteSilentRodAction | |
| jp SetVBlankContinuation | |
| CompleteSilentRodAction: | |
| ld a, (ix+24) | |
| and $01 | |
| ld hl, (CurrentMonster) | |
| ld de, $0002 | |
| add hl, de | |
| ld (hl), a | |
| call _LABEL_3F2B_ | |
| ret nc | |
| xor a | |
| ld (CurrentItem), a | |
| call _LABEL_4888_ | |
| ld hl, (CurrentMonster) | |
| ld de, $001C | |
| add hl, de | |
| set 3, (hl) | |
| ld a, MonsterNoMagicMessage | |
| ld (CurrentMessage), a | |
| jp _LABEL_3F1A_ | |
| ; 22nd entry of Jump Table from 3E68 (indexed by unknown) | |
| ReshapeRodAction: | |
| call _LABEL_489C_ | |
| jr nc, _LABEL_4399_ | |
| ld a, NoEffectMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| _LABEL_4399_: | |
| ld (CurrentMonster), iy | |
| set 4, (iy+28) | |
| res 1, (iy+28) | |
| ld a, (PaletteInRAM) | |
| ld (SavedColor), a | |
| ld a, $3F | |
| ld (FlashColor), a | |
| ld (ix+24), $1E | |
| ld hl, CompleteReshapeRodAction | |
| jp SetVBlankContinuation | |
| CompleteReshapeRodAction: | |
| ld a, (ix+24) | |
| and $01 | |
| ld hl, (CurrentMonster) | |
| ld de, $0002 | |
| add hl, de | |
| ld (hl), a | |
| call _LABEL_3F2B_ | |
| ret nc | |
| xor a | |
| ld (CurrentItem), a | |
| call _LABEL_4888_ | |
| _LABEL_43D2_: | |
| call DoJumpTable4 | |
| ld hl, (CurrentMonster) | |
| ld bc, $001F | |
| add hl, bc | |
| cp (hl) | |
| jr z, _LABEL_43D2_ | |
| ld (hl), a | |
| ld hl, (CurrentMonster) | |
| ld (hl), e | |
| inc hl | |
| ld (hl), d | |
| ld a, EnemyTransformedMessage | |
| ld (CurrentMessage), a | |
| jp _LABEL_3F1A_ | |
| ; 23rd entry of Jump Table from 3E68 (indexed by unknown) | |
| TravelRodAction: | |
| ld a, (Floor) | |
| cp LastFloor | |
| jr c, _LABEL_43FD_ | |
| ld a, NoEffectMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3EDF_ | |
| _LABEL_43FD_: | |
| ld a, (PaletteInRAM) | |
| ld (SavedColor), a | |
| ld a, $3F | |
| ld (FlashColor), a | |
| ld (ix+24), $1E | |
| ld hl, ContinueTravelRodAction | |
| jp SetVBlankContinuation | |
| ContinueTravelRodAction: | |
| call _LABEL_3F2B_ | |
| ret nc | |
| xor a | |
| ld (CurrentItem), a | |
| call _LABEL_4888_ | |
| ld a, TeleportNextFloorMessage | |
| ld (CurrentMessage), a | |
| ld (ix+24), $1E | |
| ld hl, CompleteTravelRodAction | |
| jp SetVBlankContinuation | |
| CompleteTravelRodAction: | |
| dec (ix+24) | |
| ret nz | |
| ld hl, Floor | |
| inc (hl) | |
| xor a | |
| ld (CurrentMessage), a | |
| ld ($CAC5), a | |
| call _LABEL_42C_ | |
| ld a, $08 | |
| ld (TableIndex1), a | |
| jp _LABEL_143_ | |
| ; 24th entry of Jump Table from 3E68 (indexed by unknown) | |
| DrainRodAction: | |
| call _LABEL_489C_ | |
| jr nc, _LABEL_4453_ | |
| ld a, NoEffectMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3EDF_ | |
| _LABEL_4453_: | |
| ld (CurrentMonster), iy | |
| res 1, (iy+28) | |
| ld e, (iy+26) | |
| ld d, (iy+27) | |
| ld hl, (CurrentHPLow) | |
| ld (iy+26), l | |
| ld (iy+27), h | |
| ld hl, (MaxHPLow) | |
| or a | |
| sbc hl, de | |
| ex de, hl | |
| jr nc, _LABEL_4474_ | |
| add hl, de | |
| _LABEL_4474_: | |
| ld (CurrentHPLow), hl | |
| ld a, HitPointSwapMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 25th entry of Jump Table from 3E68 (indexed by unknown) | |
| WitherRodAction: | |
| ld a, (CharacterLevel) | |
| dec a | |
| jp z, NothingHappenedAction | |
| ld (CharacterLevel), a | |
| call _LABEL_496B_ | |
| ld a, LevelDownMessage1 | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 26th entry of Jump Table from 3E68 (indexed by unknown) | |
| MinhealPotionAction: | |
| ld hl, (MaxHPLow) | |
| srl h | |
| rr l | |
| srl h | |
| rr l | |
| DoPotionHealing: | |
| ld de, (CurrentHPLow) | |
| add hl, de | |
| ex de, hl | |
| ld hl, (MaxHPLow) | |
| xor a | |
| sbc hl, de | |
| ex de, hl | |
| jr nc, _LABEL_44B1_ | |
| ld hl, (MaxHPLow) | |
| _LABEL_44B1_: | |
| ld (CurrentHPLow), hl | |
| ld a, PlayerHealedMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 27th entry of Jump Table from 3E68 (indexed by unknown) | |
| MidhealPotionAction: | |
| ld hl, (MaxHPLow) | |
| srl h | |
| rr l | |
| jr DoPotionHealing | |
| ; 28th entry of Jump Table from 3E68 (indexed by unknown) | |
| SlowPotionAction: | |
| ld a, (SluggishTicksLeft) | |
| or a | |
| jr z, _LABEL_44D3_ | |
| ld a, NoEffectMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3EDF_ | |
| _LABEL_44D3_: | |
| ld a, $01 | |
| ld (SluggishTicksLeft), a | |
| ld a, PlayerSlowMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 29th entry of Jump Table from 3E68 (indexed by unknown) | |
| SlowfixPotionAction: | |
| ld a, (SluggishTicksLeft) | |
| or a | |
| jr nz, _LABEL_44EE_ | |
| ld a, NoEffectMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3EDF_ | |
| _LABEL_44EE_: | |
| xor a | |
| ld (SluggishTicksLeft), a | |
| ld a, PlayerSlowHealedMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 30th entry of Jump Table from 3E68 (indexed by unknown) | |
| FogPotionAction: | |
| ld a, (BlindnessTicksLeft) | |
| or a | |
| jr z, _LABEL_4508_ | |
| ld a, NoEffectMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3EDF_ | |
| _LABEL_4508_: | |
| ld a, (PaletteInRAM) | |
| ld (SavedColor), a | |
| ld a, $3F | |
| ld (FlashColor), a | |
| ld (ix+24), $1E | |
| ld hl, CompleteFogPotionAction | |
| jp SetVBlankContinuation | |
| CompleteFogPotionAction: | |
| call _LABEL_3F2B_ | |
| ret nc | |
| xor a | |
| ld (CurrentItem), a | |
| call _LABEL_4888_ | |
| call _LABEL_21BF_ | |
| ld a, $01 | |
| ld ($C60E), a | |
| ld ($C606), a | |
| call GetRandomNumber | |
| and RangeBlindnessTicks | |
| add a, MinimumBlindnessTicks | |
| ld (BlindnessTicksLeft), a | |
| ld a, PlayerFogMessage | |
| ld (CurrentMessage), a | |
| jp _LABEL_3F1A_ | |
| ; 31st entry of Jump Table from 3E68 (indexed by unknown) | |
| UnusedDizzinessItem: | |
| ld a, (DizzinessTicksLeft) ; Causes 16-31 ticks of dizziness if player isn't already dizzy | |
| or a | |
| jr z, NotDizzyYet1 | |
| ld a, NoEffectMessage ; Nothing happened | |
| ld (NextMessage), a | |
| jp _LABEL_3EDF_ | |
| NotDizzyYet1: | |
| call GetRandomNumber | |
| and RangeDizzinessTicks | |
| add a, MinimumDizzinessTicks | |
| ld (DizzinessTicksLeft), a | |
| ld a, PlayerLightheadedMessage ; Uses same message as monster-attack-induced dizziness | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 32nd entry of Jump Table from 3E68 (indexed by unknown) | |
| CurePotionAction: | |
| ld a, (PoisonTicksLeft) | |
| ld d, a | |
| ld a, (BlindnessTicksLeft) | |
| ld e, a | |
| ld a, (DizzinessTicksLeft) | |
| or e ; Either blinded or dizzy | |
| or d ; Either poisoned or dizzy | |
| jr nz, CureStatusEffect ; If any of the three... | |
| ld a, NoEffectMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3EDF_ | |
| CureStatusEffect: | |
| xor a | |
| ld (PoisonTicksLeft), a | |
| ld (BlindnessTicksLeft), a | |
| ld (DizzinessTicksLeft), a | |
| ld a, PlayerStatusHealedMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 33rd entry of Jump Table from 3E68 (indexed by unknown) | |
| MaxhealPotionAction: | |
| ld hl, (MaxHPLow) | |
| ld (CurrentHPLow), hl | |
| ld a, PlayerHealedMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 34th entry of Jump Table from 3E68 (indexed by unknown) | |
| WitherPotionAction: | |
| call GetRandomNumber | |
| and $01 | |
| jr z, DecreaseAC ; If 0, decrease AC, if 1, decrease PW | |
| ld a, (BasePW) | |
| or a | |
| jp z, NothingHappenedAction | |
| dec a | |
| ld (BasePW), a | |
| ld a, PlayerStrengthDownMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| DecreaseAC: | |
| ld a, (BaseAC) | |
| or a | |
| jp z, NothingHappenedAction | |
| dec a | |
| ld (BasePW), a | |
| ld a, PlayerStrengthDownMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 35th entry of Jump Table from 3E68 (indexed by unknown) | |
| HealFoodRingEquipAction: | |
| ld a, PlayerHealedMessage | |
| ld (NextMessage), a | |
| _LABEL_45CE_: | |
| ld a, $3F | |
| ld (FlashColor), a | |
| _LABEL_45D3_: | |
| ld a, (PaletteInRAM) | |
| ld (SavedColor), a | |
| ld (ix+24), $1E | |
| ld hl, CompleteHealFoodRingEquipAction | |
| jp SetVBlankContinuation | |
| CompleteHealFoodRingEquipAction: | |
| call _LABEL_3F2B_ | |
| ret nc | |
| ld a, (NextMessage) | |
| ld (CurrentMessage), a | |
| ld a, (CurrentItem) | |
| and $0F | |
| cp $08 | |
| jr z, _LABEL_45FF_ | |
| cp $06 | |
| jr c, _LABEL_45FF_ | |
| ld a, SoundEffectAA | |
| ld (SFXQueue), a | |
| _LABEL_45FF_: | |
| xor a | |
| ld (CurrentItem), a | |
| call _LABEL_4888_ | |
| ld (ix+24), $1E | |
| ld hl, _LABEL_3142_ | |
| jp SetVBlankContinuation | |
| ; 36th entry of Jump Table from 3E68 (indexed by unknown) | |
| MagicRingEquipAction: | |
| ld a, PlayerMagicUpMessage | |
| ld (NextMessage), a | |
| jr _LABEL_45CE_ | |
| ; 37th entry of Jump Table from 3E68 (indexed by unknown) | |
| SightRingEquipAction: | |
| ld a, PlayerSightUpMessage | |
| ld (NextMessage), a | |
| jr _LABEL_45CE_ | |
| ; 38th entry of Jump Table from 3E68 (indexed by unknown) | |
| ShieldRingEquipAction: | |
| ld a, (BaseAC) | |
| add a, $04 | |
| cp $32 | |
| jr c, _LABEL_4629_ | |
| ld a, $31 | |
| _LABEL_4629_: | |
| ld (BaseAC), a | |
| ld a, PlayerDefenseUpMessage1 | |
| ld (NextMessage), a | |
| jr _LABEL_45CE_ | |
| ; 39th entry of Jump Table from 3E68 (indexed by unknown) | |
| OgreRingEquipAction: | |
| ld a, (BasePW) | |
| add a, $04 | |
| cp $3C | |
| jr c, _LABEL_463E_ | |
| ld a, $3B | |
| _LABEL_463E_: | |
| ld (BasePW), a | |
| ld a, PlayerStrengthUpMessage1 | |
| ld (NextMessage), a | |
| jp _LABEL_45CE_ | |
| ; 40th entry of Jump Table from 3E68 (indexed by unknown) | |
| ShiftRingEquipAction: | |
| ld a, TeleportRandomRoomMessage | |
| ld (NextMessage), a | |
| ld a, $00 | |
| ld (FlashColor), a | |
| jp _LABEL_45D3_ | |
| ; 41st entry of Jump Table from 3E68 (indexed by unknown) | |
| CursedRingEquipAction: | |
| ld a, PlayerCursedMessage | |
| ld (NextMessage), a | |
| ld a, $00 | |
| ld (FlashColor), a | |
| jp _LABEL_45D3_ | |
| ; 42nd entry of Jump Table from 3E68 (indexed by unknown) | |
| HungerRingEquipAction: | |
| ld a, PlayerCursedMessage | |
| ld (NextMessage), a | |
| ld a, $00 | |
| ld (FlashColor), a | |
| jp _LABEL_45D3_ | |
| ; 43rd entry of Jump Table from 3E68 (indexed by unknown) | |
| ToyRingEquipAction: | |
| ld a, $3B | |
| ld (NextMessage), a | |
| ld a, (PaletteInRAM) | |
| ld (FlashColor), a | |
| jp _LABEL_45D3_ | |
| ; 44th entry of Jump Table from 3E68 (indexed by unknown) | |
| CursedSwordAction: | |
| ld a, $00 | |
| ld (FlashColor), a | |
| ld a, SwordCursedMessage_Mirror | |
| ld (NextMessage), a | |
| jp _LABEL_3EE5_ | |
| ; 46th entry of Jump Table from 3E68 (indexed by unknown) | |
| CursedArmorAction: | |
| ld a, $00 | |
| ld (FlashColor), a | |
| ld a, ArmorCursedMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3EE5_ | |
| ; 47th entry of Jump Table from 3E68 (indexed by unknown) | |
| PowerPotionAction: | |
| ld a, (BasePW) | |
| inc a | |
| cp $3C | |
| jr c, _LABEL_46A2_ | |
| ld a, $3B | |
| _LABEL_46A2_: | |
| ld (BasePW), a | |
| ld a, PlayerStrengthUpMessage2 | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 48th entry of Jump Table from 3E68 (indexed by unknown) | |
| ReflexPotionAction: | |
| ld a, (BaseAC) | |
| inc a | |
| cp $32 | |
| jr c, _LABEL_46B7_ | |
| ld a, $31 | |
| _LABEL_46B7_: | |
| ld (BaseAC), a | |
| ld a, PlayerDefenseUpMessage2 | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 49th entry of Jump Table from 3E68 (indexed by unknown) | |
| PotionScrollAction: | |
| ld a, ($C920) | |
| or a | |
| jp z, NothingHappenedAction | |
| ld hl, $C920 | |
| ld b, $08 | |
| ChangeNextPotion: | |
| ld a, (hl) | |
| or a | |
| jr z, NoMorePotions | |
| ld (hl), MidhealPotion | |
| inc hl | |
| djnz ChangeNextPotion | |
| NoMorePotions: | |
| ld a, PotionTransformedMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 50th entry of Jump Table from 3E68 (indexed by unknown) | |
| SpiritRodAction: | |
| call _LABEL_1F3A_ | |
| jp c, NothingHappenedAction | |
| ld (CurrentMonster), hl | |
| push hl | |
| pop iy | |
| ld a, (ix+4) | |
| ld hl, Data_4744 | |
| _LABEL_46F1_: | |
| rrca | |
| jr c, _LABEL_46F8_ | |
| inc hl | |
| inc hl | |
| jr _LABEL_46F1_ | |
| _LABEL_46F8_: | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| add hl, de | |
| call _LABEL_2091_ | |
| jp c, NothingHappenedAction | |
| ld (iy+5), l | |
| ld (iy+6), h | |
| ld a, (PaletteInRAM) | |
| ld (SavedColor), a | |
| ld a, $3F | |
| ld (FlashColor), a | |
| ld (ix+24), $1E | |
| ld hl, CompleteSpiritRodAction | |
| jp SetVBlankContinuation | |
| CompleteSpiritRodAction: | |
| call _LABEL_3F2B_ | |
| ret nc | |
| xor a | |
| ld (CurrentItem), a | |
| call _LABEL_4888_ | |
| call DoJumpTable4 | |
| ld hl, (CurrentMonster) | |
| ld (hl), e | |
| inc hl | |
| ld (hl), d | |
| ld de, $001E | |
| add hl, de | |
| ld (hl), a | |
| ld a, MonsterSummonedMessage | |
| ld (CurrentMessage), a | |
| jp _LABEL_3F1A_ | |
| ; Data from 4744 to 474B (8 bytes) | |
| Data_4744: | |
| .db $E0 $FF $20 $00 $FF $FF $01 $00 | |
| ; 51st entry of Jump Table from 3E68 (indexed by unknown) | |
| WaterPotionAction: | |
| ld a, WaterPotionMessage | |
| ld (NextMessage), a | |
| xor a | |
| ld (CurrentItem), a | |
| jp _LABEL_3EDF_ | |
| ; 52nd entry of Jump Table from 3E68 (indexed by unknown) | |
| DazePotionAction: | |
| ld a, (DizzinessTicksLeft) | |
| or a | |
| jr z, NotDizzyYet2 | |
| ld a, NoEffectMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3EDF_ | |
| NotDizzyYet2: | |
| call GetRandomNumber | |
| and RangeDizzinessTicks | |
| add a, MinimumDizzinessTicks | |
| ld (DizzinessTicksLeft), a | |
| ld a, PlayerDizzinessMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3ED8_ | |
| ; 53rd entry of Jump Table from 3E68 (indexed by unknown) | |
| UnusedNothingItem: | |
| ld a, (PaletteInRAM) | |
| ld (FlashColor), a | |
| ld a, NothingHappenedMessage | |
| ld (NextMessage), a | |
| jp _LABEL_3EE5_ | |
| SetVBlankContinuation: | |
| ld (ix+0), l | |
| ld (ix+1), h | |
| ret | |
| _LABEL_478D_: | |
| ld a, (ix+21) | |
| or a | |
| jr z, _LABEL_4797_ | |
| dec (ix+21) | |
| ret | |
| _LABEL_4797_: | |
| ld l, (ix+22) | |
| ld h, (ix+23) | |
| ld a, (hl) | |
| ld (ix+21), a | |
| inc hl | |
| ld c, (hl) | |
| inc hl | |
| ld a, (ix+20) | |
| cp c | |
| jr c, _LABEL_47AB_ | |
| xor a | |
| _LABEL_47AB_: | |
| ld e, a | |
| ld d, $00 | |
| add hl, de | |
| inc a | |
| ld (ix+20), a | |
| ld a, (hl) | |
| ld (ix+3), a | |
| ret | |
| _LABEL_47B8_: | |
| call _LABEL_478D_ | |
| _LABEL_47BB_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_47CB_ | |
| rrca | |
| jr c, _LABEL_47E0_ | |
| rrca | |
| jr c, _LABEL_47F3_ | |
| rrca | |
| jr c, _LABEL_4808_ | |
| ret | |
| _LABEL_47CB_: | |
| ld l, (ix+10) | |
| ld h, (ix+11) | |
| ld e, (ix+19) | |
| ld d, $00 | |
| xor a | |
| sbc hl, de | |
| ld (ix+10), l | |
| ld (ix+11), h | |
| ret | |
| _LABEL_47E0_: | |
| ld l, (ix+10) | |
| ld h, (ix+11) | |
| ld e, (ix+19) | |
| ld d, $00 | |
| add hl, de | |
| ld (ix+10), l | |
| ld (ix+11), h | |
| ret | |
| _LABEL_47F3_: | |
| ld l, (ix+13) | |
| ld h, (ix+14) | |
| ld e, (ix+19) | |
| ld d, $00 | |
| xor a | |
| sbc hl, de | |
| ld (ix+13), l | |
| ld (ix+14), h | |
| ret | |
| _LABEL_4808_: | |
| ld l, (ix+13) | |
| ld h, (ix+14) | |
| ld e, (ix+19) | |
| ld d, $00 | |
| add hl, de | |
| ld (ix+13), l | |
| ld (ix+14), h | |
| ret | |
| _LABEL_481B_: | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| ld de, $2D00 | |
| add hl, de | |
| ex de, hl | |
| ld h, d | |
| ld a, e | |
| and $E0 | |
| srl h | |
| rra | |
| set 3, a | |
| ld (ix+10), a | |
| ld (ix+11), h | |
| ld a, e | |
| and $1F | |
| ld l, a | |
| ld h, $00 | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| set 3, l | |
| ld (ix+13), l | |
| ld (ix+14), h | |
| ret | |
| _LABEL_4848_: | |
| ld d, a | |
| rrca | |
| rrca | |
| and $3F | |
| jr nz, _LABEL_4851_ | |
| ld a, $01 | |
| _LABEL_4851_: | |
| ld e, a | |
| call GetRandomNumber | |
| ld b, a | |
| and $3F | |
| jr z, _LABEL_4863_ | |
| _LABEL_485A_: | |
| cp e | |
| jr z, _LABEL_4863_ | |
| jr c, _LABEL_4863_ | |
| srl a | |
| jr _LABEL_485A_ | |
| _LABEL_4863_: | |
| bit 7, b | |
| jr z, _LABEL_4869_ | |
| neg | |
| _LABEL_4869_: | |
| add a, d | |
| ret nz | |
| ld a, $01 | |
| ret | |
| _LABEL_486E_: | |
| ld c, l | |
| ld b, h | |
| ld hl, (CurrentMonster) | |
| ld de, $001A | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ex de, hl | |
| xor a | |
| sbc hl, bc | |
| jr nc, _LABEL_4883_ | |
| ld hl, $0000 | |
| _LABEL_4883_: | |
| ex de, hl | |
| ld (hl), d | |
| dec hl | |
| ld (hl), e | |
| ret | |
| _LABEL_4888_: | |
| ld hl, Data_3240 | |
| ld a, (ix+4) | |
| or a | |
| jr z, _LABEL_4897_ | |
| _LABEL_4891_: | |
| rrca | |
| jr c, _LABEL_4897_ | |
| inc hl | |
| jr _LABEL_4891_ | |
| _LABEL_4897_: | |
| ld a, (hl) | |
| ld (ix+3), a | |
| ret | |
| _LABEL_489C_: | |
| ld a, (ix+4) | |
| ld hl, Data_48E8 | |
| _LABEL_48A2_: | |
| rrca | |
| jr c, _LABEL_48A9_ | |
| inc hl | |
| inc hl | |
| jr _LABEL_48A2_ | |
| _LABEL_48A9_: | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| _LABEL_48B2_: | |
| push bc | |
| ld iy, $C140 | |
| ld b, $16 | |
| _LABEL_48B9_: | |
| push bc | |
| ld a, (iy+5) | |
| cp l | |
| jr nz, _LABEL_48CA_ | |
| ld a, (iy+6) | |
| cp h | |
| jr nz, _LABEL_48CA_ | |
| pop bc | |
| pop bc | |
| xor a | |
| ret | |
| _LABEL_48CA_: | |
| ld bc, $0020 | |
| add iy, bc | |
| pop bc | |
| djnz _LABEL_48B9_ | |
| add hl, de | |
| ld a, (hl) | |
| cp $0C | |
| jr nc, _LABEL_48E0_ | |
| cp $06 | |
| jr nc, _LABEL_48E5_ | |
| cp $02 | |
| jr c, _LABEL_48E5_ | |
| _LABEL_48E0_: | |
| pop bc | |
| djnz _LABEL_48B2_ | |
| scf | |
| ret | |
| _LABEL_48E5_: | |
| pop bc | |
| scf | |
| ret | |
| ; Data from 48E8 to 48EF (8 bytes) | |
| Data_48E8: | |
| .db $E0 $FF $20 $00 $FF $FF $01 $00 | |
| EquipWeaponAndArmor: | |
| call EquipWeapon | |
| call EquipArmor | |
| ret | |
| EquipWeapon: | |
| ld a, (EquippedWeapon) ; Get weapon to be equipped | |
| and $0F ; Mask off type of item type to get just the weapon number | |
| add a, a ; Double number to get statistic table offset | |
| ld e, a ; Put table offset into de | |
| ld d, $00 | |
| ld hl, WeaponStatistics ; Put statistics table address into hl | |
| add hl, de ; Add offset | |
| ld de, WeaponHit ; Destination is weapon hit | |
| ldi ; Load weapon hit value | |
| ldi ; Increment and load PW value | |
| ld a, (EquippedWeapon) ; If weapon is cursed, no PW value? | |
| bit 7, a | |
| ret z | |
| xor a | |
| ld (WeaponPW), a | |
| ret | |
| EquipArmor: | |
| ld a, (EquippedArmor) ; Get armor to be equipped | |
| and $0F ; Mask off type of item type to get just the armor number | |
| add a, a ; Double number to get statistic table offset | |
| ld e, a ; Put table offset into de | |
| ld d, $00 | |
| ld hl, ArmorStatistics ; Put statistics table address into hl | |
| add hl, de ; Add offset | |
| ld de, ArmorEvd ; Destination is armor evade | |
| ldi ; Load evasion value | |
| ldi ; Increment and load AC value | |
| ld a, (EquippedArmor) ; If armor is cursed, no AC value? | |
| bit 7, a | |
| ret z | |
| xor a | |
| ld (ArmorAC), a | |
| ret | |
| ; Hit, then PW | |
| WeaponStatistics: | |
| .include "items\behavior\weapon_statistics.asm" | |
| ; Evd, then AC | |
| ArmorStatistics: | |
| .include "items\behavior\armor_statistics.asm" | |
| _LABEL_496B_: | |
| ld a, (CharacterLevel) | |
| ld d, a | |
| ld a, (Floor) | |
| add a, d | |
| inc a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, (MaxHPLow) | |
| xor a | |
| sbc hl, de | |
| ld (MaxHPLow), hl | |
| ex de, hl | |
| ld hl, (CurrentHPLow) | |
| xor a | |
| sbc hl, de | |
| jr c, _LABEL_498D_ | |
| ld (CurrentHPLow), de | |
| _LABEL_498D_: | |
| ld a, (CharacterLevel) | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, ExperienceNeededTable+1 | |
| add hl, de | |
| ld de, NextLevelHigh | |
| ldd | |
| ldd | |
| ld de, ExperienceHigh | |
| ldd | |
| ldd | |
| ret | |
| _LABEL_49A7_: | |
| ld (ix+24), $00 | |
| ld (ix+0), $B4 | |
| ld (ix+1), $49 | |
| ret | |
| _LABEL_49B4_: | |
| ld a, (LastControllerState) | |
| bit 4, a | |
| jr nz, _LABEL_49D0_ | |
| bit 5, a | |
| ret z | |
| ld a, SoundEffect9B | |
| ld (SFXQueue), a | |
| ld (ix+24), $01 | |
| ld (ix+0), $E0 | |
| ld (ix+1), $49 | |
| ret | |
| _LABEL_49D0_: | |
| ld a, SoundEffect9B | |
| ld (SFXQueue), a | |
| call _LABEL_42C_ | |
| ld a, $09 | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| _LABEL_49E0_: | |
| ld a, (LastControllerState) | |
| and $30 | |
| ret z | |
| bit 4, a | |
| jr z, _LABEL_49FC_ | |
| ld a, SoundEffect9B | |
| ld (SFXQueue), a | |
| ld (ix+24), $00 | |
| ld (ix+0), $B4 | |
| ld (ix+1), $49 | |
| ret | |
| _LABEL_49FC_: | |
| ld a, (TableIndex8) | |
| add a, a | |
| add a, a | |
| add a, a | |
| ld e, a | |
| ld a, ($C458) | |
| add a, e | |
| ld e, a | |
| ld d, $00 | |
| ld hl, EquippedWeapon | |
| add hl, de | |
| ld a, (hl) | |
| or a | |
| jr z, _LABEL_4A30_ | |
| ld a, (TableIndex8) | |
| cp $05 | |
| jr nc, _LABEL_4A36_ | |
| cp $02 | |
| jp c, _LABEL_4AAD_ | |
| _LABEL_4A1E_: | |
| ld a, SoundEffect9B | |
| ld (SFXQueue), a | |
| ld (ix+24), $02 | |
| ld (ix+0), $BC | |
| ld (ix+1), $4A | |
| ret | |
| _LABEL_4A30_: | |
| ld a, SoundEffectA8 | |
| ld (SFXQueue), a | |
| ret | |
| _LABEL_4A36_: | |
| ld a, ($C930) | |
| or a | |
| jr z, _LABEL_4A1E_ | |
| ld a, ($C458) | |
| or a | |
| jr nz, _LABEL_4A1E_ | |
| ld a, (EquippedRing) | |
| and IgnoreCurseMask | |
| cp CursedRing | |
| jr c, _LABEL_4A6F_ | |
| cp ToyRing | |
| jr z, _LABEL_4A6F_ | |
| _LABEL_4A4F_: | |
| ld a, (TableIndex8) | |
| cp $02 | |
| jr c, _LABEL_4A58_ | |
| ld a, $02 | |
| _LABEL_4A58_: | |
| add a, $4C ; ? | |
| ld (CurrentMessage), a | |
| ld a, SoundEffectA8 | |
| ld (SFXQueue), a | |
| ld (ix+24), $00 | |
| call _LABEL_42C_ | |
| ld a, $09 | |
| ld (TableIndex1), a | |
| ret | |
| _LABEL_4A6F_: | |
| ld a, (EquippedRing) | |
| cp ShieldRing | |
| call z, _LABEL_4A97_ | |
| cp OgreRing | |
| call z, _LABEL_4AA2_ | |
| call _LABEL_4F51_ | |
| ld a, SoundEffect9B | |
| ld (SFXQueue), a | |
| xor a | |
| ld ($C930), a | |
| ld (ix+24), $00 | |
| ld (ix+0), $B4 | |
| ld (ix+1), $49 | |
| jp CallJumpTable8 | |
| _LABEL_4A97_: | |
| ld hl, BaseAC | |
| dec (hl) | |
| dec (hl) | |
| dec (hl) | |
| dec (hl) | |
| ret p | |
| ld (hl), $00 | |
| ret | |
| _LABEL_4AA2_: | |
| ld hl, BasePW | |
| dec (hl) | |
| dec (hl) | |
| dec (hl) | |
| dec (hl) | |
| ret p | |
| ld (hl), $00 | |
| ret | |
| _LABEL_4AAD_: | |
| ld a, SoundEffectA8 | |
| ld (SFXQueue), a | |
| ld a, ($C458) | |
| or a | |
| jp nz, _LABEL_4A1E_ | |
| jp _LABEL_4A30_ | |
| _LABEL_4ABC_: | |
| ld a, (LastControllerState) | |
| and $30 | |
| ret z | |
| bit 4, a | |
| jr z, _LABEL_4AD8_ | |
| ld a, SoundEffect9B | |
| ld (SFXQueue), a | |
| ld (ix+24), $01 | |
| ld (ix+0), $E0 | |
| ld (ix+1), $49 | |
| ret | |
| _LABEL_4AD8_: | |
| ld a, (TableIndex8) | |
| add a, a | |
| add a, a | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, EquippedWeapon | |
| add hl, de | |
| ld a, ($C478) | |
| dec a | |
| jp z, _LABEL_4C0C_ | |
| dec a | |
| jp z, _LABEL_4BB2_ | |
| ld a, (TableIndex8) | |
| cp $05 | |
| jr z, _LABEL_4B25_ | |
| cp $02 | |
| jr c, _LABEL_4B66_ | |
| ld a, ($C458) | |
| ld e, a | |
| ld d, $00 | |
| neg | |
| add a, $07 | |
| ld c, a | |
| ld b, d | |
| add hl, de | |
| ld a, (hl) | |
| ld (CurrentItem), a | |
| ld e, l | |
| ld d, h | |
| inc hl | |
| ld a, c | |
| or a | |
| jr z, _LABEL_4B15_ | |
| ldir | |
| _LABEL_4B15_: | |
| xor a | |
| ld (de), a | |
| ld hl, (CurrentItem) | |
| ld h, $00 | |
| ld de, $C915 | |
| add hl, de | |
| ld (hl), $00 | |
| jp _LABEL_49D0_ | |
| _LABEL_4B25_: | |
| ld a, ($C930) | |
| or a | |
| jr z, _LABEL_4B41_ | |
| ld a, (EquippedRing) | |
| cp ToyRing | |
| jr z, _LABEL_4B41_ | |
| cp CursedRing | |
| jp nc, _LABEL_4A4F_ | |
| cp ShieldRing | |
| call z, _LABEL_4A97_ | |
| cp OgreRing | |
| call z, _LABEL_4AA2_ | |
| _LABEL_4B41_: | |
| ld a, $01 | |
| ld ($C930), a | |
| ld de, EquippedRing | |
| ld hl, ($C458) | |
| ld h, $00 | |
| add hl, de | |
| ld a, (hl) | |
| ex af, af' | |
| ld a, (de) | |
| ld (hl), a | |
| ex af, af' | |
| ld (de), a | |
| ld (CurrentItem), a | |
| and $0F | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $C965 | |
| add hl, de | |
| ld (hl), $00 | |
| jp _LABEL_49D0_ | |
| _LABEL_4B66_: | |
| bit 7, (hl) | |
| jp nz, _LABEL_4A4F_ | |
| ex de, hl | |
| ld hl, ($C458) | |
| ld h, $00 | |
| add hl, de | |
| ld a, (hl) | |
| ex af, af' | |
| ld a, (de) | |
| ld (hl), a | |
| ex af, af' | |
| ld (de), a | |
| ld a, (de) | |
| and $7F | |
| cp $10 | |
| jr nc, _LABEL_4B8B_ | |
| call EquipWeapon | |
| ld a, (EquippedWeapon) | |
| bit 7, a | |
| jr nz, _LABEL_4B95_ | |
| jr _LABEL_4BA0_ | |
| _LABEL_4B8B_: | |
| call EquipArmor | |
| ld a, (EquippedArmor) | |
| bit 7, a | |
| jr z, _LABEL_4BA0_ | |
| _LABEL_4B95_: | |
| ld (CurrentItem), a | |
| call _LABEL_42C_ | |
| ld a, $09 | |
| ld (TableIndex1), a | |
| _LABEL_4BA0_: | |
| call _LABEL_4F51_ | |
| ld (ix+24), $00 | |
| ld (ix+0), $B4 | |
| ld (ix+1), $49 | |
| jp CallJumpTable8 | |
| _LABEL_4BB2_: | |
| ld de, ($C105) | |
| ld a, (de) | |
| cp $06 | |
| jr nc, _LABEL_4C0B_ | |
| cp $02 | |
| jr c, _LABEL_4C0B_ | |
| ld a, ($C458) | |
| ld e, a | |
| ld d, $00 | |
| neg | |
| add a, $07 | |
| ld c, a | |
| ld b, d | |
| add hl, de | |
| ld a, (hl) | |
| ld ($C933), a | |
| ld e, l | |
| ld d, h | |
| inc hl | |
| ld a, c | |
| or a | |
| jr z, _LABEL_4BD9_ | |
| ldir | |
| _LABEL_4BD9_: | |
| xor a | |
| ld (de), a | |
| ld hl, $C980 | |
| ld b, $00 | |
| _LABEL_4BE0_: | |
| ld a, (hl) | |
| or a | |
| jr z, _LABEL_4BE9_ | |
| inc hl | |
| inc hl | |
| inc b | |
| jr _LABEL_4BE0_ | |
| _LABEL_4BE9_: | |
| ld a, ($C933) | |
| ld (hl), a | |
| inc hl | |
| ld de, ($C105) | |
| ld a, (de) | |
| ld (hl), a | |
| ld a, $10 | |
| add a, b | |
| ld (de), a | |
| ld hl, $0400 | |
| add hl, de | |
| ld a, ($C933) | |
| and $70 | |
| rrca | |
| rrca | |
| rrca | |
| rrca | |
| add a, $10 | |
| ld (hl), a | |
| jp _LABEL_49D0_ | |
| _LABEL_4C0B_: | |
| ret | |
| _LABEL_4C0C_: | |
| ld a, ($C458) | |
| ld e, a | |
| ld d, $00 | |
| neg | |
| add a, $07 | |
| ld c, a | |
| ld b, d | |
| add hl, de | |
| ld a, (hl) | |
| and $7F | |
| ld ($C932), a | |
| ld e, l | |
| ld d, h | |
| inc hl | |
| ld a, c | |
| or a | |
| jr z, _LABEL_4C28_ | |
| ldir | |
| _LABEL_4C28_: | |
| xor a | |
| ld (de), a | |
| ld a, ($C932) | |
| sub $20 | |
| jp c, _LABEL_49D0_ | |
| ld e, a | |
| ld d, $00 | |
| ld hl, $C935 | |
| add hl, de | |
| ld (hl), $00 | |
| jp _LABEL_49D0_ | |
| _LABEL_4C3E_: | |
| ld (ix+2), $01 | |
| ld (ix+3), $16 | |
| ld (ix+15), $17 | |
| ld (ix+0), $54 | |
| ld (ix+1), $4C | |
| jr _LABEL_4C9E_ | |
| _LABEL_4C54_: | |
| inc (ix+21) | |
| ld a, (ix+21) | |
| cp $18 | |
| jr c, _LABEL_4C62_ | |
| xor a | |
| ld (ix+21), a | |
| _LABEL_4C62_: | |
| and $FC | |
| rrca | |
| rrca | |
| add a, $16 | |
| ld (ix+3), a | |
| ld a, ($C418) | |
| or a | |
| ret nz | |
| ld a, (LastControllerState) | |
| and $0C | |
| ret z | |
| xor a | |
| ld ($C458), a | |
| ld ($C478), a | |
| ld a, (LastControllerState) | |
| bit 2, a | |
| jr z, _LABEL_4C92_ | |
| ld a, (ix+24) | |
| dec a | |
| jp p, _LABEL_4C8D_ | |
| ld a, $05 | |
| _LABEL_4C8D_: | |
| ld (ix+24), a | |
| jr _LABEL_4C9E_ | |
| _LABEL_4C92_: | |
| ld a, (ix+24) | |
| inc a | |
| cp $06 | |
| jr c, _LABEL_4C9B_ | |
| xor a | |
| _LABEL_4C9B_: | |
| ld (ix+24), a | |
| _LABEL_4C9E_: | |
| ld a, (ix+24) | |
| add a, a | |
| add a, a | |
| add a, a | |
| add a, a | |
| add a, a | |
| add a, $28 | |
| ld (ix+17), a | |
| CallJumpTable8: | |
| ld a, (TableIndex8) | |
| ld hl, JumpTable8 | |
| jp CallJumpTable | |
| ; Jump Table from 4CB4 to 4CBF (6 entries, indexed by unknown) | |
| JumpTable8: | |
| .dw JumpTable8_4E43 JumpTable8_4E54 JumpTable8_4E65 JumpTable8_4E79 | |
| .dw JumpTable8_4E8D JumpTable8_4EA1 | |
| _LABEL_4CC0_: | |
| ld a, ($C418) | |
| cp $01 | |
| ret nz | |
| ld (ix+0), $D0 | |
| ld (ix+1), $4C | |
| jr _LABEL_4D2D_ | |
| _LABEL_4CD0_: | |
| ld a, ($C418) | |
| cp $01 | |
| jr z, _LABEL_4CEB_ | |
| or a | |
| jr nz, _LABEL_4CDF_ | |
| call _LABEL_4D45_ | |
| jr _LABEL_4CE2_ | |
| _LABEL_4CDF_: | |
| call _LABEL_4D2D_ | |
| _LABEL_4CE2_: | |
| ld (ix+0), $C0 | |
| ld (ix+1), $4C | |
| ret | |
| _LABEL_4CEB_: | |
| ld hl, $4D00 | |
| push hl | |
| inc (ix+21) | |
| ld a, (ix+21) | |
| and $03 | |
| ret nz | |
| bit 2, (ix+21) | |
| jr z, _LABEL_4D2D_ | |
| jr _LABEL_4D45_ | |
| _LABEL_4D00_: | |
| ld a, (LastControllerState) | |
| and $03 | |
| ret z | |
| xor a | |
| ld ($C478), a | |
| call _LABEL_4D45_ | |
| ld a, (LastControllerState) | |
| rrca | |
| jr nc, _LABEL_4D21_ | |
| ld a, (ix+24) | |
| sub $01 | |
| jr nc, _LABEL_4D1C_ | |
| ld a, $07 | |
| _LABEL_4D1C_: | |
| ld (ix+24), a | |
| jr _LABEL_4D2D_ | |
| _LABEL_4D21_: | |
| ld a, (ix+24) | |
| inc a | |
| cp $08 | |
| jr c, _LABEL_4D2A_ | |
| xor a | |
| _LABEL_4D2A_: | |
| ld (ix+24), a | |
| _LABEL_4D2D_: | |
| ld a, ($C458) | |
| ld l, $00 | |
| rrca | |
| rr l | |
| rrca | |
| rr l | |
| and $3F | |
| ld h, a | |
| ld de, $3A1E | |
| add hl, de | |
| ex de, hl | |
| ld b, $0F | |
| jp _LABEL_4DF9_ | |
| _LABEL_4D45_: | |
| ld a, ($C458) | |
| ld l, $00 | |
| rrca | |
| rr l | |
| rrca | |
| rr l | |
| and $3F | |
| ld h, a | |
| ld de, $3A1E | |
| add hl, de | |
| ex de, hl | |
| ld b, $0F | |
| jp _LABEL_4E0A_ | |
| _LABEL_4D5D_: | |
| ld a, ($C418) | |
| cp $02 | |
| ret nz | |
| ld a, (TableIndex8) | |
| inc a | |
| call _LABEL_4E1B_ | |
| ld (ix+0), $73 | |
| ld (ix+1), $4D | |
| ret | |
| _LABEL_4D73_: | |
| ld a, ($C418) | |
| cp $02 | |
| jr z, _LABEL_4D8A_ | |
| xor a | |
| call _LABEL_4E1B_ | |
| call _LABEL_4D45_ | |
| ld (ix+0), $5D | |
| ld (ix+1), $4D | |
| ret | |
| _LABEL_4D8A_: | |
| ld hl, $4D9F | |
| push hl | |
| inc (ix+21) | |
| ld a, (ix+21) | |
| and $03 | |
| ret nz | |
| bit 2, (ix+21) | |
| jr z, _LABEL_4DCB_ | |
| jr _LABEL_4DE2_ | |
| _LABEL_4D9F_: | |
| ld a, (LastControllerState) | |
| and $03 | |
| ret z | |
| call _LABEL_4DE2_ | |
| ld a, (LastControllerState) | |
| rrca | |
| jr nc, _LABEL_4DBC_ | |
| ld a, (ix+24) | |
| sub $01 | |
| jr nc, _LABEL_4DB7_ | |
| ld a, $02 | |
| _LABEL_4DB7_: | |
| ld (ix+24), a | |
| jr _LABEL_4DC8_ | |
| _LABEL_4DBC_: | |
| ld a, (ix+24) | |
| inc a | |
| cp $03 | |
| jr c, _LABEL_4DC5_ | |
| xor a | |
| _LABEL_4DC5_: | |
| ld (ix+24), a | |
| _LABEL_4DC8_: | |
| jp _LABEL_4DCB_ | |
| _LABEL_4DCB_: | |
| ld a, ($C478) | |
| ld l, $00 | |
| rrca | |
| rr l | |
| rrca | |
| rr l | |
| and $3F | |
| ld h, a | |
| ld de, $3A08 | |
| add hl, de | |
| ex de, hl | |
| ld b, $05 | |
| jr _LABEL_4DF9_ | |
| _LABEL_4DE2_: | |
| ld a, ($C478) | |
| ld l, $00 | |
| rrca | |
| rr l | |
| rrca | |
| rr l | |
| and $3F | |
| ld h, a | |
| ld de, $3A08 | |
| add hl, de | |
| ex de, hl | |
| ld b, $05 | |
| jr _LABEL_4E0A_ | |
| _LABEL_4DF9_: | |
| rst $08 ; Interrupt8 | |
| ex (sp), hl | |
| ex (sp), hl | |
| _LABEL_4DFC_: | |
| in a, (VDPData) | |
| nop | |
| ld a, $09 | |
| jr _LABEL_4E03_ | |
| _LABEL_4E03_: | |
| out (VDPData), a | |
| nop | |
| nop | |
| djnz _LABEL_4DFC_ | |
| ret | |
| _LABEL_4E0A_: | |
| rst $08 ; Interrupt8 | |
| ex (sp), hl | |
| ex (sp), hl | |
| _LABEL_4E0D_: | |
| in a, (VDPData) | |
| nop | |
| ld a, $01 | |
| jr _LABEL_4E14_ | |
| _LABEL_4E14_: | |
| out (VDPData), a | |
| nop | |
| nop | |
| djnz _LABEL_4E0D_ | |
| ret | |
| _LABEL_4E1B_: | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| ld hl, Data_4E35 | |
| add hl, de | |
| ld e, (hl) | |
| inc hl | |
| ld d, (hl) | |
| ld hl, $39C6 | |
| ex de, hl | |
| ld bc, $050E | |
| ld a, $03 | |
| ld ($FFFF), a | |
| jp VDPOut_661 | |
| ; Data from 4E35 to 4E42 (14 bytes) | |
| Data_4E35: | |
| .db $75 $A9 $BB $A9 $BB $A9 $01 $AA | |
| .db $01 $AA $01 $AA $BB $A9 | |
| ; 1st entry of Jump Table from 4CB4 (indexed by unknown) | |
| JumpTable8_4E43: | |
| ld de, $3A1E | |
| rst $08 ; Interrupt8 | |
| ld a, $7B | |
| out (VDPData), a | |
| ld hl, EquippedWeapon | |
| ld de, $A000 | |
| jp _LABEL_4EBD_ | |
| ; 2nd entry of Jump Table from 4CB4 (indexed by unknown) | |
| JumpTable8_4E54: | |
| ld de, $3A1E | |
| rst $08 ; Interrupt8 | |
| ld a, $7B | |
| out (VDPData), a | |
| ld hl, EquippedArmor | |
| ld de, $A020 | |
| jp _LABEL_4EBD_ | |
| ; 3rd entry of Jump Table from 4CB4 (indexed by unknown) | |
| JumpTable8_4E65: | |
| ld de, $3A1E | |
| rst $08 ; Interrupt8 | |
| ld a, $58 | |
| out (VDPData), a | |
| ld hl, $C910 | |
| ld de, $A040 | |
| ld bc, $C935 | |
| jp _LABEL_4EFE_ | |
| ; 4th entry of Jump Table from 4CB4 (indexed by unknown) | |
| JumpTable8_4E79: | |
| ld de, $3A1E | |
| rst $08 ; Interrupt8 | |
| ld a, $58 | |
| out (VDPData), a | |
| ld hl, $C918 | |
| ld de, $A080 | |
| ld bc, $C945 | |
| jp _LABEL_4EFE_ | |
| ; 5th entry of Jump Table from 4CB4 (indexed by unknown) | |
| JumpTable8_4E8D: | |
| ld de, $3A1E | |
| rst $08 ; Interrupt8 | |
| ld a, $58 | |
| out (VDPData), a | |
| ld hl, $C920 | |
| ld de, $A0C0 | |
| ld bc, $C955 | |
| jp _LABEL_4EFE_ | |
| ; 6th entry of Jump Table from 4CB4 (indexed by unknown) | |
| JumpTable8_4EA1: | |
| ld de, $3A1E | |
| rst $08 ; Interrupt8 | |
| ld a, ($C930) | |
| or a | |
| ld a, $7B | |
| jr nz, _LABEL_4EAF_ | |
| ld a, $58 | |
| _LABEL_4EAF_: | |
| out (VDPData), a | |
| ld hl, EquippedRing | |
| ld de, $A100 | |
| ld bc, $C965 | |
| jp _LABEL_4EFE_ | |
| _LABEL_4EBD_: | |
| ld a, $03 | |
| ld ($FFFF), a | |
| ld c, VDPData | |
| exx | |
| ld de, $3A20 | |
| ld b, $08 | |
| _LABEL_4ECA_: | |
| rst $08 ; Interrupt8 | |
| exx | |
| push hl | |
| push de | |
| ld a, (hl) | |
| or a | |
| jr nz, _LABEL_4ED7_ | |
| ld hl, $A140 | |
| jr _LABEL_4EE2_ | |
| _LABEL_4ED7_: | |
| and $0F | |
| add a, a | |
| ld l, a | |
| ld h, $00 | |
| add hl, de | |
| ld a, (hl) | |
| inc hl | |
| ld h, (hl) | |
| ld l, a | |
| _LABEL_4EE2_: | |
| inc hl | |
| ld bc, $0EBE | |
| ld a, $11 | |
| _LABEL_4EE8_: | |
| outi | |
| nop | |
| jr _LABEL_4EED_ | |
| _LABEL_4EED_: | |
| out (c), a | |
| nop | |
| jr nz, _LABEL_4EE8_ | |
| pop de | |
| pop hl | |
| inc hl | |
| exx | |
| ld hl, $0040 | |
| add hl, de | |
| ex de, hl | |
| djnz _LABEL_4ECA_ | |
| ret | |
| _LABEL_4EFE_: | |
| ld a, $03 | |
| ld ($FFFF), a | |
| exx | |
| ld de, $3A20 | |
| ld bc, $08BE | |
| _LABEL_4F0A_: | |
| rst $08 ; Interrupt8 | |
| exx | |
| push hl | |
| push de | |
| push bc | |
| ld a, (hl) | |
| or a | |
| jr nz, _LABEL_4F18_ | |
| ld hl, $A140 | |
| jr _LABEL_4F34_ | |
| _LABEL_4F18_: | |
| and $0F | |
| ld l, a | |
| ld h, $00 | |
| add hl, bc | |
| ex af, af' | |
| ld a, (hl) | |
| or a | |
| jr z, _LABEL_4F2A_ | |
| dec a | |
| ex af, af' | |
| ld hl, $0020 | |
| add hl, de | |
| ex de, hl | |
| _LABEL_4F2A_: | |
| ex af, af' | |
| add a, a | |
| ld l, a | |
| ld h, $00 | |
| add hl, de | |
| ld a, (hl) | |
| inc hl | |
| ld h, (hl) | |
| ld l, a | |
| _LABEL_4F34_: | |
| inc hl | |
| ld bc, $0EBE | |
| ld a, $11 | |
| _LABEL_4F3A_: | |
| outi | |
| nop | |
| jr _LABEL_4F3F_ | |
| _LABEL_4F3F_: | |
| out (c), a | |
| nop | |
| jr nz, _LABEL_4F3A_ | |
| pop bc | |
| pop de | |
| pop hl | |
| inc hl | |
| exx | |
| ld hl, $0040 | |
| add hl, de | |
| ex de, hl | |
| djnz _LABEL_4F0A_ | |
| ret | |
| _LABEL_4F51_: | |
| ld de, $3D66 | |
| rst $08 ; Interrupt8 | |
| ld a, (WeaponPW) | |
| ld hl, (BasePW) | |
| add a, l | |
| ld l, a | |
| ld h, $00 | |
| call _LABEL_2C98_ | |
| call _LABEL_4F76_ | |
| ld de, $3D74 | |
| rst $08 ; Interrupt8 | |
| ld a, (ArmorAC) | |
| ld hl, (BaseAC) | |
| add a, l | |
| ld l, a | |
| ld h, $00 | |
| call _LABEL_2C98_ | |
| _LABEL_4F76_: | |
| ld a, ($C0B2) | |
| or a | |
| jr z, _LABEL_4F80_ | |
| add a, $80 | |
| jr _LABEL_4F82_ | |
| _LABEL_4F80_: | |
| ld a, $58 | |
| _LABEL_4F82_: | |
| out (VDPData), a | |
| jr _LABEL_4F86_ | |
| _LABEL_4F86_: | |
| ld a, $01 | |
| out (VDPData), a | |
| ld a, ($C0B1) | |
| add a, $80 | |
| out (VDPData), a | |
| jr _LABEL_4F93_ | |
| _LABEL_4F93_: | |
| ld a, $01 | |
| out (VDPData), a | |
| ret | |
| _LABEL_4F98_: | |
| ld (ix+2), $01 | |
| ld (ix+15), $A0 | |
| ld (ix+17), $90 | |
| ld (ix+24), $00 | |
| ld (ix+0), $B1 | |
| ld (ix+1), $4F | |
| ret | |
| _LABEL_4FB1_: | |
| ld a, (LastControllerState) | |
| and $03 | |
| jr z, _LABEL_4FCD_ | |
| rrca | |
| jr nc, _LABEL_4FC5_ | |
| ld (ix+24), $00 | |
| ld (ix+15), $A0 | |
| jr _LABEL_4FCD_ | |
| _LABEL_4FC5_: | |
| ld (ix+24), $01 | |
| ld (ix+15), $B0 | |
| _LABEL_4FCD_: | |
| ld a, (LastControllerState) | |
| and $B0 | |
| ret z | |
| bit 0, (ix+24) | |
| jr z, _LABEL_4FE8_ | |
| xor a | |
| ld (ContinuesSpent), a | |
| call _LABEL_42C_ | |
| ld a, $00 | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| _LABEL_4FE8_: | |
| ld hl, ContinuesSpent | |
| inc (hl) | |
| ld hl, PreventArmorRust | |
| ld de, ParalysisTicksLeft | |
| ld (hl), $00 | |
| call LDI5 | |
| call _LABEL_101A_ | |
| ld hl, (MaxHPLow) | |
| ld (CurrentHPLow), hl | |
| ld a, $30 | |
| ld (Food), a | |
| call _LABEL_42C_ | |
| ld a, $08 | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| _LABEL_5010_: | |
| ld (ix+0), $19 | |
| ld (ix+1), $50 | |
| ret | |
| _LABEL_5019_: | |
| ld a, (LastControllerState) | |
| and $B0 | |
| jr nz, _LABEL_5021_ | |
| ret | |
| _LABEL_5021_: | |
| xor a | |
| ld (ContinuesSpent), a | |
| call _LABEL_42C_ | |
| ld a, $00 | |
| ld (TableIndex1), a | |
| jp _LABEL_137_ | |
| _LABEL_5030_: | |
| ld d, $1C | |
| ld a, (EquippedArmor) | |
| cp CuirassArmor ; $13 or less | |
| jr c, _LABEL_503F_ | |
| inc d | |
| cp PlateArmor ; $16 or less | |
| jr c, _LABEL_503F_ | |
| inc d | |
| _LABEL_503F_: | |
| ld (ix+3), d | |
| ld (ix+2), $01 | |
| ld (ix+15), $34 | |
| ld (ix+17), $48 | |
| ld (ix+24), $00 | |
| ld (ix+0), $5B | |
| ld (ix+1), $50 | |
| ret | |
| _LABEL_505B_: | |
| ret | |
| _LABEL_505C_: | |
| ld (ix+2), $01 | |
| ld (ix+3), $C3 | |
| ld (ix+26), $00 | |
| ld (ix+15), $80 | |
| ld (ix+17), $80 | |
| ld (ix+24), $20 | |
| ld (ix+0), $7D | |
| ld (ix+1), $50 | |
| ret | |
| _LABEL_507D_: | |
| dec (ix+24) | |
| ret nz | |
| ld hl, PaletteInRAM | |
| ld ($C0A4), hl | |
| ld a, $08 | |
| ld ($C0A3), a | |
| call _LABEL_4A9_ | |
| ld (ix+24), $30 | |
| ld (ix+0), $9C | |
| ld (ix+1), $50 | |
| ret | |
| _LABEL_509C_: | |
| dec (ix+24) | |
| ret nz | |
| ld (ix+24), $10 | |
| ld (ix+3), $C4 | |
| ld (ix+0), $B1 | |
| ld (ix+1), $50 | |
| ret | |
| _LABEL_50B1_: | |
| dec (ix+24) | |
| ret nz | |
| ld (ix+28), $00 | |
| ld (ix+29), $FA | |
| ld (ix+0), $C6 | |
| ld (ix+1), $50 | |
| ret | |
| _LABEL_50C6_: | |
| inc (ix+17) | |
| inc (ix+17) | |
| ld l, (ix+26) | |
| ld h, (ix+15) | |
| ld e, (ix+28) | |
| ld d, (ix+29) | |
| add hl, de | |
| ld a, h | |
| cp $A0 | |
| jr nc, _LABEL_50EF_ | |
| ld (ix+26), l | |
| ld (ix+15), h | |
| ld hl, $0074 | |
| add hl, de | |
| ld (ix+28), l | |
| ld (ix+29), h | |
| ret | |
| _LABEL_50EF_: | |
| ld hl, $5176 | |
| ld ($C120), hl | |
| ld (ix+3), $00 | |
| ld (ix+15), $A1 | |
| ld (ix+17), $B8 | |
| ld (ix+21), $20 | |
| ld (ix+22), $16 | |
| ld (ix+23), $51 | |
| ld (ix+0), $1E | |
| ld (ix+1), $51 | |
| ret | |
| ; Data from 5116 to 511D (8 bytes) - Unused? | |
| Data_5116: | |
| .db $C5 $C6 $C7 $C8 $C7 $C6 $C5 $00 | |
| _LABEL_511E_: | |
| ld a, (ix+21) | |
| or a | |
| jr z, _LABEL_5129_ | |
| dec a | |
| ld (ix+21), a | |
| ret | |
| _LABEL_5129_: | |
| ld a, $02 | |
| ld (ix+21), a | |
| ld l, (ix+22) | |
| ld h, (ix+23) | |
| ld a, (hl) | |
| ld (ix+3), a | |
| inc hl | |
| ld (ix+22), l | |
| ld (ix+23), h | |
| inc (ix+24) | |
| ld a, (ix+24) | |
| cp $02 | |
| jr z, _LABEL_5159_ | |
| cp $08 | |
| ret c | |
| ld (ix+2), $00 | |
| ld (ix+0), $67 | |
| ld (ix+1), $51 | |
| ret | |
| _LABEL_5159_: | |
| ld hl, $C030 | |
| ld ($C0A4), hl | |
| ld a, $08 | |
| ld ($C0A3), a | |
| jp _LABEL_4A9_ | |
| _LABEL_5167_: | |
| ld a, $16 | |
| ld (TableIndex1), a | |
| ld hl, $310F | |
| ld ($C100), hl | |
| ld ($C120), hl | |
| ret | |
| _LABEL_5176_: | |
| ld (ix+2), $01 | |
| ld (ix+3), $C4 | |
| ld (ix+15), $A0 | |
| ld (ix+17), $C0 | |
| ld (ix+24), $08 | |
| ld (ix+0), $93 | |
| ld (ix+1), $51 | |
| ret | |
| _LABEL_5193_: | |
| dec (ix+24) | |
| ret nz | |
| ld (ix+3), $C3 | |
| ld (ix+0), $A4 | |
| ld (ix+1), $51 | |
| ret | |
| _LABEL_51A4_: | |
| ret | |
| _LABEL_51A5_: | |
| ld a, (EquippedArmor) | |
| cp MysticSuitArmor | |
| jr z, _LABEL_51B5_ | |
| ld a, (ix+28) | |
| and $08 | |
| jr nz, _LABEL_51B5_ | |
| xor a | |
| ret | |
| _LABEL_51B5_: | |
| scf | |
| ret | |
| RustArmor: | |
| ld a, (EquippedArmor) | |
| cp $11 ; Leathersuit won't rust | |
| jr z, ArmorDidntRust | |
| cp $12 ; Lamellar won't rust | |
| jr z, ArmorDidntRust | |
| cp $19 ; Mystic Suit won't rust | |
| jr z, ArmorDidntRust | |
| ld a, (EquippedRing) | |
| cp ShieldRing ; Shield ring prevents rusting | |
| jr z, ArmorDidntRust | |
| ld a, (ix+28) | |
| and $08 | |
| jr nz, ArmorDidntRust | |
| ld a, (PreventArmorRust) ; No rust effect (set by Norust scroll) prevents rusting | |
| or a | |
| jr nz, ArmorDidntRust | |
| xor a | |
| ret | |
| ArmorDidntRust: | |
| scf | |
| ret | |
| _LABEL_51DE_: | |
| ld (ix+4), $00 | |
| call _LABEL_5263_ | |
| push hl | |
| call _LABEL_5280_ | |
| pop hl | |
| or a | |
| sbc hl, bc | |
| jr z, _LABEL_5221_ | |
| jr c, _LABEL_5209_ | |
| ld hl, ($C10A) | |
| ld c, (ix+10) | |
| ld b, (ix+11) | |
| or a | |
| sbc hl, bc | |
| jr c, _LABEL_5204_ | |
| ld (ix+4), $02 | |
| ret | |
| _LABEL_5204_: | |
| ld (ix+4), $01 | |
| ret | |
| _LABEL_5209_: | |
| ld hl, ($C10D) | |
| ld c, (ix+13) | |
| ld b, (ix+14) | |
| or a | |
| sbc hl, bc | |
| jr c, _LABEL_521C_ | |
| ld (ix+4), $08 | |
| ret | |
| _LABEL_521C_: | |
| ld (ix+4), $04 | |
| ret | |
| _LABEL_5221_: | |
| ld hl, ($C10A) | |
| ld c, (ix+10) | |
| ld b, (ix+11) | |
| or a | |
| sbc hl, bc | |
| jr z, _LABEL_5243_ | |
| jr c, _LABEL_523B_ | |
| ld a, (ix+4) | |
| or $02 | |
| ld (ix+4), a | |
| jr _LABEL_5243_ | |
| _LABEL_523B_: | |
| ld a, (ix+4) | |
| or $01 | |
| ld (ix+4), a | |
| _LABEL_5243_: | |
| ld hl, ($C10D) | |
| ld c, (ix+13) | |
| ld b, (ix+14) | |
| or a | |
| sbc hl, bc | |
| jr c, _LABEL_525A_ | |
| ld a, (ix+4) | |
| or $08 | |
| ld (ix+4), a | |
| ret | |
| _LABEL_525A_: | |
| ld a, (ix+4) | |
| or $04 | |
| ld (ix+4), a | |
| ret | |
| _LABEL_5263_: | |
| ld hl, ($C10A) | |
| ld e, (ix+10) | |
| ld d, (ix+11) | |
| or a | |
| sbc hl, de | |
| jr c, _LABEL_5272_ | |
| ret | |
| _LABEL_5272_: | |
| ld l, (ix+10) | |
| ld h, (ix+11) | |
| ld de, ($C10A) | |
| or a | |
| sbc hl, de | |
| ret | |
| _LABEL_5280_: | |
| ld hl, ($C10D) | |
| ld e, (ix+13) | |
| ld d, (ix+14) | |
| or a | |
| sbc hl, de | |
| jr c, _LABEL_5291_ | |
| ld c, l | |
| ld b, h | |
| ret | |
| _LABEL_5291_: | |
| ld l, (ix+13) | |
| ld h, (ix+14) | |
| ld de, ($C10D) | |
| or a | |
| sbc hl, de | |
| ld c, l | |
| ld b, h | |
| ret | |
| _LABEL_52A1_: | |
| call GetRandomNumber | |
| cp $40 | |
| jr c, _LABEL_52B2_ | |
| cp $80 | |
| jr c, _LABEL_52B7_ | |
| cp $C0 | |
| jr c, _LABEL_52BC_ | |
| jr _LABEL_52C1_ | |
| _LABEL_52B2_: | |
| ld (ix+4), $01 | |
| ret | |
| _LABEL_52B7_: | |
| ld (ix+4), $02 | |
| ret | |
| _LABEL_52BC_: | |
| ld (ix+4), $04 | |
| ret | |
| _LABEL_52C1_: | |
| ld (ix+4), $08 | |
| ret | |
| _LABEL_52C6_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_52D4_ | |
| rrca | |
| jr c, _LABEL_52DF_ | |
| rrca | |
| jr c, _LABEL_52EA_ | |
| jr _LABEL_52F5_ | |
| _LABEL_52D4_: | |
| ld a, ($C10A) | |
| ld b, (ix+10) | |
| cp b | |
| jr nc, _LABEL_5300_ | |
| xor a | |
| ret | |
| _LABEL_52DF_: | |
| ld a, ($C10A) | |
| ld b, (ix+10) | |
| cp b | |
| jr c, _LABEL_5300_ | |
| xor a | |
| ret | |
| _LABEL_52EA_: | |
| ld a, ($C10D) | |
| ld b, (ix+13) | |
| cp b | |
| jr nc, _LABEL_5300_ | |
| xor a | |
| ret | |
| _LABEL_52F5_: | |
| ld a, ($C10D) | |
| ld b, (ix+13) | |
| cp b | |
| jr c, _LABEL_5300_ | |
| xor a | |
| ret | |
| _LABEL_5300_: | |
| scf | |
| ret | |
| _LABEL_5302_: | |
| ld a, (ArmorEvd) | |
| ld b, a | |
| ld a, $80 | |
| sub b | |
| push af | |
| call GetRandomNumber | |
| and $7F | |
| ld b, a | |
| pop af | |
| cp b | |
| jr c, _LABEL_5360_ | |
| ld a, (ix+31) | |
| ld l, a | |
| ld h, $00 | |
| ld de, Data_536D | |
| add hl, de | |
| ld a, (ArmorAC) | |
| ld b, a | |
| ld a, (hl) | |
| sub b | |
| jr c, _LABEL_5334_ | |
| cp $02 | |
| jr c, _LABEL_5334_ | |
| cp $CC | |
| call nc, _LABEL_536A_ | |
| call _LABEL_4848_ | |
| jr _LABEL_5336_ | |
| _LABEL_5334_: | |
| ld a, $01 | |
| _LABEL_5336_: | |
| push af | |
| ld c, a | |
| ld b, $00 | |
| ld hl, (CurrentHPLow) | |
| or a | |
| sbc hl, bc | |
| call c, _LABEL_5356_ | |
| call z, _LABEL_5356_ | |
| ld (CurrentHPLow), hl | |
| pop af | |
| ld l, a | |
| ld h, $00 | |
| ld ($CAC6), hl | |
| ld a, PlayerDamagedMessage1 | |
| ld (CurrentMessage), a | |
| ret | |
| _LABEL_5356_: | |
| ld a, (ix+31) | |
| ld ($C63F), a | |
| ld hl, $0000 | |
| ret | |
| _LABEL_5360_: | |
| ld a, PlayerDodgedMessage | |
| ld (CurrentMessage), a | |
| ld (ix+29), $01 | |
| ret | |
| _LABEL_536A_: | |
| ld a, $CC | |
| ret | |
| ; Data from 536D to 538D (33 bytes) | |
| Data_536D: | |
| .db $01 $02 $04 $06 $08 $0A $0E $14 | |
| .db $08 $12 $0E $35 $3C $1E $20 $1C | |
| .db $32 $23 $34 $46 $3C $30 $3C $AF | |
| .db $50 $46 $8C $6E $10 $78 $B4 $64 | |
| .db $82 | |
| _LABEL_538E_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_539C_ | |
| rrca | |
| jr c, _LABEL_53C0_ | |
| rrca | |
| jr c, _LABEL_53E2_ | |
| jr _LABEL_5401_ | |
| _LABEL_539C_: | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| _LABEL_53A2_: | |
| ld de, $0020 | |
| or a | |
| sbc hl, de | |
| ld a, (hl) | |
| and $7F | |
| jr z, _LABEL_53B2_ | |
| dec (ix+25) | |
| jr nz, _LABEL_53A2_ | |
| _LABEL_53B2_: | |
| ld e, (ix+5) | |
| ld d, (ix+6) | |
| or a | |
| sbc hl, de | |
| ld (ix+25), $01 | |
| ret | |
| _LABEL_53C0_: | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| _LABEL_53C6_: | |
| ld de, $0020 | |
| add hl, de | |
| ld a, (hl) | |
| and $7F | |
| jr z, _LABEL_53D4_ | |
| dec (ix+25) | |
| jr nz, _LABEL_53C6_ | |
| _LABEL_53D4_: | |
| ld e, (ix+5) | |
| ld d, (ix+6) | |
| or a | |
| sbc hl, de | |
| ld (ix+25), $01 | |
| ret | |
| _LABEL_53E2_: | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| _LABEL_53E8_: | |
| dec hl | |
| ld a, (hl) | |
| and $7F | |
| jr z, _LABEL_53F3_ | |
| dec (ix+25) | |
| jr nz, _LABEL_53E8_ | |
| _LABEL_53F3_: | |
| ld e, (ix+5) | |
| ld d, (ix+6) | |
| or a | |
| sbc hl, de | |
| ld (ix+25), $01 | |
| ret | |
| _LABEL_5401_: | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| _LABEL_5407_: | |
| inc hl | |
| ld a, (hl) | |
| and $7F | |
| jr z, _LABEL_5412_ | |
| dec (ix+25) | |
| jr nz, _LABEL_5407_ | |
| _LABEL_5412_: | |
| ld e, (ix+5) | |
| ld d, (ix+6) | |
| or a | |
| sbc hl, de | |
| ld (ix+25), $01 | |
| ret | |
| _LABEL_5420_: | |
| ld e, (ix+5) | |
| ld d, (ix+6) | |
| add hl, de | |
| ld a, (hl) | |
| bit 7, a | |
| jr nz, _LABEL_5443_ | |
| ld (ix+2), $01 | |
| cp $02 | |
| jr c, _LABEL_5443_ | |
| cp $06 | |
| jr nc, _LABEL_543F_ | |
| _LABEL_5438_: | |
| call _LABEL_1F17_ | |
| jr c, _LABEL_5443_ | |
| xor a | |
| ret | |
| _LABEL_543F_: | |
| cp $0C | |
| jr nc, _LABEL_5438_ | |
| _LABEL_5443_: | |
| scf | |
| ret | |
| _LABEL_5445_: | |
| push hl | |
| ld e, (ix+5) | |
| ld d, (ix+6) | |
| add hl, de | |
| ld a, (hl) | |
| and $7F | |
| cp $05 | |
| jr z, _LABEL_5457_ | |
| pop hl | |
| xor a | |
| ret | |
| _LABEL_5457_: | |
| pop hl | |
| scf | |
| ret | |
| _LABEL_545A_: | |
| ld e, (ix+5) | |
| ld d, (ix+6) | |
| add hl, de | |
| ld a, (hl) | |
| cp $02 | |
| jr c, _LABEL_5471_ | |
| cp $06 | |
| jr nc, _LABEL_5471_ | |
| call _LABEL_1F17_ | |
| jr c, _LABEL_5471_ | |
| xor a | |
| ret | |
| _LABEL_5471_: | |
| scf | |
| ret | |
| _LABEL_5473_: | |
| ld de, ($C107) | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| inc hl | |
| or a | |
| sbc hl, de | |
| jr nz, _LABEL_5489_ | |
| ld (ix+4), $08 | |
| jr _LABEL_54C6_ | |
| _LABEL_5489_: | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| dec hl | |
| or a | |
| sbc hl, de | |
| jr nz, _LABEL_549B_ | |
| ld (ix+4), $04 | |
| jr _LABEL_54C6_ | |
| _LABEL_549B_: | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| ld bc, $0020 | |
| add hl, bc | |
| or a | |
| sbc hl, de | |
| jr nz, _LABEL_54B0_ | |
| ld (ix+4), $02 | |
| jr _LABEL_54C6_ | |
| _LABEL_54B0_: | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| or a | |
| sbc hl, bc | |
| or a | |
| sbc hl, de | |
| jr nz, _LABEL_54C4_ | |
| ld (ix+4), $01 | |
| jr _LABEL_54C6_ | |
| _LABEL_54C4_: | |
| xor a | |
| ret | |
| _LABEL_54C6_: | |
| scf | |
| ret | |
| _LABEL_54C8_: | |
| call _LABEL_54DF_ | |
| ret c | |
| ld (ix+4), a | |
| call _LABEL_1F3A_ | |
| jr c, _LABEL_54DD_ | |
| ex de, hl | |
| push ix | |
| pop hl | |
| call LDI32 | |
| xor a | |
| ret | |
| _LABEL_54DD_: | |
| scf | |
| ret | |
| _LABEL_54DF_: | |
| ld hl, $FFE0 | |
| call _LABEL_545A_ | |
| jr c, _LABEL_54EA_ | |
| ld a, $01 | |
| ret | |
| _LABEL_54EA_: | |
| ld hl, $0020 | |
| call _LABEL_545A_ | |
| jr c, _LABEL_54F5_ | |
| ld a, $02 | |
| ret | |
| _LABEL_54F5_: | |
| ld hl, $FFFF | |
| call _LABEL_545A_ | |
| jr c, _LABEL_5500_ | |
| ld a, $04 | |
| ret | |
| _LABEL_5500_: | |
| ld hl, $0001 | |
| call _LABEL_545A_ | |
| jr c, _LABEL_550B_ | |
| ld a, $08 | |
| ret | |
| _LABEL_550B_: | |
| scf | |
| ret | |
| _LABEL_550D_: | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| ld de, $2D00 | |
| add hl, de | |
| ex de, hl | |
| ld h, d | |
| ld a, e | |
| and $E0 | |
| srl h | |
| rra | |
| set 3, a | |
| ld (ix+10), a | |
| ld (ix+11), h | |
| ld a, e | |
| and $1F | |
| ld l, a | |
| ld h, $00 | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| add hl, hl | |
| set 3, l | |
| ld (ix+13), l | |
| ld (ix+14), h | |
| ret | |
| _LABEL_553A_: | |
| ld a, (ix+21) | |
| or a | |
| jr z, _LABEL_5544_ | |
| dec (ix+21) | |
| ret | |
| _LABEL_5544_: | |
| ld l, (ix+22) | |
| ld h, (ix+23) | |
| ld a, (ix+20) | |
| cp (hl) | |
| jr c, _LABEL_5554_ | |
| xor a | |
| ld (ix+20), a | |
| _LABEL_5554_: | |
| add a, a | |
| ld e, a | |
| ld d, $00 | |
| add hl, de | |
| inc hl | |
| ld a, (hl) | |
| ld (ix+21), a | |
| inc hl | |
| ld a, (hl) | |
| ld (ix+3), a | |
| inc (ix+20) | |
| ret | |
| _LABEL_5567_: | |
| xor a | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| bit 7, (hl) | |
| jr nz, _LABEL_5577_ | |
| ld (ix+2), $01 | |
| ret | |
| _LABEL_5577_: | |
| ld (ix+2), $00 | |
| scf | |
| ret | |
| _LABEL_557D_: | |
| ld a, ($C10A) | |
| ld b, (ix+10) | |
| cp b | |
| jr z, _LABEL_5591_ | |
| ld a, ($C10D) | |
| ld b, (ix+13) | |
| cp b | |
| jr z, _LABEL_55A8_ | |
| xor a | |
| ret | |
| _LABEL_5591_: | |
| ld a, ($C10D) | |
| ld b, (ix+13) | |
| sub b | |
| jr nc, _LABEL_55A2_ | |
| ld (ix+4), $04 | |
| neg | |
| scf | |
| ret | |
| _LABEL_55A2_: | |
| ld (ix+4), $08 | |
| scf | |
| ret | |
| _LABEL_55A8_: | |
| ld a, ($C10A) | |
| ld b, (ix+10) | |
| sub b | |
| jr nc, _LABEL_55B9_ | |
| ld (ix+4), $01 | |
| neg | |
| scf | |
| ret | |
| _LABEL_55B9_: | |
| ld (ix+4), $02 | |
| scf | |
| ret | |
| _LABEL_55BF_: | |
| and $F0 | |
| push af | |
| cp $50 | |
| jr nc, _LABEL_5640_ | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_55D4_ | |
| rrca | |
| jr c, _LABEL_55F2_ | |
| rrca | |
| jr c, _LABEL_560E_ | |
| jr _LABEL_5627_ | |
| _LABEL_55D4_: | |
| pop af | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| _LABEL_55DB_: | |
| push af | |
| ld de, $0020 | |
| or a | |
| sbc hl, de | |
| ld a, (hl) | |
| and $7F | |
| jr z, _LABEL_5640_ | |
| cp $06 | |
| jr z, _LABEL_5640_ | |
| pop af | |
| sub $10 | |
| jr nz, _LABEL_55DB_ | |
| xor a | |
| ret | |
| _LABEL_55F2_: | |
| pop af | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| _LABEL_55F9_: | |
| push af | |
| ld de, $0020 | |
| add hl, de | |
| ld a, (hl) | |
| and $7F | |
| jr z, _LABEL_5640_ | |
| cp $06 | |
| jr z, _LABEL_5640_ | |
| pop af | |
| sub $10 | |
| jr nz, _LABEL_55F9_ | |
| xor a | |
| ret | |
| _LABEL_560E_: | |
| pop af | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| _LABEL_5615_: | |
| push af | |
| dec hl | |
| ld a, (hl) | |
| and $7F | |
| jr z, _LABEL_5640_ | |
| cp $06 | |
| jr z, _LABEL_5640_ | |
| pop af | |
| sub $10 | |
| jr nz, _LABEL_5615_ | |
| xor a | |
| ret | |
| _LABEL_5627_: | |
| pop af | |
| ld l, (ix+5) | |
| ld h, (ix+6) | |
| _LABEL_562E_: | |
| push af | |
| inc hl | |
| ld a, (hl) | |
| and $7F | |
| jr z, _LABEL_5640_ | |
| cp $06 | |
| jr z, _LABEL_5640_ | |
| pop af | |
| sub $10 | |
| jr nz, _LABEL_562E_ | |
| xor a | |
| ret | |
| _LABEL_5640_: | |
| pop af | |
| scf | |
| ret | |
| _LABEL_5643_: | |
| ld a, ($C102) | |
| cp $01 | |
| jr z, _LABEL_5650_ | |
| ld a, $01 | |
| ld ($C102), a | |
| ret | |
| _LABEL_5650_: | |
| xor a | |
| ld ($C102), a | |
| ret | |
| _LABEL_5655_: | |
| ld a, $01 | |
| ld ($C102), a | |
| ld (ix+30), $00 | |
| ld (ix+24), $00 | |
| ld (ix+21), $00 | |
| ld (ix+20), $00 | |
| ld (ix+29), $00 | |
| ld a, (ix+7) | |
| ld (ix+5), a | |
| ld a, (ix+8) | |
| ld (ix+6), a | |
| ret | |
| _LABEL_567B_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_5689_ | |
| rrca | |
| jr c, _LABEL_5689_ | |
| rrca | |
| jr c, _LABEL_568A_ | |
| jr _LABEL_568B_ | |
| _LABEL_5689_: | |
| ret | |
| _LABEL_568A_: | |
| ret | |
| _LABEL_568B_: | |
| ret | |
| _LABEL_568C_: | |
| ld hl, ($C107) | |
| ld a, (hl) | |
| cp $04 | |
| jr z, _LABEL_569A_ | |
| cp $03 | |
| jr z, _LABEL_569A_ | |
| xor a | |
| ret | |
| _LABEL_569A_: | |
| scf | |
| ret | |
| _LABEL_569C_: | |
| ld a, (ix+5) | |
| ld (ix+7), a | |
| ld a, (ix+6) | |
| ld (ix+8), a | |
| ret | |
| _LABEL_56A9_: | |
| ld a, (ix+10) | |
| ld ($C3CA), a | |
| ld a, (ix+11) | |
| ld ($C3CB), a | |
| ld a, (ix+13) | |
| ld ($C3CD), a | |
| ld a, (ix+14) | |
| ld ($C3CE), a | |
| ld a, (ix+4) | |
| ld ($C3C4), a | |
| ret | |
| ; 1st entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_56C8: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $02 | |
| ld (ix+27), $00 | |
| call _LABEL_569C_ | |
| ld (ix+0), $EF | |
| ld (ix+1), $56 | |
| ld (ix+22), $25 | |
| ld (ix+23), $7B | |
| ret | |
| _LABEL_56EF_: | |
| call _LABEL_5567_ | |
| ret c | |
| call _LABEL_553A_ | |
| ld a, (ix+28) | |
| and $02 | |
| jp nz, _LABEL_481B_ | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_570C_ | |
| cp $09 | |
| jr z, _LABEL_570C_ | |
| jp _LABEL_481B_ | |
| _LABEL_570C_: | |
| inc (ix+25) | |
| ld a, (ix+25) | |
| cp $02 | |
| jr nz, _LABEL_572A_ | |
| ld (ix+25), $00 | |
| call _LABEL_5473_ | |
| jr nc, _LABEL_5740_ | |
| ld (ix+0), $15 | |
| ld (ix+1), $58 | |
| jp _LABEL_5815_ | |
| _LABEL_572A_: | |
| ld (ix+24), $08 | |
| ld (ix+0), $36 | |
| ld (ix+1), $57 | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jp z, _LABEL_5801_ | |
| ret | |
| _LABEL_5740_: | |
| ld a, (ix+28) | |
| and $01 | |
| jr nz, _LABEL_575D_ | |
| call _LABEL_568C_ | |
| jr nc, _LABEL_575D_ | |
| call _LABEL_51DE_ | |
| _LABEL_574F_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_5762_ | |
| rrca | |
| jr c, _LABEL_577A_ | |
| rrca | |
| jr c, _LABEL_5792_ | |
| jr _LABEL_57AC_ | |
| _LABEL_575D_: | |
| call _LABEL_52A1_ | |
| jr _LABEL_574F_ | |
| _LABEL_5762_: | |
| ld hl, $FFE0 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_5770_ | |
| ld (ix+4), $01 | |
| jr _LABEL_57B9_ | |
| _LABEL_5770_: | |
| ld a, (ix+4) | |
| and $FE | |
| ld (ix+4), a | |
| jr _LABEL_574F_ | |
| _LABEL_577A_: | |
| ld hl, $0020 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_5788_ | |
| ld (ix+4), $02 | |
| jr _LABEL_57B9_ | |
| _LABEL_5788_: | |
| ld a, (ix+4) | |
| and $FD | |
| ld (ix+4), a | |
| jr _LABEL_574F_ | |
| _LABEL_5792_: | |
| ld hl, $FFFF | |
| call _LABEL_5420_ | |
| jr c, _LABEL_57A0_ | |
| ld (ix+4), $04 | |
| jr _LABEL_57B9_ | |
| _LABEL_57A0_: | |
| ld a, (ix+4) | |
| and $FB | |
| or $03 | |
| ld (ix+4), a | |
| jr _LABEL_574F_ | |
| _LABEL_57AC_: | |
| ld hl, $0001 | |
| call _LABEL_5420_ | |
| jp c, _LABEL_572A_ | |
| ld (ix+4), $08 | |
| _LABEL_57B9_: | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $08 | |
| ld (ix+0), $CB | |
| ld (ix+1), $57 | |
| call _LABEL_47BB_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_5801_ | |
| ret | |
| _LABEL_57D7_: | |
| ld a, SoundEffectA0 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| ld (ix+0), $E7 | |
| ld (ix+1), $57 | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_5801_ | |
| ld a, (ix+30) | |
| or a | |
| ret z | |
| ld a, (ix+24) | |
| cp $01 | |
| jr nz, _LABEL_57FE_ | |
| call _LABEL_5302_ | |
| _LABEL_57FE_: | |
| jp _LABEL_5643_ | |
| _LABEL_5801_: | |
| call _LABEL_5655_ | |
| ld (ix+22), $25 | |
| ld (ix+23), $7B | |
| ld (ix+0), $EF | |
| ld (ix+1), $56 | |
| ret | |
| _LABEL_5815_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_5801_ | |
| call _LABEL_553A_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| ld (ix+30), $01 | |
| ld (ix+24), $08 | |
| ld (ix+22), $2E | |
| ld (ix+23), $7B | |
| ld (ix+0), $D7 | |
| ld (ix+1), $57 | |
| jp _LABEL_57D7_ | |
| ; 5th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_583E: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $06 | |
| ld (ix+27), $00 | |
| call _LABEL_569C_ | |
| ld (ix+0), $65 | |
| ld (ix+1), $58 | |
| ld (ix+22), $25 | |
| ld (ix+23), $7B | |
| ret | |
| _LABEL_5865_: | |
| call _LABEL_5567_ | |
| ret c | |
| call _LABEL_553A_ | |
| ld a, (ix+28) | |
| and $02 | |
| jp nz, _LABEL_481B_ | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_5882_ | |
| cp $09 | |
| jr z, _LABEL_5882_ | |
| jp _LABEL_481B_ | |
| _LABEL_5882_: | |
| inc (ix+25) | |
| ld a, (ix+25) | |
| cp $02 | |
| jr nz, _LABEL_58A0_ | |
| ld (ix+25), $00 | |
| call _LABEL_5473_ | |
| jr nc, _LABEL_58B6_ | |
| ld (ix+0), $59 | |
| ld (ix+1), $59 | |
| jp _LABEL_5959_ | |
| _LABEL_58A0_: | |
| ld (ix+24), $08 | |
| ld (ix+0), $AC | |
| ld (ix+1), $58 | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jp z, _LABEL_5945_ | |
| ret | |
| _LABEL_58B6_: | |
| call _LABEL_52A1_ | |
| _LABEL_58B9_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_58C7_ | |
| rrca | |
| jr c, _LABEL_58D5_ | |
| rrca | |
| jr c, _LABEL_58E3_ | |
| jr _LABEL_58F1_ | |
| _LABEL_58C7_: | |
| ld hl, $FFE0 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_58D5_ | |
| ld (ix+4), $01 | |
| jr _LABEL_58FD_ | |
| _LABEL_58D5_: | |
| ld hl, $0020 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_58E3_ | |
| ld (ix+4), $02 | |
| jr _LABEL_58FD_ | |
| _LABEL_58E3_: | |
| ld hl, $FFFF | |
| call _LABEL_5420_ | |
| jr c, _LABEL_58F1_ | |
| ld (ix+4), $04 | |
| jr _LABEL_58FD_ | |
| _LABEL_58F1_: | |
| ld hl, $0001 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_58A0_ | |
| ld (ix+4), $08 | |
| _LABEL_58FD_: | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $08 | |
| ld (ix+0), $0F | |
| ld (ix+1), $59 | |
| call _LABEL_47BB_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_5945_ | |
| ret | |
| _LABEL_591B_: | |
| ld a, SoundEffectA0 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| ld (ix+0), $2B | |
| ld (ix+1), $59 | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_5945_ | |
| ld a, (ix+30) | |
| or a | |
| ret z | |
| ld a, (ix+24) | |
| cp $01 | |
| jr nz, _LABEL_5942_ | |
| call _LABEL_5302_ | |
| _LABEL_5942_: | |
| jp _LABEL_5643_ | |
| _LABEL_5945_: | |
| call _LABEL_5655_ | |
| ld (ix+22), $25 | |
| ld (ix+23), $7B | |
| ld (ix+0), $65 | |
| ld (ix+1), $58 | |
| ret | |
| _LABEL_5959_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_5945_ | |
| call _LABEL_553A_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| call GetRandomNumber | |
| cp $D8 | |
| jr nc, _LABEL_5989_ | |
| ld (ix+30), $01 | |
| ld (ix+24), $08 | |
| ld (ix+22), $2E | |
| ld (ix+23), $7B | |
| ld (ix+0), $1B | |
| ld (ix+1), $59 | |
| jp _LABEL_591B_ | |
| _LABEL_5989_: | |
| ld (ix+24), $08 | |
| ld (ix+0), $A0 | |
| ld (ix+1), $58 | |
| call _LABEL_54C8_ | |
| jp c, _LABEL_58A0_ | |
| ld a, SoundEffectA2 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| jp _LABEL_58B9_ | |
| ; 9th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_59A6: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $26 | |
| ld (ix+27), $00 | |
| call _LABEL_569C_ | |
| ld (ix+0), $CD | |
| ld (ix+1), $59 | |
| ld (ix+22), $25 | |
| ld (ix+23), $7B | |
| ret | |
| _LABEL_59CD_: | |
| call _LABEL_5567_ | |
| ret c | |
| call _LABEL_553A_ | |
| ld a, (ix+28) | |
| and $02 | |
| jp nz, _LABEL_481B_ | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_59EA_ | |
| cp $09 | |
| jr z, _LABEL_59EA_ | |
| jp _LABEL_481B_ | |
| _LABEL_59EA_: | |
| inc (ix+25) | |
| ld a, (ix+25) | |
| cp $02 | |
| jr nz, _LABEL_5A08_ | |
| ld (ix+25), $00 | |
| call _LABEL_5473_ | |
| jr nc, _LABEL_5A1E_ | |
| ld (ix+0), $F3 | |
| ld (ix+1), $5A | |
| jp _LABEL_5AF3_ | |
| _LABEL_5A08_: | |
| ld (ix+24), $08 | |
| ld (ix+0), $14 | |
| ld (ix+1), $5A | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jp z, _LABEL_5ADF_ | |
| ret | |
| _LABEL_5A1E_: | |
| ld a, (ix+28) | |
| and $01 | |
| jr nz, _LABEL_5A3B_ | |
| call _LABEL_568C_ | |
| jr nc, _LABEL_5A3B_ | |
| call _LABEL_51DE_ | |
| _LABEL_5A2D_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_5A40_ | |
| rrca | |
| jr c, _LABEL_5A58_ | |
| rrca | |
| jr c, _LABEL_5A70_ | |
| jr _LABEL_5A8A_ | |
| _LABEL_5A3B_: | |
| call _LABEL_52A1_ | |
| jr _LABEL_5A2D_ | |
| _LABEL_5A40_: | |
| ld hl, $FFE0 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_5A4E_ | |
| ld (ix+4), $01 | |
| jr _LABEL_5A97_ | |
| _LABEL_5A4E_: | |
| ld a, (ix+4) | |
| and $FE | |
| ld (ix+4), a | |
| jr _LABEL_5A2D_ | |
| _LABEL_5A58_: | |
| ld hl, $0020 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_5A66_ | |
| ld (ix+4), $02 | |
| jr _LABEL_5A97_ | |
| _LABEL_5A66_: | |
| ld a, (ix+4) | |
| and $FD | |
| ld (ix+4), a | |
| jr _LABEL_5A2D_ | |
| _LABEL_5A70_: | |
| ld hl, $FFFF | |
| call _LABEL_5420_ | |
| jr c, _LABEL_5A7E_ | |
| ld (ix+4), $04 | |
| jr _LABEL_5A97_ | |
| _LABEL_5A7E_: | |
| ld a, (ix+4) | |
| and $FB | |
| or $03 | |
| ld (ix+4), a | |
| jr _LABEL_5A2D_ | |
| _LABEL_5A8A_: | |
| ld hl, $0001 | |
| call _LABEL_5420_ | |
| jp c, _LABEL_5A08_ | |
| ld (ix+4), $08 | |
| _LABEL_5A97_: | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $08 | |
| ld (ix+0), $A9 | |
| ld (ix+1), $5A | |
| call _LABEL_47BB_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_5ADF_ | |
| ret | |
| _LABEL_5AB5_: | |
| ld a, SoundEffectA0 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| ld (ix+0), $C5 | |
| ld (ix+1), $5A | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_5ADF_ | |
| ld a, (ix+30) | |
| or a | |
| ret z | |
| ld a, (ix+24) | |
| cp $01 | |
| jr nz, _LABEL_5ADC_ | |
| call _LABEL_5302_ | |
| _LABEL_5ADC_: | |
| jp _LABEL_5643_ | |
| _LABEL_5ADF_: | |
| call _LABEL_5655_ | |
| ld (ix+22), $25 | |
| ld (ix+23), $7B | |
| ld (ix+0), $CD | |
| ld (ix+1), $59 | |
| ret | |
| _LABEL_5AF3_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_5ADF_ | |
| call _LABEL_553A_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| call GetRandomNumber | |
| cp $A0 | |
| jr nc, _LABEL_5B23_ | |
| ld (ix+30), $01 | |
| ld (ix+24), $08 | |
| ld (ix+22), $2E | |
| ld (ix+23), $7B | |
| ld (ix+0), $B5 | |
| ld (ix+1), $5A | |
| jp _LABEL_5AB5_ | |
| _LABEL_5B23_: | |
| ld (ix+24), $08 | |
| ld (ix+0), $08 | |
| ld (ix+1), $5A | |
| call _LABEL_54C8_ | |
| jp c, _LABEL_5A08_ | |
| ld a, SoundEffectA2 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| jp _LABEL_5A2D_ | |
| ; 29th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_5B40: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $04 | |
| ld (ix+26), $A0 | |
| ld (ix+27), $00 | |
| call _LABEL_569C_ | |
| ld (ix+0), $67 | |
| ld (ix+1), $5B | |
| ld (ix+22), $25 | |
| ld (ix+23), $7B | |
| ret | |
| _LABEL_5B67_: | |
| call _LABEL_5567_ | |
| ret c | |
| call _LABEL_553A_ | |
| ld a, (ix+28) | |
| and $02 | |
| jp nz, _LABEL_481B_ | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_5B84_ | |
| cp $09 | |
| jr z, _LABEL_5B84_ | |
| jp _LABEL_481B_ | |
| _LABEL_5B84_: | |
| ld a, $02 | |
| ld (ix+25), a | |
| call _LABEL_5473_ | |
| jr nc, _LABEL_5BB3_ | |
| ld (ix+0), $70 | |
| ld (ix+1), $5C | |
| jp _LABEL_5C70_ | |
| _LABEL_5B99_: | |
| ld (ix+25), $01 | |
| ld (ix+24), $08 | |
| ld (ix+0), $A9 | |
| ld (ix+1), $5B | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jp z, _LABEL_5C42_ | |
| ret | |
| _LABEL_5BB3_: | |
| call _LABEL_52A1_ | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_5BC4_ | |
| rrca | |
| jr c, _LABEL_5BD2_ | |
| rrca | |
| jr c, _LABEL_5BE0_ | |
| jr _LABEL_5BEE_ | |
| _LABEL_5BC4_: | |
| ld hl, $FFE0 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_5BD2_ | |
| ld (ix+4), $01 | |
| jr _LABEL_5BFA_ | |
| _LABEL_5BD2_: | |
| ld hl, $0020 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_5BE0_ | |
| ld (ix+4), $02 | |
| jr _LABEL_5BFA_ | |
| _LABEL_5BE0_: | |
| ld hl, $FFFF | |
| call _LABEL_5420_ | |
| jr c, _LABEL_5BEE_ | |
| ld (ix+4), $04 | |
| jr _LABEL_5BFA_ | |
| _LABEL_5BEE_: | |
| ld hl, $0001 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_5B99_ | |
| ld (ix+4), $08 | |
| _LABEL_5BFA_: | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $04 | |
| ld (ix+0), $0C | |
| ld (ix+1), $5C | |
| call _LABEL_47BB_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_5C42_ | |
| ret | |
| _LABEL_5C18_: | |
| ld a, SoundEffectA0 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| ld (ix+0), $28 | |
| ld (ix+1), $5C | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_5C42_ | |
| ld a, (ix+30) | |
| or a | |
| ret z | |
| ld a, (ix+24) | |
| cp $01 | |
| jr nz, _LABEL_5C3F_ | |
| call _LABEL_5302_ | |
| _LABEL_5C3F_: | |
| jp _LABEL_5643_ | |
| _LABEL_5C42_: | |
| dec (ix+25) | |
| jr nz, _LABEL_5C5B_ | |
| call _LABEL_5655_ | |
| ld (ix+22), $25 | |
| ld (ix+23), $7B | |
| ld (ix+0), $67 | |
| ld (ix+1), $5B | |
| ret | |
| _LABEL_5C5B_: | |
| ld a, (ix+7) | |
| ld (ix+5), a | |
| ld a, (ix+8) | |
| ld (ix+6), a | |
| ld (ix+0), $89 | |
| ld (ix+1), $5B | |
| ret | |
| _LABEL_5C70_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_5C42_ | |
| call _LABEL_553A_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| ld (ix+30), $01 | |
| ld (ix+24), $08 | |
| ld (ix+25), $01 | |
| ld (ix+22), $2E | |
| ld (ix+23), $7B | |
| ld (ix+0), $18 | |
| ld (ix+1), $5C | |
| jp _LABEL_5C18_ | |
| ; 2nd entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_5C9D: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $06 | |
| ld (ix+27), $00 | |
| ld (ix+3), $23 | |
| call _LABEL_569C_ | |
| ld (ix+0), $C8 | |
| ld (ix+1), $5C | |
| ld (ix+22), $37 | |
| ld (ix+23), $7B | |
| ret | |
| _LABEL_5CC8_: | |
| call _LABEL_5567_ | |
| ret c | |
| call _LABEL_1EB1_ | |
| ret c | |
| ld a, (ix+28) | |
| and $02 | |
| jp nz, _LABEL_481B_ | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_5CE6_ | |
| cp $09 | |
| jr z, _LABEL_5CE6_ | |
| jp _LABEL_481B_ | |
| _LABEL_5CE6_: | |
| call _LABEL_5473_ | |
| jr nc, _LABEL_5D09_ | |
| ld (ix+0), $3E | |
| ld (ix+1), $5E | |
| jp _LABEL_5E3E_ | |
| _LABEL_5CF6_: | |
| ld (ix+24), $08 | |
| ld (ix+0), $02 | |
| ld (ix+1), $5D | |
| dec (ix+24) | |
| jp z, _LABEL_5E32_ | |
| ret | |
| _LABEL_5D09_: | |
| ld a, (ix+28) | |
| and $01 | |
| jr nz, _LABEL_5D21_ | |
| call _LABEL_51DE_ | |
| _LABEL_5D13_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_5D26_ | |
| rrca | |
| jr c, _LABEL_5D46_ | |
| rrca | |
| jr c, _LABEL_5D66_ | |
| jr _LABEL_5D88_ | |
| _LABEL_5D21_: | |
| call _LABEL_52A1_ | |
| jr _LABEL_5D13_ | |
| _LABEL_5D26_: | |
| ld hl, $FFE0 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_5D3C_ | |
| ld (ix+4), $01 | |
| ld (ix+22), $55 | |
| ld (ix+23), $7B | |
| jr _LABEL_5D9D_ | |
| _LABEL_5D3C_: | |
| ld a, (ix+4) | |
| and $FE | |
| ld (ix+4), a | |
| jr _LABEL_5D13_ | |
| _LABEL_5D46_: | |
| ld hl, $0020 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_5D5C_ | |
| ld (ix+4), $02 | |
| ld (ix+22), $4B | |
| ld (ix+23), $7B | |
| jr _LABEL_5D9D_ | |
| _LABEL_5D5C_: | |
| ld a, (ix+4) | |
| and $FD | |
| ld (ix+4), a | |
| jr _LABEL_5D13_ | |
| _LABEL_5D66_: | |
| ld hl, $FFFF | |
| call _LABEL_5420_ | |
| jr c, _LABEL_5D7C_ | |
| ld (ix+4), $04 | |
| ld (ix+22), $37 | |
| ld (ix+23), $7B | |
| jr _LABEL_5D9D_ | |
| _LABEL_5D7C_: | |
| ld a, (ix+4) | |
| and $FB | |
| or $03 | |
| ld (ix+4), a | |
| jr _LABEL_5D13_ | |
| _LABEL_5D88_: | |
| ld hl, $0001 | |
| call _LABEL_5420_ | |
| jp c, _LABEL_5CF6_ | |
| ld (ix+4), $08 | |
| ld (ix+22), $41 | |
| ld (ix+23), $7B | |
| _LABEL_5D9D_: | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $08 | |
| ld (ix+0), $AF | |
| ld (ix+1), $5D | |
| call _LABEL_47BB_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_5E32_ | |
| ret | |
| _LABEL_5DBB_: | |
| ld a, SoundEffectA0 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| ld (ix+0), $CB | |
| ld (ix+1), $5D | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_5DE5_ | |
| ld a, (ix+30) | |
| or a | |
| ret z | |
| ld a, (ix+24) | |
| cp $01 | |
| jr nz, _LABEL_5DE2_ | |
| call _LABEL_5302_ | |
| _LABEL_5DE2_: | |
| jp _LABEL_5643_ | |
| _LABEL_5DE5_: | |
| ld a, (ix+29) | |
| or a | |
| jr nz, _LABEL_5E32_ | |
| ld a, $01 | |
| ld ($C102), a | |
| call _LABEL_51A5_ | |
| jr c, _LABEL_5E32_ | |
| ld a, (PoisonTicksLeft) | |
| or a | |
| jr nz, _LABEL_5E32_ | |
| call GetRandomNumber | |
| cp $40 | |
| jr nc, _LABEL_5E32_ | |
| ld (ix+24), $10 | |
| ld (ix+0), $0E | |
| ld (ix+1), $5E | |
| dec (ix+24) | |
| ret nz | |
| call GetRandomNumber | |
| and RangePoisonTicks | |
| ld b, MinimumPoisonTicks | |
| add a, b | |
| ld (PoisonTicksLeft), a | |
| ld a, PlayerPoisonedMessage | |
| ld (CurrentMessage), a | |
| ld (ix+24), $10 | |
| ld (ix+0), $2E | |
| ld (ix+1), $5E | |
| dec (ix+24) | |
| ret nz | |
| _LABEL_5E32_: | |
| call _LABEL_5655_ | |
| ld (ix+0), $C8 | |
| ld (ix+1), $5C | |
| ret | |
| _LABEL_5E3E_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_5E32_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| ld (ix+30), $01 | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_5E5B_ | |
| rrca | |
| jr c, _LABEL_5E65_ | |
| rrca | |
| jr c, _LABEL_5E6F_ | |
| jr _LABEL_5E79_ | |
| _LABEL_5E5B_: | |
| ld (ix+22), $5A | |
| ld (ix+23), $7B | |
| jr _LABEL_5E81_ | |
| _LABEL_5E65_: | |
| ld (ix+22), $50 | |
| ld (ix+23), $7B | |
| jr _LABEL_5E81_ | |
| _LABEL_5E6F_: | |
| ld (ix+22), $3C | |
| ld (ix+23), $7B | |
| jr _LABEL_5E81_ | |
| _LABEL_5E79_: | |
| ld (ix+22), $46 | |
| ld (ix+23), $7B | |
| _LABEL_5E81_: | |
| ld (ix+24), $0A | |
| ld (ix+0), $BB | |
| ld (ix+1), $5D | |
| jp _LABEL_5DBB_ | |
| ; 6th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_5E90: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $18 | |
| ld (ix+27), $00 | |
| ld (ix+3), $23 | |
| call _LABEL_569C_ | |
| ld (ix+0), $C8 | |
| ld (ix+1), $5C | |
| ld (ix+22), $37 | |
| ld (ix+23), $7B | |
| ret | |
| ; 10th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_5EBB: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $34 | |
| ld (ix+27), $00 | |
| ld (ix+3), $23 | |
| call _LABEL_569C_ | |
| ld (ix+0), $C8 | |
| ld (ix+1), $5C | |
| ld (ix+22), $37 | |
| ld (ix+23), $7B | |
| ret | |
| ; 3rd entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_5EE6: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $0A | |
| ld (ix+27), $00 | |
| ld (ix+3), $2F | |
| call _LABEL_569C_ | |
| ld (ix+0), $09 | |
| ld (ix+1), $5F | |
| ret | |
| _LABEL_5F09_: | |
| call _LABEL_5567_ | |
| ret c | |
| ld a, (ix+28) | |
| and $02 | |
| jp nz, _LABEL_481B_ | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_5F23_ | |
| cp $09 | |
| jr z, _LABEL_5F23_ | |
| jp _LABEL_481B_ | |
| _LABEL_5F23_: | |
| call _LABEL_5473_ | |
| jr nc, _LABEL_5F46_ | |
| ld (ix+0), $69 | |
| ld (ix+1), $60 | |
| jp _LABEL_6069_ | |
| _LABEL_5F33_: | |
| ld (ix+24), $08 | |
| ld (ix+0), $3F | |
| ld (ix+1), $5F | |
| dec (ix+24) | |
| jp z, _LABEL_605D_ | |
| ret | |
| _LABEL_5F46_: | |
| call _LABEL_1EB1_ | |
| jr c, _LABEL_5F67_ | |
| call _LABEL_557D_ | |
| jr nc, _LABEL_5F67_ | |
| call _LABEL_55BF_ | |
| jr c, _LABEL_5F67_ | |
| call GetRandomNumber | |
| cp $80 | |
| jr nc, _LABEL_5F67_ | |
| ld (ix+0), $69 | |
| ld (ix+1), $60 | |
| jp _LABEL_6069_ | |
| _LABEL_5F67_: | |
| ld a, (ix+28) | |
| and $01 | |
| jr nz, _LABEL_5F7F_ | |
| call _LABEL_51DE_ | |
| _LABEL_5F71_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_5F84_ | |
| rrca | |
| jr c, _LABEL_5FA4_ | |
| rrca | |
| jr c, _LABEL_5FC4_ | |
| jr _LABEL_5FE6_ | |
| _LABEL_5F7F_: | |
| call _LABEL_52A1_ | |
| jr _LABEL_5F71_ | |
| _LABEL_5F84_: | |
| ld hl, $FFE0 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_5F9A_ | |
| ld (ix+4), $01 | |
| ld (ix+22), $64 | |
| ld (ix+23), $7B | |
| jr _LABEL_5FFB_ | |
| _LABEL_5F9A_: | |
| ld a, (ix+4) | |
| and $FE | |
| ld (ix+4), a | |
| jr _LABEL_5F71_ | |
| _LABEL_5FA4_: | |
| ld hl, $0020 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_5FBA_ | |
| ld (ix+4), $02 | |
| ld (ix+22), $64 | |
| ld (ix+23), $7B | |
| jr _LABEL_5FFB_ | |
| _LABEL_5FBA_: | |
| ld a, (ix+4) | |
| and $FD | |
| ld (ix+4), a | |
| jr _LABEL_5F71_ | |
| _LABEL_5FC4_: | |
| ld hl, $FFFF | |
| call _LABEL_5420_ | |
| jr c, _LABEL_5FDA_ | |
| ld (ix+4), $04 | |
| ld (ix+22), $5F | |
| ld (ix+23), $7B | |
| jr _LABEL_5FFB_ | |
| _LABEL_5FDA_: | |
| ld a, (ix+4) | |
| and $FB | |
| or $03 | |
| ld (ix+4), a | |
| jr _LABEL_5F71_ | |
| _LABEL_5FE6_: | |
| ld hl, $0001 | |
| call _LABEL_5420_ | |
| jp c, _LABEL_5F33_ | |
| ld (ix+4), $08 | |
| ld (ix+22), $5F | |
| ld (ix+23), $7B | |
| _LABEL_5FFB_: | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $08 | |
| ld (ix+0), $0D | |
| ld (ix+1), $60 | |
| call _LABEL_47BB_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_605D_ | |
| ret | |
| _LABEL_6019_: | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_602A_ | |
| ld a, (ix+24) | |
| cp $08 | |
| call z, _LABEL_60BB_ | |
| ret | |
| _LABEL_602A_: | |
| ld (ix+24), $10 | |
| ld (ix+0), $36 | |
| ld (ix+1), $60 | |
| ld a, ($C3C2) | |
| or a | |
| ret nz | |
| ld (ix+0), $4B | |
| ld (ix+1), $60 | |
| ld a, SoundEffectA0 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| dec (ix+24) | |
| jr z, _LABEL_605D_ | |
| ld a, (ix+24) | |
| cp $01 | |
| jr nz, _LABEL_605A_ | |
| call _LABEL_5302_ | |
| _LABEL_605A_: | |
| jp _LABEL_5643_ | |
| _LABEL_605D_: | |
| call _LABEL_5655_ | |
| ld (ix+0), $09 | |
| ld (ix+1), $5F | |
| ret | |
| _LABEL_6069_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_605D_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| ld (ix+30), $01 | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_6086_ | |
| rrca | |
| jr c, _LABEL_6090_ | |
| rrca | |
| jr c, _LABEL_609A_ | |
| jr _LABEL_60A4_ | |
| _LABEL_6086_: | |
| ld (ix+22), $69 | |
| ld (ix+23), $7B | |
| jr _LABEL_60AC_ | |
| _LABEL_6090_: | |
| ld (ix+22), $72 | |
| ld (ix+23), $7B | |
| jr _LABEL_60AC_ | |
| _LABEL_609A_: | |
| ld (ix+22), $84 | |
| ld (ix+23), $7B | |
| jr _LABEL_60AC_ | |
| _LABEL_60A4_: | |
| ld (ix+22), $7B | |
| ld (ix+23), $7B | |
| _LABEL_60AC_: | |
| ld (ix+24), $10 | |
| ld (ix+0), $19 | |
| ld (ix+1), $60 | |
| jp _LABEL_6019_ | |
| _LABEL_60BB_: | |
| ld hl, $7A1C | |
| ld ($C3C0), hl | |
| jp _LABEL_56A9_ | |
| ; 15th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_60C4: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $60 | |
| ld (ix+27), $00 | |
| ld (ix+3), $2F | |
| call _LABEL_569C_ | |
| ld (ix+0), $09 | |
| ld (ix+1), $5F | |
| ret | |
| ; 4th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_60E7: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $04 | |
| ld (ix+26), $09 | |
| ld (ix+27), $00 | |
| call _LABEL_569C_ | |
| ld (ix+22), $92 | |
| ld (ix+23), $7B | |
| ld (ix+0), $0E | |
| ld (ix+1), $61 | |
| ret | |
| _LABEL_610E_: | |
| call _LABEL_5567_ | |
| ret c | |
| call _LABEL_553A_ | |
| ld a, (ix+28) | |
| and $02 | |
| jp nz, _LABEL_481B_ | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_612B_ | |
| cp $09 | |
| jr z, _LABEL_612B_ | |
| jp _LABEL_481B_ | |
| _LABEL_612B_: | |
| ld (ix+25), $02 | |
| call _LABEL_1EB1_ | |
| jr c, _LABEL_6177_ | |
| call _LABEL_5473_ | |
| jr nc, _LABEL_6144_ | |
| ld (ix+0), $C9 | |
| ld (ix+1), $62 | |
| jp _LABEL_62C9_ | |
| _LABEL_6144_: | |
| call _LABEL_557D_ | |
| jr nc, _LABEL_6177_ | |
| call _LABEL_55BF_ | |
| jr c, _LABEL_6177_ | |
| call GetRandomNumber | |
| cp $80 | |
| jr nc, _LABEL_6160_ | |
| ld (ix+0), $C9 | |
| ld (ix+1), $62 | |
| jp _LABEL_62C9_ | |
| _LABEL_6160_: | |
| ld (ix+24), $08 | |
| ld (ix+0), $6D | |
| ld (ix+1), $61 | |
| ret | |
| _LABEL_616D_: | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jp z, _LABEL_62BD_ | |
| ret | |
| _LABEL_6177_: | |
| ld a, (ix+28) | |
| and $01 | |
| jr nz, _LABEL_618F_ | |
| call _LABEL_51DE_ | |
| _LABEL_6181_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_6194_ | |
| rrca | |
| jr c, _LABEL_61AC_ | |
| rrca | |
| jr c, _LABEL_61C4_ | |
| jr _LABEL_61DE_ | |
| _LABEL_618F_: | |
| call _LABEL_52A1_ | |
| jr _LABEL_6181_ | |
| _LABEL_6194_: | |
| ld hl, $FFE0 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_61A2_ | |
| ld (ix+4), $01 | |
| jr _LABEL_61EB_ | |
| _LABEL_61A2_: | |
| ld a, (ix+4) | |
| and $FE | |
| ld (ix+4), a | |
| jr _LABEL_6181_ | |
| _LABEL_61AC_: | |
| ld hl, $0020 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_61BA_ | |
| ld (ix+4), $02 | |
| jr _LABEL_61EB_ | |
| _LABEL_61BA_: | |
| ld a, (ix+4) | |
| and $FD | |
| ld (ix+4), a | |
| jr _LABEL_6181_ | |
| _LABEL_61C4_: | |
| ld hl, $FFFF | |
| call _LABEL_5420_ | |
| jr c, _LABEL_61D2_ | |
| ld (ix+4), $04 | |
| jr _LABEL_61EB_ | |
| _LABEL_61D2_: | |
| ld a, (ix+4) | |
| and $FB | |
| or $03 | |
| ld (ix+4), a | |
| jr _LABEL_6181_ | |
| _LABEL_61DE_: | |
| ld hl, $0001 | |
| call _LABEL_5420_ | |
| jp c, _LABEL_6160_ | |
| ld (ix+4), $08 | |
| _LABEL_61EB_: | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $04 | |
| ld (ix+0), $FD | |
| ld (ix+1), $61 | |
| call _LABEL_47BB_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_6209_ | |
| ret | |
| _LABEL_6209_: | |
| ld a, (ix+7) | |
| ld (ix+5), a | |
| ld a, (ix+8) | |
| ld (ix+6), a | |
| dec (ix+25) | |
| jp z, _LABEL_62BD_ | |
| ld (ix+0), $2F | |
| ld (ix+1), $61 | |
| ret | |
| _LABEL_6224_: | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_6235_ | |
| ld a, (ix+24) | |
| cp $08 | |
| call z, _LABEL_62EA_ | |
| ret | |
| _LABEL_6235_: | |
| ld (ix+24), $10 | |
| ld (ix+0), $42 | |
| ld (ix+1), $62 | |
| ret | |
| _LABEL_6242_: | |
| call _LABEL_553A_ | |
| ld a, ($C3C2) | |
| or a | |
| ret nz | |
| ld (ix+0), $5A | |
| ld (ix+1), $62 | |
| ld a, SoundEffectA0 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_626F_ | |
| ld a, (ix+24) | |
| cp $01 | |
| jr nz, _LABEL_626C_ | |
| call _LABEL_5302_ | |
| _LABEL_626C_: | |
| jp _LABEL_5643_ | |
| _LABEL_626F_: | |
| ld a, (ix+29) | |
| or a | |
| jr nz, _LABEL_62BD_ | |
| ld a, $01 | |
| ld ($C102), a | |
| call _LABEL_51A5_ | |
| jr c, _LABEL_62BD_ | |
| ld a, (DizzinessTicksLeft) | |
| or a | |
| jr nz, _LABEL_62BD_ | |
| call GetRandomNumber | |
| cp $18 | |
| jp nc, _LABEL_62BD_ | |
| ld (ix+24), $10 | |
| ld (ix+0), $99 | |
| ld (ix+1), $62 | |
| dec (ix+24) | |
| ret nz | |
| call GetRandomNumber | |
| and $07 | |
| ld b, $08 | |
| add a, b | |
| ld (DizzinessTicksLeft), a | |
| ld a, PlayerLightheadedMessage | |
| ld (CurrentMessage), a | |
| ld (ix+24), $10 | |
| ld (ix+0), $B9 | |
| ld (ix+1), $62 | |
| dec (ix+24) | |
| ret nz | |
| _LABEL_62BD_: | |
| call _LABEL_5655_ | |
| ld (ix+0), $0E | |
| ld (ix+1), $61 | |
| ret | |
| _LABEL_62C9_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_62BD_ | |
| call _LABEL_553A_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| ld (ix+30), $01 | |
| ld (ix+24), $10 | |
| ld (ix+0), $24 | |
| ld (ix+1), $62 | |
| jp _LABEL_6224_ | |
| _LABEL_62EA_: | |
| ld hl, $7A46 | |
| ld ($C3C0), hl | |
| jp _LABEL_56A9_ | |
| ; 16th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_62F3: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $04 | |
| ld (ix+26), $32 | |
| ld (ix+27), $00 | |
| call _LABEL_569C_ | |
| ld (ix+22), $92 | |
| ld (ix+23), $7B | |
| ld (ix+0), $0E | |
| ld (ix+1), $61 | |
| ret | |
| ; 7th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_631A: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+26), $1E | |
| ld (ix+27), $00 | |
| ld (ix+3), $45 | |
| call _LABEL_569C_ | |
| ld (ix+0), $39 | |
| ld (ix+1), $63 | |
| ret | |
| _LABEL_6339_: | |
| call _LABEL_5567_ | |
| ret c | |
| ld a, (ix+28) | |
| and $02 | |
| jp nz, _LABEL_481B_ | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_6353_ | |
| cp $09 | |
| jr z, _LABEL_6353_ | |
| jp _LABEL_481B_ | |
| _LABEL_6353_: | |
| call _LABEL_1EB1_ | |
| jp c, _LABEL_481B_ | |
| call _LABEL_557D_ | |
| jr nc, _LABEL_636E_ | |
| call _LABEL_55BF_ | |
| jr c, _LABEL_636E_ | |
| ld (ix+0), $4E | |
| ld (ix+1), $64 | |
| jp _LABEL_644E_ | |
| _LABEL_636E_: | |
| call GetRandomNumber | |
| and $03 | |
| jr nz, _LABEL_6377_ | |
| ld a, $04 | |
| _LABEL_6377_: | |
| ld (ix+25), a | |
| call _LABEL_52A1_ | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_638B_ | |
| rrca | |
| jr c, _LABEL_6399_ | |
| rrca | |
| jr c, _LABEL_63A7_ | |
| jr _LABEL_63B5_ | |
| _LABEL_638B_: | |
| ld (ix+4), $01 | |
| call _LABEL_538E_ | |
| call _LABEL_5420_ | |
| jr c, _LABEL_6399_ | |
| jr _LABEL_63C0_ | |
| _LABEL_6399_: | |
| ld (ix+4), $02 | |
| call _LABEL_538E_ | |
| call _LABEL_5420_ | |
| jr c, _LABEL_63A7_ | |
| jr _LABEL_63C0_ | |
| _LABEL_63A7_: | |
| ld (ix+4), $04 | |
| call _LABEL_538E_ | |
| call _LABEL_5420_ | |
| jr c, _LABEL_63B5_ | |
| jr _LABEL_63C0_ | |
| _LABEL_63B5_: | |
| ld (ix+4), $08 | |
| call _LABEL_538E_ | |
| call _LABEL_5420_ | |
| ret c | |
| _LABEL_63C0_: | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $08 | |
| ld (ix+22), $9B | |
| ld (ix+23), $7B | |
| ld (ix+0), $DA | |
| ld (ix+1), $63 | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_643E_ | |
| ld a, (ix+24) | |
| cp $04 | |
| call z, _LABEL_63EB_ | |
| ret | |
| _LABEL_63EB_: | |
| ld a, (ix+7) | |
| ld (ix+5), a | |
| ld a, (ix+8) | |
| ld (ix+6), a | |
| jp _LABEL_550D_ | |
| _LABEL_63FA_: | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_640B_ | |
| ld a, (ix+24) | |
| cp $06 | |
| call z, _LABEL_64A0_ | |
| ret | |
| _LABEL_640B_: | |
| ld (ix+24), $10 | |
| ld (ix+0), $17 | |
| ld (ix+1), $64 | |
| ld a, ($C3C2) | |
| or a | |
| ret nz | |
| ld (ix+0), $2C | |
| ld (ix+1), $64 | |
| ld a, SoundEffectA0 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| dec (ix+24) | |
| jr z, _LABEL_643E_ | |
| ld a, (ix+24) | |
| cp $01 | |
| jr nz, _LABEL_643B_ | |
| call _LABEL_5302_ | |
| _LABEL_643B_: | |
| jp _LABEL_5643_ | |
| _LABEL_643E_: | |
| call _LABEL_5655_ | |
| ld (ix+25), $00 | |
| ld (ix+0), $39 | |
| ld (ix+1), $63 | |
| ret | |
| _LABEL_644E_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_643E_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| ld (ix+30), $01 | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_646B_ | |
| rrca | |
| jr c, _LABEL_6475_ | |
| rrca | |
| jr c, _LABEL_647F_ | |
| jr _LABEL_6489_ | |
| _LABEL_646B_: | |
| ld (ix+22), $C1 | |
| ld (ix+23), $7B | |
| jr _LABEL_6491_ | |
| _LABEL_6475_: | |
| ld (ix+22), $AC | |
| ld (ix+23), $7B | |
| jr _LABEL_6491_ | |
| _LABEL_647F_: | |
| ld (ix+22), $B3 | |
| ld (ix+23), $7B | |
| jr _LABEL_6491_ | |
| _LABEL_6489_: | |
| ld (ix+22), $BA | |
| ld (ix+23), $7B | |
| _LABEL_6491_: | |
| ld (ix+24), $0C | |
| ld (ix+0), $FA | |
| ld (ix+1), $63 | |
| jp _LABEL_63FA_ | |
| _LABEL_64A0_: | |
| ld hl, $7A5B | |
| ld ($C3C0), hl | |
| jp _LABEL_56A9_ | |
| ; 19th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_64A9: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+26), $50 | |
| ld (ix+27), $00 | |
| ld (ix+3), $45 | |
| call _LABEL_569C_ | |
| ld (ix+0), $39 | |
| ld (ix+1), $63 | |
| ret | |
| ; 27th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_64C8: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+26), $B4 | |
| ld (ix+27), $00 | |
| ld (ix+3), $45 | |
| call _LABEL_569C_ | |
| ld (ix+0), $39 | |
| ld (ix+1), $63 | |
| ret | |
| ; 8th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_64E7: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $28 | |
| ld (ix+27), $00 | |
| call _LABEL_569C_ | |
| ld (ix+0), $0E | |
| ld (ix+1), $65 | |
| ld (ix+22), $D2 | |
| ld (ix+23), $7B | |
| ret | |
| _LABEL_650E_: | |
| call _LABEL_5567_ | |
| ret c | |
| call _LABEL_553A_ | |
| ld a, (ix+28) | |
| and $02 | |
| jp nz, _LABEL_481B_ | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_652B_ | |
| cp $09 | |
| jr z, _LABEL_652B_ | |
| jp _LABEL_481B_ | |
| _LABEL_652B_: | |
| inc (ix+25) | |
| ld a, (ix+25) | |
| cp $02 | |
| jr nz, _LABEL_6549_ | |
| ld (ix+25), $00 | |
| call _LABEL_5473_ | |
| jr nc, _LABEL_655F_ | |
| ld (ix+0), $D3 | |
| ld (ix+1), $66 | |
| jp _LABEL_66D3_ | |
| _LABEL_6549_: | |
| ld (ix+24), $08 | |
| ld (ix+0), $55 | |
| ld (ix+1), $65 | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jp z, _LABEL_66C7_ | |
| ret | |
| _LABEL_655F_: | |
| ld a, (ix+28) | |
| and $01 | |
| jr nz, _LABEL_657C_ | |
| call _LABEL_568C_ | |
| jr nc, _LABEL_657C_ | |
| call _LABEL_51DE_ | |
| _LABEL_656E_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_6581_ | |
| rrca | |
| jr c, _LABEL_65A1_ | |
| rrca | |
| jr c, _LABEL_65C1_ | |
| jr _LABEL_65E3_ | |
| _LABEL_657C_: | |
| call _LABEL_52A1_ | |
| jr _LABEL_656E_ | |
| _LABEL_6581_: | |
| ld hl, $FFE0 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_6597_ | |
| ld (ix+4), $01 | |
| ld (ix+22), $C8 | |
| ld (ix+23), $7B | |
| jr _LABEL_65F8_ | |
| _LABEL_6597_: | |
| ld a, (ix+4) | |
| and $FE | |
| ld (ix+4), a | |
| jr _LABEL_656E_ | |
| _LABEL_65A1_: | |
| ld hl, $0020 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_65B7_ | |
| ld (ix+4), $02 | |
| ld (ix+22), $CD | |
| ld (ix+23), $7B | |
| jr _LABEL_65F8_ | |
| _LABEL_65B7_: | |
| ld a, (ix+4) | |
| and $FD | |
| ld (ix+4), a | |
| jr _LABEL_656E_ | |
| _LABEL_65C1_: | |
| ld hl, $FFFF | |
| call _LABEL_5420_ | |
| jr c, _LABEL_65D7_ | |
| ld (ix+4), $04 | |
| ld (ix+22), $D2 | |
| ld (ix+23), $7B | |
| jr _LABEL_65F8_ | |
| _LABEL_65D7_: | |
| ld a, (ix+4) | |
| and $FB | |
| or $03 | |
| ld (ix+4), a | |
| jr _LABEL_656E_ | |
| _LABEL_65E3_: | |
| ld hl, $0001 | |
| call _LABEL_5420_ | |
| jp c, _LABEL_6549_ | |
| ld (ix+4), $08 | |
| ld (ix+22), $D7 | |
| ld (ix+23), $7B | |
| _LABEL_65F8_: | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $08 | |
| ld (ix+21), $00 | |
| ld (ix+20), $00 | |
| ld (ix+0), $12 | |
| ld (ix+1), $66 | |
| call _LABEL_47BB_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jp z, _LABEL_66C7_ | |
| ret | |
| _LABEL_661F_: | |
| ld a, SoundEffectA0 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| ld (ix+0), $2F | |
| ld (ix+1), $66 | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_6649_ | |
| ld a, (ix+30) | |
| or a | |
| ret z | |
| ld a, (ix+24) | |
| cp $01 | |
| jr nz, _LABEL_6646_ | |
| call _LABEL_5302_ | |
| _LABEL_6646_: | |
| jp _LABEL_5643_ | |
| _LABEL_6649_: | |
| ld a, (ix+29) | |
| or a | |
| jr nz, _LABEL_66C7_ | |
| ld a, $01 | |
| ld ($C102), a | |
| ld a, (ix+31) | |
| cp $13 | |
| jr z, _LABEL_6661_ | |
| cp $1B | |
| jr z, _LABEL_668C_ | |
| jr _LABEL_66C7_ | |
| ; Rust armor | |
| _LABEL_6661_: | |
| call RustArmor | |
| jr c, _LABEL_66C7_ | |
| ld a, (EquippedArmor) | |
| cp RobeArmor | |
| jr z, _LABEL_66C7_ | |
| ld a, RobeArmor | |
| ld (EquippedArmor), a | |
| ld (ix+24), $10 | |
| ld (ix+0), $7E | |
| ld (ix+1), $66 | |
| dec (ix+24) | |
| ret nz | |
| call EquipArmor | |
| ld a, ArmorRustMessage | |
| ld (CurrentMessage), a | |
| jr _LABEL_66C7_ | |
| ; Rust weapon | |
| _LABEL_668C_: | |
| ld a, (ix+28) | |
| and $08 | |
| jr nz, _LABEL_66C7_ | |
| ld a, (EquippedWeapon) | |
| cp DaggerSword | |
| jr z, _LABEL_66C7_ | |
| ld a, DaggerSword | |
| ld (EquippedWeapon), a | |
| ld (ix+24), $10 | |
| ld (ix+0), $AB | |
| ld (ix+1), $66 | |
| dec (ix+24) | |
| ret nz | |
| call EquipWeapon | |
| ld a, WeaponRustMessage | |
| ld (CurrentMessage), a | |
| ld (ix+24), $10 | |
| ld (ix+0), $C3 | |
| ld (ix+1), $66 | |
| dec (ix+24) | |
| ret nz | |
| _LABEL_66C7_: | |
| call _LABEL_5655_ | |
| ld (ix+0), $0E | |
| ld (ix+1), $65 | |
| ret | |
| _LABEL_66D3_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_66C7_ | |
| call _LABEL_553A_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| ld (ix+30), $01 | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_66F3_ | |
| rrca | |
| jr c, _LABEL_66FD_ | |
| rrca | |
| jr c, _LABEL_6707_ | |
| jr _LABEL_6711_ | |
| _LABEL_66F3_: | |
| ld (ix+22), $C8 | |
| ld (ix+23), $7B | |
| jr _LABEL_6719_ | |
| _LABEL_66FD_: | |
| ld (ix+22), $CD | |
| ld (ix+23), $7B | |
| jr _LABEL_6719_ | |
| _LABEL_6707_: | |
| ld (ix+22), $D2 | |
| ld (ix+23), $7B | |
| jr _LABEL_6719_ | |
| _LABEL_6711_: | |
| ld (ix+22), $D7 | |
| ld (ix+23), $7B | |
| _LABEL_6719_: | |
| ld (ix+24), $08 | |
| ld (ix+21), $00 | |
| ld (ix+20), $00 | |
| ld (ix+0), $1F | |
| ld (ix+1), $66 | |
| jp _LABEL_661F_ | |
| ; 20th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_6730: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $50 | |
| ld (ix+27), $00 | |
| call _LABEL_569C_ | |
| ld (ix+0), $0E | |
| ld (ix+1), $65 | |
| ld (ix+22), $D2 | |
| ld (ix+23), $7B | |
| ret | |
| ; 28th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_6757: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $E6 | |
| ld (ix+27), $00 | |
| call _LABEL_569C_ | |
| ld (ix+0), $0E | |
| ld (ix+1), $65 | |
| ld (ix+22), $D2 | |
| ld (ix+23), $7B | |
| ret | |
| ; 11th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_677E: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+26), $3C | |
| ld (ix+27), $00 | |
| call _LABEL_569C_ | |
| ld (ix+22), $04 | |
| ld (ix+23), $7C | |
| ld (ix+0), $A1 | |
| ld (ix+1), $67 | |
| ret | |
| _LABEL_67A1_: | |
| call _LABEL_5567_ | |
| ret c | |
| call _LABEL_553A_ | |
| ld a, (ix+28) | |
| and $02 | |
| jp nz, _LABEL_481B_ | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_67BE_ | |
| cp $09 | |
| jr z, _LABEL_67BE_ | |
| jp _LABEL_481B_ | |
| _LABEL_67BE_: | |
| call _LABEL_1EB1_ | |
| ret c | |
| call _LABEL_557D_ | |
| jr nc, _LABEL_67DF_ | |
| call _LABEL_55BF_ | |
| jr c, _LABEL_67DF_ | |
| ld (ix+21), $00 | |
| ld (ix+20), $00 | |
| ld (ix+0), $74 | |
| ld (ix+1), $69 | |
| jp _LABEL_6974_ | |
| _LABEL_67DF_: | |
| call GetRandomNumber | |
| and $03 | |
| jr nz, _LABEL_67E8_ | |
| ld a, $02 | |
| _LABEL_67E8_: | |
| ld (ix+25), a | |
| call _LABEL_52A1_ | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_67FC_ | |
| rrca | |
| jr c, _LABEL_680A_ | |
| rrca | |
| jr c, _LABEL_6818_ | |
| jr _LABEL_6826_ | |
| _LABEL_67FC_: | |
| ld (ix+4), $01 | |
| call _LABEL_538E_ | |
| call _LABEL_5420_ | |
| jr c, _LABEL_680A_ | |
| jr _LABEL_6831_ | |
| _LABEL_680A_: | |
| ld (ix+4), $02 | |
| call _LABEL_538E_ | |
| call _LABEL_5420_ | |
| jr c, _LABEL_6818_ | |
| jr _LABEL_6831_ | |
| _LABEL_6818_: | |
| ld (ix+4), $04 | |
| call _LABEL_538E_ | |
| call _LABEL_5420_ | |
| jr c, _LABEL_6826_ | |
| jr _LABEL_6831_ | |
| _LABEL_6826_: | |
| ld (ix+4), $08 | |
| call _LABEL_538E_ | |
| call _LABEL_5420_ | |
| ret c | |
| _LABEL_6831_: | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $08 | |
| ld (ix+22), $DC | |
| ld (ix+23), $7B | |
| ld (ix+0), $4B | |
| ld (ix+1), $68 | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jp z, _LABEL_6931_ | |
| ld a, (ix+24) | |
| cp $04 | |
| call z, _LABEL_685D_ | |
| ret | |
| _LABEL_685D_: | |
| ld (ix+4), $00 | |
| ld (ix+22), $04 | |
| ld (ix+23), $7C | |
| ld a, (ix+7) | |
| ld (ix+5), a | |
| ld a, (ix+8) | |
| ld (ix+6), a | |
| jp _LABEL_550D_ | |
| _LABEL_6878_: | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_6889_ | |
| ld a, (ix+24) | |
| cp $08 | |
| call z, _LABEL_69C6_ | |
| ret | |
| _LABEL_6889_: | |
| ld (ix+24), $10 | |
| ld (ix+0), $95 | |
| ld (ix+1), $68 | |
| ld a, ($C3C2) | |
| or a | |
| ret nz | |
| ld (ix+0), $AA | |
| ld (ix+1), $68 | |
| ld a, SoundEffectA0 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| dec (ix+24) | |
| jr z, _LABEL_68BC_ | |
| ld a, (ix+24) | |
| cp $01 | |
| jr nz, _LABEL_68B9_ | |
| call _LABEL_5302_ | |
| _LABEL_68B9_: | |
| jp _LABEL_5643_ | |
| _LABEL_68BC_: | |
| ld a, (ix+29) | |
| or a | |
| jr nz, _LABEL_6931_ | |
| ld a, $01 | |
| ld ($C102), a | |
| call _LABEL_51A5_ | |
| jr c, _LABEL_6931_ | |
| ld a, (DizzinessTicksLeft) | |
| or a | |
| jr nz, _LABEL_6931_ | |
| ld a, (BlindnessTicksLeft) | |
| or a | |
| jr nz, _LABEL_6931_ | |
| call GetRandomNumber | |
| cp $40 | |
| jp nc, _LABEL_6931_ | |
| ld (ix+24), $10 | |
| ld (ix+0), $EC | |
| ld (ix+1), $68 | |
| dec (ix+24) | |
| ret nz | |
| call GetRandomNumber | |
| and $07 | |
| ld b, $08 | |
| add a, b | |
| push af | |
| ld a, (ix+31) | |
| cp $0A | |
| jr z, _LABEL_6918_ | |
| pop af | |
| call _LABEL_21BF_ | |
| ld a, $01 | |
| ld ($C60E), a | |
| ld ($C606), a | |
| ld a, $08 | |
| ld (BlindnessTicksLeft), a | |
| ld a, PlayerFogMessage | |
| ld (CurrentMessage), a | |
| jr _LABEL_6921_ | |
| _LABEL_6918_: | |
| pop af | |
| ld (DizzinessTicksLeft), a | |
| ld a, PlayerLightheadedMessage | |
| ld (CurrentMessage), a | |
| _LABEL_6921_: | |
| ld (ix+24), $10 | |
| ld (ix+0), $2D | |
| ld (ix+1), $69 | |
| dec (ix+24) | |
| ret nz | |
| _LABEL_6931_: | |
| call _LABEL_5655_ | |
| ld (ix+25), $00 | |
| ld (ix+0), $A1 | |
| ld (ix+1), $67 | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_6950_ | |
| rrca | |
| jr c, _LABEL_6959_ | |
| rrca | |
| jr c, _LABEL_6962_ | |
| rrca | |
| jr c, _LABEL_696B_ | |
| ret | |
| _LABEL_6950_: | |
| ld (ix+22), $FF | |
| ld (ix+23), $7B | |
| ret | |
| _LABEL_6959_: | |
| ld (ix+22), $04 | |
| ld (ix+23), $7C | |
| ret | |
| _LABEL_6962_: | |
| ld (ix+22), $09 | |
| ld (ix+23), $7C | |
| ret | |
| _LABEL_696B_: | |
| ld (ix+22), $0E | |
| ld (ix+23), $7C | |
| ret | |
| _LABEL_6974_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_6931_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| ld (ix+30), $01 | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_6991_ | |
| rrca | |
| jr c, _LABEL_699B_ | |
| rrca | |
| jr c, _LABEL_69A5_ | |
| jr _LABEL_69AF_ | |
| _LABEL_6991_: | |
| ld (ix+22), $F8 | |
| ld (ix+23), $7B | |
| jr _LABEL_69B7_ | |
| _LABEL_699B_: | |
| ld (ix+22), $E3 | |
| ld (ix+23), $7B | |
| jr _LABEL_69B7_ | |
| _LABEL_69A5_: | |
| ld (ix+22), $EA | |
| ld (ix+23), $7B | |
| jr _LABEL_69B7_ | |
| _LABEL_69AF_: | |
| ld (ix+22), $F1 | |
| ld (ix+23), $7B | |
| _LABEL_69B7_: | |
| ld (ix+24), $10 | |
| ld (ix+0), $78 | |
| ld (ix+1), $68 | |
| jp _LABEL_6878_ | |
| _LABEL_69C6_: | |
| ld hl, $7A70 | |
| ld ($C3C0), hl | |
| jp _LABEL_56A9_ | |
| ; 23rd entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_69CF: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+26), $A0 | |
| ld (ix+27), $00 | |
| call _LABEL_569C_ | |
| ld (ix+22), $04 | |
| ld (ix+23), $7C | |
| ld (ix+0), $A1 | |
| ld (ix+1), $67 | |
| ret | |
| ; 12th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_69F2: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $5A | |
| ld (ix+27), $00 | |
| ld (ix+28), $02 | |
| call _LABEL_569C_ | |
| ld (ix+22), $13 | |
| ld (ix+23), $7C | |
| ld (ix+0), $1D | |
| ld (ix+1), $6A | |
| ret | |
| _LABEL_6A1D_: | |
| call _LABEL_5567_ | |
| ret c | |
| ld (ix+3), $65 | |
| ld a, (ix+28) | |
| and $02 | |
| ret nz | |
| ld a, (ix+31) | |
| cp $0B | |
| jr nz, _LABEL_6A38_ | |
| ld a, (ix+28) | |
| and $10 | |
| ret z | |
| _LABEL_6A38_: | |
| ld (ix+0), $40 | |
| ld (ix+1), $6A | |
| call _LABEL_553A_ | |
| ld a, (ix+28) | |
| and $02 | |
| jp nz, _LABEL_481B_ | |
| ld a, (ix+31) | |
| cp $0B | |
| jr nz, _LABEL_6A5A_ | |
| ld a, (ix+28) | |
| and $10 | |
| jp z, _LABEL_481B_ | |
| _LABEL_6A5A_: | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_6A68_ | |
| cp $09 | |
| jr z, _LABEL_6A68_ | |
| jp _LABEL_481B_ | |
| _LABEL_6A68_: | |
| call _LABEL_5473_ | |
| jr nc, _LABEL_6A8E_ | |
| ld (ix+0), $76 | |
| ld (ix+1), $6B | |
| jp _LABEL_6B76_ | |
| _LABEL_6A78_: | |
| ld (ix+24), $08 | |
| ld (ix+0), $84 | |
| ld (ix+1), $6A | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jp z, _LABEL_6B6A_ | |
| ret | |
| _LABEL_6A8E_: | |
| ld a, (ix+28) | |
| and $01 | |
| jr nz, _LABEL_6AA6_ | |
| call _LABEL_51DE_ | |
| _LABEL_6A98_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_6AAB_ | |
| rrca | |
| jr c, _LABEL_6AC3_ | |
| rrca | |
| jr c, _LABEL_6ADB_ | |
| jr _LABEL_6AF5_ | |
| _LABEL_6AA6_: | |
| call _LABEL_52A1_ | |
| jr _LABEL_6A98_ | |
| _LABEL_6AAB_: | |
| ld hl, $FFE0 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_6AB9_ | |
| ld (ix+4), $01 | |
| jr _LABEL_6B02_ | |
| _LABEL_6AB9_: | |
| ld a, (ix+4) | |
| and $FE | |
| ld (ix+4), a | |
| jr _LABEL_6A98_ | |
| _LABEL_6AC3_: | |
| ld hl, $0020 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_6AD1_ | |
| ld (ix+4), $02 | |
| jr _LABEL_6B02_ | |
| _LABEL_6AD1_: | |
| ld a, (ix+4) | |
| and $FD | |
| ld (ix+4), a | |
| jr _LABEL_6A98_ | |
| _LABEL_6ADB_: | |
| ld hl, $FFFF | |
| call _LABEL_5420_ | |
| jr c, _LABEL_6AE9_ | |
| ld (ix+4), $04 | |
| jr _LABEL_6B02_ | |
| _LABEL_6AE9_: | |
| ld a, (ix+4) | |
| and $FB | |
| or $03 | |
| ld (ix+4), a | |
| jr _LABEL_6A98_ | |
| _LABEL_6AF5_: | |
| ld hl, $0001 | |
| call _LABEL_5420_ | |
| jp c, _LABEL_6A78_ | |
| ld (ix+4), $08 | |
| _LABEL_6B02_: | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $08 | |
| ld (ix+0), $14 | |
| ld (ix+1), $6B | |
| call _LABEL_47BB_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_6B6A_ | |
| ret | |
| _LABEL_6B20_: | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_6B31_ | |
| ld a, (ix+24) | |
| cp $08 | |
| call z, _LABEL_6B97_ | |
| ret | |
| _LABEL_6B31_: | |
| ld (ix+24), $10 | |
| ld (ix+0), $3D | |
| ld (ix+1), $6B | |
| call _LABEL_553A_ | |
| ld a, ($C3C2) | |
| or a | |
| ret nz | |
| ld (ix+0), $55 | |
| ld (ix+1), $6B | |
| ld a, SoundEffectA0 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_6B6A_ | |
| ld a, (ix+24) | |
| cp $01 | |
| jr nz, _LABEL_6B67_ | |
| call _LABEL_5302_ | |
| _LABEL_6B67_: | |
| jp _LABEL_5643_ | |
| _LABEL_6B6A_: | |
| call _LABEL_5655_ | |
| ld (ix+0), $40 | |
| ld (ix+1), $6A | |
| ret | |
| _LABEL_6B76_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_6B6A_ | |
| call _LABEL_553A_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| ld (ix+30), $01 | |
| ld (ix+24), $10 | |
| ld (ix+0), $20 | |
| ld (ix+1), $6B | |
| jp _LABEL_6B20_ | |
| _LABEL_6B97_: | |
| ld hl, $7A8D | |
| ld ($C3C0), hl | |
| jp _LABEL_56A9_ | |
| ; 24th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_6BA0: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $DC | |
| ld (ix+27), $00 | |
| ld (ix+28), $02 | |
| call _LABEL_569C_ | |
| ld (ix+22), $13 | |
| ld (ix+23), $7C | |
| ld (ix+0), $1D | |
| ld (ix+1), $6A | |
| ret | |
| ; 13th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_6BCB: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $04 | |
| ld (ix+26), $14 | |
| ld (ix+27), $00 | |
| call _LABEL_569C_ | |
| ld (ix+22), $18 | |
| ld (ix+23), $7C | |
| ld (ix+0), $F2 | |
| ld (ix+1), $6B | |
| ret | |
| _LABEL_6BF2_: | |
| call _LABEL_5567_ | |
| ret c | |
| call _LABEL_553A_ | |
| ld a, (ix+28) | |
| and $02 | |
| jp nz, _LABEL_481B_ | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_6C0F_ | |
| cp $09 | |
| jr z, _LABEL_6C0F_ | |
| jp _LABEL_481B_ | |
| _LABEL_6C0F_: | |
| ld (ix+25), $02 | |
| call _LABEL_5473_ | |
| jr nc, _LABEL_6C39_ | |
| ld (ix+0), $26 | |
| ld (ix+1), $6D | |
| jp _LABEL_6D26_ | |
| _LABEL_6C23_: | |
| ld (ix+24), $08 | |
| ld (ix+0), $2F | |
| ld (ix+1), $6C | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jp z, _LABEL_6D16_ | |
| ret | |
| _LABEL_6C39_: | |
| call GetRandomNumber | |
| cp $80 | |
| jr c, _LABEL_6C4C_ | |
| ld a, (ix+28) | |
| and $01 | |
| jr nz, _LABEL_6C4C_ | |
| call _LABEL_51DE_ | |
| jr _LABEL_6C4F_ | |
| _LABEL_6C4C_: | |
| call _LABEL_52A1_ | |
| _LABEL_6C4F_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_6C5D_ | |
| rrca | |
| jr c, _LABEL_6C75_ | |
| rrca | |
| jr c, _LABEL_6C8D_ | |
| jr _LABEL_6CA7_ | |
| _LABEL_6C5D_: | |
| ld hl, $FFE0 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_6C6B_ | |
| ld (ix+4), $01 | |
| jr _LABEL_6CB4_ | |
| _LABEL_6C6B_: | |
| ld a, (ix+4) | |
| and $FE | |
| ld (ix+4), a | |
| jr _LABEL_6C4F_ | |
| _LABEL_6C75_: | |
| ld hl, $0020 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_6C83_ | |
| ld (ix+4), $02 | |
| jr _LABEL_6CB4_ | |
| _LABEL_6C83_: | |
| ld a, (ix+4) | |
| and $FD | |
| ld (ix+4), a | |
| jr _LABEL_6C4F_ | |
| _LABEL_6C8D_: | |
| ld hl, $FFFF | |
| call _LABEL_5420_ | |
| jr c, _LABEL_6C9B_ | |
| ld (ix+4), $04 | |
| jr _LABEL_6CB4_ | |
| _LABEL_6C9B_: | |
| ld a, (ix+4) | |
| and $FB | |
| or $03 | |
| ld (ix+4), a | |
| jr _LABEL_6C4F_ | |
| _LABEL_6CA7_: | |
| ld hl, $0001 | |
| call _LABEL_5420_ | |
| jp c, _LABEL_6C23_ | |
| ld (ix+4), $08 | |
| _LABEL_6CB4_: | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $04 | |
| ld (ix+0), $C6 | |
| ld (ix+1), $6C | |
| call _LABEL_47BB_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_6CD2_ | |
| ret | |
| _LABEL_6CD2_: | |
| ld a, (ix+7) | |
| ld (ix+5), a | |
| ld a, (ix+8) | |
| ld (ix+6), a | |
| dec (ix+25) | |
| jr z, _LABEL_6D16_ | |
| ld (ix+0), $13 | |
| ld (ix+1), $6C | |
| ret | |
| _LABEL_6CEC_: | |
| ld a, SoundEffectA0 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| ld (ix+0), $FC | |
| ld (ix+1), $6C | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_6D16_ | |
| ld a, (ix+30) | |
| or a | |
| ret z | |
| ld a, (ix+24) | |
| cp $01 | |
| jr nz, _LABEL_6D13_ | |
| call _LABEL_5302_ | |
| _LABEL_6D13_: | |
| jp _LABEL_5643_ | |
| _LABEL_6D16_: | |
| call _LABEL_5655_ | |
| ld (ix+25), $00 | |
| ld (ix+0), $F2 | |
| ld (ix+1), $6B | |
| ret | |
| _LABEL_6D26_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_6D16_ | |
| call _LABEL_553A_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| ld (ix+30), $01 | |
| ld (ix+24), $10 | |
| ld (ix+0), $EC | |
| ld (ix+1), $6C | |
| jp _LABEL_6CEC_ | |
| ; 14th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_6D47: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $64 | |
| ld (ix+27), $00 | |
| ld (ix+3), $6C | |
| call _LABEL_569C_ | |
| ld (ix+0), $6A | |
| ld (ix+1), $6D | |
| ret | |
| _LABEL_6D6A_: | |
| call _LABEL_5567_ | |
| ret c | |
| ld a, (ix+28) | |
| and $02 | |
| jp nz, _LABEL_481B_ | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_6D84_ | |
| cp $09 | |
| jr z, _LABEL_6D84_ | |
| jp _LABEL_481B_ | |
| _LABEL_6D84_: | |
| call _LABEL_5473_ | |
| jr nc, _LABEL_6DA7_ | |
| ld (ix+0), $F6 | |
| ld (ix+1), $6E | |
| jp _LABEL_6EF6_ | |
| _LABEL_6D94_: | |
| ld (ix+24), $08 | |
| ld (ix+0), $A0 | |
| ld (ix+1), $6D | |
| dec (ix+24) | |
| jp z, _LABEL_6EE6_ | |
| ret | |
| _LABEL_6DA7_: | |
| ld a, (ix+28) | |
| and $01 | |
| jr nz, _LABEL_6DC4_ | |
| call _LABEL_568C_ | |
| jr nc, _LABEL_6DC4_ | |
| call _LABEL_51DE_ | |
| _LABEL_6DB6_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_6DC9_ | |
| rrca | |
| jr c, _LABEL_6DEA_ | |
| rrca | |
| jr c, _LABEL_6E0B_ | |
| jr _LABEL_6E2E_ | |
| _LABEL_6DC4_: | |
| call _LABEL_52A1_ | |
| jr _LABEL_6DB6_ | |
| _LABEL_6DC9_: | |
| ld hl, $FFE0 | |
| call _LABEL_5445_ | |
| jr c, _LABEL_6DE0_ | |
| call _LABEL_5420_ | |
| jr c, _LABEL_6DE0_ | |
| ld (ix+4), $01 | |
| ld (ix+3), $6F | |
| jr _LABEL_6E45_ | |
| _LABEL_6DE0_: | |
| ld a, (ix+4) | |
| and $FE | |
| ld (ix+4), a | |
| jr _LABEL_6DB6_ | |
| _LABEL_6DEA_: | |
| ld hl, $0020 | |
| call _LABEL_5445_ | |
| jr c, _LABEL_6E01_ | |
| call _LABEL_5420_ | |
| jr c, _LABEL_6E01_ | |
| ld (ix+4), $02 | |
| ld (ix+3), $6E | |
| jr _LABEL_6E45_ | |
| _LABEL_6E01_: | |
| ld a, (ix+4) | |
| and $FD | |
| ld (ix+4), a | |
| jr _LABEL_6DB6_ | |
| _LABEL_6E0B_: | |
| ld hl, $FFFF | |
| call _LABEL_5445_ | |
| jr c, _LABEL_6E22_ | |
| call _LABEL_5420_ | |
| jr c, _LABEL_6E22_ | |
| ld (ix+4), $04 | |
| ld (ix+3), $6C | |
| jr _LABEL_6E45_ | |
| _LABEL_6E22_: | |
| ld a, (ix+4) | |
| and $FB | |
| or $03 | |
| ld (ix+4), a | |
| jr _LABEL_6DB6_ | |
| _LABEL_6E2E_: | |
| ld hl, $0001 | |
| call _LABEL_5445_ | |
| jp c, _LABEL_6D94_ | |
| call _LABEL_5420_ | |
| jp c, _LABEL_6D94_ | |
| ld (ix+4), $08 | |
| ld (ix+3), $6D | |
| _LABEL_6E45_: | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $08 | |
| ld (ix+0), $57 | |
| ld (ix+1), $6E | |
| call _LABEL_47BB_ | |
| dec (ix+24) | |
| jp z, _LABEL_6EE6_ | |
| ret | |
| _LABEL_6E61_: | |
| ld a, SoundEffectA0 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| ld (ix+0), $71 | |
| ld (ix+1), $6E | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_6E8B_ | |
| ld a, (ix+30) | |
| or a | |
| ret z | |
| ld a, (ix+24) | |
| cp $01 | |
| jr nz, _LABEL_6E88_ | |
| call _LABEL_5302_ | |
| _LABEL_6E88_: | |
| jp _LABEL_5643_ | |
| _LABEL_6E8B_: | |
| ld a, (ix+29) | |
| or a | |
| jr nz, _LABEL_6EE6_ | |
| ld a, $01 | |
| ld ($C102), a | |
| ld a, (ix+28) | |
| and $08 | |
| jr nz, _LABEL_6EE6_ | |
| call GetRandomNumber | |
| cp $80 | |
| jr nc, _LABEL_6EE6_ | |
| ld a, (Food) | |
| or a | |
| jr z, _LABEL_6EE6_ | |
| call GetRandomNumber | |
| and $07 | |
| ld b, $08 | |
| add a, b | |
| daa | |
| ld b, a | |
| ld a, (Food) | |
| sub b | |
| daa | |
| jr c, _LABEL_6EBD_ | |
| jr _LABEL_6EBE_ | |
| _LABEL_6EBD_: | |
| xor a | |
| _LABEL_6EBE_: | |
| ld (Food), a | |
| ld (ix+24), $10 | |
| ld (ix+0), $CD | |
| ld (ix+1), $6E | |
| dec (ix+24) | |
| ret nz | |
| ld a, FoodStolenMessage | |
| ld (CurrentMessage), a | |
| ld (ix+24), $10 | |
| ld (ix+0), $E2 | |
| ld (ix+1), $6E | |
| dec (ix+24) | |
| ret nz | |
| _LABEL_6EE6_: | |
| call _LABEL_5655_ | |
| ld (ix+25), $00 | |
| ld (ix+0), $6A | |
| ld (ix+1), $6D | |
| ret | |
| _LABEL_6EF6_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_6EE6_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| ld (ix+30), $01 | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_6F13_ | |
| rrca | |
| jr c, _LABEL_6F1D_ | |
| rrca | |
| jr c, _LABEL_6F27_ | |
| jr _LABEL_6F31_ | |
| _LABEL_6F13_: | |
| ld (ix+22), $39 | |
| ld (ix+23), $7C | |
| jr _LABEL_6F39_ | |
| _LABEL_6F1D_: | |
| ld (ix+22), $46 | |
| ld (ix+23), $7C | |
| jr _LABEL_6F39_ | |
| _LABEL_6F27_: | |
| ld (ix+22), $1F | |
| ld (ix+23), $7C | |
| jr _LABEL_6F39_ | |
| _LABEL_6F31_: | |
| ld (ix+22), $2C | |
| ld (ix+23), $7C | |
| _LABEL_6F39_: | |
| ld (ix+24), $12 | |
| ld (ix+0), $61 | |
| ld (ix+1), $6E | |
| jp _LABEL_6E61_ | |
| ; 30th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_6F48: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $FA | |
| ld (ix+27), $00 | |
| ld (ix+3), $6C | |
| call _LABEL_569C_ | |
| ld (ix+0), $6A | |
| ld (ix+1), $6D | |
| ret | |
| ; 17th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_6F6B: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+26), $5A | |
| ld (ix+27), $00 | |
| call _LABEL_569C_ | |
| ld (ix+22), $53 | |
| ld (ix+23), $7C | |
| ld (ix+0), $8E | |
| ld (ix+1), $6F | |
| ret | |
| _LABEL_6F8E_: | |
| call _LABEL_5567_ | |
| ret c | |
| call _LABEL_553A_ | |
| ld a, (ix+28) | |
| and $02 | |
| jp nz, _LABEL_481B_ | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_6FAB_ | |
| cp $09 | |
| jr z, _LABEL_6FAB_ | |
| jp _LABEL_481B_ | |
| _LABEL_6FAB_: | |
| call _LABEL_1EB1_ | |
| ret c | |
| call _LABEL_557D_ | |
| ret nc | |
| call _LABEL_55BF_ | |
| ret c | |
| call GetRandomNumber | |
| cp $40 | |
| ret c | |
| ld (ix+0), $B4 | |
| ld (ix+1), $70 | |
| jp _LABEL_70B4_ | |
| _LABEL_6FC8_: | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_6FD9_ | |
| ld a, (ix+24) | |
| cp $08 | |
| call z, _LABEL_70D5_ | |
| ret | |
| _LABEL_6FD9_: | |
| ld (ix+24), $10 | |
| ld (ix+0), $E5 | |
| ld (ix+1), $6F | |
| call _LABEL_553A_ | |
| ld a, ($C3C2) | |
| or a | |
| ret nz | |
| ld (ix+0), $FD | |
| ld (ix+1), $6F | |
| ld a, SoundEffectA0 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| call _LABEL_553A_ | |
| ; 5th entry of Jump Table from 1C108 (indexed by PlaySoundSlot) | |
| _LABEL_7000_: | |
| dec (ix+24) | |
| jr z, _LABEL_7012_ | |
| ld a, (ix+24) | |
| cp $01 | |
| jr nz, _LABEL_700F_ | |
| call _LABEL_5302_ | |
| _LABEL_700F_: | |
| jp _LABEL_5643_ | |
| _LABEL_7012_: | |
| ld a, (ix+29) | |
| or a | |
| jp nz, _LABEL_709E_ | |
| ld a, (ix+31) | |
| cp $10 | |
| jr z, _LABEL_709E_ | |
| cp $18 | |
| jr z, _LABEL_702B_ | |
| call GetRandomNumber | |
| cp $80 | |
| jr nc, _LABEL_709E_ | |
| _LABEL_702B_: | |
| ld a, $01 | |
| ld ($C102), a | |
| ld a, (ix+28) | |
| and $08 | |
| jr nz, _LABEL_709E_ | |
| ld hl, (MaxHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_709E_ | |
| call GetRandomNumber | |
| and $07 | |
| ld b, $08 | |
| push af | |
| ld a, (ix+31) | |
| cp $18 | |
| call z, _LABEL_7082_ | |
| pop af | |
| add a, b | |
| ld c, a | |
| ld b, $00 | |
| ld hl, (MaxHPLow) | |
| or a | |
| sbc hl, bc | |
| call c, _LABEL_7077_ | |
| ld (MaxHPLow), hl | |
| ld bc, (CurrentHPLow) | |
| or a | |
| sbc hl, bc | |
| call c, _LABEL_707B_ | |
| ld (ix+24), $10 | |
| ld (ix+0), $85 | |
| ld (ix+1), $70 | |
| jr _LABEL_7085_ | |
| _LABEL_7077_: | |
| ld hl, $0000 | |
| ret | |
| _LABEL_707B_: | |
| ld hl, (MaxHPLow) | |
| ld (CurrentHPLow), hl | |
| ret | |
| _LABEL_7082_: | |
| ld b, $0C | |
| ret | |
| _LABEL_7085_: | |
| dec (ix+24) | |
| ret nz | |
| ld a, PlayerStrengthDownMessage | |
| ld (CurrentMessage), a | |
| ld (ix+24), $10 | |
| ld (ix+0), $9A | |
| ld (ix+1), $70 | |
| dec (ix+24) | |
| ret nz | |
| _LABEL_709E_: | |
| ld a, $01 | |
| ld ($C102), a | |
| ld (ix+30), $00 | |
| ld (ix+24), $00 | |
| ld (ix+0), $8E | |
| ld (ix+1), $6F | |
| ret | |
| _LABEL_70B4_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_709E_ | |
| call _LABEL_553A_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| ld (ix+30), $01 | |
| ld (ix+24), $10 | |
| ld (ix+0), $C8 | |
| ld (ix+1), $6F | |
| jp _LABEL_6FC8_ | |
| _LABEL_70D5_: | |
| ld hl, $7AA2 | |
| ld ($C3C0), hl | |
| jp _LABEL_56A9_ | |
| ; 21st entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_70DE: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+26), $5F | |
| ld (ix+27), $00 | |
| call _LABEL_569C_ | |
| ld (ix+22), $53 | |
| ld (ix+23), $7C | |
| ld (ix+0), $8E | |
| ld (ix+1), $6F | |
| ret | |
| ; 25th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_7101: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+26), $64 | |
| ld (ix+27), $00 | |
| call _LABEL_569C_ | |
| ld (ix+22), $53 | |
| ld (ix+23), $7C | |
| ld (ix+0), $8E | |
| ld (ix+1), $6F | |
| ret | |
| ; 31st entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_7124: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $E0 | |
| ld (ix+27), $01 | |
| ld (ix+3), $88 | |
| call _LABEL_569C_ | |
| ld (ix+0), $47 | |
| ld (ix+1), $71 | |
| ret | |
| _LABEL_7147_: | |
| call _LABEL_5567_ | |
| ret c | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_7159_ | |
| cp $09 | |
| jr z, _LABEL_7159_ | |
| jp _LABEL_481B_ | |
| _LABEL_7159_: | |
| call _LABEL_1EB1_ | |
| ret c | |
| call _LABEL_5473_ | |
| jr c, _LABEL_7173_ | |
| call _LABEL_557D_ | |
| jr nc, _LABEL_7192_ | |
| call _LABEL_55BF_ | |
| jr c, _LABEL_7192_ | |
| call GetRandomNumber | |
| cp $80 | |
| jr nc, _LABEL_7192_ | |
| _LABEL_7173_: | |
| ld (ix+0), $88 | |
| ld (ix+1), $72 | |
| jp _LABEL_7288_ | |
| _LABEL_717E_: | |
| ld (ix+24), $08 | |
| ld (ix+0), $8B | |
| ld (ix+1), $71 | |
| ret | |
| _LABEL_718B_: | |
| dec (ix+24) | |
| jp z, _LABEL_727C_ | |
| ret | |
| _LABEL_7192_: | |
| call _LABEL_51DE_ | |
| _LABEL_7195_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_71A3_ | |
| rrca | |
| jr c, _LABEL_71C3_ | |
| rrca | |
| jr c, _LABEL_71E3_ | |
| jr _LABEL_7205_ | |
| _LABEL_71A3_: | |
| ld hl, $FFE0 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_71B9_ | |
| ld (ix+4), $01 | |
| ld (ix+22), $62 | |
| ld (ix+23), $7C | |
| jr _LABEL_721A_ | |
| _LABEL_71B9_: | |
| ld a, (ix+4) | |
| and $FE | |
| ld (ix+4), a | |
| jr _LABEL_7195_ | |
| _LABEL_71C3_: | |
| ld hl, $0020 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_71D9_ | |
| ld (ix+4), $02 | |
| ld (ix+22), $67 | |
| ld (ix+23), $7C | |
| jr _LABEL_721A_ | |
| _LABEL_71D9_: | |
| ld a, (ix+4) | |
| and $FD | |
| ld (ix+4), a | |
| jr _LABEL_7195_ | |
| _LABEL_71E3_: | |
| ld hl, $FFFF | |
| call _LABEL_5420_ | |
| jr c, _LABEL_71F9_ | |
| ld (ix+4), $04 | |
| ld (ix+22), $58 | |
| ld (ix+23), $7C | |
| jr _LABEL_721A_ | |
| _LABEL_71F9_: | |
| ld a, (ix+4) | |
| and $FB | |
| or $03 | |
| ld (ix+4), a | |
| jr _LABEL_7195_ | |
| _LABEL_7205_: | |
| ld hl, $0001 | |
| call _LABEL_5420_ | |
| jp c, _LABEL_717E_ | |
| ld (ix+4), $08 | |
| ld (ix+22), $5D | |
| ld (ix+23), $7C | |
| _LABEL_721A_: | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $08 | |
| ld (ix+0), $2C | |
| ld (ix+1), $72 | |
| call _LABEL_47BB_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_727C_ | |
| ret | |
| _LABEL_7238_: | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_7249_ | |
| ld a, (ix+24) | |
| cp $08 | |
| call z, _LABEL_72DA_ | |
| ret | |
| _LABEL_7249_: | |
| ld (ix+24), $10 | |
| ld (ix+0), $55 | |
| ld (ix+1), $72 | |
| ld a, ($C3C2) | |
| or a | |
| ret nz | |
| ld (ix+0), $6A | |
| ld (ix+1), $72 | |
| ld a, SoundEffectA4 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| dec (ix+24) | |
| jr z, _LABEL_727C_ | |
| ld a, (ix+24) | |
| cp $01 | |
| jr nz, _LABEL_7279_ | |
| call _LABEL_5302_ | |
| _LABEL_7279_: | |
| jp _LABEL_5643_ | |
| _LABEL_727C_: | |
| call _LABEL_5655_ | |
| ld (ix+0), $47 | |
| ld (ix+1), $71 | |
| ret | |
| _LABEL_7288_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_727C_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| ld (ix+30), $01 | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_72A5_ | |
| rrca | |
| jr c, _LABEL_72AF_ | |
| rrca | |
| jr c, _LABEL_72B9_ | |
| jr _LABEL_72C3_ | |
| _LABEL_72A5_: | |
| ld (ix+22), $76 | |
| ld (ix+23), $7C | |
| jr _LABEL_72CB_ | |
| _LABEL_72AF_: | |
| ld (ix+22), $7B | |
| ld (ix+23), $7C | |
| jr _LABEL_72CB_ | |
| _LABEL_72B9_: | |
| ld (ix+22), $6C | |
| ld (ix+23), $7C | |
| jr _LABEL_72CB_ | |
| _LABEL_72C3_: | |
| ld (ix+22), $71 | |
| ld (ix+23), $7C | |
| _LABEL_72CB_: | |
| ld (ix+24), $0A | |
| ld (ix+0), $38 | |
| ld (ix+1), $72 | |
| jp _LABEL_7238_ | |
| _LABEL_72DA_: | |
| ld hl, $7ABF | |
| ld ($C3C0), hl | |
| jp _LABEL_56A9_ | |
| ; 18th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_72E3: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $40 | |
| ld (ix+27), $00 | |
| ld (ix+3), $78 | |
| call _LABEL_569C_ | |
| ld (ix+0), $06 | |
| ld (ix+1), $73 | |
| ret | |
| _LABEL_7306_: | |
| call _LABEL_5567_ | |
| ret c | |
| ld a, (ix+28) | |
| and $02 | |
| jp nz, _LABEL_481B_ | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_7320_ | |
| cp $09 | |
| jr z, _LABEL_7320_ | |
| jp _LABEL_481B_ | |
| _LABEL_7320_: | |
| call _LABEL_1EB1_ | |
| jr c, _LABEL_7348_ | |
| call _LABEL_5473_ | |
| jr nc, _LABEL_7348_ | |
| ld (ix+0), $E5 | |
| ld (ix+1), $74 | |
| jp _LABEL_74E5_ | |
| _LABEL_7335_: | |
| ld (ix+24), $08 | |
| ld (ix+0), $41 | |
| ld (ix+1), $73 | |
| dec (ix+24) | |
| jp z, _LABEL_74D9_ | |
| ret | |
| _LABEL_7348_: | |
| ld a, (ix+28) | |
| and $01 | |
| jr nz, _LABEL_7360_ | |
| call _LABEL_51DE_ | |
| _LABEL_7352_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_7365_ | |
| rrca | |
| jr c, _LABEL_7385_ | |
| rrca | |
| jr c, _LABEL_73A5_ | |
| jr _LABEL_73C7_ | |
| _LABEL_7360_: | |
| call _LABEL_52A1_ | |
| jr _LABEL_7352_ | |
| _LABEL_7365_: | |
| ld hl, $FFE0 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_737B_ | |
| ld (ix+4), $01 | |
| ld (ix+22), $8A | |
| ld (ix+23), $7C | |
| jr _LABEL_73DC_ | |
| _LABEL_737B_: | |
| ld a, (ix+4) | |
| and $FE | |
| ld (ix+4), a | |
| jr _LABEL_7352_ | |
| _LABEL_7385_: | |
| ld hl, $0020 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_739B_ | |
| ld (ix+4), $02 | |
| ld (ix+22), $8F | |
| ld (ix+23), $7C | |
| jr _LABEL_73DC_ | |
| _LABEL_739B_: | |
| ld a, (ix+4) | |
| and $FD | |
| ld (ix+4), a | |
| jr _LABEL_7352_ | |
| _LABEL_73A5_: | |
| ld hl, $FFFF | |
| call _LABEL_5420_ | |
| jr c, _LABEL_73BB_ | |
| ld (ix+4), $04 | |
| ld (ix+22), $80 | |
| ld (ix+23), $7C | |
| jr _LABEL_73DC_ | |
| _LABEL_73BB_: | |
| ld a, (ix+4) | |
| and $FB | |
| or $03 | |
| ld (ix+4), a | |
| jr _LABEL_7352_ | |
| _LABEL_73C7_: | |
| ld hl, $0001 | |
| call _LABEL_5420_ | |
| jp c, _LABEL_7335_ | |
| ld (ix+4), $08 | |
| ld (ix+22), $85 | |
| ld (ix+23), $7C | |
| _LABEL_73DC_: | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $08 | |
| ld (ix+0), $EE | |
| ld (ix+1), $73 | |
| call _LABEL_47BB_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jp z, _LABEL_74D9_ | |
| ret | |
| _LABEL_73FB_: | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_740C_ | |
| ld a, (ix+24) | |
| cp $08 | |
| call z, _LABEL_7537_ | |
| ret | |
| _LABEL_740C_: | |
| ld (ix+0), $14 | |
| ld (ix+1), $74 | |
| ld a, ($C3C2) | |
| or a | |
| ret nz | |
| ld (ix+24), $10 | |
| ld (ix+0), $2D | |
| ld (ix+1), $74 | |
| ld a, SoundEffectA0 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| dec (ix+24) | |
| jr z, _LABEL_743B_ | |
| ld a, (ix+24) | |
| cp $01 | |
| ret nz | |
| jp _LABEL_5302_ | |
| _LABEL_743B_: | |
| ld a, (ix+29) | |
| or a | |
| jp nz, _LABEL_74D9_ | |
| ld a, (ix+28) | |
| and $08 | |
| jp nz, _LABEL_74D9_ | |
| ld a, (ix+31) | |
| cp $19 | |
| jr z, _LABEL_7489_ | |
| ld a, (EquippedRing) | |
| cp OgreRing | |
| jp z, _LABEL_74D9_ | |
| ld a, (ix+31) | |
| cp $15 | |
| jr z, _LABEL_7473_ | |
| call GetRandomNumber | |
| cp $40 | |
| jr nc, _LABEL_74D9_ | |
| ld a, (BasePW) | |
| or a | |
| jr z, _LABEL_74D9_ | |
| dec a | |
| ld (BasePW), a | |
| jr _LABEL_749E_ | |
| _LABEL_7473_: | |
| call GetRandomNumber | |
| cp $80 | |
| jr nc, _LABEL_74D9_ | |
| ld a, (BasePW) | |
| or a | |
| jr z, _LABEL_74D9_ | |
| dec a | |
| jr z, _LABEL_7484_ | |
| dec a | |
| _LABEL_7484_: | |
| ld (BasePW), a | |
| jr _LABEL_749E_ | |
| _LABEL_7489_: | |
| call GetRandomNumber | |
| cp $20 | |
| jr nc, _LABEL_74D9_ | |
| ld a, (CharacterLevel) | |
| cp $01 | |
| jr z, _LABEL_74D9_ | |
| dec a | |
| ld (CharacterLevel), a | |
| call _LABEL_496B_ | |
| _LABEL_749E_: | |
| ld a, SoundEffectA3 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| ld (ix+24), $10 | |
| ld (ix+0), $B2 | |
| ld (ix+1), $74 | |
| dec (ix+24) | |
| ret nz | |
| ld a, (ix+31) | |
| cp $19 | |
| jr z, _LABEL_74C4_ | |
| ld a, PlayerStrengthDownMessage2 | |
| ld (CurrentMessage), a | |
| jr _LABEL_74C9_ | |
| _LABEL_74C4_: | |
| ld a, LevelDownMessage2 | |
| ld (CurrentMessage), a | |
| _LABEL_74C9_: | |
| ld (ix+24), $10 | |
| ld (ix+0), $D5 | |
| ld (ix+1), $74 | |
| dec (ix+24) | |
| ret nz | |
| _LABEL_74D9_: | |
| call _LABEL_5655_ | |
| ld (ix+0), $06 | |
| ld (ix+1), $73 | |
| ret | |
| _LABEL_74E5_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_74D9_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| ld (ix+30), $01 | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_7502_ | |
| rrca | |
| jr c, _LABEL_750C_ | |
| rrca | |
| jr c, _LABEL_7516_ | |
| jr _LABEL_7520_ | |
| _LABEL_7502_: | |
| ld (ix+22), $8A | |
| ld (ix+23), $7C | |
| jr _LABEL_7528_ | |
| _LABEL_750C_: | |
| ld (ix+22), $8F | |
| ld (ix+23), $7C | |
| jr _LABEL_7528_ | |
| _LABEL_7516_: | |
| ld (ix+22), $80 | |
| ld (ix+23), $7C | |
| jr _LABEL_7528_ | |
| _LABEL_7520_: | |
| ld (ix+22), $85 | |
| ld (ix+23), $7C | |
| _LABEL_7528_: | |
| ld (ix+24), $10 | |
| ld (ix+0), $FB | |
| ld (ix+1), $73 | |
| jp _LABEL_73FB_ | |
| _LABEL_7537_: | |
| ld hl, $7AD3 | |
| ld ($C3C0), hl | |
| ld hl, ($C10A) | |
| ld ($C3CA), hl | |
| ld hl, ($C10D) | |
| ld ($C3CD), hl | |
| ld a, (ix+4) | |
| ld ($C3C4), a | |
| ret | |
| ; 22nd entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_7550: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $4E | |
| ld (ix+27), $00 | |
| ld (ix+3), $78 | |
| call _LABEL_569C_ | |
| ld (ix+0), $06 | |
| ld (ix+1), $73 | |
| ret | |
| ; 26th entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_7573: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $78 | |
| ld (ix+27), $00 | |
| ld (ix+3), $78 | |
| call _LABEL_569C_ | |
| ld (ix+0), $06 | |
| ld (ix+1), $73 | |
| ret | |
| ; 32nd entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_7596: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $B4 | |
| ld (ix+27), $00 | |
| call _LABEL_569C_ | |
| ld (ix+22), $BD | |
| ld (ix+23), $7C | |
| ld (ix+0), $BD | |
| ld (ix+1), $75 | |
| ret | |
| _LABEL_75BD_: | |
| call _LABEL_1EB1_ | |
| jp c, _LABEL_481B_ | |
| call _LABEL_5567_ | |
| ret c | |
| ld a, ($CAC5) | |
| or a | |
| ret nz | |
| ld a, ($C110) | |
| cp (ix+16) | |
| ret nz | |
| ld a, ($C112) | |
| cp (ix+18) | |
| ret nz | |
| ld e, (ix+15) | |
| ld d, (ix+17) | |
| call _LABEL_1ECB_ | |
| ex de, hl | |
| ld hl, Data_7A0C | |
| ld bc, $0204 | |
| call _LABEL_681_ | |
| call _LABEL_5473_ | |
| ret nc | |
| ld e, (iy+15) | |
| ld d, (iy+17) | |
| call _LABEL_1ECB_ | |
| ex de, hl | |
| ld l, (iy+5) | |
| ld h, (iy+6) | |
| ld bc, $0400 | |
| add hl, bc | |
| ld a, (hl) | |
| add a, a | |
| add a, a | |
| add a, a | |
| ld c, a | |
| ld b, $00 | |
| ld hl, $C800 | |
| add hl, bc | |
| ld bc, $0204 | |
| call _LABEL_681_ | |
| ld (ix+0), $1E | |
| ld (ix+1), $76 | |
| call _LABEL_1EB1_ | |
| jp c, _LABEL_481B_ | |
| call _LABEL_5567_ | |
| ret c | |
| call _LABEL_553A_ | |
| ld a, (ix+28) | |
| and $02 | |
| jp nz, _LABEL_481B_ | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_7641_ | |
| cp $09 | |
| jr z, _LABEL_7641_ | |
| jp _LABEL_481B_ | |
| _LABEL_7641_: | |
| call _LABEL_5473_ | |
| jr nc, _LABEL_7667_ | |
| ld (ix+0), $74 | |
| ld (ix+1), $77 | |
| jp _LABEL_7774_ | |
| _LABEL_7651_: | |
| ld (ix+24), $08 | |
| ld (ix+0), $5D | |
| ld (ix+1), $76 | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jp z, _LABEL_7768_ | |
| ret | |
| _LABEL_7667_: | |
| ld a, (ix+28) | |
| and $01 | |
| jr nz, _LABEL_7680_ | |
| call _LABEL_51DE_ | |
| _LABEL_7671_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_7685_ | |
| rrca | |
| jr c, _LABEL_76A5_ | |
| rrca | |
| jr c, _LABEL_76C5_ | |
| jp _LABEL_76E8_ | |
| _LABEL_7680_: | |
| call _LABEL_52A1_ | |
| jr _LABEL_7671_ | |
| _LABEL_7685_: | |
| ld hl, $FFE0 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_769B_ | |
| ld (ix+4), $01 | |
| ld (ix+22), $C6 | |
| ld (ix+23), $7C | |
| jr _LABEL_76FD_ | |
| _LABEL_769B_: | |
| ld a, (ix+4) | |
| and $FE | |
| ld (ix+4), a | |
| jr _LABEL_7671_ | |
| _LABEL_76A5_: | |
| ld hl, $0020 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_76BB_ | |
| ld (ix+4), $02 | |
| ld (ix+22), $CF | |
| ld (ix+23), $7C | |
| jr _LABEL_76FD_ | |
| _LABEL_76BB_: | |
| ld a, (ix+4) | |
| and $FD | |
| ld (ix+4), a | |
| jr _LABEL_7671_ | |
| _LABEL_76C5_: | |
| ld hl, $FFFF | |
| call _LABEL_5420_ | |
| jr c, _LABEL_76DB_ | |
| ld (ix+4), $04 | |
| ld (ix+22), $B4 | |
| ld (ix+23), $7C | |
| jr _LABEL_76FD_ | |
| _LABEL_76DB_: | |
| ld a, (ix+4) | |
| and $FB | |
| or $03 | |
| ld (ix+4), a | |
| jp _LABEL_7671_ | |
| _LABEL_76E8_: | |
| ld hl, $0001 | |
| call _LABEL_5420_ | |
| jp c, _LABEL_7651_ | |
| ld (ix+22), $BD | |
| ld (ix+23), $7C | |
| ld (ix+4), $08 | |
| _LABEL_76FD_: | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $08 | |
| ld (ix+21), $00 | |
| ld (ix+20), $00 | |
| ld (ix+0), $17 | |
| ld (ix+1), $77 | |
| call _LABEL_47BB_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_7768_ | |
| ret | |
| _LABEL_7723_: | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_772F_ | |
| ld a, (ix+24) | |
| ret | |
| _LABEL_772F_: | |
| ld (ix+24), $10 | |
| ld (ix+0), $3B | |
| ld (ix+1), $77 | |
| call _LABEL_553A_ | |
| ld a, ($C3C2) | |
| or a | |
| ret nz | |
| ld (ix+0), $53 | |
| ld (ix+1), $77 | |
| ld a, SoundEffectA0 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_7768_ | |
| ld a, (ix+24) | |
| cp $01 | |
| jr nz, _LABEL_7765_ | |
| call _LABEL_5302_ | |
| _LABEL_7765_: | |
| jp _LABEL_5643_ | |
| _LABEL_7768_: | |
| call _LABEL_5655_ | |
| ld (ix+0), $1E | |
| ld (ix+1), $76 | |
| ret | |
| _LABEL_7774_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_7768_ | |
| call _LABEL_553A_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_7790_ | |
| rrca | |
| jr c, _LABEL_779A_ | |
| rrca | |
| jr c, _LABEL_77A4_ | |
| jr _LABEL_77AE_ | |
| _LABEL_7790_: | |
| ld (ix+22), $C6 | |
| ld (ix+23), $7C | |
| jr _LABEL_77B6_ | |
| _LABEL_779A_: | |
| ld (ix+22), $CF | |
| ld (ix+23), $7C | |
| jr _LABEL_77B6_ | |
| _LABEL_77A4_: | |
| ld (ix+22), $B4 | |
| ld (ix+23), $7C | |
| jr _LABEL_77B6_ | |
| _LABEL_77AE_: | |
| ld (ix+22), $BD | |
| ld (ix+23), $7C | |
| _LABEL_77B6_: | |
| ld (ix+30), $01 | |
| ld (ix+24), $10 | |
| ld (ix+21), $00 | |
| ld (ix+20), $00 | |
| ld (ix+0), $23 | |
| ld (ix+1), $77 | |
| jp _LABEL_7723_ | |
| ; 33rd entry of Jump Table from 2012 (indexed by unknown) | |
| JumpTable4_77D1: | |
| ld (ix+2), $01 | |
| call _LABEL_550D_ | |
| ld (ix+19), $02 | |
| ld (ix+26), $82 | |
| ld (ix+27), $00 | |
| call _LABEL_569C_ | |
| ld (ix+22), $E1 | |
| ld (ix+23), $7C | |
| ld (ix+0), $F8 | |
| ld (ix+1), $77 | |
| ret | |
| _LABEL_77F8_: | |
| call _LABEL_1EB1_ | |
| jp c, _LABEL_481B_ | |
| call _LABEL_5567_ | |
| ret c | |
| ld a, ($CAC5) | |
| or a | |
| ret nz | |
| ld a, ($C110) | |
| cp (ix+16) | |
| ret nz | |
| ld a, ($C112) | |
| cp (ix+18) | |
| ret nz | |
| ld e, (ix+15) | |
| ld d, (ix+17) | |
| call _LABEL_1ECB_ | |
| ex de, hl | |
| ld hl, $7A14 | |
| ld bc, $0204 | |
| call _LABEL_681_ | |
| call _LABEL_5473_ | |
| ret nc | |
| ld e, (iy+15) | |
| ld d, (iy+17) | |
| call _LABEL_1ECB_ | |
| ex de, hl | |
| ld l, (iy+5) | |
| ld h, (iy+6) | |
| ld bc, $0400 | |
| add hl, bc | |
| ld a, (hl) | |
| add a, a | |
| add a, a | |
| add a, a | |
| ld c, a | |
| ld b, $00 | |
| ld hl, $C800 | |
| add hl, bc | |
| ld bc, $0204 | |
| call _LABEL_681_ | |
| ld (ix+0), $59 | |
| ld (ix+1), $78 | |
| call _LABEL_1EB1_ | |
| jp c, _LABEL_481B_ | |
| call _LABEL_5567_ | |
| ret c | |
| call _LABEL_553A_ | |
| ld a, (ix+28) | |
| and $02 | |
| jp nz, _LABEL_481B_ | |
| ld a, ($C601) | |
| cp $01 | |
| jr z, _LABEL_787C_ | |
| cp $09 | |
| jr z, _LABEL_787C_ | |
| jp _LABEL_481B_ | |
| _LABEL_787C_: | |
| call _LABEL_5473_ | |
| jr nc, _LABEL_78A2_ | |
| ld (ix+0), $AF | |
| ld (ix+1), $79 | |
| jp _LABEL_79AF_ | |
| _LABEL_788C_: | |
| ld (ix+24), $08 | |
| ld (ix+0), $98 | |
| ld (ix+1), $78 | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jp z, _LABEL_79A3_ | |
| ret | |
| _LABEL_78A2_: | |
| ld a, (ix+28) | |
| and $01 | |
| jr nz, _LABEL_78BB_ | |
| call _LABEL_51DE_ | |
| _LABEL_78AC_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_78C0_ | |
| rrca | |
| jr c, _LABEL_78E0_ | |
| rrca | |
| jr c, _LABEL_7900_ | |
| jp _LABEL_7923_ | |
| _LABEL_78BB_: | |
| call _LABEL_52A1_ | |
| jr _LABEL_78AC_ | |
| _LABEL_78C0_: | |
| ld hl, $FFE0 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_78D6_ | |
| ld (ix+4), $01 | |
| ld (ix+22), $EA | |
| ld (ix+23), $7C | |
| jr _LABEL_7938_ | |
| _LABEL_78D6_: | |
| ld a, (ix+4) | |
| and $FE | |
| ld (ix+4), a | |
| jr _LABEL_78AC_ | |
| _LABEL_78E0_: | |
| ld hl, $0020 | |
| call _LABEL_5420_ | |
| jr c, _LABEL_78F6_ | |
| ld (ix+4), $02 | |
| ld (ix+22), $F3 | |
| ld (ix+23), $7C | |
| jr _LABEL_7938_ | |
| _LABEL_78F6_: | |
| ld a, (ix+4) | |
| and $FD | |
| ld (ix+4), a | |
| jr _LABEL_78AC_ | |
| _LABEL_7900_: | |
| ld hl, $FFFF | |
| call _LABEL_5420_ | |
| jr c, _LABEL_7916_ | |
| ld (ix+4), $04 | |
| ld (ix+22), $D8 | |
| ld (ix+23), $7C | |
| jr _LABEL_7938_ | |
| _LABEL_7916_: | |
| ld a, (ix+4) | |
| and $FB | |
| or $03 | |
| ld (ix+4), a | |
| jp _LABEL_78AC_ | |
| _LABEL_7923_: | |
| ld hl, $0001 | |
| call _LABEL_5420_ | |
| jp c, _LABEL_788C_ | |
| ld (ix+22), $E1 | |
| ld (ix+23), $7C | |
| ld (ix+4), $08 | |
| _LABEL_7938_: | |
| ld (ix+7), l | |
| ld (ix+8), h | |
| ld (ix+24), $08 | |
| ld (ix+21), $00 | |
| ld (ix+20), $00 | |
| ld (ix+0), $52 | |
| ld (ix+1), $79 | |
| call _LABEL_47BB_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_79A3_ | |
| ret | |
| _LABEL_795E_: | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_796A_ | |
| ld a, (ix+24) | |
| ret | |
| _LABEL_796A_: | |
| ld (ix+24), $10 | |
| ld (ix+0), $76 | |
| ld (ix+1), $79 | |
| call _LABEL_553A_ | |
| ld a, ($C3C2) | |
| or a | |
| ret nz | |
| ld (ix+0), $8E | |
| ld (ix+1), $79 | |
| ld a, SoundEffectA0 | |
| ld (SFXQueue), a | |
| call _LABEL_567B_ | |
| call _LABEL_553A_ | |
| dec (ix+24) | |
| jr z, _LABEL_79A3_ | |
| ld a, (ix+24) | |
| cp $01 | |
| jr nz, _LABEL_79A0_ | |
| call _LABEL_5302_ | |
| _LABEL_79A0_: | |
| jp _LABEL_5643_ | |
| _LABEL_79A3_: | |
| call _LABEL_5655_ | |
| ld (ix+0), $59 | |
| ld (ix+1), $78 | |
| ret | |
| _LABEL_79AF_: | |
| ld hl, (CurrentHPLow) | |
| ld a, h | |
| or l | |
| jr z, _LABEL_79A3_ | |
| call _LABEL_553A_ | |
| call _LABEL_1EF6_ | |
| ret c | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_79CB_ | |
| rrca | |
| jr c, _LABEL_79D5_ | |
| rrca | |
| jr c, _LABEL_79DF_ | |
| jr _LABEL_79E9_ | |
| _LABEL_79CB_: | |
| ld (ix+22), $EA | |
| ld (ix+23), $7C | |
| jr _LABEL_79F1_ | |
| _LABEL_79D5_: | |
| ld (ix+22), $F3 | |
| ld (ix+23), $7C | |
| jr _LABEL_79F1_ | |
| _LABEL_79DF_: | |
| ld (ix+22), $D8 | |
| ld (ix+23), $7C | |
| jr _LABEL_79F1_ | |
| _LABEL_79E9_: | |
| ld (ix+22), $E1 | |
| ld (ix+23), $7C | |
| _LABEL_79F1_: | |
| ld (ix+30), $01 | |
| ld (ix+24), $10 | |
| ld (ix+21), $00 | |
| ld (ix+20), $00 | |
| ld (ix+0), $5E | |
| ld (ix+1), $79 | |
| jp _LABEL_795E_ | |
| ; Data from 7A0C to 7A1B (16 bytes) | |
| Data_7A0C: | |
| .db $01 $01 $02 $01 $03 $01 $04 $01 | |
| .db $0D $01 $0E $01 $0F $01 $10 $01 | |
| _LABEL_7A1C_: | |
| ld (ix+2), $01 | |
| ld (ix+3), $3B | |
| ld (ix+19), $04 | |
| ld (ix+0), $34 | |
| ld (ix+1), $7A | |
| ret | |
| _LABEL_7A31_: | |
| call _LABEL_553A_ | |
| call _LABEL_47BB_ | |
| call _LABEL_52C6_ | |
| jr c, _LABEL_7A3D_ | |
| ret | |
| _LABEL_7A3D_: | |
| ld (ix+0), $0F | |
| ld (ix+1), $31 | |
| ret | |
| _LABEL_7A46_: | |
| ld (ix+2), $01 | |
| ld (ix+3), $41 | |
| ld (ix+19), $04 | |
| ld (ix+0), $34 | |
| ld (ix+1), $7A | |
| ret | |
| _LABEL_7A5B_: | |
| ld (ix+2), $01 | |
| ld (ix+3), $4D | |
| ld (ix+19), $04 | |
| ld (ix+0), $34 | |
| ld (ix+1), $7A | |
| ret | |
| _LABEL_7A70_: | |
| ld (ix+2), $01 | |
| ld (ix+3), $63 | |
| ld (ix+19), $04 | |
| ld (ix+22), $94 | |
| ld (ix+23), $7C | |
| ld (ix+0), $31 | |
| ld (ix+1), $7A | |
| ret | |
| _LABEL_7A8D_: | |
| ld (ix+2), $01 | |
| ld (ix+3), $68 | |
| ld (ix+19), $04 | |
| ld (ix+0), $34 | |
| ld (ix+1), $7A | |
| ret | |
| _LABEL_7AA2_: | |
| ld (ix+2), $01 | |
| ld (ix+3), $75 | |
| ld (ix+19), $04 | |
| ld (ix+22), $99 | |
| ld (ix+23), $7C | |
| ld (ix+0), $31 | |
| ld (ix+1), $7A | |
| ret | |
| _LABEL_7ABF_: | |
| ld (ix+2), $01 | |
| ld (ix+19), $04 | |
| call _LABEL_7AF3_ | |
| ld (ix+0), $31 | |
| ld (ix+1), $7A | |
| ret | |
| _LABEL_7AD3_: | |
| ld (ix+2), $01 | |
| ld (ix+3), $80 | |
| ld (ix+19), $04 | |
| ld (ix+24), $10 | |
| ld (ix+0), $EC | |
| ld (ix+1), $7A | |
| ret | |
| _LABEL_7AEC_: | |
| dec (ix+24) | |
| jp z, _LABEL_7A3D_ | |
| ret | |
| _LABEL_7AF3_: | |
| ld a, (ix+4) | |
| rrca | |
| jr c, _LABEL_7B01_ | |
| rrca | |
| jr c, _LABEL_7B0A_ | |
| rrca | |
| jr c, _LABEL_7B13_ | |
| jr _LABEL_7B1C_ | |
| _LABEL_7B01_: | |
| ld (ix+22), $A0 | |
| ld (ix+23), $7C | |
| ret | |
| _LABEL_7B0A_: | |
| ld (ix+22), $A5 | |
| ld (ix+23), $7C | |
| ret | |
| _LABEL_7B13_: | |
| ld (ix+22), $AA | |
| ld (ix+23), $7C | |
| ret | |
| _LABEL_7B1C_: | |
| ld (ix+22), $AF | |
| ld (ix+23), $7C | |
| ret | |
| ; Data from 7B25 to 7D05 (480 bytes) | |
| .incbin "data\dcsms_7b25.inc" | |
| ; Empty data at the end of the bank | |
| .ds 746, $FF | |
| ; ROM header (16 bytes) | |
| .include "rom_header.asm" | |
| .BANK 2 | |
| .ORG $0000 | |
| ; Data from 8000 to BF5F (16224 bytes) | |
| .incbin "data\dcsms_8000.inc" | |
| ; Empty data at the end of the bank | |
| .ds 160, $FF | |
| .BANK 3 | |
| .ORG $0000 | |
| ; 32 16x16 blocks used to compose random maps | |
| .include "map\map_block_table.asm" | |
| ; Pointer table for item and equipment names | |
| .include "items\names\item_name_pointer_table.asm" | |
| ; Item and equipment names | |
| .include "items\names\item_name_data_table.asm" | |
| ; Data from E976 to EB3E (456 bytes) | |
| .incbin "data\dcsms_e976.inc" | |
| ; Pointer table for in-game messages | |
| .include "text\game_messages_pointer_table.asm" | |
| ; Does this continue the pointer table? | |
| ; This points to data beyond the game message text | |
| .dw $B129 $B129 $B129 $B129 $B129 $B129 $B129 $B129 | |
| .dw $B129 $B129 $B129 $B129 $B129 $B129 | |
| ; In-game messages | |
| .include "text\game_messages.asm" | |
| ; Data from F129 to FF5F (3638 bytes) | |
| .incbin "data\dcsms_f129.inc" | |
| ; Empty data at the end of the bank | |
| .ds 160, $FF | |
| .BANK 4 | |
| .ORG $0000 | |
| ; Data from 10000 to 13F5F (16224 bytes) | |
| .incbin "data\dcsms_10000.inc" | |
| ; Empty data at the end of the bank | |
| .ds 160, $FF | |
| .BANK 5 | |
| .ORG $0000 | |
| ; Data from 14000 to 17F5F (16224 bytes) | |
| .incbin "data\dcsms_14000.inc" | |
| ; Empty data at the end of the bank | |
| .ds 160, $FF | |
| .BANK 6 | |
| .ORG $0000 | |
| ; Data from 18000 to 1BD15 (15637 bytes) | |
| .incbin "data\dcsms_18000.inc" | |
| ; Empty data at the end of the bank | |
| .ds 746, $FF | |
| .BANK 7 | |
| .ORG $0000 | |
| ; Sound driver- pre-SMPS with 9-byte track header | |
| .include "sound\sound_driver.asm" | |
| ; Sound data | |
| .incbin "sound\sound_data.inc" | |
| ; Game over screen text | |
| .include "ui\game_over_screen_2.asm" | |
| ; Pointer table for monster names | |
| .include "monsters\monster_name_pointer_table.asm" | |
| ; Player death messages | |
| .include "text\player_death_messages.asm" | |
| ; Monster names | |
| .include "monsters\monster_names.asm" | |
| ; Data from 1F009 to 1F249 (576 bytes) | |
| ; This looks like blocks, possibly the windows that pop up for item actions? | |
| .incbin "data\dcsms_1f009.inc" | |
| ; End credits | |
| .include "ui\credits.asm" | |
| ; Empty data at the end of the bank | |
| .ds 1975, $FF |