diff options
| author | Jonas Höglund <firefly@firefly.nu> | 2014-07-22 14:26:09 +0200 | 
|---|---|---|
| committer | Jonas Höglund <firefly@firefly.nu> | 2014-07-22 14:26:09 +0200 | 
| commit | 56987f652b606fc4746b6ce83a0fb51b827bea6d (patch) | |
| tree | b1c3e823eb86bce1c3c58597658da9cacdba8574 | |
| parent | ee444f35005a1cd04a46ab70961d8b2666da131a (diff) | |
Home: do joypad-reading functions
| -rwxr-xr-x | engine/home.asm | 66 | 
1 files changed, 34 insertions, 32 deletions
| diff --git a/engine/home.asm b/engine/home.asm index 60724ad..3de4b2f 100755 --- a/engine/home.asm +++ b/engine/home.asm @@ -579,52 +579,53 @@ Func_04cf: ; 04cf (0:04cf)  	ld d, h  	ret -Func_04de: ; 04de (0:04de) +; read joypad +ReadJoypad: ; 04de (0:04de)  	ld a, $20 -	ld [$ff00], a -	ld a, [$ff00] -	ld a, [$ff00] +	ld [rJOYP], a +	ld a, [rJOYP] +	ld a, [rJOYP]  	cpl  	and $f  	swap a  	ld b, a  	ld a, $10 -	ld [$ff00], a -	ld a, [$ff00] -	ld a, [$ff00] -	ld a, [$ff00] -	ld a, [$ff00] -	ld a, [$ff00] -	ld a, [$ff00] +	ld [rJOYP], a +	ld a, [rJOYP] +	ld a, [rJOYP] +	ld a, [rJOYP] +	ld a, [rJOYP] +	ld a, [rJOYP] +	ld a, [rJOYP]  	cpl  	and $f  	or b -	ld c, a +	ld c, a              ; joypad data  	cpl  	ld b, a -	ld a, [$ff90] +	ld a, [BUTTONS_HELD]  	xor c  	and b -	ld [$ff8e], a -	ld a, [$ff90] +	ld [BUTTONS_RELEASED], a +	ld a, [BUTTONS_HELD]  	xor c  	and c  	ld b, a -	ld [$ff91], a -	ld a, [$ff90] +	ld [BUTTONS_PRESSED], a +	ld a, [BUTTONS_HELD]  	and $f  	cp $f -	jr nz, asm_522 +	jr nz, asm_522       ; handle reset  	call Func_0ea6 -Func_051b: ; 051b (0:051b) +Reset: ; 051b (0:051b)  	ld a, [DATA_INITIAL_A]  	di  	jp Start  asm_522  	ld a, c -	ld [$ff90], a +	ld [BUTTONS_HELD], a  	ld a, $30 -	ld [$ff00], a +	ld [rJOYP], a  	ret  ; 0x52a @@ -638,8 +639,8 @@ Func_053f: ; 053f (0:053f)  	ld hl, $cad3  	call Func_05b6  	call WaitForVBlank -	call Func_04de -	call Func_0572 +	call ReadJoypad +	call HandleDPadRepeat  	ld a, [$cad5]  	or a  	jr z, .asm_56d @@ -648,8 +649,8 @@ Func_053f: ; 053f (0:053f)  	jr z, .asm_56d  .asm_55e  	call WaitForVBlank -	call Func_04de -	call Func_0572 +	call ReadJoypad +	call HandleDPadRepeat  	ld a, [$ff91]  	and $4  	jr z, .asm_55e @@ -660,13 +661,14 @@ Func_053f: ; 053f (0:053f)  	pop af  	ret -Func_0572: ; 0572 (0:0572) -	ld a, [$ff90] -	ld [$ff8f], a +; handle D-pad repeatcounter +HandleDPadRepeat: ; 0572 (0:0572) +	ld a, [BUTTONS_HELD] +	ld [BUTTONS_PRESSED_2], a  	and $f0  	jr z, .asm_58c -	ld hl, $ff8d -	ld a, [$ff91] +	ld hl, DPAD_REPEAT_CTR +	ld a, [BUTTONS_PRESSED]  	and $f0  	jr z, .asm_586  	ld [hl], $18 @@ -677,9 +679,9 @@ Func_0572: ; 0572 (0:0572)  	ld [hl], $6  	ret  .asm_58c -	ld a, [$ff91] +	ld a, [BUTTONS_PRESSED]  	and $f -	ld [$ff8f], a +	ld [BUTTONS_PRESSED_2], a  	ret  CopyDMAFunction: ; 0593 (0:0593) | 
