diff options
Diffstat (limited to 'home')
-rw-r--r-- | home/joypad.asm | 8 | ||||
-rw-r--r-- | home/map.asm | 66 | ||||
-rw-r--r-- | home/menu.asm | 21 | ||||
-rw-r--r-- | home/movement.asm | 221 | ||||
-rw-r--r-- | home/text.asm | 4 | ||||
-rw-r--r-- | home/tilemap.asm | 219 | ||||
-rw-r--r-- | home/time.asm | 2 |
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 |