shithub: pokered

Download patch

ref: b32abf1f161d82c8cc2b3b84e64536124e17530f
parent: 6d8c6055b5d5910d4da6997199f0984f8cd9149f
author: yenatch <yenatch@gmail.com>
date: Fri May 30 21:31:08 EDT 2014

Split out joypad code from main.asm.

--- /dev/null
+++ b/engine/joypad.asm
@@ -1,0 +1,51 @@
+_Joypad::
+	ld a, [hJoyInput]
+	cp A_BUTTON + B_BUTTON + SELECT + START ; soft reset
+	jp z, TrySoftReset
+	ld b, a
+	ld a, [hJoyHeldLast]
+	ld e, a
+	xor b
+	ld d, a
+	and e
+	ld [hJoyReleased], a
+	ld a, d
+	and b
+	ld [hJoyPressed], a
+	ld a, b
+	ld [hJoyHeldLast], a
+	ld a, [wd730]
+	bit 5, a
+	jr nz, DiscardButtonPresses
+	ld a, [hJoyHeldLast]
+	ld [hJoyHeld], a
+	ld a, [wJoyIgnore]
+	and a
+	ret z
+	cpl
+	ld b, a
+	ld a, [hJoyHeld]
+	and b
+	ld [hJoyHeld], a
+	ld a, [hJoyPressed]
+	and b
+	ld [hJoyPressed], a
+	ret
+
+DiscardButtonPresses:
+	xor a
+	ld [hJoyHeld], a
+	ld [hJoyPressed], a
+	ld [hJoyReleased], a
+	ret
+
+TrySoftReset:
+	call DelayFrame
+	; reset joypad (to make sure the
+	; player is really trying to reset)
+	ld a, $30
+	ld [rJOYP], a
+	ld hl, hSoftReset
+	dec [hl]
+	jp z, SoftReset
+	jp Joypad
--- a/main.asm
+++ b/main.asm
@@ -1940,57 +1940,7 @@
 
 SECTION "bank3",ROMX,BANK[$3]
 
-_Joypad::
-	ld a, [hJoyInput]
-	cp A_BUTTON + B_BUTTON + SELECT + START ; soft reset
-	jp z, TrySoftReset
-	ld b, a
-	ld a, [hJoyHeldLast]
-	ld e, a
-	xor b
-	ld d, a
-	and e
-	ld [hJoyReleased], a
-	ld a, d
-	and b
-	ld [hJoyPressed], a
-	ld a, b
-	ld [hJoyHeldLast], a
-	ld a, [wd730]
-	bit 5, a
-	jr nz, DiscardButtonPresses
-	ld a, [hJoyHeldLast]
-	ld [hJoyHeld], a
-	ld a, [wJoyIgnore]
-	and a
-	ret z
-	cpl
-	ld b, a
-	ld a, [hJoyHeld]
-	and b
-	ld [hJoyHeld], a
-	ld a, [hJoyPressed]
-	and b
-	ld [hJoyPressed], a
-	ret
-
-DiscardButtonPresses:
-	xor a
-	ld [hJoyHeld], a
-	ld [hJoyPressed], a
-	ld [hJoyReleased], a
-	ret
-
-TrySoftReset:
-	call DelayFrame
-	; reset joypad (to make sure the
-	; player is really trying to reset)
-	ld a, $30
-	ld [rJOYP], a
-	ld hl, hSoftReset
-	dec [hl]
-	jp z, SoftReset
-	jp Joypad
+INCLUDE "engine/joypad.asm"
 
 INCLUDE "data/map_songs.asm"