diff options
Diffstat (limited to 'home')
-rw-r--r-- | home/movement.asm | 221 | ||||
-rw-r--r-- | home/tilemap.asm | 219 |
2 files changed, 440 insertions, 0 deletions
diff --git a/home/movement.asm b/home/movement.asm new file mode 100644 index 000000000..274d27926 --- /dev/null +++ b/home/movement.asm @@ -0,0 +1,221 @@ +Function1b1e: ; 1b1e + ld [$d003], a + xor a + ld [DefaultFlypoint], a + ld a, $0 + ld [$d004], a + ld a, $7 + ld [StartFlypoint], a + ld a, $d0 + ld [EndFlypoint], a + ret +; 1b35 + +Function1b35: ; 1b35 + ld a, [DefaultFlypoint] + and a + ret z + dec a + ld [DefaultFlypoint], a + ret +; 1b3f + +Function1b3f: ; 1b3f + push hl + push de + ld hl, DefaultFlypoint + ld e, [hl] + inc [hl] + ld d, 0 + ld hl, MovementBuffer + add hl, de + ld [hl], a + pop de + pop hl + ret +; 1b50 + +Function1b50: ; 1b50 + push af + ld a, c + and a + jr nz, .asm_1b57 + pop af + ret + +.asm_1b57 + pop af +.asm_1b58 + call Function1b3f + dec c + jr nz, .asm_1b58 + ret +; 1b5f + +Function1b5f: ; 1b5f + push af + ld a, b + sub d + ld h, $2 + jr nc, .asm_1b6a + dec a + cpl + ld h, $3 + +.asm_1b6a + ld d, a + ld a, c + sub e + ld l, $1 + jr nc, .asm_1b75 + dec a + cpl + ld l, $0 + +.asm_1b75 + ld e, a + cp d + jr nc, .asm_1b7f + ld a, h + ld h, l + ld l, a + ld a, d + ld d, e + ld e, a + +.asm_1b7f + pop af + ld b, a + ld a, h + call Function1b92 + ld c, d + call Function1b50 + ld a, l + call Function1b92 + ld c, e + call Function1b50 + ret +; 1b92 + +Function1b92: ; 1b92 + push de + push hl + ld l, b + ld h, 0 + add hl, hl + add hl, hl + ld e, a + ld d, 0 + add hl, de + ld de, .data_1ba5 + add hl, de + ld a, [hl] + pop hl + pop de + ret +; 1ba5 + +.data_1ba5 + db 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 +; 1bb1 + +Function1bb1: ; 1bb1 + push hl + push bc + ld hl, $cfa1 + ld b, $8 +.asm_1bb8 + ld a, [de] + inc de + ld [hli], a + dec b + jr nz, .asm_1bb8 + ld a, $1 + ld [hli], a + ld [hli], a + xor a + ld [hli], a + ld [hli], a + ld [hli], a + pop bc + pop hl + ret +; 1bc9 + +Function1bc9: ; 1bc9 + callab Function241a8 + call Function1bdd + ret +; 1bd3 + +Function1bd3: ; 1bd3 + callab Function241ab + call Function1bdd + ret +; 1bdd + +Function1bdd: ; 1bdd + push bc + push af + ld a, [$ffa9] + and $f0 + ld b, a + ld a, [hJoyPressed] + and $f + or b + ld b, a + pop af + ld a, b + pop bc + ret +; 1bee + +Function1bee: ; 1bee + ld hl, $cfac + ld a, [hli] + ld h, [hl] + ld l, a + ld [hl], $ec + ret +; 1bf7 + +Function1bf7: ; 1bf7 + ld hl, $cfac + ld a, [hli] + ld h, [hl] + ld l, a + ld [hl], $7f + ret +; 1c00 + +Function1c00: ; 1c00 + callab Function24374 + ret +; 1c07 + +Function1c07: ; 0x1c07 + push af + callab Function243e8 + pop af + ret + +Function1c10: ; 0x1c10 + callab Function2446d + ret + +Function1c17: ; 0x1c17 + push af + call Function1c07 + call Function321c + call Function1ad2 + pop af + ret + +Function1c23: ; 0x1c23 + call Function1cfd + call Function1c30 + call Function1d19 + call Function1c30 + ret +; 0x1c30 + diff --git a/home/tilemap.asm b/home/tilemap.asm new file mode 100644 index 000000000..c3d95be68 --- /dev/null +++ b/home/tilemap.asm @@ -0,0 +1,219 @@ +Function1c30: ; 0x1c30 + call Function1c53 + inc b + inc c +.asm_1c35 + push bc + push hl +.asm_1c37 + ld a, [de] + ld [hli], a + dec de + dec c + jr nz, .asm_1c37 ; 0x1c3b $fa + pop hl + ld bc, $0014 + add hl, bc + pop bc + dec b + jr nz, .asm_1c35 ; 0x1c44 $ef + ret + +Function1c47: ; 0x1c47 + ld b, $10 + ld de, $cf81 +.asm_1c4c + ld a, [hld] + ld [de], a + inc de + dec b + jr nz, .asm_1c4c ; 0x1c50 $fa + ret + +Function1c53: ; 0x1c53 + ld a, [$cf82] + ld b, a + ld a, [$cf84] + sub b + ld b, a + ld a, [$cf83] + ld c, a + ld a, [$cf85] + sub c + ld c, a + ret +; 0x1c66 + +Function1c66: ; 1c66 + push hl + push de + push bc + push af + ld hl, $cf86 + ld a, [hli] + ld h, [hl] + ld l, a + ld de, $cf91 + ld bc, $0010 + call CopyBytes + pop af + pop bc + pop de + pop hl + ret +; 1c7e + +Function1c7e: ; 1c7e + ld hl, $cf71 + ld a, [hli] + ld h, [hl] + ld l, a + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + ret +; 1c89 + +Function1c89: ; 1c89 + call Function1c66 + ld hl, $cf86 + ld e, [hl] + inc hl + ld d, [hl] + call Function1cc6 + call GetTileCoord + inc de + ld a, [de] + inc de + ld b, a +.asm_1c9c + push bc + call PlaceString + inc de + ld bc, $0028 + add hl, bc + pop bc + dec b + jr nz, .asm_1c9c + ld a, [$cf91] + bit 4, a + ret z + call Function1cfd + ld a, [de] + ld c, a + inc de + ld b, $0 + add hl, bc + jp PlaceString +; 1cbb + +Function1cbb: ; 1cbb + call Function1cfd + call Function1c53 + dec b + dec c + jp TextBox +; 1cc6 + +Function1cc6: ; 1cc6 + ld a, [$cf82] + ld b, a + inc b + ld a, [$cf83] + ld c, a + inc c + ld a, [$cf91] + bit 6, a + jr nz, .asm_1cd8 + inc b + +.asm_1cd8 + ld a, [$cf91] + bit 7, a + jr z, .asm_1ce0 + inc c + +.asm_1ce0 + ret +; 1ce1 + +Function1ce1: ; 1ce1 + call Function1cfd + ld bc, $0015 + add hl, bc + call Function1c53 + dec b + dec c + call ClearBox + ret +; 1cf1 + +Function1cf1: ; 1cf1 + call Function1cfd + call Function1c53 + inc c + inc b + call ClearBox + ret +; 1cfd + + +Function1cfd: ; 1cfd + ld a, [$cf83] + ld c, a + ld a, [$cf82] + ld b, a +; 1d05 + + +GetTileCoord: ; 1d05 +; Return the address of TileMap(c, b) in hl. + xor a + ld h, a + ld l, b + ld a, c + ld b, h + ld c, l + add hl, hl + add hl, hl + add hl, bc + add hl, hl + add hl, hl + ld c, a + xor a + ld b, a + add hl, bc + ld bc, TileMap + add hl, bc + ret +; 1d19 + +Function1d19: ; 1d19 + ld a, [$cf83] + ld c, a + ld a, [$cf82] + ld b, a + +GetAttrCoord: ; 1d21 +; Return the address of AttrMap(c, b) in hl. + xor a + ld h, a + ld l, b + ld a, c + ld b, h + ld c, l + add hl, hl + add hl, hl + add hl, bc + add hl, hl + add hl, hl + ld c, a + xor a + ld b, a + add hl, bc + ld bc, AttrMap + add hl, bc + ret +; 1d35 + |