From d001ced41b53271373753de835a9c3b3413dc318 Mon Sep 17 00:00:00 2001 From: vulcandth Date: Thu, 13 Jul 2023 20:27:56 -0500 Subject: Add macros, constants, and labels for map scripts and text (#367) This introduces `def_script_pointers`, `def_text_pointers`, and `object_const_def` macros, and applies them to all maps. Most other map labels have also been identified. --- constants/sprite_constants.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'constants') diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index 700ec47a..346ad0e4 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -28,7 +28,7 @@ const SPRITE_ROCKET ; $18 const SPRITE_CHANNELER ; $19 const SPRITE_WAITER ; $1a - const SPRITE_ERIKA ; $1b + const SPRITE_SILPH_WORKER_F ; $1b const SPRITE_MIDDLE_AGED_WOMAN ; $1c const SPRITE_BRUNETTE_GIRL ; $1d const SPRITE_LANCE ; $1e @@ -45,7 +45,7 @@ const SPRITE_NURSE ; $29 const SPRITE_LINK_RECEPTIONIST ; $2a const SPRITE_SILPH_PRESIDENT ; $2b - const SPRITE_SILPH_WORKER ; $2c + const SPRITE_SILPH_WORKER_M ; $2c const SPRITE_WARDEN ; $2d const SPRITE_CAPTAIN ; $2e const SPRITE_FISHER ; $2f -- cgit v1.3.1-sl0p From f46db37d508f0111ad44ad062ed3d83ba3282d1d Mon Sep 17 00:00:00 2001 From: SatoMew Date: Sat, 15 Jul 2023 23:36:59 +0100 Subject: Thoroughly document debug code (#410) --- constants/item_constants.asm | 2 +- constants/misc_constants.asm | 3 ++ data/maps/special_warps.asm | 10 +++--- engine/battle/core.asm | 25 +++++++++----- engine/battle/init_battle_variables.asm | 2 +- engine/debug/debug_menu.asm | 23 +++++++------ engine/debug/debug_party.asm | 24 ++++++------- engine/menus/main_menu.asm | 13 ++++--- engine/movie/oak_speech/oak_speech.asm | 17 ++++++--- engine/movie/title.asm | 8 ++--- engine/overworld/special_warps.asm | 61 ++++++++++++++++----------------- gfx/font.asm | 4 +-- home/npc_movement.asm | 6 ++-- home/overworld.asm | 10 +++--- home/text.asm | 6 +++- home/trainers.asm | 2 ++ ram/wram.asm | 19 +++------- scripts/HallOfFame.asm | 2 +- 18 files changed, 128 insertions(+), 109 deletions(-) (limited to 'constants') diff --git a/constants/item_constants.asm b/constants/item_constants.asm index edd70379..e25aadba 100644 --- a/constants/item_constants.asm +++ b/constants/item_constants.asm @@ -13,7 +13,7 @@ const POKE_BALL ; $04 const TOWN_MAP ; $05 const BICYCLE ; $06 - const SURFBOARD ; $07 buggy? + const SURFBOARD ; $07 const SAFARI_BALL ; $08 const POKEDEX ; $09 const MOON_STONE ; $0A diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 84775608..a230b3d7 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -16,3 +16,6 @@ DEF TEXT_DELAY_SLOW EQU %101 ; 5 const_def 6 const BIT_BATTLE_SHIFT ; 6 const BIT_BATTLE_ANIMATION ; 7 + +; wd732 flags +DEF BIT_DEBUG_MODE EQU 1 diff --git a/data/maps/special_warps.asm b/data/maps/special_warps.asm index cad320ed..28cdbf6c 100644 --- a/data/maps/special_warps.asm +++ b/data/maps/special_warps.asm @@ -44,15 +44,15 @@ MACRO special_warp_spec db \4 ENDM -FirstMapSpec: +NewGameWarp: special_warp_spec REDS_HOUSE_2F, 3, 6, REDS_HOUSE_2 -TradeCenterSpec1: +TradeCenterPlayerWarp: special_warp_spec TRADE_CENTER, 3, 4, CLUB -TradeCenterSpec2: +TradeCenterFriendWarp: special_warp_spec TRADE_CENTER, 6, 4, CLUB -ColosseumSpec1: +ColosseumPlayerWarp: special_warp_spec COLOSSEUM, 3, 4, CLUB -ColosseumSpec2: +ColosseumFriendWarp: special_warp_spec COLOSSEUM, 6, 4, CLUB diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 4a0263e2..f976674a 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -2493,9 +2493,9 @@ MoveSelectionMenu: ; so it is necessary to put the di ei block to not cause tearing call TextBoxBorder hlcoord 4, 12 - ld [hl], $7a + ld [hl], "─" hlcoord 10, 12 - ld [hl], $7e + ld [hl], "┘" ei hlcoord 6, 13 call .writemoves @@ -2557,11 +2557,12 @@ MoveSelectionMenu: ld a, [wLinkState] cp LINK_STATE_BATTLING jr z, .matchedkeyspicked + ; Disable left, right, and START buttons in regular battles. ld a, [wFlags_D733] bit BIT_TEST_BATTLE, a ld b, D_UP | D_DOWN | A_BUTTON | B_BUTTON | SELECT jr z, .matchedkeyspicked - ld b, $ff + ld b, D_UP | D_DOWN | D_LEFT | D_RIGHT | A_BUTTON | B_BUTTON | SELECT | START .matchedkeyspicked ld a, b ld [hli], a ; wMenuWatchedKeys @@ -2585,8 +2586,12 @@ SelectMenuItem: call PlaceString jr .select .battleselect + ; Hide move swap cursor in TestBattle. ld a, [wFlags_D733] bit BIT_TEST_BATTLE, a + ; This causes PrintMenuItem to not run in TestBattle. + ; MoveSelectionMenu still draws part of its window, an issue + ; which did not seem to exist in the Japanese versions. jr nz, .select call PrintMenuItem ld a, [wMenuItemToSwap] @@ -2648,8 +2653,9 @@ SelectMenuItem: jr z, .disabled ld a, [wPlayerBattleStatus3] bit 3, a ; transformed - jr nz, .dummy ; game freak derp -.dummy + jr nz, .transformedMoveSelected +.transformedMoveSelected ; pointless + ; Allow moves copied by Transform to be used. ld a, [wCurrentMenuItem] ld hl, wBattleMonMoves ld c, a @@ -6085,6 +6091,7 @@ GetCurrentMove: jr .selected .player ld de, wPlayerMoveNum + ; Apply InitBattleVariables to TestBattle. ld a, [wFlags_D733] bit BIT_TEST_BATTLE, a ld a, [wTestBattlePlayerSelectedMove] @@ -6768,12 +6775,12 @@ InitOpponent: DetermineWildOpponent: ld a, [wd732] - bit 1, a - jr z, .notDebug + bit BIT_DEBUG_MODE, a + jr z, .notDebugMode ldh a, [hJoyHeld] - bit BIT_B_BUTTON, a + bit BIT_B_BUTTON, a ; disable wild encounters ret nz -.notDebug +.notDebugMode ld a, [wNumberOfNoRandomBattleStepsLeft] and a ret nz diff --git a/engine/battle/init_battle_variables.asm b/engine/battle/init_battle_variables.asm index dd9f9714..aa081296 100644 --- a/engine/battle/init_battle_variables.asm +++ b/engine/battle/init_battle_variables.asm @@ -20,7 +20,7 @@ InitBattleVariables: ld [hli], a ; wPlayerHPBarColor ld [hl], a ; wEnemyHPBarColor ld hl, wCanEvolveFlags - ld b, $3c + ld b, wMiscBattleDataEnd - wMiscBattleData .loop ld [hli], a dec b diff --git a/engine/debug/debug_menu.asm b/engine/debug/debug_menu.asm index 907acb8a..fbf136fe 100644 --- a/engine/debug/debug_menu.asm +++ b/engine/debug/debug_menu.asm @@ -56,7 +56,7 @@ IF DEF(_DEBUG) ; DEBUG ld hl, wd732 - set 1, [hl] + set BIT_DEBUG_MODE, [hl] jp StartNewGameDebug DebugBattlePlayerName: @@ -72,18 +72,23 @@ ELSE ret ENDC -TestBattle: +TestBattle: ; unreferenced except in _DEBUG .loop call GBPalNormal - ; Don't mess around - ; with obedience. + ; Don't mess around with obedience. ld a, 1 << BIT_EARTHBADGE ld [wObtainedBadges], a ld hl, wFlags_D733 set BIT_TEST_BATTLE, [hl] + ; wNumBagItems and wBagItems are not initialized here, + ; and their garbage values happen to act as if EXP_ALL + ; is in the bag at the end of the test battle. + ; pokeyellow fixes this by initializing them with a + ; list of items. + ; Reset the party. ld hl, wPartyCount xor a @@ -91,8 +96,7 @@ TestBattle: dec a ld [hl], a - ; Give the player a - ; level 20 Rhydon. + ; Give the player a level 20 Rhydon. ld a, RHYDON ld [wcf91], a ld a, 20 @@ -102,15 +106,14 @@ TestBattle: ld [wCurMap], a call AddPartyMon - ; Fight against a - ; level 20 Rhydon. + ; Fight against a level 20 Rhydon. ld a, RHYDON ld [wCurOpponent], a predef InitOpponent - ; When the battle ends, - ; do it all again. + ; When the battle ends, do it all again. + ; There are some graphical quirks in SGB mode. ld a, 1 ld [wUpdateSpritesEnabled], a ldh [hAutoBGTransferEnabled], a diff --git a/engine/debug/debug_party.asm b/engine/debug/debug_party.asm index 36eb8e6f..0c76bde1 100644 --- a/engine/debug/debug_party.asm +++ b/engine/debug/debug_party.asm @@ -1,13 +1,5 @@ -; This function is a debugging feature to give the player Tsunekazu Ishihara's -; favorite Pokemon. This is indicated by the overpowered Exeggutor, which -; Ishihara (president of Creatures Inc.) said was his favorite Pokemon in an ABC -; interview on February 8, 2000. -; "Exeggutor is my favorite. That's because I was always using this character -; while I was debugging the program." -; http://www.ign.com/articles/2000/02/09/abc-news-pokamon-chat-transcript - -SetIshiharaTeam: - ld de, IshiharaTeam +SetDebugNewGameParty: ; unreferenced except in _DEBUG + ld de, DebugNewGameParty .loop ld a, [de] cp -1 @@ -20,7 +12,11 @@ SetIshiharaTeam: call AddPartyMon jr .loop -IshiharaTeam: +DebugNewGameParty: ; unreferenced except in _DEBUG + ; Exeggutor is the only debug party member shared with Red, Green, and Japanese Blue. + ; "Tsunekazu Ishihara: Exeggutor is my favorite. That's because I was + ; always using this character while I was debugging the program." + ; From https://web.archive.org/web/20000607152840/http://pocket.ign.com/news/14973.html db EXEGGUTOR, 90 IF DEF(_DEBUG) db MEW, 5 @@ -35,13 +31,13 @@ IF DEF(_DEBUG) ENDC db -1 ; end -DebugStart: +PrepareNewGameDebug: ; dummy except in _DEBUG IF DEF(_DEBUG) xor a ; PLAYER_PARTY_DATA ld [wMonDataLocation], a ; Fly anywhere. - dec a ; $ff + dec a ; $ff (all bits) ld [wTownVisitedFlag], a ld [wTownVisitedFlag + 1], a @@ -49,7 +45,7 @@ IF DEF(_DEBUG) ld a, ~(1 << BIT_EARTHBADGE) ld [wObtainedBadges], a - call SetIshiharaTeam + call SetDebugNewGameParty ; Exeggutor gets four HM moves. ld hl, wPartyMon1Moves diff --git a/engine/menus/main_menu.asm b/engine/menus/main_menu.asm index 024def28..69b3b918 100644 --- a/engine/menus/main_menu.asm +++ b/engine/menus/main_menu.asm @@ -121,7 +121,7 @@ MainMenu: ld [wDestinationMap], a ld hl, wd732 set 2, [hl] ; fly warp or dungeon warp - call SpecialWarpIn + call PrepareForSpecialWarp jp SpecialEnterMap InitOptions: @@ -268,10 +268,10 @@ LinkMenu: ld c, 50 call DelayFrames ld hl, wd732 - res 1, [hl] + res BIT_DEBUG_MODE, [hl] ld a, [wDefaultMap] ld [wDestinationMap], a - call SpecialWarpIn + call PrepareForSpecialWarp ld c, 20 call DelayFrames xor a @@ -308,7 +308,12 @@ LinkCanceledText: StartNewGame: ld hl, wd732 - res 1, [hl] + ; Ensure debug mode is not used when + ; starting a regular new game. + ; Debug mode persists in saved games for + ; both debug and non-debug builds, and is + ; only reset here by the main menu. + res BIT_DEBUG_MODE, [hl] ; fallthrough StartNewGameDebug: call OakSpeech diff --git a/engine/movie/oak_speech/oak_speech.asm b/engine/movie/oak_speech/oak_speech.asm index 3a08372d..4ed4735e 100644 --- a/engine/movie/oak_speech/oak_speech.asm +++ b/engine/movie/oak_speech/oak_speech.asm @@ -3,6 +3,11 @@ PrepareOakSpeech: push af ld a, [wOptions] push af + ; Retrieve BIT_DEBUG_MODE set in DebugMenu for StartNewGameDebug. + ; BUG: StartNewGame carries over bit 5 from previous save files, + ; which causes CheckForceBikeOrSurf to not return. + ; To fix this in debug builds, reset bit 5 here or in StartNewGame. + ; In non-debug builds, the instructions can be removed. ld a, [wd732] push af ld hl, wPlayerName @@ -24,6 +29,7 @@ PrepareOakSpeech: call z, InitOptions ; These debug names are used for StartNewGameDebug. ; TestBattle uses the debug names from DebugMenu. + ; A variant of this process is performed in PrepareTitleScreen. ld hl, DebugNewGamePlayerName ld de, wPlayerName ld bc, NAME_LENGTH @@ -49,15 +55,15 @@ OakSpeech: ld [wcf91], a ld a, 1 ld [wItemQuantity], a - call AddItemToInventory ; give one potion + call AddItemToInventory ld a, [wDefaultMap] ld [wDestinationMap], a - call SpecialWarpIn + call PrepareForSpecialWarp xor a ldh [hTileAnimations], a ld a, [wd732] - bit 1, a ; possibly a debug mode bit - jp nz, .skipChoosingNames + bit BIT_DEBUG_MODE, a + jp nz, .skipSpeech ld de, ProfOakPic lb bc, BANK(ProfOakPic), $00 call IntroDisplayPicCenteredOrUpperRight @@ -93,7 +99,7 @@ OakSpeech: ld hl, IntroduceRivalText call PrintText call ChooseRivalName -.skipChoosingNames +.skipSpeech call GBFadeOutToWhite call ClearScreen ld de, RedPicFront @@ -159,6 +165,7 @@ OakSpeechText1: text_end OakSpeechText2: text_far _OakSpeechText2A + ; BUG: The cry played does not match the sprite displayed. sound_cry_nidorina text_far _OakSpeechText2B text_end diff --git a/engine/movie/title.asm b/engine/movie/title.asm index ad5f6ebf..36a28b0d 100644 --- a/engine/movie/title.asm +++ b/engine/movie/title.asm @@ -1,4 +1,4 @@ -CopyDebugName: +CopyDebugName: ; unused ld bc, NAME_LENGTH jp CopyData @@ -42,10 +42,10 @@ DisplayTitleScreen: ld bc, 5 tiles ld a, BANK(NintendoCopyrightLogoGraphics) call FarCopyData2 - ld hl, GamefreakLogoGraphics + ld hl, GameFreakLogoGraphics ld de, vTitleLogo2 tile (16 + 5) ld bc, 9 tiles - ld a, BANK(GamefreakLogoGraphics) + ld a, BANK(GameFreakLogoGraphics) call FarCopyData2 ld hl, PokemonLogoGraphics ld de, vTitleLogo @@ -378,7 +378,7 @@ LoadCopyrightAndTextBoxTiles: LoadCopyrightTiles: ld de, NintendoCopyrightLogoGraphics ld hl, vChars2 tile $60 - lb bc, BANK(NintendoCopyrightLogoGraphics), (GamefreakLogoGraphicsEnd - NintendoCopyrightLogoGraphics) / $10 + lb bc, BANK(NintendoCopyrightLogoGraphics), (GameFreakLogoGraphicsEnd - NintendoCopyrightLogoGraphics) / $10 call CopyVideoData hlcoord 2, 7 ld de, CopyrightTextString diff --git a/engine/overworld/special_warps.asm b/engine/overworld/special_warps.asm index 61356a03..c538938b 100644 --- a/engine/overworld/special_warps.asm +++ b/engine/overworld/special_warps.asm @@ -1,60 +1,60 @@ -SpecialWarpIn:: +PrepareForSpecialWarp:: call LoadSpecialWarpData predef LoadTilesetHeader ld hl, wd732 bit 2, [hl] ; dungeon warp or fly warp? res 2, [hl] - jr z, .next -; if dungeon warp or fly warp + jr z, .debugNewGameWarp ld a, [wDestinationMap] - jr .next2 + jr .next +.debugNewGameWarp + bit BIT_DEBUG_MODE, [hl] + jr z, .setNewGameMatWarp ; apply to StartNewGameDebug only + call PrepareNewGameDebug +.setNewGameMatWarp + ; This is called by OakSpeech during StartNewGame and + ; loads the first warp event for the specified map index. + ld a, PALLET_TOWN .next - bit 1, [hl] - jr z, .next3 - call DebugStart -.next3 - ld a, 0 -.next2 ld b, a ld a, [wd72d] and a - jr nz, .next4 + jr nz, .next2 ld a, b -.next4 +.next2 ld hl, wd732 - bit 4, [hl] ; dungeon warp? + bit 4, [hl] ; dungeon warp ret nz -; if not dungeon warp ld [wLastMap], a ret -; gets the map ID, tile block map view pointer, tileset, and coordinates LoadSpecialWarpData: ld a, [wd72d] cp TRADE_CENTER jr nz, .notTradeCenter - ld hl, TradeCenterSpec1 + ld hl, TradeCenterPlayerWarp ldh a, [hSerialConnectionStatus] - cp USING_INTERNAL_CLOCK ; which gameboy is clocking determines who is on the left and who is on the right + cp USING_INTERNAL_CLOCK jr z, .copyWarpData - ld hl, TradeCenterSpec2 + ld hl, TradeCenterFriendWarp jr .copyWarpData .notTradeCenter cp COLOSSEUM jr nz, .notColosseum - ld hl, ColosseumSpec1 + ld hl, ColosseumPlayerWarp ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK jr z, .copyWarpData - ld hl, ColosseumSpec2 + ld hl, ColosseumFriendWarp jr .copyWarpData .notColosseum ld a, [wd732] - bit 1, a - jr nz, .notFirstMap + bit BIT_DEBUG_MODE, a + ; warp to wLastMap (PALLET_TOWN) for StartNewGameDebug + jr nz, .notNewGameWarp bit 2, a - jr nz, .notFirstMap - ld hl, FirstMapSpec + jr nz, .notNewGameWarp + ld hl, NewGameWarp .copyWarpData ld de, wCurMap ld c, $7 @@ -68,18 +68,17 @@ LoadSpecialWarpData: ld [wCurMapTileset], a xor a jr .done -.notFirstMap +.notNewGameWarp ld a, [wLastMap] ; this value is overwritten before it's ever read ld hl, wd732 - bit 4, [hl] ; used dungeon warp (jumped down hole/waterfall)? - jr nz, .usedDunegonWarp - bit 6, [hl] ; return to last pokemon center (or player's house)? + bit 4, [hl] ; dungeon warp + jr nz, .usedDungeonWarp + bit 6, [hl] ; blacked out res 6, [hl] jr z, .otherDestination -; return to last pokemon center or player's house ld a, [wLastBlackoutMap] jr .usedFlyWarp -.usedDunegonWarp +.usedDungeonWarp ld hl, wd72d res 4, [hl] ld a, [wDungeonWarpDestinationMap] @@ -142,7 +141,7 @@ LoadSpecialWarpData: .done ld [wYOffsetSinceLastSpecialWarp], a ld [wXOffsetSinceLastSpecialWarp], a - ld a, $ff ; the player's coordinates have already been updated using a special warp, so don't use any of the normal warps + ld a, -1 ; exclude normal warps ld [wDestinationWarpID], a ret diff --git a/gfx/font.asm b/gfx/font.asm index fc2aff4f..daff3632 100644 --- a/gfx/font.asm +++ b/gfx/font.asm @@ -15,8 +15,8 @@ BattleHudTiles3End: NintendoCopyrightLogoGraphics: INCBIN "gfx/splash/copyright.2bpp" -GamefreakLogoGraphics: INCBIN "gfx/title/gamefreak_inc.2bpp" -GamefreakLogoGraphicsEnd: +GameFreakLogoGraphics: INCBIN "gfx/title/gamefreak_inc.2bpp" +GameFreakLogoGraphicsEnd: TextBoxGraphics:: INCBIN "gfx/font/font_extra.2bpp" TextBoxGraphicsEnd:: diff --git a/home/npc_movement.asm b/home/npc_movement.asm index a3367f9a..23a85427 100644 --- a/home/npc_movement.asm +++ b/home/npc_movement.asm @@ -50,10 +50,12 @@ RunNPCMovementScript:: EndNPCMovementScript:: farjp _EndNPCMovementScript -DebugPressedOrHeldB:: +DebugPressedOrHeldB:: ; dummy except in _DEBUG +; This is used to skip Trainer battles, the +; Safari Game step counter, and some NPC scripts. IF DEF(_DEBUG) ld a, [wd732] - bit 1, a + bit BIT_DEBUG_MODE, a ret z ldh a, [hJoyHeld] bit BIT_B_BUTTON, a diff --git a/home/overworld.asm b/home/overworld.asm index be1e6b24..1ebc794b 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -117,7 +117,7 @@ OverworldLoopLessDelay:: predef LoadSAV ld a, [wCurMap] ld [wDestinationMap], a - call SpecialWarpIn + call PrepareForSpecialWarp ld a, [wCurMap] call SwitchToMapRomBank ; switch to the ROM bank of the current map ld hl, wCurMapTileset @@ -762,11 +762,11 @@ HandleBlackOut:: call StopMusic ld hl, wd72e res 5, [hl] - ld a, BANK(ResetStatusAndHalveMoneyOnBlackout) ; also BANK(SpecialWarpIn) and BANK(SpecialEnterMap) + ld a, BANK(ResetStatusAndHalveMoneyOnBlackout) ; also BANK(PrepareForSpecialWarp) and BANK(SpecialEnterMap) ldh [hLoadedROMBank], a ld [MBC1RomBank], a call ResetStatusAndHalveMoneyOnBlackout - call SpecialWarpIn + call PrepareForSpecialWarp call PlayDefaultMusicFadeOutCurrent jp SpecialEnterMap @@ -793,10 +793,10 @@ HandleFlyWarpOrDungeonWarp:: set 2, [hl] ; fly warp or dungeon warp res 5, [hl] ; forced to ride bike call LeaveMapAnim - ld a, BANK(SpecialWarpIn) + ld a, BANK(PrepareForSpecialWarp) ldh [hLoadedROMBank], a ld [MBC1RomBank], a - call SpecialWarpIn + call PrepareForSpecialWarp jp SpecialEnterMap LeaveMapAnim:: diff --git a/home/text.asm b/home/text.asm index 836f3986..9462c749 100644 --- a/home/text.asm +++ b/home/text.asm @@ -111,10 +111,14 @@ NextChar:: inc de jp PlaceNextChar -NullChar:: +NullChar:: ; unused ld b, h ld c, l pop hl + ; A "" character in a printed string + ; displays an error message with the current value + ; of hSpriteIndexOrTextID in decimal format. + ; This is a debugging leftover. ld de, TextIDErrorText dec de ret diff --git a/home/trainers.asm b/home/trainers.asm index 4dc63fef..e0195729 100644 --- a/home/trainers.asm +++ b/home/trainers.asm @@ -135,7 +135,9 @@ ENDC ld a, [wSpriteIndex] cp $ff jr nz, .trainerEngaging +IF DEF(_DEBUG) .trainerNotEngaging +ENDC xor a ld [wSpriteIndex], a ld [wTrainerHeaderFlagBit], a diff --git a/ram/wram.asm b/ram/wram.asm index ac382f79..0d7de416 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -420,6 +420,7 @@ wAddedToParty:: ; The purpose of these flags is to track which mons levelled up during the ; current battle at the end of the battle when evolution occurs. ; Other methods of evolution simply set it by calling TryEvolvingMon. +wMiscBattleData:: wCanEvolveFlags:: db wForceEvolution:: db @@ -433,8 +434,7 @@ wAILayer2Encouragement:: db wPlayerSubstituteHP:: db wEnemySubstituteHP:: db -; The player's selected move during a test battle. -; InitBattleVariables sets it to the move Pound. +; used for TestBattle (unused in non-debug builds) wTestBattlePlayerSelectedMove:: db ds 1 @@ -502,6 +502,7 @@ wEnemyNumHits:: ; db wEnemyBideAccumulatedDamage:: dw ds 8 +wMiscBattleDataEnd:: ENDU ; This union spans 39 bytes. @@ -2155,17 +2156,7 @@ wd730:: db ds 1 ; bit 0: play time being counted -; bit 1: remnant of debug mode; only set by the debug build. -; if it is set: -; 1. skips most of Prof. Oak's speech, and uses NINTEN as the player's name and SONY as the rival's name -; 2. does not have the player start in floor two of the player's house (instead sending them to [wLastMap]) -; 3. allows wild battles to be avoided by holding down B -; furthermore, in the debug build: -; 4. allows trainers to be avoided by holding down B -; 5. skips Safari Zone step counter by holding down B -; 6. skips the NPC who blocks Route 3 before beating Brock by holding down B -; 7. skips Cerulean City rival battle by holding down B -; 8. skips Pokémon Tower rival battle by holding down B +; bit 1: debug mode (unused and incomplete in non-debug builds) ; bit 2: the target warp is a fly warp (bit 3 set or blacked out) or a dungeon warp (bit 4 set) ; bit 3: used warp pad, escape rope, dig, teleport, or fly, so the target warp is a "fly warp" ; bit 4: jumped into hole (Pokemon Mansion, Seafoam Islands, Victory Road) or went down waterfall (Seafoam Islands), so the target warp is a "dungeon warp" @@ -2173,7 +2164,7 @@ wd730:: db ; bit 6: map destination is [wLastBlackoutMap] (usually the last used pokemon center, but could be the player's house) wd732:: db -; bit 0: running a test battle +; bit 0: running a test battle (unused in non-debug builds) ; bit 1: prevent music from changing when entering new map ; bit 2: skip the joypad check in CheckWarpsNoCollision (used for the forced warp down the waterfall in the Seafoam Islands) ; bit 3: trainer wants to battle diff --git a/scripts/HallOfFame.asm b/scripts/HallOfFame.asm index 9fc7da18..523567df 100644 --- a/scripts/HallOfFame.asm +++ b/scripts/HallOfFame.asm @@ -32,7 +32,7 @@ HallOfFameResetEventsAndSaveScript: ld hl, wFlags_D733 res 1, [hl] inc hl - set 0, [hl] + set BIT_TEST_BATTLE, [hl] ; debug, unused? xor a ; SCRIPT_*_DEFAULT ld hl, wLoreleisRoomCurScript ld [hli], a ; wLoreleisRoomCurScript -- cgit v1.3.1-sl0p From 83b373ad734fb0bf4b476b0f38dbeec8ea205f19 Mon Sep 17 00:00:00 2001 From: Linus Unnebäck Date: Fri, 17 Nov 2023 19:50:27 +0100 Subject: Add constants for wMapConnections bits and group map header wram labels * Add constants for wMapConnections bits * Apply Vulcandth and Rangi42 feedback --------- Co-authored-by: vulcandth --- constants/map_data_constants.asm | 7 +++++++ engine/menus/save.asm | 2 +- home/overworld.asm | 21 ++++++++++----------- home/predef_text.asm | 10 +++++----- home/text_script.asm | 2 +- ram/wram.asm | 15 +++++++-------- scripts/OaksLab.asm | 4 ++-- scripts/ViridianMart.asm | 4 ++-- 8 files changed, 35 insertions(+), 30 deletions(-) (limited to 'constants') diff --git a/constants/map_data_constants.asm b/constants/map_data_constants.asm index 1877e6a0..b28b3d79 100644 --- a/constants/map_data_constants.asm +++ b/constants/map_data_constants.asm @@ -3,6 +3,13 @@ DEF MAP_BORDER EQU 3 ; connection directions + const_def + const EAST_F + const WEST_F + const SOUTH_F + const NORTH_F + +; wCurMapConnections const_def shift_const EAST ; 1 shift_const WEST ; 2 diff --git a/engine/menus/save.asm b/engine/menus/save.asm index b74b9058..1857d6f5 100644 --- a/engine/menus/save.asm +++ b/engine/menus/save.asm @@ -372,7 +372,7 @@ ChangeBox:: call GetBoxSRAMLocation ld de, wBoxDataStart call CopyBoxToOrFromSRAM ; copy new box from SRAM to WRAM - ld hl, wMapTextPtr + ld hl, wCurMapTextPtr ld de, wChangeBoxSavedMapTextPointer ld a, [hli] ld [de], a diff --git a/home/overworld.asm b/home/overworld.asm index 1ebc794b..defa1728 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -910,9 +910,9 @@ LoadTileBlockMap:: add hl, bc ld c, MAP_BORDER add hl, bc ; this puts us past the (west) border - ld a, [wMapDataPtr] ; tile map pointer + ld a, [wCurMapDataPtr] ; tile map pointer ld e, a - ld a, [wMapDataPtr + 1] + ld a, [wCurMapDataPtr + 1] ld d, a ; de = tile map pointer ld a, [wCurMapHeight] ld b, a @@ -1966,7 +1966,7 @@ RunMapScript:: call RunNPCMovementScript ld a, [wCurMap] ; current map number call SwitchToMapRomBank ; change to the ROM bank the map's data is in - ld hl, wMapScriptPtr + ld hl, wCurMapScriptPtr ld a, [hli] ld h, [hl] ld l, a @@ -2035,9 +2035,8 @@ LoadMapHeader:: ld a, [hli] ld h, [hl] ld l, a ; hl = base of map header -; copy the first 10 bytes (the fixed area) of the map data to D367-D370 - ld de, wCurMapTileset - ld c, $0a + ld de, wCurMapHeader + ld c, wCurMapHeaderEnd - wCurMapHeader .copyFixedHeaderLoop ld a, [hli] ld [de], a @@ -2051,25 +2050,25 @@ LoadMapHeader:: ld [wWestConnectedMap], a ld [wEastConnectedMap], a ; copy connection data (if any) to WRAM - ld a, [wMapConnections] + ld a, [wCurMapConnections] ld b, a .checkNorth - bit 3, b + bit NORTH_F, b jr z, .checkSouth ld de, wNorthConnectionHeader call CopyMapConnectionHeader .checkSouth - bit 2, b + bit SOUTH_F, b jr z, .checkWest ld de, wSouthConnectionHeader call CopyMapConnectionHeader .checkWest - bit 1, b + bit WEST_F, b jr z, .checkEast ld de, wWestConnectionHeader call CopyMapConnectionHeader .checkEast - bit 0, b + bit EAST_F, b jr z, .getObjectDataPointer ld de, wEastConnectionHeader call CopyMapConnectionHeader diff --git a/home/predef_text.asm b/home/predef_text.asm index b494a2c8..1537ad5b 100644 --- a/home/predef_text.asm +++ b/home/predef_text.asm @@ -7,7 +7,7 @@ PrintPredefTextID:: call DisplayTextID RestoreMapTextPointer:: - ld hl, wMapTextPtr + ld hl, wCurMapTextPtr ldh a, [hSavedMapTextPtr] ld [hli], a ldh a, [hSavedMapTextPtr + 1] @@ -15,14 +15,14 @@ RestoreMapTextPointer:: ret SetMapTextPointer:: - ld a, [wMapTextPtr] + ld a, [wCurMapTextPtr] ldh [hSavedMapTextPtr], a - ld a, [wMapTextPtr + 1] + ld a, [wCurMapTextPtr + 1] ldh [hSavedMapTextPtr + 1], a ld a, l - ld [wMapTextPtr], a + ld [wCurMapTextPtr], a ld a, h - ld [wMapTextPtr + 1], a + ld [wCurMapTextPtr + 1], a ret INCLUDE "data/text_predef_pointers.asm" diff --git a/home/text_script.asm b/home/text_script.asm index 9e1ba275..ceae1a0a 100644 --- a/home/text_script.asm +++ b/home/text_script.asm @@ -13,7 +13,7 @@ DisplayTextID:: .skipSwitchToMapBank ld a, 30 ; half a second ldh [hFrameCounter], a ; used as joypad poll timer - ld hl, wMapTextPtr + ld hl, wCurMapTextPtr ld a, [hli] ld h, [hl] ld l, a ; hl = map text pointer diff --git a/ram/wram.asm b/ram/wram.asm index df286676..753a9678 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -1795,17 +1795,16 @@ wLastMap:: db wUnusedD366:: db +wCurMapHeader:: wCurMapTileset:: db - -; blocks -wCurMapHeight:: db +wCurMapHeight:: db wCurMapWidth:: db +wCurMapDataPtr:: dw +wCurMapTextPtr:: dw +wCurMapScriptPtr:: dw +wCurMapConnections:: db +wCurMapHeaderEnd:: -wMapDataPtr:: dw -wMapTextPtr:: dw -wMapScriptPtr:: dw - -wMapConnections:: db wNorthConnectionHeader:: map_connection_struct wNorth wSouthConnectionHeader:: map_connection_struct wSouth wWestConnectionHeader:: map_connection_struct wWest diff --git a/scripts/OaksLab.asm b/scripts/OaksLab.asm index 407ee3e5..30ee93ed 100644 --- a/scripts/OaksLab.asm +++ b/scripts/OaksLab.asm @@ -715,9 +715,9 @@ OaksLabCalcRivalMovementScript: OaksLabLoadTextPointers2Script: ld hl, OaksLab_TextPointers2 ld a, l - ld [wMapTextPtr], a + ld [wCurMapTextPtr], a ld a, h - ld [wMapTextPtr + 1], a + ld [wCurMapTextPtr + 1], a ret OaksLab_TextPointers: diff --git a/scripts/ViridianMart.asm b/scripts/ViridianMart.asm index 2e78a036..8f91afd6 100644 --- a/scripts/ViridianMart.asm +++ b/scripts/ViridianMart.asm @@ -14,9 +14,9 @@ ViridianMartCheckParcelDeliveredScript: ld hl, ViridianMart_TextPointers2 .done ld a, l - ld [wMapTextPtr], a + ld [wCurMapTextPtr], a ld a, h - ld [wMapTextPtr+1], a + ld [wCurMapTextPtr+1], a ret ViridianMart_ScriptPointers: -- cgit v1.3.1-sl0p From da382ed9f4a8c34b78a831f07b82dbd7749da2b5 Mon Sep 17 00:00:00 2001 From: vulcandth Date: Fri, 17 Nov 2023 22:08:15 -0600 Subject: Move charmap.asm to constants/ --- charmap.asm | 386 -------------------------------------------------- constants/charmap.asm | 386 ++++++++++++++++++++++++++++++++++++++++++++++++++ includes.asm | 3 +- 3 files changed, 387 insertions(+), 388 deletions(-) delete mode 100644 charmap.asm create mode 100644 constants/charmap.asm (limited to 'constants') diff --git a/charmap.asm b/charmap.asm deleted file mode 100644 index f0967978..00000000 --- a/charmap.asm +++ /dev/null @@ -1,386 +0,0 @@ -; $00-$17 are TX_* constants (see macros/scripts/text.asm) - -; Control characters (see home/text.asm) - - charmap "", $00 - charmap "", $49 - charmap "", $4a ; "" - charmap "<_CONT>", $4b ; implements "" - charmap "", $4c - charmap "", $4e - charmap "", $4f - charmap "@", $50 ; string terminator - charmap "", $51 - charmap "", $52 ; wPlayerName - charmap "", $53 ; wRivalName - charmap "#", $54 ; "POKé" - charmap "", $55 - charmap "<……>", $56 ; "……" - charmap "", $57 - charmap "", $58 - charmap "", $59 - charmap "", $5a - charmap "", $5b ; "PC" - charmap "", $5c ; "TM" - charmap "", $5d ; "TRAINER" - charmap "", $5e ; "ROCKET" - charmap "", $5f - -; Actual characters (from gfx/font/font_extra.png) - - charmap "", $60 ; unused - charmap "", $61 ; unused - charmap "", $62 ; unused - charmap "", $63 ; unused - charmap "", $64 ; unused - charmap "", $65 ; unused - charmap "", $66 ; unused - charmap "", $67 ; unused - charmap "", $68 ; unused - charmap "", $69 - charmap "", $6a - charmap "", $6b ; unused - charmap "", $6c ; unused - charmap "", $6d ; colon with tinier dots than ":" - charmap "ぃ", $6e ; hiragana small i, unused - charmap "ぅ", $6f ; hiragana small u, unused - charmap "‘", $70 ; opening single quote - charmap "’", $71 ; closing single quote - charmap "“", $72 ; opening quote - charmap "”", $73 ; closing quote - charmap "·", $74 ; middle dot, unused - charmap "…", $75 ; ellipsis - charmap "ぁ", $76 ; hiragana small a, unused - charmap "ぇ", $77 ; hiragana small e, unused - charmap "ぉ", $78 ; hiragana small o, unused - - charmap "┌", $79 - charmap "─", $7a - charmap "┐", $7b - charmap "│", $7c - charmap "└", $7d - charmap "┘", $7e - charmap " ", $7f - -; Actual characters (from gfx/font/font_battle_extra.png) - - charmap "", $6e - - charmap "", $70 ; narrow "to" - - charmap "『", $72 ; Japanese opening quote, unused - charmap "", $73 - charmap "№", $74 - -; Actual characters (from other graphics files) - - ; needed for ShowPokedexDataInternal (see engine/menus/pokedex.asm) - charmap "′", $60 ; gfx/pokedex/pokedex.png - charmap "″", $61 ; gfx/pokedex/pokedex.png - - ; needed for StatusScreen (see engine/pokemon/status_screen.asm) - charmap "", $72 ; gfx/font/P.1bpp - - ; needed for LoadTownMap_Fly (see engine/items/town_map.asm) - charmap "▲", $ed ; gfx/town_map/up_arrow.1bpp - - ; needed for PrintAlphabet (see engine/menus/naming_screen.asm) - charmap "", $f0 ; gfx/font/ED.1bpp - -; Actual characters (from gfx/font/font.png) - - charmap "A", $80 - charmap "B", $81 - charmap "C", $82 - charmap "D", $83 - charmap "E", $84 - charmap "F", $85 - charmap "G", $86 - charmap "H", $87 - charmap "I", $88 - charmap "J", $89 - charmap "K", $8a - charmap "L", $8b - charmap "M", $8c - charmap "N", $8d - charmap "O", $8e - charmap "P", $8f - charmap "Q", $90 - charmap "R", $91 - charmap "S", $92 - charmap "T", $93 - charmap "U", $94 - charmap "V", $95 - charmap "W", $96 - charmap "X", $97 - charmap "Y", $98 - charmap "Z", $99 - - charmap "(", $9a - charmap ")", $9b - charmap ":", $9c - charmap ";", $9d - charmap "[", $9e - charmap "]", $9f - - charmap "a", $a0 - charmap "b", $a1 - charmap "c", $a2 - charmap "d", $a3 - charmap "e", $a4 - charmap "f", $a5 - charmap "g", $a6 - charmap "h", $a7 - charmap "i", $a8 - charmap "j", $a9 - charmap "k", $aa - charmap "l", $ab - charmap "m", $ac - charmap "n", $ad - charmap "o", $ae - charmap "p", $af - charmap "q", $b0 - charmap "r", $b1 - charmap "s", $b2 - charmap "t", $b3 - charmap "u", $b4 - charmap "v", $b5 - charmap "w", $b6 - charmap "x", $b7 - charmap "y", $b8 - charmap "z", $b9 - - charmap "é", $ba - charmap "'d", $bb - charmap "'l", $bc - charmap "'s", $bd - charmap "'t", $be - charmap "'v", $bf - - charmap "'", $e0 - charmap "", $e1 - charmap "", $e2 - charmap "-", $e3 - - charmap "'r", $e4 - charmap "'m", $e5 - - charmap "?", $e6 - charmap "!", $e7 - charmap ".", $e8 - - charmap "ァ", $e9 ; katakana small a, unused - charmap "ゥ", $ea ; katakana small u, unused - charmap "ェ", $eb ; katakana small e, unused - - charmap "▷", $ec - charmap "▶", $ed - charmap "▼", $ee - charmap "♂", $ef - charmap "¥", $f0 - charmap "×", $f1 - charmap "", $f2 ; decimal point; same as "." in English - charmap "/", $f3 - charmap ",", $f4 - charmap "♀", $f5 - - charmap "0", $f6 - charmap "1", $f7 - charmap "2", $f8 - charmap "3", $f9 - charmap "4", $fa - charmap "5", $fb - charmap "6", $fc - charmap "7", $fd - charmap "8", $fe - charmap "9", $ff - - -; Japanese kana, for those bits of text that were not translated to English - - charmap "ガ", $05 - charmap "ギ", $06 - charmap "グ", $07 - charmap "ゲ", $08 - charmap "ゴ", $09 - charmap "ザ", $0a - charmap "ジ", $0b - charmap "ズ", $0c - charmap "ゼ", $0d - charmap "ゾ", $0e - charmap "ダ", $0f - charmap "ヂ", $10 - charmap "ヅ", $11 - charmap "デ", $12 - charmap "ド", $13 - - charmap "バ", $19 - charmap "ビ", $1a - charmap "ブ", $1b - charmap "ボ", $1c - - charmap "が", $26 - charmap "ぎ", $27 - charmap "ぐ", $28 - charmap "げ", $29 - charmap "ご", $2a - charmap "ざ", $2b - charmap "じ", $2c - charmap "ず", $2d - charmap "ぜ", $2e - charmap "ぞ", $2f - charmap "だ", $30 - charmap "ぢ", $31 - charmap "づ", $32 - charmap "で", $33 - charmap "ど", $34 - - charmap "ば", $3a - charmap "び", $3b - charmap "ぶ", $3c - charmap "べ", $3d - charmap "ぼ", $3e - - charmap "パ", $40 - charmap "ピ", $41 - charmap "プ", $42 - charmap "ポ", $43 - charmap "ぱ", $44 - charmap "ぴ", $45 - charmap "ぷ", $46 - charmap "ぺ", $47 - charmap "ぽ", $48 - - charmap "「", $70 - charmap "」", $71 - charmap "』", $73 - charmap "⋯", $75 - - charmap " ", $7f - - charmap "ア", $80 - charmap "イ", $81 - charmap "ウ", $82 - charmap "エ", $83 - charmap "オ", $84 - charmap "カ", $85 - charmap "キ", $86 - charmap "ク", $87 - charmap "ケ", $88 - charmap "コ", $89 - charmap "サ", $8a - charmap "シ", $8b - charmap "ス", $8c - charmap "セ", $8d - charmap "ソ", $8e - charmap "タ", $8f - charmap "チ", $90 - charmap "ツ", $91 - charmap "テ", $92 - charmap "ト", $93 - charmap "ナ", $94 - charmap "ニ", $95 - charmap "ヌ", $96 - charmap "ネ", $97 - charmap "ノ", $98 - charmap "ハ", $99 - charmap "ヒ", $9a - charmap "フ", $9b - charmap "ホ", $9c - charmap "マ", $9d - charmap "ミ", $9e - charmap "ム", $9f - charmap "メ", $a0 - charmap "モ", $a1 - charmap "ヤ", $a2 - charmap "ユ", $a3 - charmap "ヨ", $a4 - charmap "ラ", $a5 - charmap "ル", $a6 - charmap "レ", $a7 - charmap "ロ", $a8 - charmap "ワ", $a9 - charmap "ヲ", $aa - charmap "ン", $ab - charmap "ッ", $ac - charmap "ャ", $ad - charmap "ュ", $ae - charmap "ョ", $af - charmap "ィ", $b0 - - charmap "あ", $b1 - charmap "い", $b2 - charmap "う", $b3 - charmap "え", $b4 - charmap "お", $b5 - charmap "か", $b6 - charmap "き", $b7 - charmap "く", $b8 - charmap "け", $b9 - charmap "こ", $ba - charmap "さ", $bb - charmap "し", $bc - charmap "す", $bd - charmap "せ", $be - charmap "そ", $bf - charmap "た", $c0 - charmap "ち", $c1 - charmap "つ", $c2 - charmap "て", $c3 - charmap "と", $c4 - charmap "な", $c5 - charmap "に", $c6 - charmap "ぬ", $c7 - charmap "ね", $c8 - charmap "の", $c9 - charmap "は", $ca - charmap "ひ", $cb - charmap "ふ", $cc - charmap "へ", $cd - charmap "ほ", $ce - charmap "ま", $cf - charmap "み", $d0 - charmap "む", $d1 - charmap "め", $d2 - charmap "も", $d3 - charmap "や", $d4 - charmap "ゆ", $d5 - charmap "よ", $d6 - charmap "ら", $d7 - charmap "り", $d8 - charmap "る", $d9 - charmap "れ", $da - charmap "ろ", $db - charmap "わ", $dc - charmap "を", $dd - charmap "ん", $de - charmap "っ", $df - charmap "ゃ", $e0 - charmap "ゅ", $e1 - charmap "ょ", $e2 - - charmap "ー", $e3 - charmap "゚", $e4 - charmap "゙", $e5 - - charmap "?", $e6 - charmap "!", $e7 - charmap "。", $e8 - - charmap "円", $f0 - - charmap ".", $f2 - charmap "/", $f3 - - charmap "ォ", $f4 - - charmap "0", $f6 - charmap "1", $f7 - charmap "2", $f8 - charmap "3", $f9 - charmap "4", $fa - charmap "5", $fb - charmap "6", $fc - charmap "7", $fd - charmap "8", $fe - charmap "9", $ff diff --git a/constants/charmap.asm b/constants/charmap.asm new file mode 100644 index 00000000..f0967978 --- /dev/null +++ b/constants/charmap.asm @@ -0,0 +1,386 @@ +; $00-$17 are TX_* constants (see macros/scripts/text.asm) + +; Control characters (see home/text.asm) + + charmap "", $00 + charmap "", $49 + charmap "", $4a ; "" + charmap "<_CONT>", $4b ; implements "" + charmap "", $4c + charmap "", $4e + charmap "", $4f + charmap "@", $50 ; string terminator + charmap "", $51 + charmap "", $52 ; wPlayerName + charmap "", $53 ; wRivalName + charmap "#", $54 ; "POKé" + charmap "", $55 + charmap "<……>", $56 ; "……" + charmap "", $57 + charmap "", $58 + charmap "", $59 + charmap "", $5a + charmap "", $5b ; "PC" + charmap "", $5c ; "TM" + charmap "", $5d ; "TRAINER" + charmap "", $5e ; "ROCKET" + charmap "", $5f + +; Actual characters (from gfx/font/font_extra.png) + + charmap "", $60 ; unused + charmap "", $61 ; unused + charmap "", $62 ; unused + charmap "", $63 ; unused + charmap "", $64 ; unused + charmap "", $65 ; unused + charmap "", $66 ; unused + charmap "", $67 ; unused + charmap "", $68 ; unused + charmap "", $69 + charmap "", $6a + charmap "", $6b ; unused + charmap "", $6c ; unused + charmap "", $6d ; colon with tinier dots than ":" + charmap "ぃ", $6e ; hiragana small i, unused + charmap "ぅ", $6f ; hiragana small u, unused + charmap "‘", $70 ; opening single quote + charmap "’", $71 ; closing single quote + charmap "“", $72 ; opening quote + charmap "”", $73 ; closing quote + charmap "·", $74 ; middle dot, unused + charmap "…", $75 ; ellipsis + charmap "ぁ", $76 ; hiragana small a, unused + charmap "ぇ", $77 ; hiragana small e, unused + charmap "ぉ", $78 ; hiragana small o, unused + + charmap "┌", $79 + charmap "─", $7a + charmap "┐", $7b + charmap "│", $7c + charmap "└", $7d + charmap "┘", $7e + charmap " ", $7f + +; Actual characters (from gfx/font/font_battle_extra.png) + + charmap "", $6e + + charmap "", $70 ; narrow "to" + + charmap "『", $72 ; Japanese opening quote, unused + charmap "", $73 + charmap "№", $74 + +; Actual characters (from other graphics files) + + ; needed for ShowPokedexDataInternal (see engine/menus/pokedex.asm) + charmap "′", $60 ; gfx/pokedex/pokedex.png + charmap "″", $61 ; gfx/pokedex/pokedex.png + + ; needed for StatusScreen (see engine/pokemon/status_screen.asm) + charmap "", $72 ; gfx/font/P.1bpp + + ; needed for LoadTownMap_Fly (see engine/items/town_map.asm) + charmap "▲", $ed ; gfx/town_map/up_arrow.1bpp + + ; needed for PrintAlphabet (see engine/menus/naming_screen.asm) + charmap "", $f0 ; gfx/font/ED.1bpp + +; Actual characters (from gfx/font/font.png) + + charmap "A", $80 + charmap "B", $81 + charmap "C", $82 + charmap "D", $83 + charmap "E", $84 + charmap "F", $85 + charmap "G", $86 + charmap "H", $87 + charmap "I", $88 + charmap "J", $89 + charmap "K", $8a + charmap "L", $8b + charmap "M", $8c + charmap "N", $8d + charmap "O", $8e + charmap "P", $8f + charmap "Q", $90 + charmap "R", $91 + charmap "S", $92 + charmap "T", $93 + charmap "U", $94 + charmap "V", $95 + charmap "W", $96 + charmap "X", $97 + charmap "Y", $98 + charmap "Z", $99 + + charmap "(", $9a + charmap ")", $9b + charmap ":", $9c + charmap ";", $9d + charmap "[", $9e + charmap "]", $9f + + charmap "a", $a0 + charmap "b", $a1 + charmap "c", $a2 + charmap "d", $a3 + charmap "e", $a4 + charmap "f", $a5 + charmap "g", $a6 + charmap "h", $a7 + charmap "i", $a8 + charmap "j", $a9 + charmap "k", $aa + charmap "l", $ab + charmap "m", $ac + charmap "n", $ad + charmap "o", $ae + charmap "p", $af + charmap "q", $b0 + charmap "r", $b1 + charmap "s", $b2 + charmap "t", $b3 + charmap "u", $b4 + charmap "v", $b5 + charmap "w", $b6 + charmap "x", $b7 + charmap "y", $b8 + charmap "z", $b9 + + charmap "é", $ba + charmap "'d", $bb + charmap "'l", $bc + charmap "'s", $bd + charmap "'t", $be + charmap "'v", $bf + + charmap "'", $e0 + charmap "", $e1 + charmap "", $e2 + charmap "-", $e3 + + charmap "'r", $e4 + charmap "'m", $e5 + + charmap "?", $e6 + charmap "!", $e7 + charmap ".", $e8 + + charmap "ァ", $e9 ; katakana small a, unused + charmap "ゥ", $ea ; katakana small u, unused + charmap "ェ", $eb ; katakana small e, unused + + charmap "▷", $ec + charmap "▶", $ed + charmap "▼", $ee + charmap "♂", $ef + charmap "¥", $f0 + charmap "×", $f1 + charmap "", $f2 ; decimal point; same as "." in English + charmap "/", $f3 + charmap ",", $f4 + charmap "♀", $f5 + + charmap "0", $f6 + charmap "1", $f7 + charmap "2", $f8 + charmap "3", $f9 + charmap "4", $fa + charmap "5", $fb + charmap "6", $fc + charmap "7", $fd + charmap "8", $fe + charmap "9", $ff + + +; Japanese kana, for those bits of text that were not translated to English + + charmap "ガ", $05 + charmap "ギ", $06 + charmap "グ", $07 + charmap "ゲ", $08 + charmap "ゴ", $09 + charmap "ザ", $0a + charmap "ジ", $0b + charmap "ズ", $0c + charmap "ゼ", $0d + charmap "ゾ", $0e + charmap "ダ", $0f + charmap "ヂ", $10 + charmap "ヅ", $11 + charmap "デ", $12 + charmap "ド", $13 + + charmap "バ", $19 + charmap "ビ", $1a + charmap "ブ", $1b + charmap "ボ", $1c + + charmap "が", $26 + charmap "ぎ", $27 + charmap "ぐ", $28 + charmap "げ", $29 + charmap "ご", $2a + charmap "ざ", $2b + charmap "じ", $2c + charmap "ず", $2d + charmap "ぜ", $2e + charmap "ぞ", $2f + charmap "だ", $30 + charmap "ぢ", $31 + charmap "づ", $32 + charmap "で", $33 + charmap "ど", $34 + + charmap "ば", $3a + charmap "び", $3b + charmap "ぶ", $3c + charmap "べ", $3d + charmap "ぼ", $3e + + charmap "パ", $40 + charmap "ピ", $41 + charmap "プ", $42 + charmap "ポ", $43 + charmap "ぱ", $44 + charmap "ぴ", $45 + charmap "ぷ", $46 + charmap "ぺ", $47 + charmap "ぽ", $48 + + charmap "「", $70 + charmap "」", $71 + charmap "』", $73 + charmap "⋯", $75 + + charmap " ", $7f + + charmap "ア", $80 + charmap "イ", $81 + charmap "ウ", $82 + charmap "エ", $83 + charmap "オ", $84 + charmap "カ", $85 + charmap "キ", $86 + charmap "ク", $87 + charmap "ケ", $88 + charmap "コ", $89 + charmap "サ", $8a + charmap "シ", $8b + charmap "ス", $8c + charmap "セ", $8d + charmap "ソ", $8e + charmap "タ", $8f + charmap "チ", $90 + charmap "ツ", $91 + charmap "テ", $92 + charmap "ト", $93 + charmap "ナ", $94 + charmap "ニ", $95 + charmap "ヌ", $96 + charmap "ネ", $97 + charmap "ノ", $98 + charmap "ハ", $99 + charmap "ヒ", $9a + charmap "フ", $9b + charmap "ホ", $9c + charmap "マ", $9d + charmap "ミ", $9e + charmap "ム", $9f + charmap "メ", $a0 + charmap "モ", $a1 + charmap "ヤ", $a2 + charmap "ユ", $a3 + charmap "ヨ", $a4 + charmap "ラ", $a5 + charmap "ル", $a6 + charmap "レ", $a7 + charmap "ロ", $a8 + charmap "ワ", $a9 + charmap "ヲ", $aa + charmap "ン", $ab + charmap "ッ", $ac + charmap "ャ", $ad + charmap "ュ", $ae + charmap "ョ", $af + charmap "ィ", $b0 + + charmap "あ", $b1 + charmap "い", $b2 + charmap "う", $b3 + charmap "え", $b4 + charmap "お", $b5 + charmap "か", $b6 + charmap "き", $b7 + charmap "く", $b8 + charmap "け", $b9 + charmap "こ", $ba + charmap "さ", $bb + charmap "し", $bc + charmap "す", $bd + charmap "せ", $be + charmap "そ", $bf + charmap "た", $c0 + charmap "ち", $c1 + charmap "つ", $c2 + charmap "て", $c3 + charmap "と", $c4 + charmap "な", $c5 + charmap "に", $c6 + charmap "ぬ", $c7 + charmap "ね", $c8 + charmap "の", $c9 + charmap "は", $ca + charmap "ひ", $cb + charmap "ふ", $cc + charmap "へ", $cd + charmap "ほ", $ce + charmap "ま", $cf + charmap "み", $d0 + charmap "む", $d1 + charmap "め", $d2 + charmap "も", $d3 + charmap "や", $d4 + charmap "ゆ", $d5 + charmap "よ", $d6 + charmap "ら", $d7 + charmap "り", $d8 + charmap "る", $d9 + charmap "れ", $da + charmap "ろ", $db + charmap "わ", $dc + charmap "を", $dd + charmap "ん", $de + charmap "っ", $df + charmap "ゃ", $e0 + charmap "ゅ", $e1 + charmap "ょ", $e2 + + charmap "ー", $e3 + charmap "゚", $e4 + charmap "゙", $e5 + + charmap "?", $e6 + charmap "!", $e7 + charmap "。", $e8 + + charmap "円", $f0 + + charmap ".", $f2 + charmap "/", $f3 + + charmap "ォ", $f4 + + charmap "0", $f6 + charmap "1", $f7 + charmap "2", $f8 + charmap "3", $f9 + charmap "4", $fa + charmap "5", $fb + charmap "6", $fc + charmap "7", $fd + charmap "8", $fe + charmap "9", $ff diff --git a/includes.asm b/includes.asm index 29acbc6c..271828b9 100644 --- a/includes.asm +++ b/includes.asm @@ -1,5 +1,3 @@ -INCLUDE "charmap.asm" - INCLUDE "macros/asserts.asm" INCLUDE "macros/const.asm" INCLUDE "macros/predef.asm" @@ -15,6 +13,7 @@ INCLUDE "macros/scripts/maps.asm" INCLUDE "macros/scripts/events.asm" INCLUDE "macros/scripts/text.asm" +INCLUDE "constants/charmap.asm" INCLUDE "constants/hardware_constants.asm" INCLUDE "constants/oam_constants.asm" INCLUDE "constants/misc_constants.asm" -- cgit v1.3.1-sl0p