diff options
author | yenatch <yenatch@gmail.com> | 2015-11-28 20:15:35 -0500 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2015-11-28 20:15:35 -0500 |
commit | 794410352fd92ccf06974763e4b3be0b807641ab (patch) | |
tree | 05f5dd861966762db9556082229cee82e8b5eed9 /home | |
parent | 9c5473e965520f672640daf4ee76622640e0de15 (diff) | |
parent | 4bcd71e3227181baa536357af3d87a8d02af3890 (diff) |
Merge pull request #328 from PikalaxALT/master
Split out most of main.asm
Diffstat (limited to 'home')
-rw-r--r-- | home/audio.asm | 4 | ||||
-rw-r--r-- | home/battle.asm | 2 | ||||
-rw-r--r-- | home/fade.asm | 61 | ||||
-rw-r--r-- | home/map.asm | 303 | ||||
-rw-r--r-- | home/map_objects.asm | 49 | ||||
-rw-r--r-- | home/menu.asm | 12 | ||||
-rw-r--r-- | home/movement.asm | 6 | ||||
-rw-r--r-- | home/palettes.asm | 17 | ||||
-rw-r--r-- | home/rtc.asm | 2 | ||||
-rw-r--r-- | home/serial.asm | 98 | ||||
-rw-r--r-- | home/text.asm | 8 | ||||
-rw-r--r-- | home/tilemap.asm | 2 | ||||
-rw-r--r-- | home/time.asm | 42 |
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 |