User:Evie (Torchickens)/Sandbox: Difference between revisions
No edit summary |
(→Timing) |
||
(24 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
Evie's list of things she wants to do, or has recently come across but doesn't know much about. Feel free to add details if you like. |
Evie's list of things she wants to do, or has recently come across but doesn't know much about. Feel free to add details if you like. |
||
==Timing== |
|||
*[https://rgbds.gbdev.io/docs/v0.3.5/gbz80.7 Cycles] |
|||
*[https://gbdev.gg8.se/wiki/articles/OAM_DMA_tutorial DMA transfer]: ~160 microseconds |
|||
*~FF46 write - began OAM DMA transfer (one byte RAM specified for h (high byte) in RAM pointer that mirrors rDMA/FEXX-9F (you know this)) |
|||
*"[https://gbdev.io/pandocs/STAT.html LY indicates the current horizontal line, which might be about to be drawn, being drawn, or just been drawn. LY can hold any value from 0 to 153, with values from 144 to 153 indicating the VBlank period]." |
|||
*You can only access HRAM while a DMA transfer is taking place. |
|||
*"[[RNG correlation (Generation I)|the rDIV register, which itself is incremented at a rate of 16384Hz (~16779Hz on SGB)]]" |
|||
*From that RNG correlation article "516 cycles (2.015625 rDIV periods)" - so just say 2/516 (1/258 rDIV) for one cycle. |
|||
*[https://gbdev.io/pandocs/OAM_Corruption_Bug.html OAM corruption bug] |
|||
*[https://gbdev.gg8.se/wiki/articles/Video_Display Video Display]/VBlank |
|||
*[https://www.3bscientific.com/gb/microsecond-counter-230-v-5060-hz-1017333-u8498285-230-3b-scientific,p_813_25740.html Microsecond counter] |
|||
*It's more complex than this, but just leave these notes for now. |
|||
==General== |
|||
*Document the Transform endless battle change between Stadium Japan and Stadium non-Japan in an article and video |
|||
*Document these https://github.com/pret/pokecrystal/issues/795 ; re: Transform |
|||
*Corrupted box research (Generation II) |
|||
To-do: Defaults and relationship with Game Boy, GBC, SGB boot ROMs. |
|||
==Notes pertaining to code/data by ROM bank and patterns on what tends to appear there (EN Blue)== |
|||
The reason I started this is because some [[unintended ROM code execution]] is restricted to one ROM bank. While [[arbitrary code execution]] in general allows full control, this might be useful if you restrict your code execution to e.g. ROM code in an extrapolated pointer table from a single bank. |
|||
==Hexadecimal byte representation of Cryo's real-time RAM writer for writing code using button sequences== |
|||
https://archives.glitchcity.info/forums/board-115/thread-7744/page-0.html |
|||
Unintended ROM execution notes: |
|||
Red/Blue EN: |
|||
Meta-script executions involve the banks [[bp:List of locations by index number (Generation_I)|here]]. Later I want to add the full list to Glitch City Wiki as well, and so it can be checked here. For example, if bank x contains functions pertaining to y; that could be useful for search for glitch scripts pertaining to that as well. |
|||
'''No bank/Bank 0:''' |
|||
Patterns: |
|||
Code tends to be :- |
|||
*Various highly important functions like those initialised on booting up the game. |
|||
*Map functions |
|||
*Text functions |
|||
*Sprite functions |
|||
*Overworld |
|||
*New battle |
|||
<pre> |
<pre> |
||
2EFE1D5414D523CD |
|||
00:00B5 CopyData |
|||
FA3F3DF0F8FE0CC8 |
|||
00:0061 DisableLCD |
|||
F0B237B728F143B9 |
|||
00:007B EnableLCD |
|||
4228EB4F41865077 |
|||
00:0082 ClearSprites |
|||
4418E4 |
|||
00:009D FarCopyData |
|||
00:008D HideSprites |
|||
00:2024 VBlank |
|||
00:2306 Timer |
|||
00:2125 Serial |
|||
00:0150 Start |
|||
00:1F54 Init |
|||
00:35D6 Bankswitch |
|||
00:1241 LoadMapData |
|||
00:12E7 ResetUsingStrengthOutOfBattleBit |
|||
00:091F MapEntryAfterBattle |
|||
00:2429 UpdateSprites |
|||
00:20AF DelayFrame |
|||
00:20BA LoadGBPal |
|||
00:039E HandleMidJump |
|||
00:05B5 OverworldLoopLessDelay.moveAhead |
|||
00:0F4D JoypadOverworld |
|||
00:073C WarpFound2 |
|||
00:0965 HandleFlyWarpOrDungeonWarp |
|||
00:062C OverworldLoopLessDelay.newBattle |
|||
00:047D OverworldLoopLessDelay.displayDialogue |
|||
00:04EB OverworldLoopLessDelay.checkIfDownButtonIsPressed |
|||
00:04CD OverworldLoopLessDelay.noDirectionButtonsPressed |
|||
00:30FD IsPlayerCharacterBeingControlledByGame |
|||
00:3EB5 CheckForHiddenObjectOrBookshelfOrCardKeyDoor |
|||
00:03FF OverworldLoop |
|||
00:0B23 IsSpriteOrSignInFrontOfPlayer |
|||
00:3E6D Predef |
|||
00:2920 DisplayTextID |
|||
00:12BC SwitchToMapRomBank |
|||
00:03A6 EnterMap |
|||
00:0683 NewBattle |
|||
00:0637 OverworldLoopLessDelay.battleOccurred |
|||
00:0BD1 CollisionCheckOnLand |
|||
00:08E9 ExtraWarpCheck |
|||
00:0706 CheckWarpsCollision |
|||
00:0FB7 CollisionCheckOnWater |
|||
00:06A0 BikeSpeedup |
|||
00:0D27 AdvancePlayerSprite |
|||
00:07BA CheckMapConnections |
|||
00:06B4 CheckWarpsNoCollision |
|||
00:0931 HandleBlackOut |
|||
00:0670 OverworldLoopLessDelay.noFaintCheck |
|||
00:3739 DelayFrames |
|||
00:101B RunMapScript |
|||
00:019A Joypad |
|||
00:07B5 ContinueCheckWarpsNoCollisionLoop |
|||
00:08E1 CheckIfInOutsideMap |
|||
00:20EF GBFadeOutToBlack |
|||
00:08C9 PlayMapChangeSound |
|||
00:098F LeaveMapAnim |
|||
00:12DA IgnoreInputForHalfSecond |
|||
00:06CC CheckWarpsNoCollisionLoop |
|||
00:08AD CheckMapConnections.loadNewMap |
|||
00:107C LoadMapHeader |
|||
00:2312 PlayDefaultMusicFadeOutCurrent |
|||
00:3DEF GoPAL_SET |
|||
00:09FC LoadTileBlockMap |
|||
00:0402 OverworldLoopLessDelay |
|||
00:23B1 PlaySound |
|||
00:20F6 GBFadeInFromWhite |
|||
00:0951 StopMusic |
|||
00:200E StopAllSounds |
|||
00:3DD7 Delay3 |
|||
00:09C5 IsBikeRidingAllowed |
|||
00:104D LoadWalkingPlayerSpriteGraphics |
|||
00:105D LoadBikePlayerSpriteGraphics |
|||
00:1055 LoadSurfingPlayerSpriteGraphics |
|||
00:09E2 BikeRidingTilesets |
|||
00:17F7 FarCopyData2 |
|||
00:0ADE LoadNorthSouthConnectionsTileMap |
|||
00:0B02 LoadEastWestConnectionsTileMap |
|||
00:0B6B IsSpriteInFrontOfPlayer |
|||
00:0C7E TilePairCollisionsLand |
|||
00:0C2A CheckForJumpingAndTilePairCollisions |
|||
00:0C10 CheckTilePassable |
|||
00:0F1D DrawTileBlock |
|||
00:0E36 AdvancePlayerSprite.scrollBackgroundAndSprites |
|||
00:0E65 MoveTileBlockMapPointerEast |
|||
00:0E6F MoveTileBlockMapPointerWest |
|||
00:0E79 MoveTileBlockMapPointerSouth |
|||
00:0E85 MoveTileBlockMapPointerNorth |
|||
00:0CAA LoadCurrentMapView |
|||
00:0EB2 ScheduleSouthRowRedraw |
|||
00:0E91 ScheduleNorthRowRedraw |
|||
00:0ED3 ScheduleEastColumnRedraw |
|||
00:0F08 ScheduleWestColumnRedraw |
|||
00:0EA6 CopyToScreenEdgeTiles (CopyToRedrawRowOrColumnSrcTiles) |
|||
00:0EF2 ScheduleColumnRedrawHelper |
|||
00:1004 CollisionCheckOnWater.noCollision |
|||
00:0CA0 TilePairCollisionsWater |
|||
00:0997 LoadPlayerSpriteGraphics |
|||
00:2307 PlayDefaultMusic |
|||
00:310E RunNPCMovementScript |
|||
00:104C RunMapScript.return |
|||
00:1848 CopyVideoData |
|||
00:01AE MapHeaderPointers |
|||
00:1238 CopyMapConnectionHeader |
|||
00:11F8 LoadMapHeader.finishUp |
|||
00:1188 LoadMapHeader.loadSpriteLoop |
|||
00:36A0 LoadTextBoxTilePatterns |
|||
00:09E8 LoadTilesetTilePatternData |
|||
00:235F UpdateMusic6Times |
|||
00:35BC BankswitchHome |
|||
00:35CD BankswitchBack |
|||
00:3831 JoypadLowSensitivity |
|||
00:1665 LoadMonFrontSprite |
|||
00:13D9 GetCryData |
|||
00:3748 WaitForSoundToFinish |
|||
00:3DD4 GBPalWhiteOutWithDelay3 |
|||
00:1420 PartyMenuInit |
|||
00:14D4 DrawPartyMenu |
|||
00:145A HandlePartyMenuInput |
|||
00:14D9 RedrawPartyMenu |
|||
00:36C0 LoadHpBarAndStatusTilePatterns |
|||
00:3AC2 HandleMenuInput_ |
|||
00:3BEC PlaceUnfilledArrowMenuCursor |
|||
00:14AC HandlePartyMenuInput.swappingPokemon |
|||
00:3C5F PrintNumber |
|||
00:3A87 AddNTimes |
|||
00:3A7D SkipFixedLengthTextEntries |
|||
00:1604 PrintBCDDigit |
|||
00:38D3 PrintLetterDelay |
|||
00:24FD UncompressSpriteData |
|||
00:1627 UncompressMonSprite |
|||
00:16DF ZeroSpriteBuffer |
|||
00:16C2 AlignSpriteDataCentered |
|||
00:16EA InterlaceMergeSpriteBuffers |
|||
00:18FC CopyScreenTileBufferToVRAM.setup |
|||
00:1CDD GetRowColAddressBgMap |
|||
00:194F NPlaceChar |
|||
00:19E8 PlaceNextChar_inc |
|||
00:19EC Char00 |
|||
00:1B0A Char4C |
|||
00:1AF8 Char4B |
|||
00:1AB4 Char51 |
|||
00:1AD5 Char49 |
|||
00:19F9 Char52 |
|||
00:19FF Char53 |
|||
00:1A1D Char54 |
|||
00:1A11 Char5B |
|||
00:1A17 Char5E |
|||
00:1A0B Char5C |
|||
00:1A05 Char5D |
|||
00:1A7C Char55 |
|||
00:1A23 Char56 |
|||
00:1AAD Char57 |
|||
00:1A95 Char58 |
|||
00:1A29 Char4A |
|||
00:1A91 Char5F |
|||
00:1A2F Char59 |
|||
00:1A35 Char5A |
|||
00:1956 PlaceNextChar |
|||
00:19F4 Char00Text |
|||
00:1A58 Char5DText |
|||
00:1A55 Char5CText |
|||
00:1A60 Char5BText |
|||
00:1A63 Char5EText |
|||
00:1A6A Char54Text |
|||
00:1A6F Char56Text |
|||
00:1A79 Char4AText |
|||
00:1A72 Char5AText |
|||
00:1955 PlaceString |
|||
00:1A8C Char55Text |
|||
00:1B40 TextCommandProcessor |
|||
00:1AA2 Next1AA2 |
|||
00:1B3A ProtectedDelay3 |
|||
00:3898 ManualTextScroll |
|||
00:1AB3 Char58Text |
|||
00:18C4 ClearScreenArea |
|||
00:1B18 Next1B18 |
|||
00:1CA3 TextCommand17 |
|||
00:1C31 TextCommand0B |
|||
00:1CC1 TextCommandJumpTable |
|||
00:1922 TextBoxBorder |
|||
00:15CD PrintBCDNumber |
|||
00:1B55 NextTextCommand |
|||
00:1C9A TextCommand0D |
|||
00:1C64 TextCommandSounds |
|||
00:13D0 PlayCry |
|||
00:1B8A TextCommand00 |
|||
00:1B97 TextCommand01 |
|||
00:1BA5 TextCommand02 |
|||
00:1BB7 TextCommand03 |
|||
00:1B78 TextCommand04 |
|||
00:1BC5 TextCommand05 |
|||
00:1BCC TextCommand06 |
|||
00:1BE7 TextCommand07 |
|||
00:1BF9 TextCommand08 |
|||
00:1BFF TextCommand09 |
|||
00:1C1D TextCommand0A |
|||
00:1C78 TextCommand0C |
|||
00:1D42 RedrawExposedScreenEdge.drawHalf |
|||
00:1F19 FlowerTile1 |
|||
00:1F29 FlowerTile2 |
|||
00:1F39 FlowerTile3 |
|||
00:3DE5 GBPalWhiteOut |
|||
00:2004 ClearVram |
|||
00:36E0 FillMemory |
|||
00:1CF0 ClearBgMap |
|||
00:3DDC GBPalNormal |
|||
00:1D57 AutoBgMapTransfer |
|||
00:1DE1 VBlankCopyBgMap |
|||
00:1D01 RedrawExposedScreenEdge |
|||
00:1E5E VBlankCopy |
|||
00:1E02 VBlankCopyDouble |
|||
00:1EBE UpdateMovingBgTiles |
|||
00:3E5C Random |
|||
00:28CB FadeOutAudio |
|||
00:015F ReadJoypad |
|||
00:2116 FadePal4 |
|||
00:210D FadePal1 |
|||
00:211C FadePal6 |
|||
00:211F FadePal7 |
|||
00:219A Serial_ExchangeByte |
|||
00:2237 IsUnknownCounterZero |
|||
00:2231 WaitLoop_15Iterations |
|||
00:223F SetUnknownCounterToFFFF |
|||
00:3719 SaveScreenTilesToBuffer1 |
|||
00:227F Serial_SyncAndExchangeNybble |
|||
00:3725 LoadScreenTilesFromBuffer1 |
|||
00:22C3 Serial_ExchangeNybble |
|||
00:22ED Serial_SendZeroByte |
|||
00:22D7 Serial_ExchangeNybble.doExchange |
|||
00:2385 CompareMapMusicBankWithCurrentBank |
|||
00:24D6 TextScriptEndingChar |
|||
00:24D7 TextScriptEnd |
|||
00:251A _UncompressSpriteData |
|||
00:268B ReadNextInputByte |
|||
00:2670 ReadNextInputBit |
|||
00:2897 StoreSpriteOutputPointer |
|||
00:2649 WriteSpriteBitsToBuffer |
|||
00:25D8 MoveToNextBufferPosition |
|||
00:269F LengthEncodingOffsetList |
|||
00:2556 UncompressSpriteDataLoop |
|||
00:26BF UnpackSprite |
|||
00:2877 UnpackSpriteMode2 |
|||
00:27C7 XorSpriteChunks |
|||
00:26D4 SpriteDifferentialDecode |
|||
00:27B7 DecodeNybble0TableFlipped |
|||
00:27BF DecodeNybble1TableFlipped |
|||
00:27A7 DecodeNybble0Table |
|||
00:27AF DecodeNybble1Table |
|||
00:276D DifferentialDecodeNybble |
|||
00:2841 ResetSpriteBufferPointers |
|||
00:2837 ReverseNybble |
|||
00:2867 NybbleReverseTable |
|||
00:28C4 ResetPlayerSpriteData_ClearSpriteData |
|||
00:2ACD DisplayStartMenu |
|||
00:2A90 DisplaySafariGameOverText |
|||
00:2A9B DisplayPokemonFaintedText |
|||
00:2AA9 DisplayPlayerBlackedOutText |
|||
00:2ABF DisplayRepelWoreOffText |
|||
00:2A2E DisplayPokemartDialogue |
|||
00:2A72 DisplayPokemonCenterDialogue |
|||
00:3460 FuncTX_ItemStoragePC |
|||
00:346A FuncTX_BillsPC |
|||
00:347F FuncTX_PokemonCenterPC |
|||
00:3474 FuncTX_SlotMachine |
|||
00:3C59 PrintText_NoCreatingTextBox |
|||
00:3865 WaitForTextScrollButtonPress |
|||
00:2A55 PokemartGreetingText |
|||
00:3C49 PrintText |
|||
00:2A5A LoadItemList |
|||
00:29D6 AfterDisplayingTextID |
|||
00:2AA4 PokemonFaintedText |
|||
00:2ABA PlayerBlackedOutText |
|||
00:29DF HoldTextDisplayOpen |
|||
00:2AC8 RepelWoreOffText |
|||
00:3ABE HandleMenuInput |
|||
00:3BF9 EraseMenuCursor |
|||
00:2B70 CloseStartMenu |
|||
00:36F4 SaveScreenTilesToBuffer2 |
|||
00:29E8 CloseTextDisplay |
|||
00:30E8 DisplayTextBoxID |
|||
00:3740 PlaySoundWaitForCurrent |
|||
00:2E5A PrintListMenuEntries |
|||
00:3B7C PlaceMenuCursor |
|||
00:2D2D DisplayListMenuIDLoop.checkOtherKeys |
|||
00:2E3B ExitListMenu |
|||
00:37DF GetItemPrice |
|||
00:376B GetName |
|||
00:15BA GetPartyMonName |
|||
00:3826 CopyStringToCF4B |
|||
00:2C53 DisplayListMenuIDLoop |
|||
00:2E30 InitialQuantityText |
|||
00:2DA2 DisplayChooseQuantityMenu.incrementQuantity |
|||
00:2E24 DisplayChooseQuantityMenu.buttonAPressed |
|||
00:2E29 DisplayChooseQuantityMenu.buttonBPressed |
|||
00:2E34 SpacesBetweenQuantityAndPriceText |
|||
00:2D89 DisplayChooseQuantityMenu.waitForKeyPressLoop |
|||
00:2F91 PrintListMenuEntries.printCancelMenuItem |
|||
00:2FCF GetItemName |
|||
00:3058 GetMoveName |
|||
00:1372 LoadMonData |
|||
00:150B PrintLevel |
|||
00:30D9 IsKeyItem |
|||
00:2E87 PrintListMenuEntries.loop |
|||
00:2F97 ListMenuCancelText |
|||
00:2FF3 GetMachineName |
|||
00:303E HiddenPrefix |
|||
00:303C TechnicalPrefix |
|||
00:3052 HMMoves |
|||
00:3DAB IsInArray |
|||
00:3140 RunNPCMovementScript.NPCMovementScriptPointerTables |
|||
00:3D97 CallFunctionInTable |
|||
00:3157 StoreTrainerHeaderPointer |
|||
00:3193 ReadTrainerHeaderInfo |
|||
00:31C7 TrainerFlagAction |
|||
00:3354 SaveEndBattleTextPointers |
|||
00:336A EngageMapTrainer |
|||
00:325D StartTrainerBattle |
|||
00:3306 CheckForEngagingTrainers |
|||
00:32CF TrainerWalkUpToPlayer_Bank0 |
|||
00:32D7 InitBattleEnemyParameters |
|||
00:32C1 ResetButtonPressedAndMapScript |
|||
00:33E8 PlayTrainerMusic |
|||
00:33CF TrainerEndBattleText |
|||
00:33B7 GetSavedEndBattleTextPointer |
|||
00:3439 EvilTrainerList |
|||
00:3434 FemaleTrainerList |
|||
00:350C DecodeRLEList |
|||
00:34AE SetSpriteFacingDirection |
|||
00:34FC GetPointerWithinSpriteStateData1 |
|||
00:34C7 CheckCoords |
|||
00:354E GetSpriteMovementByte1Pointer |
|||
00:3558 GetSpriteMovementByte2Pointer |
|||
00:359E GetTrainerName |
|||
00:3A8E StringCmp |
|||
00:35E4 Bankswitch.Return |
|||
00:35FF InitYesNoTextBoxParameters |
|||
00:3541 SetSpriteMovementBytesToFF |
|||
00:182B FarCopyDataDouble |
|||
00:1886 CopyVideoDataDouble |
|||
00:3709 LoadScreenTilesFromBuffer2DisableBGTransfer |
|||
00:2F9E GetMonName |
|||
00:375D NamePointers |
|||
00:3C04 HandleDownArrowBlinkTiming |
|||
00:394A CalcStat |
|||
00:38AC Multiply |
|||
00:38B9 Divide |
|||
00:3AB3 WriteOAMBlock.writeOneEntry |
|||
00:3ACF HandleMenuInput_.loop1 |
|||
00:3D25 PrintNumber.PrintDigit |
|||
00:3D89 PrintNumber.NextDigit |
|||
00:3D83 PrintNumber.PrintLeadingZero |
|||
00:3DA7 JumpTable.returnAddress |
|||
00:3E08 ReloadMapSpriteTilePatterns |
|||
00:3701 LoadScreenTilesFromBuffer2 |
|||
00:3DED GoPAL_SET_CF1C |
|||
00:3680 LoadFontTilePatterns |
|||
00:2BCF AddItemToInventory |
|||
00:3E8D Predef.done |
|||
00:3EDA CheckForHiddenObjectOrBookshelfOrCardKeyDoor.returnAddress |
|||
00:3F22 TextPredefs |
|||
00:3F0F SetMapTextPointer |
|||
00:35A6 HasEnoughMoney |
|||
00:1537 GetMonHeader |
|||
00:190F ClearScreen |
|||
00:12F8 CheckForUserInterruption |
|||
00:1389 LoadFrontSpriteByMonIndex |
|||
00:3927 AddPartyMon |
|||
00:3C3C EnableAutoTextBoxDrawing |
|||
00:3E2E GiveItem |
|||
00:216F Serial_ExchangeBytes |
|||
00:23A1 PlayMusic |
|||
00:226E Serial_PrintWaitingTextAndSyncAndExchangeNybble |
|||
00:391F RemovePokemon |
|||
00:3A53 AddEnemyMonToPlayerParty |
|||
00:17D1 Club_Coll |
|||
00:3E94 GetPredefRegisters |
|||
00:2247 Serial_ExchangeLinkMenuSelection |
|||
00:28A6 ResetPlayerSpriteData |
|||
00:2B7F CountSetBits |
|||
00:20D8 GBFadeOutToWhite |
|||
00:1384 LoadFlippedFrontSpriteByMonIndex |
|||
00:36EB UncompressSpriteFromDE |
|||
00:3DBE RestoreScreenTilesAndReloadTilePatterns |
|||
00:2BE6 DisplayListMenuID |
|||
00:3040 IsItemHM |
|||
00:2D57 DisplayChooseQuantityMenu |
|||
00:2B9E AddAmountSoldToMoney |
|||
00:2BBB RemoveItemFromInventory |
|||
00:2B96 SubtractAmountPaidFromMoney |
|||
00:3049 IsMoveHM |
|||
00:360A YesNoChoicePokeCenter |
|||
00:18D6 CopyScreenTileBufferToVRAM |
|||
00:35EC YesNoChoice |
|||
00:30C4 TossItem |
|||
00:3913 CopyDataUntil |
|||
00:3071 ReloadMapData |
|||
00:1F49 SoftReset |
|||
00:12ED ForceBikeOrSurf |
|||
00:0C44 CheckForTilePairCollisions2 |
|||
00:1313 LoadDestinationWarpPosition |
|||
00:1735 Overworld_Coll |
|||
00:1749 RedsHouse1_Coll |
|||
00:1753 Mart_Coll |
|||
00:1765 Forest_Coll |
|||
00:1749 RedsHouse2_Coll |
|||
00:1759 Dojo_Coll |
|||
00:1753 Pokecenter_Coll |
|||
00:1759 Gym_Coll |
|||
00:1775 House_Coll |
|||
00:177F ForestGate_Coll |
|||
00:177F Museum_Coll |
|||
00:172F Underground_Coll |
|||
00:177F Gate_Coll |
|||
00:178A Ship_Coll |
|||
00:1795 ShipPort_Coll |
|||
00:179A Cemetery_Coll |
|||
00:17A2 Interior_Coll |
|||
00:17AC Cavern_Coll |
|||
00:17B8 Lobby_Coll |
|||
00:17C0 Mansion_Coll |
|||
00:17CA Lab_Coll |
|||
00:17DD Facility_Coll |
|||
00:17F0 Plateau_Coll |
|||
00:34BF ArePlayerCoordsInArray |
|||
00:0C4A CheckForTilePairCollisions |
|||
00:0B6D IsSpriteInFrontOfPlayer2 |
|||
00:13FC DisplayPartyMenu |
|||
00:1411 GoBackToPartyMenu |
|||
00:3936 CalcStats |
|||
00:3A97 WriteOAMBlock |
|||
00:363A MoveSprite |
|||
00:3633 CalcDifference |
|||
00:366B DivideBytes |
|||
00:1336 DrawHPBar |
|||
00:3EF5 PrintPredefTextID |
|||
00:3F94 IndigoPlateauStatues_id |
|||
00:3F9E TownMapText_id |
|||
00:3FA0 BookOrSculptureText_id |
|||
00:3FA2 ElevatorText_id |
|||
00:3FA4 PokemonStuffText_id |
|||
00:3DF9 GetHealthBarColor |
|||
00:14E1 PrintStatusCondition |
|||
00:2ADF RedisplayStartMenu |
|||
00:30A9 ChooseFlyDestination |
|||
00:30BC UseItem |
|||
00:34A6 SetSpriteFacingDirectionAndDelay |
|||
00:3486 StartSimulatingJoypadStates |
|||
00:24EA MartSignText |
|||
00:24EF PokeCenterSignText |
|||
00:34B9 SetSpriteImageIndexAfterSettingFacingDirection |
|||
00:32F9 SetSpritePosition1 |
|||
00:32FE SetSpritePosition2 |
|||
00:32F4 GetSpritePosition2 |
|||
00:3500 GetPointerWithinSpriteStateData2 |
|||
00:349B DisplayPokedex |
|||
00:22FA Serial_TryEstablishingExternallyClockedConnection |
|||
00:24CC IndigoPlateauLobbyText4 |
|||
00:3160 ExecuteCurMapScriptInTable |
|||
00:3219 CheckFightingMapTrainers |
|||
00:324C DisplayEnemyTrainerTextAndStartBattle |
|||
00:3275 EndTrainerBattle |
|||
00:24F4 PickUpItemText |
|||
00:31CC TalkToTrainer |
|||
00:314E EndNPCMovementScript |
|||
00:3493 IsItemInBag |
|||
00:32EF GetSpritePosition1 |
|||
00:2442 ViridianMartText6 |
|||
00:15B4 GetPartyMonName2 |
|||
00:3E48 GivePokemon |
|||
00:24A8 FuchsiaMartText1 |
|||
00:3F92 NewBicycleText_id |
|||
00:3F2A PushStartText_id |
|||
00:3F2C SaveOptionText_id |
|||
00:3F2E StrengthsAndWeaknessesText_id |
|||
00:3F82 CinnabarGymQuiz_id |
|||
00:3F80 MagazinesText_id |
|||
00:3F7A BillsHouseMonitorText_id |
|||
00:3F7C BillsHouseInitiatedText_id |
|||
00:3F7E BillsHousePokemonList_id |
|||
00:3F30 OakLabEmailText_id |
|||
00:3F86 GameCornerCoinCaseText_id |
|||
00:3F84 GameCornerNoCoinsText_id |
|||
00:3090 ReloadTilesetTilePatterns |
|||
00:3F70 GameCornerOutOfOrderText_id |
|||
00:3F72 GameCornerOutToLunchText_id |
|||
00:3F74 GameCornerSomeonesKeysText_id |
|||
00:3381 PrintEndBattleText |
|||
00:14F6 PrintStatusConditionNotFainted |
|||
00:3566 GetTrainerInformation |
|||
00:1672 LoadUncompressedSpriteData |
|||
00:34E4 CheckBoulderCoords |
|||
00:24E5 BoulderText |
|||
00:3442 DecodeArrowMovementRLE |
|||
00:20D1 GBFadeInFromBlack |
|||
00:3F60 ViridianSchoolNotebook_id |
|||
00:3F62 ViridianSchoolBlackboard_id |
|||
00:3F88 LinkCableHelp_id |
|||
00:3F8A TMNotebook_id |
|||
00:248E CeladonMart4Text1 |
|||
00:317F LoadGymLeaderAndCityName |
|||
00:30B6 DisableWaitingAfterTextDisplay |
|||
00:35B1 HasEnoughCoins |
|||
00:2496 CeladonMart5Text3 |
|||
00:24A0 CeladonMart5Text4 |
|||
00:3C3F DisableAutoTextBoxDrawing |
|||
00:3F22 CardKeySuccessText_id |
|||
00:3F24 CardKeyFailText_id |
|||
00:3829 CopyString |
|||
00:3F8E FightingDojoText_52a10_id |
|||
00:3F90 FightingDojoText_52a1d_id |
|||
00:3F8C FightingDojoText_id |
|||
00:3F6E IndigoPlateauHQText_id |
|||
00:2476 CeladonMart2Text1 |
|||
00:2482 CeladonMart2Text2 |
|||
00:3A68 MoveMon |
|||
00:363D MoveSprite_ |
|||
00:2453 CeruleanMartText1 |
|||
00:246A LavenderMartText1 |
|||
00:2461 VermilionMartText1 |
|||
00:24C3 SaffronMartText1 |
|||
00:3F28 RedBedroomSNESText_id |
|||
00:3F26 RedBedroomPCText_id |
|||
00:3F34 Route15UpstairsBinocularsText_id |
|||
00:3F32 AerodactylFossilText_id |
|||
00:3F36 KabutopsFossilText_id |
|||
00:3F6C VermilionGymTrashText_id |
|||
00:3F96 VermilionGymTrashSuccesText1_id |
|||
00:3F9C VermilionGymTrashFailText_id |
|||
00:3F9A VermilionGymTrashSuccesText3_id |
|||
00:3F3A GymStatueText2_id |
|||
00:3F38 GymStatueText1_id |
|||
00:3F3E ViridianCityPokecenterBenchGuyText_id |
|||
00:3F40 PewterCityPokecenterBenchGuyText_id |
|||
00:3F42 CeruleanCityPokecenterBenchGuyText_id |
|||
00:3F44 LavenderCityPokecenterBenchGuyText_id |
|||
00:3F46 VermilionCityPokecenterBenchGuyText_id |
|||
00:3F48 CeladonCityPokecenterBenchGuyText_id |
|||
00:3F4A CeladonCityHotelText_id |
|||
00:3F4C FuchsiaCityPokecenterBenchGuyText_id |
|||
00:3F4E CinnabarIslandPokecenterBenchGuyText_id |
|||
00:3F50 SaffronCityPokecenterBenchGuyText_id |
|||
00:3F52 MtMoonPokecenterBenchGuyText_id |
|||
00:3F54 RockTunnelPokecenterBenchGuyText_id |
|||
00:3F3C BookcaseText_id |
|||
00:3F5E PokemonCenterPCText_id |
|||
00:1523 PrintLevelCommon |
|||
00:3F05 RestoreMapTextPointer |
|||
00:3DAD IsInRestOfArray |
|||
00:2449 PewterMartText1 |
|||
00:3EAD UpdateCinnabarGymGateTileBlocks |
|||
00:24B9 CinnabarMartText1 |
|||
00:3F68 FoundHiddenItemText_id |
|||
00:3F78 DroppedHiddenCoinsText_id |
|||
00:3F76 FoundHiddenCoinsText_id |
|||
00:3F98 VermilionGymTrashSuccesText2_id |
|||
00:180D FarCopyData3 |
|||
00:137A OverwritewMoves |
|||
00:3D97 JumpTable |
|||
00:3F58 UnusedBenchGuyText2_id |
|||
00:24E0 GroundRoseText |
|||
00:0730 CheckWarpsNoCollisionRetry2 |
|||
00:072F CheckWarpsNoCollisionRetry1 |
|||
00:35F4 Func_35f4 |
|||
00:2324 PlayDefaultMusicCommon |
|||
00:33DD CheckIfAlreadyEngaged |
|||
00:14DC DrawPartyMenuCommon |
|||
00:361A Func_361a |
|||
00:3F5C UnusedPredefText_id |
|||
00:152E GetwMoves |
|||
00:3479 bankswitchAndContinue |
|||
00:3628 DisplayYesNoChoice |
|||
00:24DB ExclamationText |
|||
00:3F56 UnusedBenchGuyText1_id |
|||
00:3C41 AutoTextBoxDrawingCommon |
|||
00:2122 FadePal8 |
|||
00:2119 FadePal5 |
|||
00:2110 FadePal2 |
|||
00:2113 FadePal3 |
|||
00:1063 LoadPlayerSpriteGraphicsCommon |
|||
00:3156 EmptyFunc2 |
|||
00:1D9E TransferBgRows |
|||
00:1A4B FinishDTE |
|||
00:0735 WarpFound1 |
|||
00:3F5A UnusedBenchGuyText3_id |
|||
00:3301 SpritePositionBankswitch |
|||
00:3F66 OpenBillsPCText_id |
|||
00:151B PrintLevelFull |
|||
00:3F6A HiddenItemBagFullText_id |
|||
00:3F64 JustAMomentText_id |
|||
00:1A37 MonsterNameCharsCommon |
|||
00:3533 SetSpriteMovementBytesToFE |
|||
</pre> |
</pre> |
||
==Catch rate correspondence table (Generation I)== |
|||
'''Bank 1''': |
|||
Red/Blue |
|||
'''Patterns:''' |
|||
*Overworld functions |
|||
*Data pertaining to Mew (probably debug code formally occupied here due to the Iwata Asks interview, though I don't know either because the JP Red/Green ROM map structure is different) |
|||
*Title screen functions |
|||
*OAM DMA related functions |
|||
*Overworld events |
|||
*Cable Club code/data |
|||
*Text routines code/data |
|||
*Gift Pokémon functions |
|||
*Menus |
|||
*Fly |
|||
<pre> |
<pre> |
||
ID Pokemon Catch rate Held item in Gen 2 |
|||
01:62CE SpecialWarpIn |
|||
00 'M (00) 1D Carbos |
|||
01:40B0 ResetStatusAndHalveMoneyOnBlackout |
|||
01 Rhydon 3C Silver Leaf |
|||
01:5D5F SpecialEnterMap |
|||
01:45B6 LoadMonData_ |
|||
01:425B MewBaseStats |
|||
01:4112 MewPicFront |
|||
01:4BED WriteDMACodeToHRAM |
|||
01:42B7 SetDefaultNamesBeforeTitlescreen |
|||
01:4B0F PrepareOAMData |
|||
01:4C05 PrintWaitingText |
|||
01:4C34 _UpdateSprites |
|||
01:7096 DisplayTextIDInit |
|||
01:71C5 CableClubNPC |
|||
01:6C20 DisplayPokemartDialogue_ |
|||
01:6FE6 DisplayPokemonCenterDialogue_ |
|||
01:710B DrawStartMenu |
|||
01:6B21 SubtractAmountPaidFromMoney_ |
|||
01:472B ItemNames |
|||
01:6B44 HandleItemListSwapping |
|||
01:4608 ItemPrices |
|||
01:72EA DisplayTextBoxID_ |
|||
01:78E6 PlayerPC |
|||
01:7C18 _DisplayPokedex |
|||
01:4A92 UnusedNames |
|||
01:7B68 _RemovePokemon |
|||
01:4080 SpriteFacingDownAndStanding |
|||
01:4098 SpriteOAMParameters |
|||
01:4084 SpriteFacingDownAndWalking |
|||
01:40A4 SpriteOAMParametersFlipped |
|||
01:4088 SpriteFacingUpAndStanding |
|||
01:408C SpriteFacingUpAndWalking |
|||
01:4090 SpriteFacingLeftAndStanding |
|||
01:4094 SpriteFacingLeftAndWalking |
|||
01:4205 MewPicBack |
|||
01:42A7 SafariZoneEatingText |
|||
01:42AC SafariZoneAngryText |
|||
01:45AA NintenText |
|||
01:42B1 CopyFixedLengthText |
|||
01:45B1 SonyText |
|||
01:4519 ClearBothBGMaps |
|||
01:44DD DrawPlayerCharacter |
|||
01:437F DisplayTitleScreen.tileScreenCopyrightTiles |
|||
01:4524 LoadTitleMonSprite |
|||
01:4533 TitleScreenCopyTileMapToVRAM |
|||
01:43DB DisplayTitleScreen.TitleScreenPokemonLogoYScrolls |
|||
01:43EA DisplayTitleScreen.ScrollTitleScreenPokemonLogo |
|||
01:4598 PrintGameVersionOnTitleScreen |
|||
01:44CF ScrollTitleScreenGameVersion |
|||
01:44C1 TitleScreenScrollInMon |
|||
01:4496 TitleScreenPickNewMon |
|||
01:448E DisplayTitleScreen.doClearSaveDialogue |
|||
01:5AF2 MainMenu |
|||
01:4588 TitleMons |
|||
01:4556 CopyrightTextString |
|||
01:45A1 VersionOnTitleScreenText |
|||
01:4BAD PrepareOAMData.nextSprite |
|||
01:4BD1 GetSpriteScreenXY |
|||
01:4000 SpriteFacingAndAnimationTable |
|||
01:4B21 PrepareOAMData.spriteLoop |
|||
01:4C05 DMARoutineEnd |
|||
01:4BFB DMARoutine |
|||
01:5AB3 CableClub_TextBoxBorder |
|||
01:4C28 WaitingText |
|||
01:4C54 _UpdateSprites.updateCurrentSprite |
|||
01:4C5C UpdateNonPlayerSprite |
|||
01:4E31 UpdatePlayerSprite |
|||
01:5236 DoScriptedNPCMovement |
|||
01:4ED1 UpdateNPCSprite |
|||
01:4D72 SetSpriteCollisionValues |
|||
01:4D69 DetectCollisionBetweenSprites.next |
|||
01:4D85 SpriteCollisionBitTable |
|||
01:4CA5 DetectCollisionBetweenSprites.loop |
|||
01:4E26 FoundItemText |
|||
01:4E2C NoMoreRoomForItemText |
|||
01:4C70 DetectCollisionBetweenSprites |
|||
01:50AD InitializeSpriteStatus |
|||
01:50DC CheckSpriteAvailability |
|||
01:507F InitializeSpriteFacingDirection |
|||
01:5073 notYetMoving |
|||
01:5057 UpdateSpriteMovementDelay |
|||
01:4FFE UpdateSpriteInWalkingAnimation |
|||
01:50BD InitializeSpriteScreenPosition |
|||
01:522F LoadDEPlusA |
|||
01:4FC8 ChangeFacingDirection |
|||
01:5207 GetTileSpriteStandsOn |
|||
01:516E CanWalkOntoTile |
|||
01:5157 UpdateSpriteImage |
|||
01:512E CheckSpriteAvailability.spriteInvisible |
|||
01:52A6 InitScriptedNPCMovement |
|||
01:52B2 GetSpriteScreenYPointer |
|||
01:52B7 GetSpriteScreenXPointer |
|||
01:52C3 AnimScriptedNPCMovement |
|||
01:5301 AdvanceScriptedNPCAnimFrameCounter |
|||
01:5AE6 LoadTrainerInfoTextBoxTiles |
|||
01:550F PleaseWaitString |
|||
01:577D ReturnToCableClubRoom |
|||
01:5A5B TradeCenterPointerTable |
|||
01:42DD DisplayTitleScreen |
|||
01:57F2 TradeCenter_DrawPartyLists |
|||
01:57A2 TradeCenter_DrawCancelBox |
|||
01:55DC TradeCenter_SelectMon.playerMonMenu |
|||
01:565B TradeCenter_SelectMon.getNewInput |
|||
01:57D6 TradeCenter_DisplayStats |
|||
01:572F TradeCenter_SelectMon.selectedCancelMenuItem |
|||
01:5665 TradeCenter_SelectMon.chosePlayerMon |
|||
01:5557 TradeCenter_SelectMon.enemyMonMenu |
|||
01:5601 TradeCenter_SelectMon.playerMonMenu_HandleInput |
|||
01:5574 TradeCenter_SelectMon.enemyMonMenu_HandleInput |
|||
01:571F TradeCenter_SelectMon.statsTrade |
|||
01:551C CallCurrentTradeCenterFunction |
|||
01:57C7 TradeCenter_PlaceSelectedEnemyMonMenuCursor |
|||
01:57C0 CancelTextString |
|||
01:5827 TradeCenter_PrintPartyListNames |
|||
01:5A24 WillBeTradedText |
|||
01:5A3A TradeCanceled |
|||
01:5A18 TradeCenter_Trade.tradeCancelled |
|||
01:5A29 TradeCompleted |
|||
01:5345 CableClub_DoBattleOrTradeAgain |
|||
01:5530 TradeCenter_SelectMon |
|||
01:5849 TradeCenter_Trade |
|||
01:5317 CableClub_DoBattleOrTrade |
|||
01:5AE0 CableClub_DrawHorizontalLine |
|||
01:5BFF InitOptions |
|||
01:609E CheckForPlayerNameInSRAM |
|||
01:5D7E ContinueText |
|||
01:5D87 NewGameText |
|||
01:5B9E MainMenu.skipInc |
|||
01:5D52 StartNewGame |
|||
01:5E8A DisplayOptionMenu |
|||
01:5B07 MainMenu.mainMenuLoop |
|||
01:5DB5 DisplayContinueGameInfo |
|||
01:6B20 TextTerminator_6b20 |
|||
01:5D43 WhereWouldYouLikeText |
|||
01:5D97 CableClubOptionsText |
|||
01:5D48 PleaseWaitText |
|||
01:72D7 CloseLinkConnection |
|||
01:5D4D LinkCanceledText |
|||
01:6115 OakSpeech |
|||
01:5E6A SaveScreenInfoText |
|||
01:5E2F PrintNumBadges |
|||
01:5E42 PrintNumOwnedMons |
|||
01:5E55 PrintPlayTime |
|||
01:5FC0 TextSpeedOptionText |
|||
01:5FDE BattleAnimationOptionText |
|||
01:5FFD BattleStyleOptionText |
|||
01:6018 OptionMenuCancelText |
|||
01:604C SetCursorPositionsFromOptions |
|||
01:601F SetOptionsFromCursorPositions |
|||
01:5EEF DisplayOptionMenu.loop |
|||
01:5F96 DisplayOptionMenu.pressedLeftInTextSpeed |
|||
01:5FA9 DisplayOptionMenu.pressedRightInTextSpeed |
|||
01:5F18 DisplayOptionMenu.eraseOldMenuCursor |
|||
01:6096 TextSpeedOptionData |
|||
01:608F SetCursorPositionsFromOptions.placeUnfilledRightArrow |
|||
01:60CA SetDefaultNames |
|||
01:61BC OakSpeech.skipChoosingNames |
|||
01:62A4 IntroDisplayPicCenteredOrUpperRight |
|||
01:6271 FadeInIntroPic |
|||
01:6253 OakSpeechText1 |
|||
01:6288 MovePicLeft |
|||
01:6258 OakSpeechText2 |
|||
01:6262 IntroducePlayerText |
|||
01:695D ChoosePlayerName |
|||
01:6267 IntroduceRivalText |
|||
01:69A4 ChooseRivalName |
|||
01:626C OakSpeechText3 |
|||
01:6282 IntroFadePalettes |
|||
01:62FF LoadSpecialWarpData |
|||
01:64EA EmptyFunc |
|||
01:6428 TradeCenterSpec1 |
|||
01:6430 TradeCenterSpec2 |
|||
01:6438 ColosseumSpec1 |
|||
01:6440 ColosseumSpec2 |
|||
01:6420 FirstMapSpec |
|||
01:63BF DungeonWarpList |
|||
01:63D8 DungeonWarpData |
|||
01:6448 FlyWarpDataPtr |
|||
01:647C PalletTownFlyWarp |
|||
01:6482 ViridianCityFlyWarp |
|||
01:6488 PewterCityFlyWarp |
|||
01:648E CeruleanCityFlyWarp |
|||
01:6494 LavenderTownFlyWarp |
|||
01:649A VermilionCityFlyWarp |
|||
01:64A0 CeladonCityFlyWarp |
|||
01:64A6 FuchsiaCityFlyWarp |
|||
01:64AC CinnabarIslandFlyWarp |
|||
01:64B2 IndigoPlateauFlyWarp |
|||
01:64B8 SaffronCityFlyWarp |
|||
01:64BE Route4FlyWarp |
|||
01:64C4 Route10FlyWarp |
|||
01:64DF IshiharaTeam |
|||
01:6557 DoYouWantToNicknameText |
|||
01:6596 DisplayNamingScreen |
|||
01:675B LoadEDTile |
|||
01:68F8 PrintNamingText |
|||
01:676F PrintAlphabet |
|||
01:680E PrintNicknameAndUnderscores |
|||
01:665E DisplayNamingScreen.namingScreenButtonFunctions |
|||
01:65FC DisplayNamingScreen.dPadReturnPoint |
|||
01:673E DisplayNamingScreen.pressedDown |
|||
01:672C DisplayNamingScreen.pressedUp |
|||
01:6718 DisplayNamingScreen.pressedLeft |
|||
01:6702 DisplayNamingScreen.pressedRight |
|||
01:65F3 DisplayNamingScreen.ABStartReturnPoint |
|||
01:668C DisplayNamingScreen.pressedStart |
|||
01:65ED DisplayNamingScreen.selectReturnPoint |
|||
01:6683 DisplayNamingScreen.pressedSelect |
|||
01:66F6 DisplayNamingScreen.pressedB |
|||
01:6692 DisplayNamingScreen.pressedA |
|||
01:68EB CalcStringLength |
|||
01:6885 Dakutens |
|||
01:68D6 Handakutens |
|||
01:6871 DakutensAndHandakutens |
|||
01:6714 DisplayNamingScreen.wrapToFirstColumn |
|||
01:6728 DisplayNamingScreen.wrapToLastColumn |
|||
01:6767 ED_Tile |
|||
01:676F ED_TileEnd |
|||
01:679E LowerCaseAlphabet |
|||
01:67D6 UpperCaseAlphabet |
|||
01:693F YourTextString |
|||
01:6945 RivalsTextString |
|||
01:6953 NicknameTextString |
|||
01:694D NameTextString |
|||
01:6A12 OakSpeechSlidePicRight |
|||
01:6AA8 DefaultNamesPlayer |
|||
01:6A6C DisplayIntroNameTextBox |
|||
01:6AF2 DefaultNamesPlayerList |
|||
01:6AD6 GetDefaultName |
|||
01:69EC OakSpeechSlidePicLeft |
|||
01:699F YourNameIsText |
|||
01:6AC0 DefaultNamesRival |
|||
01:6B0A DefaultNamesRivalList |
|||
01:69E7 HisNameIsText |
|||
01:6AA3 DisplayIntroNameTextBox.namestring |
|||
01:6DF7 DisplayPokemartDialogue_.done |
|||
01:6D1E DisplayPokemartDialogue_.buyMenu |
|||
01:6C68 DisplayPokemartDialogue_.sellMenu |
|||
01:6D12 DisplayPokemartDialogue_.bagEmpty |
|||
01:6E25 PokemonSellingGreetingText |
|||
01:6DC8 DisplayPokemartDialogue_.returnToMainPokemartMenu |
|||
01:6E2A PokemartTellSellPriceText |
|||
01:6C89 DisplayPokemartDialogue_.sellMenuLoop |
|||
01:6E34 PokemartUnsellableItemText |
|||
01:6E2F PokemartItemBagEmptyText |
|||
01:6E0C PokemartBuyingGreetingText |
|||
01:6E11 PokemartTellBuyPriceText |
|||
01:6D39 DisplayPokemartDialogue_.buyMenuLoop |
|||
01:6DDC DisplayPokemartDialogue_.isThereEnoughMoney |
|||
01:6E16 PokemartBoughtItemText |
|||
01:6E3E PokemartAnythingElseText |
|||
01:6C2D DisplayPokemartDialogue_.loop |
|||
01:6E1B PokemartNotEnoughMoneyText |
|||
01:6E20 PokemartItemBagFullText |
|||
01:6E39 PokemartThankYouText |
|||
01:6F07 TryingToLearn |
|||
01:6EDA AbandonLearning |
|||
01:6FC8 OneTwoAndText |
|||
01:6EFE PrintLearnedMove |
|||
01:6FB9 AbandonLearningText |
|||
01:6E5B DontAbandonLearning |
|||
01:6FBE DidNotLearnText |
|||
01:6FAD LearnedMove1Text |
|||
01:6FC3 TryingToLearnText |
|||
01:6FB4 WhichMoveToForgetText |
|||
01:6FE1 HMCantDeleteText |
|||
01:6FD7 PoofText |
|||
01:705D PokemonCenterWelcomeText |
|||
01:7062 ShallWeHealYourPokemonText |
|||
01:7078 SetLastBlackoutMap |
|||
01:7068 NeedYourPokemonText |
|||
01:706D PokemonFightingFitText |
|||
01:7072 PokemonCenterFarewellText |
|||
01:7092 SafariZoneRestHouses |
|||
01:718F StartMenuPokedexText |
|||
01:71BB PrintStartMenuItem |
|||
01:7197 StartMenuPokemonText |
|||
01:719F StartMenuItemText |
|||
01:71A4 StartMenuSaveText |
|||
01:71A9 StartMenuResetText |
|||
01:71B4 StartMenuOptionText |
|||
01:71AF StartMenuExitText |
|||
01:72B8 CableClubNPCWelcomeText |
|||
01:71E1 CableClubNPC.receivedPokedex |
|||
01:72D2 CableClubNPCMakingPreparationsText |
|||
01:7298 CableClubNPC.didNotConnect |
|||
01:72BD CableClubNPCPleaseApplyHereHaveToSaveText |
|||
01:72C2 CableClubNPCPleaseWaitText |
|||
01:72C8 CableClubNPCLinkClosedBecauseOfInactivityText |
|||
01:72B3 CableClubNPCAreaReservedFor2FriendsLinkedByCableText |
|||
01:72CD CableClubNPCPleaseComeAgainText |
|||
01:5C0A LinkMenu |
|||
01:7559 DisplayTwoOptionMenu |
|||
01:7387 TextBoxFunctionTable |
|||
01:734C SearchTextBoxTable |
|||
01:7391 TextBoxCoordTable |
|||
01:73B0 TextBoxTextAndCoordTable |
|||
01:7314 DisplayTextBoxID_.done |
|||
01:735A GetTextBoxIDCoords |
|||
01:7375 GetAddressOfScreenCoords |
|||
01:7367 GetTextBoxIDText |
|||
01:74BA DisplayMoneyBox |
|||
01:74EA DoBuySellQuitMenu |
|||
01:76E1 DisplayFieldMoveMonMenu |
|||
01:7443 JapaneseMochimonoText |
|||
01:7422 UseTossText |
|||
01:742B JapaneseSaveMessageText |
|||
01:7435 JapaneseSpeedOptionsText |
|||
01:7455 BattleMenuText |
|||
01:7468 SafariZoneBattleMenuText |
|||
01:7489 SwitchStatsCancelText |
|||
01:7413 BuySellQuitText |
|||
01:743D MoneyText |
|||
01:749D JapaneseAhText |
|||
01:74A1 JapanesePokedexMenu |
|||
01:763E TwoOptionMenu_SaveScreenTiles |
|||
01:7671 TwoOptionMenuStrings |
|||
01:7656 TwoOptionMenu_RestoreScreenTiles |
|||
01:76A0 TwoOptionMenuStrings.YesNoMenu |
|||
01:76A7 TwoOptionMenuStrings.NorthWestMenu |
|||
01:76B2 TwoOptionMenuStrings.SouthEastMenu |
|||
01:76BD TwoOptionMenuStrings.NorthEastMenu |
|||
01:76C8 TwoOptionMenuStrings.TradeCancelMenu |
|||
01:76D5 TwoOptionMenuStrings.HealCancelMenu |
|||
01:7699 TwoOptionMenuStrings.NoYesMenu |
|||
01:77D6 GetMonFieldMoves |
|||
01:77C2 PokemonMenuEntries |
|||
01:778D FieldMoveNames |
|||
01:7823 FieldMoveDisplayData |
|||
01:7861 DrainHPEffect_.addDamageToAttackerHP |
|||
01:78DC SuckedHealthText |
|||
01:78E1 DreamWasEatenText |
|||
01:7B22 TurnedOnPC2Text |
|||
01:7AF5 PlayersPCMenuEntries |
|||
01:7B27 WhatDoYouWantText |
|||
01:796D ExitPlayerPC |
|||
01:7A12 PlayerPCWithdraw |
|||
01:7995 PlayerPCDeposit |
|||
01:7A8F PlayerPCToss |
|||
01:7B3B NothingToDepositText |
|||
01:790C PlayerPCMenu |
|||
01:7B2C WhatToDepositText |
|||
01:7B31 DepositHowManyText |
|||
01:79AB PlayerPCDeposit.loop |
|||
01:7B40 NoRoomToStoreText |
|||
01:7B36 ItemWasStoredText |
|||
01:7B54 NothingStoredText |
|||
01:7B45 WhatToWithdrawText |
|||
01:7B4A WithdrawHowManyText |
|||
01:7A28 PlayerPCWithdraw.loop |
|||
01:7B59 CantCarryMoreText |
|||
01:7B4F WithdrewItemText |
|||
01:7B5E WhatToTossText |
|||
01:7B63 TossHowManyText |
|||
01:7AA5 PlayerPCToss.loop |
|||
01:655C DisplayNameRaterScreen |
|||
01:4277 PrintSafariZoneBattleText |
|||
01:783F DrainHPEffect_ |
|||
01:4538 LoadCopyrightAndTextBoxTiles |
|||
01:6E43 LearnMove |
|||
01:5AB0 Diploma_TextBoxBorder |
|||
01:5A5F CableClub_Run |
|||
01:62A1 DisplayPicCenteredOrUpperRight |
|||
01:5AAF EmptyFunc3 |
|||
01:64EB AskName |
|||
01:4DE1 PickUpItem |
|||
01:5DEF PrintSaveScreenText |
|||
01:4541 LoadCopyrightTiles |
|||
</pre> |
</pre> |
||
Exceptions: |
|||
Bank 2: |
|||
Patterns: |
|||
'''Music data:''' |
|||
<pre> |
|||
02:4000 SFX_Headers_1 |
|||
02:41EF SFX_Denied_1 |
|||
02:41B3 SFX_Pokedex_Rating_1 |
|||
02:4192 SFX_Get_Item1_1 |
|||
02:41BC SFX_Get_Key_Item_1 |
|||
02:419B SFX_Get_Item2_1 |
|||
02:41F8 SFX_Push_Boulder_1 |
|||
02:41C8 SFX_Trade_Machine_1 |
|||
02:41AD SFX_Start_Menu_1 |
|||
02:409F SFX_Cry0B_1 |
|||
02:41AA SFX_Heal_Ailment_1 |
|||
02:4096 SFX_Cry0A_1 |
|||
02:41FB SFX_SS_Anne_Horn_1 |
|||
02:4228 SFX_Pokeflute |
|||
02:40B1 SFX_Cry0D_1 |
|||
02:40A8 SFX_Cry0C_1 |
|||
02:4222 SFX_Save_1 |
|||
02:4207 SFX_Go_Inside_1 |
|||
02:41A7 SFX_Heal_HP_1 |
|||
02:41D4 SFX_Shrink_1 |
|||
02:411D SFX_Cry19_1 |
|||
02:4102 SFX_Cry16_1 |
|||
02:4114 SFX_Cry18_1 |
|||
02:422B SFX_Safari_Zone_PA |
|||
02:40F9 SFX_Cry15_1 |
|||
02:41A4 SFX_Tink_1 |
|||
02:40DE SFX_Cry12_1 |
|||
02:410B SFX_Cry17_1 |
|||
02:40F0 SFX_Cry14_1 |
|||
02:40D5 SFX_Cry11_1 |
|||
02:4021 SFX_Snare9_1 |
|||
02:4210 SFX_59_1 |
|||
02:40E7 SFX_Cry13_1 |
|||
02:41E0 SFX_Teleport_Enter1_1 |
|||
02:41EC SFX_Fly_1 |
|||
02:40CC SFX_Cry10_1 |
|||
02:401E SFX_Snare8_1 |
|||
02:41DD SFX_Teleport_Exit1_1 |
|||
02:400F SFX_Snare5_1 |
|||
02:4201 SFX_Withdraw_Deposit_1 |
|||
02:4141 SFX_Cry1D_1 |
|||
02:4018 SFX_Snare6_1 |
|||
02:402A SFX_Cymbal3_1 |
|||
02:414A SFX_Cry1E_1 |
|||
02:4153 SFX_Cry1F_1 |
|||
02:41E3 SFX_Teleport_Exit2_1 |
|||
02:400C SFX_Snare4_1 |
|||
02:4003 SFX_Snare1_1 |
|||
02:4006 SFX_Snare2_1 |
|||
02:41D1 SFX_Enter_PC_1 |
|||
02:4126 SFX_Cry1A_1 |
|||
02:41E9 SFX_Teleport_Enter2_1 |
|||
02:401B SFX_Snare7_1 |
|||
02:4027 SFX_Cymbal2_1 |
|||
02:412F SFX_Cry1B_1 |
|||
02:41CB SFX_Turn_On_PC_1 |
|||
02:4024 SFX_Cymbal1_1 |
|||
02:4138 SFX_Cry1C_1 |
|||
02:4009 SFX_Snare3_1 |
|||
02:41C5 SFX_Poisoned_1 |
|||
02:41D7 SFX_Switch_1 |
|||
02:4216 SFX_Purchase_1 |
|||
02:41F5 SFX_Arrow_Tiles_1 |
|||
02:4204 SFX_Cut_1 |
|||
02:420A SFX_Swap_1 |
|||
02:407B SFX_Cry07_1 |
|||
02:4189 SFX_Cry25_1 |
|||
02:4072 SFX_Cry06_1 |
|||
02:4180 SFX_Cry24_1 |
|||
02:41DA SFX_Healing_Machine_1 |
|||
02:4177 SFX_Cry23_1 |
|||
02:408D SFX_Cry09_1 |
|||
02:416E SFX_Cry22_1 |
|||
02:4084 SFX_Cry08_1 |
|||
02:4057 SFX_Cry03_1 |
|||
02:4165 SFX_Cry21_1 |
|||
02:404E SFX_Cry02_1 |
|||
02:415C SFX_Cry20_1 |
|||
02:4069 SFX_Cry05_1 |
|||
02:421F SFX_Go_Outside_1 |
|||
02:4060 SFX_Cry04_1 |
|||
02:4030 SFX_Triangle3_1 |
|||
02:41CE SFX_Turn_Off_PC_1 |
|||
02:41B0 SFX_Press_AB_1 |
|||
02:4039 SFX_Muted_Snare4_1 |
|||
02:41E6 SFX_Ledge_1 |
|||
02:4012 SFX_Triangle1_1 |
|||
02:4045 SFX_Cry01_1 |
|||
02:403C SFX_Cry00_1 |
|||
02:4015 SFX_Triangle2_1 |
|||
02:402D SFX_Muted_Snare1_1 |
|||
02:4033 SFX_Muted_Snare2_1 |
|||
02:40C3 SFX_Cry0F_1 |
|||
02:421C SFX_Collision_1 |
|||
02:4036 SFX_Muted_Snare3_1 |
|||
02:40BA SFX_Cry0E_1 |
|||
02:429A Music_MeetRival |
|||
02:4249 Music_Cities1 |
|||
02:4267 Music_Cinnabar |
|||
02:4237 Music_Pokecenter |
|||
02:4240 Music_Gym |
|||
02:42B8 Music_PkmnHealed |
|||
02:4288 Music_SSAnne |
|||
02:4270 Music_Vermilion |
|||
02:427C Music_Lavender |
|||
02:42AF Music_SafariZone |
|||
02:425E Music_Celadon |
|||
02:42A3 Music_MuseumGuy |
|||
02:42C1 Music_Routes1 |
|||
02:42D9 Music_Routes3 |
|||
02:42CD Music_Routes2 |
|||
02:42E5 Music_Routes4 |
|||
02:42F1 Music_IndigoPlateau |
|||
02:422E Music_PalletTown |
|||
02:4291 Music_MeetProfOak |
|||
02:4255 Music_Cities2 |
|||
02:42FD SFX_Snare1_1_Ch1 |
|||
02:4301 SFX_Snare2_1_Ch1 |
|||
02:4305 SFX_Snare3_1_Ch1 |
|||
02:4309 SFX_Snare4_1_Ch1 |
|||
02:430D SFX_Snare5_1_Ch1 |
|||
02:4320 SFX_Triangle1_1_Ch1 |
|||
02:4324 SFX_Triangle2_1_Ch1 |
|||
02:432B SFX_Snare6_1_Ch1 |
|||
02:432F SFX_Snare7_1_Ch1 |
|||
02:4333 SFX_Snare8_1_Ch1 |
|||
02:4337 SFX_Snare9_1_Ch1 |
|||
02:433B SFX_Cymbal1_1_Ch1 |
|||
02:433F SFX_Cymbal2_1_Ch1 |
|||
02:4343 SFX_Cymbal3_1_Ch1 |
|||
02:4347 SFX_Muted_Snare1_1_Ch1 |
|||
02:434E SFX_Triangle3_1_Ch1 |
|||
02:4355 SFX_Muted_Snare2_1_Ch1 |
|||
02:4359 SFX_Muted_Snare3_1_Ch1 |
|||
02:435D SFX_Muted_Snare4_1_Ch1 |
|||
02:4987 SFX_Cry00_1_Ch1 |
|||
02:4996 SFX_Cry00_1_Ch2 |
|||
02:49A5 SFX_Cry00_1_Ch3 |
|||
02:4B97 SFX_Cry01_1_Ch1 |
|||
02:4BAA SFX_Cry01_1_Ch2 |
|||
02:4BBD SFX_Cry01_1_Ch3 |
|||
02:4B0C SFX_Cry02_1_Ch1 |
|||
02:4B1B SFX_Cry02_1_Ch2 |
|||
02:4B29 SFX_Cry02_1_Ch3 |
|||
02:48A6 SFX_Cry03_1_Ch1 |
|||
02:48C5 SFX_Cry03_1_Ch2 |
|||
02:48E4 SFX_Cry03_1_Ch3 |
|||
02:4C55 SFX_Cry04_1_Ch1 |
|||
02:4C74 SFX_Cry04_1_Ch2 |
|||
02:4C93 SFX_Cry04_1_Ch3 |
|||
02:4A35 SFX_Cry05_1_Ch1 |
|||
02:4A48 SFX_Cry05_1_Ch2 |
|||
02:4A5A SFX_Cry05_1_Ch3 |
|||
02:49DF SFX_Cry06_1_Ch1 |
|||
02:49F9 SFX_Cry06_1_Ch2 |
|||
02:49FA SFX_Cry06_1_Ch3 |
|||
02:4A0D SFX_Cry07_1_Ch1 |
|||
02:4A1C SFX_Cry07_1_Ch2 |
|||
02:4A2B SFX_Cry07_1_Ch3 |
|||
02:4C25 SFX_Cry08_1_Ch1 |
|||
02:4C38 SFX_Cry08_1_Ch2 |
|||
02:4C4B SFX_Cry08_1_Ch3 |
|||
02:472F SFX_Cry09_1_Ch1 |
|||
02:474C SFX_Cry09_1_Ch2 |
|||
02:476D SFX_Cry09_1_Ch3 |
|||
02:4BCA SFX_Cry0A_1_Ch1 |
|||
02:4BE9 SFX_Cry0A_1_Ch2 |
|||
02:4C0C SFX_Cry0A_1_Ch3 |
|||
02:4A5B SFX_Cry0B_1_Ch1 |
|||
02:4A86 SFX_Cry0B_1_Ch2 |
|||
02:4AA5 SFX_Cry0B_1_Ch3 |
|||
02:4ABE SFX_Cry0C_1_Ch1 |
|||
02:4AE5 SFX_Cry0C_1_Ch2 |
|||
02:4B0B SFX_Cry0C_1_Ch3 |
|||
02:4B2A SFX_Cry0D_1_Ch1 |
|||
02:4B49 SFX_Cry0D_1_Ch2 |
|||
02:4B78 SFX_Cry0D_1_Ch3 |
|||
02:49AF SFX_Cry0E_1_Ch1 |
|||
02:49C2 SFX_Cry0E_1_Ch2 |
|||
02:49D5 SFX_Cry0E_1_Ch3 |
|||
02:48F1 SFX_Cry0F_1_Ch1 |
|||
02:490C SFX_Cry0F_1_Ch2 |
|||
02:4927 SFX_Cry0F_1_Ch3 |
|||
02:4937 SFX_Cry10_1_Ch1 |
|||
02:495A SFX_Cry10_1_Ch2 |
|||
02:497D SFX_Cry10_1_Ch3 |
|||
02:4813 SFX_Cry11_1_Ch1 |
|||
02:4832 SFX_Cry11_1_Ch2 |
|||
02:4855 SFX_Cry11_1_Ch3 |
|||
02:4D2B SFX_Cry12_1_Ch1 |
|||
02:4D3E SFX_Cry12_1_Ch2 |
|||
02:4D51 SFX_Cry12_1_Ch3 |
|||
02:4D5E SFX_Cry13_1_Ch1 |
|||
02:4D79 SFX_Cry13_1_Ch2 |
|||
02:4D94 SFX_Cry13_1_Ch3 |
|||
02:4DA7 SFX_Cry14_1_Ch1 |
|||
02:4DB6 SFX_Cry14_1_Ch2 |
|||
02:4DC5 SFX_Cry14_1_Ch3 |
|||
02:4E35 SFX_Cry15_1_Ch1 |
|||
02:4E50 SFX_Cry15_1_Ch2 |
|||
02:4E6B SFX_Cry15_1_Ch3 |
|||
02:4CC8 SFX_Cry16_1_Ch1 |
|||
02:4CD7 SFX_Cry16_1_Ch2 |
|||
02:4CE6 SFX_Cry16_1_Ch3 |
|||
02:4E7E SFX_Cry17_1_Ch1 |
|||
02:4E91 SFX_Cry17_1_Ch2 |
|||
02:4EA4 SFX_Cry17_1_Ch3 |
|||
02:4F8E SFX_Cry18_1_Ch1 |
|||
02:4FB1 SFX_Cry18_1_Ch2 |
|||
02:4FD4 SFX_Cry18_1_Ch3 |
|||
02:4CA6 SFX_Cry19_1_Ch1 |
|||
02:4CB5 SFX_Cry19_1_Ch2 |
|||
02:4CC7 SFX_Cry19_1_Ch3 |
|||
02:4EFF SFX_Cry1A_1_Ch1 |
|||
02:4F1A SFX_Cry1A_1_Ch2 |
|||
02:4F35 SFX_Cry1A_1_Ch3 |
|||
02:4CF0 SFX_Cry1B_1_Ch1 |
|||
02:4D07 SFX_Cry1B_1_Ch2 |
|||
02:4D1E SFX_Cry1B_1_Ch3 |
|||
02:4EB1 SFX_Cry1C_1_Ch1 |
|||
02:4ED4 SFX_Cry1C_1_Ch2 |
|||
02:4EEF SFX_Cry1C_1_Ch3 |
|||
02:4F48 SFX_Cry1D_1_Ch1 |
|||
02:4F63 SFX_Cry1D_1_Ch2 |
|||
02:4F7E SFX_Cry1D_1_Ch3 |
|||
02:4DCF SFX_Cry1E_1_Ch1 |
|||
02:4DF2 SFX_Cry1E_1_Ch2 |
|||
02:4E19 SFX_Cry1E_1_Ch3 |
|||
02:4FE7 SFX_Cry1F_1_Ch1 |
|||
02:4FFA SFX_Cry1F_1_Ch2 |
|||
02:500D SFX_Cry1F_1_Ch3 |
|||
02:501A SFX_Cry20_1_Ch1 |
|||
02:502D SFX_Cry20_1_Ch2 |
|||
02:5040 SFX_Cry20_1_Ch3 |
|||
02:504D SFX_Cry21_1_Ch1 |
|||
02:5070 SFX_Cry21_1_Ch2 |
|||
02:5092 SFX_Cry21_1_Ch3 |
|||
02:5093 SFX_Cry22_1_Ch1 |
|||
02:50A6 SFX_Cry22_1_Ch2 |
|||
02:50B9 SFX_Cry22_1_Ch3 |
|||
02:4786 SFX_Cry23_1_Ch1 |
|||
02:479D SFX_Cry23_1_Ch2 |
|||
02:47B0 SFX_Cry23_1_Ch3 |
|||
02:47BD SFX_Cry24_1_Ch1 |
|||
02:47E0 SFX_Cry24_1_Ch2 |
|||
02:4803 SFX_Cry24_1_Ch3 |
|||
02:486B SFX_Cry25_1_Ch1 |
|||
02:4882 SFX_Cry25_1_Ch2 |
|||
02:4899 SFX_Cry25_1_Ch3 |
|||
02:440A SFX_Tink_1_Ch1 |
|||
02:44B7 SFX_Heal_HP_1_Ch1 |
|||
02:44D9 SFX_Heal_Ailment_1_Ch1 |
|||
02:43C3 SFX_Start_Menu_1_Ch1 |
|||
02:4462 SFX_Press_AB_1_Ch1 |
|||
02:44C6 SFX_Poisoned_1_Ch1 |
|||
02:44EE SFX_Trade_Machine_1_Ch1 |
|||
02:44FD SFX_Turn_On_PC_1_Ch1 |
|||
02:4528 SFX_Turn_Off_PC_1_Ch1 |
|||
02:453B SFX_Enter_PC_1_Ch1 |
|||
02:454E SFX_Shrink_1_Ch1 |
|||
02:4569 SFX_Switch_1_Ch1 |
|||
02:4580 SFX_Healing_Machine_1_Ch1 |
|||
02:4595 SFX_Teleport_Exit1_1_Ch1 |
|||
02:45B0 SFX_Teleport_Enter1_1_Ch1 |
|||
02:45CB SFX_Teleport_Exit2_1_Ch1 |
|||
02:45D6 SFX_Ledge_1_Ch1 |
|||
02:45E1 SFX_Teleport_Enter2_1_Ch1 |
|||
02:45EE SFX_Fly_1_Ch1 |
|||
02:461F SFX_Denied_1_Ch1 |
|||
02:4636 SFX_Denied_1_Ch2 |
|||
02:4649 SFX_Arrow_Tiles_1_Ch1 |
|||
02:4654 SFX_Push_Boulder_1_Ch1 |
|||
02:466D SFX_SS_Anne_Horn_1_Ch1 |
|||
02:468C SFX_SS_Anne_Horn_1_Ch2 |
|||
02:46AB SFX_Withdraw_Deposit_1_Ch1 |
|||
02:43E1 SFX_Cut_1_Ch1 |
|||
02:43F1 SFX_Go_Inside_1_Ch1 |
|||
02:43F8 SFX_Swap_1_Ch1 |
|||
02:43FF SFX_Swap_1_Ch2 |
|||
02:441B SFX_59_1_Ch1 |
|||
02:4422 SFX_59_1_Ch2 |
|||
02:442D SFX_Purchase_1_Ch1 |
|||
02:4438 SFX_Purchase_1_Ch2 |
|||
02:4447 SFX_Collision_1_Ch1 |
|||
02:4452 SFX_Go_Outside_1_Ch1 |
|||
02:4475 SFX_Save_1_Ch1 |
|||
02:4494 SFX_Save_1_Ch2 |
|||
02:43CA SFX_Pokeflute_Ch1 |
|||
02:46C8 SFX_Safari_Zone_PA_Ch1 |
|||
02:4373 Audio1_WavePointers.wave0 |
|||
02:4383 Audio1_WavePointers.wave1 |
|||
02:4393 Audio1_WavePointers.wave2 |
|||
02:43A3 Audio1_WavePointers.wave3 |
|||
02:43B3 Audio1_WavePointers.wave4 |
|||
02:43C3 Audio1_WavePointers.wave5 |
|||
02:4361 Audio1_WavePointers |
|||
02:5138 Audio1_ApplyMusicAffects |
|||
02:51D0 Audio1_PlayNextNote |
|||
02:580D Audio1_ApplyDutyCycle |
|||
02:56F9 Audio1_ApplyPitchBend |
|||
02:5838 Audio1_GetRegisterPointer |
|||
02:51E6 Audio1_endchannel |
|||
02:5825 Audio1_GetNextMusicByte |
|||
02:5274 Audio1_callchannel |
|||
02:5B1F Audio1_HWChannelDisableMasks |
|||
02:56C7 Audio1_GoBackOneCommandIfCry |
|||
02:52A9 Audio1_loopchannel |
|||
02:52E4 Audio1_notetype |
|||
02:5323 Audio1_toggleperfectpitch |
|||
02:5858 Audio1_CalculateFrequency |
|||
02:550A Audio1_notelength |
|||
02:5876 Audio1_PlaySound |
|||
02:5629 Audio1_ApplyDutyAndSoundLength |
|||
02:55F8 Audio1_EnableChannelOutput |
|||
02:564B Audio1_ApplyWavePatternAndFrequency |
|||
02:5847 Audio1_MultiplyAdd |
|||
02:5693 Audio1_SetSfxTempo |
|||
02:578F Audio1_InitPitchBendVars |
|||
02:5B27 Audio1_HWChannelEnableMasks |
|||
02:56B5 Audio1_ApplyFrequencyModifier |
|||
02:56E5 Audio1_IsCry |
|||
02:5740 Audio1_ApplyPitchBend.frequencyDecreasing |
|||
02:5786 Audio1_ApplyPitchBend.reachedTargetFrequency |
|||
02:5B17 Audio1_HWChannelBaseAddresses |
|||
02:5B2F Audio1_Pitches |
|||
02:5A34 Audio1_PlaySound.stopAllAudio |
|||
02:594E Audio1_PlaySound.playSfx |
|||
02:5A89 Audio1_PlaySound.FillMem |
|||
02:5A8F Audio1_PlaySound.playSoundCommon |
|||
02:5967 Audio1_PlaySound.sfxChannelLoop |
|||
02:5B16 Audio1_CryEndchannel |
|||
02:5B60 Audio1_OverwriteChannelPointer |
|||
02:5B47 Music_RivalAlternateStart |
|||
02:5B81 Music_Cities1AlternateTempo |
|||
02:50C6 PlayBattleMusic |
|||
02:5B75 Music_RivalAlternateStartAndTempo |
|||
02:5103 Audio1_UpdateMusic |
|||
02:5B65 Music_RivalAlternateTempo |
|||
02:6D77 SFX_Get_Item1_1_Ch1 |
|||
02:6D8E SFX_Get_Item1_1_Ch2 |
|||
02:6D9E SFX_Get_Item1_1_Ch3 |
|||
02:7316 SFX_Get_Item2_1_Ch1 |
|||
02:7335 SFX_Get_Item2_1_Ch2 |
|||
02:734D SFX_Get_Item2_1_Ch3 |
|||
02:72C8 SFX_Pokedex_Rating_1_Ch1 |
|||
02:72E1 SFX_Pokedex_Rating_1_Ch2 |
|||
02:72F7 SFX_Pokedex_Rating_1_Ch3 |
|||
02:7362 SFX_Get_Key_Item_1_Ch1 |
|||
02:7381 SFX_Get_Key_Item_1_Ch2 |
|||
02:739D SFX_Get_Key_Item_1_Ch3 |
|||
02:67C5 Music_PalletTown_Ch1 |
|||
02:685F Music_PalletTown_Ch2 |
|||
02:68DE Music_PalletTown_Ch3 |
|||
02:7E56 Music_Pokecenter_Ch1 |
|||
02:7EF9 Music_Pokecenter_Ch2 |
|||
02:7F70 Music_Pokecenter_Ch3 |
|||
02:7CBB Music_Gym_Ch1 |
|||
02:7D6B Music_Gym_Ch2 |
|||
02:7DFA Music_Gym_Ch3 |
|||
02:6A76 Music_Cities1_Ch1 |
|||
02:6B92 Music_Cities1_Ch2 |
|||
02:6C32 Music_Cities1_Ch3 |
|||
02:6CEF Music_Cities1_Ch4 |
|||
02:7504 Music_Cities2_Ch1 |
|||
02:7569 Music_Cities2_Ch2 |
|||
02:7640 Music_Cities2_Ch3 |
|||
02:76C7 Music_Celadon_Ch1 |
|||
02:773A Music_Celadon_Ch2 |
|||
02:77B5 Music_Celadon_Ch3 |
|||
02:786D Music_Cinnabar_Ch1 |
|||
02:78D4 Music_Cinnabar_Ch2 |
|||
02:793D Music_Cinnabar_Ch3 |
|||
02:79EB Music_Vermilion_Ch1 |
|||
02:7A61 Music_Vermilion_Ch2 |
|||
02:7AA6 Music_Vermilion_Ch3 |
|||
02:7B0D Music_Vermilion_Ch4 |
|||
02:7B58 Music_Lavender_Ch1 |
|||
02:7B9E Music_Lavender_Ch2 |
|||
02:7BAE Music_Lavender_Ch3 |
|||
02:7C21 Music_Lavender_Ch4 |
|||
02:73A7 Music_SSAnne_Ch1 |
|||
02:7419 Music_SSAnne_Ch2 |
|||
02:74CB Music_SSAnne_Ch3 |
|||
02:6F59 Music_MeetProfOak_Ch1 |
|||
02:6FA9 Music_MeetProfOak_Ch2 |
|||
02:703D Music_MeetProfOak_Ch3 |
|||
02:7120 Music_MeetRival_Ch1 |
|||
02:71BB Music_MeetRival_Ch2 |
|||
02:7233 Music_MeetRival_Ch3 |
|||
02:6DAE Music_MuseumGuy_Ch1 |
|||
02:6DF1 Music_MuseumGuy_Ch2 |
|||
02:6E6E Music_MuseumGuy_Ch3 |
|||
02:6ED1 Music_MuseumGuy_Ch4 |
|||
02:7C2E Music_SafariZone_Ch1 |
|||
02:7C6A Music_SafariZone_Ch2 |
|||
02:7C94 Music_SafariZone_Ch3 |
|||
02:5BA3 Music_PkmnHealed_Ch1 |
|||
02:5BC4 Music_PkmnHealed_Ch2 |
|||
02:5BD2 Music_PkmnHealed_Ch3 |
|||
02:5BDE Music_Routes1_Ch1 |
|||
02:5C51 Music_Routes1_Ch2 |
|||
02:5CD8 Music_Routes1_Ch3 |
|||
02:5D24 Music_Routes1_Ch4 |
|||
02:5DB9 Music_Routes2_Ch1 |
|||
02:5E4F Music_Routes2_Ch2 |
|||
02:5E9B Music_Routes2_Ch3 |
|||
02:5F08 Music_Routes2_Ch4 |
|||
02:5FAD Music_Routes3_Ch1 |
|||
02:6009 Music_Routes3_Ch2 |
|||
02:607F Music_Routes3_Ch3 |
|||
02:6131 Music_Routes3_Ch4 |
|||
02:626A Music_Routes4_Ch1 |
|||
02:6304 Music_Routes4_Ch2 |
|||
02:63C4 Music_Routes4_Ch3 |
|||
02:649D Music_Routes4_Ch4 |
|||
02:65F0 Music_IndigoPlateau_Ch1 |
|||
02:6664 Music_IndigoPlateau_Ch2 |
|||
02:66BA Music_IndigoPlateau_Ch3 |
|||
02:670F Music_IndigoPlateau_Ch4 |
|||
02:71A2 Music_MeetRival_branch_b1a2 |
|||
02:721D Music_MeetRival_branch_b21d |
|||
02:72B5 Music_MeetRival_branch_b2b5 |
|||
02:7119 Music_MeetRival_branch_b119 |
|||
02:719B Music_MeetRival_branch_b19b |
|||
02:6A6F Music_Cities1_branch_aa6f |
|||
02:5BE9 Music_Routes1_branch_9be9 |
|||
02:5C65 Music_Routes1_branch_9c65 |
|||
02:5C78 Music_Routes1_branch_9c78 |
|||
02:5C8D Music_Routes1_branch_9c8d |
|||
02:5C53 Music_Routes1_branch_9c53 |
|||
02:5CDD Music_Routes1_branch_9cdd |
|||
02:5DC3 Music_Routes2_branch_9dc3 |
|||
02:5E54 Music_Routes2_branch_9e54 |
|||
02:5E9E Music_Routes2_branch_9e9e |
|||
02:5FC3 Music_Routes3_branch_9fc3 |
|||
02:601A Music_Routes3_branch_a01a |
|||
02:60A3 Music_Routes3_branch_a0a3 |
|||
02:617A Music_Routes3_branch_a17a |
|||
02:628A Music_Routes4_branch_a28a |
|||
02:6325 Music_Routes4_branch_a325 |
|||
02:63D7 Music_Routes4_branch_a3d7 |
|||
02:64A8 Music_Routes4_branch_a4a8 |
|||
02:6659 Music_IndigoPlateau_branch_a659 |
|||
02:6605 Music_IndigoPlateau_branch_a605 |
|||
02:66AF Music_IndigoPlateau_branch_a6af |
|||
02:6673 Music_IndigoPlateau_branch_a673 |
|||
02:66FE Music_IndigoPlateau_branch_a6fe |
|||
02:66C6 Music_IndigoPlateau_branch_a6c6 |
|||
02:6791 Music_IndigoPlateau_branch_a791 |
|||
02:677E Music_IndigoPlateau_branch_a77e |
|||
02:67A8 Music_IndigoPlateau_branch_a7a8 |
|||
02:6728 Music_IndigoPlateau_branch_a728 |
|||
02:67CE Music_PalletTown_branch_a7ce |
|||
02:6861 Music_PalletTown_branch_a861 |
|||
02:68E3 Music_PalletTown_branch_a8e3 |
|||
02:691B Music_UnusedSong_branch_a91b |
|||
02:69D8 Music_UnusedSong_branch_a9d8 |
|||
02:6A79 Music_Cities1_branch_aa79 |
|||
02:6B7D Music_Cities1_branch_ab7d |
|||
02:6B8A Music_Cities1_branch_ab8a |
|||
02:6B12 Music_Cities1_branch_ab12 |
|||
02:6A80 Music_Cities1_branch_aa80 |
|||
02:6C00 Music_Cities1_branch_ac00 |
|||
02:6CC5 Music_Cities1_branch_acc5 |
|||
02:6CCE Music_Cities1_branch_acce |
|||
02:6C35 Music_Cities1_branch_ac35 |
|||
02:6D36 Music_Cities1_branch_ad36 |
|||
02:6D45 Music_Cities1_branch_ad45 |
|||
02:6CF3 Music_Cities1_branch_acf3 |
|||
02:6D5F Music_Cities1_branch_ad5f |
|||
02:6D52 Music_Cities1_branch_ad52 |
|||
02:6D6E Music_Cities1_branch_ad6e |
|||
02:6DE7 Music_MuseumGuy_branch_ade7 |
|||
02:6DEC Music_MuseumGuy_branch_adec |
|||
02:6DD6 Music_MuseumGuy_branch_add6 |
|||
02:6E26 Music_MuseumGuy_branch_ae26 |
|||
02:6EB8 Music_MuseumGuy_branch_aeb8 |
|||
02:6EC1 Music_MuseumGuy_branch_aec1 |
|||
02:6E8E Music_MuseumGuy_branch_ae8e |
|||
02:6EE1 Music_MuseumGuy_branch_aee1 |
|||
02:6F85 Music_MeetProfOak_branch_af85 |
|||
02:7005 Music_MeetProfOak_branch_b005 |
|||
02:70BC Music_MeetProfOak_branch_b0bc |
|||
02:70D8 Music_MeetProfOak_branch_b0d8 |
|||
02:70ED Music_MeetProfOak_branch_b0ed |
|||
02:7101 Music_MeetProfOak_branch_b101 |
|||
02:7123 Music_MeetRival_branch_b123 |
|||
02:7140 Music_MeetRival_branch_b140 |
|||
02:71A5 Music_MeetRival_branch_b1a5 |
|||
02:71D8 Music_MeetRival_branch_b1d8 |
|||
02:724B Music_MeetRival_branch_b24b |
|||
02:73B2 Music_SSAnne_branch_b3b2 |
|||
02:741E Music_SSAnne_branch_b41e |
|||
02:751A Music_Cities2_branch_b51a |
|||
02:758B Music_Cities2_branch_b58b |
|||
02:764C Music_Cities2_branch_b64c |
|||
02:76D4 Music_Celadon_branch_b6d4 |
|||
02:774A Music_Celadon_branch_b74a |
|||
02:77C1 Music_Celadon_branch_b7c1 |
|||
02:7878 Music_Cinnabar_branch_b878 |
|||
02:78D9 Music_Cinnabar_branch_b8d9 |
|||
02:793F Music_Cinnabar_branch_b93f |
|||
02:79F6 Music_Vermilion_branch_b9f6 |
|||
02:7A66 Music_Vermilion_branch_ba66 |
|||
02:7AA8 Music_Vermilion_branch_baa8 |
|||
02:7B3F Music_Vermilion_branch_bb3f |
|||
02:7B0E Music_Vermilion_branch_bb0e |
|||
02:7B6B Music_Lavender_branch_bb6b |
|||
02:7BA5 Music_Lavender_branch_bba5 |
|||
02:7BB9 Music_Lavender_branch_bbb9 |
|||
02:7C26 Music_Lavender_branch_bc26 |
|||
02:7C5F Music_SafariZone_branch_bc5f |
|||
02:7C4F Music_SafariZone_branch_bc4f |
|||
02:7C89 Music_SafariZone_branch_bc89 |
|||
02:7C79 Music_SafariZone_branch_bc79 |
|||
02:7CA5 Music_SafariZone_branch_bca5 |
|||
02:7C97 Music_SafariZone_branch_bc97 |
|||
02:7CD8 Music_Gym_branch_bcd8 |
|||
02:7D82 Music_Gym_branch_bd82 |
|||
02:7E3B Music_Gym_branch_be3b |
|||
02:7E44 Music_Gym_branch_be44 |
|||
02:7E4D Music_Gym_branch_be4d |
|||
02:7E02 Music_Gym_branch_be02 |
|||
02:7E61 Music_Pokecenter_branch_be61 |
|||
02:7F4E Music_Pokecenter_branch_bf4e |
|||
02:7F60 Music_Pokecenter_branch_bf60 |
|||
02:7EFC Music_Pokecenter_branch_befc |
|||
02:7FD9 Music_Pokecenter_branch_bfd9 |
|||
02:7FE2 Music_Pokecenter_branch_bfe2 |
|||
02:7FEB Music_Pokecenter_branch_bfeb |
|||
02:7F72 Music_Pokecenter_branch_bf72 |
|||
02:69CF Music_UnusedSong_Ch2 |
|||
02:6913 Music_UnusedSong_Ch1 |
|||
</pre> |
|||
==Keep the name OLD MAN or PROF. OAK== |
|||
This effect has been known for really long, and involves OLD MAN or PROF. OAK trying to catch a Trainer's Pokémon, getting the 'out of Safari Balls' message, and keeping the altered name after battle. Nowadays however, we have information on how to do it without a cheating device (e.g. [[participants glitch (Generation I)|participants glitch]]). This could be an efficient way of fixing an unterminated player name and regaining the ability to retain a save, though you'd be left with either the name OLD MAN or PROF. OAK. |
|||
==Boulder smuggling== |
|||
(Now on video) |
|||
By just changing current map (D35E/D); subject to D36E/D being safe, you can move boulders to other maps from places like Victory Road after an encounter. Probably due to certain places being not regarded as cave maps, this may or may not disable encounters, but you can memory edit D059/8 to work around that. |
|||
If you want a more precise warp, you can adjust D35F-D360(-1) and the coordinates too. |
|||
So what happens when you push boulders where you're not supposed to? |
|||
; |
|||
*Some maps don't support the boulder sprite; so boulders might transform into rotating player sprites. You can still push Reds around and they even update to Red cycling if you use the Bicycle. (Another map that supports the boulder sprite is the Safari Zone iirc(?)) |
|||
*You can still push the boulders around; so with enough manipulation I guess you could make your own sokoban game. |
|||
*I actually found this out before by changing FF map connections to valid maps, but if you push a boulder out of the map it will disappear (probably the same reason for any disappearing NPC) |
|||
*Somehow I was able to manipulate a boulder so that a Trainer was standing on top of it. I could no longer push the boulder as the Trainer took priority. |
|||
*The spin tiles in Viridian Gym will make you walk through a boulder (or Trainer) if it's/they're blocking the path. |
|||
==Walking characters after Yellow MissingNo. addendum== |
|||
Like with the Red sprites from boulder smuggling, using the Bicycle can cause walking Red characters to start cycling too (or Surfing if you used Surf iirc). This does seem familiar maybe someone else documented it too. |
|||
==Momentary Surf dismount menu sprite glitch== |
|||
(Now on video) |
|||
Surf from the Cinnabar Island coast and dismount, but not the most common way. Instead dismount by opening the party menu and choosing Surf. In Red/Blue but not yellow, there can be a momentary transition glitch affecting the font and certain menu sprites like generic monster (becoming Red facing down), and some others being other orientations of Red (I think someone else may have also mentioned this but if you do this with ????? the game locks up). |
|||
'''(To-do: Why does this happen)''' |
|||
==Select glitches== |
|||
'''(To-do: Expand, work this out and add relevant memory addresses)''' |
|||
This article is a list of [[closed menu Select glitch]]es detailing the memory areas they corrupt. |
|||
Changes to catch rate in games (Thx Bulbapedia): |
|||
===Party=== |
|||
====2nd-6th Pokémon==== |
|||
The Pokémon in that slot is swapped. If over the number of party Pokémon, this can be a glitched Pokémon or an [[GlitchDexJP/RG:255|anedepami]] if (number of Pokémon+1); the latter is known for [[dokokashira door glitch]] at the beginning of the game with only one Pokémon and at least two items. |
|||
*In Yellow, starter Pikachu hold Light Ball |
|||
Can also be used for [[Partial switch glitch]] |
|||
*In Yellow, wild Kadabra hold TwistedSpoon |
|||
*In Yellow, wild Dragonair hold Protein |
|||
*In Yellow, wild Dragonite hold Antidote |
|||
*Stadium gift Pokémon hold Normal Box (Round 1) or Gorgeous Box (Round 2) |
|||
[https://github.com/pret/pokecrystal/blob/master/data/items/catch_rate_items.asm Converted catch rates] (TimeCapsule_CatchRateItems): |
|||
====7th Pokémon==== |
|||
(document) |
|||
*Catch rate 0x19 becomes Leftovers |
|||
====12th Pokémon==== |
|||
*0x2D becomes Bitter Berry |
|||
Can be used for [[warp by Nidoran♂ glitch]] |
|||
*0x32 becomes Gold Berry |
|||
*0x5A, 0x64, 0x78, 0x87, 0xBE, 0xC3, 0xDC, 0xFA, 0xFF all become Berry |
|||
How to acquire a Pokémon with any catch rate: |
|||
====13th Pokémon==== |
|||
Can be used for [[second type glitch]], [[expanded inventory]], warp by Nidoran♂ glitch |
|||
(Tested on Yellow probably works the same on Red/Blue) |
|||
====14th Pokémon==== |
|||
Can be used for [[item creation Select glitches]] and second type glitch |
|||
*Have in party only special MissingNo. (Kabutops Fossi, Aerodactyl, Ghost), then save/reset |
|||
====20th Pokémon==== |
|||
*Manipulate D0C0-1 (W_MONHCATCHRATE). (Probably can do this with [[LWA]]) |
|||
Can be used for [[Trainer mutation glitch]] |
|||
*Encounter/acquire special MissingNo. (Kabutops Fossi, Aerodactyl, Ghost) and catch it |
|||
*The acquired Pokémon will have the catch rate from D0C0-1. |
|||
====32nd Pokémon==== |
|||
Can be used for [[fossil conversion glitch (Japanese)]] and [[walk through walls glitch (Select glitch method)]] |
|||
====33rd Pokémon==== |
|||
Can be used for [[battle disabling Select glitch]] |
|||
==IR trade pet project== |
|||
===Moves=== |
|||
=== |
===Theory=== |
||
Use [[I/O|$FF56]] to turn infrared on in two games with [[arbitrary code execution]]. Synchronise the PPU(?) cycles. Use a modified version of the Cable Club code. |
|||
The move in that slot is swapped. If move does not exit, may give the player [[- (Generation I move)]]. |
|||
In it, have a prompt to keep the Game Boy Colors next to each other for each interaction (press A to start read/write) and have some kind of error prevention if communication fails. |
|||
====5th move==== |
|||
(document) |
|||
I wonder how practical this is because for Gold/Silver they used IR for different purposes (obtaining decorations, items, Trainer House Trainers). |
|||
====7th move==== |
|||
Can be used for [[skip to Level 100 Select glitch]] |
|||
== |
==Other things== |
||
[https://glitchcity.wiki/index.php?title=User:Evie_(Torchickens)/Sandbox&action=history (Archived as the page gets big)] |
|||
Can be used for [[remaining PP into species Select glitch]] |
Latest revision as of 21:18, 1 May 2024
Evie's list of things she wants to do, or has recently come across but doesn't know much about. Feel free to add details if you like.
Timing
- Cycles
- DMA transfer: ~160 microseconds
- ~FF46 write - began OAM DMA transfer (one byte RAM specified for h (high byte) in RAM pointer that mirrors rDMA/FEXX-9F (you know this))
- "LY indicates the current horizontal line, which might be about to be drawn, being drawn, or just been drawn. LY can hold any value from 0 to 153, with values from 144 to 153 indicating the VBlank period."
- You can only access HRAM while a DMA transfer is taking place.
- "the rDIV register, which itself is incremented at a rate of 16384Hz (~16779Hz on SGB)"
- From that RNG correlation article "516 cycles (2.015625 rDIV periods)" - so just say 2/516 (1/258 rDIV) for one cycle.
- OAM corruption bug
- Video Display/VBlank
- Microsecond counter
- It's more complex than this, but just leave these notes for now.
To-do: Defaults and relationship with Game Boy, GBC, SGB boot ROMs.
Hexadecimal byte representation of Cryo's real-time RAM writer for writing code using button sequences
https://archives.glitchcity.info/forums/board-115/thread-7744/page-0.html
Red/Blue EN:
2EFE1D5414D523CD FA3F3DF0F8FE0CC8 F0B237B728F143B9 4228EB4F41865077 4418E4
Catch rate correspondence table (Generation I)
Red/Blue
ID Pokemon Catch rate Held item in Gen 2 00 'M (00) 1D Carbos 01 Rhydon 3C Silver Leaf
Exceptions:
Changes to catch rate in games (Thx Bulbapedia):
- In Yellow, starter Pikachu hold Light Ball
- In Yellow, wild Kadabra hold TwistedSpoon
- In Yellow, wild Dragonair hold Protein
- In Yellow, wild Dragonite hold Antidote
- Stadium gift Pokémon hold Normal Box (Round 1) or Gorgeous Box (Round 2)
Converted catch rates (TimeCapsule_CatchRateItems):
- Catch rate 0x19 becomes Leftovers
- 0x2D becomes Bitter Berry
- 0x32 becomes Gold Berry
- 0x5A, 0x64, 0x78, 0x87, 0xBE, 0xC3, 0xDC, 0xFA, 0xFF all become Berry
How to acquire a Pokémon with any catch rate:
(Tested on Yellow probably works the same on Red/Blue)
- Have in party only special MissingNo. (Kabutops Fossi, Aerodactyl, Ghost), then save/reset
- Manipulate D0C0-1 (W_MONHCATCHRATE). (Probably can do this with LWA)
- Encounter/acquire special MissingNo. (Kabutops Fossi, Aerodactyl, Ghost) and catch it
- The acquired Pokémon will have the catch rate from D0C0-1.
IR trade pet project
Theory
Use $FF56 to turn infrared on in two games with arbitrary code execution. Synchronise the PPU(?) cycles. Use a modified version of the Cable Club code.
In it, have a prompt to keep the Game Boy Colors next to each other for each interaction (press A to start read/write) and have some kind of error prevention if communication fails.
I wonder how practical this is because for Gold/Silver they used IR for different purposes (obtaining decorations, items, Trainer House Trainers).