summaryrefslogtreecommitdiff
path: root/engine/unknown11d32.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/unknown11d32.asm')
-rw-r--r--engine/unknown11d32.asm92
1 files changed, 92 insertions, 0 deletions
diff --git a/engine/unknown11d32.asm b/engine/unknown11d32.asm
new file mode 100644
index 0000000..d7e40d9
--- /dev/null
+++ b/engine/unknown11d32.asm
@@ -0,0 +1,92 @@
+INCLUDE "constants.asm"
+
+SECTION "engine/unknown11d32.asm", ROMX
+
+Unknown11d32: ; 04:5D32
+ ld hl, hJoySum
+ ld a, [hl]
+ and D_UP
+ jr nz, .upJump
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .downJump
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .leftJump
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .rightJump
+ ret
+
+.rightJump; 04:5D4A
+ ld hl, $000C
+ add hl, bc
+ ld a, [hl]
+ cp $0D
+ jr nc, .skip
+ inc [hl]
+ jr .escape
+.skip
+ ld [hl], 0
+ jr .escape
+.leftJump
+ ld hl, $000C
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .skip2
+ dec [hl]
+ jr .escape
+.skip2
+ ld [hl], $0D
+ jr .escape
+.downJump
+ ld hl, $000D
+ add hl, bc
+ ld a, [hl]
+ cp 4
+ jr nc, .skip3
+ inc [hl]
+ jr .escape
+.skip3
+ ld [hl], 00
+ jr .escape
+.upJump
+ ld hl, $000D
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .skip4
+ dec [hl]
+ jr .escape
+.skip4
+ ld [hl], 4
+ jr .escape
+.escape
+ ld hl, $000C
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, .Offsets1
+ add hl, de
+ ld a, [hl]
+ ld hl, $0006
+ add hl, bc
+ ld [hl], a
+ ld hl, $000D
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, .Offsets2
+ add hl, de
+ ld a, [hl]
+ ld hl, $0007
+ add hl, bc
+ ld [hl], a
+ ret
+
+.Offsets1: ; 04:5DAB
+ db $00, $08, $10, $18, $20, $28, $30, $48, $50, $58, $60, $68, $70, $78
+
+.Offsets2: ; 04:5DB9
+ db $00, $08, $18, $20, $30 \ No newline at end of file