summaryrefslogtreecommitdiff
path: root/home
diff options
context:
space:
mode:
Diffstat (limited to 'home')
-rw-r--r--home/joypad.asm8
-rw-r--r--home/map.asm66
-rw-r--r--home/menu.asm21
-rw-r--r--home/movement.asm221
-rw-r--r--home/text.asm4
-rw-r--r--home/tilemap.asm219
-rw-r--r--home/time.asm2
7 files changed, 494 insertions, 47 deletions
diff --git a/home/joypad.asm b/home/joypad.asm
index efe70e809..a55bb204b 100644
--- a/home/joypad.asm
+++ b/home/joypad.asm
@@ -6,7 +6,7 @@ JoypadInt: ; 92e
reti
; 92f
-ClearJoypadPublic: ; 92f
+ClearJoypad: ; 92f
xor a
; Pressed this frame (delta)
ld [hJoyPressed], a
@@ -109,7 +109,7 @@ Joypad: ; 935
; 984
-GetJoypadPublic: ; 984
+GetJoypad: ; 984
; Update mirror joypad input from hJoypadDown (real input)
; hJoyReleased: released this frame (delta)
@@ -304,7 +304,7 @@ Functiona1b: ; a1b
Functiona36: ; a36
call DelayFrame
- call GetJoypadPublic
+ call GetJoypad
ld a, [hJoyPressed]
and A_BUTTON | B_BUTTON
ret nz
@@ -325,7 +325,7 @@ Functiona46: ; a46
; a57
Functiona57: ; a57
- call GetJoypadPublic
+ call GetJoypad
ld a, [$ffaa]
and a
ld a, [hJoyPressed]
diff --git a/home/map.asm b/home/map.asm
index fffd08273..79af8ffc1 100644
--- a/home/map.asm
+++ b/home/map.asm
@@ -96,21 +96,22 @@ Function2173: ; 2173
Function217a: ; 217a
ld a, [hROMBank]
push af
+
ld a, [TilesetBlocksBank]
rst Bankswitch
call Function2198
ld a, $60
ld hl, TileMap
- ld bc, $0168
+ ld bc, TileMapEnd - TileMap
call ByteFill
+
ld a, $13
rst Bankswitch
-
call $515b
+
pop af
rst Bankswitch
-
ret
; 2198
@@ -412,7 +413,7 @@ Function2317: ; 2317
Function2326: ; 2326
call Function2c3d
- call Function2c1c
+ call SwitchToMapBank
call GetSecondaryMapHeaderPointer
call Function235c
call Function2368
@@ -473,26 +474,26 @@ Function2368: ; 2368
jr z, .asm_2384
ld de, NorthMapConnection
call GetMapConnection
-
.asm_2384
+
bit 2, b
jr z, .asm_238e
ld de, SouthMapConnection
call GetMapConnection
-
.asm_238e
+
bit 1, b
jr z, .asm_2398
ld de, WestMapConnection
call GetMapConnection
-
.asm_2398
+
bit 0, b
jr z, .asm_23a2
ld de, EastMapConnection
call GetMapConnection
-
.asm_23a2
+
ret
; 23a3
@@ -712,8 +713,8 @@ Function24ba: ; 24ba
Function24cd: ; 24cd
ld hl, OverworldMap
- ld bc, $0514
- ld a, $0
+ ld bc, OverworldMapEnd - OverworldMap
+ ld a, 0
call ByteFill
call Function24e4
call FillMapConnections
@@ -727,17 +728,18 @@ Function24cd: ; 24cd
Function24e4: ; 24e4
ld a, [hROMBank]
push af
+
ld hl, OverworldMap
ld a, [MapWidth]
ld [hConnectedMapWidth], a
add $6
ld [hConnectionStripLength], a
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
add hl, bc
add hl, bc
- ld c, $3
+ ld c, 3
add hl, bc
ld a, [MapBlockDataBank]
rst Bankswitch
@@ -764,13 +766,12 @@ Function24e4: ; 24e4
ld l, a
jr nc, .asm_251e
inc h
-
.asm_251e
dec b
jr nz, .asm_250c
+
pop af
rst Bankswitch
-
ret
; 2524
@@ -1052,6 +1053,7 @@ Function2674: ; 2674
Function269a: ; 269a
ld a, [hROMBank]
push af
+
ld a, b
rst Bankswitch
@@ -1065,9 +1067,9 @@ Function269a: ; 269a
call PrintTextBoxText
xor a
ld [hOAMUpdate], a
+
pop af
rst Bankswitch
-
ret
; 26b7
@@ -1154,7 +1156,7 @@ BGEvent: ; 26f7
; 26fa
BGEventText: ; 26fa
- text_jump UnknownText_0x1c46fc, BANK(UnknownText_0x1c46fc)
+ text_jump UnknownText_0x1c46fc
db "@"
; 26ff
@@ -1164,7 +1166,7 @@ CoordinatesEvent: ; 26ff
; 2702
CoordinatesEventText: ; 2702
- text_jump UnknownText_0x1c4706, BANK(UnknownText_0x1c4706)
+ text_jump UnknownText_0x1c4706
db "@"
; 2707
@@ -2012,7 +2014,7 @@ Function2bae: ; 2bae
ld b, a
ld a, [MapNumber]
ld c, a
- call Function2c24
+ call SwitchToAnyMapBank
callba Function8c001
call Function2173
call Function2821
@@ -2102,28 +2104,28 @@ GetAnyMapHeaderMember: ; 0x2c0c
; 0x2c1c
-Function2c1c: ; 2c1c
+SwitchToMapBank: ; 2c1c
ld a, [MapGroup]
ld b, a
ld a, [MapNumber]
ld c, a
; 2c24
-Function2c24: ; 2c24
- call Function2c31
+SwitchToAnyMapBank: ; 2c24
+ call GetAnyMapBank
rst Bankswitch
ret
; 2c29
-Function2c29: ; 2c29
+GetMapBank: ; 2c29
ld a, [MapGroup]
ld b, a
ld a, [MapNumber]
ld c, a
; 2c31
-Function2c31: ; 2c31
+GetAnyMapBank: ; 2c31
push hl
push de
ld de, $0000
@@ -2220,7 +2222,7 @@ Function2c98: ; 2c98
ret
; 2c99
-Function2c99: ; 2c99
+GetAnyMapPermission: ; 2c99
push hl
push de
push bc
@@ -2233,7 +2235,7 @@ Function2c99: ; 2c99
ret
; 2ca7
-Function2ca7: ; 2ca7
+GetAnyMapTileset: ; 2ca7
ld de, $0001
call GetAnyMapHeaderMember
ld a, c
@@ -2335,17 +2337,21 @@ Function2d19: ; 2d19
ret
; 2d27
-Function2d27: ; 2d27
+LoadTilesetHeader: ; 2d27
push hl
push bc
- ld hl, $5596
- ld bc, $000f
+
+ ld hl, Tilesets
+ ld bc, Tileset01 - Tileset00
ld a, [$d199]
call AddNTimes
+
ld de, TilesetBank
- ld bc, $000f
- ld a, $13
+ ld bc, Tileset01 - Tileset00
+
+ ld a, BANK(Tilesets)
call FarCopyBytes
+
pop bc
pop hl
ret
diff --git a/home/menu.asm b/home/menu.asm
index bb613b8b8..6a8b8628a 100644
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -124,19 +124,20 @@ Function1db8: ; 0x1db8
; 0x1dcf
-Function1dcf: ; 1dcf
- ld bc, $0e07
+YesNoBox: ; 1dcf
+ lb bc, 14, 7
-Function1dd2: ; 1dd2
- jr Function1dd9
+PlaceYesNoBox: ; 1dd2
+ jr _YesNoBox
Function1dd4: ; 1dd4
call LoadMenuDataHeader
jr Function1dfe
-Function1dd9: ; 1dd9
+_YesNoBox: ; 1dd9
+; Return nc (yes) or c (no).
push bc
- ld hl, MenuDataHeader_0x1e1d
+ ld hl, YesNoMenuDataHeader
call Function1d3c
pop bc
ld a, b
@@ -165,7 +166,7 @@ Function1dfe: ; 1dfe
pop af
jr c, .asm_1e16
ld a, [$cfa9]
- cp $2
+ cp 2 ; no
jr z, .asm_1e16
and a
ret
@@ -177,15 +178,15 @@ Function1dfe: ; 1dfe
ret
; 1e1d
-MenuDataHeader_0x1e1d: ; 1e1d
+YesNoMenuDataHeader: ; 1e1d
db $40 ; tile backup
db 5, 10 ; start coords
db 9, 15 ; end coords
- dw MenuData2_0x1e25
+ dw YesNoMenuData2
db 1 ; default option
; 1e25
-MenuData2_0x1e25: ; 1e25
+YesNoMenuData2: ; 1e25
db $c0 ; flags
db 2
db "YES@"
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/text.asm b/home/text.asm
index c4ff6aa05..47ebd7164 100644
--- a/home/text.asm
+++ b/home/text.asm
@@ -1048,7 +1048,7 @@ Text_09: ; 14d2
Text_0A: ; 14ed
push hl
push bc
- call GetJoypadPublic
+ call GetJoypad
ld a, [hJoyDown]
and A_BUTTON | B_BUTTON
jr nz, .asm_14fd
@@ -1130,7 +1130,7 @@ Text_0C: ; 1543
push de
ld a, "…"
ld [hli], a
- call GetJoypadPublic
+ call GetJoypad
ld a, [hJoyDown]
and A_BUTTON | B_BUTTON
jr nz, .asm_155a
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
+
diff --git a/home/time.asm b/home/time.asm
index a9e43647f..b3b7ae3bd 100644
--- a/home/time.asm
+++ b/home/time.asm
@@ -204,7 +204,7 @@ Function663: ; 663
ld [$d089], a
jr Function677
-Function677
+Function677: ; 677
callba Function140ed
ret
; 67e