diff options
Diffstat (limited to 'main.asm')
-rwxr-xr-x | main.asm | 96 |
1 files changed, 52 insertions, 44 deletions
@@ -63,49 +63,55 @@ SpriteOAMParametersFlipped: ; 40a4 (1:40a4) db $08,$08, OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED db $08,$00, OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA -Func_40b0: ; 40b0 (1:40b0) + +Func_40b0:: +; Reset player status on blackout. xor a ld [$cf0b], a ld [$d700], a - ld [W_ISINBATTLE], a ; $d057 + ld [W_ISINBATTLE], a ld [$d35d], a ld [$cf10], a ld [hJoyHeld], a ld [$cc57], a ld [wFlags_0xcd60], a + ld [$ff9f], a - ld [$ffa0], a - ld [$ffa1], a + ld [$ff9f + 1], a + ld [$ff9f + 2], a call HasEnoughMoney - jr c, .asm_40ff - ld a, [wPlayerMoney] ; $d347 + jr c, .lostmoney ; never happens + + ; Halve the player's money. + ld a, [wPlayerMoney] ld [$ff9f], a - ld a, [wPlayerMoney + 1] ; $d348 - ld [$ffa0], a - ld a, [wPlayerMoney + 2] ; $d349 - ld [$ffa1], a + ld a, [wPlayerMoney + 1] + ld [$ff9f + 1], a + ld a, [wPlayerMoney + 2] + ld [$ff9f + 2], a xor a ld [$ffa2], a ld [$ffa3], a - ld a, $2 + ld a, 2 ld [$ffa4], a - ld a, $d - call Predef ; indirect jump to Func_f71e (f71e (3:771e)) + ld a, $d ; DivideBCDPredef + call Predef ld a, [$ffa2] - ld [wPlayerMoney], a ; $d347 - ld a, [$ffa3] - ld [wPlayerMoney + 1], a ; $d348 - ld a, [$ffa4] - ld [wPlayerMoney + 2], a ; $d349 -.asm_40ff + ld [wPlayerMoney], a + ld a, [$ffa2 + 1] + ld [wPlayerMoney + 1], a + ld a, [$ffa2 + 2] + ld [wPlayerMoney + 2], a + +.lostmoney ld hl, $d732 set 2, [hl] res 3, [hl] set 6, [hl] - ld a, $ff + ld a, %11111111 ld [wJoyIgnore], a - ld a, $7 - jp Predef ; indirect jump to HealParty (f6a5 (3:76a5)) + ld a, $7 ; HealParty + jp Predef MewPicFront:: INCBIN "pic/bmon/mew.pic" MewPicBack:: INCBIN "pic/monback/mewb.pic" @@ -5309,12 +5315,10 @@ HealParty: ret -; predef $9 -; predef $a -; predef $d -; predef $e -Func_f71e: ; f71e (3:771e) +DivideBCDPredef:: call GetPredefRegisters + +DivideBCD:: xor a ld [$ffa5], a ld [$ffa6], a @@ -5462,15 +5466,18 @@ Func_f800: ; f800 (3:7800) ld de, $ffa1 ld hl, $ffa4 push bc - call Func_f839 + call SubtractBCD pop bc jr .asm_f803 -Func_f81d: ; f81d (3:781d) + +AddBCDPredef:: call GetPredefRegisters + +AddBCD:: and a ld b, c -.asm_f822 +.add ld a, [de] adc [hl] daa @@ -5478,25 +5485,26 @@ Func_f81d: ; f81d (3:781d) dec de dec hl dec c - jr nz, .asm_f822 - jr nc, .asm_f835 + jr nz, .add + jr nc, .done ld a, $99 inc de -.asm_f830 +.fill ld [de], a inc de dec b - jr nz, .asm_f830 -.asm_f835 + jr nz, .fill +.done ret -Func_f836: ; f836 (3:7836) + +SubtractBCDPredef:: call GetPredefRegisters -Func_f839: ; f839 (3:7839) +SubtractBCD:: and a ld b, c -.asm_f83b +.sub ld a, [de] sbc [hl] daa @@ -5504,17 +5512,17 @@ Func_f839: ; f839 (3:7839) dec de dec hl dec c - jr nz, .asm_f83b - jr nc, .asm_f84f - ld a, $0 + jr nz, .sub + jr nc, .done + ld a, $00 inc de -.asm_f849 +.fill ld [de], a inc de dec b - jr nz, .asm_f849 + jr nz, .fill scf -.asm_f84f +.done ret |