summaryrefslogtreecommitdiff
path: root/home
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2015-11-28 20:15:35 -0500
committeryenatch <yenatch@gmail.com>2015-11-28 20:15:35 -0500
commit794410352fd92ccf06974763e4b3be0b807641ab (patch)
tree05f5dd861966762db9556082229cee82e8b5eed9 /home
parent9c5473e965520f672640daf4ee76622640e0de15 (diff)
parent4bcd71e3227181baa536357af3d87a8d02af3890 (diff)
Merge pull request #328 from PikalaxALT/master
Split out most of main.asm
Diffstat (limited to 'home')
-rw-r--r--home/audio.asm4
-rw-r--r--home/battle.asm2
-rw-r--r--home/fade.asm61
-rw-r--r--home/map.asm303
-rw-r--r--home/map_objects.asm49
-rw-r--r--home/menu.asm12
-rw-r--r--home/movement.asm6
-rw-r--r--home/palettes.asm17
-rw-r--r--home/rtc.asm2
-rw-r--r--home/serial.asm98
-rw-r--r--home/text.asm8
-rw-r--r--home/tilemap.asm2
-rw-r--r--home/time.asm42
13 files changed, 327 insertions, 279 deletions
diff --git a/home/audio.asm b/home/audio.asm
index 9756d0460..490f076a0 100644
--- a/home/audio.asm
+++ b/home/audio.asm
@@ -312,13 +312,13 @@ VolumeOff:: ; 3ca3
ret
; 3ca8
-FadeOutMusic:: ; 3ca8
+Unused_RotatePalettesRightMusic:: ; 3ca8
ld a, 4
ld [MusicFade], a
ret
; 3cae
-FadeInMusic:: ; 3cae
+RotatePalettesLeftMusic:: ; 3cae
ld a, 4 | 1 << 7
ld [MusicFade], a
ret
diff --git a/home/battle.asm b/home/battle.asm
index 57bab4083..4786cc4d3 100644
--- a/home/battle.asm
+++ b/home/battle.asm
@@ -285,7 +285,7 @@ BattleTextBox:: ; 3ac3
call SpeechTextBox
call MobileTextBorder
call UpdateSprites
- call Function321c
+ call ApplyTilemap
pop hl
call PrintTextBoxText
ret
diff --git a/home/fade.asm b/home/fade.asm
index 2559a0eb7..579a4125a 100644
--- a/home/fade.asm
+++ b/home/fade.asm
@@ -8,10 +8,10 @@ Function48c:: ; 48c
ld a, l
sub b
ld l, a
- jr nc, .asm_499
+ jr nc, .okay
dec h
-.asm_499
+.okay
ld a, [hli]
ld [rBGP], a
ld a, [hli]
@@ -22,34 +22,34 @@ Function48c:: ; 48c
; 4a3
-Function4a3:: ; 4a3
+RotateFourPalettesRight:: ; 4a3
ld a, [hCGB]
and a
- jr z, .asm_4af
+ jr z, .dmg
ld hl, IncGradGBPalTable_00
ld b, 4
- jr FadeOut
+ jr RotatePalettesRight
-.asm_4af
+.dmg
ld hl, IncGradGBPalTable_08
ld b, 4
- jr FadeOut
+ jr RotatePalettesRight
; 4b6
-FadeToWhite:: ; 4b6
+RotateThreePalettesRight:: ; 4b6
ld a, [hCGB]
and a
- jr z, .asm_4c2
+ jr z, .dmg
ld hl, IncGradGBPalTable_05
ld b, 3
- jr FadeOut
+ jr RotatePalettesRight
-.asm_4c2
+.dmg
ld hl, IncGradGBPalTable_13
ld b, 3
-; 4c7
-
-FadeOut:: ; 4c7
+RotatePalettesRight:: ; 4c7
+; Rotate palettes to the right and fill with loaded colors from the left
+; If we're already at the leftmost color, fill with the leftmost color
push de
ld a, [hli]
call DmgToCgbBGPals
@@ -62,39 +62,38 @@ FadeOut:: ; 4c7
call DelayFrames
pop de
dec b
- jr nz, FadeOut
+ jr nz, RotatePalettesRight
ret
; 4dd
-Function4dd:: ; 4dd
+RotateFourPalettesLeft:: ; 4dd
ld a, [hCGB]
and a
- jr z, .asm_4e9
+ jr z, .dmg
ld hl, IncGradGBPalTable_04 - 1
ld b, 4
- jr FadeIn
+ jr RotatePalettesLeft
-.asm_4e9
+.dmg
ld hl, IncGradGBPalTable_12 - 1
ld b, 4
- jr FadeIn
+ jr RotatePalettesLeft
; 4f0
-Function4f0:: ; 4f0
+RotateThreePalettesLeft:: ; 4f0
ld a, [hCGB]
and a
- jr z, .asm_4fc
+ jr z, .dmg
ld hl, IncGradGBPalTable_07 - 1
ld b, 3
- jr FadeIn
+ jr RotatePalettesLeft
-.asm_4fc
+.dmg
ld hl, IncGradGBPalTable_15 - 1
ld b, 3
- ; fallthrough
-; 501
-
-FadeIn:: ; 501
+RotatePalettesLeft:: ; 501
+; Rotate palettes to the left and fill with loaded colors from the right
+; If we're already at the rightmost color, fill with the rightmost color
push de
ld a, [hld]
ld d, a
@@ -107,7 +106,7 @@ FadeIn:: ; 501
call DelayFrames
pop de
dec b
- jr nz, FadeIn
+ jr nz, RotatePalettesLeft
ret
; 517
@@ -117,17 +116,21 @@ IncGradGBPalTable_00:: db %11111111, %11111111, %11111111
IncGradGBPalTable_01:: db %11111110, %11111110, %11111110
IncGradGBPalTable_02:: db %11111001, %11111001, %11111001
IncGradGBPalTable_03:: db %11100100, %11100100, %11100100
+
IncGradGBPalTable_04:: db %11100100, %11100100, %11100100
IncGradGBPalTable_05:: db %10010000, %10010000, %10010000
IncGradGBPalTable_06:: db %01000000, %01000000, %01000000
+
IncGradGBPalTable_07:: db %00000000, %00000000, %00000000
; bgp obp1 obp2
IncGradGBPalTable_08:: db %11111111, %11111111, %11111111
IncGradGBPalTable_09:: db %11111110, %11111110, %11111000
IncGradGBPalTable_10:: db %11111001, %11100100, %11100100
IncGradGBPalTable_11:: db %11100100, %11010000, %11100000
+
IncGradGBPalTable_12:: db %11100100, %11010000, %11100000
IncGradGBPalTable_13:: db %10010000, %10000000, %10010000
IncGradGBPalTable_14:: db %01000000, %01000000, %01000000
+
IncGradGBPalTable_15:: db %00000000, %00000000, %00000000
; 547
diff --git a/home/map.asm b/home/map.asm
index 81c7988d8..e385517a1 100644
--- a/home/map.asm
+++ b/home/map.asm
@@ -258,10 +258,10 @@ GetDestinationWarpNumber:: ; 2252
; 2266
.GetDestinationWarpNumber ; 2266
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
sub $4
ld e, a
- ld a, [PlayerMapX]
+ ld a, [PlayerNextMapX]
sub $4
ld d, a
ld a, [wCurrMapWarpCount]
@@ -570,11 +570,11 @@ ReadWarps:: ; 23da
ReadCoordEvents:: ; 23f1
ld a, [hli]
ld c, a
- ld [wCurrentMapXYTriggerCount], a
+ ld [wCurrentNextMapXYTriggerCount], a
ld a, l
- ld [wCurrentMapXYTriggerHeaderPointer], a
+ ld [wCurrentNextMapXYTriggerHeaderPointer], a
ld a, h
- ld [wCurrentMapXYTriggerHeaderPointer + 1], a
+ ld [wCurrentNextMapXYTriggerHeaderPointer + 1], a
ld a, c
and a
@@ -1091,7 +1091,7 @@ MapTextbox:: ; 269a
call Function2e31
ld a, 1
ld [hOAMUpdate], a
- call Function321c
+ call ApplyTilemap
pop hl
call PrintTextBoxText
xor a
@@ -1232,128 +1232,129 @@ UnmaskObject:: ; 271e
; 272a
-Function272a:: ; 272a
+ScrollMapDown:: ; 272a
hlcoord 0, 0
ld de, BGMapBuffer
- call Function27b7
- ld c, $28
+ call BackupBGMapRow
+ ld c, 2 * SCREEN_WIDTH
call FarCallScrollBGMapPalettes
- ld a, [wd152]
+ ld a, [wBGMapAnchor]
ld e, a
- ld a, [wd153]
+ ld a, [wBGMapAnchor + 1]
ld d, a
- call Function27d3
+ call UpdateBGMapRow
ld a, $1
ld [hBGMapUpdate], a
ret
; 2748
-Function2748:: ; 2748
- hlcoord 0, 16
+ScrollMapUp:: ; 2748
+ hlcoord 0, SCREEN_HEIGHT - 2
ld de, BGMapBuffer
- call Function27b7
- ld c, $28
+ call BackupBGMapRow
+ ld c, 2 * SCREEN_WIDTH
call FarCallScrollBGMapPalettes
- ld a, [wd152]
+ ld a, [wBGMapAnchor]
ld l, a
- ld a, [wd153]
+ ld a, [wBGMapAnchor + 1]
ld h, a
ld bc, $0200
add hl, bc
+; cap d at VBGMap1 / $100
ld a, h
- and $3
- or $98
+ and %00000011
+ or VBGMap0 / $100
ld e, l
ld d, a
- call Function27d3
+ call UpdateBGMapRow
ld a, $1
ld [hBGMapUpdate], a
ret
; 2771
-Function2771:: ; 2771
+ScrollMapLeft:: ; 2771
hlcoord 0, 0
ld de, BGMapBuffer
- call Function27c0
- ld c, $24
+ call BackupBGMapColumn
+ ld c, 2 * SCREEN_HEIGHT
call FarCallScrollBGMapPalettes
- ld a, [wd152]
+ ld a, [wBGMapAnchor]
ld e, a
- ld a, [wd153]
+ ld a, [wBGMapAnchor + 1]
ld d, a
- call Function27f8
+ call UpdateBGMapColumn
ld a, $1
ld [hBGMapUpdate], a
ret
; 278f
-Function278f:: ; 278f
- hlcoord 18, 0
+ScrollMapRight:: ; 278f
+ hlcoord SCREEN_WIDTH - 2, 0
ld de, BGMapBuffer
- call Function27c0
- ld c, $24
+ call BackupBGMapColumn
+ ld c, 2 * SCREEN_HEIGHT
call FarCallScrollBGMapPalettes
- ld a, [wd152]
+ ld a, [wBGMapAnchor]
ld e, a
- and $e0
+ and %11100000
ld b, a
ld a, e
- add $12
- and $1f
+ add SCREEN_HEIGHT
+ and %00011111
or b
ld e, a
- ld a, [wd153]
+ ld a, [wBGMapAnchor + 1]
ld d, a
- call Function27f8
+ call UpdateBGMapColumn
ld a, $1
ld [hBGMapUpdate], a
ret
; 27b7
-Function27b7:: ; 27b7
- ld c, $28
-.asm_27b9
+BackupBGMapRow:: ; 27b7
+ ld c, 2 * SCREEN_WIDTH
+.loop
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_27b9
+ jr nz, .loop
ret
; 27c0
-Function27c0:: ; 27c0
- ld c, $12
-.asm_27c2
+BackupBGMapColumn:: ; 27c0
+ ld c, SCREEN_HEIGHT
+.loop
ld a, [hli]
ld [de], a
inc de
ld a, [hl]
ld [de], a
inc de
- ld a, $13
+ ld a, SCREEN_WIDTH - 1
add l
ld l, a
- jr nc, .asm_27cf
+ jr nc, .skip
inc h
-.asm_27cf
+.skip
dec c
- jr nz, .asm_27c2
+ jr nz, .loop
ret
; 27d3
-Function27d3:: ; 27d3
+UpdateBGMapRow:: ; 27d3
ld hl, BGMapBufferPtrs
push de
- call .asm_27df
+ call .iteration
pop de
ld a, $20
add e
ld e, a
-.asm_27df
- ld c, $a
-.asm_27e1
+.iteration
+ ld c, 10
+.loop
ld a, e
ld [hli], a
ld a, d
@@ -1369,16 +1370,16 @@ endr
or b
ld e, a
dec c
- jr nz, .asm_27e1
- ld a, $14
- ld [$ffdc], a
+ jr nz, .loop
+ ld a, SCREEN_WIDTH
+ ld [hFFDC], a
ret
; 27f8
-Function27f8:: ; 27f8
+UpdateBGMapColumn:: ; 27f8
ld hl, BGMapBufferPtrs
- ld c, $12
-.asm_27fd
+ ld c, SCREEN_HEIGHT
+.loop
ld a, e
ld [hli], a
ld a, d
@@ -1386,72 +1387,81 @@ Function27f8:: ; 27f8
ld a, $20
add e
ld e, a
- jr nc, .asm_280e
+ jr nc, .skip
inc d
+; cap d at VBGMap1 / $100
ld a, d
and $3
- or $98
+ or VBGMap0 / $100
ld d, a
-.asm_280e
+.skip
dec c
- jr nz, .asm_27fd
- ld a, $12
- ld [$ffdc], a
+ jr nz, .loop
+ ld a, SCREEN_HEIGHT
+ ld [hFFDC], a
ret
; 2816
-Function2816:: ; 2816
+; unreferenced
ld hl, BGMapBuffer
- ld bc, $0078
+ ld bc, SGBPredef - BGMapBuffer
xor a
call ByteFill
ret
; 2821
-Function2821:: ; 2821
+LoadTileset:: ; 2821
ld hl, TilesetAddress
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [TilesetBank]
ld e, a
+
ld a, [rSVBK]
push af
ld a, $6
ld [rSVBK], a
+
ld a, e
ld de, w6_d000
call FarDecompress
+
ld hl, w6_d000
ld de, VTiles2
ld bc, $60 tiles
call CopyBytes
+
ld a, [rVBK]
push af
ld a, $1
ld [rVBK], a
+
ld hl, w6_d600
ld de, VTiles2
ld bc, $60 tiles
call CopyBytes
+
pop af
ld [rVBK], a
+
pop af
ld [rSVBK], a
- ld a, [wTileset]
- cp $1
- jr z, .asm_286f
- cp $2
- jr z, .asm_286f
- cp $4
- jr z, .asm_286f
- jr .asm_2875
-.asm_286f
+ ld a, [wTileset]
+ cp TILESET_JOHTO_1
+ jr z, .load_roof
+ cp TILESET_JOHTO_2
+ jr z, .load_roof
+ cp TILESET_BATTLE_TOWER_OUTSIDE
+ jr z, .load_roof
+ jr .skip_roof
+
+.load_roof
callba LoadMapGroupRoof
-.asm_2875
+.skip_roof
xor a
ld [hTileAnimFrame], a
ret
@@ -1495,42 +1505,42 @@ SaveScreen:: ; 289d
ld a, [MapWidth]
add $6
ld [hMapObjectIndexBuffer], a
- ld a, [wd151]
+ ld a, [wPlayerStepDirection]
and a
- jr z, .asm_28cb
- cp $1
- jr z, .asm_28c0
- cp $2
- jr z, .asm_28d4
- cp $3
- jr z, .asm_28da
+ jr z, .down
+ cp UP
+ jr z, .up
+ cp LEFT
+ jr z, .left
+ cp RIGHT
+ jr z, .right
ret
-.asm_28c0
+.up
ld de, wdcbf
ld a, [hMapObjectIndexBuffer]
ld c, a
ld b, $0
add hl, bc
- jr .asm_28ce
+ jr .vertical
-.asm_28cb
+.down
ld de, XCoord + 1
-.asm_28ce
+.vertical
ld b, $6
ld c, $4
jr Function28f7
-.asm_28d4
+.left
ld de, XCoord + 2
inc hl
- jr .asm_28dd
+ jr .horizontal
-.asm_28da
+.right
ld de, XCoord + 1
-.asm_28dd
+.horizontal
ld b, $5
ld c, $5
jr Function28f7
@@ -1543,55 +1553,57 @@ LoadNeighboringBlockData:: ; 28e3
ld l, a
ld a, [MapWidth]
add $6
- ld [hMapObjectIndexBuffer], a
+ ld [hConnectionStripLength], a
ld de, XCoord + 1
ld b, $6
ld c, $5
Function28f7:: ; 28f7
-.asm_28f7
+.loop1
push bc
push hl
push de
-.asm_28fa
+.loop2
ld a, [de]
inc de
ld [hli], a
dec b
- jr nz, .asm_28fa
+ jr nz, .loop2
pop de
ld a, e
add $6
ld e, a
- jr nc, .asm_2908
+ jr nc, .okay
inc d
-.asm_2908
+.okay
pop hl
- ld a, [hMapObjectIndexBuffer]
+ ld a, [hConnectionStripLength]
ld c, a
ld b, $0
add hl, bc
pop bc
dec c
- jr nz, .asm_28f7
+ jr nz, .loop1
ret
; 2914
-Function2914:: ; 2914
+GetMovementPermissions:: ; 2914
xor a
ld [TilePermissions], a
- call Function296c
- call Function294d
- ld a, [PlayerMapX]
+ call GetLeftRightCollision
+ call GetUpDownCollision
+; get coords of current tile
+ ld a, [PlayerNextMapX]
ld d, a
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
ld e, a
- call Function2a3c
- ld [PlayerStandingTile], a
+ call GetCoordTile
+ ld [PlayerNextTile], a
call Function29ff
ret nz
- ld a, [PlayerStandingTile]
+
+ ld a, [PlayerNextTile]
and 7
ld hl, .data_2945
add l
@@ -1610,37 +1622,41 @@ Function2914:: ; 2914
db 1, 2, 4, 8, 9, 10, 5, 6
; 294d
-Function294d:: ; 294d
- ld a, [PlayerMapX]
+GetUpDownCollision:: ; 294d
+ ld a, [PlayerNextMapX]
ld d, a
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
ld e, a
+
push de
inc e
- call Function2a3c
+ call GetCoordTile
ld [TileDown], a
call Function298b
+
pop de
dec e
- call Function2a3c
+ call GetCoordTile
ld [TileUp], a
call Function29a8
ret
; 296c
-Function296c:: ; 296c
- ld a, [PlayerMapX]
+GetLeftRightCollision:: ; 296c
+ ld a, [PlayerNextMapX]
ld d, a
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
ld e, a
+
push de
dec d
- call Function2a3c
+ call GetCoordTile
ld [TileLeft], a
call Function29e2
+
pop de
inc d
- call Function2a3c
+ call GetCoordTile
ld [TileRight], a
call Function29c5
ret
@@ -1650,7 +1666,7 @@ Function298b:: ; 298b
call Function29ff
ret nz
ld a, [TileDown]
- and $7
+ and 7
cp $2
jr z, .ok
cp $6
@@ -1660,7 +1676,7 @@ Function298b:: ; 298b
.ok
ld a, [TilePermissions]
- or $8
+ or FACE_DOWN
ld [TilePermissions], a
ret
; 29a8
@@ -1669,7 +1685,7 @@ Function29a8:: ; 29a8
call Function29ff
ret nz
ld a, [TileUp]
- and $7
+ and 7
cp $3
jr z, .ok
cp $4
@@ -1679,7 +1695,7 @@ Function29a8:: ; 29a8
.ok
ld a, [TilePermissions]
- or $4
+ or FACE_UP
ld [TilePermissions], a
ret
; 29c5
@@ -1688,7 +1704,7 @@ Function29c5:: ; 29c5
call Function29ff
ret nz
ld a, [TileRight]
- and $7
+ and 7
cp $1
jr z, .ok
cp $5
@@ -1698,7 +1714,7 @@ Function29c5:: ; 29c5
.ok
ld a, [TilePermissions]
- or $1
+ or FACE_RIGHT
ld [TilePermissions], a
ret
; 29e2
@@ -1707,7 +1723,7 @@ Function29e2:: ; 29e2
call Function29ff
ret nz
ld a, [TileLeft]
- and $7
+ and 7
cp $0
jr z, .ok
cp $4
@@ -1717,7 +1733,7 @@ Function29e2:: ; 29e2
.ok
ld a, [TilePermissions]
- or $2
+ or FACE_LEFT
ld [TilePermissions], a
ret
; 29ff
@@ -1756,10 +1772,10 @@ endr
ld h, [hl]
ld l, a
- ld a, [PlayerMapX]
+ ld a, [PlayerNextMapX]
add d
ld d, a
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
add e
ld e, a
ld a, [hl]
@@ -1778,7 +1794,8 @@ endr
; 2a3c
-Function2a3c:: ; 2a3c
+GetCoordTile:: ; 2a3c
+; Get the collision byte for tile d, e
call GetBlockLocation
ld a, [hl]
and a
@@ -1911,9 +1928,9 @@ CheckIfFacingTileCoordIsSign:: ; 2aaa
ret
; 2ad4
-CheckCurrentMapXYTriggers:: ; 2ad4
+CheckCurrentNextMapXYTriggers:: ; 2ad4
; If there are no xy triggers, we don't need to be here.
- ld a, [wCurrentMapXYTriggerCount]
+ ld a, [wCurrentNextMapXYTriggerCount]
and a
ret z
; Copy the trigger count into c.
@@ -1930,7 +1947,7 @@ CheckCurrentMapXYTriggers:: ; 2ad4
CheckStandingOnXYTrigger:: ; 2ae7
; Checks to see if you are standing on an xy-trigger. If yes, copies the trigger to EngineBuffer1 and sets carry.
- ld hl, wCurrentMapXYTriggerHeaderPointer
+ ld hl, wCurrentNextMapXYTriggerHeaderPointer
ld a, [hli]
ld h, [hl]
ld l, a
@@ -1938,10 +1955,10 @@ CheckStandingOnXYTrigger:: ; 2ae7
call CheckTriggers
ld b, a
; Load your current coordinates into de. This will be used to check if your position is in the xy-trigger table for the current map.
- ld a, [PlayerMapX]
+ ld a, [PlayerNextMapX]
sub 4
ld d, a
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
sub 4
ld e, a
@@ -1997,7 +2014,7 @@ FadeToMenu:: ; 2b29
; 2b3c
-Function2b3c:: ; 2b3c
+ReturnToCallingMenu:: ; 2b3c
call ClearBGPalettes
call Function2bae
call UpdateSprites
@@ -2006,16 +2023,14 @@ Function2b3c:: ; 2b3c
jr Function2b5c
; 2b4d
-Function2b4d:: ; 2b4d
+ExitAllMenus:: ; 2b4d
call ClearBGPalettes
call Call_ExitMenu
call Function2bae
call UpdateSprites
call Functiond90
-; 2b5c
-
Function2b5c:: ; 2b5c
- ld b, $9
+ ld b, SCGB_09
call GetSGBLayout
callba Function49409
call Function3200
@@ -2028,7 +2043,7 @@ Function2b5c:: ; 2b5c
Function2b74:: ; 0x2b74
push af
ld a, $1
- ld [wc2ce], a
+ ld [wSpriteUpdatesEnabled], a
call ClearBGPalettes
call ClearSprites
call Function2bae
@@ -2039,7 +2054,7 @@ Function2b74:: ; 0x2b74
set 0, [hl]
call UpdateSprites
call Function3200
- ld b, $9
+ ld b, SCGB_09
call GetSGBLayout
callba Function49409
call UpdateTimePals
@@ -2065,7 +2080,7 @@ Function2bae:: ; 2bae
call SwitchToAnyMapBank
callba Function8c001
call OverworldTextModeSwitch
- call Function2821
+ call LoadTileset
ld a, 9
call SkipMusic
pop af
diff --git a/home/map_objects.asm b/home/map_objects.asm
index e5d6dab01..67a6c52d5 100644
--- a/home/map_objects.asm
+++ b/home/map_objects.asm
@@ -6,7 +6,9 @@ GetSpritePalette:: ; 17ff
push de
push bc
ld c, a
+
callba _GetSpritePalette
+
ld a, c
pop bc
pop de
@@ -15,7 +17,7 @@ GetSpritePalette:: ; 17ff
; 180e
-Function180e:: ; 180e
+GetSpriteVTile:: ; 180e
push hl
push bc
ld hl, UsedSprites + 2
@@ -78,14 +80,14 @@ DoesSpriteHaveFacings:: ; 1836
Function184a:: ; 184a
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
call GetTileCollision
ld b, a
ret
; 1852
CheckOnWater:: ; 1852
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
call GetTileCollision
sub 1
ret z
@@ -122,7 +124,18 @@ GetTileCollision:: ; 185d
; 1875
-Function1875:: ; 1875
+CheckGrassTile:: ; 1875
+ ; and %00110111
+ ; cp $10
+ ; ret c
+ ; cp $30
+ ; jr nc, .okay
+ ; scf
+ ; ret
+ ; .okay
+ ; xor a
+ ; ret
+
ld d, a
and $f0
cp $10
@@ -138,7 +151,7 @@ Function1875:: ; 1875
ret z
scf
ret
-
+; For some reason, the above code is duplicated down here.
.ok_20
ld a, d
and 7
@@ -209,7 +222,7 @@ CheckWaterfallTile:: ; 18bd
; 18c3
CheckStandingOnEntrance:: ; 18c3
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
cp $71 ; door
ret z
cp $79
@@ -445,7 +458,7 @@ LoadMovementDataPointer:: ; 19e9
add hl, bc
ld [hl], SPRITEMOVEDATA_SCRIPTED
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
ld [hl], 0
@@ -508,7 +521,7 @@ endr
ret
; 1a47
-Function1a47:: ; 1a47
+GetInitialFacing:: ; 1a47
push bc
push de
ld e, a
@@ -529,7 +542,7 @@ endr
; 1a61
-Function1a61:: ; 1a61
+CopySpriteMovementData:: ; 1a61
ld l, a
ld a, [hROMBank]
push af
@@ -538,7 +551,7 @@ Function1a61:: ; 1a61
ld a, l
push bc
- call Function1a71
+ call .CopyData
pop bc
pop af
@@ -547,10 +560,11 @@ Function1a61:: ; 1a61
ret
; 1a71
-Function1a71:: ; 1a71
+.CopyData ; 1a71
ld hl, OBJECT_MOVEMENTTYPE
add hl, de
ld [hl], a
+
push de
ld e, a
ld d, 0
@@ -561,29 +575,34 @@ endr
ld b, h
ld c, l
pop de
+
ld a, [bc]
inc bc
rlca
rlca
- and $c
+ and %00001100
ld hl, OBJECT_FACING
add hl, de
ld [hl], a
+
ld a, [bc]
inc bc
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, de
ld [hl], a
+
ld a, [bc]
inc bc
ld hl, OBJECT_FLAGS1
add hl, de
ld [hl], a
+
ld a, [bc]
inc bc
ld hl, OBJECT_FLAGS2
add hl, de
ld [hl], a
+
ld a, [bc]
inc bc
ld hl, OBJECT_PALETTE
@@ -635,8 +654,9 @@ UpdateSprites:: ; 1ad2
ld a, [VramState]
bit 0, a
ret z
+
callba Function55e0
- callba RefreshMapAppearDisappear
+ callba _UpdateSprites
ret
; 1ae5
@@ -659,6 +679,7 @@ GetObjectSprite:: ; 1af1
; 1af8
SetSpriteDirection:: ; 1af8
+ ; preserves other flags
push af
ld hl, OBJECT_FACING
add hl, bc
diff --git a/home/menu.asm b/home/menu.asm
index 30497a44c..4e7b7772b 100644
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -77,7 +77,7 @@ InterpretMenu2::
call MenuBox
call UpdateSprites
call Function1c89
- call Function321c
+ call ApplyTilemap
call CopyMenuData2
ld a, [wMenuData2Flags]
bit 7, a
@@ -227,7 +227,7 @@ Function1e35:: ; 1e35
ret
; 1e5d
-Function1e5d:: ; 1e5d
+DoNthMenu:: ; 1e5d
call MenuFunc_1e7f
call MenuWriteText
call Function1eff
@@ -262,7 +262,7 @@ MenuWriteText::
push af
ld a, $1
ld [hOAMUpdate], a
- call Function321c
+ call ApplyTilemap
pop af
ld [hOAMUpdate], a
ret
@@ -438,7 +438,7 @@ Function1f79:: ; 1f79
ret
; 1f8d
-Function1f8d:: ; 1f8d
+PlaceNthMenuStrings:: ; 1f8d
push de
ld a, [MenuSelection]
call Function1fb1
@@ -464,7 +464,7 @@ endr
ret
; 1fa7
-Function1fa7:: ; 1fa7
+MenuJumptable:: ; 1fa7
ld a, [MenuSelection]
call Function1fb1
ld a, [hli]
@@ -546,7 +546,7 @@ PlayClickSFX:: ; 2009
ret
; 0x2012
-Function2012:: ; 2012
+MenuTextBoxWaitButton:: ; 2012
call MenuTextBox
call CloseText
call ExitMenu
diff --git a/home/movement.asm b/home/movement.asm
index fdb606bd5..7de5e0432 100644
--- a/home/movement.asm
+++ b/home/movement.asm
@@ -136,17 +136,17 @@ endr
big_step_right
; 1bb1
-Function1bb1:: ; 1bb1
+InitMenu3:: ; 1bb1
push hl
push bc
ld hl, wcfa1
ld b, $8
-.asm_1bb8
+.loop
ld a, [de]
inc de
ld [hli], a
dec b
- jr nz, .asm_1bb8
+ jr nz, .loop
ld a, $1
rept 2
ld [hli], a
diff --git a/home/palettes.asm b/home/palettes.asm
index 1a2e0b037..124fd803f 100644
--- a/home/palettes.asm
+++ b/home/palettes.asm
@@ -95,7 +95,7 @@ DmgToCgbBGPals:: ; c9f
; copy & reorder bg pal buffer
ld hl, BGPals ; to
- ld de, wMapPals ; from
+ ld de, UnknBGPals ; from
; order
ld a, [rBGP]
ld b, a
@@ -143,7 +143,7 @@ DmgToCgbObjPals:: ; ccb
; copy & reorder obj pal buffer
ld hl, OBPals ; to
- ld de, Unkn2Pals ; from
+ ld de, UnknOBPals ; from
; order
ld a, [rOBP0]
ld b, a
@@ -182,7 +182,7 @@ Functioncf8:: ; cf8
ld [rSVBK], a
ld hl, OBPals
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld a, [rOBP0]
ld b, a
ld c, $1
@@ -216,7 +216,7 @@ Functiond24:: ; d24
ld a, $5
ld [rSVBK], a
ld hl, OBPals + 8
- ld de, Unkn2Pals + 8
+ ld de, UnknOBPals + 8
ld a, [rOBP1]
ld b, a
ld c, $1
@@ -289,16 +289,19 @@ CopyPals:: ; d50
; d79
-Functiond79:: ; d79
+ClearVBank1:: ; d79
ld a, [hCGB]
and a
ret z
+
ld a, 1
ld [rVBK], a
+
ld hl, VTiles0
- ld bc, $2000
+ ld bc, VRAM_End - VTiles0
xor a
call ByteFill
+
ld a, 0
ld [rVBK], a
ret
@@ -347,7 +350,9 @@ FarCallScrollBGMapPalettes:: ; dbd
push af
ld a, BANK(ScrollBGMapPalettes)
rst Bankswitch
+
call ScrollBGMapPalettes
+
pop af
rst Bankswitch
ret
diff --git a/home/rtc.asm b/home/rtc.asm
index 7070c0dad..9fb71c0be 100644
--- a/home/rtc.asm
+++ b/home/rtc.asm
@@ -2,7 +2,7 @@ RTC:: ; 46f
; update time and time-sensitive palettes
; rtc enabled?
- ld a, [wc2ce]
+ ld a, [wSpriteUpdatesEnabled]
cp 0
ret z
diff --git a/home/serial.asm b/home/serial.asm
index fdaba6cc5..9f5dae96b 100644
--- a/home/serial.asm
+++ b/home/serial.asm
@@ -247,8 +247,8 @@ Function833:: ; 833
; 83b
Function83b:: ; 83b
- ld hl, wcf56
- ld de, wcf51
+ ld hl, wPlayerLinkAction
+ ld de, wOtherPlayerLinkMode
ld c, $2
ld a, $1
ld [hFFCC], a
@@ -274,7 +274,7 @@ Function83b:: ; 83b
Function862:: ; 862
call LoadTileMapToTempTileMap
- callab Function4000
+ callab PlaceWaitingText
call Function87d
jp Call_LoadTempTileMapToTileMap
; 871
@@ -282,102 +282,106 @@ Function862:: ; 862
Function871:: ; 871
call LoadTileMapToTempTileMap
- callab Function4000
+ callab PlaceWaitingText
jp Function87d
; 87d
-
+; One "giant" leap for machinekind
Function87d:: ; 87d
ld a, $ff
- ld [wcf52], a
-.asm_882
- call Function8c1
+ ld [wOtherPlayerLinkAction], a
+.loop
+ call LinkCommunicationsSendReceive
call DelayFrame
call Function82b
- jr z, .asm_89e
+ jr z, .check
push hl
ld hl, wcf5c
dec [hl]
- jr nz, .asm_89d
+ jr nz, .skip
dec hl
dec [hl]
- jr nz, .asm_89d
+ jr nz, .skip
pop hl
xor a
jp Function833
-.asm_89d
+.skip
pop hl
-.asm_89e
- ld a, [wcf52]
+.check
+ ld a, [wOtherPlayerLinkAction]
inc a
- jr z, .asm_882
- ld b, $a
-.asm_8a6
+ jr z, .loop
+
+ ld b, 10
+.receive
call DelayFrame
- call Function8c1
+ call LinkCommunicationsSendReceive
dec b
- jr nz, .asm_8a6
- ld b, $a
-.asm_8b1
+ jr nz, .receive
+
+ ld b, 10
+.acknowledge
call DelayFrame
- call Function908
+ call LinkCommunicationsSignalDataReceived
dec b
- jr nz, .asm_8b1
- ld a, [wcf52]
- ld [wcf51], a
+ jr nz, .acknowledge
+
+ ld a, [wOtherPlayerLinkAction]
+ ld [wOtherPlayerLinkMode], a
ret
; 8c1
-Function8c1:: ; 8c1
+LinkCommunicationsSendReceive:: ; 8c1
push bc
- ld b, $60
+ ld b, SERIAL_TIMECAPSULE
ld a, [wLinkMode]
- cp $1
- jr z, .asm_8d7
- ld b, $60
- jr c, .asm_8d7
- cp $2
- ld b, $70
- jr z, .asm_8d7
- ld b, $80
-
-.asm_8d7
- call Function8f3
- ld a, [wcf56]
+ cp LINK_TIMECAPSULE
+ jr z, .got_high_nybble
+ ld b, SERIAL_TIMECAPSULE
+ jr c, .got_high_nybble
+ cp LINK_TRADECENTER
+ ld b, SERIAL_TRADECENTER
+ jr z, .got_high_nybble
+ ld b, SERIAL_BATTLE
+
+.got_high_nybble
+ call .Receive
+ ld a, [wPlayerLinkAction]
add b
ld [hSerialSend], a
ld a, [hLinkPlayerNumber]
cp $2
- jr nz, .asm_8ee
+ jr nz, .player_1
ld a, $1
ld [rSC], a
ld a, $81
ld [rSC], a
-.asm_8ee
- call Function8f3
+.player_1
+ call .Receive
pop bc
ret
; 8f3
-Function8f3:: ; 8f3
+.Receive ; 8f3
ld a, [hSerialReceive]
- ld [wcf51], a
+ ld [wOtherPlayerLinkMode], a
and $f0
cp b
ret nz
xor a
ld [hSerialReceive], a
- ld a, [wcf51]
+ ld a, [wOtherPlayerLinkMode]
and $f
- ld [wcf52], a
+ ld [wOtherPlayerLinkAction], a
ret
; 908
-Function908:: ; 908
+LinkCommunicationsSignalDataReceived:: ; 908
+; Let the other system know that the data has been received.
xor a
ld [hSerialSend], a
ld a, [hLinkPlayerNumber]
diff --git a/home/text.asm b/home/text.asm
index d400ddd66..37208af9d 100644
--- a/home/text.asm
+++ b/home/text.asm
@@ -192,7 +192,7 @@ SetUpTextBox:: ; 106c
push hl
call SpeechTextBox
call UpdateSprites
- call Function321c
+ call ApplyTilemap
pop hl
ret
; 1078
@@ -714,7 +714,7 @@ FarString:: ; 13d4
ret
; 13e0
-Function13e0:: ; 13e0
+PokeFluteTerminatorCharacter:: ; 13e0
ld hl, .stop
ret
@@ -880,10 +880,10 @@ Text_TX_MOVE:: ; 1480
; [$03][addr]
ld a, [hli]
- ld [wd0e4 + 2], a
+ ld [wMenuScrollPosition + 2], a
ld c, a
ld a, [hli]
- ld [wd0e4 + 2 + 1], a
+ ld [wMenuScrollPosition + 2 + 1], a
ld b, a
ret
; 148b
diff --git a/home/tilemap.asm b/home/tilemap.asm
index 3153cea2c..74ec17cee 100644
--- a/home/tilemap.asm
+++ b/home/tilemap.asm
@@ -16,7 +16,7 @@ Function1c10:: ; 0x1c10
WriteBackup:: ; 0x1c17
push af
call ExitMenu
- call Function321c
+ call ApplyTilemap
call UpdateSprites
pop af
ret
diff --git a/home/time.asm b/home/time.asm
index be7020bda..7fb24028a 100644
--- a/home/time.asm
+++ b/home/time.asm
@@ -5,10 +5,10 @@ AskTimer:: ; 591
push af
ld a, [hMobile]
and a
- jr z, .asm_59a
+ jr z, .not_mobile
call Timer
-.asm_59a
+.not_mobile
pop af
reti
; 59c
@@ -101,7 +101,7 @@ FixDays:: ; 5e8
; update dl
ld [hRTCDayLo], a ; DL
-; flag for s0_ac60
+; flag for sRTCStatusFlags
ld a, %01000000
jr .set
@@ -120,7 +120,7 @@ FixDays:: ; 5e8
; update dl
ld [hRTCDayLo], a ; DL
-; flag for s0_ac60
+; flag for sRTCStatusFlags
ld a, %00100000
.set
@@ -190,7 +190,7 @@ FixTime:: ; 61d
Function658:: ; 658
xor a
ld [StringBuffer2], a
- ld a, $0
+ ld a, $0 ; useless
ld [StringBuffer2 + 3], a
jr Function677
@@ -202,7 +202,7 @@ Function663:: ; 663
ld [StringBuffer2 + 2], a
ld a, [hSeconds]
ld [StringBuffer2 + 3], a
- jr Function677
+ jr Function677 ; useless
Function677:: ; 677
callba Function140ed
@@ -211,13 +211,13 @@ Function677:: ; 677
-Function67e:: ; 67e
- call Function685
+PanicResetClock:: ; 67e
+ call .ClearhRTC
call SetClock
ret
; 685
-Function685:: ; 685
+.ClearhRTC ; 685
xor a
ld [hRTCSeconds], a
ld [hRTCMinutes], a
@@ -277,23 +277,23 @@ SetClock:: ; 691
; 6c4
-Function6c4:: ; 6c4
-; clear s0_ac60
+ClearRTCStatus:: ; 6c4
+; clear sRTCStatusFlags
xor a
push af
- ld a, BANK(s0_ac60)
+ ld a, BANK(sRTCStatusFlags)
call GetSRAMBank
pop af
- ld [s0_ac60], a
+ ld [sRTCStatusFlags], a
call CloseSRAM
ret
; 6d3
-Function6d3:: ; 6d3
-; append flags to s0_ac60
- ld hl, s0_ac60
+RecordRTCStatus:: ; 6d3
+; append flags to sRTCStatusFlags
+ ld hl, sRTCStatusFlags
push af
- ld a, BANK(s0_ac60)
+ ld a, BANK(sRTCStatusFlags)
call GetSRAMBank
pop af
or [hl]
@@ -302,11 +302,11 @@ Function6d3:: ; 6d3
ret
; 6e3
-Function6e3:: ; 6e3
-; check s0_ac60
- ld a, BANK(s0_ac60)
+CheckRTCStatus:: ; 6e3
+; check sRTCStatusFlags
+ ld a, BANK(sRTCStatusFlags)
call GetSRAMBank
- ld a, [s0_ac60]
+ ld a, [sRTCStatusFlags]
call CloseSRAM
ret
; 6ef