diff options
Diffstat (limited to 'main.asm')
-rw-r--r-- | main.asm | 2071 |
1 files changed, 1087 insertions, 984 deletions
@@ -138,7 +138,7 @@ NewGame: ; 5b6b ld a, 1 ld [wc2d8], a - ld a, 0 ; SPAWN_HOME + ld a, SPAWN_HOME ld [wd001], a ld a, $f1 @@ -201,7 +201,7 @@ _ResetWRAM: ; 5bae ld [wd84b], a ld hl, PartyCount - call Function5ca1 + call InitList xor a ld [wCurBox], a @@ -212,20 +212,20 @@ _ResetWRAM: ; 5bae ld a, 1 call GetSRAMBank ld hl, sBoxCount - call Function5ca1 + call InitList call CloseSRAM ld hl, NumItems - call Function5ca1 + call InitList ld hl, NumKeyItems - call Function5ca1 + call InitList ld hl, NumBalls - call Function5ca1 + call InitList ld hl, PCItems - call Function5ca1 + call InitList xor a ld [wRoamMon1Species], a @@ -249,7 +249,7 @@ _ResetWRAM: ; 5bae call CloseSRAM call Function5d33 - call Function5cd3 + call InitializeRalphName xor a ld [MonType], a @@ -281,7 +281,7 @@ ENDC inc hl ld [hl], 2300 % $100 - call Function5ce9 + call InitializeNPCNames callba Function26751 @@ -293,7 +293,8 @@ ENDC ret ; 5ca1 -Function5ca1: ; 5ca1 +InitList: ; 5ca1 +; Loads 0 in the count and -1 in the first item or mon slot. xor a ld [hli], a dec a @@ -334,7 +335,7 @@ SetDefaultBoxNames: ; 5ca6 db "BOX@" ; 5cd3 -Function5cd3: ; 5cd3 +InitializeRalphName: ; 5cd3 ld hl, wdfe8 ld a, $3 ld [hli], a @@ -349,7 +350,7 @@ Function5cd3: ; 5cd3 db "RALPH@" ; 5ce9 -Function5ce9: ; 5ce9 +InitializeNPCNames: ; 5ce9 ld hl, .Rival ld de, RivalName call .Copy @@ -377,7 +378,7 @@ Function5ce9: ; 5ce9 ; 5d23 InitializeWorld: ; 5d23 - call Function610f + call ShrinkPlayer callba GetSpawnCoord callba Function113d6 ret @@ -394,14 +395,14 @@ Function5d33: ; 5d33 ld a, [$ac6a] ld c, a ld a, [$ac69] - jr z, .asm_5d55 + jr z, .skip ld a, b ld [$ac68], a call Random ld c, a call Random -.asm_5d55 +.skip ld [wdc9f], a ld [$ac69], a ld a, c @@ -412,7 +413,7 @@ Function5d33: ; 5d33 Continue: ; 5d65 callba TryLoadSaveFile - jr c, .asm_5dd6 + jr c, .FailToLoad callba Function150b9 call Function1d6e call Function5e85 @@ -423,13 +424,13 @@ Continue: ; 5d65 call Function5e34 jr nc, .asm_5d8c call WriteBackup - jr .asm_5dd6 + jr .FailToLoad .asm_5d8c call Function5e48 jr nc, .asm_5d96 call WriteBackup - jr .asm_5dd6 + jr .FailToLoad .asm_5d96 ld a, $8 @@ -444,7 +445,7 @@ Continue: ; 5d65 call ClearTileMap ld c, $14 call DelayFrames - callba RestoreRoamMons + callba JumpRoamMons callba Function105091 callba Function140ae ld a, [wd4b5] @@ -454,18 +455,18 @@ Continue: ; 5d65 ld [$ff9f], a jp Function5e5d -.asm_5dd6 +.FailToLoad ret .asm_5dd7 - ld a, $e ; SPAWN_NEW_BARK + ld a, SPAWN_NEW_BARK ld [wd001], a call Function5de7 jp Function5e5d ; 5de2 Function5de2: ; 5de2 - ld a, $1a ; SPAWN_MT_SILVER + ld a, SPAWN_MT_SILVER ld [wd001], a ; 5de7 @@ -567,13 +568,13 @@ Function5e85: ; 5e85 ret .asm_5e93 - ld de, $0408 + lb de, 4, 8 call Function5e9f ret ; 5e9a Function5e9a: ; 5e9a - ld de, $0400 + lb de, 4, 0 jr Function5e9f ; 5e9f @@ -582,7 +583,7 @@ Function5e9f: ; 5e9f call Function5f1c call Function5f40 call Functione5f - call DrawOnMap + call UpdateSprites ret ; 5eaf @@ -591,7 +592,7 @@ Function5eaf: ; 5eaf call Function5f1c call Function5f48 call Functione5f - call DrawOnMap + call UpdateSprites ret ; 5ebf @@ -651,12 +652,12 @@ Function5f1c: ; 5f1c push hl ld de, $005d add hl, de - call Function5f58 + call DisplayBadgeCount pop hl push hl ld de, $0084 add hl, de - call Function5f6b + call DisplayPokedexNumCaught pop hl push hl ld de, $0030 @@ -673,7 +674,7 @@ Function5f1c: ; 5f1c Function5f40: ; 5f40 ld de, $00a9 add hl, de - call Function5f84 + call DisplayGameTime ret ; 5f48 @@ -688,18 +689,18 @@ Function5f48: ; 5f48 db " ???@" ; 5f58 -Function5f58: ; 5f58 +DisplayBadgeCount: ; 5f58 push hl ld hl, JohtoBadges ld b, $2 call CountSetBits pop hl ld de, wd265 - ld bc, $0102 + lb bc, 1, 2 jp PrintNum ; 5f6b -Function5f6b: ; 5f6b +DisplayPokedexNumCaught: ; 5f6b ld a, [StatusFlags] bit 0, a ret z @@ -709,18 +710,18 @@ Function5f6b: ; 5f6b call CountSetBits pop hl ld de, wd265 - ld bc, $0103 + lb bc, 1, 3 jp PrintNum ; 5f84 -Function5f84: ; 5f84 +DisplayGameTime: ; 5f84 ld de, GameTimeHours - ld bc, $0203 + lb bc, 2, 3 call PrintNum ld [hl], $6d inc hl ld de, GameTimeMinutes - ld bc, $8102 + lb bc, $81, 2 jp PrintNum ; 5f99 @@ -804,11 +805,11 @@ OakSpeech: ; 0x5f99 ret OakText1: ; 0x6045 - TX_FAR _OakText1 + text_jump _OakText1 db "@" OakText2: ; 0x604a - TX_FAR _OakText2 + text_jump _OakText2 start_asm ld a,WOOPER call PlayCry @@ -817,23 +818,23 @@ OakText2: ; 0x604a ret OakText3: ; 0x605b - TX_FAR _OakText3 + text_jump _OakText3 db "@" OakText4: ; 0x6060 - TX_FAR _OakText4 + text_jump _OakText4 db "@" OakText5: ; 0x6065 - TX_FAR _OakText5 + text_jump _OakText5 db "@" OakText6: ; 0x606a - TX_FAR _OakText6 + text_jump _OakText6 db "@" OakText7: ; 0x606f - TX_FAR _OakText7 + text_jump _OakText7 db "@" NamePlayer: ; 0x6074 @@ -870,9 +871,9 @@ NamePlayer: ; 0x6074 ld de, .Chris ld a, [PlayerGender] bit 0, a - jr z, .asm_60cf + jr z, .Male ld de, .Kris -.asm_60cf +.Male call InitName ret @@ -903,7 +904,7 @@ StorePlayerName: ; 60fa ret ; 610f -Function610f: ; 610f +ShrinkPlayer: ; 610f ld a, [hROMBank] push af @@ -926,14 +927,14 @@ Function610f: ; 610f ld hl, Shrink1Pic ld b, BANK(Shrink1Pic) - call Function61b4 + call ShrinkFrame ld c, 8 call DelayFrames ld hl, Shrink2Pic ld b, BANK(Shrink2Pic) - call Function61b4 + call ShrinkFrame ld c, 8 call DelayFrames @@ -960,13 +961,13 @@ Function610f: ; 610f Intro_FadeInFrontpic: ; 616a ld hl, IntroFadePalettes ld b, IntroFadePalettesEnd - IntroFadePalettes -.asm_616f +.loop ld a, [hli] call DmgToCgbBGPals ld c, 10 call DelayFrames dec b - jr nz, .asm_616f + jr nz, .loop ret ; 617c @@ -984,13 +985,13 @@ Intro_WipeInFrontpic: ; 6182 ld a, $77 ld [hWX], a call DelayFrame - ld a, $e4 + ld a, %11100100 call DmgToCgbBGPals .loop call DelayFrame ld a, [hWX] sub $8 - cp $ff + cp -1 ret z ld [hWX], a jr .loop @@ -1007,7 +1008,7 @@ Function619c: ; 619c ret ; 61b4 -Function61b4: ; 61b4 +ShrinkFrame: ; 61b4 ld de, VTiles2 ld c, $31 predef DecompressPredef @@ -1069,7 +1070,7 @@ Function61cd: ; 61cd Function620b: ; 620b callab Functione4579 jr c, Function6219 - callba Functione48ac + callba CrystalIntro Function6219: ; 6219 ld a, [rSVBK] @@ -1604,7 +1605,7 @@ LearnMove: ; 6508 jr nz, .next push de - call Function65d3 + call ForgetMove pop de jp c, .cancel @@ -1693,7 +1694,7 @@ LearnMove: ; 6508 ret ; 65d3 -Function65d3: ; 65d3 +ForgetMove: ; 65d3 push hl ld hl, UnknownText_0x667f call PrintText @@ -1707,7 +1708,7 @@ Function65d3: ; 65d3 ld bc, NUM_MOVES call CopyBytes pop hl -.asm_65ee +.loop push hl ld hl, UnknownText_0x6670 call PrintText @@ -1744,7 +1745,7 @@ Function65d3: ; 65d3 pop af pop hl bit 1, a - jr nz, .asm_6669 + jr nz, .cancel push hl ld a, [wcfa9] dec a @@ -1758,19 +1759,19 @@ Function65d3: ; 65d3 pop bc pop de ld a, d - jr c, .asm_6660 + jr c, .hmmove pop hl add hl, bc and a ret -.asm_6660 +.hmmove ld hl, UnknownText_0x669a call PrintText pop hl - jr .asm_65ee + jr .loop -.asm_6669 +.cancel scf ret ; 666b @@ -1846,7 +1847,7 @@ CheckNickErrors:: ; 669f inc hl ; reached end of commands table? ld a, [hl] - cp a, $ff + cp a, -1 jr z, .done ; is the current char between this value (inclusive)... @@ -2691,7 +2692,7 @@ GetFirstPokemonHappiness: ; 718d jp CopyPokemonName_Buffer1_Buffer3 ; 71ac -Function71ac: ; 71ac +CheckFirstMonIsEgg: ; 71ac ld a, [PartySpecies] ld [wd265], a cp EGG @@ -2977,7 +2978,7 @@ SpecialGiveShuckle: ; 7305 ; Engine flag for this event. ld hl, DailyFlags set 5, [hl] - +; setflag ENGINE_SHUCKLE_GIVEN ld a, 1 ld [ScriptVar], a ret @@ -3751,7 +3752,7 @@ Function8388: ; 8388 ; 839a .data_839a - db 8, 9, 10, 11 + db 8 + DOWN, 8 + UP, 8 + LEFT, 8 + RIGHT ; 839e @@ -4026,7 +4027,7 @@ _Sine:: ; 84d9 and %011111 call Function84ef ld a, h - xor $ff + xor -1 inc a ret ; 84ef @@ -4091,7 +4092,7 @@ TimeOfDayTable: ; c012 db DAY, 2 db NITE, 4 db NITE, 4 - db $ff + db -1 ; c01b @@ -4584,7 +4585,7 @@ CheckBadge: ; c731 BadgeRequiredText: ; c73d ; Sorry! A new BADGE ; is required. - TX_FAR _BadgeRequiredText + text_jump _BadgeRequiredText db "@" ; c742 @@ -4756,14 +4757,14 @@ CutDownTreeOrGrass: ; c810 xor a ld [hBGMapMode], a call Function2173 - call DrawOnMap + call UpdateSprites call DelayFrame ld a, [wd1ef] ld e, a callba Function8c940 call BufferScreen call Function2914 - call DrawOnMap + call UpdateSprites call DelayFrame call Functione51 ret @@ -5019,17 +5020,17 @@ Functionc9a2: ; c9a2 ; c9a9 UsedSurfText: ; c9a9 - TX_FAR _UsedSurfText + text_jump _UsedSurfText db "@" ; c9ae CantSurfText: ; c9ae - TX_FAR _CantSurfText + text_jump _CantSurfText db "@" ; c9b3 AlreadySurfingText: ; c9b3 - TX_FAR _AlreadySurfingText + text_jump _AlreadySurfingText db "@" ; c9b8 @@ -5146,7 +5147,7 @@ AskSurfScript: ; ca2c ; ca36 AskSurfText: ; ca36 - TX_FAR _AskSurfText ; The water is calm. + text_jump _AskSurfText ; The water is calm. db "@" ; Want to SURF? ; ca3b @@ -5233,7 +5234,7 @@ FlyFunction: ; ca3b special WarpToSpawnPoint callasm DelayLoadingNewSprites writecode VAR_MOVEMENT, $0 - newloadmap $fc + newloadmap -4 callasm Function8cb33 special WaitSFX callasm Functioncacb @@ -5501,7 +5502,7 @@ UsedDigOrEscapeRopeScript: ; 0xcc3c farscall UnknownScript_0x122c1 special WarpToSpawnPoint writecode VAR_MOVEMENT, $0 - newloadmap $f5 + newloadmap -11 playsound SFX_WARP_FROM applymovement PLAYER, MovementData_0xcc5d end @@ -5599,7 +5600,7 @@ Script_UsedTeleport: ; 0xccbb farscall UnknownScript_0x122c1 special WarpToSpawnPoint writecode VAR_MOVEMENT, $0 - newloadmap $f4 + newloadmap -12 playsound SFX_WARP_FROM applymovement PLAYER, MovementData_0xcce3 end @@ -5689,12 +5690,12 @@ Script_UsedStrength: ; 0xcd2d UnknownText_0xcd41: ; 0xcd41 text_jump UnknownText_0x1c0774 - db $50 + db "@" ; 0xcd46 UnknownText_0xcd46: ; 0xcd46 text_jump UnknownText_0x1c0788 - db $50 + db "@" ; 0xcd4b AskStrengthScript: @@ -6086,7 +6087,7 @@ RockSmashScript: ; cf32 disappear -2 callasm RockMonEncounter - copybytetovar wd22e + copybytetovar TempWildMonSpecies iffalse .done battlecheck startbattle @@ -6096,7 +6097,7 @@ RockSmashScript: ; cf32 ; 0xcf55 MovementData_0xcf55: ; 0xcf55 - db $57, $0a + rock_smash 10 step_end UnknownText_0xcf58: ; 0xcf58 @@ -6198,7 +6199,7 @@ FishFunction: ; cf8e ld a, d and a jr z, .nonibble - ld [wd22e], a + ld [TempWildMonSpecies], a ld a, e ld [CurPartyLevel], a ld a, BATTLETYPE_FISH @@ -6334,7 +6335,7 @@ Script_FishCastRod: ; 0xd07c ; 0xd093 MovementData_0xd093: ; d093 - db $52 + fish_got_bite_2 step_end ; d095 @@ -6343,7 +6344,7 @@ PutTheRodAway: ; d095 ld [hBGMapMode], a ld a, $1 ld [PlayerAction], a - call DrawOnMap + call UpdateSprites call Special_ReplaceKrisSprite ret ; d0a4 @@ -10381,15 +10382,15 @@ rept 3 ld [hli], a endr ld [hl], a - ld hl, wdc4c + ld hl, wDailyRematchFlags rept 4 ld [hli], a endr - ld hl, wdc50 + ld hl, wDailyPhoneItemFlags rept 4 ld [hli], a endr - ld hl, wdc54 + ld hl, wDailyPhoneTimeOfDayFlags rept 4 ld [hli], a endr @@ -12880,7 +12881,7 @@ StartMenu:: ; 125cd jr .Select .Reopen - call DrawOnMap + call UpdateSprites call UpdateTimePals call .SetUpMenuItems ld a, [wd0d2] @@ -12996,7 +12997,7 @@ endr call .DrawMenuAccount_ call MenuFunc_1e7f call .DrawBugContestStatus - call DrawOnMap + call UpdateSprites call Functiond90 call Function2b5c ret @@ -15128,7 +15129,7 @@ Function134dd: ; 134dd ld hl, Elevator_MenuDataHeader call CopyMenuDataHeader call Function352f - call DrawOnMap + call UpdateSprites xor a ld [wd0e4], a call Function350c @@ -15548,7 +15549,7 @@ endr push hl push bc ; Get the Trainer Class name and copy it into wd016. - callab Function3952d + callab GetTrainerClassName ld hl, StringBuffer1 ld de, wd016 ld bc, TRAINER_CLASS_NAME_LENGTH @@ -18183,7 +18184,7 @@ Function14a1a: ; 14a1a call Function1d6e callba Function5e9a call SpeechTextBox - call DrawOnMap + call UpdateSprites callba Function4cf45 ld hl, UnknownText_0x15283 call SaveTheGame_yesorno @@ -19551,7 +19552,7 @@ Function156d9: ; 156d9 jr nz, .asm_156f9 call Function2173 call Function321c - call DrawOnMap + call UpdateSprites call Function156b8 ld c, $0 ret @@ -19742,15 +19743,15 @@ Function157e9: ; 0x157e9 ; 0x15850 .HowManyText ; 0x15850 - TX_FAR _KrissPCHowManyWithdrawText + text_jump _KrissPCHowManyWithdrawText db "@" .WithdrewText ; 0x15855 - TX_FAR _KrissPCWithdrewItemsText + text_jump _KrissPCWithdrewItemsText db "@" .NoRoomText ; 0x1585a - TX_FAR _KrissPCNoRoomWithdrawText + text_jump _KrissPCNoRoomWithdrawText db "@" @@ -19915,15 +19916,15 @@ Function1590a: ; 0x1590a .HowManyText ; 0x1596e - TX_FAR _KrissPCHowManyDepositText + text_jump _KrissPCHowManyDepositText db "@" .DepositText ; 0x15973 - TX_FAR _KrissPCDepositItemsText + text_jump _KrissPCDepositItemsText db "@" .NoRoomText ; 0x15978 - TX_FAR _KrissPCNoRoomDepositText + text_jump _KrissPCNoRoomDepositText db "@" @@ -20521,7 +20522,7 @@ Unknown_15ce3: ; 15ce3 Function15cef: ; 15cef callba Function24ae8 - call DrawOnMap + call UpdateSprites ld hl, MenuDataHeader_0x15e18 call CopyMenuDataHeader ld a, [WalkingX] @@ -21588,13 +21589,13 @@ DSTChecks: ; 16439 call Function164ea bccoord 1, 14 ld hl, UnknownText_0x164f4 - call Function13e5 + call PlaceWholeStringInBoxAtOnce call YesNoBox ret c call Function164ea bccoord 1, 14 ld hl, LostInstructionBookletText - call Function13e5 + call PlaceWholeStringInBoxAtOnce ret .loop @@ -21604,7 +21605,7 @@ DSTChecks: ; 16439 bit 7, a jr z, .asm_16497 ld hl, UnknownText_0x16508 - call Function13e5 + call PlaceWholeStringInBoxAtOnce call YesNoBox ret c ld a, [wDST] @@ -21614,12 +21615,12 @@ DSTChecks: ; 16439 call Function164ea bccoord 1, 14 ld hl, UnknownText_0x1650d - call Function13e5 + call PlaceWholeStringInBoxAtOnce ret .asm_16497 ld hl, UnknownText_0x164fe - call Function13e5 + call PlaceWholeStringInBoxAtOnce call YesNoBox ret c ld a, [wDST] @@ -21629,7 +21630,7 @@ DSTChecks: ; 16439 call Function164ea bccoord 1, 14 ld hl, UnknownText_0x16503 - call Function13e5 + call PlaceWholeStringInBoxAtOnce ret ; 164b9 @@ -21743,7 +21744,7 @@ Function1651a: ; 1651a ld de, StringBuffer2 ld bc, $a306 call PrintNum - call DrawOnMap + call UpdateSprites call Function3238 ret ; 1656b @@ -24340,7 +24341,7 @@ Function2400e:: ; 2400e ld a, [wcf94] rst FarCall call Function24085 - call DrawOnMap + call UpdateSprites call Function321c call Function2408f ret @@ -24352,7 +24353,7 @@ Function24022:: ; 24022 rst FarCall call Function24085 callba MobileTextBorder - call DrawOnMap + call UpdateSprites call Function321c call Function2408f ret @@ -24364,7 +24365,7 @@ Function2403c:: ; 2403c rst FarCall call Function24085 callba MobileTextBorder - call DrawOnMap + call UpdateSprites call Function321c call Function2411a ld hl, wcfa5 @@ -25184,7 +25185,7 @@ Pokepic:: ; 244e3 ld hl, MenuDataHeader_0x24547 call CopyMenuDataHeader call Function1cbb - call DrawOnMap + call UpdateSprites call Function321c ld b, $12 call GetSGBLayout @@ -25220,7 +25221,7 @@ PokepicYesOrNo:: ; 24528 ld [hBGMapMode], a call Function2173 call Function321c - call DrawOnMap + call UpdateSprites call Functione51 ret ; 24547 @@ -26700,7 +26701,7 @@ Function24e99: ; 24e99 xor a ld [hBGMapMode], a call Function1cbb - call DrawOnMap + call UpdateSprites call Function1c89 call WaitBGMap call Function1c66 @@ -27902,95 +27903,95 @@ OakRatings: ; 0x2667f dw OakRating19 OakPCText1: ; 0x266de - TX_FAR _OakPCText1 + text_jump _OakPCText1 db "@" OakPCText2: ; 0x266e3 - TX_FAR _OakPCText2 + text_jump _OakPCText2 db "@" OakPCText3: ; 0x266e8 - TX_FAR _OakPCText3 + text_jump _OakPCText3 db "@" OakRating01: - TX_FAR _OakRating01 + text_jump _OakRating01 db "@" OakRating02: - TX_FAR _OakRating02 + text_jump _OakRating02 db "@" OakRating03: - TX_FAR _OakRating03 + text_jump _OakRating03 db "@" OakRating04: - TX_FAR _OakRating04 + text_jump _OakRating04 db "@" OakRating05: - TX_FAR _OakRating05 + text_jump _OakRating05 db "@" OakRating06: - TX_FAR _OakRating06 + text_jump _OakRating06 db "@" OakRating07: - TX_FAR _OakRating07 + text_jump _OakRating07 db "@" OakRating08: - TX_FAR _OakRating08 + text_jump _OakRating08 db "@" OakRating09: - TX_FAR _OakRating09 + text_jump _OakRating09 db "@" OakRating10: - TX_FAR _OakRating10 + text_jump _OakRating10 db "@" OakRating11: - TX_FAR _OakRating11 + text_jump _OakRating11 db "@" OakRating12: - TX_FAR _OakRating12 + text_jump _OakRating12 db "@" OakRating13: - TX_FAR _OakRating13 + text_jump _OakRating13 db "@" OakRating14: - TX_FAR _OakRating14 + text_jump _OakRating14 db "@" OakRating15: - TX_FAR _OakRating15 + text_jump _OakRating15 db "@" OakRating16: - TX_FAR _OakRating16 + text_jump _OakRating16 db "@" OakRating17: - TX_FAR _OakRating17 + text_jump _OakRating17 db "@" OakRating18: - TX_FAR _OakRating18 + text_jump _OakRating18 db "@" OakRating19: - TX_FAR _OakRating19 + text_jump _OakRating19 db "@" OakPCText4: ; 0x2674c - TX_FAR _OakPCText4 + text_jump _OakPCText4 db "@" @@ -29544,20 +29545,20 @@ Function27a28: ; 27a28 SECTION "bankA", ROMX, BANK[$A] -Function28000: ; 28000 +LinkCommunications: ; 28000 call WhiteBGMap ld c, $50 call DelayFrames call ClearScreen call ClearSprites - call DrawOnMap + call UpdateSprites xor a ld [hSCX], a ld [hSCY], a ld c, $50 call DelayFrames call ClearScreen - call DrawOnMap + call UpdateSprites call Functione51 call Functione58 callba Function16d69a @@ -30038,7 +30039,7 @@ Function283b2: ; 283b2 pop de pop hl bccoord 1, 14 - call Function13e5 + call PlaceWholeStringInBoxAtOnce call FadeToWhite call ClearScreen ld b, $8 @@ -30351,11 +30352,11 @@ Function28595: ; 28595 ld de, OverworldMap ld a, $fd ld b, $6 -.asm_2859c +.loop1 ld [de], a inc de dec b - jr nz, .asm_2859c + jr nz, .loop1 ld hl, PlayerName ld bc, $000b call CopyBytes @@ -30384,7 +30385,7 @@ Function28595: ; 28595 call GetSRAMBank ld hl, $a600 ld b, $6 -.asm_285ef +.loop2 push bc ld bc, $0021 call CopyBytes @@ -30392,10 +30393,10 @@ Function28595: ; 28595 add hl, bc pop bc dec b - jr nz, .asm_285ef + jr nz, .loop2 ld hl, $a600 ld b, $6 -.asm_28603 +.loop3 push bc ld bc, $0021 add hl, bc @@ -30403,11 +30404,11 @@ Function28595: ; 28595 call CopyBytes pop bc dec b - jr nz, .asm_28603 + jr nz, .loop3 ld b, $6 ld de, $a600 ld hl, wc9f9 -.asm_2861a +.loop4 push bc push hl push de @@ -30416,18 +30417,18 @@ Function28595: ; 28595 pop de ld a, c or a - jr z, .asm_2863f + jr z, .next sub $3 - jr nc, .asm_28635 + jr nc, .skip callba Function1df1e6 - jr .asm_2863f + jr .next -.asm_28635 +.skip cp $2 - jr nc, .asm_2863f + jr nc, .next callba Function1df220 -.asm_2863f +.next pop de ld hl, $002f add hl, de @@ -30438,40 +30439,40 @@ Function28595: ; 28595 add hl, bc pop bc dec b - jr nz, .asm_2861a + jr nz, .loop4 call CloseSRAM ld hl, wc9f9 ld bc, $00c6 -.asm_28658 +.loop5 ld a, [hl] cp $fe - jr nz, .asm_2865f + jr nz, .skip2 ld [hl], $21 -.asm_2865f +.skip2 inc hl dec bc ld a, b or c - jr nz, .asm_28658 + jr nz, .loop5 ld hl, wcabf ld de, wcb13 ld b, $54 ld c, $0 -.asm_2866f +.loop6 inc c ld a, [hl] cp $fe - jr nz, .asm_2867a + jr nz, .skip3 ld [hl], $ff ld a, c ld [de], a inc de -.asm_2867a +.skip3 inc hl dec b - jr nz, .asm_2866f + jr nz, .loop6 ld a, $ff ld [de], a ret @@ -30479,11 +30480,11 @@ Function28595: ; 28595 Function28682: ; 28682 ld c, $5 -.asm_28684 +.loop ld [de], a inc de dec c - jr nz, .asm_28684 + jr nz, .loop ret ; 2868a @@ -30498,12 +30499,12 @@ Function2868a: ; 2868a ld [hl], b ld hl, OTPartyMon1Species ld c, $6 -.asm_2869b +.loop push bc call Function286ba pop bc dec c - jr nz, .asm_2869b + jr nz, .loop pop hl ld bc, $0108 add hl, bc @@ -30645,19 +30646,19 @@ Function28771: ; 28771 ret z push hl ld hl, .TimeCapsuleAlt -.asm_28778 +.loop ld a, [hli] and a - jr z, .asm_28783 + jr z, .end cp b - jr z, .asm_28782 + jr z, .found inc hl - jr .asm_28778 + jr .loop -.asm_28782 +.found ld b, [hl] -.asm_28783 +.end pop hl ret @@ -31022,7 +31023,7 @@ Function28926: ; 28926 callba Function4d354 ld hl, UnknownText_0x28aaf bccoord 1, 14 - call Function13e5 + call PlaceWholeStringInBoxAtOnce jr .asm_28a89 .asm_28a58 @@ -31044,7 +31045,7 @@ Function28926: ; 28926 callba Function4d354 ld hl, UnknownText_0x28ac4 bccoord 1, 14 - call Function13e5 + call PlaceWholeStringInBoxAtOnce .asm_28a89 hlcoord 0, 12 @@ -31221,7 +31222,7 @@ Function28b87: ; 28b87 call GetPokemonName ld hl, UnknownText_0x28eb8 bccoord 1, 14 - call Function13e5 + call PlaceWholeStringInBoxAtOnce call Function1d6e hlcoord 10, 7 ld b, $3 @@ -33560,7 +33561,7 @@ Special_TimeCapsule: ; 29eaf ld a, $1 ld [InLinkBattle], a call Function2ed3 - callab Function28000 + callab LinkCommunications call Function2ee4 xor a ld [hVBlank], a @@ -33571,7 +33572,7 @@ Special_TradeCenter: ; 29ec4 ld a, $2 ld [InLinkBattle], a call Function2ed3 - callab Function28000 + callab LinkCommunications call Function2ee4 xor a ld [hVBlank], a @@ -33582,7 +33583,7 @@ Special_Colosseum: ; 29ed9 ld a, $3 ld [InLinkBattle], a call Function2ed3 - callab Function28000 + callab LinkCommunications call Function2ee4 xor a ld [hVBlank], a @@ -33675,7 +33676,7 @@ Function29fe4: ; 29fe4 ; 29ff8 LoadWildMonData: ; 29ff8 - call Function2a205 + call _GrassWildmonLookup jr c, .asm_2a006 ld hl, wd25a xor a @@ -33692,7 +33693,7 @@ endr ld bc, $3 call CopyBytes .asm_2a011 - call Function2a21d + call _WaterWildmonLookup ld a, $0 jr nc, .asm_2a01b rept 2 @@ -33712,9 +33713,9 @@ Function2a01f: ; 2a01f and a jr nz, .asm_2a043 decoord 0, 0 - ld hl, WildMons1 + ld hl, JohtoGrassWildMons call Function2a052 - ld hl, WildMons2 + ld hl, JohtoWaterWildMons call Function2a06e call Function2a0b7 call Function2a0cf @@ -33722,9 +33723,9 @@ Function2a01f: ; 2a01f .asm_2a043 decoord 0, 0 - ld hl, WildMons3 + ld hl, KantoGrassWildMons call Function2a052 - ld hl, WildMons4 + ld hl, KantoWaterWildMons jp Function2a06e ; 2a052 @@ -33858,42 +33859,42 @@ Function2a0cf: ; 2a0cf ret ; 2a0e7 -Function2a0e7:: ; 2a0e7 +TryWildEncounter:: ; 2a0e7 ; Try to trigger a wild encounter. - call Function2a103 - jr nc, .asm_2a0f8 - call Function2a14f - jr nz, .asm_2a0f8 - call Function2a1df - jr nc, .asm_2a0f8 + call .EncounterRate + jr nc, .no_battle + call ChooseWildEncounter + jr nz, .no_battle + call CheckRepelEffect + jr nc, .no_battle xor a ret -.asm_2a0f8 +.no_battle xor a ; BATTLETYPE_NORMAL - ld [wd22e], a + ld [TempWildMonSpecies], a ld [BattleType], a ld a, 1 and a ret ; 2a103 -Function2a103: ; 2a103 - call Function2a111 - call Function2a124 - call Function2a138 +.EncounterRate: ; 2a103 + call GetMapEncounterRate + call ApplyMusicEffectOnEncounterRate + call ApplyCleanseTagEffectOnEncounterRate call Random cp b ret ; 2a111 -Function2a111: ; 2a111 +GetMapEncounterRate: ; 2a111 ld hl, wd25a - call Function1852 + call CheckOnWater ld a, 3 - jr z, .asm_2a11e + jr z, .ok ld a, [TimeOfDay] -.asm_2a11e +.ok ld c, a ld b, 0 add hl, bc @@ -33901,25 +33902,25 @@ Function2a111: ; 2a111 ret ; 2a124 -Function2a124:: ; 2a124 +ApplyMusicEffectOnEncounterRate:: ; 2a124 ; Pokemon March and Ruins of Alph signal double encounter rate. ; Pokemon Lullaby halves encounter rate. ld a, [wMapMusic] cp MUSIC_POKEMON_MARCH - jr z, .asm_2a135 + jr z, .double cp MUSIC_RUINS_OF_ALPH_RADIO - jr z, .asm_2a135 + jr z, .double cp MUSIC_POKEMON_LULLABY ret nz srl b ret -.asm_2a135 +.double sla b ret ; 2a138 -Function2a138:: ; 2a138 +ApplyCleanseTagEffectOnEncounterRate:: ; 2a138 ; Cleanse Tag halves encounter rate. ld hl, PartyMon1Item ld de, PartyMon2 - PartyMon1 @@ -33928,140 +33929,146 @@ Function2a138:: ; 2a138 .loop ld a, [hl] cp CLEANSE_TAG - jr z, .asm_2a14c + jr z, .cleansetag add hl, de dec c jr nz, .loop ret -.asm_2a14c +.cleansetag srl b ret ; 2a14f -Function2a14f: ; 2a14f - call Function2a200 - jp nc, .asm_2a1c1 - call Function2a2ce - jp c, .asm_2a1c9 +ChooseWildEncounter: ; 2a14f + call LoadWildMonDataPointer + jp nc, .nowildbattle + call CheckEncounterRoamMon + jp c, .startwildbattle rept 3 inc hl endr - call Function1852 - ld de, Unknown_2a1d9 - jr z, .asm_2a174 + call CheckOnWater + ld de, .WaterMonTable + jr z, .watermon rept 2 inc hl endr ld a, [TimeOfDay] ld bc, $e call AddNTimes - ld de, Unknown_2a1cb + ld de, .GrassMonTable -.asm_2a174 +.watermon +; hl contains the pointer to the wild mon data, let's save that to the stack push hl -.asm_2a175 +.randomloop call Random cp 100 - jr nc, .asm_2a175 - inc a + jr nc, .randomloop + inc a ; 1 <= a <= 100 ld b, a ld h, d ld l, e -.asm_2a180 +; This next loop chooses which mon to load up. +.prob_bracket_loop ld a, [hli] cp b - jr nc, .asm_2a187 + jr nc, .got_it inc hl - jr .asm_2a180 + jr .prob_bracket_loop -.asm_2a187 +.got_it ld c, [hl] ld b, 0 pop hl - add hl, bc + add hl, bc ; this selects our mon ld a, [hli] ld b, a - call Function1852 - jr nz, .asm_2a1aa - +; If the Pokemon is encountered by surfing, we need to give the levels some variety. + call CheckOnWater + jr nz, .ok +; Check if we buff the wild mon, and by how much. call Random - cp 89 - jr c, .asm_2a1aa + cp 35 percent + jr c, .ok inc b - cp 165 - jr c, .asm_2a1aa + cp 65 percent + jr c, .ok inc b - cp 216 - jr c, .asm_2a1aa + cp 85 percent + jr c, .ok inc b - cp 242 - jr c, .asm_2a1aa + cp 95 percent + jr c, .ok inc b - -.asm_2a1aa +; Store the level +.ok ld a, b ld [CurPartyLevel], a ld b, [hl] - call Function2a4a0 - jr c, .asm_2a1c1 + ; ld a, b + call ValidateTempWildMonSpecies + jr c, .nowildbattle - ld a, b + ld a, b ; This is in the wrong place. cp UNOWN - jr nz, .asm_2a1bf + jr nz, .done ld a, [UnlockedUnowns] and a - jr z, .asm_2a1c1 + jr z, .nowildbattle -.asm_2a1bf - jr .asm_2a1c5 +.done + jr .loadwildmon -.asm_2a1c1 +.nowildbattle ld a, 1 and a ret -.asm_2a1c5 +.loadwildmon ld a, b - ld [wd22e], a + ld [TempWildMonSpecies], a -.asm_2a1c9 +.startwildbattle xor a ret ; 2a1cb -Unknown_2a1cb: ; 2a1cb - db 30, $0 - db 60, $2 - db 80, $4 - db 90, $6 - db 95, $8 - db 99, $a - db 100, $c +.GrassMonTable: ; 2a1cb + db 30, $0 ; 30% chance + db 60, $2 ; 30% chance + db 80, $4 ; 20% chance + db 90, $6 ; 10% chance + db 95, $8 ; 5% chance + db 99, $a ; 4% chance + db 100, $c ; 1% chance ; 2a1d9 -Unknown_2a1d9: ; 2a1d9 - db 60, $0 - db 90, $2 - db 100, $4 +.WaterMonTable: ; 2a1d9 + db 60, $0 ; 60% chance + db 90, $2 ; 30% chance + db 100, $4 ; 10% chance ; 2a1df -Function2a1df:: ; 2a1df +CheckRepelEffect:: ; 2a1df +; If there is no active Repel, there's no need to be here. ld a, [wdca1] and a - jr z, .asm_2a1fe + jr z, .encounter +; Get the first Pokemon in your party that isn't fainted. ld hl, PartyMon1HP ld bc, PartyMon2 - PartyMon1 - 1 -.asm_2a1eb +.loop ld a, [hli] or [hl] - jr nz, .asm_2a1f2 + jr nz, .ok add hl, bc - jr .asm_2a1eb + jr .loop -.asm_2a1f2 +.ok ; to PartyMonLevel rept 4 dec hl @@ -34069,42 +34076,42 @@ endr ld a, [CurPartyLevel] cp [hl] - jr nc, .asm_2a1fe + jr nc, .encounter and a ret -.asm_2a1fe +.encounter scf ret ; 2a200 -Function2a200: ; 2a200 - call Function1852 - jr z, Function2a21d +LoadWildMonDataPointer: ; 2a200 + call CheckOnWater + jr z, _WaterWildmonLookup -Function2a205: ; 2a205 - ld hl, WildMons5 - ld bc, $002f - call asm_2a23d +_GrassWildmonLookup: ; 2a205 + ld hl, SwarmGrassWildMons + ld bc, GRASS_WILDDATA_LENGTH + call _SwarmWildmonCheck ret c - ld hl, WildMons1 - ld de, WildMons3 - call asm_2a235 - ld bc, $002f - jr asm_2a27a - -Function2a21d: ; 2a21d - ld hl, WildMons6 - ld bc, $0009 - call asm_2a23d + ld hl, JohtoGrassWildMons + ld de, KantoGrassWildMons + call _JohtoWildmonCheck + ld bc, GRASS_WILDDATA_LENGTH + jr _NormalWildmonOK + +_WaterWildmonLookup: ; 2a21d + ld hl, SwarmWaterWildMons + ld bc, WATER_WILDDATA_LENGTH + call _SwarmWildmonCheck ret c - ld hl, WildMons2 - ld de, WildMons4 - call asm_2a235 - ld bc, $0009 - jr asm_2a27a + ld hl, JohtoWaterWildMons + ld de, KantoWaterWildMons + call _JohtoWildmonCheck + ld bc, WATER_WILDDATA_LENGTH + jr _NormalWildmonOK -asm_2a235 +_JohtoWildmonCheck call IsInJohto and a ret z @@ -34112,51 +34119,51 @@ asm_2a235 ld l, e ret -asm_2a23d - call Function2a27f +_SwarmWildmonCheck + call CopyCurrMapDE push hl ld hl, SwarmFlags bit 2, [hl] pop hl - jr z, .asm_2a25c + jr z, .CheckYanma ld a, [wdfcc] cp d - jr nz, .asm_2a25c + jr nz, .CheckYanma ld a, [wdfcd] cp e - jr nz, .asm_2a25c - call Function2a288 - jr nc, asm_2a278 + jr nz, .CheckYanma + call LookUpWildmonsForMapDE + jr nc, _NoSwarmWildmon scf ret -.asm_2a25c +.CheckYanma push hl ld hl, SwarmFlags bit 3, [hl] pop hl - jr z, asm_2a278 + jr z, _NoSwarmWildmon ld a, [wdc5a] cp d - jr nz, asm_2a278 + jr nz, _NoSwarmWildmon ld a, [wdc5b] cp e - jr nz, asm_2a278 - call Function2a288 - jr nc, asm_2a278 + jr nz, _NoSwarmWildmon + call LookUpWildmonsForMapDE + jr nc, _NoSwarmWildmon scf ret -asm_2a278 +_NoSwarmWildmon and a ret -asm_2a27a - call Function2a27f - jr Function2a288 +_NormalWildmonOK + call CopyCurrMapDE + jr LookUpWildmonsForMapDE ; 2a27f -Function2a27f: ; 2a27f +CopyCurrMapDE: ; 2a27f ld a, [MapGroup] ld d, a ld a, [MapNumber] @@ -34164,30 +34171,30 @@ Function2a27f: ; 2a27f ret ; 2a288 -Function2a288: ; 2a288 +LookUpWildmonsForMapDE: ; 2a288 push hl ld a, [hl] inc a - jr z, .asm_2a29a + jr z, .nope ld a, d cp [hl] - jr nz, .asm_2a296 + jr nz, .next inc hl ld a, e cp [hl] - jr z, .asm_2a29d + jr z, .yup -.asm_2a296 +.next pop hl add hl, bc - jr Function2a288 + jr LookUpWildmonsForMapDE -.asm_2a29a +.nope pop hl and a ret -.asm_2a29d +.yup pop hl scf ret @@ -34239,34 +34246,39 @@ InitRoamMons: ; 2a2a0 ; 2a2ce -Function2a2ce: ; 2a2ce +CheckEncounterRoamMon: ; 2a2ce push hl - call Function1852 - jr z, .asm_2a30a - call Function2a27f +; Don't trigger an encounter if we're on water. + call CheckOnWater + jr z, .DontEncounterRoamMon +; Load the current map group and number to de + call CopyCurrMapDE +; Randomly select a beast. call Random - cp 100 - jr nc, .asm_2a30a - and 3 - jr z, .asm_2a30a - dec a + cp 100 ; 25/64 chance + jr nc, .DontEncounterRoamMon + and %00000011 ; Of that, a 3/4 chance. Running total: 75/256, or around 29.3%. + jr z, .DontEncounterRoamMon + dec a ; 1/3 chance that it's Entei, 1/3 chance that it's Raikou +; Compare its current location with yours ld hl, wRoamMon1MapGroup ld c, a ld b, 0 - ld a, 7 + ld a, 7 ; length of the RoamMon struct call AddNTimes ld a, d cp [hl] - jr nz, .asm_2a30a + jr nz, .DontEncounterRoamMon inc hl ld a, e cp [hl] - jr nz, .asm_2a30a + jr nz, .DontEncounterRoamMon +; We've decided to take on a beast, so stage its information for battle. rept 3 dec hl endr ld a, [hli] - ld [wd22e], a + ld [TempWildMonSpecies], a ld a, [hl] ld [CurPartyLevel], a ld a, BATTLETYPE_ROAMING @@ -34276,7 +34288,7 @@ endr scf ret -.asm_2a30a +.DontEncounterRoamMon pop hl and a ret @@ -34285,81 +34297,85 @@ endr UpdateRoamMons: ; 2a30d ld a, [wRoamMon1MapGroup] - cp $ff - jr z, .asm_2a324 + cp GROUP_N_A + jr z, .SkipRaikou ld b, a ld a, [wRoamMon1MapNumber] ld c, a - call Function2a355 + call .Update ld a, b ld [wRoamMon1MapGroup], a ld a, c ld [wRoamMon1MapNumber], a -.asm_2a324 +.SkipRaikou ld a, [wRoamMon2MapGroup] - cp $ff - jr z, .asm_2a33b + cp GROUP_N_A + jr z, .SkipEntei ld b, a ld a, [wRoamMon2MapNumber] ld c, a - call Function2a355 + call .Update ld a, b ld [wRoamMon2MapGroup], a ld a, c ld [wRoamMon2MapNumber], a -.asm_2a33b +.SkipEntei ld a, [wRoamMon3MapGroup] - cp $ff - jr z, .asm_2a352 + cp GROUP_N_A + jr z, .SkipSuicune ld b, a ld a, [wRoamMon3MapNumber] ld c, a - call Function2a355 + call .Update ld a, b ld [wRoamMon3MapGroup], a ld a, c ld [wRoamMon3MapNumber], a -.asm_2a352 - jp Function2a3f6 +.SkipSuicune + jp _BackUpMapIndices ; 2a355 -Function2a355: ; 2a355 +.Update: ; 2a355 ld hl, RoamMaps -.asm_2a358 +.loop +; Are we at the end of the table? ld a, [hl] - cp $ff + cp -1 ret z +; Is this the correct entry? ld a, b cp [hl] - jr nz, .asm_2a365 + jr nz, .next inc hl ld a, c cp [hl] - jr z, .asm_2a36b - -.asm_2a365 + jr z, .yes +; We don't have the correct entry yet, so let's continue. A 0 terminates each entry. +.next ld a, [hli] and a - jr nz, .asm_2a365 - jr .asm_2a358 + jr nz, .next + jr .loop -.asm_2a36b +; We have the correct entry now, so let's choose a random map from it. +.yes inc hl ld d, h ld e, l -.asm_2a36e +.update_loop ld h, d ld l, e +; Choose which map to warp to. call Random - and $1f - jr z, Function2a3cd + and $1f ; 1/8n chance it moves to a completely random map, where n is the number of roaming connections from the current map. + jr z, JumpRoamMon and 3 cp [hl] - jr nc, .asm_2a36e + jr nc, .update_loop ; invalid index, try again inc hl ld c, a ld b, $0 @@ -34368,89 +34384,89 @@ rept 2 endr ld a, [wdfe7] cp [hl] - jr nz, .asm_2a390 + jr nz, .done inc hl ld a, [wdfe6] cp [hl] - jr z, .asm_2a36e + jr z, .update_loop dec hl -.asm_2a390 +.done ld a, [hli] ld b, a ld c, [hl] ret -RestoreRoamMons: ; 2a394 +JumpRoamMons: ; 2a394 ld a, [wRoamMon1MapGroup] - cp $ff - jr z, .asm_2a3a6 - call Function2a3cd + cp GROUP_N_A + jr z, .SkipRaikou + call JumpRoamMon ld a, b ld [wRoamMon1MapGroup], a ld a, c ld [wRoamMon1MapNumber], a -.asm_2a3a6 +.SkipRaikou ld a, [wRoamMon2MapGroup] - cp $ff - jr z, .asm_2a3b8 - call Function2a3cd + cp GROUP_N_A + jr z, .SkipEntei + call JumpRoamMon ld a, b ld [wRoamMon2MapGroup], a ld a, c ld [wRoamMon2MapNumber], a -.asm_2a3b8 +.SkipEntei ld a, [wRoamMon3MapGroup] - cp $ff - jr z, .asm_2a3ca - call Function2a3cd + cp GROUP_N_A + jr z, .SkipSuicune + call JumpRoamMon ld a, b ld [wRoamMon3MapGroup], a ld a, c ld [wRoamMon3MapNumber], a -.asm_2a3ca +.SkipSuicune - jp Function2a3f6 + jp _BackUpMapIndices -Function2a3cd: ; 2a3cd -.asm_2a3cd +JumpRoamMon: ; 2a3cd +.loop ld hl, RoamMaps -.asm_2a3d0 - call Random - and $f - cp $10 - jr nc, .asm_2a3d0 +.innerloop1 ; This loop is completely unnecessary. + call Random ; Choose a random number + and $f ; Take the lower nybble only. This gives a number between 0 and 15. + cp $10 ; If the number is greater than or equal to 16, loop back and try again. + jr nc, .innerloop1 ; I'm sure you can guess why this check is bogus. inc a ld b, a -.asm_2a3db +.innerloop2 ; Loop to get hl to the address of the chosen roam map. dec b - jr z, .asm_2a3e4 -.asm_2a3de + jr z, .ok +.innerloop3 ; Loop to skip the current roam map, which is terminated by a 0. ld a, [hli] and a - jr nz, .asm_2a3de - jr .asm_2a3db - -.asm_2a3e4 + jr nz, .innerloop3 + jr .innerloop2 +; Check to see if the selected map is the one the player is currently in. If so, try again. +.ok ld a, [MapGroup] cp [hl] - jr nz, .asm_2a3f2 + jr nz, .done inc hl ld a, [MapNumber] cp [hl] - jr z, .asm_2a3cd + jr z, .loop dec hl - -.asm_2a3f2 +; Return the map group and number in bc. +.done ld a, [hli] ld b, a ld c, [hl] ret ; 2a3f6 -Function2a3f6: ; 2a3f6 +_BackUpMapIndices: ; 2a3f6 ld a, [wdfe4] ld [wdfe6], a ld a, [wdfe5] @@ -34483,71 +34499,76 @@ RoamMaps: ; 2a40f roam_map ROUTE_44, 3, ROUTE_42, ROUTE_43, ROUTE_45 roam_map ROUTE_45, 2, ROUTE_44, ROUTE_46 roam_map ROUTE_46, 2, ROUTE_45, ROUTE_29 - db $ff + db -1 ; 2a4a0 -Function2a4a0: ; 2a4a0 - and a - jr z, .asm_2a4a9 - cp $fc - jr nc, .asm_2a4a9 +ValidateTempWildMonSpecies: ; 2a4a0 +; Due to a development oversight, this function is called with the wild Pokemon's level, not its species, in a. and a + jr z, .nowildmon ; = 0 + cp NUM_POKEMON + 1 ; 252 + jr nc, .nowildmon ; >= 252 + and a ; 1 <= Species <= 251 ret -.asm_2a4a9 +.nowildmon scf ret ; 2a4ab -Function2a4ab: ; 2a4ab - callba Function90439 +RandomPhoneRareWildMon: ; 2a4ab +; Related to the phone? + callba GetCallerLocation ld d, b ld e, c - ld hl, WildMons1 - ld bc, $002f - call Function2a288 - jr c, .asm_2a4c6 - ld hl, WildMons3 - call Function2a288 - jr nc, .asm_2a514 + ld hl, JohtoGrassWildMons + ld bc, GRASS_WILDDATA_LENGTH + call LookUpWildmonsForMapDE + jr c, .GetGrassmon + ld hl, KantoGrassWildMons + call LookUpWildmonsForMapDE + jr nc, .done -.asm_2a4c6 +.GetGrassmon push hl - ld bc, $000d + ld bc, 5 + 4 * 2 ; Location of the level of the 5th wild Pokemon in that map add hl, bc ld a, [TimeOfDay] - ld bc, $000e + ld bc, 7 * 2 call AddNTimes -.asm_2a4d4 +.randloop1 call Random and $3 - jr z, .asm_2a4d4 + jr z, .randloop1 dec a ld c, a ld b, $0 rept 2 add hl, bc endr +; We now have the pointer to one of the last (rarest) three wild Pokemon found in that area. inc hl - ld c, [hl] + ld c, [hl] ; Contains the species index of this rare Pokemon pop hl - ld de, $0005 + ld de, 5 + 0 * 2 add hl, de - inc hl - ld b, $4 -.asm_2a4eb + inc hl ; Species index of the most common Pokemon on that route + ld b, 4 +.loop2 ld a, [hli] - cp c - jr z, .asm_2a514 + cp c ; Compare this most common Pokemon with the rare one stored in c. + jr z, .done inc hl dec b - jr nz, .asm_2a4eb + jr nz, .loop2 +; This Pokemon truly is rare. push bc dec c ld a, c call CheckSeenMon pop bc - jr nz, .asm_2a514 + jr nz, .done +; Since we haven't seen it, have the caller tell us about it. ld de, StringBuffer1 call CopyName1 ld a, c @@ -34559,7 +34580,7 @@ endr ld [ScriptVar], a ret -.asm_2a514 +.done ld a, $1 ld [ScriptVar], a ret @@ -34571,30 +34592,30 @@ UnknownText_0x2a51a: ; 0x2a51a db "@" ; 0x2a51f -Function2a51f: ; 2a51f - callba Function90439 +RandomPhoneWildMon: ; 2a51f + callba GetCallerLocation ld d, b ld e, c - ld hl, WildMons1 - ld bc, $002f - call Function2a288 - jr c, .asm_2a538 - ld hl, WildMons3 - call Function2a288 + ld hl, JohtoGrassWildMons + ld bc, GRASS_WILDDATA_LENGTH + call LookUpWildmonsForMapDE + jr c, .ok + ld hl, KantoGrassWildMons + call LookUpWildmonsForMapDE -.asm_2a538 - ld bc, $0005 +.ok + ld bc, 5 + 0 * 2 add hl, bc ld a, [TimeOfDay] inc a - ld bc, $000e -.asm_2a543 + ld bc, 7 * 2 +.loop dec a - jr z, .asm_2a549 + jr z, .done add hl, bc - jr .asm_2a543 + jr .loop -.asm_2a549 +.done call Random and $3 ld c, a @@ -34608,13 +34629,13 @@ endr call GetPokemonName ld hl, StringBuffer1 ld de, StringBuffer4 - ld bc, $000b + ld bc, PKMN_NAME_LENGTH jp CopyBytes ; 2a567 RandomPhoneMon: ; 2a567 ; Get a random monster owned by the trainer who's calling. - callba Function90439 + callba GetCallerLocation ld hl, TrainerGroups ld a, d dec a @@ -34697,22 +34718,22 @@ endr ; 2a5e9 -WildMons1: ; 0x2a5e9 +JohtoGrassWildMons: ; 0x2a5e9 INCLUDE "data/wild/johto_grass.asm" -WildMons2: ; 0x2b11d +JohtoWaterWildMons: ; 0x2b11d INCLUDE "data/wild/johto_water.asm" -WildMons3: ; 0x2b274 +KantoGrassWildMons: ; 0x2b274 INCLUDE "data/wild/kanto_grass.asm" -WildMons4: ; 0x2b7f7 +KantoWaterWildMons: ; 0x2b7f7 INCLUDE "data/wild/kanto_water.asm" -WildMons5: ; 0x2b8d0 +SwarmGrassWildMons: ; 0x2b8d0 INCLUDE "data/wild/swarm_grass.asm" -WildMons6: ; 0x2b92f +SwarmWaterWildMons: ; 0x2b92f INCLUDE "data/wild/swarm_water.asm" @@ -36643,7 +36664,7 @@ AIScoring: ; 38591 INCLUDE "battle/ai/scoring.asm" -Function3952d: ; 3952d +GetTrainerClassName: ; 3952d ld hl, RivalName ld a, c cp RIVAL1 @@ -38721,7 +38742,7 @@ _KrisMailBoxMenu: ; 0x447a0 ; 0x447b4 .EmptyMailboxText ; 0x447b4 - TX_FAR _EmptyMailboxText + text_jump _EmptyMailboxText db "@" InitMail: ; 0x447b9 @@ -38791,7 +38812,7 @@ Function44806: ; 0x44806 xor a ld [hBGMapMode], a call Function352f - call DrawOnMap + call UpdateSprites ld a, [wd0f1] ld [wcf88], a ld a, [OBPals + 8 * 6] @@ -38869,15 +38890,15 @@ Function4484a: ; 0x4484a ; 0x448ac .PutAwayText ; 0x448ac - TX_FAR ClearedMailPutAwayText + text_jump ClearedMailPutAwayText db "@" .PackFullText ; 0x448b1 - TX_FAR MailPackFullText + text_jump MailPackFullText db "@" .MessageLostText ; 0x448b6 - TX_FAR MailMessageLostText + text_jump MailMessageLostText db "@" .Function448bb: ; 0x448bb @@ -38939,15 +38960,15 @@ Function4484a: ; 0x4484a ; 0x4493c .HoldingMailText ; 0x4493c - TX_FAR MailAlreadyHoldingItemText + text_jump MailAlreadyHoldingItemText db "@" .EggText ; 0x44941 - TX_FAR MailEggText + text_jump MailEggText db "@" .MailMovedText ; 0x44946 - TX_FAR MailMovedFromBoxText + text_jump MailMovedFromBoxText db "@" .Cancel @@ -43933,31 +43954,31 @@ Function4aa6e: ; 4aa6e Function4aa7a: ; 4aa7a ld hl, DefaultFlypoint ld d, $3 -.asm_4aa7f - ld e, $6 +.loop + ld e, PARTY_LENGTH ld a, [hli] push de push hl - cp $ff - jr z, .asm_4aab3 - ld hl, wc314 + cp -1 + jr z, .done + ld hl, wPartyMonMenuIconAnims inc a ld d, a -.asm_4aa8d +.inner_loop ld a, [hl] and a - jr z, .asm_4aaa5 + jr z, .next cp d - jr z, .asm_4aa9a - jr .asm_4aaa5 + jr z, .same_as_d + jr .next ld a, $3 - jr .asm_4aa9c + jr .proceed -.asm_4aa9a +.same_as_d ld a, $2 -.asm_4aa9c +.proceed push hl ld c, l ld b, h @@ -43966,32 +43987,32 @@ Function4aa7a: ; 4aa7a ld [hl], a pop hl -.asm_4aaa5 +.next ld bc, $0010 add hl, bc dec e - jr nz, .asm_4aa8d + jr nz, .inner_loop pop hl pop de dec d - jr nz, .asm_4aa7f - jr .asm_4aab5 + jr nz, .loop + jr .finished -.asm_4aab3 +.done pop hl pop de -.asm_4aab5 +.finished ret ; 4aab6 Function4aab6: ; 4aab6 ld hl, DefaultFlypoint ld d, $3 -.asm_4aabb +.loop ld a, [hli] - cp $ff - jr z, .asm_4aad2 + cp -1 + jr z, .done push de push hl hlcoord 0, 1 @@ -44001,9 +44022,9 @@ Function4aab6: ; 4aab6 pop hl pop de dec d - jr nz, .asm_4aabb + jr nz, .loop -.asm_4aad2 +.done ret ; 4aad3 @@ -44011,12 +44032,12 @@ Function4aad3: ; 4aad3 ld hl, PartyCount ld a, [hli] and a - ret z + ret z ; Nothing in your party ld c, a xor a ld [$ffb0], a -.asm_4aadd +.loop push bc push hl ld e, 0 @@ -44027,7 +44048,7 @@ Function4aad3: ; 4aad3 pop hl pop bc dec c - jr nz, .asm_4aadd + jr nz, .loop call Function4aa7a callba Function8cf69 @@ -44037,11 +44058,11 @@ Function4aad3: ; 4aad3 Function4aafb: ; 4aafb ld a, [CurPartySpecies] cp EGG - jr z, .asm_4ab04 + jr z, .egg and a ret -.asm_4ab04 +.egg scf ret ; 4ab06 @@ -44055,10 +44076,10 @@ Function4ab06: ; 4ab06 ld b, a ld a, [hl] or b - jr nz, .asm_4ab19 + jr nz, .NotFainted scf -.asm_4ab19 +.NotFainted ret ; 4ab1a @@ -44563,7 +44584,7 @@ Function4ae5e: ; 4ae5e ld a, [hOAMUpdate] push af call ExitMenu - call DrawOnMap + call UpdateSprites xor a ld [hOAMUpdate], a call DelayFrame @@ -44578,18 +44599,18 @@ Function4ae5e: ; 4ae5e SECTION "bank13", ROMX, BANK[$13] -Function4c000:: ; 4c000 +SwapTextboxPalettes:: ; 4c000 hlcoord 0, 0 decoord 0, 0, AttrMap ld b, $12 -.asm_4c008 +.loop push bc - ld c, $14 -.asm_4c00b + ld c, SCREEN_WIDTH +.innerloop ld a, [hl] push hl srl a - jr c, .asm_4c021 + jr c, .UpperNybble ld hl, TilesetPalettes add [hl] ld l, a @@ -44598,9 +44619,9 @@ Function4c000:: ; 4c000 ld h, a ld a, [hl] and $f - jr .asm_4c031 + jr .next -.asm_4c021 +.UpperNybble ld hl, TilesetPalettes add [hl] ld l, a @@ -44611,28 +44632,28 @@ Function4c000:: ; 4c000 swap a and $f -.asm_4c031 +.next pop hl ld [de], a res 7, [hl] inc hl inc de dec c - jr nz, .asm_4c00b + jr nz, .innerloop pop bc dec b - jr nz, .asm_4c008 + jr nz, .loop ret ; 4c03f -Function4c03f:: ; 4c03f +ScrollBGMapPalettes:: ; 4c03f ld hl, BGMapBuffer ld de, BGMapPalBuffer -.asm_4c045 +.loop ld a, [hl] push hl srl a - jr c, .asm_4c05b + jr c, .UpperNybble ld hl, TilesetPalettes add [hl] ld l, a @@ -44641,9 +44662,9 @@ Function4c03f:: ; 4c03f ld h, a ld a, [hl] and $f - jr .asm_4c06b + jr .next -.asm_4c05b +.UpperNybble ld hl, TilesetPalettes add [hl] ld l, a @@ -44654,14 +44675,14 @@ Function4c03f:: ; 4c03f swap a and $f -.asm_4c06b +.next pop hl ld [de], a res 7, [hl] inc hl inc de dec c - jr nz, .asm_4c045 + jr nz, .loop ret ; 4c075 @@ -46344,7 +46365,7 @@ StatsScreenInit_gotaddress: ; 4dc94 push hl call WhiteBGMap call ClearTileMap - call DrawOnMap + call UpdateSprites callba Functionfb53e pop hl call _hl_ @@ -49428,11 +49449,11 @@ Function506ef: ; 506ef ld hl, StatusFlags2 bit 2, [hl] jr nz, .asm_50712 - callba Function2a111 + callba GetMapEncounterRate ld a, b and a jr z, .asm_5071e - callba Function2a14f + callba ChooseWildEncounter jr nz, .asm_5071e jr .asm_50718 @@ -50411,42 +50432,42 @@ Function50db9: ; 50db9 ld a, [wd263] cp $1 - jr nz, .asm_50dca + jr nz, .check_party_ot_name ld hl, OTPartyCount ld de, OTPartyMonOT ld a, ENEMY_OT_NAME - jr .asm_50dfc -.asm_50dca + jr .done +.check_party_ot_name cp $4 - jr nz, .asm_50dd8 + jr nz, .check_mon_name ld hl, PartyCount ld de, PartyMonOT ld a, PARTY_OT_NAME - jr .asm_50dfc -.asm_50dd8 + jr .done +.check_mon_name cp $5 - jr nz, .asm_50de6 + jr nz, .check_item_name ld hl, OBPals + 8 * 6 ld de, PokemonNames ld a, PKMN_NAME - jr .asm_50dfc -.asm_50de6 + jr .done +.check_item_name cp $2 - jr nz, .asm_50df4 + jr nz, .check_ob_item_name ld hl, NumItems ld de, ItemNames ld a, ITEM_NAME - jr .asm_50dfc -.asm_50df4 + jr .done +.check_ob_item_name ld hl, OBPals + 8 * 6 ld de, ItemNames ld a, ITEM_NAME -.asm_50dfc +.done ld [wcf61], a ld a, l ld [wd100], a @@ -52350,7 +52371,7 @@ EngineFlagAction:: ; 80430 .ceiling ld a, e - cp $a2 + cp NUM_ENGINE_FLAGS jr c, .read ; Invalid flags are treated as flag 00. @@ -52480,7 +52501,7 @@ VarActionTable: ; 80671 dwb wSpecialPhoneCallID, $00 dwb wcf64, $00 dwb wdca4, $00 - dwb wdbf9, $40 + dwb wCurrentCaller, $40 dwb wdc4b, $40 dwb wdc4a, $40 dwb wdc58, $00 @@ -55176,10 +55197,10 @@ Function84753: ; 84753 Function84757: ; 84757 ld a, [wca88] - cp $ff + cp -1 jr nz, .c_directly_below_e5 ld a, [wca89] - cp $ff + cp -1 jr z, .asm_8477f .c_directly_below_e5 @@ -56278,7 +56299,7 @@ Function88055: ; 88055 xor a ld [hBGMapMode], a call Function352f - call DrawOnMap + call UpdateSprites call Function350c ld a, [wcf73] cp $2 @@ -56348,7 +56369,7 @@ Function880c2: ; 880c2 xor a ld [hBGMapMode], a call Function1cbb - call DrawOnMap + call UpdateSprites call Function88116 call Function88126 call Function321c @@ -61465,7 +61486,7 @@ Special_DisplayUnownWords: ; 8ae68 xor a ld [hBGMapMode], a call Function1cbb - call DrawOnMap + call UpdateSprites call Function321c call Function1cfd inc hl @@ -61648,7 +61669,7 @@ SpecialBuenasPassword: ; 8af6b call CopyMenuDataHeader ld a, [wdc4a] ld c, a - callba Functionb8f8f + callba GetBuenasPassword ld a, [wcf83] add c add $2 @@ -61701,7 +61722,7 @@ Function8afbd: ; 8afbd ld a, [MenuSelection] add c ld c, a - callba Functionb8f8f + callba GetBuenasPassword pop hl call PlaceString ret @@ -61724,7 +61745,7 @@ SpecialBuenaPrize: ; 8afd4 .asm_8aff1 call DelayFrame - call DrawOnMap + call UpdateSprites call Function8b097 call Function8b0e2 jr z, .asm_8b05f @@ -61844,7 +61865,7 @@ Function8b09e: ; 8b09e ld hl, MenuDataHeader_0x8b0d1 call CopyMenuDataHeader call Function1cbb - call DrawOnMap + call UpdateSprites call Function1cfd ld bc, $0015 add hl, bc @@ -61893,7 +61914,7 @@ Function8b0e2: ; 8b0e2 ld [wcf76], a ld [hBGMapMode], a call Function352f - call DrawOnMap + call UpdateSprites call Function350c ld a, [MenuSelection] ld c, a @@ -63154,7 +63175,7 @@ Function8b7bd: ; 8b7bd ld c, $12 call Function8b703 call Function8b75d - call DrawOnMap + call UpdateSprites call Function89209 call Function350c call Function8920f @@ -63957,7 +63978,7 @@ Function8c26d: ; 8c26d cp $4 jr z, .asm_8c288 callba Function6454 - call DrawOnMap + call UpdateSprites call DelayFrame call Function8c2a0 call Function8cf4f @@ -65187,33 +65208,33 @@ Function8cbe6: ; 8cbe6 (23:4be6) Special_MagnetTrain: ; 8cc04 ld a, [ScriptVar] and a - jr nz, .asm_8cc14 - ld a, $1 + jr nz, .ToGoldenrod + ld a, 1 ; forwards lb bc, $40, $60 ld de, $fca0 - jr .asm_8cc1c + jr .continue -.asm_8cc14 - ld a, $ff +.ToGoldenrod + ld a, -1 ; backwards lb bc, $c0, $a0 ld de, $b460 -.asm_8cc1c +.continue ld h, a ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld a, h - ld [wd191], a + ld [w5_d191], a ld a, c - ld [wd192], a + ld [w5_d192], a ld a, b - ld [wd193], a + ld [w5_d193], a ld a, e - ld [wd194], a + ld [w5_d194], a ld a, d - ld [wd195], a + ld [w5_d195], a ld a, [hSCX] push af ld a, [hSCY] @@ -65223,24 +65244,24 @@ Special_MagnetTrain: ; 8cc04 ld a, [hl] push af ld [hl], $1 -.asm_8cc48 +.loop ld a, [wcf63] and a - jr z, .asm_8cc66 + jr z, .initialize bit 7, a - jr nz, .asm_8cc6b + jr nz, .done callab Function8cf69 call Function8cdf7 call Function8cc99 call Function3b0c call DelayFrame - jr .asm_8cc48 + jr .loop -.asm_8cc66 +.initialize call Function8ceae - jr .asm_8cc48 + jr .loop -.asm_8cc6b +.done pop af ld [hVBlank], a call WhiteBGMap @@ -65648,10 +65669,26 @@ Function8ceae: ; 8ceae ret ; 8ceff -MagnetTrainTilemap1: db $1f, $05, $06, $0a, $0a, $0a, $09, $0a, $0a, $0a, $0a, $0a, $0a, $09, $0a, $0a, $0a, $0b, $0c, $1f -MagnetTrainTilemap2: db $14, $15, $16, $1a, $1a, $1a, $19, $1a, $1a, $1a, $1a, $1a, $1a, $19, $1a, $1a, $1a, $1b, $1c, $1d -MagnetTrainTilemap3: db $24, $25, $26, $27, $07, $2f, $29, $28, $28, $28, $28, $28, $28, $29, $07, $2f, $2a, $2b, $2c, $2d -MagnetTrainTilemap4: db $20, $1f, $2e, $1f, $17, $00, $2e, $1f, $1f, $1f, $1f, $1f, $1f, $2e, $17, $00, $1f, $2e, $1f, $0f +MagnetTrainTilemap1: + db $1f, $05, $06, $0a, $0a + db $0a, $09, $0a, $0a, $0a + db $0a, $0a, $0a, $09, $0a + db $0a, $0a, $0b, $0c, $1f +MagnetTrainTilemap2: + db $14, $15, $16, $1a, $1a + db $1a, $19, $1a, $1a, $1a + db $1a, $1a, $1a, $19, $1a + db $1a, $1a, $1b, $1c, $1d +MagnetTrainTilemap3: + db $24, $25, $26, $27, $07 + db $2f, $29, $28, $28, $28 + db $28, $28, $28, $29, $07 + db $2f, $2a, $2b, $2c, $2d +MagnetTrainTilemap4: + db $20, $1f, $2e, $1f, $17 + db $00, $2e, $1f, $1f, $1f + db $1f, $1f, $1f, $2e, $17 + db $00, $1f, $2e, $1f, $0f ; 8cf4f Function8cf4f: ; 8cf4f @@ -65695,105 +65732,105 @@ Function8cf69: ; 8cf69 ; 8cf7a Function8cf7a: ; 8cf7a - ld hl, wc314 - ld e, $a -.asm_8cf7f + ld hl, wPartyMonMenuIconAnims + ld e, 10 ; Do this first loop 10 times +.loop ld a, [hl] and a - jr z, .asm_8cf91 + jr z, .next ; Done with this iteration ld c, l ld b, h push hl push de call Function8d24b - call Function8d04c + call LoadBouncingMonIcon pop de pop hl - jr c, .asm_8cfa7 + jr c, .done -.asm_8cf91 +.next ld bc, $0010 add hl, bc dec e - jr nz, .asm_8cf7f + jr nz, .loop ld a, [wc3b5] ld l, a - ld h, $c4 -.asm_8cf9e + ld h, Sprites / $0100 +.loop2 ; Clear (Sprites + [wc3b5] --> SpritesEnd) ld a, l - cp $a0 - jr nc, .asm_8cfa7 + cp SpritesEnd % $0100 + jr nc, .done xor a ld [hli], a - jr .asm_8cf9e + jr .loop2 -.asm_8cfa7 +.done ret ; 8cfa8 Function8cfa8: ; 8cfa8 (23:4fa8) - ld hl, wc314 + ld hl, wPartyMonMenuIconAnims ld e, $a -.asm_8cfad +.loop ld a, [hl] and a - jr z, .asm_8cfbf + jr z, .next ld c, l ld b, h push hl push de call Function8d24b - call Function8d04c + call LoadBouncingMonIcon pop de pop hl - jr c, .asm_8cfd5 -.asm_8cfbf + jr c, .done +.next ld bc, $10 add hl, bc dec e - jr nz, .asm_8cfad + jr nz, .loop ld a, [wc3b5] ld l, a ld h, $c4 -.asm_8cfcc +.loop2 ld a, l cp $40 - jr nc, .asm_8cfd5 + jr nc, .done xor a ld [hli], a - jr .asm_8cfcc -.asm_8cfd5 + jr .loop2 +.done ret Function8cfd6:: ; 8cfd6 push de push af - ld hl, wc314 - ld e, $a -.asm_8cfdd + ld hl, wPartyMonMenuIconAnims + ld e, 2 * 4 + 2 ; 4 tiles for each frame, then one frame each for mail and item +.loop ld a, [hl] and a - jr z, .asm_8cfec + jr z, .found ld bc, $0010 add hl, bc dec e - jr nz, .asm_8cfdd + jr nz, .loop pop af pop de scf ret -.asm_8cfec +.found ld c, l ld b, h ld hl, wc3b4 inc [hl] ld a, [hl] and a - jr nz, .asm_8cff7 + jr nz, .initialized inc [hl] -.asm_8cff7 +.initialized pop af ld e, a ld d, 0 @@ -65854,25 +65891,26 @@ Function8d036: ; 8d036 Function8d03d: ; 8d03d (23:503d) - ld hl, wc314 + ld hl, wPartyMonMenuIconAnims ld bc, $10 ld e, $a xor a -.asm_8d046 +.loop ld [hl], a add hl, bc dec e - jr nz, .asm_8d046 + jr nz, .loop ret -Function8d04c: ; 8d04c +LoadBouncingMonIcon: ; 8d04c +; Populate Sprites with the bouncing mon icons call Function8d0ec call Function8d132 cp $fd - jr z, .asm_8d0b9 + jr z, .done cp $fc - jr z, .asm_8d0b6 + jr z, .almost call Function8d1a2 ld a, [wc3ba] add [hl] @@ -65887,7 +65925,7 @@ Function8d04c: ; 8d04c ld d, Sprites / $100 ld a, [hli] ld c, a -.asm_8d071 +.loop ld a, [wc3bc] ld b, a ld a, [wc3be] @@ -65926,20 +65964,20 @@ Function8d04c: ; 8d04c ld a, e ld [wc3b5], a cp SpritesEnd % $100 - jr nc, .asm_8d0bb + jr nc, .outofroom dec c - jr nz, .asm_8d071 + jr nz, .loop pop bc - jr .asm_8d0b9 + jr .done -.asm_8d0b6 +.almost call Function8d036 -.asm_8d0b9 +.done and a ret -.asm_8d0bb +.outofroom pop bc scf ret @@ -65950,12 +65988,12 @@ Function8d0be: ; 8d0be ld a, [hl] ld hl, wc3b8 bit 6, [hl] - jr z, .asm_8d0cc + jr z, .ok add $8 xor $ff inc a -.asm_8d0cc +.ok pop hl ret ; 8d0ce @@ -65965,12 +66003,12 @@ Function8d0ce: ; 8d0ce ld a, [hl] ld hl, wc3b8 bit 5, [hl] - jr z, .asm_8d0dc + jr z, .ok add $8 xor $ff inc a -.asm_8d0dc +.ok pop hl ret ; 8d0de @@ -66012,20 +66050,20 @@ Function8d109: ; 8d109 ld hl, wc300 ld b, a ld c, $a -.asm_8d111 +.loop ld a, [hli] cp b - jr z, .asm_8d11c + jr z, .ok inc hl dec c - jr nz, .asm_8d111 + jr nz, .loop xor a - jr .asm_8d11d + jr .done -.asm_8d11c +.ok ld a, [hl] -.asm_8d11d +.done pop bc pop hl ret @@ -66046,28 +66084,28 @@ Function8d120:: ; 8d120 Function8d132: ; 8d132 -.asm_8d132 +.loop ld hl, $0008 add hl, bc ld a, [hl] and a - jr z, .asm_8d142 + jr z, .ok dec [hl] call Function8d189 ld a, [hli] push af - jr .asm_8d163 + jr .skip -.asm_8d142 +.ok ld hl, $000a add hl, bc inc [hl] call Function8d189 ld a, [hli] cp $fe - jr z, .asm_8d17b + jr z, .minus_2 cp $ff - jr z, .asm_8d16d + jr z, .minus_1 push af ld a, [hl] push hl @@ -66080,7 +66118,7 @@ Function8d132: ; 8d132 ld [hl], a pop hl -.asm_8d163 +.skip ld a, [hl] and $c0 srl a @@ -66088,7 +66126,7 @@ Function8d132: ; 8d132 pop af ret -.asm_8d16d +.minus_1 xor a ld hl, $0008 add hl, bc @@ -66098,9 +66136,9 @@ Function8d132: ; 8d132 rept 2 dec [hl] endr - jr .asm_8d132 + jr .loop -.asm_8d17b +.minus_2 xor a ld hl, $0008 add hl, bc @@ -66109,7 +66147,7 @@ endr ld hl, $000a add hl, bc ld [hl], a - jr .asm_8d132 + jr .loop ; 8d189 Function8d189: ; 8d189 @@ -66143,7 +66181,7 @@ endr ret ; 8d1ac -Function8d1ac: ; 8d1ac +Function8d1ac: ; unreferenced push hl ld l, a ld h, 0 @@ -66220,7 +66258,7 @@ Function8d24b: ; 8d24b add hl, bc ld e, [hl] ld d, 0 - ld hl, Jumptable_8d25b + ld hl, .Jumptable rept 2 add hl, de endr @@ -66231,53 +66269,53 @@ endr ; 8d25b -Jumptable_8d25b: ; 8d25b (23:525b) - dw Function8d2a1 - dw Function8d2a2 - dw Function8d2b9 - dw Function8d2ea - dw Function8d302 - dw Function8d36c - dw Function8d37a - dw Function8d381 - dw Function8d3c3 - dw Function8d422 - dw Function8d429 - dw Function8d43e - dw Function8d373 - dw Function8d46e - dw Function8d47c - dw Function8d475 - dw Function8d483 - dw Function8d52a - dw Function8d543 - dw Function8d54a - dw Function8d578 - dw Function8d57f - dw Function8d5b0 - dw Function8d5e2 - dw Function8d607 - dw Function8d35a - dw Function8d6b7 - dw Function8d630 - dw Function8d637 - dw Function8d63e - dw Function8d666 - dw Function8d6be - dw Function8d680 - dw Function8d6a2 - dw Function8d6ae - - -Function8d2a1: ; 8d2a1 (23:52a1) - ret - -Function8d2a2: ; 8d2a2 (23:52a2) +.Jumptable: ; 8d25b (23:525b) + dw .zero + dw .one + dw .two + dw .three + dw .four + dw .five + dw .six + dw .seven + dw .eight + dw .nine + dw .ten + dw .eleven + dw .twelve + dw .thirteen + dw .fourteen + dw .fifteen + dw .sixteen + dw .seventeen + dw .eighteen + dw .nineteen + dw .twenty + dw .twentyone + dw .twentytwo + dw .twentythree + dw .twentyfour + dw .twentyfive + dw .twentysix + dw .twentyseven + dw .twentyeight + dw .twentynine + dw .thirty + dw .thirtyone + dw .thirtytwo + dw .thirtythree + dw .thirtyfour + + +.zero: ; 8d2a1 (23:52a1) + ret + +.one: ; 8d2a2 (23:52a2) ld a, [wcfa9] ld hl, $0 add hl, bc cp [hl] - jr z, Function8d2b9 + jr z, .two ld hl, $4 add hl, bc ld [hl], $10 @@ -66286,7 +66324,7 @@ Function8d2a2: ; 8d2a2 (23:52a2) ld [hl], $0 ret -Function8d2b9: ; 8d2b9 (23:52b9) +.two: ; 8d2b9 (23:52b9) ld hl, $4 add hl, bc ld [hl], $18 @@ -66323,7 +66361,7 @@ Function8d2b9: ; 8d2b9 (23:52b9) ld [hl], a ret -Function8d2ea: ; 8d2ea (23:52ea) +.three: ; 8d2ea (23:52ea) ld a, [wcfa9] ld hl, $0 add hl, bc @@ -66339,17 +66377,17 @@ Function8d2ea: ; 8d2ea (23:52ea) ld [hl], $18 ret -Function8d302: ; 8d302 (23:5302) - call Function8d6c5 +.four: ; 8d302 (23:5302) + call .anonymous_jumptable jp [hl] ; 8d306 (23:5306) -; Anonymous jumptable (see Function8d6c5) - dw Function8d30a - dw Function8d321 +; Anonymous jumptable (see .anonymous_jumptable) + dw .four_zero + dw .four_one ; 8d30a -Function8d30a: ; 8d30a +.four_zero: ; 8d30a call Function8d6d8 ld hl, $0000 add hl, bc @@ -66364,7 +66402,7 @@ Function8d30a: ; 8d30a add hl, bc ld [hl], a -Function8d321: ; 8d321 +.four_one: ; 8d321 ld hl, $0004 add hl, bc ld a, [hl] @@ -66401,7 +66439,7 @@ Function8d321: ; 8d321 ret ; 8d35a -Function8d35a: ; 8d35a (23:535a) +.twentyfive: ; 8d35a (23:535a) ld hl, $c add hl, bc ld a, [hl] @@ -66414,19 +66452,19 @@ Function8d35a: ; 8d35a (23:535a) ld [hl], a ret -Function8d36c: ; 8d36c (23:536c) +.five: ; 8d36c (23:536c) callab Function11a3b ret -Function8d373: ; 8d373 (23:5373) +.twelve: ; 8d373 (23:5373) callab Function120c1 ret -Function8d37a: ; 8d37a (23:537a) - callab Functione46ed +.six: ; 8d37a (23:537a) + callab GameFreakLogoJumper ret -Function8d381: ; 8d381 (23:5381) +.seven: ; 8d381 (23:5381) ld hl, $c add hl, bc ld a, [hl] @@ -66471,7 +66509,7 @@ endr call Function8d036 ret -Function8d3c3: ; 8d3c3 (23:53c3) +.eight: ; 8d3c3 (23:53c3) ld hl, $c add hl, bc ld a, [hli] @@ -66537,11 +66575,11 @@ Function8d3c3: ; 8d3c3 (23:53c3) call Function8d036 ret -Function8d422: ; 8d422 (23:5422) +.nine: ; 8d422 (23:5422) callab Function9321d ret -Function8d429: ; 8d429 (23:5429) +.ten: ; 8d429 (23:5429) callab Function932ac ld hl, wcf64 ld a, [hl] @@ -66552,7 +66590,7 @@ Function8d429: ; 8d429 (23:5429) call Function8d120 ret -Function8d43e: ; 8d43e (23:543e) +.eleven: ; 8d43e (23:543e) ld hl, $b add hl, bc ld a, [hl] @@ -66582,33 +66620,33 @@ Function8d43e: ; 8d43e (23:543e) ld [hl], a ret -Function8d46e: ; 8d46e (23:546e) +.thirteen: ; 8d46e (23:546e) callab Functione00ed ret -Function8d475: ; 8d475 (23:5475) +.fifteen: ; 8d475 (23:5475) callab Function90d41 ret -Function8d47c: ; 8d47c (23:547c) +.fourteen: ; 8d47c (23:547c) callab Functione21a1 ret -Function8d483: ; 8d483 (23:5483) - call Function8d6c5 +.sixteen: ; 8d483 (23:5483) + call .anonymous_jumptable jp [hl] ; 8d487 (23:5487) -; Anonymous jumptable (see Function8d6c5) - dw Function8d493 - dw Function8d4d5 - dw Function8d4a5 - dw Function8d4b8 - dw Function8d4e8 - dw Function8d526 +; Anonymous jumptable (see .anonymous_jumptable) + dw .sixteen_zero + dw .sixteen_one + dw .sixteen_two + dw .sixteen_three + dw .sixteen_four + dw .sixteen_five ; 8d493 -Function8d493: ; 8d493 +.sixteen_zero: ; 8d493 ld a, $14 call Function8d120 ld hl, $000b @@ -66620,7 +66658,7 @@ Function8d493: ; 8d493 ret ; 8d4a5 -Function8d4a5: ; 8d4a5 +.sixteen_two: ; 8d4a5 ld hl, $000c add hl, bc ld a, [hl] @@ -66635,7 +66673,7 @@ Function8d4a5: ; 8d4a5 add hl, bc ld [hl], $40 -Function8d4b8: ; 8d4b8 +.sixteen_three: ; 8d4b8 ld hl, $000c add hl, bc ld a, [hl] @@ -66652,10 +66690,10 @@ Function8d4b8: ; 8d4b8 .asm_8d4cd ld de, SFX_GOT_SAFARI_BALLS call PlaySFX - jr Function8d526 + jr .sixteen_five ; 8d4d5 -Function8d4d5: ; 8d4d5 +.sixteen_one: ; 8d4d5 ld hl, $000b add hl, bc ld [hl], $4 @@ -66668,7 +66706,7 @@ Function8d4d5: ; 8d4d5 ret ; 8d4e8 -Function8d4e8: ; 8d4e8 +.sixteen_four: ; 8d4e8 ld hl, $000d add hl, bc ld a, [hl] @@ -66708,12 +66746,12 @@ Function8d4e8: ; 8d4e8 call Function8d6d8 ret -Function8d526: ; 8d526 +.sixteen_five: ; 8d526 call Function8d036 ret ; 8d52a -Function8d52a: ; 8d52a (23:552a) +.seventeen: ; 8d52a (23:552a) ld hl, $4 add hl, bc ld a, [hl] @@ -66731,11 +66769,11 @@ endr call Function8d036 ret -Function8d543: ; 8d543 (23:5543) +.eighteen: ; 8d543 (23:5543) callab Function29676 ret -Function8d54a: ; 8d54a (23:554a) +.nineteen: ; 8d54a (23:554a) ld hl, $c add hl, bc ld a, [hl] @@ -66766,11 +66804,11 @@ Function8d54a: ; 8d54a (23:554a) call Function8d036 ret -Function8d578: ; 8d578 (23:5578) +.twenty: ; 8d578 (23:5578) callab Function91640 ret -Function8d57f: ; 8d57f (23:557f) +.twentyone: ; 8d57f (23:557f) ld hl, $d add hl, bc ld e, [hl] @@ -66805,7 +66843,7 @@ endr ld [hl], a ret -Function8d5b0: ; 8d5b0 (23:55b0) +.twentytwo: ; 8d5b0 (23:55b0) ld hl, $5 add hl, bc ld a, [hl] @@ -66841,7 +66879,7 @@ endr ld [hl], a ret -Function8d5e2: ; 8d5e2 (23:55e2) +.twentythree: ; 8d5e2 (23:55e2) ld hl, $4 add hl, bc ld a, [hl] @@ -66867,7 +66905,7 @@ endr call Function8d036 ret -Function8d607: ; 8d607 (23:5607) +.twentyfour: ; 8d607 (23:5607) ld hl, $5 add hl, bc ld a, [hl] @@ -66897,15 +66935,15 @@ endr ld [hl], a ret -Function8d630: ; 8d630 (23:5630) +.twentyseven: ; 8d630 (23:5630) callba Function108bc7 ret -Function8d637: ; 8d637 (23:5637) +.twentyeight: ; 8d637 (23:5637) callba Function108be0 ret -Function8d63e: ; 8d63e (23:563e) +.twentynine: ; 8d63e (23:563e) ld a, [wcf65] and a jr nz, .asm_8d645 @@ -66930,7 +66968,7 @@ Function8d63e: ; 8d63e (23:563e) call Function8d120 ret -Function8d666: ; 8d666 (23:5666) +.thirty: ; 8d666 (23:5666) ld hl, $c add hl, bc ld a, [hl] @@ -66948,7 +66986,7 @@ Function8d666: ; 8d666 (23:5666) .asm_8d67f ret -Function8d680: ; 8d680 (23:5680) +.thirtytwo: ; 8d680 (23:5680) ld hl, $b add hl, bc ld d, [hl] @@ -66972,7 +67010,7 @@ endr ld [hl], a ret -Function8d6a2: ; 8d6a2 (23:56a2) +.thirtythree: ; 8d6a2 (23:56a2) ld a, [wcf64] cp $40 ret nz @@ -66980,7 +67018,7 @@ Function8d6a2: ; 8d6a2 (23:56a2) call Function8d120 ret -Function8d6ae: ; 8d6ae (23:56ae) +.thirtyfour: ; 8d6ae (23:56ae) ld hl, $5 add hl, bc ld a, [hl] @@ -66988,15 +67026,15 @@ Function8d6ae: ; 8d6ae (23:56ae) ld [hl], a ret -Function8d6b7: ; 8d6b7 (23:56b7) +.twentysix: ; 8d6b7 (23:56b7) callba Function11d0b6 ret -Function8d6be: ; 8d6be (23:56be) +.thirtyone: ; 8d6be (23:56be) callba Function49aa2 ret -Function8d6c5: ; 8d6c5 (23:56c5) +.anonymous_jumptable: ; 8d6c5 (23:56c5) ld hl, [sp+$0] ld e, [hl] inc hl @@ -67099,81 +67137,156 @@ Unknown_8d6e6: ; 8d6e6 dw Unknown_8d948 ; 8d76a -Unknown_8d76a: db $00,$20, $ff -Unknown_8d76d: db $00,$08, $01,$08, $fe -Unknown_8d772: db $3d,$08, $3e,$08, $fe -Unknown_8d777: db $3f,$08, $40,$08, $fe -Unknown_8d77c: db $00,$04, $01,$04, $fe -Unknown_8d781: db $3d,$04, $3e,$04, $fe -Unknown_8d786: db $3f,$04, $40,$04, $fe -Unknown_8d78b: db $00,$08, $01,$08, $00,$08, $01,$48, $fe -Unknown_8d794: db $63,$08, $64,$08, $63,$08, $64,$48, $fe -Unknown_8d79d: db $65,$08, $66,$08, $65,$08, $66,$48, $fe -Unknown_8d7a6: db $1e,$01, $1f,$01, $fe -Unknown_8d7ab: db $20,$01, $fd,$01, $fe -Unknown_8d7b0: db $21,$01, $fd,$01, $fe -Unknown_8d7b5: db $81,$0c, $82,$01, $83,$01, $82,$04, $81,$0c, $82,$0c, $83,$04, $84,$20, $85,$03, $86,$03, $87,$04, $88,$04, $89,$04, $8a,$0a, $8b,$07, $ff -Unknown_8d7d4: db $23,$03, $23,$83, $fe -Unknown_8d7d9: db $24,$02, $25,$02, $26,$02, $25,$02, $fe -Unknown_8d7e2: db $27,$07, $28,$07, $27,$87, $28,$47, $fe -Unknown_8d7eb: db $29,$07, $2a,$07, $29,$07, $2b,$07, $fe -Unknown_8d7f4: db $29,$07, $2c,$07, $2d,$07, $2c,$07, $29,$07, $ff -Unknown_8d7ff: db $2e,$14, $ff -Unknown_8d802: db $2f,$20, $ff -Unknown_8d805: db $30,$20, $ff -Unknown_8d808: db $30,$03, $31,$03, $30,$03, $31,$43, $fe -Unknown_8d811: db $32,$04, $33,$04, $34,$04, $fc -Unknown_8d818: db $35,$03, $36,$03, $fe -Unknown_8d81d: db $37,$07, $38,$07, $fe -Unknown_8d822: db $39,$20, $ff -Unknown_8d825: db $3b,$02, $3a,$02, $3b,$02, $ff -Unknown_8d82c: db $3c,$20, $ff -Unknown_8d82f: db $41,$08, $42,$08, $41,$08, $42,$48, $fe - db $43,$08, $44,$08, $fe - db $45,$08, $46,$08, $fe - db $47,$08, $48,$08, $fe - db $49,$01, $49,$41, $49,$c1, $49,$81, $fe - db $4a,$20, $ff - db $4b,$20, $ff - db $4c,$20, $ff - db $4d,$20, $ff - db $4e,$03, $fd,$03, $fe -Unknown_8d861: db $fd,$20, $ff -Unknown_8d864: db $4f,$20, $ff -Unknown_8d867: db $50,$02, $51,$10, $fd,$01, $52,$01, $fd,$01, $53,$01, $fc -Unknown_8d874: db $54,$20, $ff -Unknown_8d877: db $55,$20, $ff -Unknown_8d87a: db $55,$60, $ff -Unknown_8d87d: db $55,$a0, $ff -Unknown_8d880: db $55,$e0, $ff -Unknown_8d883: db $56,$0a, $57,$09, $58,$0a, $59,$0a, $58,$09, $5a,$0a, $fe -Unknown_8d890: db $50,$02, $5b,$02, $50,$02, $5b,$42, $fe -Unknown_8d899: db $5c,$02, $ff -Unknown_8d89c: db $5d,$02, $ff -Unknown_8d89f: db $5e,$02, $ff -Unknown_8d8a2: db $5f,$02, $ff -Unknown_8d8a5: db $60,$02, $ff -Unknown_8d8a8: db $61,$02, $ff -Unknown_8d8ab: db $62,$02, $ff -Unknown_8d8ae: db $32,$03, $33,$03, $34,$03, $30,$03, $31,$03, $30,$03, $31,$43, $30,$03, $31,$03, $30,$03, $31,$43, $30,$03, $31,$03, $30,$03, $31,$43, $ff -Unknown_8d8cd: db $30,$03, $31,$03, $30,$03, $31,$43, $30,$03, $31,$03, $30,$03, $31,$43, $30,$03, $31,$03, $30,$03, $31,$43, $32,$03, $33,$03, $34,$03, $fc -Unknown_8d8ec: db $67,$03, $68,$03, $fe -Unknown_8d8f1: db $6c,$03, $ff -Unknown_8d8f4: db $6d,$03, $ff -Unknown_8d8f7: db $69,$02, $6a,$02, $6b,$02, $fc -Unknown_8d8fe: db $6e,$03, $6f,$03, $70,$03, $71,$03, $fe -Unknown_8d907: db $71,$03, $6e,$07, $ff -Unknown_8d90c: db $72,$20, $73,$07, $74,$07, $ff -Unknown_8d913: db $75,$03, $ff -Unknown_8d916: db $76,$03, $77,$03, $78,$07, $fc -Unknown_8d91d: db $76,$43, $77,$43, $78,$47, $fc -Unknown_8d924: db $76,$83, $77,$83, $78,$87, $fc -Unknown_8d92b: db $76,$c3, $77,$c3, $78,$c7, $fc -Unknown_8d932: db $79,$03, $7a,$03, $7b,$03, $7c,$07, $7d,$07, $ff -Unknown_8d93d: db $7e,$03, $ff -Unknown_8d940: db $fd,$00, $ff -Unknown_8d943: db $7f,$08, $80,$08, $ff -Unknown_8d948: db $7f,$48, $80,$48, $ff +Unknown_8d76a: dw $2000 + db -1 +Unknown_8d76d: dw $0800, $0801 + db -2 +Unknown_8d772: dw $083d, $083e + db -2 +Unknown_8d777: dw $083f, $0840 + db -2 +Unknown_8d77c: dw $0400, $0401 + db -2 +Unknown_8d781: dw $043d, $043e + db -2 +Unknown_8d786: dw $043f, $0440 + db -2 +Unknown_8d78b: dw $0800, $0801, $0800, $4801 + db -2 +Unknown_8d794: dw $0863, $0864, $0863, $4864 + db -2 +Unknown_8d79d: dw $0865, $0866, $0865, $4866 + db -2 +Unknown_8d7a6: dw $011e, $011f + db -2 +Unknown_8d7ab: dw $0120, $01fd + db -2 +Unknown_8d7b0: dw $0121, $01fd + db -2 +Unknown_8d7b5: dw $0c81, $0182, $0183, $0482, $0c81, $0c82, $0483, $2084, $0385, $0386, $0487, $0488, $0489, $0a8a, $078b + db -1 +Unknown_8d7d4: dw $0323, $8323 + db -2 +Unknown_8d7d9: dw $0224, $0225, $0226, $0225 + db -2 +Unknown_8d7e2: dw $0727, $0728, $8727, $4728 + db -2 +Unknown_8d7eb: dw $0729, $072a, $0729, $072b + db -2 +Unknown_8d7f4: dw $0729, $072c, $072d, $072c, $0729 + db -1 +Unknown_8d7ff: dw $142e + db -1 +Unknown_8d802: dw $202f + db -1 +Unknown_8d805: dw $2030 + db -1 +Unknown_8d808: dw $0330, $0331, $0330, $4331 + db -2 +Unknown_8d811: dw $0432, $0433, $0434 + db -4 +Unknown_8d818: dw $0335, $0336 + db -2 +Unknown_8d81d: dw $0737, $0738 + db -2 +Unknown_8d822: dw $2039 + db -1 +Unknown_8d825: dw $023b, $023a, $023b + db -1 +Unknown_8d82c: dw $203c + db -1 +Unknown_8d82f: dw $0841, $0842, $0841, $4842 + db -2 + dw $0843, $0844 + db -2 + dw $0845, $0846 + db -2 + dw $0847, $0848 + db -2 + dw $0149, $4149, $c149, $8149 + db -2 + dw $204a + db -1 + dw $204b + db -1 + dw $204c + db -1 + dw $204d + db -1 + dw $034e, $03fd + db -2 +Unknown_8d861: dw $20fd + db -1 +Unknown_8d864: dw $204f + db -1 +Unknown_8d867: dw $0250, $1051, $01fd, $0152, $01fd, $0153 + db -4 +Unknown_8d874: dw $2054 + db -1 +Unknown_8d877: dw $2055 + db -1 +Unknown_8d87a: dw $6055 + db -1 +Unknown_8d87d: dw $a055 + db -1 +Unknown_8d880: dw $e055 + db -1 +Unknown_8d883: dw $0a56, $0957, $0a58, $0a59, $0958, $0a5a + db -2 +Unknown_8d890: dw $0250, $025b, $0250, $425b + db -2 +Unknown_8d899: dw $025c + db -1 +Unknown_8d89c: dw $025d + db -1 +Unknown_8d89f: dw $025e + db -1 +Unknown_8d8a2: dw $025f + db -1 +Unknown_8d8a5: dw $0260 + db -1 +Unknown_8d8a8: dw $0261 + db -1 +Unknown_8d8ab: dw $0262 + db -1 +Unknown_8d8ae: dw $0332, $0333, $0334, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331 + db -1 +Unknown_8d8cd: dw $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0332, $0333, $0334 + db -4 +Unknown_8d8ec: dw $0367, $0368 + db -2 +Unknown_8d8f1: dw $036c + db -1 +Unknown_8d8f4: dw $036d + db -1 +Unknown_8d8f7: dw $0269, $026a, $026b + db -4 +Unknown_8d8fe: dw $036e, $036f, $0370, $0371 + db -2 +Unknown_8d907: dw $0371, $076e + db -1 +Unknown_8d90c: dw $2072, $0773, $0774 + db -1 +Unknown_8d913: dw $0375 + db -1 +Unknown_8d916: dw $0376, $0377, $0778 + db -4 +Unknown_8d91d: dw $4376, $4377, $4778 + db -4 +Unknown_8d924: dw $8376, $8377, $8778 + db -4 +Unknown_8d92b: dw $c376, $c377, $c778 + db -4 +Unknown_8d932: dw $0379, $037a, $037b, $077c, $077d + db -1 +Unknown_8d93d: dw $037e + db -1 +Unknown_8d940: dw $00fd + db -1 +Unknown_8d943: dw $087f, $0880 + db -1 +Unknown_8d948: dw $487f, $4880 + db -1 ; 8d94d Unknown_8d94d: ; 8d94d @@ -68398,6 +68511,7 @@ Unknown_8e72a: ; 8e72a + Function8e72a: ; 8e72a add $10 Function8e72c: ; 8e72c @@ -68892,23 +69006,23 @@ GetGFXUnlessMobile: ; 8ea3f ; 8ea4a Function8ea4a: ; 8ea4a - ld hl, wc314 + ld hl, wPartyMonMenuIconAnims ld e, $6 ld a, [wcfa9] ld d, a -.asm_8ea53 +.loop ld a, [hl] and a - jr z, .asm_8ea69 + jr z, .next cp d - jr z, .asm_8ea5e + jr z, .loadwithtwo ld a, $0 - jr .asm_8ea60 + jr .ok -.asm_8ea5e +.loadwithtwo ld a, $2 -.asm_8ea60 +.ok push hl ld c, l ld b, h @@ -68917,21 +69031,21 @@ Function8ea4a: ; 8ea4a ld [hl], a pop hl -.asm_8ea69 +.next ld bc, $0010 add hl, bc dec e - jr nz, .asm_8ea53 + jr nz, .loop ret ; 8ea71 Function8ea71: ; 8ea71 - ld hl, wc314 + ld hl, wPartyMonMenuIconAnims ld e, $6 -.asm_8ea76 +.loop ld a, [hl] and a - jr z, .asm_8ea84 + jr z, .zero push hl ld c, l ld b, h @@ -68939,16 +69053,16 @@ Function8ea71: ; 8ea71 add hl, bc ld [hl], $1 pop hl -.asm_8ea84 +.zero ld bc, $10 add hl, bc dec e - jr nz, .asm_8ea76 + jr nz, .loop ret ; 8ea8c (23:6a8c) Function8ea8c: ; 8ea8c - ld hl, wc314 + ld hl, wPartyMonMenuIconAnims ld e, $6 ld a, [wd0e3] ld d, a @@ -69231,7 +69345,7 @@ Function90136:: ; 90136 (24:4136) dec a ld c, a ld b, 0 - ld hl, Unknown_90627 + ld hl, SpecialPhoneCallList ld a, 6 call AddNTimes ld a, [hli] @@ -69277,7 +69391,7 @@ Function90178: ; 90178 (24:4178) dec a ld c, a ld b, 0 - ld hl, Unknown_90627 + ld hl, SpecialPhoneCallList ld a, 6 call AddNTimes ret @@ -69306,7 +69420,7 @@ Function90199: ; 90199 (24:4199) and a jr nz, .asm_901e7 ld a, b - ld [wdbf9], a + ld [wCurrentCaller], a ld hl, PhoneContacts ld bc, 12 call AddNTimes @@ -69375,7 +69489,7 @@ Function9020d: ; 9020d (24:420d) nop nop ld a, e - ld [wdbf9], a + ld [wCurrentCaller], a and a jr nz, .asm_9021d ld a, BANK(Unknown_90233) @@ -69455,7 +69569,7 @@ Function9027c: ; 9027c (24:427c) ret Phone_CallerTextboxWithName: ; 90292 (24:4292) - ld a, [wdbf9] + ld a, [wCurrentCaller] ld b, a call Function90363 ret @@ -69569,7 +69683,7 @@ Phone_StartRinging: ; 9033f ld de, SFX_CALL call PlaySFX call Phone_CallerTextbox - call DrawOnMap + call UpdateSprites callba Function4d188 ret ; 90355 @@ -69602,8 +69716,8 @@ endr Phone_CallerTextbox: ; 90375 hlcoord 0, 0 - ld b, $2 - ld c, $12 + ld b, 2 + ld c, SCREEN_WIDTH - 2 call TextBox ret ; 90380 @@ -69613,13 +69727,13 @@ Function90380: ; 90380 (24:4380) ld h, d ld l, e ld a, b - call Function9039a - call Function903a9 + call GetCallerTrainerClass + call GetCallerName ret Function9038a: ; 9038a (24:438a) ld a, c - call Function9039a + call GetCallerTrainerClass ld a, c ret nz ld a, b @@ -69630,10 +69744,10 @@ Function9038a: ; 9038a (24:438a) ld c, $1 ret -Function9039a: ; 9039a +GetCallerTrainerClass: ; 9039a push hl - ld hl, PhoneContacts - ld bc, 12 + ld hl, PhoneContacts + 0 ; PHONE_CONTACT_TRAINER_CLASS + ld bc, 12 ; PHONE_TABLE_WIDTH call AddNTimes ld a, [hli] ld b, [hl] @@ -69643,12 +69757,12 @@ Function9039a: ; 9039a ; 903a9 -Function903a9: ; 903a9 (24:43a9) +GetCallerName: ; 903a9 (24:43a9) ld a, c and a - jr z, .asm_903c5 + jr z, .NotTrainer - call Function90423 + call Phone_GetTrainerName push hl push bc call PlaceString @@ -69656,17 +69770,17 @@ Function903a9: ; 903a9 (24:43a9) ld [bc], a pop bc pop hl - ld de, 20 + 3 + ld de, SCREEN_WIDTH + 3 add hl, de - call Function9042e + call Phone_GetTrainerClassName call PlaceString ret -.asm_903c5 +.NotTrainer push hl ld c, b ld b, 0 - ld hl, Unknown_903d6 + ld hl, NonTrainerCallerNames rept 2 add hl, bc endr @@ -69678,23 +69792,23 @@ endr ret ; 903d6 (24:43d6) -Unknown_903d6: ; 903d6 - dw String_903e2 - dw String_903ed - dw String_90402 - dw String_903f2 - dw String_903f8 - dw String_9040d - -String_903e2: db "----------@" -String_903ed: db "MOM:@" -String_903f2: db "BILL:@" -String_903f8: db "PROF.ELM:@" -String_90402: db "BIKE SHOP:@" -String_9040d: db "BUENA:", $22, " DISC JOCKEY@" +NonTrainerCallerNames: ; 903d6 + dw .none + dw .mom + dw .bikeshop + dw .bill + dw .elm + dw .buena + +.none: db "----------@" +.mom: db "MOM:@" +.bill: db "BILL:@" +.elm: db "PROF.ELM:@" +.bikeshop: db "BIKE SHOP:@" +.buena: db "BUENA:", $22, " DISC JOCKEY@" ; 90423 -Function90423: ; 90423 (24:4423) +Phone_GetTrainerName: ; 90423 (24:4423) push hl push bc callba GetTrainerName @@ -69702,23 +69816,23 @@ Function90423: ; 90423 (24:4423) pop hl ret -Function9042e: ; 9042e (24:442e) +Phone_GetTrainerClassName: ; 9042e (24:442e) push hl push bc - callba Function3952d + callba GetTrainerClassName pop bc pop hl ret -Function90439: ; 90439 - ld a, [wdbf9] - call Function9039a +GetCallerLocation: ; 90439 + ld a, [wCurrentCaller] + call GetCallerTrainerClass ld d, c ld e, b push de - ld a, [wdbf9] - ld hl, PhoneContacts + 2 - ld bc, 12 + ld a, [wCurrentCaller] + ld hl, PhoneContacts + 2 ; PHONE_CONTACT_MAP_GROUP + ld bc, 12 ; PHONE_TABLE_WIDTH call AddNTimes ld b, [hl] inc hl @@ -69747,72 +69861,72 @@ ENDM phone 0, 2, OAKS_LAB, 0, UnusedPhoneScript, 0, UnusedPhoneScript phone 0, 3, N_A, 7, BillPhoneScript1, 0, BillPhoneScript2 phone 0, 4, ELMS_LAB, 7, ElmPhoneScript1, 0, ElmPhoneScript2 - phone SCHOOLBOY, JACK1, NATIONAL_PARK, 7, UnknownScript_0xbd0d0, 7, UnknownScript_0xbd0fa - phone POKEFANF, BEVERLY1, NATIONAL_PARK, 7, UnknownScript_0xbd13f, 7, UnknownScript_0xbd158 - phone SAILOR, HUEY1, OLIVINE_LIGHTHOUSE_2F, 7, UnknownScript_0xbd17c, 7, UnknownScript_0xbd1a9 + phone SCHOOLBOY, JACK1, NATIONAL_PARK, 7, JackPhoneScript1, 7, JackPhoneScript2 + phone POKEFANF, BEVERLY1, NATIONAL_PARK, 7, BeverlyPhoneScript1, 7, BeverlyPhoneScript2 + phone SAILOR, HUEY1, OLIVINE_LIGHTHOUSE_2F, 7, HueyPhoneScript1, 7, HueyPhoneScript2 phone 0, 0, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript phone 0, 0, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript phone 0, 0, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone COOLTRAINERM, GAVEN3, ROUTE_26, 7, UnknownScript_0xbd1da, 7, UnknownScript_0xbd204 - phone COOLTRAINERF, BETH1, ROUTE_26, 7, UnknownScript_0xbd23d, 7, UnknownScript_0xbd267 - phone BIRD_KEEPER, JOSE2, ROUTE_27, 7, UnknownScript_0xbd294, 7, UnknownScript_0xbd2cb - phone COOLTRAINERF, REENA1, ROUTE_27, 7, UnknownScript_0xbd31c, 7, UnknownScript_0xbd346 - phone YOUNGSTER, JOEY1, ROUTE_30, 7, UnknownScript_0xbd373, 7, UnknownScript_0xbd3a0 - phone BUG_CATCHER, WADE1, ROUTE_31, 7, UnknownScript_0xbd3d1, 7, UnknownScript_0xbd428 - phone FISHER, RALPH1, ROUTE_32, 7, UnknownScript_0xbd4d2, 7, UnknownScript_0xbd509 - phone PICNICKER, LIZ1, ROUTE_32, 7, UnknownScript_0xbd560, 7, UnknownScript_0xbd58d - phone HIKER, ANTHONY2, ROUTE_33, 7, UnknownScript_0xbd634, 7, UnknownScript_0xbd66b - phone CAMPER, TODD1, ROUTE_34, 7, UnknownScript_0xbd6c1, 7, UnknownScript_0xbd6f5 - phone PICNICKER, GINA1, ROUTE_34, 7, UnknownScript_0xbd743, 7, UnknownScript_0xbd784 - phone JUGGLER, IRWIN1, ROUTE_35, 7, UnknownScript_0xbd7e7, 7, UnknownScript_0xbd7fd - phone BUG_CATCHER, ARNIE1, ROUTE_35, 7, UnknownScript_0xbd813, 7, UnknownScript_0xbd84a - phone SCHOOLBOY, ALAN1, ROUTE_36, 7, UnknownScript_0xbd8a6, 7, UnknownScript_0xbd8dd + phone COOLTRAINERM, GAVEN3, ROUTE_26, 7, GavenPhoneScript1, 7, GavenPhoneScript2 + phone COOLTRAINERF, BETH1, ROUTE_26, 7, BethPhoneScript1, 7, BethPhoneScript2 + phone BIRD_KEEPER, JOSE2, ROUTE_27, 7, JosePhoneScript1, 7, JosePhoneScript2 + phone COOLTRAINERF, REENA1, ROUTE_27, 7, ReenaPhoneScript1, 7, ReenaPhoneScript2 + phone YOUNGSTER, JOEY1, ROUTE_30, 7, JoeyPhoneScript1, 7, JoeyPhoneScript2 + phone BUG_CATCHER, WADE1, ROUTE_31, 7, WadePhoneScript1, 7, WadePhoneScript2 + phone FISHER, RALPH1, ROUTE_32, 7, RalphPhoneScript1, 7, RalphPhoneScript2 + phone PICNICKER, LIZ1, ROUTE_32, 7, LizPhoneScript1, 7, LizPhoneScript2 + phone HIKER, ANTHONY2, ROUTE_33, 7, AnthonyPhoneScript1, 7, AnthonyPhoneScript2 + phone CAMPER, TODD1, ROUTE_34, 7, ToddPhoneScript1, 7, ToddPhoneScript2 + phone PICNICKER, GINA1, ROUTE_34, 7, GinaPhoneScript1, 7, GinaPhoneScript2 + phone JUGGLER, IRWIN1, ROUTE_35, 7, IrwinPhoneScript1, 7, IrwinPhoneScript2 + phone BUG_CATCHER, ARNIE1, ROUTE_35, 7, ArniePhoneScript1, 7, ArniePhoneScript2 + phone SCHOOLBOY, ALAN1, ROUTE_36, 7, AlanPhoneScript1, 7, AlanPhoneScript2 phone 0, 0, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone LASS, DANA1, ROUTE_38, 7, UnknownScript_0xbd930, 7, UnknownScript_0xbd967 - phone SCHOOLBOY, CHAD1, ROUTE_38, 7, UnknownScript_0xbd9c6, 7, UnknownScript_0xbd9f0 - phone POKEFANM, DEREK1, ROUTE_39, 7, UnknownScript_0xbda35, 7, UnknownScript_0xbda6e - phone FISHER, TULLY1, ROUTE_42, 7, UnknownScript_0xbdaac, 7, UnknownScript_0xbdae3 - phone POKEMANIAC, BRENT1, ROUTE_43, 7, UnknownScript_0xbdb36, 7, UnknownScript_0xbdb60 - phone PICNICKER, TIFFANY3, ROUTE_43, 7, UnknownScript_0xbdb99, 7, UnknownScript_0xbdbd0 - phone BIRD_KEEPER, VANCE1, ROUTE_44, 7, UnknownScript_0xbdc73, 7, UnknownScript_0xbdc9d - phone FISHER, WILTON1, ROUTE_44, 7, UnknownScript_0xbdcce, 7, UnknownScript_0xbdd05 - phone BLACKBELT_T, KENJI3, ROUTE_45, 7, UnknownScript_0xbdd71, 7, UnknownScript_0xbdd7d - phone HIKER, PARRY1, ROUTE_45, 7, UnknownScript_0xbdd89, 7, UnknownScript_0xbddb3 - phone PICNICKER, ERIN1, ROUTE_46, 7, UnknownScript_0xbdde4, 7, UnknownScript_0xbde0e - phone 0, 5, GOLDENROD_DEPT_STORE_ROOF, 7, UnknownScript_0xa0b14, 7, UnknownScript_0xa0b26 + phone LASS, DANA1, ROUTE_38, 7, DanaPhoneScript1, 7, DanaPhoneScript2 + phone SCHOOLBOY, CHAD1, ROUTE_38, 7, ChadPhoneScript1, 7, ChadPhoneScript2 + phone POKEFANM, DEREK1, ROUTE_39, 7, DerekPhoneScript1, 7, DerekPhoneScript2 + phone FISHER, TULLY1, ROUTE_42, 7, TullyPhoneScript1, 7, TullyPhoneScript2 + phone POKEMANIAC, BRENT1, ROUTE_43, 7, BrentPhoneScript1, 7, BrentPhoneScript2 + phone PICNICKER, TIFFANY3, ROUTE_43, 7, TiffanyPhoneScript1, 7, TiffanyPhoneScript2 + phone BIRD_KEEPER, VANCE1, ROUTE_44, 7, VancePhoneScript1, 7, VancePhoneScript2 + phone FISHER, WILTON1, ROUTE_44, 7, WiltonPhoneScript1, 7, WiltonPhoneScript2 + phone BLACKBELT_T, KENJI3, ROUTE_45, 7, KenjiPhoneScript1, 7, KenjiPhoneScript2 + phone HIKER, PARRY1, ROUTE_45, 7, ParryPhoneScript1, 7, ParryPhoneScript2 + phone PICNICKER, ERIN1, ROUTE_46, 7, ErinPhoneScript1, 7, ErinPhoneScript2 + phone 0, 5, GOLDENROD_DEPT_STORE_ROOF, 7, BuenaPhoneScript1, 7, BuenaPhoneScript2 ; 90627 -Unknown_90627: ; 90627 +SpecialPhoneCallList: ; 90627 dw Function90188 - db $04 + db 4 dbw BANK(ElmPhoneScript2), ElmPhoneScript2 dw Function90188 - db $04 + db 4 dbw BANK(ElmPhoneScript2), ElmPhoneScript2 dw Function90188 - db $04 + db 4 dbw BANK(ElmPhoneScript2), ElmPhoneScript2 dw Function90188 - db $04 + db 4 dbw BANK(ElmPhoneScript2), ElmPhoneScript2 dw Function90197 - db $04 + db 4 dbw BANK(ElmPhoneScript2), ElmPhoneScript2 dw Function90197 - db $02 - dbw BANK(UnknownScript_0xa0b09), UnknownScript_0xa0b09 ; bike shop + db 2 + dbw BANK(BikeShopPhoneScript), BikeShopPhoneScript ; bike shop dw Function90197 - db $01 + db 1 dbw BANK(MomPhoneLectureScript), MomPhoneLectureScript dw Function90188 - db $04 + db 4 dbw BANK(ElmPhoneScript2), ElmPhoneScript2 ; 90657 @@ -70286,7 +70400,7 @@ Special_SetDayOfWeek: ; 90913 call Function90993 jr nc, .asm_9096a call ExitMenu - call DrawOnMap + call UpdateSprites ld hl, UnknownText_0x90a44 call PrintText call YesNoBox @@ -70420,7 +70534,7 @@ Function90a54: ; 90a54 ld bc, $0312 call ClearBox ld hl, UnknownText_0x90a6c - call Function13e5 + call PlaceWholeStringInBoxAtOnce ret ; 90a6c @@ -70451,7 +70565,7 @@ Function90a88: ; 90a88 ld bc, $0312 call ClearBox ld hl, UnknownText_0x90aa0 - call Function13e5 + call PlaceWholeStringInBoxAtOnce ret ; 90aa0 @@ -70479,7 +70593,7 @@ Function90abc: ; 90abc ld bc, $0312 call ClearBox ld hl, UnknownText_0x90acc - call Function13e5 + call PlaceWholeStringInBoxAtOnce ret ; 90acc @@ -71142,7 +71256,7 @@ Function90f86: ; 90f86 (24:4f86) callba Function1dd6bb ld hl, UnknownText_0x90faf bccoord 6, 6 - call Function13e5 + call PlaceWholeStringInBoxAtOnce ret ; 90fa8 (24:4fa8) @@ -71973,7 +72087,7 @@ Function91492: ; 91492 Function914ab: ; 914ab (24:54ab) - ld hl, wc324 + ld hl, wPartyMonMenuIconAnims + 16 ld bc, $90 xor a call ByteFill @@ -72232,17 +72346,6 @@ RadioChannels: ret -OAKS_POKEMON_TALK EQU 0 -POKEDEX_SHOW EQU 1 -POKEMON_MUSIC EQU 2 -LUCKY_CHANNEL EQU 3 -BUENAS_PASSWORD EQU 4 -PLACES_AND_PEOPLE EQU 5 -LETS_ALL_SING EQU 6 -ROCKET_RADIO EQU 7 -POKE_FLUTE_RADIO EQU 8 -UNOWN_RADIO EQU 9 -EVOLUTION_RADIO EQU 10 Function91753: ; 91753 (24:5753) xor a ; OAKS_POKEMON_TALK @@ -72378,7 +72481,7 @@ Function9183e: ; 9183e (24:583e) Function91853: ; 91853 ret -Function91854: ; 91854 (24:5854) +RadioMusicNone: ; 91854 (24:5854) push de ld a, e ld [wc6dc], a @@ -72661,11 +72764,11 @@ endr ld a, [hli] ld h, [hl] ld l, a - ld de, .asm_91a9b + ld de, .jump_return push de jp [hl] -.asm_91a9b +.jump_return push de hlcoord 0, 12 ld bc, $0412 @@ -72753,8 +72856,8 @@ _FlyMap: ; 91af3 ld a, [hl] and A_BUTTON jr nz, .pressedA - call Function91b73 - call Function91c17 + call FlyMapScroll + call GetMapCursorCoordinates callba Function8cf69 call DelayFrame jr .loop @@ -72788,50 +72891,50 @@ _FlyMap: ; 91af3 ret ; 91b73 -Function91b73: ; 91b73 +FlyMapScroll: ; 91b73 ld a, [StartFlypoint] ld e, a ld a, [EndFlypoint] ld d, a ld hl, $ffa9 ld a, [hl] - and $40 - jr nz, .asm_91b89 + and D_UP + jr nz, .ScrollNext ld a, [hl] - and $80 - jr nz, .asm_91b9b + and D_DOWN + jr nz, .ScrollPrev ret -.asm_91b89 +.ScrollNext ld hl, DefaultFlypoint ld a, [hl] cp d - jr nz, .asm_91b93 + jr nz, .NotAtEndYet ld a, e dec a ld [hl], a -.asm_91b93 +.NotAtEndYet inc [hl] - call Function91c3c - jr z, .asm_91b89 - jr .asm_91bab + call CheckIfVisitedFlypoint + jr z, .ScrollNext + jr .Finally -.asm_91b9b +.ScrollPrev ld hl, DefaultFlypoint ld a, [hl] cp e - jr nz, .asm_91ba5 + jr nz, .NotAtStartYet ld a, d inc a ld [hl], a -.asm_91ba5 +.NotAtStartYet dec [hl] - call Function91c3c - jr z, .asm_91b9b + call CheckIfVisitedFlypoint + jr z, .ScrollPrev -.asm_91bab +.Finally call TownMapBubble call WaitBGMap xor a @@ -72913,7 +73016,7 @@ TownMapBubble: ; 91bb5 ret ; 91c17 -Function91c17: ; 91c17 +GetMapCursorCoordinates: ; 91c17 ld a, [DefaultFlypoint] ld l, a ld h, $0 @@ -72935,7 +73038,8 @@ Function91c17: ; 91c17 ret ; 91c3c -Function91c3c: ; 91c3c +CheckIfVisitedFlypoint: ; 91c3c +; Check if the flypoint loaded in [hl] has been visited yet. push bc push de push hl @@ -73673,26 +73777,26 @@ Function92311: ; 92311 ld b, $2 call GetSGBLayout call Function32f9 -.asm_9236e +.loop call Functiona57 ld hl, hJoyPressed ld a, [hl] and B_BUTTON - jr nz, .asm_9238f + jr nz, .pressedB ld a, [hl] and A_BUTTON - jr nz, .asm_92393 + jr nz, .pressedA call Function923b8 - call Function91c17 + call GetMapCursorCoordinates callba Function8cf69 call DelayFrame - jr .asm_9236e + jr .loop -.asm_9238f - ld a, $ff +.pressedB + ld a, -1 jr .asm_9239f -.asm_92393 +.pressedA ld a, [DefaultFlypoint] ld l, a ld h, 0 @@ -75513,11 +75617,11 @@ Function930e9: ; 930e9 (24:70e9) ; 9311a (24:711a) UnknownText_9311a: ; 9311a - TX_FAR UnknownText_0x1c5079 + text_jump UnknownText_0x1c5079 db "@" UnknownText_9311f: ; 9311f - TX_FAR UnknownText_0x1c5092 + text_jump UnknownText_0x1c5092 db "@" Function93124: ; 93124 (24:7124) @@ -76277,7 +76381,7 @@ TreeMonEncounter: ; b81ea callba Function1060ef xor a - ld [wd22e], a + ld [TempWildMonSpecies], a ld [CurPartyLevel], a ld hl, TreeMonMaps @@ -76305,7 +76409,7 @@ TreeMonEncounter: ; b81ea RockMonEncounter: ; b8219 xor a - ld [wd22e], a + ld [TempWildMonSpecies], a ld [CurPartyLevel], a ld hl, RockMonMaps @@ -76630,7 +76734,7 @@ endr jr z, NoTreeMon ld a, [hli] - ld [wd22e], a + ld [TempWildMonSpecies], a ld a, [hl] ld [CurPartyLevel], a scf @@ -76638,7 +76742,7 @@ endr NoTreeMon: ; b843b xor a - ld [wd22e], a + ld [TempWildMonSpecies], a ld [CurPartyLevel], a ret ; b8443 @@ -84869,12 +84973,12 @@ Functione46dd: ; e46dd -Functione46ed: ; e46ed (39:46ed) +GameFreakLogoJumper: ; e46ed (39:46ed) ld hl, $b add hl, bc ld e, [hl] ld d, 0 - ld hl, Jumptable_e46fd + ld hl, GameFreakLogoScenes rept 2 add hl, de endr @@ -84883,21 +84987,21 @@ endr ld l, a jp [hl] -Jumptable_e46fd: ; e46fd (39:46fd) - dw Functione4707 - dw Functione470d - dw Functione4759 - dw Functione4776 - dw Functione47ab +GameFreakLogoScenes: ; e46fd (39:46fd) + dw GameFreakLogoScene1 + dw GameFreakLogoScene2 + dw GameFreakLogoScene3 + dw GameFreakLogoScene4 + dw GameFreakLogoScene5 -Functione4707: ; e4707 (39:4707) +GameFreakLogoScene1: ; e4707 (39:4707) ld hl, $b add hl, bc inc [hl] ret -Functione470d: ; e470d (39:470d) +GameFreakLogoScene2: ; e470d (39:470d) ld hl, $c add hl, bc ld a, [hl] @@ -84942,7 +85046,7 @@ Functione470d: ; e470d (39:470d) call PlaySFX ret -Functione4759: ; e4759 (39:4759) +GameFreakLogoScene3: ; e4759 (39:4759) ld hl, $d add hl, bc ld a, [hl] @@ -84961,7 +85065,7 @@ Functione4759: ; e4759 (39:4759) call PlaySFX ret -Functione4776: ; e4776 (39:4776) +GameFreakLogoScene4: ; e4776 (39:4776) ld hl, $d add hl, bc ld a, [hl] @@ -84972,7 +85076,7 @@ Functione4776: ; e4776 (39:4776) srl a ld e, a ld d, $0 - ld hl, Unknown_e47ac + ld hl, GameFreakLogoPalettes rept 2 add hl, de endr @@ -84995,11 +85099,11 @@ endr inc [hl] call Functione4687 -Functione47ab: ; e47ab (39:47ab) +GameFreakLogoScene5: ; e47ab (39:47ab) ret ; e47ac (39:47ac) -Unknown_e47ac: ; e47ac +GameFreakLogoPalettes: ; e47ac ; Ditto's color as it turns into the Game Freak logo. ; Fade from pink to orange. ; One color per step. @@ -85025,7 +85129,7 @@ GameFreakLogo: ; e47cc INCBIN "gfx/splash/logo.1bpp" ; e48ac -Functione48ac: ; e48ac +CrystalIntro: ; e48ac ld a, [rSVBK] push af ld a, $5 @@ -85035,25 +85139,24 @@ Functione48ac: ; e48ac ld a, [hVBlank] push af call Functione4901 - -Functione48bc: ; e48bc +.loop: ; e48bc call Functiona57 ld a, [$ffa9] and $f - jr nz, .asm_e48db + jr nz, .ShutOffMusic ld a, [wcf63] bit 7, a - jr nz, .asm_e48e1 - call Functione490f + jr nz, .done + call IntroSceneJumper callba Function8cf69 call DelayFrame - jp Functione48bc + jp .loop -.asm_e48db +.ShutOffMusic ld de, MUSIC_NONE call PlayMusic -.asm_e48e1 +.done call WhiteBGMap call ClearSprites call ClearTileMap @@ -85084,7 +85187,7 @@ Functione4901: ; e4901 ret ; e490f -Functione490f: ; e490f +IntroSceneJumper: ; e490f ld a, [wcf63] ld e, a ld d, 0 @@ -87754,7 +87857,7 @@ Functionfb877: ; fb877 call LowVolume call WhiteBGMap call ClearTileMap - call DrawOnMap + call UpdateSprites call ClearSprites ld a, [wPokedexStatus] push af @@ -89252,7 +89355,7 @@ Functionfd017: ; fd017 inc [hl] .ok ld a, 1 - ld [wdbf9], a + ld [wCurrentCaller], a ld bc, wd03f ld hl, 0 add hl, bc @@ -94654,4 +94757,4 @@ IF DEF(CRYSTAL11) INCBIN "misc/stadium2_2.bin" ELSE INCBIN "misc/stadium2_1.bin" -ENDC +ENDC
\ No newline at end of file |