diff options
Diffstat (limited to 'home')
58 files changed, 742 insertions, 1485 deletions
diff --git a/home/audio.asm b/home/audio.asm index 4b9c3a71c..dd115449d 100644 --- a/home/audio.asm +++ b/home/audio.asm @@ -1,7 +1,6 @@ ; Audio interfaces. -MapSetup_Sound_Off:: ; 3b4e - +MapSetup_Sound_Off:: push hl push de push bc @@ -24,11 +23,8 @@ MapSetup_Sound_Off:: ; 3b4e pop de pop hl ret -; 3b6a - - -UpdateSound:: ; 3b6a +UpdateSound:: push hl push de push bc @@ -51,13 +47,9 @@ UpdateSound:: ; 3b6a pop de pop hl ret -; 3b86 - -_LoadMusicByte:: ; 3b86 +_LoadMusicByte:: ; wCurMusicByte = [a:de] -GLOBAL LoadMusicByte - ld [hROMBank], a ld [MBC3RomBank], a @@ -68,10 +60,8 @@ GLOBAL LoadMusicByte ld [hROMBank], a ld [MBC3RomBank], a ret -; 3b97 - -PlayMusic:: ; 3b97 +PlayMusic:: ; Play music de. push hl @@ -104,10 +94,8 @@ PlayMusic:: ; 3b97 pop de pop hl ret -; 3bbc - -PlayMusic2:: ; 3bbc +PlayMusic2:: ; Stop playing music, then play music de. push hl @@ -138,10 +126,7 @@ PlayMusic2:: ; 3bbc pop hl ret -; 3be3 - - -PlayCry:: ; 3be3 +PlayCry:: ; Play cry de. push hl @@ -191,10 +176,8 @@ endr pop de pop hl ret -; 3c23 - -PlaySFX:: ; 3c23 +PlaySFX:: ; Play sound effect de. ; Sound effects are ordered by priority (highest to lowest) @@ -233,54 +216,49 @@ PlaySFX:: ; 3c23 pop de pop hl ret -; 3c4e - -WaitPlaySFX:: ; 3c4e +WaitPlaySFX:: call WaitSFX call PlaySFX ret -; 3c55 - -WaitSFX:: ; 3c55 +WaitSFX:: ; infinite loop until sfx is done playing push hl .wait - ld hl, wChannel5Flags + ld hl, wChannel5Flags1 bit 0, [hl] jr nz, .wait - ld hl, wChannel6Flags + ld hl, wChannel6Flags1 bit 0, [hl] jr nz, .wait - ld hl, wChannel7Flags + ld hl, wChannel7Flags1 bit 0, [hl] jr nz, .wait - ld hl, wChannel8Flags + ld hl, wChannel8Flags1 bit 0, [hl] jr nz, .wait pop hl ret -; 3c74 -IsSFXPlaying:: ; 3c74 +IsSFXPlaying:: ; Return carry if no sound effect is playing. ; The inverse of CheckSFX. push hl - ld hl, wChannel5Flags + ld hl, wChannel5Flags1 bit 0, [hl] jr nz, .playing - ld hl, wChannel6Flags + ld hl, wChannel6Flags1 bit 0, [hl] jr nz, .playing - ld hl, wChannel7Flags + ld hl, wChannel7Flags1 bit 0, [hl] jr nz, .playing - ld hl, wChannel8Flags + ld hl, wChannel8Flags1 bit 0, [hl] jr nz, .playing @@ -292,39 +270,33 @@ IsSFXPlaying:: ; 3c74 pop hl and a ret -; 3c97 -MaxVolume:: ; 3c97 +MaxVolume:: ld a, MAX_VOLUME ld [wVolume], a ret -; 3c9d -LowVolume:: ; 3c9d +LowVolume:: ld a, $33 ; 40% ld [wVolume], a ret -; 3ca3 -VolumeOff:: ; 3ca3 +VolumeOff:: xor a ld [wVolume], a ret -; 3ca8 -Unused_FadeOutMusic:: ; 3ca8 +Unused_FadeOutMusic:: ld a, 4 ld [wMusicFade], a ret -; 3cae -FadeInMusic:: ; 3cae +FadeInMusic:: ld a, 4 | (1 << MUSIC_FADE_IN_F) ld [wMusicFade], a ret -; 3cb4 -SkipMusic:: ; 3cb4 +SkipMusic:: ; Skip a frames of music. .loop and a @@ -332,9 +304,8 @@ SkipMusic:: ; 3cb4 dec a call UpdateSound jr .loop -; 3cbc -FadeToMapMusic:: ; 3cbc +FadeToMapMusic:: push hl push de push bc @@ -360,9 +331,8 @@ FadeToMapMusic:: ; 3cbc pop de pop hl ret -; 3cdf -PlayMapMusic:: ; 3cdf +PlayMapMusic:: push hl push de push bc @@ -388,9 +358,8 @@ PlayMapMusic:: ; 3cdf pop de pop hl ret -; 3d03 -EnterMapMusic:: ; 3d03 +EnterMapMusic:: push hl push de push bc @@ -419,9 +388,8 @@ EnterMapMusic:: ; 3d03 pop de pop hl ret -; 3d2f -TryRestartMapMusic:: ; 3d2f +TryRestartMapMusic:: ld a, [wDontPlayMapMusicOnReload] and a jr z, RestartMapMusic @@ -433,9 +401,8 @@ TryRestartMapMusic:: ; 3d2f xor a ld [wDontPlayMapMusicOnReload], a ret -; 3d47 -RestartMapMusic:: ; 3d47 +RestartMapMusic:: push hl push de push bc @@ -452,9 +419,8 @@ RestartMapMusic:: ; 3d47 pop de pop hl ret -; 3d62 -SpecialMapMusic:: ; 3d62 +SpecialMapMusic:: ld a, [wPlayerState] cp PLAYER_SURF jr z, .surf @@ -493,16 +459,14 @@ SpecialMapMusic:: ; 3d62 ld de, MUSIC_BUG_CATCHING_CONTEST_RANKING scf ret -; 3d97 -GetMapMusic_MaybeSpecial:: ; 3d97 +GetMapMusic_MaybeSpecial:: call SpecialMapMusic ret c call GetMapMusic ret -; 3d9f -Unreferenced_Function3d9f:: ; 3d9f +Unreferenced_Function3d9f:: ; Places a BCD number at the ; upper center of the screen. ld a, 4 * TILE_WIDTH @@ -536,20 +500,19 @@ Unreferenced_Function3d9f:: ; 3d9f ld [wVirtualOAMSprite38TileID], a ld [wVirtualOAMSprite39TileID], a ret -; 3dde -CheckSFX:: ; 3dde +CheckSFX:: ; Return carry if any SFX channels are active. - ld a, [wChannel5Flags] + ld a, [wChannel5Flags1] bit 0, a jr nz, .playing - ld a, [wChannel6Flags] + ld a, [wChannel6Flags1] bit 0, a jr nz, .playing - ld a, [wChannel7Flags] + ld a, [wChannel7Flags1] bit 0, a jr nz, .playing - ld a, [wChannel8Flags] + ld a, [wChannel8Flags1] bit 0, a jr nz, .playing and a @@ -557,11 +520,10 @@ CheckSFX:: ; 3dde .playing scf ret -; 3dfe -TerminateExpBarSound:: ; 3dfe +TerminateExpBarSound:: xor a - ld [wChannel5Flags], a + ld [wChannel5Flags1], a ld [wSoundInput], a ld [rNR10], a ld [rNR11], a @@ -569,27 +531,23 @@ TerminateExpBarSound:: ; 3dfe ld [rNR13], a ld [rNR14], a ret -; 3e10 - -ChannelsOff:: ; 3e10 +ChannelsOff:: ; Quickly turn off music channels xor a - ld [wChannel1Flags], a - ld [wChannel2Flags], a - ld [wChannel3Flags], a - ld [wChannel4Flags], a + ld [wChannel1Flags1], a + ld [wChannel2Flags1], a + ld [wChannel3Flags1], a + ld [wChannel4Flags1], a ld [wSoundInput], a ret -; 3e21 -SFXChannelsOff:: ; 3e21 +SFXChannelsOff:: ; Quickly turn off sound effect channels xor a - ld [wChannel5Flags], a - ld [wChannel6Flags], a - ld [wChannel7Flags], a - ld [wChannel8Flags], a + ld [wChannel5Flags1], a + ld [wChannel6Flags1], a + ld [wChannel7Flags1], a + ld [wChannel8Flags1], a ld [wSoundInput], a ret -; 3e32 diff --git a/home/battle.asm b/home/battle.asm index e59b1e3b4..e88adef02 100644 --- a/home/battle.asm +++ b/home/battle.asm @@ -1,4 +1,4 @@ -UserPartyAttr:: ; 3945 +UserPartyAttr:: push af ld a, [hBattleTurn] and a @@ -8,10 +8,8 @@ UserPartyAttr:: ; 3945 .ot pop af jr OTPartyAttr -; 3951 - -OpponentPartyAttr:: ; 3951 +OpponentPartyAttr:: push af ld a, [hBattleTurn] and a @@ -21,10 +19,8 @@ OpponentPartyAttr:: ; 3951 .ot pop af jr OTPartyAttr -; 395d - -BattlePartyAttr:: ; 395d +BattlePartyAttr:: ; Get attribute a from the party struct of the active battle mon. push bc ld c, a @@ -35,10 +31,8 @@ BattlePartyAttr:: ; 395d call GetPartyLocation pop bc ret -; 396d - -OTPartyAttr:: ; 396d +OTPartyAttr:: ; Get attribute a from the party struct of the active enemy mon. push bc ld c, a @@ -49,49 +43,41 @@ OTPartyAttr:: ; 396d call GetPartyLocation pop bc ret -; 397d - -ResetDamage:: ; 397d +ResetDamage:: xor a ld [wCurDamage], a ld [wCurDamage + 1], a ret -; 3985 -SetPlayerTurn:: ; 3985 +SetPlayerTurn:: xor a ld [hBattleTurn], a ret -; 3989 -SetEnemyTurn:: ; 3989 +SetEnemyTurn:: ld a, 1 ld [hBattleTurn], a ret -; 398e - -UpdateOpponentInParty:: ; 398e +UpdateOpponentInParty:: ld a, [hBattleTurn] and a jr z, UpdateEnemyMonInParty jr UpdateBattleMonInParty -; 3995 -UpdateUserInParty:: ; 3995 +UpdateUserInParty:: ld a, [hBattleTurn] and a jr z, UpdateBattleMonInParty jr UpdateEnemyMonInParty -; 399c -UpdateBattleMonInParty:: ; 399c +UpdateBattleMonInParty:: ; Update level, status, current HP ld a, [wCurBattleMon] -UpdateBattleMon:: ; 399f +UpdateBattleMon:: ld hl, wPartyMon1Level call GetPartyLocation @@ -100,9 +86,8 @@ UpdateBattleMon:: ; 399f ld hl, wBattleMonLevel ld bc, wBattleMonMaxHP - wBattleMonLevel jp CopyBytes -; 39b0 -UpdateEnemyMonInParty:: ; 39b0 +UpdateEnemyMonInParty:: ; Update level, status, current HP ; No wildmons. @@ -119,27 +104,21 @@ UpdateEnemyMonInParty:: ; 39b0 ld hl, wEnemyMonLevel ld bc, wEnemyMonMaxHP - wEnemyMonLevel jp CopyBytes -; 39c9 - -RefreshBattleHuds:: ; 39c9 +RefreshBattleHuds:: call UpdateBattleHuds ld c, 3 call DelayFrames jp WaitBGMap -; 39d4 -UpdateBattleHuds:: ; 39d4 +UpdateBattleHuds:: farcall UpdatePlayerHUD farcall UpdateEnemyHUD ret -; 39e1 - INCLUDE "home/battle_vars.asm" - -FarCopyRadioText:: ; 3a90 +FarCopyRadioText:: inc hl ld a, [hROMBank] push af @@ -161,14 +140,8 @@ FarCopyRadioText:: ; 3a90 ld [hROMBank], a ld [MBC3RomBank], a ret -; 3ab2 - - -MobileTextBorder:: ; 3ab2 - -CELL_PHONE_TOP EQU $5e -CELL_PHONE_BOTTOM EQU $5f +MobileTextBorder:: ; For mobile link battles only. ld a, [wLinkMode] cp LINK_MOBILE @@ -177,14 +150,12 @@ CELL_PHONE_BOTTOM EQU $5f ; Draw a cell phone icon at the ; top right corner of the border. hlcoord 19, 12 - ld [hl], CELL_PHONE_TOP + ld [hl], $5e ; top hlcoord 19, 13 - ld [hl], CELL_PHONE_BOTTOM + ld [hl], $5f ; bottom ret -; 3ac3 - -BattleTextBox:: ; 3ac3 +BattleTextBox:: ; Open a textbox and print text at hl. push hl call SpeechTextBox @@ -194,10 +165,8 @@ BattleTextBox:: ; 3ac3 pop hl call PrintTextBoxText ret -; 3ad5 - -StdBattleTextBox:: ; 3ad5 +StdBattleTextBox:: ; Open a textbox and print battle text at 20:hl. ld a, [hROMBank] @@ -211,10 +180,8 @@ StdBattleTextBox:: ; 3ad5 pop af rst Bankswitch ret -; 3ae1 - -GetBattleAnimPointer:: ; 3ae1 +GetBattleAnimPointer:: ld a, BANK(BattleAnimations) rst Bankswitch @@ -227,10 +194,8 @@ GetBattleAnimPointer:: ; 3ae1 rst Bankswitch ret -; 3af0 - -GetBattleAnimByte:: ; 3af0 +GetBattleAnimByte:: push hl push de @@ -258,4 +223,3 @@ GetBattleAnimByte:: ; 3af0 ld a, [wBattleAnimByte] ret -; 3b0c diff --git a/home/battle_vars.asm b/home/battle_vars.asm index c4a8dcd70..a455fce20 100644 --- a/home/battle_vars.asm +++ b/home/battle_vars.asm @@ -1,12 +1,11 @@ -GetBattleVar:: ; 39e1 +GetBattleVar:: ; Preserves hl. push hl call GetBattleVarAddr pop hl ret -; 39e7 -GetBattleVarAddr:: ; 39e7 +GetBattleVarAddr:: ; Get variable from pair a, depending on whose turn it is. ; There are 21 variable pairs. @@ -110,4 +109,3 @@ BattleVarLocations: dw wCurPlayerMove, wCurEnemyMove dw wLastPlayerCounterMove, wLastEnemyCounterMove dw wLastPlayerMove, wLastEnemyMove -; 3a90 diff --git a/home/clear_sprites.asm b/home/clear_sprites.asm index 8d64c6b10..699774612 100644 --- a/home/clear_sprites.asm +++ b/home/clear_sprites.asm @@ -1,4 +1,4 @@ -ClearSprites:: ; 300b +ClearSprites:: ; Erase OAM data ld hl, wVirtualOAM ld b, wVirtualOAMEnd - wVirtualOAM @@ -8,9 +8,8 @@ ClearSprites:: ; 300b dec b jr nz, .loop ret -; 3016 -HideSprites:: ; 3016 +HideSprites:: ; Set all OAM y-positions to 160 to hide them offscreen ld hl, wVirtualOAMSprite00YCoord ld de, SPRITEOAMSTRUCT_LENGTH @@ -22,4 +21,3 @@ HideSprites:: ; 3016 dec b jr nz, .loop ret -; 3026 diff --git a/home/copy.asm b/home/copy.asm index 9bd79ce37..68ed240e3 100644 --- a/home/copy.asm +++ b/home/copy.asm @@ -1,7 +1,6 @@ ; Functions to copy data from ROM. - -Get2bpp_2:: ; dc9 +Get2bpp_2:: ld a, [rLCDC] bit rLCDC_ENABLE, a jp z, Copy2bpp @@ -9,9 +8,8 @@ Get2bpp_2:: ; dc9 homecall _Get2bpp ret -; ddc -Get1bpp_2:: ; ddc +Get1bpp_2:: ld a, [rLCDC] bit rLCDC_ENABLE, a jp z, Copy1bpp @@ -19,9 +17,8 @@ Get1bpp_2:: ; ddc homecall _Get1bpp ret -; def -FarCopyBytesDouble_DoubleBankSwitch:: ; def +FarCopyBytesDouble_DoubleBankSwitch:: ld [hBuffer], a ld a, [hROMBank] push af @@ -33,9 +30,8 @@ FarCopyBytesDouble_DoubleBankSwitch:: ; def pop af rst Bankswitch ret -; dfd -OldDMATransfer:: ; dfd +OldDMATransfer:: dec c ld a, [hBGMapMode] push af @@ -96,41 +92,29 @@ OldDMATransfer:: ; dfd pop af ld [hBGMapMode], a ret -; e4a - - -ReplaceKrisSprite:: ; e4a +ReplaceKrisSprite:: farcall _ReplaceKrisSprite ret -; e51 - - -LoadStandardFont:: ; e51 +LoadStandardFont:: farcall _LoadStandardFont ret -; e58 -LoadFontsBattleExtra:: ; e58 +LoadFontsBattleExtra:: farcall _LoadFontsBattleExtra ret -; e5f - - -LoadFontsExtra:: ; e5f +LoadFontsExtra:: farcall _LoadFontsExtra1 farcall _LoadFontsExtra2 ret -; e6c -LoadFontsExtra2:: ; e6c +LoadFontsExtra2:: farcall _LoadFontsExtra2 ret -; e73 -DecompressRequest2bpp:: ; e73 +DecompressRequest2bpp:: push de ld a, BANK(sScratch) call GetSRAMBank @@ -147,11 +131,8 @@ DecompressRequest2bpp:: ; e73 call Request2bpp call CloseSRAM ret -; e8d - - -FarCopyBytes:: ; e8d +FarCopyBytes:: ; copy bc bytes from a:hl to de ld [hBuffer], a @@ -165,10 +146,8 @@ FarCopyBytes:: ; e8d pop af rst Bankswitch ret -; 0xe9b - -FarCopyBytesDouble:: ; e9b +FarCopyBytesDouble:: ; Copy bc bytes from a:hl to bc*2 bytes at de, ; doubling each byte in the process. @@ -204,10 +183,8 @@ FarCopyBytesDouble:: ; e9b pop af rst Bankswitch ret -; 0xeba - -Request2bpp:: ; eba +Request2bpp:: ; Load 2bpp at b:de to occupy c tiles of hl. ld a, [hBGMapMode] push af @@ -280,10 +257,8 @@ Request2bpp:: ; eba sub [hl] ld c, a jr .loop -; f1e - -Request1bpp:: ; f1e +Request1bpp:: ; Load 1bpp at b:de to occupy c tiles of hl. ld a, [hBGMapMode] push af @@ -356,15 +331,13 @@ Request1bpp:: ; f1e sub [hl] ld c, a jr .loop -; f82 - -Get2bpp:: ; f82 +Get2bpp:: ld a, [rLCDC] bit rLCDC_ENABLE, a jp nz, Request2bpp -Copy2bpp:: ; f89 +Copy2bpp:: ; copy c 2bpp tiles from b:de to hl push hl @@ -387,15 +360,13 @@ Copy2bpp:: ; f89 pop af jp FarCopyBytes -; f9d - -Get1bpp:: ; f9d +Get1bpp:: ld a, [rLCDC] bit rLCDC_ENABLE, a jp nz, Request1bpp -Copy1bpp:: ; fa4 +Copy1bpp:: ; copy c 1bpp tiles from b:de to hl push de @@ -418,4 +389,3 @@ Copy1bpp:: ; fa4 pop hl jp FarCopyBytesDouble -; fb6 diff --git a/home/copy2.asm b/home/copy2.asm index 23e1eca7f..fdf55b2e3 100644 --- a/home/copy2.asm +++ b/home/copy2.asm @@ -1,7 +1,7 @@ -CopyBytes:: ; 0x3026 +CopyBytes:: ; copy bc bytes from hl to de - inc b ; we bail the moment b hits 0, so include the last run - inc c ; same thing; include last byte + inc b ; we bail the moment b hits 0, so include the last run + inc c ; same thing; include last byte jr .HandleLoop .CopyByte: ld a, [hli] @@ -14,7 +14,7 @@ CopyBytes:: ; 0x3026 jr nz, .CopyByte ret -SwapBytes:: ; 0x3034 +SwapBytes:: ; swap bc bytes between hl and de .Loop: ; stash [hl] away on the stack @@ -37,10 +37,10 @@ SwapBytes:: ; 0x3034 jr nz, .Loop ret -ByteFill:: ; 0x3041 +ByteFill:: ; fill bc bytes with the value of a, starting at hl - inc b ; we bail the moment b hits 0, so include the last run - inc c ; same thing; include last byte + inc b ; we bail the moment b hits 0, so include the last run + inc c ; same thing; include last byte jr .HandleLoop .PutByte: ld [hli], a @@ -51,7 +51,7 @@ ByteFill:: ; 0x3041 jr nz, .PutByte ret -GetFarByte:: ; 0x304d +GetFarByte:: ; retrieve a single byte from a:hl, and return it in a. ; bankswitch to new bank ld [hBuffer], a @@ -72,7 +72,7 @@ GetFarByte:: ; 0x304d ld a, [hBuffer] ret -GetFarHalfword:: ; 0x305d +GetFarHalfword:: ; retrieve a halfword from a:hl, and return it in hl. ; bankswitch to new bank ld [hBuffer], a @@ -90,9 +90,8 @@ GetFarHalfword:: ; 0x305d pop af rst Bankswitch ret -; 0x306b -FarCopyWRAM:: ; 306b +FarCopyWRAM:: ld [hBuffer], a ld a, [rSVBK] push af @@ -104,9 +103,8 @@ FarCopyWRAM:: ; 306b pop af ld [rSVBK], a ret -; 307b -GetFarWRAMByte:: ; 307b +GetFarWRAMByte:: ld [hBuffer], a ld a, [rSVBK] push af @@ -118,9 +116,8 @@ GetFarWRAMByte:: ; 307b ld [rSVBK], a ld a, [hBuffer] ret -; 308d -GetFarWRAMWord:: ; 308d +GetFarWRAMWord:: ld [hBuffer], a ld a, [rSVBK] push af @@ -132,4 +129,3 @@ GetFarWRAMWord:: ; 308d pop af ld [rSVBK], a ret -; 309d diff --git a/home/copy_name.asm b/home/copy_name.asm index 52bcc93e7..59c8cf6c8 100644 --- a/home/copy_name.asm +++ b/home/copy_name.asm @@ -1,8 +1,8 @@ -CopyName1:: ; 30d6 +CopyName1:: ; Copies the name from de to wStringBuffer2 ld hl, wStringBuffer2 -CopyName2:: ; 30d9 +CopyName2:: ; Copies the name from de to hl .loop ld a, [de] @@ -11,4 +11,3 @@ CopyName2:: ; 30d9 cp "@" jr nz, .loop ret -; 30e1 diff --git a/home/copy_tilemap.asm b/home/copy_tilemap.asm index f6ddeff47..2c6c47244 100644 --- a/home/copy_tilemap.asm +++ b/home/copy_tilemap.asm @@ -1,4 +1,4 @@ -LoadTileMapToTempTileMap:: ; 309d +LoadTileMapToTempTileMap:: ; Load wTileMap into wTempTileMap ld a, [rSVBK] push af @@ -11,18 +11,16 @@ LoadTileMapToTempTileMap:: ; 309d pop af ld [rSVBK], a ret -; 30b4 -Call_LoadTempTileMapToTileMap:: ; 30b4 +Call_LoadTempTileMapToTileMap:: xor a ld [hBGMapMode], a call LoadTempTileMapToTileMap ld a, 1 ld [hBGMapMode], a ret -; 30bf -LoadTempTileMapToTileMap:: ; 30bf +LoadTempTileMapToTileMap:: ; Load wTempTileMap into wTileMap ld a, [rSVBK] push af @@ -35,4 +33,3 @@ LoadTempTileMapToTileMap:: ; 30bf pop af ld [rSVBK], a ret -; 30d6 diff --git a/home/cry.asm b/home/cry.asm index c5f4a1c8a..43f20b1af 100644 --- a/home/cry.asm +++ b/home/cry.asm @@ -1,4 +1,4 @@ -PlayStereoCry:: ; 37b6 +PlayStereoCry:: push af ld a, 1 ld [wStereoPanningMask], a @@ -6,9 +6,8 @@ PlayStereoCry:: ; 37b6 call _PlayMonCry call WaitSFX ret -; 37c4 -PlayStereoCry2:: ; 37c4 +PlayStereoCry2:: ; Don't wait for the cry to end. ; Used during pic animations. push af @@ -16,15 +15,13 @@ PlayStereoCry2:: ; 37c4 ld [wStereoPanningMask], a pop af jp _PlayMonCry -; 37ce -PlayMonCry:: ; 37ce +PlayMonCry:: call PlayMonCry2 call WaitSFX ret -; 37d5 -PlayMonCry2:: ; 37d5 +PlayMonCry2:: ; Don't wait for the cry to end. push af xor a @@ -33,9 +30,8 @@ PlayMonCry2:: ; 37d5 pop af call _PlayMonCry ret -; 37e2 -_PlayMonCry:: ; 37e2 +_PlayMonCry:: push hl push de push bc @@ -52,9 +48,8 @@ _PlayMonCry:: ; 37e2 pop de pop hl ret -; 37f3 -LoadCry:: ; 37f3 +LoadCry:: ; Load cry bc. call GetCryIndex @@ -88,9 +83,8 @@ endr rst Bankswitch and a ret -; 381e -GetCryIndex:: ; 381e +GetCryIndex:: and a jr z, .no cp NUM_POKEMON + 1 @@ -105,4 +99,3 @@ GetCryIndex:: ; 381e .no scf ret -; 382d diff --git a/home/decompress.asm b/home/decompress.asm index 216b861f6..d4bab7a6a 100644 --- a/home/decompress.asm +++ b/home/decompress.asm @@ -1,4 +1,4 @@ -FarDecompress:: ; b40 +FarDecompress:: ; Decompress graphics data from a:hl to de. ld [wLZBank], a @@ -12,19 +12,15 @@ FarDecompress:: ; b40 pop af rst Bankswitch ret -; b50 - -Decompress:: ; b50 +Decompress:: ; Pokemon Crystal uses an lz variant for compression. ; This is mainly (but not necessarily) used for graphics. ; This function decompresses lz-compressed data from hl to de. - LZ_END EQU $ff ; Compressed data is terminated with $ff. - ; A typical control command consists of: LZ_CMD EQU %11100000 ; command id (bits 5-7) @@ -32,7 +28,6 @@ LZ_LEN EQU %00011111 ; length n (bits 0-4) ; Additional parameters are read during command execution. - ; Commands: LZ_LITERAL EQU 0 << 5 ; Read literal data for n bytes. @@ -40,7 +35,6 @@ LZ_ITERATE EQU 1 << 5 ; Write the same byte for n bytes. LZ_ALTERNATE EQU 2 << 5 ; Alternate two bytes for n bytes. LZ_ZERO EQU 3 << 5 ; Write 0 for n bytes. - ; Another class of commands reuses data from the decompressed output. LZ_RW EQU 2 + 5 ; bit @@ -53,7 +47,6 @@ LZ_REPEAT EQU 4 << 5 ; Repeat n bytes from the offset. LZ_FLIP EQU 5 << 5 ; Repeat n bitflipped bytes. LZ_REVERSE EQU 6 << 5 ; Repeat n bytes in reverse. - ; If the value in the count needs to be larger than 5 bits, ; LZ_LONG can be used to expand the count to 10 bits. LZ_LONG EQU 7 << 5 @@ -68,10 +61,8 @@ LZ_LONG_HI EQU %00000011 ; x: the new control command ; y: the length - ; For more information, refer to the code below and in extras/gfx.py. - ; Save the output address ; for rewrite commands. ld a, e @@ -113,7 +104,6 @@ LZ_LONG_HI EQU %00000011 inc bc jr .command - .short push af @@ -125,7 +115,6 @@ LZ_LONG_HI EQU %00000011 ; read at least 1 byte inc c - .command ; Increment loop counts. ; We bail the moment they hit 0. @@ -144,7 +133,6 @@ LZ_LONG_HI EQU %00000011 cp LZ_ZERO jr z, .Zero - .Literal: ; Read literal data for bc bytes. .lloop @@ -159,7 +147,6 @@ LZ_LONG_HI EQU %00000011 inc de jr .lloop - .Iter: ; Write the same byte for bc bytes. ld a, [hli] @@ -175,7 +162,6 @@ LZ_LONG_HI EQU %00000011 inc de jr .iloop - .Alt: ; Alternate two bytes for bc bytes. dec c @@ -205,7 +191,6 @@ LZ_LONG_HI EQU %00000011 inc hl jr .Main - .Zero: ; Write 0 for bc bytes. xor a @@ -221,7 +206,6 @@ LZ_LONG_HI EQU %00000011 inc de jr .zloop - .rewrite ; Repeat decompressed data from output. push hl @@ -275,7 +259,6 @@ LZ_LONG_HI EQU %00000011 ; More practically, LZ_LONG is not recursive. ; For now, it defaults to LZ_REPEAT. - .Repeat: ; Copy decompressed data for bc bytes. dec c @@ -289,7 +272,6 @@ LZ_LONG_HI EQU %00000011 inc de jr .Repeat - .Flip: ; Copy bitflipped decompressed data for bc bytes. dec c @@ -315,7 +297,6 @@ LZ_LONG_HI EQU %00000011 inc de jr .Flip - .Reverse: ; Copy reversed decompressed data for bc bytes. dec c @@ -330,7 +311,6 @@ LZ_LONG_HI EQU %00000011 inc de jr .Reverse - .donerw pop hl @@ -340,4 +320,3 @@ LZ_LONG_HI EQU %00000011 .next inc hl jp .Main -; c2f diff --git a/home/delay.asm b/home/delay.asm index 300f65c88..4ad25ef21 100644 --- a/home/delay.asm +++ b/home/delay.asm @@ -1,4 +1,4 @@ -DelayFrame:: ; 45a +DelayFrame:: ; Wait for one frame ld a, 1 ld [wVBlankOccurred], a @@ -10,13 +10,10 @@ DelayFrame:: ; 45a and a jr nz, .halt ret -; 468 - -DelayFrames:: ; 468 +DelayFrames:: ; Wait c frames call DelayFrame dec c jr nz, DelayFrames ret -; 46f diff --git a/home/double_speed.asm b/home/double_speed.asm index c07dc9cee..de075e65e 100644 --- a/home/double_speed.asm +++ b/home/double_speed.asm @@ -5,20 +5,18 @@ ; and double speed at any time, but LCD output ; collapses during the switch. -DoubleSpeed:: ; 2fef +DoubleSpeed:: ld hl, rKEY1 bit 7, [hl] jr z, SwitchSpeed ret -; 2ff7 -NormalSpeed:: ; 2ff7 +NormalSpeed:: ld hl, rKEY1 bit 7, [hl] ret z -; 2ffd -SwitchSpeed:: ; 2ffd +SwitchSpeed:: set 0, [hl] xor a ld [rIF], a @@ -27,4 +25,3 @@ SwitchSpeed:: ; 2ffd ld [rJOYP], a stop ; rgbasm adds a nop after this instruction by default ret -; 300b diff --git a/home/fade.asm b/home/fade.asm index 1a6f87c63..56f0197e6 100644 --- a/home/fade.asm +++ b/home/fade.asm @@ -1,7 +1,6 @@ ; Functions to fade the screen in and out. - -Unreferenced_Function48c:: ; 48c +Unreferenced_Function48c:: ; TimeOfDayFade ld a, [wTimeOfDayPal] ld b, a @@ -20,10 +19,8 @@ Unreferenced_Function48c:: ; 48c ld a, [hli] ld [rOBP1], a ret -; 4a3 - -RotateFourPalettesRight:: ; 4a3 +RotateFourPalettesRight:: ld a, [hCGB] and a jr z, .dmg @@ -35,9 +32,8 @@ RotateFourPalettesRight:: ; 4a3 ld hl, IncGradGBPalTable_08 ld b, 4 jr RotatePalettesRight -; 4b6 -RotateThreePalettesRight:: ; 4b6 +RotateThreePalettesRight:: ld a, [hCGB] and a jr z, .dmg @@ -48,7 +44,7 @@ RotateThreePalettesRight:: ; 4b6 .dmg ld hl, IncGradGBPalTable_13 ld b, 3 -RotatePalettesRight:: ; 4c7 +RotatePalettesRight:: ; 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 @@ -65,9 +61,8 @@ RotatePalettesRight:: ; 4c7 dec b jr nz, RotatePalettesRight ret -; 4dd -RotateFourPalettesLeft:: ; 4dd +RotateFourPalettesLeft:: ld a, [hCGB] and a jr z, .dmg @@ -79,9 +74,8 @@ RotateFourPalettesLeft:: ; 4dd ld hl, IncGradGBPalTable_12 - 1 ld b, 4 jr RotatePalettesLeft -; 4f0 -RotateThreePalettesLeft:: ; 4f0 +RotateThreePalettesLeft:: ld a, [hCGB] and a jr z, .dmg @@ -92,7 +86,7 @@ RotateThreePalettesLeft:: ; 4f0 .dmg ld hl, IncGradGBPalTable_15 - 1 ld b, 3 -RotatePalettesLeft:: ; 501 +RotatePalettesLeft:: ; 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 @@ -109,10 +103,7 @@ RotatePalettesLeft:: ; 501 dec b jr nz, RotatePalettesLeft ret -; 517 - -; 517 IncGradGBPalTable_00:: db %11111111, %11111111, %11111111 IncGradGBPalTable_01:: db %11111110, %11111110, %11111110 IncGradGBPalTable_02:: db %11111001, %11111001, %11111001 @@ -134,4 +125,3 @@ IncGradGBPalTable_13:: db %10010000, %10000000, %10010000 IncGradGBPalTable_14:: db %01000000, %01000000, %01000000 IncGradGBPalTable_15:: db %00000000, %00000000, %00000000 -; 547 diff --git a/home/farcall.asm b/home/farcall.asm index 27649f30e..cb87b1774 100644 --- a/home/farcall.asm +++ b/home/farcall.asm @@ -1,4 +1,4 @@ -FarCall_de:: ; 2d54 +FarCall_de:: ; Call a:de. ; Preserves other registers. @@ -13,10 +13,8 @@ FarCall_de:: ; 2d54 .de push de ret -; 2d63 - -FarCall_hl:: ; 2d63 +FarCall_hl:: ; Call a:hl. ; Preserves other registers. @@ -26,9 +24,8 @@ FarCall_hl:: ; 2d63 ld a, [hBuffer] rst Bankswitch call FarJump_hl -; 2d6e -ReturnFarCall:: ; 2d6e +ReturnFarCall:: ; We want to retain the contents of f. ; To do this, we can pop to bc instead of af. @@ -47,8 +44,6 @@ ReturnFarCall:: ; 2d6e ld a, [wFarCallBCBuffer + 1] ld c, a ret -; 2d82 -FarJump_hl:: ; 2d82 +FarJump_hl:: jp hl -; 2d83 diff --git a/home/flag.asm b/home/flag.asm index 00c7d4b7e..411f04184 100644 --- a/home/flag.asm +++ b/home/flag.asm @@ -1,19 +1,17 @@ -ResetMapBufferEventFlags:: ; 2e50 +ResetMapBufferEventFlags:: xor a ld hl, wEventFlags ld [hli], a ret -; 2e56 -ResetBikeFlags:: ; 2e56 +ResetBikeFlags:: xor a ld hl, wBikeFlags ld [hli], a ld [hl], a ret -; 2e5d -ResetFlashIfOutOfCave:: ; 2e5d +ResetFlashIfOutOfCave:: ld a, [wEnvironment] cp ROUTE jr z, .outdoors @@ -25,15 +23,13 @@ ResetFlashIfOutOfCave:: ; 2e5d ld hl, wStatusFlags res STATUSFLAGS_FLASH_F, [hl] ret -; 2e6f - -EventFlagAction:: ; 0x2e6f +EventFlagAction:: ld hl, wEventFlags call FlagAction ret -FlagAction:: ; 0x2e76 +FlagAction:: ; Perform action b on bit de in flag array hl. ; inputs: @@ -99,14 +95,11 @@ FlagAction:: ; 0x2e76 and [hl] ld [hl], a ret -; 0x2ead - -CheckReceivedDex:: ; 2ead +CheckReceivedDex:: ld de, ENGINE_POKEDEX ld b, CHECK_FLAG farcall EngineFlagAction ld a, c and a ret -; 2ebb diff --git a/home/game_time.asm b/home/game_time.asm index f80d9a462..0300db73d 100644 --- a/home/game_time.asm +++ b/home/game_time.asm @@ -1,4 +1,4 @@ -ResetGameTime:: ; 208a +ResetGameTime:: xor a ld [wGameTimeCap], a ld [wGameTimeHours], a @@ -7,11 +7,8 @@ ResetGameTime:: ; 208a ld [wGameTimeSeconds], a ld [wGameTimeFrames], a ret -; 209e - - -GameTimer:: ; 209e +GameTimer:: nop ld a, [rSVBK] @@ -24,14 +21,11 @@ GameTimer:: ; 209e pop af ld [rSVBK], a ret -; 20ad - -UpdateGameTimer:: ; 20ad +UpdateGameTimer:: ; Increment the game timer by one frame. ; The game timer is capped at 999:59:59.00. - ; Don't update if game logic is paused. ld a, [wGameLogicPaused] and a @@ -47,7 +41,6 @@ UpdateGameTimer:: ; 20ad bit 0, [hl] ret nz - ; +1 frame ld hl, wGameTimeFrames ld a, [hl] @@ -59,7 +52,6 @@ UpdateGameTimer:: ; 20ad ld [hl], a ret - .second xor a ld [hl], a @@ -75,7 +67,6 @@ UpdateGameTimer:: ; 20ad ld [hl], a ret - .minute xor a ld [hl], a @@ -91,7 +82,6 @@ UpdateGameTimer:: ; 20ad ld [hl], a ret - .hour xor a ld [hl], a @@ -103,7 +93,6 @@ UpdateGameTimer:: ; 20ad ld l, a inc hl - ; Cap the timer after 1000 hours. ld a, h cp HIGH(1000) @@ -121,11 +110,9 @@ UpdateGameTimer:: ; 20ad ld [wGameTimeSeconds], a ret - .ok ld a, h ld [wGameTimeHours], a ld a, l ld [wGameTimeHours + 1], a ret -; 210f diff --git a/home/handshake.asm b/home/handshake.asm index 14daf08a7..1d3f43d6a 100644 --- a/home/handshake.asm +++ b/home/handshake.asm @@ -1,10 +1,9 @@ -PrinterReceive:: ; 2057 +PrinterReceive:: homecall _PrinterReceive ret -; 2063 -AskSerial:: ; 2063 +AskSerial:: ; send out a handshake while serial int is off ld a, [wPrinterConnectionOpen] bit 0, a @@ -41,4 +40,3 @@ AskSerial:: ; 2063 ld [rSC], a ret -; 208a diff --git a/home/hm_moves.asm b/home/hm_moves.asm index c4233d094..30a9786a9 100644 --- a/home/hm_moves.asm +++ b/home/hm_moves.asm @@ -1,6 +1,6 @@ ; HM moves can't be forgotten -IsHM:: ; 34df +IsHM:: cp HM01 jr c, .NotHM scf @@ -8,14 +8,13 @@ IsHM:: ; 34df .NotHM: and a ret -; 34e7 -IsHMMove:: ; 34e7 +IsHMMove:: ld hl, .HMMoves ld de, 1 jp IsInArray -.HMMoves: ; 34f0 +.HMMoves: db CUT db FLY db SURF @@ -24,4 +23,3 @@ IsHMMove:: ; 34e7 db WATERFALL db WHIRLPOOL db -1 ; end -; 34f8 diff --git a/home/hp_pals.asm b/home/hp_pals.asm new file mode 100644 index 000000000..9400d341f --- /dev/null +++ b/home/hp_pals.asm @@ -0,0 +1,17 @@ +SetHPPal:: +; Set palette for hp bar pixel length e at hl. + call GetHPPal + ld [hl], d + ret + +GetHPPal:: +; Get palette for hp bar pixel length e in d. + ld d, HP_GREEN + ld a, e + cp (HP_BAR_LENGTH_PX * 50 / 100) ; 24 + ret nc + inc d ; HP_YELLOW + cp (HP_BAR_LENGTH_PX * 21 / 100) ; 10 + ret nc + inc d ; HP_RED + ret diff --git a/home/init.asm b/home/init.asm index ec541ad16..dc1f538be 100644 --- a/home/init.asm +++ b/home/init.asm @@ -1,4 +1,4 @@ -Reset:: ; 150 +Reset:: di call MapSetup_Sound_Off xor a @@ -17,10 +17,8 @@ Reset:: ; 150 call DelayFrames jr Init -; 16e - -_Start:: ; 16e +_Start:: cp $11 jr z, .cgb xor a @@ -33,11 +31,8 @@ _Start:: ; 16e ld [hCGB], a ld a, $1 ld [hSystemBooted], a -; 17d - - -Init:: ; 17d +Init:: di xor a @@ -102,7 +97,6 @@ Init:: ; 17d call ClearSprites call ClearsScratch - ld a, BANK(WriteOAMDMACodeToHRAM) rst Bankswitch @@ -172,10 +166,8 @@ Init:: ; 17d xor a ld [wMapMusic], a jp GameInit -; 245 - -ClearVRAM:: ; 245 +ClearVRAM:: ; Wipe VRAM banks 0 and 1 ld a, 1 @@ -190,9 +182,8 @@ ClearVRAM:: ; 245 xor a call ByteFill ret -; 25a -ClearWRAM:: ; 25a +ClearWRAM:: ; Wipe swappable WRAM banks (1-7) ; Assumes CGB or AGB @@ -209,9 +200,8 @@ ClearWRAM:: ; 25a cp 8 jr nc, .bank_loop ; Should be jr c ret -; 270 -ClearsScratch:: ; 270 +ClearsScratch:: ; Wipe the first 32 bytes of sScratch ld a, BANK(sScratch) @@ -222,4 +212,3 @@ ClearsScratch:: ; 270 call ByteFill call CloseSRAM ret -; 283 diff --git a/home/item.asm b/home/item.asm index 2f550a200..282157e55 100644 --- a/home/item.asm +++ b/home/item.asm @@ -1,9 +1,8 @@ -DoItemEffect:: ; 2f3f +DoItemEffect:: farcall _DoItemEffect ret -; 2f46 -CheckTossableItem:: ; 2f46 +CheckTossableItem:: push hl push de push bc @@ -12,9 +11,8 @@ CheckTossableItem:: ; 2f46 pop de pop hl ret -; 2f53 -TossItem:: ; 2f53 +TossItem:: push hl push de push bc @@ -32,9 +30,8 @@ TossItem:: ; 2f53 pop de pop hl ret -; 2f66 -ReceiveItem:: ; 2f66 +ReceiveItem:: push bc ld a, [hROMBank] push af @@ -52,9 +49,8 @@ ReceiveItem:: ; 2f66 rst Bankswitch pop bc ret -; 2f79 -CheckItem:: ; 2f79 +CheckItem:: push hl push de push bc @@ -72,4 +68,3 @@ CheckItem:: ; 2f79 pop de pop hl ret -; 2f8c diff --git a/home/joypad.asm b/home/joypad.asm index f46ab5c98..87fc60d7e 100644 --- a/home/joypad.asm +++ b/home/joypad.asm @@ -1,21 +1,19 @@ -JoypadInt:: ; 92e +JoypadInt:: ; Replaced by Joypad, called from VBlank instead of the useless ; joypad interrupt. ; This is a placeholder in case the interrupt is somehow enabled. reti -; 92f -ClearJoypad:: ; 92f +ClearJoypad:: xor a ; Pressed this frame (delta) ld [hJoyPressed], a ; Currently pressed ld [hJoyDown], a ret -; 935 -Joypad:: ; 935 +Joypad:: ; Read the joypad register and translate it to something more ; workable for use in-game. There are 8 buttons, so we can use ; one byte to contain all player input. @@ -103,10 +101,8 @@ endr jp z, Reset ret -; 984 - -GetJoypad:: ; 984 +GetJoypad:: ; Update mirror joypad input from hJoypadDown (real input) ; hJoyReleased: released this frame (delta) @@ -193,7 +189,6 @@ GetJoypad:: ; 984 rst Bankswitch jr .quit - .updateauto ; An input of $ff will end the stream. ld a, [hli] @@ -232,10 +227,8 @@ GetJoypad:: ; 984 ld [hJoyPressed], a ; pressed ld [hJoyDown], a ; input jr .quit -; 9ee - -StartAutoInput:: ; 9ee +StartAutoInput:: ; Start reading automated input stream at a:hl. ld [wAutoInputBank], a @@ -255,10 +248,8 @@ StartAutoInput:: ; 9ee ld a, AUTO_INPUT ld [wInputType], a ret -; a0a - -StopAutoInput:: ; a0a +StopAutoInput:: ; Clear variables related to automated input. xor a ld [wAutoInputBank], a @@ -268,10 +259,8 @@ StopAutoInput:: ; a0a ; Back to normal input. ld [wInputType], a ret -; a1b - -JoyTitleScreenInput:: ; a1b +JoyTitleScreenInput:: .loop call DelayFrame @@ -297,10 +286,8 @@ JoyTitleScreenInput:: ; a1b .keycombo scf ret -; a36 - -JoyWaitAorB:: ; a36 +JoyWaitAorB:: .loop call DelayFrame call GetJoypad @@ -309,9 +296,8 @@ JoyWaitAorB:: ; a36 ret nz call RTC jr .loop -; a46 -WaitButton:: ; a46 +WaitButton:: ld a, [hOAMUpdate] push af ld a, 1 @@ -321,9 +307,8 @@ WaitButton:: ; a46 pop af ld [hOAMUpdate], a ret -; a57 -JoyTextDelay:: ; a57 +JoyTextDelay:: call GetJoypad ld a, [hInMenu] and a @@ -351,9 +336,8 @@ JoyTextDelay:: ; a57 ld a, 5 ld [wTextDelayFrames], a ret -; a80 -WaitPressAorB_BlinkCursor:: ; a80 +WaitPressAorB_BlinkCursor:: ld a, [hMapObjectIndexBuffer] push af ld a, [hObjectStructIndexBuffer] @@ -379,18 +363,16 @@ WaitPressAorB_BlinkCursor:: ; a80 pop af ld [hMapObjectIndexBuffer], a ret -; aa5 -SimpleWaitPressAorB:: ; aa5 +SimpleWaitPressAorB:: .loop call JoyTextDelay ld a, [hJoyLast] and A_BUTTON | B_BUTTON jr z, .loop ret -; aaf -ButtonSound:: ; aaf +ButtonSound:: ld a, [wLinkMode] and a jr nz, .link @@ -404,9 +386,8 @@ ButtonSound:: ; aaf .link ld c, 65 jp DelayFrames -; ac6 -.wait_input ; ac6 +.wait_input ld a, [hOAMUpdate] push af ld a, $1 @@ -432,9 +413,8 @@ ButtonSound:: ; aaf pop af ld [hOAMUpdate], a ret -; af5 -.blink_cursor ; af5 +.blink_cursor ld a, [hVBlankCounter] and %00010000 ; bit 4, a jr z, .cursor_off @@ -447,9 +427,8 @@ ButtonSound:: ; aaf .load_cursor_state ldcoord_a 18, 17 ret -; b06 -BlinkCursor:: ; b06 +BlinkCursor:: push bc ld a, [hl] ld b, a @@ -491,4 +470,3 @@ BlinkCursor:: ; b06 ld a, "▼" ld [hl], a ret -; b40 diff --git a/home/lcd.asm b/home/lcd.asm index 3899f0816..7ea53d453 100644 --- a/home/lcd.asm +++ b/home/lcd.asm @@ -1,7 +1,6 @@ ; LCD handling - -Unreferenced_Function547:: ; 547 +Unreferenced_Function547:: ld a, [hLCDCPointer] cp rSCX - $ff00 ret nz @@ -9,10 +8,8 @@ Unreferenced_Function547:: ; 547 ld a, [wLYOverrides] ld [$ff00+c], a ret -; 552 - -LCD:: ; 552 +LCD:: push af ld a, [hLCDCPointer] and a @@ -34,10 +31,8 @@ LCD:: ; 552 .done pop af reti -; 568 - -DisableLCD:: ; 568 +DisableLCD:: ; Turn the LCD off ; Don't need to do anything if the LCD is already off @@ -69,12 +64,9 @@ DisableLCD:: ; 568 ld a, b ld [rIE], a ret -; 58a - -EnableLCD:: ; 58a +EnableLCD:: ld a, [rLCDC] set rLCDC_ENABLE, a ld [rLCDC], a ret -; 591 diff --git a/home/map.asm b/home/map.asm index 02b25f3c6..a38b791fb 100644 --- a/home/map.asm +++ b/home/map.asm @@ -1,14 +1,13 @@ ; Functions dealing with rendering and interacting with maps. -Clearwc7e8:: ; 210f +Clearwc7e8:: ld hl, wc7e8 ld bc, wc7e8_End - wc7e8 ld a, 0 call ByteFill ret -; 211b -CheckScenes:: ; 211b +CheckScenes:: ; Checks wCurrMapSceneScriptPointer. If it's empty, returns -1 in a. Otherwise, returns the active scene ID in a. push hl ld hl, wCurrMapSceneScriptPointer @@ -23,9 +22,8 @@ CheckScenes:: ; 211b .scene_exists pop hl ret -; 212a -GetCurrentMapSceneID:: ; 212a +GetCurrentMapSceneID:: ; Grabs the wram map scene script pointer for the current map and loads it into wCurrMapSceneScriptPointer. ; If there is no scene, both bytes of wCurrMapSceneScriptPointer are wiped clean. ; Copy the current map group and number into bc. This is needed for GetMapSceneID. @@ -46,9 +44,8 @@ GetCurrentMapSceneID:: ; 212a ld [wCurrMapSceneScriptPointer + 1], a xor a ret -; 2147 -GetMapSceneID:: ; 2147 +GetMapSceneID:: ; Searches the scene script table for the map group and number loaded in bc, and returns the wram pointer in de. ; If the map is not in the scene script table, returns carry. push bc @@ -93,15 +90,13 @@ GetMapSceneID:: ; 2147 pop bc ret -; 2173 -OverworldTextModeSwitch:: ; 2173 +OverworldTextModeSwitch:: call LoadMapPart call FarCallSwapTextboxPalettes ret -; 217a -LoadMapPart:: ; 217a +LoadMapPart:: ld a, [hROMBank] push af @@ -121,9 +116,8 @@ LoadMapPart:: ; 217a pop af rst Bankswitch ret -; 2198 -LoadMetatiles:: ; 2198 +LoadMetatiles:: ; de <- wOverworldMapAnchor ld a, [wOverworldMapAnchor] ld e, a @@ -210,18 +204,16 @@ endr dec b jp nz, .row ret -; 222a -ReturnToMapFromSubmenu:: ; 222a +ReturnToMapFromSubmenu:: ld a, MAPSETUP_SUBMENU ld [hMapEntryMethod], a farcall RunMapSetupScript xor a ld [hMapEntryMethod], a ret -; 2238 -CheckWarpTile:: ; 2238 +CheckWarpTile:: call GetDestinationWarpNumber ret nc @@ -233,16 +225,14 @@ CheckWarpTile:: ; 2238 call CopyWarpData scf ret -; 224a -WarpCheck:: ; 224a +WarpCheck:: call GetDestinationWarpNumber ret nc call CopyWarpData ret -; 2252 -GetDestinationWarpNumber:: ; 2252 +GetDestinationWarpNumber:: farcall CheckWarpCollision ret nc @@ -256,9 +246,8 @@ GetDestinationWarpNumber:: ; 2252 ld a, d rst Bankswitch ret -; 2266 -.GetDestinationWarpNumber: ; 2266 +.GetDestinationWarpNumber: ld a, [wPlayerStandingMapY] sub 4 ld e, a @@ -315,9 +304,8 @@ GetDestinationWarpNumber:: ; 2252 inc hl scf ret -; 22a7 -CopyWarpData:: ; 22a7 +CopyWarpData:: ld a, [hROMBank] push af @@ -328,9 +316,8 @@ CopyWarpData:: ; 22a7 rst Bankswitch scf ret -; 22b4 -.CopyWarpData: ; 22b4 +.CopyWarpData: push bc ld hl, wCurrMapWarpsPointer ld a, [hli] @@ -364,16 +351,14 @@ CopyWarpData:: ; 22a7 ld [wPrevMapNumber], a scf ret -; 22ee -CheckOutdoorMap:: ; 22ee +CheckOutdoorMap:: cp ROUTE ret z cp TOWN ret -; 22f4 -CheckIndoorMap:: ; 22f4 +CheckIndoorMap:: cp INDOOR ret z cp CAVE @@ -382,7 +367,6 @@ CheckIndoorMap:: ; 22f4 ret z cp GATE ret -; 2300 ; unused cp INDOOR @@ -391,36 +375,32 @@ CheckIndoorMap:: ; 22f4 ret z cp ENVIRONMENT_5 ret -; 2309 -LoadMapAttributes:: ; 2309 +LoadMapAttributes:: call CopyMapPartialAndAttributes call SwitchToMapScriptsBank call ReadMapScripts xor a ; do not skip object_events call ReadMapEvents ret -; 2317 -LoadMapAttributes_SkipPeople:: ; 2317 +LoadMapAttributes_SkipPeople:: call CopyMapPartialAndAttributes call SwitchToMapScriptsBank call ReadMapScripts ld a, TRUE ; skip object events call ReadMapEvents ret -; 2326 -CopyMapPartialAndAttributes:: ; 2326 +CopyMapPartialAndAttributes:: call CopyMapPartial call SwitchToMapAttributesBank call GetMapAttributesPointer call CopyMapAttributes call GetMapConnections ret -; 2336 -ReadMapEvents:: ; 2336 +ReadMapEvents:: push af ld hl, wMapEventsPointer ld a, [hli] @@ -438,9 +418,8 @@ ReadMapEvents:: ; 2336 call ReadObjectEvents ret -; 234f -ReadMapScripts:: ; 234f +ReadMapScripts:: ld hl, wMapScriptsPointer ld a, [hli] ld h, [hl] @@ -448,9 +427,8 @@ ReadMapScripts:: ; 234f call ReadMapSceneScripts call ReadMapCallbacks ret -; 235c -CopyMapAttributes:: ; 235c +CopyMapAttributes:: ld de, wMapAttributes ld c, wMapAttributesEnd - wMapAttributes .loop @@ -460,9 +438,8 @@ CopyMapAttributes:: ; 235c dec c jr nz, .loop ret -; 2368 -GetMapConnections:: ; 2368 +GetMapConnections:: ld a, $ff ld [wNorthConnectedMapGroup], a ld [wSouthConnectedMapGroup], a @@ -497,9 +474,8 @@ GetMapConnections:: ; 2368 .no_east ret -; 23a3 -GetMapConnection:: ; 23a3 +GetMapConnection:: ; Load map connection struct at hl into de. ld c, wSouthMapConnection - wNorthMapConnection .loop @@ -509,9 +485,8 @@ GetMapConnection:: ; 23a3 dec c jr nz, .loop ret -; 23ac -ReadMapSceneScripts:: ; 23ac +ReadMapSceneScripts:: ld a, [hli] ; scene script count ld c, a ld [wCurrMapSceneScriptCount], a ; current map scene script count @@ -526,9 +501,8 @@ ReadMapSceneScripts:: ; 23ac ld bc, 4 ; scene_script size call AddNTimes ret -; 23c3 -ReadMapCallbacks:: ; 23c3 +ReadMapCallbacks:: ld a, [hli] ld c, a ld [wCurrMapCallbackCount], a @@ -543,9 +517,8 @@ ReadMapCallbacks:: ; 23c3 ld bc, 3 call AddNTimes ret -; 23da -ReadWarps:: ; 23da +ReadWarps:: ld a, [hli] ld c, a ld [wCurrMapWarpCount], a @@ -559,9 +532,8 @@ ReadWarps:: ; 23da ld bc, 5 call AddNTimes ret -; 23f1 -ReadCoordEvents:: ; 23f1 +ReadCoordEvents:: ld a, [hli] ld c, a ld [wCurrMapCoordEventCount], a @@ -577,9 +549,8 @@ ReadCoordEvents:: ; 23f1 ld bc, 8 call AddNTimes ret -; 2408 -ReadBGEvents:: ; 2408 +ReadBGEvents:: ld a, [hli] ld c, a ld [wCurrMapBGEventCount], a @@ -595,9 +566,8 @@ ReadBGEvents:: ; 2408 ld bc, 5 call AddNTimes ret -; 241f -ReadObjectEvents:: ; 241f +ReadObjectEvents:: push hl call ClearObjectStructs pop de @@ -641,9 +611,8 @@ ReadObjectEvents:: ; 241f ld h, d ld l, e ret -; 2457 -CopyMapObjectEvents:: ; 2457 +CopyMapObjectEvents:: and a ret z @@ -668,9 +637,8 @@ CopyMapObjectEvents:: ; 2457 dec c jr nz, .loop ret -; 2471 -ClearObjectStructs:: ; 2471 +ClearObjectStructs:: ld hl, wObject1Struct ld bc, OBJECT_STRUCT_LENGTH * (NUM_OBJECT_STRUCTS - 1) xor a @@ -687,9 +655,8 @@ ClearObjectStructs:: ; 2471 dec c jr nz, .loop ret -; 248a -RestoreFacingAfterWarp:: ; 248a +RestoreFacingAfterWarp:: call GetMapScriptsBank rst Bankswitch @@ -719,7 +686,6 @@ RestoreFacingAfterWarp:: ; 248a .skip farcall GetCoordOfUpperLeftCorner ret -; 24ba .backup ld a, [wPrevWarp] @@ -729,9 +695,8 @@ RestoreFacingAfterWarp:: ; 248a ld a, [wPrevMapNumber] ld [wBackupMapNumber], a ret -; 24cd -LoadBlockData:: ; 24cd +LoadBlockData:: ld hl, wOverworldMapBlocks ld bc, wOverworldMapBlocksEnd - wOverworldMapBlocks ld a, 0 @@ -741,9 +706,8 @@ LoadBlockData:: ; 24cd ld a, MAPCALLBACK_TILES call RunMapCallback ret -; 24e4 -ChangeMap:: ; 24e4 +ChangeMap:: ld a, [hROMBank] push af @@ -791,10 +755,8 @@ ChangeMap:: ; 24e4 pop af rst Bankswitch ret -; 2524 - -FillMapConnections:: ; 2524 +FillMapConnections:: ; North ld a, [wNorthConnectedMapGroup] cp $ff @@ -889,11 +851,9 @@ FillMapConnections:: ; 2524 .Done: ret -; 25d3 FillNorthConnectionStrip:: -FillSouthConnectionStrip:: ; 25d3 - +FillSouthConnectionStrip:: ld c, 3 .y push de @@ -925,11 +885,9 @@ FillSouthConnectionStrip:: ; 25d3 dec c jr nz, .y ret -; 25f6 FillWestConnectionStrip:: -FillEastConnectionStrip:: ; 25f6 - +FillEastConnectionStrip:: .loop ld a, [wMapWidth] add 6 @@ -964,14 +922,12 @@ FillEastConnectionStrip:: ; 25f6 dec b jr nz, .loop ret -; 261b -LoadMapStatus:: ; 261b +LoadMapStatus:: ld [wMapStatus], a ret -; 261f -CallScript:: ; 261f +CallScript:: ; Call a script at a:hl. ld [wScriptBank], a @@ -985,18 +941,16 @@ CallScript:: ; 261f scf ret -; 2631 -CallMapScript:: ; 2631 +CallMapScript:: ; Call a script at hl in the current bank if there isn't already a script running ld a, [wScriptRunning] and a ret nz call GetMapScriptsBank jr CallScript -; 263b -RunMapCallback:: ; 263b +RunMapCallback:: ; Will run the first callback found with execution index equal to a. ld b, a ld a, [hROMBank] @@ -1015,9 +969,8 @@ RunMapCallback:: ; 263b pop af rst Bankswitch ret -; 2653 -.FindCallback: ; 2653 +.FindCallback: ld a, [wCurrMapCallbackCount] ld c, a and a @@ -1046,9 +999,8 @@ RunMapCallback:: ; 263b ld l, a scf ret -; 2674 -ExecuteCallbackScript:: ; 2674 +ExecuteCallbackScript:: ; Do map callback de and return to script bank b. farcall CallCallback ld a, [wScriptMode] @@ -1064,9 +1016,8 @@ ExecuteCallbackScript:: ; 2674 pop af ld [wScriptMode], a ret -; 269a -MapTextbox:: ; 269a +MapTextbox:: ld a, [hROMBank] push af @@ -1087,9 +1038,8 @@ MapTextbox:: ; 269a pop af rst Bankswitch ret -; 26b7 -Call_a_de:: ; 26b7 +Call_a_de:: ; Call a:de. ld [hBuffer], a @@ -1107,9 +1057,8 @@ Call_a_de:: ; 26b7 .de push de ret -; 26c7 -GetMovementData:: ; 26c7 +GetMovementData:: ; Initialize the movement data for object c at b:hl ld a, [hROMBank] push af @@ -1123,9 +1072,8 @@ GetMovementData:: ; 26c7 ld a, h rst Bankswitch ret -; 26d4 -GetScriptByte:: ; 0x26d4 +GetScriptByte:: ; Return byte at wScriptBank:wScriptPos in a. push hl @@ -1154,36 +1102,29 @@ GetScriptByte:: ; 0x26d4 pop bc pop hl ret -; 0x26ef -ObjectEvent:: ; 0x26ef +ObjectEvent:: jumptextfaceplayer ObjectEventText -; 0x26f2 ObjectEventText:: text_jump _ObjectEventText db "@" -; 0x26f7 -BGEvent:: ; 26f7 +BGEvent:: jumptext BGEventText -; 26fa -BGEventText:: ; 26fa +BGEventText:: text_jump UnknownText_0x1c46fc db "@" -; 26ff -CoordinatesEvent:: ; 26ff +CoordinatesEvent:: jumptext CoordinatesEventText -; 2702 -CoordinatesEventText:: ; 2702 +CoordinatesEventText:: text_jump UnknownText_0x1c4706 db "@" -; 2707 -CheckObjectMask:: ; 2707 +CheckObjectMask:: ld a, [hMapObjectIndexBuffer] ld e, a ld d, $0 @@ -1191,9 +1132,8 @@ CheckObjectMask:: ; 2707 add hl, de ld a, [hl] ret -; 2712 -MaskObject:: ; 2712 +MaskObject:: ld a, [hMapObjectIndexBuffer] ld e, a ld d, $0 @@ -1201,9 +1141,8 @@ MaskObject:: ; 2712 add hl, de ld [hl], -1 ; , masked ret -; 271e -UnmaskObject:: ; 271e +UnmaskObject:: ld a, [hMapObjectIndexBuffer] ld e, a ld d, $0 @@ -1211,9 +1150,8 @@ UnmaskObject:: ; 271e add hl, de ld [hl], 0 ; unmasked ret -; 272a -ScrollMapDown:: ; 272a +ScrollMapDown:: hlcoord 0, 0 ld de, wBGMapBuffer call BackupBGMapRow @@ -1227,9 +1165,8 @@ ScrollMapDown:: ; 272a ld a, $1 ld [hBGMapUpdate], a ret -; 2748 -ScrollMapUp:: ; 2748 +ScrollMapUp:: hlcoord 0, SCREEN_HEIGHT - 2 ld de, wBGMapBuffer call BackupBGMapRow @@ -1239,7 +1176,7 @@ ScrollMapUp:: ; 2748 ld l, a ld a, [wBGMapAnchor + 1] ld h, a - ld bc, $0200 + ld bc, BG_MAP_WIDTH tiles add hl, bc ; cap d at HIGH(vBGMap0) ld a, h @@ -1251,9 +1188,8 @@ ScrollMapUp:: ; 2748 ld a, $1 ld [hBGMapUpdate], a ret -; 2771 -ScrollMapRight:: ; 2771 +ScrollMapRight:: hlcoord 0, 0 ld de, wBGMapBuffer call BackupBGMapColumn @@ -1267,9 +1203,8 @@ ScrollMapRight:: ; 2771 ld a, $1 ld [hBGMapUpdate], a ret -; 278f -ScrollMapLeft:: ; 278f +ScrollMapLeft:: hlcoord SCREEN_WIDTH - 2, 0 ld de, wBGMapBuffer call BackupBGMapColumn @@ -1290,9 +1225,8 @@ ScrollMapLeft:: ; 278f ld a, $1 ld [hBGMapUpdate], a ret -; 27b7 -BackupBGMapRow:: ; 27b7 +BackupBGMapRow:: ld c, 2 * SCREEN_WIDTH .loop ld a, [hli] @@ -1301,9 +1235,8 @@ BackupBGMapRow:: ; 27b7 dec c jr nz, .loop ret -; 27c0 -BackupBGMapColumn:: ; 27c0 +BackupBGMapColumn:: ld c, SCREEN_HEIGHT .loop ld a, [hli] @@ -1322,9 +1255,8 @@ BackupBGMapColumn:: ; 27c0 dec c jr nz, .loop ret -; 27d3 -UpdateBGMapRow:: ; 27d3 +UpdateBGMapRow:: ld hl, wBGMapBufferPtrs push de call .iteration @@ -1354,9 +1286,8 @@ UpdateBGMapRow:: ; 27d3 ld a, SCREEN_WIDTH ld [hBGMapTileCount], a ret -; 27f8 -UpdateBGMapColumn:: ; 27f8 +UpdateBGMapColumn:: ld hl, wBGMapBufferPtrs ld c, SCREEN_HEIGHT .loop @@ -1381,7 +1312,6 @@ UpdateBGMapColumn:: ; 27f8 ld a, SCREEN_HEIGHT ld [hBGMapTileCount], a ret -; 2816 Unreferenced_Function2816:: ld hl, wBGMapBuffer @@ -1389,9 +1319,8 @@ Unreferenced_Function2816:: xor a call ByteFill ret -; 2821 -LoadTilesetGFX:: ; 2821 +LoadTilesetGFX:: ld hl, wTilesetAddress ld a, [hli] ld h, [hl] @@ -1446,9 +1375,8 @@ LoadTilesetGFX:: ; 2821 xor a ld [hTileAnimFrame], a ret -; 2879 -BufferScreen:: ; 2879 +BufferScreen:: ld hl, wOverworldMapAnchor ld a, [hli] ld h, [hl] @@ -1475,9 +1403,8 @@ BufferScreen:: ; 2879 dec c jr nz, .row ret -; 289d -SaveScreen:: ; 289d +SaveScreen:: ld hl, wOverworldMapAnchor ld a, [hli] ld h, [hl] @@ -1524,7 +1451,7 @@ SaveScreen:: ; 289d ld c, SCREEN_META_HEIGHT jr SaveScreen_LoadNeighbor -LoadNeighboringBlockData:: ; 28e3 +LoadNeighboringBlockData:: ld hl, wOverworldMapAnchor ld a, [hli] ld h, [hl] @@ -1536,7 +1463,7 @@ LoadNeighboringBlockData:: ; 28e3 ld b, SCREEN_META_WIDTH ld c, SCREEN_META_HEIGHT -SaveScreen_LoadNeighbor:: ; 28f7 +SaveScreen_LoadNeighbor:: .row push bc push hl @@ -1564,9 +1491,8 @@ SaveScreen_LoadNeighbor:: ; 28f7 dec c jr nz, .row ret -; 2914 -GetMovementPermissions:: ; 2914 +GetMovementPermissions:: xor a ld [wTilePermissions], a call .LeftRight @@ -1594,9 +1520,8 @@ GetMovementPermissions:: ; 2914 or [hl] ld [hl], a ret -; 2945 -.MovementPermissionsData: ; 2945 +.MovementPermissionsData: db DOWN_MASK db UP_MASK db LEFT_MASK @@ -1605,7 +1530,6 @@ GetMovementPermissions:: ; 2914 db UP_MASK | RIGHT_MASK db DOWN_MASK | LEFT_MASK db UP_MASK | LEFT_MASK -; 294d .UpDown: ld a, [wPlayerStandingMapX] @@ -1625,7 +1549,6 @@ GetMovementPermissions:: ; 2914 ld [wTileUp], a call .Up ret -; 296c .LeftRight: ld a, [wPlayerStandingMapX] @@ -1645,7 +1568,6 @@ GetMovementPermissions:: ; 2914 ld [wTileRight], a call .Right ret -; 298b .Down: call .CheckHiNybble @@ -1664,7 +1586,6 @@ GetMovementPermissions:: ; 2914 or FACE_DOWN ld [wTilePermissions], a ret -; 29a8 .Up: call .CheckHiNybble @@ -1683,7 +1604,6 @@ GetMovementPermissions:: ; 2914 or FACE_UP ld [wTilePermissions], a ret -; 29c5 .Right: call .CheckHiNybble @@ -1702,7 +1622,6 @@ GetMovementPermissions:: ; 2914 or FACE_RIGHT ld [wTilePermissions], a ret -; 29e2 .Left: call .CheckHiNybble @@ -1721,17 +1640,15 @@ GetMovementPermissions:: ; 2914 or FACE_LEFT ld [wTilePermissions], a ret -; 29ff .CheckHiNybble: and $f0 - cp $b0 + cp HI_NYBBLE_SIDE_WALLS ret z - cp $c0 + cp HI_NYBBLE_UNUSED_C0 ret -; 2a07 -GetFacingTileCoord:: ; 2a07 +GetFacingTileCoord:: ; Return map coordinates in (d, e) and tile id in a ; of the tile the player is facing. @@ -1774,9 +1691,8 @@ GetFacingTileCoord:: ; 2a07 dw wTileLeft db 1, 0 dw wTileRight -; 2a3c -GetCoordTile:: ; 2a3c +GetCoordTile:: ; Get the collision byte for tile d, e call GetBlockLocation ld a, [hl] @@ -1809,9 +1725,8 @@ GetCoordTile:: ; 2a3c .nope ld a, -1 ret -; 2a66 -GetBlockLocation:: ; 2a66 +GetBlockLocation:: ld a, [wMapWidth] add 6 ld c, a @@ -1839,9 +1754,8 @@ GetBlockLocation:: ; 2a66 ld b, 0 add hl, bc ret -; 2a8b -CheckFacingBGEvent:: ; 2a8b +CheckFacingBGEvent:: call GetFacingTileCoord ; Load facing into b. ld b, a @@ -1866,9 +1780,8 @@ CheckFacingBGEvent:: ; 2a8b ld a, h rst Bankswitch ret -; 2aaa -CheckIfFacingTileCoordIsBGEvent:: ; 2aaa +CheckIfFacingTileCoordIsBGEvent:: ; Checks to see if you are facing a BG event. If so, copies it into wEngineBuffer1 and sets carry. ld hl, wCurrMapBGEventsPointer ld a, [hli] @@ -1905,9 +1818,8 @@ CheckIfFacingTileCoordIsBGEvent:: ; 2aaa call CopyBytes scf ret -; 2ad4 -CheckCurrentMapCoordEvents:: ; 2ad4 +CheckCurrentMapCoordEvents:: ; If there are no coord events, we don't need to be here. ld a, [wCurrMapCoordEventCount] and a @@ -1978,9 +1890,8 @@ CheckCurrentMapCoordEvents:: ; 2ad4 call CopyBytes scf ret -; 2b29 -FadeToMenu:: ; 2b29 +FadeToMenu:: xor a ld [hBGMapMode], a call LoadStandardMenuHeader @@ -1988,24 +1899,22 @@ FadeToMenu:: ; 2b29 call ClearSprites call DisableSpriteUpdates ret -; 2b3c -CloseSubmenu:: ; 2b3c +CloseSubmenu:: call ClearBGPalettes call ReloadTilesetAndPalettes call UpdateSprites call Call_ExitMenu call ret_d90 jr FinishExitMenu -; 2b4d -ExitAllMenus:: ; 2b4d +ExitAllMenus:: call ClearBGPalettes call Call_ExitMenu call ReloadTilesetAndPalettes call UpdateSprites call ret_d90 -FinishExitMenu:: ; 2b5c +FinishExitMenu:: ld b, SCGB_MAPPALS call GetSGBLayout farcall LoadOW_BGPal7 @@ -2013,9 +1922,8 @@ FinishExitMenu:: ; 2b5c farcall FadeInPalettes call EnableSpriteUpdates ret -; 2b74 -ReturnToMapWithSpeechTextbox:: ; 0x2b74 +ReturnToMapWithSpeechTextbox:: push af ld a, $1 ld [wSpriteUpdatesEnabled], a @@ -2038,9 +1946,8 @@ ReturnToMapWithSpeechTextbox:: ; 0x2b74 ld [hMapAnims], a pop af ret -; 0x2bae -ReloadTilesetAndPalettes:: ; 2bae +ReloadTilesetAndPalettes:: call DisableLCD call ClearSprites farcall RefreshSprites @@ -2063,14 +1970,13 @@ ReloadTilesetAndPalettes:: ; 2bae call EnableLCD ret -; 2be5 -GetMapPointer:: ; 2be5 +GetMapPointer:: ld a, [wMapGroup] ld b, a ld a, [wMapNumber] ld c, a -GetAnyMapPointer:: ; 0x2bed +GetAnyMapPointer:: ; Prior to calling this function, you must have switched banks so that ; MapGroupPointers is visible. @@ -2100,9 +2006,8 @@ GetAnyMapPointer:: ; 0x2bed ld a, 9 call AddNTimes ret -; 0x2c04 -GetMapField:: ; 0x2c04 +GetMapField:: ; Extract data from the current map's group entry. ; inputs: @@ -2116,7 +2021,7 @@ GetMapField:: ; 0x2c04 ld b, a ld a, [wMapNumber] ld c, a -GetAnyMapField:: ; 0x2c0c +GetAnyMapField:: ; bankswitch ld a, [hROMBank] push af @@ -2133,25 +2038,23 @@ GetAnyMapField:: ; 0x2c0c pop af rst Bankswitch ret -; 0x2c1c -SwitchToMapAttributesBank:: ; 2c1c +SwitchToMapAttributesBank:: ld a, [wMapGroup] ld b, a ld a, [wMapNumber] ld c, a -SwitchToAnyMapAttributesBank:: ; 2c24 +SwitchToAnyMapAttributesBank:: call GetAnyMapAttributesBank rst Bankswitch ret -; 2c29 -GetMapAttributesBank:: ; 2c29 +GetMapAttributesBank:: ld a, [wMapGroup] ld b, a ld a, [wMapNumber] ld c, a -GetAnyMapAttributesBank:: ; 2c31 +GetAnyMapAttributesBank:: push hl push de ld de, MAP_MAPATTRIBUTES_BANK @@ -2160,9 +2063,8 @@ GetAnyMapAttributesBank:: ; 2c31 pop de pop hl ret -; 2c3d -CopyMapPartial:: ; 2c3d +CopyMapPartial:: ; Copy map data bank, tileset, environment, and map data address ; from the current map's entry within its group. ld a, [hROMBank] @@ -2178,20 +2080,17 @@ CopyMapPartial:: ; 2c3d pop af rst Bankswitch ret -; 2c52 -SwitchToMapScriptsBank:: ; 2c52 +SwitchToMapScriptsBank:: ld a, [wMapScriptsBank] rst Bankswitch ret -; 2c57 -GetMapScriptsBank:: ; 2c57 +GetMapScriptsBank:: ld a, [wMapScriptsBank] ret -; 2c5b -GetAnyMapBlocksBank:: ; 2c5b +GetAnyMapBlocksBank:: ; Return the blockdata bank for group b map c. push hl push de @@ -2219,9 +2118,8 @@ GetAnyMapBlocksBank:: ; 2c5b pop de pop hl ret -; 2c7d -GetMapAttributesPointer:: ; 0x2c7d +GetMapAttributesPointer:: ; returns the current map's data pointer in hl. push bc push de @@ -2232,9 +2130,8 @@ GetMapAttributesPointer:: ; 0x2c7d pop de pop bc ret -; 2c8a -GetMapEnvironment:: ; 2c8a +GetMapEnvironment:: push hl push de push bc @@ -2245,12 +2142,10 @@ GetMapEnvironment:: ; 2c8a pop de pop hl ret -; 2c98 ret ; unused -; 2c99 -GetAnyMapEnvironment:: ; 2c99 +GetAnyMapEnvironment:: push hl push de push bc @@ -2261,16 +2156,14 @@ GetAnyMapEnvironment:: ; 2c99 pop de pop hl ret -; 2ca7 -GetAnyMapTileset:: ; 2ca7 +GetAnyMapTileset:: ld de, MAP_TILESET call GetAnyMapField ld a, c ret -; 2caf -GetWorldMapLocation:: ; 0x2caf +GetWorldMapLocation:: ; given a map group/id in bc, return its location on the Pokégear map. push hl push de @@ -2284,9 +2177,8 @@ GetWorldMapLocation:: ; 0x2caf pop de pop hl ret -; 0x2cbd -GetMapMusic:: ; 2cbd +GetMapMusic:: push hl push bc ld de, MAP_MUSIC @@ -2329,22 +2221,19 @@ GetMapMusic:: ; 2cbd .clearedmahogany ld de, MUSIC_CHERRYGROVE_CITY jr .done -; 2cff -GetMapTimeOfDay:: ; 2cff +GetMapTimeOfDay:: call GetPhoneServiceTimeOfDayByte and $f ret -; 2d05 -GetMapPhoneService:: ; 2d05 +GetMapPhoneService:: call GetPhoneServiceTimeOfDayByte and $f0 swap a ret -; 2d0d -GetPhoneServiceTimeOfDayByte:: ; 2d0d +GetPhoneServiceTimeOfDayByte:: push hl push bc @@ -2355,9 +2244,8 @@ GetPhoneServiceTimeOfDayByte:: ; 2d0d pop bc pop hl ret -; 2d19 -GetFishingGroup:: ; 2d19 +GetFishingGroup:: push de push hl push bc @@ -2370,9 +2258,8 @@ GetFishingGroup:: ; 2d19 pop hl pop de ret -; 2d27 -LoadTileset:: ; 2d27 +LoadTileset:: push hl push bc @@ -2390,4 +2277,3 @@ LoadTileset:: ; 2d27 pop bc pop hl ret -; 2d43 diff --git a/home/map_objects.asm b/home/map_objects.asm index c99e27088..6bc30d571 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -1,6 +1,6 @@ ; Functions handling map objects. -GetSpritePalette:: ; 17ff +GetSpritePalette:: push hl push de push bc @@ -13,9 +13,8 @@ GetSpritePalette:: ; 17ff pop de pop hl ret -; 180e -GetSpriteVTile:: ; 180e +GetSpriteVTile:: push hl push bc ld hl, wUsedSprites + 2 @@ -49,9 +48,8 @@ GetSpriteVTile:: ; 180e pop bc pop hl ret -; 1836 -DoesSpriteHaveFacings:: ; 1836 +DoesSpriteHaveFacings:: push de push hl @@ -72,25 +70,22 @@ DoesSpriteHaveFacings:: ; 1836 pop hl pop de ret -; 184a -GetPlayerStandingTile:: ; 184a +GetPlayerStandingTile:: ld a, [wPlayerStandingTile] call GetTileCollision ld b, a ret -; 1852 -CheckOnWater:: ; 1852 +CheckOnWater:: ld a, [wPlayerStandingTile] call GetTileCollision sub WATERTILE ret z and a ret -; 185d -GetTileCollision:: ; 185d +GetTileCollision:: ; Get the collision type of tile a. push de @@ -115,9 +110,8 @@ GetTileCollision:: ; 185d pop hl pop de ret -; 1875 -CheckGrassTile:: ; 1875 +CheckGrassTile:: ld d, a and $f0 cp HI_NYBBLE_TALL_GRASS @@ -140,53 +134,46 @@ CheckGrassTile:: ; 1875 ret z scf ret -; 188e -CheckSuperTallGrassTile:: ; 188e +CheckSuperTallGrassTile:: cp COLL_LONG_GRASS ret z cp COLL_LONG_GRASS_1C ret -; 1894 -CheckCutTreeTile:: ; 1894 +CheckCutTreeTile:: cp COLL_CUT_TREE ret z cp COLL_CUT_TREE_1A ret -; 189a -CheckHeadbuttTreeTile:: ; 189a +CheckHeadbuttTreeTile:: cp COLL_HEADBUTT_TREE ret z cp COLL_HEADBUTT_TREE_1D ret -; 18a0 -CheckCounterTile:: ; 18a0 +CheckCounterTile:: cp COLL_COUNTER ret z cp COLL_COUNTER_98 ret -; 18a6 -CheckPitTile:: ; 18a6 +CheckPitTile:: cp COLL_PIT ret z cp COLL_PIT_68 ret -; 18ac -CheckIceTile:: ; 18ac +CheckIceTile:: cp COLL_ICE ret z cp COLL_ICE_2B ret z scf ret -; 18b4 -CheckWhirlpoolTile:: ; 18b4 +CheckWhirlpoolTile:: nop cp COLL_WHIRLPOOL ret z @@ -194,16 +181,14 @@ CheckWhirlpoolTile:: ; 18b4 ret z scf ret -; 18bd -CheckWaterfallTile:: ; 18bd +CheckWaterfallTile:: cp COLL_WATERFALL ret z cp COLL_CURRENT_DOWN ret -; 18c3 -CheckStandingOnEntrance:: ; 18c3 +CheckStandingOnEntrance:: ld a, [wPlayerStandingTile] cp COLL_DOOR ret z @@ -213,9 +198,8 @@ CheckStandingOnEntrance:: ; 18c3 ret z cp COLL_CAVE ret -; 18d2 -GetMapObject:: ; 18d2 +GetMapObject:: ; Return the location of map object a in bc. ld hl, wMapObjects ld bc, OBJECT_LENGTH @@ -223,9 +207,8 @@ GetMapObject:: ; 18d2 ld b, h ld c, l ret -; 18de -CheckObjectVisibility:: ; 18de +CheckObjectVisibility:: ; Sets carry if the object is not visible on the screen. ld [hMapObjectIndexBuffer], a call GetMapObject @@ -242,9 +225,8 @@ CheckObjectVisibility:: ; 18de .not_visible scf ret -; 18f5 -CheckObjectTime:: ; 18f5 +CheckObjectTime:: ld hl, MAPOBJECT_HOUR add hl, bc ld a, [hl] @@ -317,25 +299,22 @@ CheckObjectTime:: ; 18f5 .no scf ret -; 194d ; unused ld [hMapObjectIndexBuffer], a call GetMapObject call CopyObjectStruct ret -; 1956 -_CopyObjectStruct:: ; 1956 +_CopyObjectStruct:: ld [hMapObjectIndexBuffer], a call UnmaskObject ld a, [hMapObjectIndexBuffer] call GetMapObject farcall CopyObjectStruct ret -; 1967 -ApplyDeletionToMapObject:: ; 1967 +ApplyDeletionToMapObject:: ld [hMapObjectIndexBuffer], a call GetMapObject ld hl, MAPOBJECT_OBJECT_STRUCT_ID @@ -364,15 +343,13 @@ ApplyDeletionToMapObject:: ; 1967 ld [wObjectFollow_Leader], a ld [wObjectFollow_Follower], a ret -; 199f -DeleteObjectStruct:: ; 199f +DeleteObjectStruct:: call ApplyDeletionToMapObject call MaskObject ret -; 19a6 -CopyPlayerObjectTemplate:: ; 19a6 +CopyPlayerObjectTemplate:: push hl call GetMapObject ld d, b @@ -384,7 +361,6 @@ CopyPlayerObjectTemplate:: ; 19a6 ld bc, OBJECT_LENGTH - 1 call CopyBytes ret -; 19b8 Unreferenced_Function19b8: call GetMapObject @@ -414,9 +390,8 @@ Unreferenced_Function19b8: call GetObjectStruct farcall DeleteMapObject ret -; 19e9 -LoadMovementDataPointer:: ; 19e9 +LoadMovementDataPointer:: ; Load the movement data pointer for object a. ld [wMovementObject], a ld a, [hROMBank] @@ -441,9 +416,8 @@ LoadMovementDataPointer:: ; 19e9 set 7, [hl] and a ret -; 1a13 -FindFirstEmptyObjectStruct:: ; 1a13 +FindFirstEmptyObjectStruct:: ; Returns the index of the first empty object struct in A and its address in HL, then sets carry. ; If all object structs are occupied, A = 0 and Z is set. ; Preserves BC and DE. @@ -471,9 +445,8 @@ FindFirstEmptyObjectStruct:: ; 1a13 pop de pop bc ret -; 1a2f -GetSpriteMovementFunction:: ; 1a2f +GetSpriteMovementFunction:: ld hl, OBJECT_MOVEMENTTYPE add hl, bc ld a, [hl] @@ -482,36 +455,34 @@ GetSpriteMovementFunction:: ; 1a2f xor a .ok - ld hl, SpriteMovementData + ld hl, SpriteMovementData + SPRITEMOVEATTR_MOVEMENT ld e, a ld d, 0 -rept SPRITEMOVEDATA_FIELDS +rept NUM_SPRITEMOVEDATA_FIELDS add hl, de endr ld a, [hl] ret -; 1a47 -GetInitialFacing:: ; 1a47 +GetInitialFacing:: push bc push de ld e, a ld d, 0 - ld hl, SpriteMovementData + 1 ; init facing -rept SPRITEMOVEDATA_FIELDS + ld hl, SpriteMovementData + SPRITEMOVEATTR_FACING +rept NUM_SPRITEMOVEDATA_FIELDS add hl, de endr ld a, BANK(SpriteMovementData) call GetFarByte add a add a - and $c + maskbits NUM_DIRECTIONS, 2 pop de pop bc ret -; 1a61 -CopySpriteMovementData:: ; 1a61 +CopySpriteMovementData:: ld l, a ld a, [hROMBank] push af @@ -527,9 +498,8 @@ CopySpriteMovementData:: ; 1a61 rst Bankswitch ret -; 1a71 -.CopyData: ; 1a71 +.CopyData: ld hl, OBJECT_MOVEMENTTYPE add hl, de ld [hl], a @@ -537,8 +507,8 @@ CopySpriteMovementData:: ; 1a61 push de ld e, a ld d, 0 - ld hl, SpriteMovementData + 1 ; init facing -rept SPRITEMOVEDATA_FIELDS + ld hl, SpriteMovementData + SPRITEMOVEATTR_FACING +rept NUM_SPRITEMOVEDATA_FIELDS add hl, de endr ld b, h @@ -549,7 +519,7 @@ endr inc bc rlca rlca - and %00001100 + maskbits NUM_DIRECTIONS, 2 ld hl, OBJECT_FACING add hl, de ld [hl], a @@ -578,9 +548,8 @@ endr add hl, de ld [hl], a ret -; 1aae -_GetMovementByte:: ; 1aae +_GetMovementByte:: ; Switch to the movement data bank ld a, [hROMBank] push af @@ -604,21 +573,18 @@ _GetMovementByte:: ; 1aae ld a, h ret -; 1ac6 -SetVramState_Bit0:: ; 1ac6 +SetVramState_Bit0:: ld hl, wVramState set 0, [hl] ret -; 1acc -ResetVramState_Bit0:: ; 1acc +ResetVramState_Bit0:: ld hl, wVramState res 0, [hl] ret -; 1ad2 -UpdateSprites:: ; 1ad2 +UpdateSprites:: ld a, [wVramState] bit 0, a ret z @@ -626,26 +592,23 @@ UpdateSprites:: ; 1ad2 farcall Function55e0 farcall _UpdateSprites ret -; 1ae5 -GetObjectStruct:: ; 1ae5 +GetObjectStruct:: ld bc, OBJECT_STRUCT_LENGTH ld hl, wObjectStructs call AddNTimes ld b, h ld c, l ret -; 1af1 -DoesObjectHaveASprite:: ; 1af1 +DoesObjectHaveASprite:: ld hl, OBJECT_SPRITE add hl, bc ld a, [hl] and a ret -; 1af8 -SetSpriteDirection:: ; 1af8 +SetSpriteDirection:: ; preserves other flags push af ld hl, OBJECT_FACING @@ -654,16 +617,14 @@ SetSpriteDirection:: ; 1af8 and %11110011 ld e, a pop af - and %00001100 + maskbits NUM_DIRECTIONS, 2 or e ld [hl], a ret -; 1b07 -GetSpriteDirection:: ; 1b07 +GetSpriteDirection:: ld hl, OBJECT_FACING add hl, bc ld a, [hl] - and %00001100 + maskbits NUM_DIRECTIONS, 2 ret -; 1b0f diff --git a/home/math.asm b/home/math.asm index 6a779e378..f385ccbf8 100644 --- a/home/math.asm +++ b/home/math.asm @@ -1,4 +1,4 @@ -AddNTimes:: ; 0x30fe +AddNTimes:: ; Add bc * a to hl. and a ret z @@ -7,9 +7,8 @@ AddNTimes:: ; 0x30fe dec a jr nz, .loop ret -; 0x3105 -SimpleMultiply:: ; 3105 +SimpleMultiply:: ; Return a * c. and a ret z @@ -23,10 +22,8 @@ SimpleMultiply:: ; 3105 jr nz, .loop pop bc ret -; 3110 - -SimpleDivide:: ; 3110 +SimpleDivide:: ; Divide a by c. Return quotient b and remainder a. ld b, 0 .loop @@ -36,10 +33,8 @@ SimpleDivide:: ; 3110 dec b add c ret -; 3119 - -Multiply:: ; 3119 +Multiply:: ; Multiply hMultiplicand (3 bytes) by hMultiplier. Result in hProduct. ; All values are big endian. push hl @@ -50,10 +45,8 @@ Multiply:: ; 3119 pop bc pop hl ret -; 3124 - -Divide:: ; 3124 +Divide:: ; Divide hDividend length b (max 4 bytes) by hDivisor. Result in hQuotient. ; All values are big endian. push hl @@ -64,10 +57,8 @@ Divide:: ; 3124 pop de pop hl ret -; 3136 - -SubtractSigned:: ; 3136 +SubtractSigned:: ; Return a - b, sign in carry. sub b ret nc @@ -75,4 +66,3 @@ SubtractSigned:: ; 3136 add 1 scf ret -; 313d diff --git a/home/menu.asm b/home/menu.asm index 05ec1212a..d10b6e936 100644 --- a/home/menu.asm +++ b/home/menu.asm @@ -1,6 +1,5 @@ ; Functions used in displaying and handling menus. - LoadMenuHeader:: call CopyMenuHeader call PushWindow @@ -13,61 +12,50 @@ CopyMenuHeader:: ld a, [hROMBank] ld [wMenuDataBank], a ret -; 0x1d4b -StoreTo_wMenuCursorBuffer:: ; 1d4b +StoreTo_wMenuCursorBuffer:: ld [wMenuCursorBuffer], a ret -; 1d4f - -MenuTextBox:: ; 1d4f +MenuTextBox:: push hl call LoadMenuTextBox pop hl jp PrintText -; 1d57 ; unused ret -; 1d58 -LoadMenuTextBox:: ; 1d58 +LoadMenuTextBox:: ld hl, .MenuHeader call LoadMenuHeader ret -; 1d5f -.MenuHeader: ; 1d5f +.MenuHeader: db MENU_BACKUP_TILES ; flags menu_coords 0, 12, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw vTiles0 db 0 ; default option -; 1d67 -MenuTextBoxBackup:: ; 1d67 +MenuTextBoxBackup:: call MenuTextBox call CloseWindow ret -; 1d6e -LoadStandardMenuHeader:: ; 1d6e +LoadStandardMenuHeader:: ld hl, .MenuHeader call LoadMenuHeader ret -; 1d75 -.MenuHeader: ; 1d75 +.MenuHeader: db MENU_BACKUP_TILES ; flags menu_coords 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw 0 db 1 ; default option -; 1d7d -Call_ExitMenu:: ; 1d7d +Call_ExitMenu:: call ExitMenu ret -; 1d81 VerticalMenu:: xor a @@ -92,15 +80,13 @@ VerticalMenu:: .okay and a ret -; 0x1dab -GetMenu2:: ; 1dab +GetMenu2:: call LoadMenuHeader call VerticalMenu call CloseWindow ld a, [wMenuCursorY] ret -; 1db8 CopyNameFromMenu:: push hl @@ -120,20 +106,18 @@ CopyNameFromMenu:: pop bc pop hl ret -; 0x1dcf - -YesNoBox:: ; 1dcf +YesNoBox:: lb bc, SCREEN_WIDTH - 6, 7 -PlaceYesNoBox:: ; 1dd2 +PlaceYesNoBox:: jr _YesNoBox -PlaceGenericTwoOptionBox:: ; 1dd4 +PlaceGenericTwoOptionBox:: call LoadMenuHeader jr InterpretTwoOptionMenu -_YesNoBox:: ; 1dd9 +_YesNoBox:: ; Return nc (yes) or c (no). push bc ld hl, YesNoMenuHeader @@ -158,7 +142,7 @@ _YesNoBox:: ; 1dd9 ld [wMenuBorderBottomCoord], a call PushWindow -InterpretTwoOptionMenu:: ; 1dfe +InterpretTwoOptionMenu:: call VerticalMenu push af ld c, $f @@ -177,29 +161,25 @@ InterpretTwoOptionMenu:: ; 1dfe ld [wMenuCursorY], a scf ret -; 1e1d -YesNoMenuHeader:: ; 1e1d +YesNoMenuHeader:: db MENU_BACKUP_TILES ; flags menu_coords 10, 5, 15, 9 dw .MenuData db 1 ; default option -; 1e25 -.MenuData: ; 1e25 +.MenuData: db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 2 db "YES@" db "NO@" -; 1e2e -OffsetMenuHeader:: ; 1e2e +OffsetMenuHeader:: call _OffsetMenuHeader call PushWindow ret -; 1e35 -_OffsetMenuHeader:: ; 1e35 +_OffsetMenuHeader:: push de call CopyMenuHeader pop de @@ -222,9 +202,8 @@ _OffsetMenuHeader:: ; 1e35 add l ld [wMenuBorderBottomCoord], a ret -; 1e5d -DoNthMenu:: ; 1e5d +DoNthMenu:: call DrawVariableLengthMenuBox call MenuWriteText call InitMenuCursorAndButtonPermissions @@ -232,9 +211,8 @@ DoNthMenu:: ; 1e5d call GetMenuJoypad call MenuClickSound ret -; 1e70 -SetUpMenu:: ; 1e70 +SetUpMenu:: call DrawVariableLengthMenuBox ; ??? call MenuWriteText call InitMenuCursorAndButtonPermissions ; set up selection pointer @@ -263,9 +241,8 @@ MenuWriteText:: pop af ld [hOAMUpdate], a ret -; 0x1ea6 -AutomaticGetMenuBottomCoord:: ; 1ea6 +AutomaticGetMenuBottomCoord:: ld a, [wMenuBorderLeftCoord] ld c, a ld a, [wMenuBorderRightCoord] @@ -279,9 +256,8 @@ AutomaticGetMenuBottomCoord:: ; 1ea6 add b ld [wMenuBorderBottomCoord], a ret -; 1ebd -GetMenuIndexSet:: ; 1ebd +GetMenuIndexSet:: ld hl, wMenuDataIndicesPointer ld a, [hli] ld h, [hl] @@ -304,9 +280,8 @@ GetMenuIndexSet:: ; 1ebd ld a, [hl] ld [wMenuDataItems], a ret -; 1eda -RunMenuItemPrintingFunction:: ; 1eda +RunMenuItemPrintingFunction:: call MenuBoxCoord2Tile ld bc, 2 * SCREEN_WIDTH + 2 add hl, bc @@ -327,16 +302,14 @@ RunMenuItemPrintingFunction:: ; 1eda add hl, de pop de jr .loop -; 1efb -._hl_ ; 1efb +._hl_ ld a, [hli] ld h, [hl] ld l, a jp hl -; 1eff -InitMenuCursorAndButtonPermissions:: ; 1eff +InitMenuCursorAndButtonPermissions:: call InitVerticalMenuCursor ld hl, wMenuJoypadFilter ld a, [wMenuDataFlags] @@ -353,21 +326,17 @@ InitMenuCursorAndButtonPermissions:: ; 1eff .disallow_left_right ret -; 1f1a - -GetScrollingMenuJoypad:: ; 1f1a +GetScrollingMenuJoypad:: call ScrollingMenuJoypad ld hl, wMenuJoypadFilter and [hl] jr ContinueGettingMenuJoypad -; 1f23 -GetStaticMenuJoypad:: ; 1f23 +GetStaticMenuJoypad:: xor a ld [wMenuJoypad], a call StaticMenuJoypad -; 1f2a ContinueGettingMenuJoypad: bit A_BUTTON_F, a @@ -418,9 +387,8 @@ ContinueGettingMenuJoypad: ld [wMenuSelection], a scf ret -; 1f79 -PlaceMenuStrings:: ; 1f79 +PlaceMenuStrings:: push de ld hl, wMenuDataPointerTableAddr ld a, [hli] @@ -433,9 +401,8 @@ PlaceMenuStrings:: ; 1f79 pop hl call PlaceString ret -; 1f8d -PlaceNthMenuStrings:: ; 1f8d +PlaceNthMenuStrings:: push de ld a, [wMenuSelection] call GetMenuDataPointerTableEntry @@ -447,9 +414,8 @@ PlaceNthMenuStrings:: ; 1f8d pop hl call PlaceString ret -; 1f9e -Unreferenced_Function1f9e:: ; 1f9e +Unreferenced_Function1f9e:: call GetMenuDataPointerTableEntry inc hl inc hl @@ -457,18 +423,16 @@ Unreferenced_Function1f9e:: ; 1f9e ld d, [hl] ld e, a ret -; 1fa7 -MenuJumptable:: ; 1fa7 +MenuJumptable:: ld a, [wMenuSelection] call GetMenuDataPointerTableEntry ld a, [hli] ld h, [hl] ld l, a jp hl -; 1fb1 -GetMenuDataPointerTableEntry:: ; 1fb1 +GetMenuDataPointerTableEntry:: ld e, a ld d, $0 ld hl, wMenuDataPointerTableAddr @@ -480,9 +444,8 @@ GetMenuDataPointerTableEntry:: ; 1fb1 add hl, de add hl, de ret -; 1fbf -ClearWindowData:: ; 1fbf +ClearWindowData:: ld hl, wWindowStackPointer call .bytefill ld hl, wMenuHeader @@ -509,16 +472,14 @@ ClearWindowData:: ; 1fbf pop af ld [rSVBK], a ret -; 1ff0 -.bytefill ; 1ff0 +.bytefill ld bc, $10 xor a call ByteFill ret -; 1ff8 -MenuClickSound:: ; 1ff8 +MenuClickSound:: push af and A_BUTTON | B_BUTTON jr z, .nosound @@ -529,25 +490,21 @@ MenuClickSound:: ; 1ff8 .nosound pop af ret -; 2009 - -PlayClickSFX:: ; 2009 +PlayClickSFX:: push de ld de, SFX_READ_TEXT_2 call PlaySFX pop de ret -; 0x2012 -MenuTextBoxWaitButton:: ; 2012 +MenuTextBoxWaitButton:: call MenuTextBox call WaitButton call ExitMenu ret -; 201c -Place2DMenuItemName:: ; 201c +Place2DMenuItemName:: ld [hBuffer], a ld a, [hROMBank] push af @@ -559,28 +516,24 @@ Place2DMenuItemName:: ; 201c rst Bankswitch ret -; 202a -_2DMenu:: ; 202a +_2DMenu:: ld a, [hROMBank] ld [wMenuData_2DMenuItemStringsBank], a farcall _2DMenu_ ld a, [wMenuCursorBuffer] ret -; 2039 -InterpretBattleMenu:: ; 2039 +InterpretBattleMenu:: ld a, [hROMBank] ld [wMenuData_2DMenuItemStringsBank], a farcall _InterpretBattleMenu ld a, [wMenuCursorBuffer] ret -; 2048 -InterpretMobileMenu:: ; 2048 +InterpretMobileMenu:: ld a, [hROMBank] ld [wMenuData_2DMenuItemStringsBank], a farcall _InterpretMobileMenu ld a, [wMenuCursorBuffer] ret -; 2057 diff --git a/home/menu_window.asm b/home/menu_window.asm index aceb00343..7c511097d 100644 --- a/home/menu_window.asm +++ b/home/menu_window.asm @@ -1,19 +1,18 @@ -PushWindow:: ; 1c00 +PushWindow:: callfar _PushWindow ret -; 1c07 -ExitMenu:: ; 0x1c07 +ExitMenu:: push af callfar _ExitMenu pop af ret -InitVerticalMenuCursor:: ; 0x1c10 +InitVerticalMenuCursor:: callfar _InitVerticalMenuCursor ret -CloseWindow:: ; 0x1c17 +CloseWindow:: push af call ExitMenu call ApplyTilemap @@ -21,15 +20,14 @@ CloseWindow:: ; 0x1c17 pop af ret -RestoreTileBackup:: ; 0x1c23 +RestoreTileBackup:: call MenuBoxCoord2Tile call .copy call MenuBoxCoord2Attr call .copy ret -; 0x1c30 -.copy ; 0x1c30 +.copy call GetMenuBoxDims inc b inc c @@ -43,18 +41,18 @@ RestoreTileBackup:: ; 0x1c23 ld [hli], a dec de dec c - jr nz, .col ; 0x1c3b $fa + jr nz, .col pop hl ld bc, SCREEN_WIDTH add hl, bc pop bc dec b - jr nz, .row ; 0x1c44 $ef + jr nz, .row ret -PopWindow:: ; 0x1c47 +PopWindow:: ld b, $10 ld de, wMenuFlags .loop @@ -62,10 +60,10 @@ PopWindow:: ; 0x1c47 ld [de], a inc de dec b - jr nz, .loop ; 0x1c50 $fa + jr nz, .loop ret -GetMenuBoxDims:: ; 0x1c53 +GetMenuBoxDims:: ld a, [wMenuBorderTopCoord] ; top ld b, a ld a, [wMenuBorderBottomCoord] ; bottom @@ -77,9 +75,8 @@ GetMenuBoxDims:: ; 0x1c53 sub c ld c, a ret -; 0x1c66 -CopyMenuData:: ; 1c66 +CopyMenuData:: push hl push de push bc @@ -96,9 +93,8 @@ CopyMenuData:: ; 1c66 pop de pop hl ret -; 1c7e -GetWindowStackTop:: ; 1c7e +GetWindowStackTop:: ld hl, wWindowStackPointer ld a, [hli] ld h, [hl] @@ -108,9 +104,8 @@ GetWindowStackTop:: ; 1c7e ld h, [hl] ld l, a ret -; 1c89 -PlaceVerticalMenuItems:: ; 1c89 +PlaceVerticalMenuItems:: call CopyMenuData ld hl, wMenuDataPointer ld e, [hl] @@ -143,17 +138,15 @@ PlaceVerticalMenuItems:: ; 1c89 ld b, $0 add hl, bc jp PlaceString -; 1cbb -MenuBox:: ; 1cbb +MenuBox:: call MenuBoxCoord2Tile call GetMenuBoxDims dec b dec c jp TextBox -; 1cc6 -GetMenuTextStartCoord:: ; 1cc6 +GetMenuTextStartCoord:: ld a, [wMenuBorderTopCoord] ld b, a inc b @@ -175,9 +168,8 @@ GetMenuTextStartCoord:: ; 1cc6 .bit_7_clear ret -; 1ce1 -ClearMenuBoxInterior:: ; 1ce1 +ClearMenuBoxInterior:: call MenuBoxCoord2Tile ld bc, SCREEN_WIDTH + 1 add hl, bc @@ -186,27 +178,22 @@ ClearMenuBoxInterior:: ; 1ce1 dec c call ClearBox ret -; 1cf1 -ClearWholeMenuBox:: ; 1cf1 +ClearWholeMenuBox:: call MenuBoxCoord2Tile call GetMenuBoxDims inc c inc b call ClearBox ret -; 1cfd - -MenuBoxCoord2Tile:: ; 1cfd +MenuBoxCoord2Tile:: ld a, [wMenuBorderLeftCoord] ld c, a ld a, [wMenuBorderTopCoord] ld b, a -; 1d05 - -Coord2Tile:: ; 1d05 +Coord2Tile:: ; Return the address of wTileMap(c, b) in hl. xor a ld h, a @@ -226,15 +213,14 @@ Coord2Tile:: ; 1d05 bccoord 0, 0 add hl, bc ret -; 1d19 -MenuBoxCoord2Attr:: ; 1d19 +MenuBoxCoord2Attr:: ld a, [wMenuBorderLeftCoord] ld c, a ld a, [wMenuBorderTopCoord] ld b, a -Coord2Attr:: ; 1d21 +Coord2Attr:: ; Return the address of wAttrMap(c, b) in hl. xor a ld h, a @@ -254,4 +240,3 @@ Coord2Attr:: ; 1d21 bccoord 0, 0, wAttrMap add hl, bc ret -; 1d35 diff --git a/home/mobile.asm b/home/mobile.asm index 4be526bbc..21af7a73b 100644 --- a/home/mobile.asm +++ b/home/mobile.asm @@ -1,4 +1,4 @@ -Function3e32:: ; 3e32 +Function3e32:: ; Mobile cp $2 ld [$c988], a @@ -27,9 +27,8 @@ Function3e32:: ; 3e32 rst Bankswitch jp Function110030 -; 3e60 -Function3e60:: ; 3e60 +Function3e60:: ; Return from Function110030 ld [$c986], a ld a, l @@ -50,9 +49,8 @@ Function3e60:: ; 3e60 ld l, a ld a, [$c986] ret -; 3e80 -MobileReceive:: ; 3e80 +MobileReceive:: ld a, [hROMBank] push af ld a, BANK(_MobileReceive) @@ -66,10 +64,8 @@ MobileReceive:: ; 3e80 rst Bankswitch ret -; 3e93 - -Timer:: ; 3e93 +Timer:: push af push bc push de @@ -125,9 +121,8 @@ Timer:: ; 3e93 pop bc pop af reti -; 3ed7 -Unreferenced_Function3ed7:: ; 3ed7 +Unreferenced_Function3ed7:: ld [$dc02], a ld a, [hROMBank] push af @@ -141,9 +136,8 @@ Unreferenced_Function3ed7:: ; 3ed7 ld a, [$dc02] ret -; 3eea -Function3eea:: ; 3eea +Function3eea:: push hl push bc ld de, wAttrMap - wTileMap @@ -157,9 +151,8 @@ Function3eea:: ; 3eea pop hl call MobileHome_PlaceBox ret -; 3efd -Unreferenced_Function3efd:: ; 3efd +Unreferenced_Function3efd:: push hl hlcoord 0, 12 ld b, 4 @@ -168,7 +161,6 @@ Unreferenced_Function3efd:: ; 3efd pop hl call PrintTextBoxText ret -; 3f0d .fill_attr push hl @@ -184,9 +176,8 @@ Unreferenced_Function3efd:: ; 3efd pop hl call TextBoxBorder ret -; 3f20 -Function3f20:: ; 3f20 +Function3f20:: hlcoord 0, 0, wAttrMap ld b, 6 ld c, 20 @@ -196,9 +187,8 @@ Function3f20:: ; 3f20 ld c, 18 call MobileHome_PlaceBox ret -; 3f35 -Function3f35:: ; 3f35 +Function3f35:: ld a, 6 ld de, SCREEN_WIDTH .row @@ -214,9 +204,8 @@ Function3f35:: ; 3f35 dec b jr nz, .row ret -; 3f47 -MobileHome_PlaceBox: ; 3f47 +MobileHome_PlaceBox: push bc call .FillTop pop bc @@ -228,7 +217,6 @@ MobileHome_PlaceBox: ; 3f47 jr nz, .RowLoop call .FillBottom ret -; 3f58 .FillTop: ld a, $63 @@ -260,18 +248,16 @@ MobileHome_PlaceBox: ; 3f47 ld de, SCREEN_WIDTH add hl, de ret -; 3f7c -Function3f7c:: ; 3f7c +Function3f7c:: call MenuBoxCoord2Tile call GetMenuBoxDims dec b dec c call Function3eea ret -; 3f88 -Function3f88:: ; 3f88 +Function3f88:: ld hl, wDecompressScratch ld b, 0 .row @@ -290,9 +276,8 @@ Function3f88:: ; 3f88 dec c jr nz, .row ret -; 3f9f -Function3f9f:: ; 3f9f +Function3f9f:: ld hl, wDecompressScratch .row push bc @@ -311,4 +296,3 @@ Function3f9f:: ; 3f9f dec c jr nz, .row ret -; 3fb5 diff --git a/home/mon_data.asm b/home/mon_data.asm index 8fb5bf0c9..bcfe49ddb 100644 --- a/home/mon_data.asm +++ b/home/mon_data.asm @@ -1,13 +1,12 @@ -Unreferenced_GetNthMove:: ; 384d +Unreferenced_GetNthMove:: ld hl, wListMoves_MoveIndicesBuffer ld c, a ld b, 0 add hl, bc ld a, [hl] ret -; 3856 -GetBaseData:: ; 3856 +GetBaseData:: push bc push de push hl @@ -62,13 +61,12 @@ GetBaseData:: ; 3856 pop de pop bc ret -; 389c -GetCurNick:: ; 389c +GetCurNick:: ld a, [wCurPartyMon] ld hl, wPartyMonNicknames -GetNick:: ; 38a2 +GetNick:: ; Get nickname a from list hl. push hl @@ -87,4 +85,3 @@ GetNick:: ; 38a2 pop bc pop hl ret -; 38bb diff --git a/home/mon_data_2.asm b/home/mon_data_2.asm index a5e46d836..99169eaa8 100644 --- a/home/mon_data_2.asm +++ b/home/mon_data_2.asm @@ -1,4 +1,4 @@ -GetPartyParamLocation:: ; 3917 +GetPartyParamLocation:: ; Get the location of parameter a from wCurPartyMon in hl push bc ld hl, wPartyMons @@ -9,15 +9,13 @@ GetPartyParamLocation:: ; 3917 call GetPartyLocation pop bc ret -; 3927 -GetPartyLocation:: ; 3927 +GetPartyLocation:: ; Add the length of a PartyMon struct to hl a times. ld bc, PARTYMON_STRUCT_LENGTH jp AddNTimes -; 392d -Unreferenced_GetDexNumber:: ; 392d +Unreferenced_GetDexNumber:: ; Probably used in gen 1 to convert index number to dex number ; Not required in gen 2 because index number == dex number push hl @@ -34,4 +32,3 @@ Unreferenced_GetDexNumber:: ; 392d ld c, h pop hl ret -; 3945 diff --git a/home/mon_stats.asm b/home/mon_stats.asm index 3731a246f..318d32c9c 100644 --- a/home/mon_stats.asm +++ b/home/mon_stats.asm @@ -1,4 +1,4 @@ -IsAPokemon:: ; 3741 +IsAPokemon:: ; Return carry if species a is not a Pokemon. and a jr z, .NotAPokemon @@ -14,9 +14,8 @@ IsAPokemon:: ; 3741 .Pokemon: and a ret -; 3750 -DrawBattleHPBar:: ; 3750 +DrawBattleHPBar:: ; Draw an HP bar d tiles long at hl ; Fill it up to e pixels @@ -75,13 +74,12 @@ DrawBattleHPBar:: ; 3750 pop de pop hl ret -; 3786 -PrepMonFrontpic:: ; 3786 +PrepMonFrontpic:: ld a, $1 ld [wBoxAlignment], a -_PrepMonFrontpic:: ; 378b +_PrepMonFrontpic:: ld a, [wCurPartySpecies] call IsAPokemon jr c, .not_pokemon @@ -104,4 +102,3 @@ _PrepMonFrontpic:: ; 378b inc a ld [wCurPartySpecies], a ret -; 37b6 diff --git a/home/movement.asm b/home/movement.asm index c2c45d12b..2c19b6355 100644 --- a/home/movement.asm +++ b/home/movement.asm @@ -1,4 +1,4 @@ -InitMovementBuffer:: ; 1b1e +InitMovementBuffer:: ld [wMovementBufferObject], a xor a ld [wMovementBufferCount], a @@ -9,18 +9,16 @@ InitMovementBuffer:: ; 1b1e ld a, HIGH(wMovementBuffer) ld [wUnusedMovementBufferPointer + 1], a ret -; 1b35 -DecrementMovementBufferCount:: ; 1b35 +DecrementMovementBufferCount:: ld a, [wMovementBufferCount] and a ret z dec a ld [wMovementBufferCount], a ret -; 1b3f -AppendToMovementBuffer:: ; 1b3f +AppendToMovementBuffer:: push hl push de ld hl, wMovementBufferCount @@ -33,9 +31,8 @@ AppendToMovementBuffer:: ; 1b3f pop de pop hl ret -; 1b50 -AppendToMovementBufferNTimes:: ; 1b50 +AppendToMovementBufferNTimes:: push af ld a, c and a @@ -50,9 +47,8 @@ AppendToMovementBufferNTimes:: ; 1b50 dec c jr nz, .loop ret -; 1b5f -ComputePathToWalkToPlayer:: ; 1b5f +ComputePathToWalkToPlayer:: push af ; compare x coords, load left/right into h, and x distance into d ld a, b @@ -100,9 +96,8 @@ ComputePathToWalkToPlayer:: ; 1b5f ld c, e call AppendToMovementBufferNTimes ret -; 1b92 -.GetMovementData: ; 1b92 +.GetMovementData: push de push hl ld l, b @@ -118,7 +113,6 @@ ComputePathToWalkToPlayer:: ; 1b5f pop hl pop de ret -; 1ba5 .MovementData: slow_step DOWN @@ -133,9 +127,8 @@ ComputePathToWalkToPlayer:: ; 1b5f big_step UP big_step LEFT big_step RIGHT -; 1bb1 -SetMenuAttributes:: ; 1bb1 +SetMenuAttributes:: push hl push bc ld hl, w2DMenuCursorInitY @@ -156,21 +149,18 @@ SetMenuAttributes:: ; 1bb1 pop bc pop hl ret -; 1bc9 -StaticMenuJoypad:: ; 1bc9 +StaticMenuJoypad:: callfar _StaticMenuJoypad call GetMenuJoypad ret -; 1bd3 -ScrollingMenuJoypad:: ; 1bd3 +ScrollingMenuJoypad:: callfar _ScrollingMenuJoypad call GetMenuJoypad ret -; 1bdd -GetMenuJoypad:: ; 1bdd +GetMenuJoypad:: push bc push af ld a, [hJoyLast] @@ -184,23 +174,19 @@ GetMenuJoypad:: ; 1bdd ld a, b pop bc ret -; 1bee -PlaceHollowCursor:: ; 1bee +PlaceHollowCursor:: ld hl, wCursorCurrentTile ld a, [hli] ld h, [hl] ld l, a ld [hl], "▷" ret -; 1bf7 -HideCursor:: ; 1bf7 +HideCursor:: ld hl, wCursorCurrentTile ld a, [hli] ld h, [hl] ld l, a ld [hl], " " ret -; 1c00 - diff --git a/home/names.asm b/home/names.asm index 90a15c093..e9c36fc1d 100644 --- a/home/names.asm +++ b/home/names.asm @@ -1,4 +1,4 @@ -NamesPointers:: ; 33ab +NamesPointers:: ; entries correspond to GetName constants (see constants/text_constants.asm) dba PokemonNames ; MON_NAME (not used; jumps to GetPokemonName) dba MoveNames ; MOVE_NAME @@ -8,9 +8,8 @@ NamesPointers:: ; 33ab dbw 0, wOTPartyMonOT ; ENEMY_OT_NAME dba TrainerClassNames ; TRAINER_NAME dbw 4, MoveDescriptions ; MOVE_DESC_NAME_BROKEN (wrong bank) -; 33c3 -GetName:: ; 33c3 +GetName:: ; Return name wCurSpecies from name list wNamedObjectTypeBuffer in wStringBuffer1. ld a, [hROMBank] @@ -67,9 +66,8 @@ GetName:: ; 33c3 pop af rst Bankswitch ret -; 3411 -GetNthString:: ; 3411 +GetNthString:: ; Return the address of the ; ath string starting from hl. @@ -87,9 +85,8 @@ GetNthString:: ; 3411 jr nz, .readChar pop bc ret -; 3420 -GetBasePokemonName:: ; 3420 +GetBasePokemonName:: ; Discards gender (Nidoran). push hl @@ -112,9 +109,7 @@ GetBasePokemonName:: ; 3420 pop hl ret -; 343b - -GetPokemonName:: ; 343b +GetPokemonName:: ; Get Pokemon name wd265. ld a, [hROMBank] @@ -150,9 +145,8 @@ GetPokemonName:: ; 343b pop af rst Bankswitch ret -; 3468 -GetItemName:: ; 3468 +GetItemName:: ; Get item name wd265. push hl @@ -174,9 +168,8 @@ GetItemName:: ; 3468 pop bc pop hl ret -; 3487 -GetTMHMName:: ; 3487 +GetTMHMName:: ; Get TM/HM name by item id wd265. push hl @@ -257,11 +250,10 @@ GetTMHMName:: ; 3487 db "HM" .HMTextEnd: db "@" -; 34df INCLUDE "home/hm_moves.asm" -GetMoveName:: ; 34f8 +GetMoveName:: push hl ld a, MOVE_NAME @@ -275,4 +267,3 @@ GetMoveName:: ; 34f8 pop hl ret -; 350c diff --git a/home/palettes.asm b/home/palettes.asm index e8996c160..d5b6abff5 100644 --- a/home/palettes.asm +++ b/home/palettes.asm @@ -1,7 +1,6 @@ ; Functions dealing with palettes. - -UpdatePalsIfCGB:: ; c2f +UpdatePalsIfCGB:: ; update bgp data from wBGPals2 ; update obp data from wOBPals2 ; return carry if successful @@ -11,17 +10,14 @@ UpdatePalsIfCGB:: ; c2f and a ret z - -UpdateCGBPals:: ; c33 +UpdateCGBPals:: ; return carry if successful ; any pals to update? ld a, [hCGBPalUpdate] and a ret z - -ForceUpdateCGBPals:: ; c37 - +ForceUpdateCGBPals:: ld a, [rSVBK] push af ld a, BANK(wBGPals2) @@ -68,10 +64,8 @@ endr scf ret -; c9f - -DmgToCgbBGPals:: ; c9f +DmgToCgbBGPals:: ; exists to forego reinserting cgb-converted image data ; input: a -> bgp @@ -114,10 +108,8 @@ DmgToCgbBGPals:: ; c9f .end pop af ret -; ccb - -DmgToCgbObjPals:: ; ccb +DmgToCgbObjPals:: ; exists to forego reinserting cgb-converted image data ; input: d -> obp1 @@ -160,10 +152,8 @@ DmgToCgbObjPals:: ; ccb pop de pop hl ret -; cf8 - -DmgToCgbObjPal0:: ; cf8 +DmgToCgbObjPal0:: ld [rOBP0], a push af @@ -200,9 +190,8 @@ DmgToCgbObjPal0:: ; cf8 .dmg pop af ret -; d24 -DmgToCgbObjPal1:: ; d24 +DmgToCgbObjPal1:: ld [rOBP1], a push af @@ -238,11 +227,8 @@ DmgToCgbObjPal1:: ; d24 .dmg pop af ret -; d50 - - -CopyPals:: ; d50 +CopyPals:: ; copy c palettes in order b from de to hl push bc @@ -293,10 +279,8 @@ endr dec c jr nz, CopyPals ret -; d79 - -ClearVBank1:: ; d79 +ClearVBank1:: ld a, [hCGB] and a ret z @@ -312,15 +296,11 @@ ClearVBank1:: ; d79 ld a, 0 ld [rVBK], a ret -; d90 - -ret_d90:: ; d90 +ret_d90:: ret -; d91 - -ReloadSpritesNoPalettes:: ; d91 +ReloadSpritesNoPalettes:: ld a, [hCGB] and a ret z @@ -338,15 +318,11 @@ ReloadSpritesNoPalettes:: ; d91 ld [hCGBPalUpdate], a call DelayFrame ret -; db1 - -FarCallSwapTextboxPalettes:: ; db1 +FarCallSwapTextboxPalettes:: homecall SwapTextboxPalettes ret -; dbd -FarCallScrollBGMapPalettes:: ; dbd +FarCallScrollBGMapPalettes:: homecall ScrollBGMapPalettes ret -; dc9 diff --git a/home/pokedex_flags.asm b/home/pokedex_flags.asm index e9ca2163e..809341509 100644 --- a/home/pokedex_flags.asm +++ b/home/pokedex_flags.asm @@ -1,4 +1,4 @@ -SetSeenAndCaughtMon:: ; 3380 +SetSeenAndCaughtMon:: push af ld c, a ld hl, wPokedexCaught @@ -6,33 +6,28 @@ SetSeenAndCaughtMon:: ; 3380 call PokedexFlagAction pop af ; fallthrough -; 338b -SetSeenMon:: ; 338b +SetSeenMon:: ld c, a ld hl, wPokedexSeen ld b, SET_FLAG jr PokedexFlagAction -; 3393 -CheckCaughtMon:: ; 3393 +CheckCaughtMon:: ld c, a ld hl, wPokedexCaught ld b, CHECK_FLAG jr PokedexFlagAction -; 339b -CheckSeenMon:: ; 339b +CheckSeenMon:: ld c, a ld hl, wPokedexSeen ld b, CHECK_FLAG ; fallthrough -; 33a1 -PokedexFlagAction:: ; 33a1 +PokedexFlagAction:: ld d, 0 predef SmallFarFlagAction ld a, c and a ret -; 33ab diff --git a/home/predef.asm b/home/predef.asm index f03bdaa94..e829bdc00 100644 --- a/home/predef.asm +++ b/home/predef.asm @@ -1,4 +1,4 @@ -Predef:: ; 2d83 +Predef:: ; Call predefined function a. ; Preserves bc, de, hl and f. @@ -50,4 +50,3 @@ Predef:: ; 2d83 ld a, [wPredefTemp + 1] ld l, a ret -; 2dba diff --git a/home/print_bcd.asm b/home/print_bcd.asm index aecf8eb96..4f93c866f 100644 --- a/home/print_bcd.asm +++ b/home/print_bcd.asm @@ -1,4 +1,4 @@ -PrintBCDNumber:: ; 38bb +PrintBCDNumber:: ; function to print a BCD (Binary-coded decimal) number ; de = address of BCD number ; hl = destination address @@ -48,9 +48,8 @@ PrintBCDNumber:: ; 38bb inc hl .done ret -; 0x38f2 -PrintBCDDigit:: ; 38f2 +PrintBCDDigit:: and %00001111 and a jr z, .zeroDigit @@ -78,4 +77,3 @@ PrintBCDDigit:: ; 38f2 ld a, " " ld [hli], a ; if right-aligned, "print" a space by advancing the pointer ret -; 0x3917 diff --git a/home/print_level.asm b/home/print_level.asm index 578c7cd78..2ebbbf980 100644 --- a/home/print_level.asm +++ b/home/print_level.asm @@ -1,4 +1,4 @@ -PrintLevel:: ; 382d +PrintLevel:: ; Print wTempMonLevel at hl ld a, [wTempMonLevel] @@ -14,18 +14,15 @@ PrintLevel:: ; 382d dec hl inc c jr Print8BitNumRightAlign -; 383d -PrintLevel_Force3Digits:: ; 383d +PrintLevel_Force3Digits:: ; Print :L and all 3 digits ld [hl], "<LV>" inc hl ld c, 3 -; 3842 -Print8BitNumRightAlign:: ; 3842 +Print8BitNumRightAlign:: ld [wd265], a ld de, wd265 ld b, PRINTNUM_RIGHTALIGN | 1 jp PrintNum -; 384d diff --git a/home/print_text.asm b/home/print_text.asm index 66f0b5e01..8a8a7dd9f 100644 --- a/home/print_text.asm +++ b/home/print_text.asm @@ -1,4 +1,4 @@ -PrintLetterDelay:: ; 313d +PrintLetterDelay:: ; Wait before printing the next letter. ; The text speed setting in wOptions is actually a frame count: @@ -79,9 +79,8 @@ PrintLetterDelay:: ; 313d pop de pop hl ret -; 318c -CopyDataUntil:: ; 318c +CopyDataUntil:: ; Copy [hl .. bc) to de. ; In other words, the source data is @@ -98,19 +97,16 @@ CopyDataUntil:: ; 318c cp c jr nz, CopyDataUntil ret -; 0x3198 -PrintNum:: ; 3198 +PrintNum:: homecall _PrintNum ret -; 31a4 -MobilePrintNum:: ; 31a4 +MobilePrintNum:: homecall _MobilePrintNum ret -; 31b0 -FarPrintText:: ; 31b0 +FarPrintText:: ld [hBuffer], a ld a, [hROMBank] push af @@ -122,4 +118,3 @@ FarPrintText:: ; 31b0 pop af rst Bankswitch ret -; 31be diff --git a/home/random.asm b/home/random.asm index ceefdce6f..e436e4ff6 100644 --- a/home/random.asm +++ b/home/random.asm @@ -1,4 +1,4 @@ -Random:: ; 2f8c +Random:: ; A simple hardware-based random number generator (RNG). ; Two random numbers are generated by adding and subtracting @@ -27,9 +27,8 @@ Random:: ; 2f8c pop bc ret -; 2f9f -BattleRandom:: ; 2f9f +BattleRandom:: ; _BattleRandom lives in another bank. ; It handles all RNG calls in the battle engine, allowing @@ -47,10 +46,8 @@ BattleRandom:: ; 2f9f rst Bankswitch ld a, [wPredefTemp + 1] ret -; 2fb1 - -RandomRange:: ; 2fb1 +RandomRange:: ; Return a random number between 0 and a (non-inclusive). push bc @@ -81,4 +78,3 @@ RandomRange:: ; 2fb1 pop bc ret -; 2fcb diff --git a/home/region.asm b/home/region.asm index 00fe1dd47..4cb3d4768 100644 --- a/home/region.asm +++ b/home/region.asm @@ -1,4 +1,4 @@ -IsInJohto:: ; 2f17 +IsInJohto:: ; Return 0 if the player is in Johto, and 1 in Kanto. ld a, [wMapGroup] @@ -30,4 +30,3 @@ IsInJohto:: ; 2f17 .Kanto: ld a, 1 ret -; 2f3e diff --git a/home/rtc.asm b/home/rtc.asm index 9b8bc4ac3..0e5550485 100644 --- a/home/rtc.asm +++ b/home/rtc.asm @@ -1,4 +1,4 @@ -RTC:: ; 46f +RTC:: ; update time and time-sensitive palettes ; rtc enabled? @@ -13,12 +13,10 @@ RTC:: ; 46f bit 0, a ; obj update ret z -TimeOfDayPals:: ; 47e +TimeOfDayPals:: callfar _TimeOfDayPals ret -; 485 -UpdateTimePals:: ; 485 +UpdateTimePals:: callfar _UpdateTimePals ret -; 48c diff --git a/home/scrolling_menu.asm b/home/scrolling_menu.asm index cb7d7b1c5..cf8e02fa8 100644 --- a/home/scrolling_menu.asm +++ b/home/scrolling_menu.asm @@ -1,4 +1,4 @@ -ScrollingMenu:: ; 350c +ScrollingMenu:: call CopyMenuData ld a, [hROMBank] push af @@ -15,16 +15,14 @@ ScrollingMenu:: ; 350c ld a, [wMenuJoypad] ret -; 3524 -.UpdatePalettes: ; 3524 +.UpdatePalettes: ld hl, wVramState bit 0, [hl] jp nz, UpdateTimePals jp SetPalettes -; 352f -InitScrollingMenu:: ; 352f +InitScrollingMenu:: ld a, [wMenuBorderTopCoord] dec a ld b, a @@ -41,9 +39,8 @@ InitScrollingMenu:: ; 352f call Coord2Tile pop bc jp TextBox -; 354b -JoyTextDelay_ForcehJoyDown:: ; 354b joypad +JoyTextDelay_ForcehJoyDown:: call DelayFrame ld a, [hInMenu] @@ -62,4 +59,3 @@ JoyTextDelay_ForcehJoyDown:: ; 354b joypad or c ld c, a ret -; 3567 diff --git a/home/serial.asm b/home/serial.asm index c32e559dd..663f74d3b 100644 --- a/home/serial.asm +++ b/home/serial.asm @@ -1,4 +1,4 @@ -Serial:: ; 6ef +Serial:: ; The serial interrupt. push af @@ -87,9 +87,8 @@ Serial:: ; 6ef pop bc pop af reti -; 75f -Serial_ExchangeBytes:: ; 75f +Serial_ExchangeBytes:: ld a, $1 ld [hSerialIgnoringInitialData], a .loop @@ -123,9 +122,8 @@ Serial_ExchangeBytes:: ; 75f or c jr nz, .loop ret -; 78a -Serial_ExchangeByte:: ; 78a +Serial_ExchangeByte:: .loop xor a ld [hSerialReceivedNewData], a @@ -232,27 +230,24 @@ Serial_ExchangeByte:: ; 78a dec a jr nz, .delay_cycles ret -; 82b -CheckwLinkTimeoutFramesNonzero:: ; 82b +CheckwLinkTimeoutFramesNonzero:: push hl ld hl, wLinkTimeoutFrames ld a, [hli] or [hl] pop hl ret -; 833 -SerialDisconnected:: ; 833 +SerialDisconnected:: dec a ; a is always 0 when this is called ld [wLinkTimeoutFrames], a ld [wLinkTimeoutFrames + 1], a ret -; 83b ; This is used to exchange the button press and selected menu item on the link menu. ; The data is sent thrice and read twice to increase reliability. -Serial_ExchangeLinkMenuSelection:: ; 83b +Serial_ExchangeLinkMenuSelection:: ld hl, wPlayerLinkAction ld de, wOtherPlayerLinkMode ld c, 2 @@ -276,24 +271,21 @@ Serial_ExchangeLinkMenuSelection:: ; 83b dec c jr nz, .asm_847 ret -; 862 -Serial_PrintWaitingTextAndSyncAndExchangeNybble:: ; 862 +Serial_PrintWaitingTextAndSyncAndExchangeNybble:: call LoadTileMapToTempTileMap callfar PlaceWaitingText call WaitLinkTransfer jp Call_LoadTempTileMapToTileMap -; 871 -Serial_SyncAndExchangeNybble:: ; 871 +Serial_SyncAndExchangeNybble:: call LoadTileMapToTempTileMap callfar PlaceWaitingText jp WaitLinkTransfer -; 87d ; One "giant" leap for machinekind -WaitLinkTransfer:: ; 87d +WaitLinkTransfer:: ld a, $ff ld [wOtherPlayerLinkAction], a .loop @@ -338,9 +330,8 @@ WaitLinkTransfer:: ; 87d ld a, [wOtherPlayerLinkAction] ld [wOtherPlayerLinkMode], a ret -; 8c1 -LinkTransfer:: ; 8c1 +LinkTransfer:: push bc ld b, SERIAL_TIMECAPSULE ld a, [wLinkMode] @@ -370,9 +361,8 @@ LinkTransfer:: ; 8c1 call .Receive pop bc ret -; 8f3 -.Receive: ; 8f3 +.Receive: ld a, [hSerialReceive] ld [wOtherPlayerLinkMode], a and $f0 @@ -384,9 +374,8 @@ LinkTransfer:: ; 8c1 and $f ld [wOtherPlayerLinkAction], a ret -; 908 -LinkDataReceived:: ; 908 +LinkDataReceived:: ; Let the other system know that the data has been received. xor a ld [hSerialSend], a @@ -398,9 +387,8 @@ LinkDataReceived:: ; 908 ld a, (1 << rSC_ON) | 1 ld [rSC], a ret -; 919 -Unreferenced_Function919:: ; 919 +Unreferenced_Function919:: ld a, [wLinkMode] and a ret nz @@ -413,4 +401,3 @@ Unreferenced_Function919:: ; 919 ld a, 1 << rSC_ON ld [rSC], a ret -; 92e diff --git a/home/sine.asm b/home/sine.asm index a32a31612..821f7c47d 100644 --- a/home/sine.asm +++ b/home/sine.asm @@ -1,10 +1,9 @@ -Cosine:: ; 1b0f +Cosine:: ; a = d * cos(a * pi/32) add %010000 ; cos(x) = sin(x + pi/2) ; fallthrough -Sine:: ; 1b11 +Sine:: ; a = d * sin(a * pi/32) ld e, a homecall _Sine ret -; 1b1e diff --git a/home/sprite_anims.asm b/home/sprite_anims.asm index b5a3fce56..5f3ef82d2 100644 --- a/home/sprite_anims.asm +++ b/home/sprite_anims.asm @@ -1,4 +1,4 @@ -PushLYOverrides:: ; 3b0c +PushLYOverrides:: ld a, [hLCDCPointer] and a ret z @@ -16,9 +16,8 @@ PushLYOverrides:: ; 3b0c ld a, (wLYOverridesEnd - wLYOverrides) / 16 ld [wRequested2bpp], a ret -; 3b2a -_InitSpriteAnimStruct:: ; 3b2a +_InitSpriteAnimStruct:: ld [wSpriteAnimIDBuffer], a ld a, [hROMBank] push af @@ -33,9 +32,8 @@ _InitSpriteAnimStruct:: ; 3b2a rst Bankswitch ret -; 3b3c -ReinitSpriteAnimFrame:: ; 3b3c +ReinitSpriteAnimFrame:: ld [wSpriteAnimIDBuffer], a ld a, [hROMBank] push af @@ -50,4 +48,3 @@ ReinitSpriteAnimFrame:: ; 3b3c rst Bankswitch ret -; 3b4e diff --git a/home/sprite_updates.asm b/home/sprite_updates.asm index 121afc87b..d263363a6 100644 --- a/home/sprite_updates.asm +++ b/home/sprite_updates.asm @@ -1,4 +1,4 @@ -DisableSpriteUpdates:: ; 0x2ed3 +DisableSpriteUpdates:: xor a ld [hMapAnims], a ld a, [wVramState] @@ -7,9 +7,8 @@ DisableSpriteUpdates:: ; 0x2ed3 ld a, $0 ld [wSpriteUpdatesEnabled], a ret -; 0x2ee4 -EnableSpriteUpdates:: ; 2ee4 +EnableSpriteUpdates:: ld a, $1 ld [wSpriteUpdatesEnabled], a ld a, [wVramState] @@ -18,4 +17,3 @@ EnableSpriteUpdates:: ; 2ee4 ld a, $1 ld [hMapAnims], a ret -; 2ef6 diff --git a/home/sram.asm b/home/sram.asm index 4cfe14cf9..1b1a4f318 100644 --- a/home/sram.asm +++ b/home/sram.asm @@ -1,12 +1,11 @@ -GetSRAMBank:: ; 2fcb +GetSRAMBank:: ; load sram bank a ; if invalid bank, sram is disabled cp NUM_SRAM_BANKS jr c, OpenSRAM jr CloseSRAM -; 2fd1 -OpenSRAM:: ; 2fd1 +OpenSRAM:: ; switch to sram bank a push af ; latch clock data @@ -19,9 +18,8 @@ OpenSRAM:: ; 2fd1 pop af ld [MBC3SRamBank], a ret -; 2fe1 -CloseSRAM:: ; 2fe1 +CloseSRAM:: push af ld a, SRAM_DISABLE ; reset clock latch for next time @@ -30,4 +28,3 @@ CloseSRAM:: ; 2fe1 ld [MBC3SRamEnable], a pop af ret -; 2fec diff --git a/home/stone_queue.asm b/home/stone_queue.asm index d41db6fd7..b635cee16 100644 --- a/home/stone_queue.asm +++ b/home/stone_queue.asm @@ -1,4 +1,4 @@ -HandleStoneQueue:: ; 3567 +HandleStoneQueue:: ld a, [hROMBank] push af @@ -9,9 +9,8 @@ HandleStoneQueue:: ; 3567 ld a, b rst Bankswitch ret -; 3574 -.WarpAction: ; 3574 +.WarpAction: ld hl, OBJECT_MAP_OBJECT_INDEX add hl, de ld a, [hl] @@ -35,9 +34,8 @@ HandleStoneQueue:: ; 3567 .nope and a ret -; 3599 -.IsObjectOnWarp: ; 3599 +.IsObjectOnWarp: push de ld hl, OBJECT_NEXT_MAP_X @@ -56,9 +54,8 @@ HandleStoneQueue:: ; 3567 pop de ret -; 35b0 -.check_on_warp ; 35b0 +.check_on_warp ld hl, wCurrMapWarpsPointer ld a, [hli] ld h, [hl] @@ -102,9 +99,8 @@ HandleStoneQueue:: ; 3567 inc a scf ret -; 35de -.IsObjectInStoneTable: ; 35de +.IsObjectInStoneTable: inc e ld hl, CMDQUEUE_ADDR add hl, bc @@ -140,4 +136,3 @@ HandleStoneQueue:: ; 3567 .yes scf ret -; 3600 diff --git a/home/string.asm b/home/string.asm index 492246832..702ab50ff 100644 --- a/home/string.asm +++ b/home/string.asm @@ -1,14 +1,13 @@ -InitString:: ; 2ef6 +InitString:: ; Init a string of length c. push hl jr _InitString -; 2ef9 -InitName:: ; 2ef9 +InitName:: ; Intended for names, so this function is limited to ten characters. push hl ld c, 10 -_InitString:: ; 2efc +_InitString:: ; if the string pointed to by hl is empty (defined as "zero or more spaces ; followed by a null"), then initialize it to the string pointed to by de. push bc @@ -34,4 +33,3 @@ _InitString:: ; 2efc pop bc pop hl ret -; 2f17 diff --git a/home/text.asm b/home/text.asm index a1f6b75eb..ef952942d 100644 --- a/home/text.asm +++ b/home/text.asm @@ -1,4 +1,4 @@ -ClearBox:: ; fb6 +ClearBox:: ; Fill a c*b box at hl with blank tiles. ld a, " " ; fallthrough @@ -18,10 +18,8 @@ FillBoxWithByte:: dec b jr nz, .row ret -; fc8 - -ClearTileMap:: ; fc8 +ClearTileMap:: ; Fill wTileMap with blank tiles. hlcoord 0, 0 @@ -34,19 +32,15 @@ ClearTileMap:: ; fc8 bit rLCDC_ENABLE, a ret z jp WaitBGMap -; fdb - -ClearScreen:: ; fdb +ClearScreen:: ld a, PAL_BG_TEXT hlcoord 0, 0, wAttrMap ld bc, SCREEN_WIDTH * SCREEN_HEIGHT call ByteFill jr ClearTileMap -; fe8 - -TextBox:: ; fe8 +TextBox:: ; Draw a text box at hl with room for b lines of c characters each. ; Places a border around the textbox, then switches the palette to the ; text black-and-white scheme. @@ -56,11 +50,8 @@ TextBox:: ; fe8 pop hl pop bc jr TextBoxPalette -; ff1 - - -TextBoxBorder:: ; ff1 +TextBoxBorder:: ; Top push hl ld a, "┌" @@ -96,9 +87,8 @@ TextBoxBorder:: ; ff1 ld [hl], "┘" ret -; 101e -.PlaceChars: ; 101e +.PlaceChars: ; Place char a c times. ld d, c .loop @@ -106,10 +96,8 @@ TextBoxBorder:: ; ff1 dec d jr nz, .loop ret -; 1024 - -TextBoxPalette:: ; 1024 +TextBoxPalette:: ; Fill text box width c height b at hl with pal 7 ld de, wAttrMap - wTileMap add hl, de @@ -132,58 +120,49 @@ TextBoxPalette:: ; 1024 dec b jr nz, .col ret -; 103e - -SpeechTextBox:: ; 103e +SpeechTextBox:: ; Standard textbox. hlcoord TEXTBOX_X, TEXTBOX_Y ld b, TEXTBOX_INNERH ld c, TEXTBOX_INNERW jp TextBox -; 1048 -TestText:: ; 1048 +TestText:: text "ゲームフりーク!" done -; 1052 -RadioTerminator:: ; 1052 +RadioTerminator:: ld hl, .stop ret .stop db "@" -; 1057 - -PrintText:: ; 1057 +PrintText:: call SetUpTextBox -BuenaPrintText:: ; 105a +BuenaPrintText:: push hl hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY lb bc, TEXTBOX_INNERH - 1, TEXTBOX_INNERW call ClearBox pop hl -PrintTextBoxText:: ; 1065 +PrintTextBoxText:: bccoord TEXTBOX_INNERX, TEXTBOX_INNERY call PlaceHLTextAtBC ret -; 106c -SetUpTextBox:: ; 106c +SetUpTextBox:: push hl call SpeechTextBox call UpdateSprites call ApplyTilemap pop hl ret -; 1078 - -PlaceString:: ; 1078 +PlaceString:: push hl -PlaceNextChar:: ; 1079 +PlaceNextChar:: ld a, [de] cp "@" jr nz, CheckDict @@ -193,32 +172,36 @@ PlaceNextChar:: ; 1079 ret pop de -NextChar:: ; 1083 +NextChar:: inc de jp PlaceNextChar -CheckDict:: ; 1087 +CheckDict:: dict: MACRO -if \1 == 0 +if \1 == "<NULL>" and a else cp \1 endc - jp z, \2 -ENDM -dict2: MACRO - cp \1 +if STRSUB("\2", 1, 1) == "\"" +; Replace a character with another one jr nz, ._\@ ld a, \2 ._\@: +elif STRSUB("\2", 1, 1) == "." +; Locals can use a short jump + jr z, \2 +else + jp z, \2 +endc ENDM - dict TX_DAY, DayOfWeekChar + dict "<MOBILE>", MobileScriptChar dict "<LINE>", LineChar dict "<NEXT>", NextLineChar - dict TX_FAR, TextFar - dict TX_START, NullChar + dict "<CR>", CarriageReturnChar + dict "<NULL>", NullChar dict "<SCROLL>", _ContTextNoPause dict "<_CONT>", _ContText dict "<PARA>", Paragraph @@ -236,7 +219,7 @@ ENDM dict "<TM>", TMChar dict "<TRAINER>", TrainerChar dict "<KOUGEKI>", PlaceKougeki - dict "<LNBRK>", LineBreakChar + dict "<LF>", LineFeedChar dict "<CONT>", ContText dict "<……>", SixDotsChar dict "<DONE>", DoneText @@ -244,17 +227,14 @@ ENDM dict "<PKMN>", PlacePKMN dict "<POKE>", PlacePOKE dict "%", NextChar - dict2 "¯", " " + dict "¯", " " dict "<DEXEND>", PlaceDexEnd dict "<TARGET>", PlaceMoveTargetsName dict "<USER>", PlaceMoveUsersName dict "<ENEMY>", PlaceEnemysName dict "<PLAY_G>", PlaceGenderedPlayerName - - cp "゚" - jr z, .place ; should be .diacritic - cp "゙" - jr z, .place ; should be .diacritic + dict "゚", .place ; should be .diacritic + dict "゙", .place ; should be .diacritic jr .not_diacritic .diacritic @@ -296,16 +276,12 @@ ENDM ld [hli], a call PrintLetterDelay jp NextChar -; 0x117b - -DayOfWeekChar:: ; 117b +MobileScriptChar:: ld c, l ld b, h - farcall Function17f036 + farcall RunMobileScript jp PlaceNextChar -; 1186 - print_name: MACRO push de @@ -313,35 +289,34 @@ print_name: MACRO jp PlaceCommandCharacter ENDM -PrintMomsName: print_name wMomsName ; 1186 -PrintPlayerName: print_name wPlayerName ; 118d -PrintRivalName: print_name wRivalName ; 1194 -PrintRedsName: print_name wRedsName ; 119b -PrintGreensName: print_name wGreensName ; 11a2 - -TrainerChar: print_name TrainerCharText ; 11a9 -TMChar: print_name TMCharText ; 11b0 -PCChar: print_name PCCharText ; 11b7 -RocketChar: print_name RocketCharText ; 11be -PlacePOKe: print_name PlacePOKeText ; 11c5 -PlaceKougeki: print_name KougekiText ; 11cc -SixDotsChar: print_name SixDotsCharText ; 11d3 -PlacePKMN: print_name PlacePKMNText ; 11da -PlacePOKE: print_name PlacePOKEText ; 11e1 -PlaceJPRoute: print_name PlaceJPRouteText ; 11e8 -PlaceWatashi: print_name PlaceWatashiText ; 11ef -PlaceKokoWa: print_name PlaceKokoWaText ; 11f6 - - -PlaceMoveTargetsName:: ; 11fd +PrintMomsName: print_name wMomsName +PrintPlayerName: print_name wPlayerName +PrintRivalName: print_name wRivalName +PrintRedsName: print_name wRedsName +PrintGreensName: print_name wGreensName + +TrainerChar: print_name TrainerCharText +TMChar: print_name TMCharText +PCChar: print_name PCCharText +RocketChar: print_name RocketCharText +PlacePOKe: print_name PlacePOKeText +PlaceKougeki: print_name KougekiText +SixDotsChar: print_name SixDotsCharText +PlacePKMN: print_name PlacePKMNText +PlacePOKE: print_name PlacePOKEText +PlaceJPRoute: print_name PlaceJPRouteText +PlaceWatashi: print_name PlaceWatashiText +PlaceKokoWa: print_name PlaceKokoWaText + +PlaceMoveTargetsName:: ld a, [hBattleTurn] xor 1 jr PlaceMoveUsersName.place -PlaceMoveUsersName:: ; 1203 +PlaceMoveUsersName:: ld a, [hBattleTurn] -.place: ; 1205 +.place: push de and a jr nz, .enemy @@ -357,8 +332,7 @@ PlaceMoveUsersName:: ; 1203 ld de, wEnemyMonNick jr PlaceCommandCharacter - -PlaceEnemysName:: ; 121b +PlaceEnemysName:: push de ld a, [wLinkMode] @@ -391,8 +365,7 @@ PlaceEnemysName:: ; 121b ld de, wOTClassName jr PlaceCommandCharacter - -PlaceGenderedPlayerName:: ; 1252 +PlaceGenderedPlayerName:: push de ld de, wPlayerName call PlaceString @@ -405,14 +378,12 @@ PlaceGenderedPlayerName:: ; 1252 ld de, ChanSuffixText jr PlaceCommandCharacter - -PlaceCommandCharacter:: ; 126a +PlaceCommandCharacter:: call PlaceString ld h, b ld l, c pop de jp NextChar -; 0x1273 TMCharText:: db "TM@" TrainerCharText:: db "TRAINER@" @@ -431,25 +402,22 @@ PlaceWatashiText:: PlaceKokoWaText:: db "@" KunSuffixText:: db "@" ChanSuffixText:: db "@" -; 12a7 -NextLineChar:: ; 12a7 +NextLineChar:: pop hl ld bc, SCREEN_WIDTH * 2 add hl, bc push hl jp NextChar -; 12b0 -LineBreakChar:: ; 12b0 +LineFeedChar:: pop hl ld bc, SCREEN_WIDTH add hl, bc push hl jp NextChar -; 12b9 -TextFar:: ; 12b9 +CarriageReturnChar:: pop hl push de ld bc, -wTileMap + $10000 @@ -489,17 +457,14 @@ TextFar:: ; 12b9 add hl, bc push hl jp NextChar -; 12ea - -LineChar:: ; 12ea +LineChar:: pop hl hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY + 2 push hl jp NextChar -; 0x12f2 -Paragraph:: ; 12f2 +Paragraph:: push de ld a, [wLinkMode] @@ -521,10 +486,8 @@ Paragraph:: ; 12f2 hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY pop de jp NextChar -; 131f - -_ContText:: ; 131f +_ContText:: ld a, [wLinkMode] or a jr nz, .communication @@ -542,17 +505,15 @@ _ContText:: ; 131f call z, UnloadBlinkingCursor ; fallthrough -_ContTextNoPause:: ; 1337 +_ContTextNoPause:: push de call TextScroll call TextScroll hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY + 2 pop de jp NextChar -; 1345 - -ContText:: ; 1345 +ContText:: push de ld de, .cont ld b, h @@ -564,18 +525,15 @@ ContText:: ; 1345 jp NextChar .cont: db "<_CONT>@" -; 1356 - -PlaceDexEnd:: ; 1356 +PlaceDexEnd:: ; Ends a Pokédex entry in Gen 1. ; Dex entries are now regular strings. ld [hl], "." pop hl ret -; 135a -PromptText:: ; 135a +PromptText:: ld a, [wLinkMode] cp LINK_COLOSSEUM jr z, .ok @@ -593,23 +551,21 @@ PromptText:: ; 135a jr z, DoneText call UnloadBlinkingCursor -DoneText:: ; 137c +DoneText:: pop hl ld de, .stop dec de ret .stop: db "@" -; 1383 -NullChar:: ; 1383 +NullChar:: ld a, "?" ld [hli], a call PrintLetterDelay jp NextChar -; 138c -TextScroll:: ; 138c +TextScroll:: hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY decoord TEXTBOX_INNERX, TEXTBOX_INNERY - 1 ld a, TEXTBOX_INNERH - 1 @@ -640,9 +596,8 @@ TextScroll:: ; 138c ld c, 5 call DelayFrames ret -; 13b6 -Text_WaitBGMap:: ; 13b6 +Text_WaitBGMap:: push bc ld a, [hOAMUpdate] push af @@ -655,25 +610,21 @@ Text_WaitBGMap:: ; 13b6 ld [hOAMUpdate], a pop bc ret -; 13c6 -Diacritic:: ; 13c6 +Diacritic:: ret -; 13c7 -LoadBlinkingCursor:: ; 13c7 +LoadBlinkingCursor:: ld a, "▼" ldcoord_a 18, 17 ret -; 13cd -UnloadBlinkingCursor:: ; 13cd +UnloadBlinkingCursor:: lda_coord 17, 17 ldcoord_a 18, 17 ret -; 13d4 -FarString:: ; 13d4 +FarString:: ld b, a ld a, [hROMBank] push af @@ -685,17 +636,14 @@ FarString:: ; 13d4 pop af rst Bankswitch ret -; 13e0 -PokeFluteTerminatorCharacter:: ; 13e0 +PokeFluteTerminatorCharacter:: ld hl, .stop ret .stop: db "@" -; 13e5 - -PlaceHLTextAtBC:: ; 13e5 +PlaceHLTextAtBC:: ld a, [wTextBoxFlags] push af set NO_TEXT_DELAY_F, a @@ -706,9 +654,8 @@ PlaceHLTextAtBC:: ; 13e5 pop af ld [wTextBoxFlags], a ret -; 13f6 -DoTextUntilTerminator:: ; 13f6 +DoTextUntilTerminator:: ld a, [hli] cp "@" ret z @@ -732,37 +679,35 @@ DoTextUntilTerminator:: ; 13f6 ; jp de push de ret -; 1410 -TextCommands:: ; 1410 +TextCommands:: ; entries correspond to TX_* constants (see macros/scripts/text.asm) - dw Text_TX ; TX_START - dw Text_TX_RAM ; TX_RAM - dw Text_TX_BCD ; TX_BCD - dw Text_TX_MOVE ; TX_MOVE - dw Text_TX_BOX ; TX_BOX - dw Text_TX_LOW ; TX_LOW - dw Text_WAIT_BUTTON ; WAIT_BUTTON - dw Text_TX_SCROLL ; TX_SCROLL - dw Text_START_ASM ; START_ASM - dw Text_TX_NUM ; TX_NUM - dw Text_TX_EXIT ; TX_EXIT - dw Text_PlaySound ; TX_SOUND_DEX_FANFARE_50_79 - dw Text_TX_DOTS ; TX_DOTS - dw Text_LINK_WAIT_BUTTON ; TX_LINK_WAIT_BUTTON - dw Text_PlaySound ; TX_SOUND_DEX_FANFARE_20_49 - dw Text_PlaySound ; TX_SOUND_ITEM - dw Text_PlaySound ; TX_SOUND_CAUGHT_MON - dw Text_PlaySound ; TX_SOUND_DEX_FANFARE_80_109 - dw Text_PlaySound ; TX_SOUND_FANFARE - dw Text_PlaySound ; TX_SOUND_SLOT_MACHINE_START - dw Text_TX_STRINGBUFFER ; TX_STRINGBUFFER - dw Text_TX_DAY ; TX_DAY - dw Text_TX_FAR ; TX_FAR -; 143e - -Text_TX:: ; 143e -; TX + dw TextCommand_START ; TX_START + dw TextCommand_RAM ; TX_RAM + dw TextCommand_BCD ; TX_BCD + dw TextCommand_MOVE ; TX_MOVE + dw TextCommand_BOX ; TX_BOX + dw TextCommand_LOW ; TX_LOW + dw TextCommand_WAIT_BUTTON ; TX_WAIT_BUTTON + dw TextCommand_SCROLL ; TX_SCROLL + dw TextCommand_START_ASM ; TX_START_ASM + dw TextCommand_NUM ; TX_NUM + dw TextCommand_EXIT ; TX_EXIT + dw TextCommand_SOUND ; TX_SOUND_DEX_FANFARE_50_79 + dw TextCommand_DOTS ; TX_DOTS + dw TextCommand_LINK_WAIT_BUTTON ; TX_LINK_WAIT_BUTTON + dw TextCommand_SOUND ; TX_SOUND_DEX_FANFARE_20_49 + dw TextCommand_SOUND ; TX_SOUND_ITEM + dw TextCommand_SOUND ; TX_SOUND_CAUGHT_MON + dw TextCommand_SOUND ; TX_SOUND_DEX_FANFARE_80_109 + dw TextCommand_SOUND ; TX_SOUND_FANFARE + dw TextCommand_SOUND ; TX_SOUND_SLOT_MACHINE_START + dw TextCommand_STRINGBUFFER ; TX_STRINGBUFFER + dw TextCommand_DAY ; TX_DAY + dw TextCommand_FAR ; TX_FAR + +TextCommand_START:: +; text_start ; write text until "@" ; [$00]["...@"] @@ -775,9 +720,8 @@ Text_TX:: ; 143e ld l, e inc hl ret -; 1449 -Text_TX_RAM:: ; 1449 +TextCommand_RAM:: ; text_from_ram ; write text from a ram address ; little endian @@ -793,9 +737,8 @@ Text_TX_RAM:: ; 1449 call PlaceString pop hl ret -; 1455 -Text_TX_FAR:: ; 1455 +TextCommand_FAR:: ; text_jump ; write text from a different bank ; little endian @@ -823,10 +766,9 @@ Text_TX_FAR:: ; 1455 ld [hROMBank], a ld [MBC3RomBank], a ret -; 1470 -Text_TX_BCD:: ; 1470 -; TX_BCD +TextCommand_BCD:: +; text_bcd ; write bcd from address, typically ram ; [$02][addr][flags] ; flags: see PrintBCDNumber @@ -845,10 +787,9 @@ Text_TX_BCD:: ; 1470 ld c, l pop hl ret -; 1480 -Text_TX_MOVE:: ; 1480 -; TX_MOVE +TextCommand_MOVE:: +; text_move ; move to a new tile ; [$03][addr] @@ -859,10 +800,9 @@ Text_TX_MOVE:: ; 1480 ld [wMenuScrollPosition + 2 + 1], a ld b, a ret -; 148b -Text_TX_BOX:: ; 148b -; TX_BOX +TextCommand_BOX:: +; text_box ; draw a box ; little endian ; [$04][addr][height][width] @@ -881,28 +821,26 @@ Text_TX_BOX:: ; 148b call TextBox pop hl ret -; 149b -Text_TX_LOW:: ; 149b -; TX_LOW +TextCommand_LOW:: +; text_low ; write text at (1,16) ; [$05] bccoord TEXTBOX_INNERX, TEXTBOX_INNERY + 2 ret -; 149f -Text_WAIT_BUTTON:: ; 149f -; TX_WAITBUTTON +TextCommand_WAIT_BUTTON:: +; text_waitbutton ; wait for button press ; show arrow ; [06] ld a, [wLinkMode] cp LINK_COLOSSEUM - jp z, Text_LINK_WAIT_BUTTON + jp z, TextCommand_LINK_WAIT_BUTTON cp LINK_MOBILE - jp z, Text_LINK_WAIT_BUTTON + jp z, TextCommand_LINK_WAIT_BUTTON push hl call LoadBlinkingCursor @@ -912,9 +850,9 @@ Text_WAIT_BUTTON:: ; 149f call UnloadBlinkingCursor pop hl ret -; 14ba -Text_TX_SCROLL:: ; 14ba +TextCommand_SCROLL:: +; text_scroll ; pushes text up two lines and sets the BC cursor to the border tile ; below the first character column of the text box. push hl @@ -924,10 +862,9 @@ Text_TX_SCROLL:: ; 14ba pop hl bccoord TEXTBOX_INNERX, TEXTBOX_INNERY + 2 ret -; 14c9 -Text_START_ASM:: ; 14c9 -; TX_ASM +TextCommand_START_ASM:: +; start_asm bit 7, h jr nz, .not_rom @@ -937,10 +874,9 @@ Text_START_ASM:: ; 14c9 ld a, "@" ld [hl], a ret -; 14d2 -Text_TX_NUM:: ; 14d2 -; TX_NUM +TextCommand_NUM:: +; deciram ; [$09][addr][hi:bytes lo:digits] ld a, [hli] ld e, a @@ -963,9 +899,9 @@ Text_TX_NUM:: ; 14d2 ld c, l pop hl ret -; 14ed -Text_TX_EXIT:: ; 14ed +TextCommand_EXIT:: +; interpret_data push hl push bc call GetJoypad @@ -978,9 +914,8 @@ Text_TX_EXIT:: ; 14ed pop bc pop hl ret -; 1500 -Text_PlaySound:: ; 1500 +TextCommand_SOUND:: ; chars: ; $0b, $0e, $0f, $10, $11, $12, $13 ; see TextSFX @@ -1014,10 +949,9 @@ Text_PlaySound:: ; 1500 pop hl pop bc ret -; 1522 -Unreferenced_Function1522:: ; 1522 -; TX_CRY +Unreferenced_Function1522:: +; play_cry push de ld e, [hl] inc hl @@ -1027,9 +961,8 @@ Unreferenced_Function1522:: ; 1522 pop hl pop bc ret -; 152d -TextSFX:: ; 152d +TextSFX:: dbw TX_SOUND_DEX_FANFARE_50_79, SFX_DEX_FANFARE_50_79 dbw TX_SOUND_FANFARE, SFX_FANFARE dbw TX_SOUND_DEX_FANFARE_20_49, SFX_DEX_FANFARE_20_49 @@ -1038,9 +971,9 @@ TextSFX:: ; 152d dbw TX_SOUND_DEX_FANFARE_80_109, SFX_DEX_FANFARE_80_109 dbw TX_SOUND_SLOT_MACHINE_START, SFX_SLOT_MACHINE_START db -1 -; 1543 -Text_TX_DOTS:: ; 1543 +TextCommand_DOTS:: +; limited_interpret_data ; [$0C][num] ld a, [hli] ld d, a @@ -1067,9 +1000,9 @@ Text_TX_DOTS:: ; 1543 ld c, l pop hl ret -; 1562 -Text_LINK_WAIT_BUTTON:: ; 1562 +TextCommand_LINK_WAIT_BUTTON:: +; link_wait_button ; wait for key down ; display arrow push hl @@ -1078,9 +1011,9 @@ Text_LINK_WAIT_BUTTON:: ; 1562 pop bc pop hl ret -; 156a -Text_TX_STRINGBUFFER:: ; 156a +TextCommand_STRINGBUFFER:: +; text_buffer ; Print a string from one of the following: ; 0: wStringBuffer3 ; 1: wStringBuffer4 @@ -1107,10 +1040,9 @@ Text_TX_STRINGBUFFER:: ; 156a call PlaceString pop hl ret -; 1582 -Text_TX_DAY:: ; 1582 -; TX_DAY +TextCommand_DAY:: +; current_day call GetWeekday push hl @@ -1134,7 +1066,7 @@ Text_TX_DAY:: ; 1582 pop hl ret -.Days: ; 15a2 +.Days: dw .Sun dw .Mon dw .Tues @@ -1151,4 +1083,3 @@ Text_TX_DAY:: ; 1582 .Fri: db "FRI@" .Satur: db "SATUR@" .Day: db "DAY@" -; 15d8 diff --git a/home/tilemap.asm b/home/tilemap.asm index 926ed8ac4..711118ae0 100644 --- a/home/tilemap.asm +++ b/home/tilemap.asm @@ -1,6 +1,6 @@ -ClearBGPalettes:: ; 31f3 +ClearBGPalettes:: call ClearPalettes -WaitBGMap:: ; 31f6 +WaitBGMap:: ; Tell VBlank to update BG Map ld a, 1 ; BG Map 0 tiles ld [hBGMapMode], a @@ -8,9 +8,8 @@ WaitBGMap:: ; 31f6 ld c, 4 call DelayFrames ret -; 3200 -WaitBGMap2:: ; 0x3200 +WaitBGMap2:: ld a, [hCGB] and a jr z, .bg0 @@ -26,15 +25,13 @@ WaitBGMap2:: ; 0x3200 ld c, 4 call DelayFrames ret -; 0x3218 -IsCGB:: ; 3218 +IsCGB:: ld a, [hCGB] and a ret -; 321c -ApplyTilemap:: ; 321c +ApplyTilemap:: ld a, [hCGB] and a jr z, .dmg @@ -54,23 +51,20 @@ ApplyTilemap:: ; 321c ld c, 4 call DelayFrames ret -; 3238 -CGBOnly_CopyTilemapAtOnce:: ; 3238 +CGBOnly_CopyTilemapAtOnce:: ld a, [hCGB] and a jr z, WaitBGMap -CopyTilemapAtOnce:: ; 323d +CopyTilemapAtOnce:: jr .CopyTilemapAtOnce -; 323f ; unused farcall HDMATransferAttrMapAndTileMapToWRAMBank3 ret -; 3246 -.CopyTilemapAtOnce: ; 3246 +.CopyTilemapAtOnce: ld a, [hBGMapMode] push af xor a @@ -107,9 +101,8 @@ CopyTilemapAtOnce:: ; 323d pop af ld [hBGMapMode], a ret -; 327b -.StackPointerMagic: ; 327b +.StackPointerMagic: ; Copy all tiles to vBGMap ld [hSPBuffer], sp ld sp, hl @@ -149,9 +142,8 @@ endr ld h, a ld sp, hl ret -; 32f9 -SetPalettes:: ; 32f9 +SetPalettes:: ; Inits the Palettes ; depending on the system the monochromes palettes or color palettes ld a, [hCGB] @@ -172,9 +164,8 @@ SetPalettes:: ; 32f9 call DmgToCgbObjPals pop de ret -; 3317 -ClearPalettes:: ; 3317 +ClearPalettes:: ; Make all palettes white ; CGB: make all the palette colors white @@ -209,11 +200,10 @@ ClearPalettes:: ; 3317 ld a, 1 ld [hCGBPalUpdate], a ret -; 333e -GetMemSGBLayout:: ; 333e +GetMemSGBLayout:: ld b, SCGB_RAM -GetSGBLayout:: ; 3340 +GetSGBLayout:: ; load sgb packets unless dmg ld a, [hCGB] @@ -226,4 +216,3 @@ GetSGBLayout:: ; 3340 .sgb predef_jump LoadSGBLayout -; 334e diff --git a/home/time.asm b/home/time.asm index f007fd1db..caf857a68 100644 --- a/home/time.asm +++ b/home/time.asm @@ -1,7 +1,6 @@ ; Functions relating to the timer interrupt and the real-time-clock. - -AskTimer:: ; 591 +AskTimer:: push af ld a, [hMobile] and a @@ -11,29 +10,23 @@ AskTimer:: ; 591 .not_mobile pop af reti -; 59c - -LatchClock:: ; 59c +LatchClock:: ; latch clock counter data ld a, 0 ld [MBC3LatchClock], a ld a, 1 ld [MBC3LatchClock], a ret -; 5a7 - -UpdateTime:: ; 5a7 +UpdateTime:: call GetClock call FixDays call FixTime farcall GetTimeOfDay ret -; 5b7 - -GetClock:: ; 5b7 +GetClock:: ; store clock data in hRTCDayHi-hRTCSeconds ; enable clock r/w @@ -72,10 +65,8 @@ GetClock:: ; 5b7 ; unlatch clock / disable clock r/w call CloseSRAM ret -; 5e8 - -FixDays:: ; 5e8 +FixDays:: ; fix day count ; mod by 140 @@ -134,10 +125,8 @@ FixDays:: ; 5e8 .quit xor a ret -; 61d - -FixTime:: ; 61d +FixTime:: ; add ingame time (set at newgame) to current time ; day hr min sec ; store time in wCurDay, hHours, hMinutes, hSeconds @@ -185,16 +174,15 @@ FixTime:: ; 61d adc c ld [wCurDay], a ret -; 658 -InitTimeOfDay:: ; 658 +InitTimeOfDay:: xor a ld [wStringBuffer2], a ld a, $0 ; useless ld [wStringBuffer2 + 3], a jr InitTime -InitDayOfWeek:: ; 663 +InitDayOfWeek:: call UpdateTime ld a, [hHours] ld [wStringBuffer2 + 1], a @@ -204,20 +192,16 @@ InitDayOfWeek:: ; 663 ld [wStringBuffer2 + 3], a jr InitTime ; useless -InitTime:: ; 677 +InitTime:: farcall _InitTime ret -; 67e - - -PanicResetClock:: ; 67e +PanicResetClock:: call .ClearhRTC call SetClock ret -; 685 -.ClearhRTC: ; 685 +.ClearhRTC: xor a ld [hRTCSeconds], a ld [hRTCMinutes], a @@ -225,10 +209,8 @@ PanicResetClock:: ; 67e ld [hRTCDayLo], a ld [hRTCDayHi], a ret -; 691 - -SetClock:: ; 691 +SetClock:: ; set clock data from hram ; enable clock r/w @@ -274,10 +256,8 @@ SetClock:: ; 691 ; cleanup call CloseSRAM ; unlatch clock, disable clock r/w ret -; 6c4 - -ClearRTCStatus:: ; 6c4 +ClearRTCStatus:: ; clear sRTCStatusFlags xor a push af @@ -287,9 +267,8 @@ ClearRTCStatus:: ; 6c4 ld [sRTCStatusFlags], a call CloseSRAM ret -; 6d3 -RecordRTCStatus:: ; 6d3 +RecordRTCStatus:: ; append flags to sRTCStatusFlags ld hl, sRTCStatusFlags push af @@ -300,13 +279,11 @@ RecordRTCStatus:: ; 6d3 ld [hl], a call CloseSRAM ret -; 6e3 -CheckRTCStatus:: ; 6e3 +CheckRTCStatus:: ; check sRTCStatusFlags ld a, BANK(sRTCStatusFlags) call GetSRAMBank ld a, [sRTCStatusFlags] call CloseSRAM ret -; 6ef diff --git a/home/trainers.asm b/home/trainers.asm index 337c67709..5def6cf17 100644 --- a/home/trainers.asm +++ b/home/trainers.asm @@ -1,4 +1,4 @@ -CheckTrainerBattle2:: ; 3600 +CheckTrainerBattle2:: ld a, [hROMBank] push af @@ -9,9 +9,8 @@ CheckTrainerBattle2:: ; 3600 ld a, b rst Bankswitch ret -; 360d -CheckTrainerBattle:: ; 360d +CheckTrainerBattle:: ; Check if any trainer on the map sees the player and wants to battle. ; Skip the player object. @@ -21,7 +20,6 @@ CheckTrainerBattle:: ; 360d .loop ; Start a battle if the object: - push af push de @@ -101,15 +99,14 @@ CheckTrainerBattle:: ; 360d ld a, c ld [wEngineBuffer3], a jr LoadTrainer_continue -; 3674 -TalkToTrainer:: ; 3674 +TalkToTrainer:: ld a, 1 ld [wEngineBuffer2], a ld a, -1 ld [wEngineBuffer3], a -LoadTrainer_continue:: ; 367e +LoadTrainer_continue:: call GetMapScriptsBank ld [wEngineBuffer1], a @@ -128,19 +125,16 @@ LoadTrainer_continue:: ; 367e ld [wRunningTrainerBattleScript], a scf ret -; 36a5 - -FacingPlayerDistance_bc:: ; 36a5 +FacingPlayerDistance_bc:: push de call FacingPlayerDistance ld b, d ld c, e pop de ret -; 36ad -FacingPlayerDistance:: ; 36ad +FacingPlayerDistance:: ; Return carry if the sprite at bc is facing the player, ; and its distance in d. @@ -208,9 +202,8 @@ FacingPlayerDistance:: ; 36ad .NotFacing: and a ret -; 36f5 -CheckTrainerFlag:: ; 36f5 +CheckTrainerFlag:: push bc ld hl, OBJECT_MAP_OBJECT_INDEX add hl, bc @@ -233,9 +226,8 @@ CheckTrainerFlag:: ; 36f5 and a pop bc ret -; 3718 -PrintWinLossText:: ; 3718 +PrintWinLossText:: ld a, [wBattleType] cp BATTLETYPE_CANLOSE jr .canlose ; ?????????? @@ -260,4 +252,3 @@ PrintWinLossText:: ; 3718 call WaitBGMap call WaitPressAorB_BlinkCursor ret -; 3741 diff --git a/home/vblank.asm b/home/vblank.asm index 3b33b1ec5..5e87dbcdf 100644 --- a/home/vblank.asm +++ b/home/vblank.asm @@ -6,8 +6,7 @@ ; This prevents the display and audio output from lagging. - -VBlank:: ; 283 +VBlank:: push af push bc push de @@ -34,9 +33,8 @@ VBlank:: ; 283 pop bc pop af reti -; 2a1 -.VBlanks: ; 2a1 +.VBlanks: dw VBlank0 dw VBlank1 dw VBlank2 @@ -45,10 +43,8 @@ VBlank:: ; 283 dw VBlank5 dw VBlank6 dw VBlank0 ; just in case -; 2b1 - -VBlank0:: ; 2b1 +VBlank0:: ; normal operation ; rng @@ -116,7 +112,6 @@ VBlank0:: ; 2b1 call hTransferVirtualOAM .done_oam - ; vblank-sensitive operations are done xor a @@ -148,10 +143,8 @@ VBlank0:: ; 2b1 ld [hSecondsBackup], a ret -; 325 - -VBlank2:: ; 325 +VBlank2:: ; sound only ld a, [hROMBank] @@ -167,10 +160,8 @@ VBlank2:: ; 325 xor a ld [wVBlankOccurred], a ret -; 337 - -VBlank1:: ; 337 +VBlank1:: ; scx, scy ; palettes ; bg map @@ -235,10 +226,8 @@ VBlank1:: ; 337 ld a, b ld [rIF], a ret -; 37f - -UpdatePals:: ; 37f +UpdatePals:: ; update pals for either dmg or cgb ld a, [hCGB] @@ -255,10 +244,8 @@ UpdatePals:: ; 37f and a ret -; 396 - -VBlank3:: ; 396 +VBlank3:: ; scx, scy ; palettes ; bg map @@ -321,10 +308,8 @@ VBlank3:: ; 396 ld a, b ld [rIF], a ret -; 3df - -VBlank4:: ; 3df +VBlank4:: ; bg map ; tiles ; oam @@ -354,10 +339,8 @@ VBlank4:: ; 3df ld a, [hROMBankBackup] rst Bankswitch ret -; 400 - -VBlank5:: ; 400 +VBlank5:: ; scx ; palettes ; bg map @@ -404,10 +387,8 @@ VBlank5:: ; 400 ld a, %1111 ; serial timer lcdstat vblank ld [rIE], a ret -; 436 - -VBlank6:: ; 436 +VBlank6:: ; palettes ; tiles ; dma transfer @@ -438,4 +419,3 @@ VBlank6:: ; 436 ld a, [hROMBankBackup] rst Bankswitch ret -; 45a diff --git a/home/video.asm b/home/video.asm index 1066197ff..4b519fca0 100644 --- a/home/video.asm +++ b/home/video.asm @@ -1,6 +1,6 @@ ; Functions dealing with VRAM. -DMATransfer:: ; 15d8 +DMATransfer:: ; Return carry if the transfer is completed. ld a, [hDMATransfer] @@ -16,10 +16,8 @@ DMATransfer:: ; 15d8 ld [hDMATransfer], a scf ret -; 15e3 - -UpdateBGMapBuffer:: ; 15e3 +UpdateBGMapBuffer:: ; Copy [hBGMapTileCount] 16x8 tiles from wBGMapBuffer ; to bg map addresses in wBGMapBufferPtrs. @@ -43,7 +41,6 @@ UpdateBGMapBuffer:: ; 15e3 ld hl, wBGMapPalBuffer ld de, wBGMapBuffer - .next ; Copy a pair of 16x8 blocks (one 16x16 block) @@ -83,7 +80,6 @@ endr jr nz, .next - ld a, [hSPBuffer] ld l, a ld a, [hSPBuffer + 1] @@ -97,10 +93,8 @@ endr ld [hBGMapUpdate], a scf ret -; 163a - -WaitTop:: ; 163a +WaitTop:: ; Wait until the top third of the BG Map is being updated. ld a, [hBGMapMode] @@ -118,10 +112,8 @@ WaitTop:: ; 163a xor a ld [hBGMapMode], a ret -; 164c - -UpdateBGMap:: ; 164c +UpdateBGMap:: ; Update the BG Map, in thirds, from wTileMap and wAttrMap. ld a, [hBGMapMode] @@ -163,7 +155,6 @@ UpdateBGMap:: ; 164c ld [hBGMapAddress + 1], a ret - .Attr: ld a, 1 ld [rVBK], a @@ -175,11 +166,9 @@ UpdateBGMap:: ; 164c ld [rVBK], a ret - .Tiles: hlcoord 0, 0 - .update ld [hSPBuffer], sp @@ -191,10 +180,8 @@ UpdateBGMap:: ; 164c jr z, .middle ; 2 - THIRD_HEIGHT EQU SCREEN_HEIGHT / 3 - .bottom ld de, 2 * THIRD_HEIGHT * SCREEN_WIDTH add hl, de @@ -212,7 +199,6 @@ THIRD_HEIGHT EQU SCREEN_HEIGHT / 3 xor a jr .start - .middle ld de, THIRD_HEIGHT * SCREEN_WIDTH add hl, de @@ -230,7 +216,6 @@ THIRD_HEIGHT EQU SCREEN_HEIGHT / 3 ld a, 2 jr .start - .top ld sp, hl @@ -242,7 +227,6 @@ THIRD_HEIGHT EQU SCREEN_HEIGHT / 3 ; Next time: middle third ld a, 1 - .start ; Which third to update next time ld [hBGMapThird], a @@ -253,7 +237,6 @@ THIRD_HEIGHT EQU SCREEN_HEIGHT / 3 ; Discrepancy between wTileMap and BGMap ld bc, BG_MAP_WIDTH - (SCREEN_WIDTH - 1) - .row ; Copy a row of 20 tiles rept SCREEN_WIDTH / 2 - 1 @@ -272,17 +255,14 @@ endr dec a jr nz, .row - ld a, [hSPBuffer] ld l, a ld a, [hSPBuffer + 1] ld h, a ld sp, hl ret -; 170a - -Serve1bppRequest:: ; 170a +Serve1bppRequest:: ; Only call during the first fifth of VBlank ld a, [wRequested1bpp] @@ -346,7 +326,6 @@ endr dec b jr nz, .next - ld a, l ld [wRequested1bppDest], a ld a, h @@ -360,10 +339,8 @@ endr ld h, a ld sp, hl ret -; 1769 - -Serve2bppRequest:: ; 1769 +Serve2bppRequest:: ; Only call during the first fifth of VBlank ld a, [wRequested2bpp] @@ -378,14 +355,12 @@ Serve2bppRequest:: ; 1769 ret nc jr _Serve2bppRequest - -Serve2bppRequest_VBlank:: ; 1778 - +Serve2bppRequest_VBlank:: ld a, [wRequested2bpp] and a ret z -_Serve2bppRequest:: ; 177d +_Serve2bppRequest:: ; Copy [wRequested2bpp] 2bpp tiles from [wRequested2bppSource] to [wRequested2bppDest] ld [hSPBuffer], sp @@ -428,7 +403,6 @@ endr dec b jr nz, .next - ld a, l ld [wRequested2bppDest], a ld a, h @@ -442,10 +416,8 @@ endr ld h, a ld sp, hl ret -; 17d3 - -AnimateTileset:: ; 17d3 +AnimateTileset:: ; Only call during the first fifth of VBlank ld a, [hMapAnims] @@ -483,4 +455,3 @@ AnimateTileset:: ; 17d3 pop af rst Bankswitch ret -; 17ff diff --git a/home/window.asm b/home/window.asm index f3a646f9a..6d9bd5311 100644 --- a/home/window.asm +++ b/home/window.asm @@ -1,4 +1,4 @@ -RefreshScreen:: ; 2dba +RefreshScreen:: call ClearWindowData ld a, [hROMBank] push af @@ -12,10 +12,8 @@ RefreshScreen:: ; 2dba pop af rst Bankswitch ret -; 2dcf - -CloseText:: ; 2dcf +CloseText:: ld a, [hOAMUpdate] push af ld a, $1 @@ -28,9 +26,8 @@ CloseText:: ; 2dcf ld hl, wVramState res 6, [hl] ret -; 2de2 -.CloseText: ; 2de2 +.CloseText: call ClearWindowData xor a ld [hBGMapMode], a @@ -45,9 +42,8 @@ CloseText:: ; 2dcf farcall ReturnFromMapSetupScript farcall LoadOverworldFont ret -; 2e08 -OpenText:: ; 2e08 +OpenText:: call ClearWindowData ld a, [hROMBank] push af @@ -62,9 +58,8 @@ OpenText:: ; 2e08 rst Bankswitch ret -; 2e20 -_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap:: ; 2e20 +_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap:: ld a, [hOAMUpdate] push af ld a, $1 @@ -75,9 +70,8 @@ _OpenAndCloseMenu_HDMATransferTileMapAndAttrMap:: ; 2e20 pop af ld [hOAMUpdate], a ret -; 2e31 -SafeUpdateSprites:: ; 2e31 +SafeUpdateSprites:: ld a, [hOAMUpdate] push af ld a, [hBGMapMode] @@ -101,4 +95,3 @@ SafeUpdateSprites:: ; 2e31 ; unused scf ret -; 2e50 |