; These functions seem to be related to backwards compatibility ValidateOTTrademon: ; fb57e ld a, [wd003] ld hl, OTPartyMon1Species call GetPartyLocation push hl ld a, [wd003] inc a ld c, a ld b, 0 ld hl, OTPartyCount add hl, bc ld a, [hl] pop hl cp EGG jr z, .matching_or_egg cp [hl] jr nz, .abnormal .matching_or_egg ld b, h ld c, l ld hl, MON_LEVEL add hl, bc ld a, [hl] cp MAX_LEVEL + 1 jr nc, .abnormal ld a, [wLinkMode] cp LINK_TIMECAPSULE jr nz, .normal ld hl, OTPartySpecies ld a, [wd003] ld c, a ld b, 0 add hl, bc ld a, [hl] ; Magnemite and Magneton's types changed ; from Electric to Electric/Steel. cp MAGNEMITE jr z, .normal cp MAGNETON jr z, .normal ld [CurSpecies], a call GetBaseData ld hl, wLinkOTPartyMonTypes add hl, bc add hl, bc ld a, [BaseType1] cp [hl] jr nz, .abnormal inc hl ld a, [BaseType2] cp [hl] jr nz, .abnormal .normal and a ret .abnormal scf ret ; fb5dd Functionfb5dd: ; fb5dd ld a, [wd002] ld d, a ld a, [PartyCount] ld b, a ld c, $0 .loop ld a, c cp d jr z, .next push bc ld a, c ld hl, PartyMon1HP call GetPartyLocation pop bc ld a, [hli] or [hl] jr nz, .done .next inc c dec b jr nz, .loop ld a, [wd003] ld hl, OTPartyMon1HP call GetPartyLocation ld a, [hli] or [hl] jr nz, .done scf ret .done and a ret ; fb60d PlaceTradePartnerNamesAndParty: ; fb60d hlcoord 4, 0 ld de, PlayerName call PlaceString ld a, $14 ld [bc], a hlcoord 4, 8 ld de, OTPlayerName call PlaceString ld a, $14 ld [bc], a hlcoord 7, 1 ld de, PartySpecies call .PlaceSpeciesNames hlcoord 7, 9 ld de, OTPartySpecies .PlaceSpeciesNames: ; fb634 ld c, $0 .loop ld a, [de] cp -1 ret z ld [wd265], a push bc push hl push de push hl ld a, c ld [hProduct], a call GetPokemonName pop hl call PlaceString pop de inc de pop hl ld bc, SCREEN_WIDTH add hl, bc pop bc inc c jr .loop ; fb656 KantoMonSpecials: ; fb656 INCLUDE "data/time_capsule/special_stats.asm" ; fb6ed INCLUDE "event/name_rater.asm" PlaySlowCry: ; fb841 ld a, [ScriptVar] call LoadCryHeader jr c, .done ld hl, CryPitch ld a, [hli] ld h, [hl] ld l, a ld bc, -$140 add hl, bc ld a, l ld [CryPitch], a ld a, h ld [CryPitch + 1], a ld hl, CryLength ld a, [hli] ld h, [hl] ld l, a ld bc, $60 add hl, bc ld a, l ld [CryLength], a ld a, h ld [CryLength + 1], a callba _PlayCryHeader call WaitSFX .done ret ; fb877 NewPokedexEntry: ; fb877 ld a, [hMapAnims] push af xor a ld [hMapAnims], a call LowVolume call ClearBGPalettes call ClearTileMap call UpdateSprites call ClearSprites ld a, [wPokedexStatus] push af ld a, [hSCX] add $5 ld [hSCX], a xor a ld [wPokedexStatus], a callba _NewPokedexEntry call WaitPressAorB_BlinkCursor ld a, $1 ld [wPokedexStatus], a callba DisplayDexEntry call WaitPressAorB_BlinkCursor pop af ld [wPokedexStatus], a call MaxVolume call RotateThreePalettesRight ld a, [hSCX] add -5 ; 251 ; NUM_POKEMON ld [hSCX], a call .ReturnFromDexRegistration pop af ld [hMapAnims], a ret ; fb8c8 .ReturnFromDexRegistration: ; fb8c8 call ClearTileMap call LoadFontsExtra call LoadStandardFont callba Pokedex_PlaceFrontpicTopLeftCorner call WaitBGMap2 callba GetEnemyMonDVs ld a, [hli] ld [TempMonDVs], a ld a, [hl] ld [TempMonDVs + 1], a ld b, SCGB_TRAINER_OR_MON_FRONTPIC_PALS call GetSGBLayout call SetPalettes ret ; fb8f1 ConvertMon_2to1: ; fb8f1 ; Takes the Gen-2 Pokemon number stored in wd265, finds it in the Pokered_MonIndices table, and returns its index in wd265. push bc push hl ld a, [wd265] ld b, a ld c, 0 ld hl, Pokered_MonIndices .loop inc c ld a, [hli] cp b jr nz, .loop ld a, c ld [wd265], a pop hl pop bc ret ; fb908 ConvertMon_1to2: ; fb908 ; Takes the Gen-1 Pokemon number stored in wd265 and returns the corresponding value from Pokered_MonIndices in wd265. push bc push hl ld a, [wd265] dec a ld hl, Pokered_MonIndices ld b, 0 ld c, a add hl, bc ld a, [hl] ld [wd265], a pop hl pop bc ret ; fb91c Pokered_MonIndices: ; fb91c INCLUDE "data/time_capsule/mon_order.asm" ; fba18