diff options
Diffstat (limited to 'main.asm')
-rwxr-xr-x | main.asm | 61 |
1 files changed, 31 insertions, 30 deletions
@@ -70,7 +70,7 @@ Func_40b0: ; 40b0 (1:40b0) ld [W_ISINBATTLE], a ; $d057 ld [$d35d], a ld [$cf10], a - ld [H_CURRENTPRESSEDBUTTONS], a + ld [hJoyHeld], a ld [$cc57], a ld [wFlags_0xcd60], a ld [$ff9f], a @@ -103,7 +103,7 @@ Func_40b0: ; 40b0 (1:40b0) res 3, [hl] set 6, [hl] ld a, $ff - ld [wJoypadForbiddenButtonsMask], a + ld [wJoyIgnore], a ld a, $7 jp Predef ; indirect jump to HealParty (f6a5 (3:76a5)) @@ -3076,52 +3076,53 @@ Func_7c18: ; 7c18 (1:7c18) SECTION "bank3",ROMX,BANK[$3] _GetJoypadState:: - ld a, [H_JOYPADSTATE] + ld a, [hJoyInput] cp A_BUTTON + B_BUTTON + SELECT + START ; soft reset - jp z, HandleJoypadResetButtons + jp z, TrySoftReset ld b, a - ld a, [H_OLDPRESSEDBUTTONS] + ld a, [hJoyHeldLast] ld e, a xor b ld d, a and e - ld [H_NEWLYRELEASEDBUTTONS], a + ld [hJoyReleased], a ld a, d and b - ld [H_NEWLYPRESSEDBUTTONS], a + ld [hJoyPressed], a ld a, b - ld [H_OLDPRESSEDBUTTONS], a + ld [hJoyHeldLast], a ld a, [$d730] bit 5, a jr nz, DiscardButtonPresses - ld a, [H_OLDPRESSEDBUTTONS] - ld [H_CURRENTPRESSEDBUTTONS], a - ld a, [wJoypadForbiddenButtonsMask] + ld a, [hJoyHeldLast] + ld [hJoyHeld], a + ld a, [wJoyIgnore] and a ret z cpl ld b, a - ld a, [H_CURRENTPRESSEDBUTTONS] + ld a, [hJoyHeld] and b - ld [H_CURRENTPRESSEDBUTTONS], a - ld a, [H_NEWLYPRESSEDBUTTONS] + ld [hJoyHeld], a + ld a, [hJoyPressed] and b - ld [H_NEWLYPRESSEDBUTTONS], a + ld [hJoyPressed], a ret -; clears all button presses -DiscardButtonPresses: ; c034 (3:4034) +DiscardButtonPresses: xor a - ld [H_CURRENTPRESSEDBUTTONS], a - ld [H_NEWLYPRESSEDBUTTONS], a - ld [H_NEWLYRELEASEDBUTTONS], a + ld [hJoyHeld], a + ld [hJoyPressed], a + ld [hJoyReleased], a ret -HandleJoypadResetButtons: ; c03c (3:403c) +TrySoftReset: call DelayFrame + ; reset joypad (to make sure the + ; player is really trying to reset) ld a, $30 - ld [rJOYP], a ; reset joypad state (to enusre the user really intends to reset) - ld hl, H_SOFTRESETCOUNTER + ld [rJOYP], a + ld hl, hSoftReset dec [hl] jp z, SoftReset jp GetJoypadState @@ -3138,9 +3139,9 @@ Func_c335: ; c335 (3:4335) ld [H_AUTOBGTRANSFERENABLED], a ; $ffba ld [$d13b], a ld [W_LONEATTACKNO], a ; $d05c - ld [H_NEWLYPRESSEDBUTTONS], a - ld [H_NEWLYRELEASEDBUTTONS], a - ld [H_CURRENTPRESSEDBUTTONS], a + ld [hJoyPressed], a + ld [hJoyReleased], a + ld [hJoyHeld], a ld [$cd6a], a ld [$d5a3], a ld hl, $d73f @@ -3665,7 +3666,7 @@ Func_c69c: ; c69c (3:469c) ld hl, W_PARTYMON1NAME ; $d2b5 call GetPartyMonName xor a - ld [wJoypadForbiddenButtonsMask], a + ld [wJoyIgnore], a call EnableAutoTextBoxDrawing ld a, $d0 ld [H_DOWNARROWBLINKCNT2], a ; $ff8c @@ -4548,7 +4549,7 @@ Func_f225: ; f225 (3:7225) bit 6, [hl] set 6, [hl] ret z - ld a, [H_CURRENTPRESSEDBUTTONS] + ld a, [hJoyHeld] and $f0 ret z ld a, $5a @@ -4556,7 +4557,7 @@ Func_f225: ; f225 (3:7225) ld a, [$d71c] and a jp nz, Func_f2dd - ld a, [H_CURRENTPRESSEDBUTTONS] + ld a, [hJoyHeld] ld b, a ld a, [$c109] cp $4 @@ -4609,7 +4610,7 @@ Func_f2b5: ; f2b5 (3:72b5) ret nz callab Func_79f54 call DiscardButtonPresses - ld [wJoypadForbiddenButtonsMask], a + ld [wJoyIgnore], a call Func_f2dd set 7, [hl] ld a, [$d718] |