diff options
Diffstat (limited to 'main.asm')
-rw-r--r-- | main.asm | 4124 |
1 files changed, 4 insertions, 4120 deletions
@@ -8349,7 +8349,7 @@ Functionda96: ; da96 call CopyBytes ld a, [CurPartySpecies] - ld [wd265], a + ld [wNamedObjectIndexBuffer], a cp EGG jr z, .owned dec a @@ -25192,4125 +25192,9 @@ Function27a28: ; 27a28 SECTION "bankA", ROMX, BANK[$A] -LinkCommunications: ; 28000 - call WhiteBGMap - ld c, $50 - call DelayFrames - call ClearScreen - call ClearSprites - call UpdateSprites - xor a - ld [hSCX], a - ld [hSCY], a - ld c, $50 - call DelayFrames - call ClearScreen - call UpdateSprites - call LoadStandardFont - call LoadFontsBattleExtra - callba Function16d69a - call Function3200 - hlcoord 3, 8 - ld b, $2 - ld c, $c - ld d, h - ld e, l - callba Function4d35b - hlcoord 4, 10 - ld de, String28419 - call PlaceString - call Function28eff - call Function3200 - ld hl, wcf5d - xor a - ld [hli], a - ld [hl], $50 - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jp nz, Function28177 - -Function2805d: ; 2805d - call Function28426 - call Function28499 - call Function28434 - xor a - ld [wcf56], a - call Function87d - ld a, [hLinkPlayerNumber] - cp $2 - jr nz, .asm_28091 - ld c, $3 - call DelayFrames - xor a - ld [hSerialSend], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - call DelayFrame - xor a - ld [hSerialSend], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - -.asm_28091 - ld de, MUSIC_NONE - call PlayMusic - ld c, $3 - call DelayFrames - xor a - ld [rIF], a - ld a, $8 - ld [rIE], a - ld hl, wd1f3 - ld de, EnemyMonSpecies - ld bc, $11 - call Function75f - ld a, $fe - ld [de], a - ld hl, OverworldMap - ld de, wd26b - ld bc, $1a8 - call Function75f - ld a, $fe - ld [de], a - ld hl, wc608 - ld de, wc6d0 - ld bc, $c8 - call Function75f - xor a - ld [rIF], a - ld a, $1d - ld [rIE], a - call Function287ab - ld hl, wd26b - call Function287ca - push hl - ld bc, NAME_LENGTH - add hl, bc - ld a, [hl] - pop hl - and a - jp z, Function28b22 - cp $7 - jp nc, Function28b22 - ld de, OverworldMap - ld bc, $1a2 - call Function2879e - ld de, wc6d0 - ld hl, wc813 - ld c, $2 -.asm_280fe - ld a, [de] - inc de - and a - jr z, .asm_280fe - cp $fd - jr z, .asm_280fe - cp $fe - jr z, .asm_280fe - cp $ff - jr z, .asm_2811d - push hl - push bc - ld b, $0 - dec a - ld c, a - add hl, bc - ld a, $fe - ld [hl], a - pop bc - pop hl - jr .asm_280fe - -.asm_2811d - ld hl, wc90f - dec c - jr nz, .asm_280fe - ld hl, OverworldMap - ld de, wd26b - ld bc, NAME_LENGTH - call CopyBytes - ld de, OTPartyCount - ld a, [hli] - ld [de], a - inc de -.asm_28135 - ld a, [hli] - cp $ff - jr z, .asm_2814e - ld [wd265], a - push hl - push de - callab ConvertMon_1to2 - pop de - pop hl - ld a, [wd265] - ld [de], a - inc de - jr .asm_28135 - -.asm_2814e - ld [de], a - ld hl, wc813 - call Function2868a - ld a, OTPartyMonOT % $100 - ld [wd102], a - ld a, OTPartyMonOT / $100 - ld [wd103], a - ld de, MUSIC_NONE - call PlayMusic - ld a, [hLinkPlayerNumber] - cp $2 - ld c, 66 - call z, DelayFrames - ld de, MUSIC_ROUTE_30 - call PlayMusic - jp Function287e3 -; 28177 - -Function28177: ; 28177 - call Function28426 - call Function28595 - call Function28434 - call Function29dba - ld a, [ScriptVar] - and a - jp z, Function283b2 - ld a, [hLinkPlayerNumber] - cp $2 - jr nz, .asm_281ae - ld c, $3 - call DelayFrames - xor a - ld [hSerialSend], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - call DelayFrame - xor a - ld [hSerialSend], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - -.asm_281ae - ld de, MUSIC_NONE - call PlayMusic - ld c, $3 - call DelayFrames - xor a - ld [rIF], a - ld a, $8 - ld [rIE], a - ld hl, wd1f3 - ld de, EnemyMonSpecies - ld bc, $11 - call Function75f - ld a, $fe - ld [de], a - ld hl, OverworldMap - ld de, wd26b - ld bc, $1c2 - call Function75f - ld a, $fe - ld [de], a - ld hl, wc608 - ld de, wc6d0 - ld bc, $c8 - call Function75f - ld a, [wLinkMode] - cp LINK_TRADECENTER - jr nz, .asm_281fd - ld hl, wc9f4 - ld de, wcb84 - ld bc, $186 - call Function283f2 - -.asm_281fd - xor a - ld [rIF], a - ld a, $1d - ld [rIE], a - ld de, MUSIC_NONE - call PlayMusic - call Function287ab - ld hl, wd26b - call Function287ca - ld de, OverworldMap - ld bc, $1b9 - call Function2879e - ld de, wc6d0 - ld hl, wc813 - ld c, $2 -.asm_28224 - ld a, [de] - inc de - and a - jr z, .asm_28224 - cp $fd - jr z, .asm_28224 - cp $fe - jr z, .asm_28224 - cp $ff - jr z, .asm_28243 - push hl - push bc - ld b, $0 - dec a - ld c, a - add hl, bc - ld a, $fe - ld [hl], a - pop bc - pop hl - jr .asm_28224 - -.asm_28243 - ld hl, wc90f - dec c - jr nz, .asm_28224 - ld a, [wLinkMode] - cp LINK_TRADECENTER - jp nz, .asm_282fe - ld hl, wcb84 -.asm_28254 - ld a, [hli] - cp $20 - jr nz, .asm_28254 -.asm_28259 - ld a, [hli] - cp $fe - jr z, .asm_28259 - cp $20 - jr z, .asm_28259 - dec hl - ld de, wcb84 - ld bc, $190 - call CopyBytes - ld hl, wcb84 - ld bc, $c6 -.asm_28272 - ld a, [hl] - cp $21 - jr nz, .asm_28279 - ld [hl], $fe +INCLUDE "engine/link.asm" -.asm_28279 - inc hl - dec bc - ld a, b - or c - jr nz, .asm_28272 - ld de, wcc9e -.asm_28282 - ld a, [de] - inc de - cp $ff - jr z, .asm_28294 - ld hl, wcc4a - dec a - ld b, $0 - ld c, a - add hl, bc - ld [hl], $fe - jr .asm_28282 - -.asm_28294 - ld hl, wcb84 - ld de, wc9f4 - ld b, $6 -.asm_2829c - push bc - ld bc, $21 - call CopyBytes - ld a, $e - add e - ld e, a - ld a, $0 - adc d - ld d, a - pop bc - dec b - jr nz, .asm_2829c - ld de, wc9f4 - ld b, $6 -.asm_282b4 - push bc - ld a, $21 - add e - ld e, a - ld a, $0 - adc d - ld d, a - ld bc, $e - call CopyBytes - pop bc - dec b - jr nz, .asm_282b4 - ld b, $6 - ld de, wc9f4 -.asm_282cc - push bc - push de - callba Function1de5c8 - ld a, c - or a - jr z, .asm_282ee - sub $3 - jr nc, .asm_282e4 - callba Function1df203 - jr .asm_282ee - -.asm_282e4 - cp $2 - jr nc, .asm_282ee - callba Function1df220 - -.asm_282ee - pop de - ld hl, $2f - add hl, de - ld d, h - ld e, l - pop bc - dec b - jr nz, .asm_282cc - ld de, wcb0e - xor a - ld [de], a - -.asm_282fe - ld hl, OverworldMap - ld de, wd26b - ld bc, NAME_LENGTH - call CopyBytes - ld de, OTPartyCount - ld bc, 8 - call CopyBytes - ld de, wd276 - ld bc, 2 - call CopyBytes - ld de, OTPartyMon1Species - ld bc, $1a4 - call CopyBytes - ld a, OTPartyMonOT % $100 - ld [wd102], a - ld a, OTPartyMonOT / $100 - ld [wd103], a - ld de, MUSIC_NONE - call PlayMusic - ld a, [hLinkPlayerNumber] - cp $2 - ld c, 66 - call z, DelayFrames - ld a, [wLinkMode] - cp LINK_COLOSSEUM - jr nz, .asm_283a9 - ld a, CAL - ld [OtherTrainerClass], a - call ClearScreen - callba Function4d354 - ld hl, Options - ld a, [hl] - push af - and $20 - or $3 - ld [hl], a - ld hl, wd26b - ld de, OTName - ld bc, NAME_LENGTH - call CopyBytes - call Function222a - ld a, [wc2d7] - push af - ld a, $1 - ld [wc2d7], a - ld a, [rIE] - push af - ld a, [rIF] - push af - xor a - ld [rIF], a - ld a, [rIE] - set 1, a - ld [rIE], a - pop af - ld [rIF], a - predef StartBattle - ld a, [rIF] - ld h, a - xor a - ld [rIF], a - pop af - ld [rIE], a - ld a, h - ld [rIF], a - pop af - ld [wc2d7], a - pop af - ld [Options], a - callba LoadPokemonData - jp Function28b22 - -.asm_283a9 - ld de, MUSIC_ROUTE_30 - call PlayMusic - jp Function287e3 -; 283b2 - -Function283b2: ; 283b2 - ld de, UnknownText_0x283ed - ld b, $a -.asm_283b7 - call DelayFrame - call Function908 - dec b - jr nz, .asm_283b7 - xor a - ld [hld], a - ld [hl], a - ld [hVBlank], a - push de - hlcoord 0, 12 - ld b, $4 - ld c, $12 - push de - ld d, h - ld e, l - callba Function4d35b - pop de - pop hl - bccoord 1, 14 - call PlaceWholeStringInBoxAtOnce - call FadeToWhite - call ClearScreen - ld b, $8 - call GetSGBLayout - call Function3200 - ret -; 283ed - -UnknownText_0x283ed: ; 0x283ed - ; Too much time has elapsed. Please try again. - text_jump UnknownText_0x1c4183 - db "@" -; 0x283f2 - -Function283f2: ; 283f2 - ld a, $1 - ld [$ffcc], a -.asm_283f6 - ld a, [hl] - ld [hSerialSend], a - call Function78a - push bc - ld b, a - inc hl - ld a, $30 -.asm_28401 - dec a - jr nz, .asm_28401 - ld a, [$ffcc] - and a - ld a, b - pop bc - jr z, .asm_28411 - dec hl - xor a - ld [$ffcc], a - jr .asm_283f6 - -.asm_28411 - ld [de], a - inc de - dec bc - ld a, b - or c - jr nz, .asm_283f6 - ret -; 28419 - -String28419: ; 28419 - db "PLEASE WAIT!@" -; 28426 - -Function28426: ; 28426 - ld hl, OverworldMap - lb bc, 5, SCREEN_WIDTH -.asm_2842c - xor a - ld [hli], a - dec bc - ld a, b - or c - jr nz, .asm_2842c - ret -; 28434 - -Function28434: ; 28434 - ld hl, wd1f3 - ld a, $fd - ld b, $7 -.asm_2843b - ld [hli], a - dec b - jr nz, .asm_2843b - ld b, $a -.asm_28441 - call Random - cp $fd - jr nc, .asm_28441 - ld [hli], a - dec b - jr nz, .asm_28441 - ld hl, wc608 - ld a, $fd -rept 3 - ld [hli], a -endr - ld b, $c8 - xor a -.asm_28457 - ld [hli], a - dec b - jr nz, .asm_28457 - ld hl, wc818 - ld de, wc608 + 10 - ld bc, 0 -.asm_28464 - inc c - ld a, c - cp $fd - jr z, .asm_2848c - ld a, b - dec a - jr nz, .asm_2847f - push bc - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - ld b, $d - jr z, .asm_2847a - ld b, $27 - -.asm_2847a - ld a, c - cp b - pop bc - jr z, .asm_28495 - -.asm_2847f - inc hl - ld a, [hl] - cp $fe - jr nz, .asm_28464 - ld a, c - ld [de], a - inc de - ld [hl], $ff - jr .asm_28464 - -.asm_2848c - ld a, $ff - ld [de], a - inc de - lb bc, 1, 0 - jr .asm_28464 - -.asm_28495 - ld a, $ff - ld [de], a - ret -; 28499 - -Function28499: ; 28499 - ld de, OverworldMap - ld a, $fd - ld b, $6 -.asm_284a0 - ld [de], a - inc de - dec b - jr nz, .asm_284a0 - ld hl, PlayerName - ld bc, NAME_LENGTH - call CopyBytes - push de - ld hl, PartyCount - ld a, [hli] - ld [de], a - inc de -.asm_284b5 - ld a, [hli] - cp $ff - jr z, .asm_284ce - ld [wd265], a - push hl - push de - callab ConvertMon_2to1 - pop de - pop hl - ld a, [wd265] - ld [de], a - inc de - jr .asm_284b5 - -.asm_284ce - ld [de], a - pop de - ld hl, $8 - add hl, de - ld d, h - ld e, l - ld hl, PartyMon1Species - ld c, $6 -.asm_284db - push bc - call Function284f6 - ld bc, PARTYMON_STRUCT_LENGTH - add hl, bc - pop bc - dec c - jr nz, .asm_284db - ld hl, PartyMonOT - call .asm_284f0 - ld hl, PartyMonNicknames -.asm_284f0 - ld bc, $42 - jp CopyBytes -; 284f6 - -Function284f6: ; 284f6 - ld b, h - ld c, l - push de - push bc - ld a, [hl] - ld [wd265], a - callab ConvertMon_2to1 - pop bc - pop de - ld a, [wd265] - ld [de], a - inc de - ld hl, $22 - add hl, bc - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - inc de - xor a - ld [de], a - inc de - ld hl, $20 - add hl, bc - ld a, [hl] - ld [de], a - inc de - ld a, [bc] - cp $51 - jr z, .asm_28528 - cp $52 - jr nz, .asm_28530 - -.asm_28528 - ld a, $17 - ld [de], a - inc de - ld [de], a - inc de - jr .asm_28544 - -.asm_28530 - push bc - dec a - ld hl, BaseData + 7 ; type - ld bc, BaseData1 - BaseData0 - call AddNTimes - ld bc, 2 - ld a, BANK(BaseData) - call FarCopyBytes - pop bc - -.asm_28544 - push bc - ld hl, $1 - add hl, bc - ld bc, $1a - call CopyBytes - pop bc - - ld hl, $1f - add hl, bc - ld a, [hl] - ld [de], a - ld [CurPartyLevel], a - inc de - - push bc - ld hl, $24 - add hl, bc - ld bc, 8 - call CopyBytes - pop bc - - push de - push bc - - ld a, [bc] - dec a - push bc - ld b, 0 - ld c, a - ld hl, KantoMonSpecials - add hl, bc - ld a, BANK(KantoMonSpecials) - call GetFarByte - ld [BaseSpecialAttack], a - pop bc - - ld hl, $a - add hl, bc - ld c, $5 - ld b, $1 - predef CalcPkmnStatC - - pop bc - pop de - - ld a, [$ffb5] - ld [de], a - inc de - ld a, [$ffb6] - ld [de], a - inc de - ld h, b - ld l, c - ret -; 28595 - -Function28595: ; 28595 - ld de, OverworldMap - ld a, $fd - ld b, $6 -.loop1 - ld [de], a - inc de - dec b - jr nz, .loop1 - ld hl, PlayerName - ld bc, NAME_LENGTH - call CopyBytes - ld hl, PartyCount - ld bc, 8 - call CopyBytes - ld hl, PlayerID - ld bc, 2 - call CopyBytes - ld hl, PartyMon1Species - ld bc, $120 - call CopyBytes - ld hl, PartyMonOT - ld bc, $42 - call CopyBytes - ld hl, PartyMonNicknames - ld bc, $42 - call CopyBytes - ld a, [wLinkMode] - cp LINK_TRADECENTER - ret nz - ld de, wc9f4 - ld a, $20 - call Function28682 - ld a, BANK(sPartyScratch1) - call GetSRAMBank - ld hl, sPartyScratch1 - ld b, PARTY_LENGTH -.loop2 - push bc - ld bc, $21 - call CopyBytes - ld bc, $e - add hl, bc - pop bc - dec b - jr nz, .loop2 - ld hl, sPartyScratch1 - ld b, PARTY_LENGTH -.loop3 - push bc - ld bc, $21 - add hl, bc - ld bc, $e - call CopyBytes - pop bc - dec b - jr nz, .loop3 - ld b, PARTY_LENGTH - ld de, sPartyScratch1 - ld hl, wc9f9 -.loop4 - push bc - push hl - push de - push hl - callba Function1de5c8 - pop de - ld a, c - or a - jr z, .next - sub $3 - jr nc, .skip - callba Function1df1e6 - jr .next - -.skip - cp $2 - jr nc, .next - callba Function1df220 - -.next - pop de - ld hl, SCRATCHMON_STRUCT_LENGTH - add hl, de - ld d, h - ld e, l - pop hl - ld bc, $21 - add hl, bc - pop bc - dec b - jr nz, .loop4 - call CloseSRAM - ld hl, wc9f9 - ld bc, $c6 -.loop5 - ld a, [hl] - cp $fe - jr nz, .skip2 - ld [hl], $21 - -.skip2 - inc hl - dec bc - ld a, b - or c - jr nz, .loop5 - ld hl, wcabf - ld de, wcb13 - ld b, $54 - ld c, $0 -.loop6 - inc c - ld a, [hl] - cp $fe - jr nz, .skip3 - ld [hl], $ff - ld a, c - ld [de], a - inc de - -.skip3 - inc hl - dec b - jr nz, .loop6 - ld a, $ff - ld [de], a - ret -; 28682 - -Function28682: ; 28682 - ld c, $5 -.loop - ld [de], a - inc de - dec c - jr nz, .loop - ret -; 2868a - -Function2868a: ; 2868a - push hl - ld d, h - ld e, l - ld bc, wcbea - ld hl, wcbe8 - ld a, c - ld [hli], a - ld [hl], b - ld hl, OTPartyMon1Species - ld c, $6 -.loop - push bc - call Function286ba - pop bc - dec c - jr nz, .loop - pop hl - lb bc, 1, 8 - add hl, bc - ld de, OTPartyMonOT - ld bc, $42 - call CopyBytes - ld de, OTPartyMonNicknames - ld bc, $42 - jp CopyBytes -; 286ba - -Function286ba: ; 286ba - ld b, h - ld c, l - ld a, [de] - inc de - push bc - push de - ld [wd265], a - callab ConvertMon_1to2 - pop de - pop bc - ld a, [wd265] - ld [bc], a - ld [CurSpecies], a - ld hl, $22 - add hl, bc - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hl], a - inc de - ld hl, $20 - add hl, bc - ld a, [de] - inc de - ld [hl], a - ld hl, wcbe8 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, l - ld [wcbe8], a - ld a, h - ld [wcbe9], a - push bc - ld hl, $1 - add hl, bc - push hl - ld h, d - ld l, e - pop de - push bc - ld a, [hli] - ld b, a - call Function28771 - ld a, b - ld [de], a - inc de - pop bc - ld bc, $19 - call CopyBytes - pop bc - ld d, h - ld e, l - ld hl, $1f - add hl, bc - ld a, [de] - inc de - ld [hl], a - ld [CurPartyLevel], a - push bc - ld hl, $24 - add hl, bc - push hl - ld h, d - ld l, e - pop de - ld bc, 8 - call CopyBytes - pop bc - call GetBaseData - push de - push bc - ld d, h - ld e, l - ld hl, $a - add hl, bc - ld c, $5 - ld b, $1 - predef CalcPkmnStatC - pop bc - pop hl - ld a, [$ffb5] - ld [hli], a - ld a, [$ffb6] - ld [hli], a - push hl - push bc - ld hl, $a - add hl, bc - ld c, $6 - ld b, $1 - predef CalcPkmnStatC - pop bc - pop hl - ld a, [$ffb5] - ld [hli], a - ld a, [$ffb6] - ld [hli], a - push hl - ld hl, $1b - add hl, bc - ld a, $46 - ld [hli], a - xor a -rept 2 - ld [hli], a -endr - ld [hl], a - pop hl -rept 2 - inc de -endr - ret -; 28771 - -Function28771: ; 28771 - ld a, b - and a - ret z - push hl - ld hl, .TimeCapsuleAlt -.loop - ld a, [hli] - and a - jr z, .end - cp b - jr z, .found - inc hl - jr .loop - -.found - ld b, [hl] - -.end - pop hl - ret - -.TimeCapsuleAlt ; 28785 -; Pokémon traded from RBY do not have held items, so GSC usually interprets the -; catch rate as an item. However, if the catch rate appears in this table, the -; item associated with the table entry is used instead. - db ITEM_19, LEFTOVERS - db ITEM_2D, BITTER_BERRY - db ITEM_32, GOLD_BERRY - db ITEM_5A, BERRY - db ITEM_64, BERRY - db ITEM_78, BERRY - db ITEM_87, BERRY - db ITEM_BE, BERRY - db ITEM_C3, BERRY - db ITEM_DC, BERRY - db HM_08, BERRY - db $ff, BERRY - db $00 -; 2879e - -Function2879e: ; 2879e -.asm_2879e - ld a, [hli] - cp $fe - jr z, .asm_2879e - ld [de], a - inc de - dec bc - ld a, b - or c - jr nz, .asm_2879e - ret -; 287ab - -Function287ab: ; 287ab - ld a, [hLinkPlayerNumber] - cp $2 - ret z - ld hl, EnemyMonSpecies - call Function287d8 - ld de, LinkBattleRNs - ld c, $a -.asm_287bb - ld a, [hli] - cp $fe - jr z, .asm_287bb - cp $fd - jr z, .asm_287bb - ld [de], a - inc de - dec c - jr nz, .asm_287bb - ret -; 287ca - -Function287ca: ; 287ca -.asm_287ca - ld a, [hli] - and a - jr z, .asm_287ca - cp $fd - jr z, .asm_287ca - cp $fe - jr z, .asm_287ca - dec hl - ret -; 287d8 - -Function287d8: ; 287d8 -.asm_287d8 - ld a, [hli] - cp $fd - jr z, .asm_287d8 - cp $fe - jr z, .asm_287d8 - dec hl - ret -; 287e3 - -Function287e3: ; 287e3 - call ClearScreen - call Function28ef8 - callba Function16d673 - xor a - ld hl, wcf51 -rept 3 - ld [hli], a -endr - ld [hl], a - ld a, $1 - ld [MenuSelection2], a - inc a - ld [wcf56], a - jp Function2888b -; 28803 - -Function28803: ; 28803 - ld a, $1 - ld [MonType], a - ld a, $c1 - ld [wcfa8], a - ld a, [OTPartyCount] - ld [wcfa3], a - ld a, $1 - ld [wcfa4], a - ld a, $9 - ld [wcfa1], a - ld a, $6 - ld [wcfa2], a - ld a, $1 - ld [wcfaa], a - ld a, $10 - ld [wcfa7], a - ld a, $20 - ld [wcfa5], a - xor a - ld [wcfa6], a - -Function28835: ; 28835 - callba Function16d70c - ld a, d - and a - jp z, Function2891c - bit 0, a - jr z, .asm_2885b - ld a, $1 - ld [wd263], a - callab Function50db9 - ld hl, OTPartyMon1Species - callba Function4d319 - jp Function2891c - -.asm_2885b - bit 6, a - jr z, .asm_28883 - ld a, [MenuSelection2] - ld b, a - ld a, [OTPartyCount] - cp b - jp nz, Function2891c - xor a - ld [MonType], a - call Function1bf7 - push hl - push bc - ld bc, NAME_LENGTH - add hl, bc - ld [hl], $7f - pop bc - pop hl - ld a, [PartyCount] - ld [MenuSelection2], a - jr Function2888b - -.asm_28883 - bit 7, a - jp z, Function2891c - jp Function28ac9 -; 2888b - -Function2888b: ; 2888b - callba Function49856 - xor a - ld [MonType], a - ld a, $c1 - ld [wcfa8], a - ld a, [PartyCount] - ld [wcfa3], a - ld a, $1 - ld [wcfa4], a - ld a, $1 - ld [wcfa1], a - ld a, $6 - ld [wcfa2], a - ld a, $1 - ld [wcfaa], a - ld a, $10 - ld [wcfa7], a - ld a, $20 - ld [wcfa5], a - xor a - ld [wcfa6], a - call Function3200 - -Function288c5: ; 288c5 - callba Function16d70c - ld a, d - and a - jr nz, .asm_288d2 - jp Function2891c - -.asm_288d2 - bit 0, a - jr z, .asm_288d9 - jp Function28926 - -.asm_288d9 - bit 7, a - jr z, .asm_288fe - ld a, [MenuSelection2] - dec a - jp nz, Function2891c - ld a, $1 - ld [MonType], a - call Function1bf7 - push hl - push bc - ld bc, NAME_LENGTH - add hl, bc - ld [hl], $7f - pop bc - pop hl - ld a, $1 - ld [MenuSelection2], a - jp Function28803 - -.asm_288fe - bit 6, a - jr z, Function2891c - ld a, [MenuSelection2] - ld b, a - ld a, [PartyCount] - cp b - jr nz, Function2891c - call Function1bf7 - push hl - push bc - ld bc, NAME_LENGTH - add hl, bc - ld [hl], $7f - pop bc - pop hl - jp Function28ade -; 2891c - -Function2891c: ; 2891c - ld a, [MonType] - and a - jp z, Function288c5 - jp Function28835 -; 28926 - -Function28926: ; 28926 - call LoadTileMapToTempTileMap - ld a, [MenuSelection2] - push af - hlcoord 0, 15 - ld b, $1 - ld c, $12 - call Function28eef - hlcoord 2, 16 - ld de, String28ab4 - call PlaceString - callba Function4d354 - -.asm_28946 - ld a, $7f - ldcoord_a 11, 16 - ld a, $13 - ld [wcfa8], a - ld a, $1 - ld [wcfa3], a - ld a, $1 - ld [wcfa4], a - ld a, $10 - ld [wcfa1], a - ld a, $1 - ld [wcfa2], a - ld a, $1 - ld [MenuSelection2], a - ld [wcfaa], a - ld a, $20 - ld [wcfa7], a - xor a - ld [wcfa5], a - ld [wcfa6], a - call Function1bd3 - bit 4, a - jr nz, .asm_2898d - bit 1, a - jr z, .asm_289cd -.asm_28983 - pop af - ld [MenuSelection2], a - call Call_LoadTempTileMapToTileMap - jp Function2888b - -.asm_2898d - ld a, $7f - ldcoord_a 1, 16 - ld a, $23 - ld [wcfa8], a - ld a, $1 - ld [wcfa3], a - ld a, $1 - ld [wcfa4], a - ld a, $10 - ld [wcfa1], a - ld a, $b - ld [wcfa2], a - ld a, $1 - ld [MenuSelection2], a - ld [wcfaa], a - ld a, $20 - ld [wcfa7], a - xor a - ld [wcfa5], a - ld [wcfa6], a - call Function1bd3 - bit 5, a - jp nz, .asm_28946 - bit 1, a - jr nz, .asm_28983 - jr .asm_289fe - -.asm_289cd - pop af - ld [MenuSelection2], a - ld a, $4 - ld [wd263], a - callab Function50db9 - callba Function4d319 - call Call_LoadTempTileMapToTileMap - hlcoord 6, 1 - lb bc, 6, 1 - ld a, " " - call Function28b77 - hlcoord 17, 1 - lb bc, 6, 1 - ld a, " " - call Function28b77 - jp Function2888b - -.asm_289fe - call Function1bee - pop af - ld [MenuSelection2], a - dec a - ld [DefaultFlypoint], a - ld [wcf56], a - callba Function16d6ce - ld a, [wcf51] - cp $f - jp z, Function287e3 - ld [wd003], a - call Function28b68 - ld c, $64 - call DelayFrames - callba Functionfb57e - jr c, .asm_28a58 - callba Functionfb5dd - jp nc, Function28b87 - xor a - ld [wcf57], a - ld [wcf52], a - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call Function28eef - callba Function4d354 - ld hl, UnknownText_0x28aaf - bccoord 1, 14 - call PlaceWholeStringInBoxAtOnce - jr .asm_28a89 - -.asm_28a58 - xor a - ld [wcf57], a - ld [wcf52], a - ld a, [wd003] - ld hl, OTPartySpecies - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - ld [wd265], a - call GetPokemonName - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call Function28eef - callba Function4d354 - ld hl, UnknownText_0x28ac4 - bccoord 1, 14 - call PlaceWholeStringInBoxAtOnce - -.asm_28a89 - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call Function28eef - hlcoord 1, 14 - ld de, String28ece - call PlaceString - ld a, $1 - ld [wcf56], a - callba Function16d6ce - ld c, $64 - call DelayFrames - jp Function287e3 -; 28aaf - - -UnknownText_0x28aaf: ; 0x28aaf - ; If you trade that #MON, you won't be able to battle. - text_jump UnknownText_0x1c41b1 - db "@" -; 0x28ab4 - -String28ab4: ; 28ab4 - db "STATS TRADE@" - -UnknownText_0x28ac4: ; 0x28ac4 - ; Your friend's @ appears to be abnormal! - text_jump UnknownText_0x1c41e6 - db "@" -; 0x28ac9 - - -Function28ac9: ; 28ac9 - ld a, [MenuSelection2] - cp $1 - jp nz, Function2891c - call Function1bf7 - push hl - push bc - ld bc, NAME_LENGTH - add hl, bc - ld [hl], $7f - pop bc - pop hl - -Function28ade: ; 28ade -.asm_28ade - ld a, $ed - ldcoord_a 9, 17 -.asm_28ae3 - call JoyTextDelay - ld a, [hJoyLast] - and a - jr z, .asm_28ae3 - bit 0, a - jr nz, .asm_28b0b - push af - ld a, " " - ldcoord_a 9, 17 - pop af - bit 6, a - jr z, .asm_28b03 - ld a, [OTPartyCount] - ld [MenuSelection2], a - jp Function28803 - -.asm_28b03 - ld a, $1 - ld [MenuSelection2], a - jp Function2888b - -.asm_28b0b - ld a, $ec - ldcoord_a 9, 17 - ld a, $f - ld [wcf56], a - callba Function16d6ce - ld a, [wcf51] - cp $f - jr nz, .asm_28ade - -Function28b22: ; 28b22 - call FadeToWhite - call ClearScreen - ld b, $8 - call GetSGBLayout - call Function3200 - xor a - ld [wcfbb], a - xor a - ld [rSB], a - ld [hSerialSend], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - ret -; 28b42 - -Function28b42: ; 28b42 - hlcoord 0, 16 - ld a, "┘" - ld bc, 2 * SCREEN_WIDTH - call ByteFill - hlcoord 1, 16 - ld a, " " - ld bc, SCREEN_WIDTH - 2 - call ByteFill - hlcoord 2, 16 - ld de, String_28b61 - jp PlaceString -; 28b61 - -String_28b61: ; 28b61 - db "CANCEL@" -; 28b68 - -Function28b68: ; 28b68 - ld a, [wcf51] - hlcoord 6, 9 - ld bc, SCREEN_WIDTH - call AddNTimes - ld [hl], $ec - ret -; 28b77 - -Function28b77: ; 28b77 -.asm_28b77 - push bc - push hl -.asm_28b79 - ld [hli], a - dec c - jr nz, .asm_28b79 - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .asm_28b77 - ret -; 28b87 - -Function28b87: ; 28b87 - xor a - ld [wcf57], a - ld [wcf52], a - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call Function28eef - callba Function4d354 - ld a, [DefaultFlypoint] - ld hl, PartySpecies - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 - ld de, wd004 - ld bc, PKMN_NAME_LENGTH - call CopyBytes - ld a, [wd003] - ld hl, OTPartySpecies - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - ld [wd265], a - call GetPokemonName - ld hl, UnknownText_0x28eb8 - bccoord 1, 14 - call PlaceWholeStringInBoxAtOnce - call LoadPartyMenuDataHeader - hlcoord 10, 7 - ld b, $3 - ld c, $7 - call Function28eef - ld de, String28eab - hlcoord 12, 8 - call PlaceString - ld a, $8 - ld [wcfa1], a - ld a, $b - ld [wcfa2], a - ld a, $1 - ld [wcfa4], a - ld a, $2 - ld [wcfa3], a - xor a - ld [wcfa5], a - ld [wcfa6], a - ld a, $20 - ld [wcfa7], a - ld a, $3 - ld [wcfa8], a - ld a, $1 - ld [MenuSelection2], a - ld [wcfaa], a - callba Function4d354 - call Function1bd3 - push af - call Call_ExitMenu - call Function3200 - pop af - bit 1, a - jr nz, .asm_28c33 - ld a, [MenuSelection2] - dec a - jr z, .asm_28c54 - -.asm_28c33 - ld a, $1 - ld [wcf56], a - hlcoord 0, 12 - ld b, 4 - ld c, 18 - call Function28eef - hlcoord 1, 14 - ld de, String28ece - call PlaceString - callba Function16d6ce - jp Function28ea3 - -.asm_28c54 - ld a, $2 - ld [wcf56], a - callba Function16d6ce - ld a, [wcf51] - dec a - jr nz, .asm_28c7b - hlcoord 0, 12 - ld b, 4 - ld c, 18 - call Function28eef - hlcoord 1, 14 - ld de, String28ece - call PlaceString - jp Function28ea3 - -.asm_28c7b - ld hl, sPartyScratch1 - ld a, [DefaultFlypoint] - ld bc, SCRATCHMON_STRUCT_LENGTH - call AddNTimes - ld a, BANK(sPartyScratch1) - call GetSRAMBank - ld d, h - ld e, l - ld bc, SCRATCHMON_STRUCT_LENGTH - add hl, bc - ld a, [DefaultFlypoint] - ld c, a -.asm_28c96 - inc c - ld a, c - cp $6 - jr z, .asm_28ca6 - push bc - ld bc, SCRATCHMON_STRUCT_LENGTH - call CopyBytes - pop bc - jr .asm_28c96 - -.asm_28ca6 - ld hl, sPartyScratch1 - ld a, [PartyCount] - dec a - ld bc, SCRATCHMON_STRUCT_LENGTH - call AddNTimes - push hl - ld hl, wc9f4 - ld a, [wd003] - ld bc, SCRATCHMON_STRUCT_LENGTH - call AddNTimes - pop de - ld bc, SCRATCHMON_STRUCT_LENGTH - call CopyBytes - call CloseSRAM - ld hl, PlayerName - ld de, wc6e7 - ld bc, NAME_LENGTH - call CopyBytes - ld a, [DefaultFlypoint] - ld hl, PartySpecies - ld b, $0 - ld c, a - add hl, bc - ld a, [hl] - ld [wc6d0], a - push af - ld a, [DefaultFlypoint] - ld hl, PartyMonOT - call SkipNames - ld de, wc6f2 - ld bc, NAME_LENGTH - call CopyBytes - ld hl, PartyMon1ID - ld a, [DefaultFlypoint] - call GetPartyLocation - ld a, [hli] - ld [PlayerScreens], a - ld a, [hl] - ld [EnemyScreens], a - ld hl, PartyMon1DVs - ld a, [DefaultFlypoint] - call GetPartyLocation - ld a, [hli] - ld [wc6fd], a - ld a, [hl] - ld [wc6fe], a - ld a, [DefaultFlypoint] - ld hl, PartyMon1Species - call GetPartyLocation - ld b, h - ld c, l - callba GetCaughtGender - ld a, c - ld [wc701], a - ld hl, wd26b - ld de, wc719 - ld bc, NAME_LENGTH - call CopyBytes - ld a, [wd003] - ld hl, OTPartySpecies - ld b, $0 - ld c, a - add hl, bc - ld a, [hl] - ld [wc702], a - ld a, [wd003] - ld hl, OTPartyMonOT - call SkipNames - ld de, wc724 - ld bc, NAME_LENGTH - call CopyBytes - ld hl, OTPartyMon1ID - ld a, [wd003] - call GetPartyLocation - ld a, [hli] - ld [wEnemyWrapCount], a - ld a, [hl] - ld [wPlayerCharging], a - ld hl, OTPartyMon1DVs - ld a, [wd003] - call GetPartyLocation - ld a, [hli] - ld [wEnemyTrappingMove], a - ld a, [hl] - ld [wPlayerWrapCount], a - ld a, [wd003] - ld hl, OTPartyMon1Species - call GetPartyLocation - ld b, h - ld c, l - callba GetCaughtGender - ld a, c - ld [wEnemyCharging], a - ld a, [DefaultFlypoint] - ld [CurPartyMon], a - ld hl, PartySpecies - ld b, $0 - ld c, a - add hl, bc - ld a, [hl] - ld [DefaultFlypoint], a - xor a - ld [wPokemonWithdrawDepositParameter], a - callab Functione039 - ld a, [PartyCount] - dec a - ld [CurPartyMon], a - ld a, $1 - ld [wd1e9], a - ld a, [wd003] - push af - ld hl, OTPartySpecies - ld b, $0 - ld c, a - add hl, bc - ld a, [hl] - ld [wd003], a - ld c, 100 - call DelayFrames - call ClearTileMap - call LoadFontsBattleExtra - ld b, $8 - call GetSGBLayout - ld a, [hLinkPlayerNumber] - cp $1 - jr z, .asm_28de4 - predef Function28f24 - jr .asm_28de9 - -.asm_28de4 - predef Function28f63 - -.asm_28de9 - pop af - ld c, a - ld [CurPartyMon], a - ld hl, OTPartySpecies - ld d, $0 - ld e, a - add hl, de - ld a, [hl] - ld [CurPartySpecies], a - ld hl, OTPartyMon1Species - ld a, c - call GetPartyLocation - ld de, TempMonSpecies - ld bc, PARTYMON_STRUCT_LENGTH - call CopyBytes - predef Functionda96 - ld a, [PartyCount] - dec a - ld [CurPartyMon], a - callab Function421d8 - call ClearScreen - call Function28ef8 - call Function28eff - callba Function4d354 - ld b, $1 - pop af - ld c, a - cp MEW - jr z, .asm_28e49 - ld a, [CurPartySpecies] - cp MEW - jr z, .asm_28e49 - ld b, $2 - ld a, c - cp CELEBI - jr z, .asm_28e49 - ld a, [CurPartySpecies] - cp CELEBI - jr z, .asm_28e49 - ld b, $0 - -.asm_28e49 - ld a, b - ld [wcf56], a - push bc - call Function862 - pop bc - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jr z, .asm_28e63 - ld a, b - and a - jr z, .asm_28e63 - ld a, [wcf52] - cp b - jr nz, .asm_28e49 - -.asm_28e63 - callba Function14a58 - callba MobileFn_1060af - callba BackupMobileEventIndex - ld c, 40 - call DelayFrames - hlcoord 0, 12 - ld b, 4 - ld c, 18 - call Function28eef - hlcoord 1, 14 - ld de, String28ebd - call PlaceString - callba Function4d354 - ld c, 50 - call DelayFrames - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jp z, Function2805d - jp Function28177 -; 28ea3 - -Function28ea3: ; 28ea3 - ld c, 100 - call DelayFrames - jp Function287e3 -; 28eab - -String28eab: ; 28eab - db "TRADE" - next "CANCEL@" - -UnknownText_0x28eb8: ; 0x28eb8 - ; Trade @ for @ ? - text_jump UnknownText_0x1c4212 - db "@" -; 0x28ebd - -String28ebd: ; 28ebd - db "Trade completed!@" - -String28ece: ; 28ece - db "Too bad! The trade" - next "was canceled!@" - - -Function28eef: ; 28eef - ld d, h - ld e, l - callba Function16d6ca - ret -; 28ef8 - -Function28ef8: ; 28ef8 - callba Function16d696 - ret -; 28eff - -Function28eff: ; 28eff - callba Function16d6a7 - call SetPalettes - ret -; 28f09 - -Function28f09: ; 28f09 - hlcoord 0, 0 - ld b, 6 - ld c, 18 - call Function28eef - hlcoord 0, 8 - ld b, 6 - ld c, 18 - call Function28eef - callba Functionfb60d - ret -; 28f24 - -Function28f24: ; 28f24 - xor a - ld [wcf66], a - ld hl, wc6e7 - ld de, wc719 - call Function297ff - ld hl, wc6d0 - ld de, wc702 - call Function29814 - ld de, .data_28f3f - jr Function28fa1 - -.data_28f3f - db $1b - db $1 - db $1c - db $21 - db $2d - db $27 - db $23 - db $3 - db $25 - db $28 - db $25 - db $1e - db $29 - db $6 - db $16 - db $1f - db $19 - db $17 - db $22 - db $1f - db $2a - db $e - db $3 - db $24 - db $5 - db $25 - db $2 - db $27 - db $25 - db $1d - db $2c - db $2e - db $1e - db $18 - db $1f - db $2b - -Function28f63: ; 28f63 - xor a - ld [wcf66], a - ld hl, wc719 - ld de, wc6e7 - call Function297ff - ld hl, wc702 - ld de, wc6d0 - call Function29814 - ld de, .data_28f7e - jr Function28fa1 - -.data_28f7e - db $1a - db $17 - db $22 - db $1f - db $2a - db $6 - db $3 - db $24 - db $5 - db $25 - db $2 - db $27 - db $25 - db $1d - db $2c - db $2f - db $1e - db $18 - db $1f - db $1b - db $1 - db $1c - db $22 - db $27 - db $23 - db $3 - db $25 - db $28 - db $25 - db $1e - db $29 - db $e - db $16 - db $1f - db $2b - -Function28fa1: ; 28fa1 - ld hl, BattleEnded - ld [hl], e - inc hl - ld [hl], d - ld a, [hMapAnims] - push af - xor a - ld [hMapAnims], a - ld hl, VramState - ld a, [hl] - push af - res 0, [hl] - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - call Function28fdb - ld a, [wcf66] - and a - jr nz, .asm_28fca - ld de, MUSIC_EVOLUTION - call PlayMusic2 -.asm_28fca - call Function29082 - jr nc, .asm_28fca - pop af - ld [Options], a - pop af - ld [VramState], a - pop af - ld [hMapAnims], a - ret -; 28fdb - -Function28fdb: ; 28fdb - xor a - ld [wJumptableIndex], a - call WhiteBGMap - call ClearSprites - call ClearTileMap - call DisableLCD - call LoadFontsBattleExtra - callab Function8cf53 - ld a, [hCGB] - and a - jr z, .asm_2900b - ld a, $1 - ld [rVBK], a - ld hl, VTiles0 - ld bc, sScratch - VTiles0 - xor a - call ByteFill - ld a, $0 - ld [rVBK], a - -.asm_2900b - ld hl, VBGMap0 - ld bc, sScratch - VBGMap0 - ld a, " " - call ByteFill - ld hl, TradeGameBoyLZ - ld de, VTiles2 tile $31 - call Decompress - ld hl, TradeArrowGFX - ld de, VTiles1 tile $6d - ld bc, $10 - ld a, BANK(TradeArrowGFX) - call FarCopyBytes - ld hl, TradeArrowGFX + $10 - ld de, VTiles1 tile $6e - ld bc, $10 - ld a, BANK(TradeArrowGFX) - call FarCopyBytes - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function4d7fd - call EnableLCD - call Function2982b - ld a, [wc6d0] - ld hl, wc6fd - ld de, VTiles0 - call Function29491 - ld a, [wc702] - ld hl, wEnemyTrappingMove - ld de, VTiles0 tile $31 - call Function29491 - ld a, [wc6d0] - ld de, wc6d1 - call Function294a9 - ld a, [wc702] - ld de, wc703 - call Function294a9 - call Function297ed - ret -; 29082 - -Function29082: ; 29082 - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_2909b - call Function290a0 - callab Function8cf69 - ld hl, wcf65 - inc [hl] - call DelayFrame - and a - ret - -.asm_2909b - call LoadStandardFont - scf - ret -; 290a0 - -Function290a0: ; 290a0 - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, JumpTable290af -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 290af - -JumpTable290af: ; 290af - dw Function29114 - dw Function2942e - dw Function29461 - dw Function29348 - dw Function2937e - dw Function29391 - dw Function29129 - dw Function291af - dw Function291c4 - dw Function291d9 - dw Function2925d - dw Function29220 - dw Function2925d - dw Function29229 - dw Function2913c - dw Function2925d - dw Function291e8 - dw Function291fd - dw Function29211 - dw Function29220 - dw Function2925d - dw Function29229 - dw Function29701 - dw Function2973c - dw Function2975c - dw Function2977f - dw Function297a4 - dw Function293a6 - dw Function293b6 - dw Function293d2 - dw Function293de - dw Function293ea - dw Function2940c - dw Function294e7 - dw Function294f0 - dw Function2961b - dw Function2962c - dw Function29879 - dw Function29886 - dw Function29649 - dw Function29660 - dw Function2926d - dw Function29277 - dw Function29123 - dw Function29487 - dw Function294f9 - dw Function29502 - dw Function2950c -; 2910f - -Function2910f: ; 2910f - ld hl, wJumptableIndex - inc [hl] - ret -; 29114 - -Function29114: ; 29114 - ld hl, BattleEnded - ld e, [hl] - inc hl - ld d, [hl] - ld a, [de] - ld [wJumptableIndex], a - inc de - ld [hl], d - dec hl - ld [hl], e - ret -; 29123 - -Function29123: ; 29123 - ld hl, wJumptableIndex - set 7, [hl] - ret -; 29129 - -Function29129: ; 29129 - ld a, $ed - call Function292f6 - ld a, [wc74c] - ld [wd265], a - xor a - ld de, $2c58 - ld b, $0 - jr Function2914e - -Function2913c: ; 2913c - ld a, $ee - call Function292f6 - ld a, [wc74d] - ld [wd265], a - ld a, $2 - lb de, $4c, $94 - ld b, $4 - -Function2914e: ; 2914e - push bc - push de - push bc - push de - push af - call DisableLCD - callab Function8cf53 - ld hl, $9874 - ld bc, $c - ld a, $60 - call ByteFill - pop af - call Function29281 - xor a - ld [hSCX], a - ld a, $7 - ld [hWX], a - ld a, $70 - ld [hWY], a - call EnableLCD - call Function2985a - pop de - ld a, $11 - call Function3b2a - ld hl, $b - add hl, bc - pop bc - ld [hl], b - pop de - ld a, $12 - call Function3b2a - ld hl, $b - add hl, bc - pop bc - ld [hl], b - call WaitBGMap - ld b, $1b - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - ld a, $d0 - call Functioncf8 - call Function2910f - ld a, $5c - ld [wcf64], a - ret -; 291af - -Function291af: ; 291af - call Function2981d - ld a, [hSCX] - add $2 - ld [hSCX], a - cp $50 - ret nz - ld a, $1 - call Function29281 - call Function2910f - ret -; 291c4 - -Function291c4: ; 291c4 - call Function2981d - ld a, [hSCX] - add $2 - ld [hSCX], a - cp $a0 - ret nz - ld a, $2 - call Function29281 - call Function2910f - ret -; 291d9 - -Function291d9: ; 291d9 - call Function2981d - ld a, [hSCX] - add $2 - ld [hSCX], a - and a - ret nz - call Function2910f - ret -; 291e8 - -Function291e8: ; 291e8 - call Function2981d - ld a, [hSCX] - sub $2 - ld [hSCX], a - cp $b0 - ret nz - ld a, $1 - call Function29281 - call Function2910f - ret -; 291fd - -Function291fd: ; 291fd - call Function2981d - ld a, [hSCX] - sub $2 - ld [hSCX], a - cp $60 - ret nz - xor a - call Function29281 - call Function2910f - ret -; 29211 - -Function29211: ; 29211 - call Function2981d - ld a, [hSCX] - sub $2 - ld [hSCX], a - and a - ret nz - call Function2910f - ret -; 29220 - -Function29220: ; 29220 - ld a, $80 - ld [wcf64], a - call Function2910f - ret -; 29229 - -Function29229: ; 29229 - call WhiteBGMap - call ClearTileMap - call ClearSprites - call DisableLCD - callab Function8cf53 - ld hl, VBGMap0 - ld bc, sScratch - VBGMap0 - ld a, " " - call ByteFill - xor a - ld [hSCX], a - ld a, $90 - ld [hWY], a - call EnableLCD - call Function2982b - call WaitBGMap - call Function297ed - call Function29114 - ret -; 2925d - -Function2925d: ; 2925d - call Function2981d - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_29269 - dec [hl] - ret - -.asm_29269 - call Function2910f - ret -; 2926d - -Function2926d: ; 2926d - call Function29114 - ld de, SFX_GIVE_TRADEMON - call PlaySFX - ret -; 29277 - -Function29277: ; 29277 - call Function29114 - ld de, SFX_GET_TRADEMON - call PlaySFX - ret -; 29281 - -Function29281: ; 29281 - and 3 - ld e, a - ld d, 0 - ld hl, Jumptable_2928f -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 2928f - -Jumptable_2928f: ; 2928f - dw Function29297 - dw Function292af - dw Function292be - dw Function29297 -; 29297 - -Function29297: ; 29297 - call Function297cf - hlcoord 9, 3 - ld [hl], $5b - inc hl - ld bc, $a - ld a, $60 - call ByteFill - hlcoord 3, 2 - call Function292ec - ret -; 292af - -Function292af: ; 292af - call Function297cf - hlcoord 0, 3 - ld bc, SCREEN_WIDTH - ld a, $60 - call ByteFill - ret -; 292be - -Function292be: ; 292be - call Function297cf - hlcoord 0, 3 - ld bc, $11 - ld a, $60 - call ByteFill - hlcoord 17, 3 - ld a, $5d - ld [hl], a - ld a, $61 - ld de, SCREEN_WIDTH - ld c, $3 -.asm_292d9 - add hl, de - ld [hl], a - dec c - jr nz, .asm_292d9 - add hl, de - ld a, $5f - ld [hld], a - ld a, $5b - ld [hl], a - hlcoord 10, 6 - call Function292ec - ret -; 292ec - -Function292ec: ; 292ec - ld de, TradeGameBoyTilemap - lb bc, 8, 6 - call Function297db - ret -; 292f6 - -Function292f6: ; 292f6 - push af - call WhiteBGMap - call WaitTop - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - call ClearTileMap - hlcoord 0, 0 - ld bc, SCREEN_WIDTH - ld a, "─" - call ByteFill - hlcoord 0, 1 - ld de, wc736 - call PlaceString - ld hl, wc741 - ld de, 0 -.asm_2931e - ld a, [hli] - cp "@" - jr z, .asm_29326 - dec de - jr .asm_2931e - -.asm_29326 - hlcoord 0, 4 - add hl, de - ld de, wc741 - call PlaceString - hlcoord 7, 2 - ld bc, 6 - pop af - call ByteFill - call WaitBGMap - call WaitTop - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - call ClearTileMap - ret -; 29348 - -Function29348: ; 29348 - call ClearTileMap - call WaitTop - ld a, $a0 - ld [hSCX], a - call DelayFrame - hlcoord 8, 2 - ld de, Tilemap_298f7 - lb bc, 3, 12 - call Function297db - call WaitBGMap - ld b, $1b - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - ld de, $e4e4 - call DmgToCgbObjPals - ld de, SFX_POTION - call PlaySFX - call Function2910f - ret -; 2937e - -Function2937e: ; 2937e - ld a, [hSCX] - and a - jr z, .asm_29388 - add $4 - ld [hSCX], a - ret - -.asm_29388 - ld c, $50 - call DelayFrames - call Function29114 - ret -; 29391 - -Function29391: ; 29391 - ld a, [hSCX] - cp $a0 - jr z, .asm_2939c - sub $4 - ld [hSCX], a - ret - -.asm_2939c - call ClearTileMap - xor a - ld [hSCX], a - call Function29114 - ret -; 293a6 - -Function293a6: ; 293a6 - ld a, $8f - ld [hWX], a - ld a, $88 - ld [hSCX], a - ld a, $50 - ld [hWY], a - call Function29114 - ret -; 293b6 - -Function293b6: ; 293b6 - ld a, [hWX] - cp $7 - jr z, .asm_293c7 - sub $4 - ld [hWX], a - ld a, [hSCX] - sub $4 - ld [hSCX], a - ret - -.asm_293c7 - ld a, $7 - ld [hWX], a - xor a - ld [hSCX], a - call Function29114 - ret -; 293d2 - -Function293d2: ; 293d2 - ld a, $7 - ld [hWX], a - ld a, $50 - ld [hWY], a - call Function29114 - ret -; 293de - -Function293de: ; 293de - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - call Function29114 - ret -; 293ea - -Function293ea: ; 293ea - call WaitTop - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - call WaitBGMap - ld a, $7 - ld [hWX], a - xor a - ld [hWY], a - call DelayFrame - call WaitTop - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - call ClearTileMap - call Function2910f - ret -; 2940c - -Function2940c: ; 2940c - ld a, [hWX] - cp $a1 - jr nc, .asm_29417 - add $4 - ld [hWX], a - ret - -.asm_29417 - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - call WaitBGMap - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - call Function29114 - ret -; 2942e - -Function2942e: ; 2942e - call Function2951f - ld a, [wc6d0] - ld [CurPartySpecies], a - ld a, [wc6fd] - ld [TempMonDVs], a - ld a, [wc6fe] - ld [TempMonDVs + 1], a - ld b, $1a - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - call Function294bb - - ld a, [wc6d0] - call GetCryIndex - jr c, .asm_2945d - ld e, c - ld d, b - call PlayCryHeader -.asm_2945d - - call Function29114 - ret -; 29461 - -Function29461: ; 29461 - call Function29549 - ld a, [wc702] - ld [CurPartySpecies], a - ld a, [wEnemyTrappingMove] - ld [TempMonDVs], a - ld a, [wPlayerWrapCount] - ld [TempMonDVs + 1], a - ld b, $1a - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - call Function294c0 - call Function29114 - ret -; 29487 - -Function29487: ; 29487 - callba Function4d81e - call Function29114 - ret -; 29491 - -Function29491: ; 29491 - push de - push af - predef GetUnownLetter - pop af - ld [CurPartySpecies], a - ld [CurSpecies], a - call GetBaseData - pop de - predef GetFrontpic - ret -; 294a9 - -Function294a9: ; 294a9 - push de - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 - pop de - ld bc, NAME_LENGTH - call CopyBytes - ret -; 294bb - -Function294bb: ; 294bb - ld de, VTiles0 - jr Function294c3 - -Function294c0: ; 294c0 - ld de, VTiles0 tile $31 - -Function294c3: ; 294c3 - call DelayFrame - ld hl, VTiles2 - ld bc, $a31 - call Request2bpp - call WaitTop - call Function297cf - hlcoord 7, 2 - xor a - ld [hFillBox], a - lb bc, 7, 7 - predef FillBox - call WaitBGMap - ret -; 294e7 - -Function294e7: ; 294e7 - ld c, $50 - call DelayFrames - call Function29114 - ret -; 294f0 - -Function294f0: ; 294f0 - ld c, $28 - call DelayFrames - call Function29114 - ret -; 294f9 - -Function294f9: ; 294f9 - ld c, $60 - call DelayFrames - call Function29114 - ret -; 29502 - -Function29502: ; 29502 - call Function29516 - ret nz - ld c, $50 - call DelayFrames - ret -; 2950c - -Function2950c: ; 2950c - call Function29516 - ret nz - ld c, $b4 - call DelayFrames - ret -; 29516 - -Function29516: ; 29516 - call Function29114 - ld a, [wc702] - cp $fd - ret -; 2951f - -Function2951f: ; 2951f - ld de, wc6d0 - ld a, [de] - cp $fd - jr z, Function295a1 - call Function29573 - ld de, wc6d0 - call Function295e3 - ld de, wc6d1 - call Function295ef - ld a, [wc701] - ld de, wc6f2 - call Function295f6 - ld de, PlayerScreens - call Function29611 - call Function295d8 - ret -; 29549 - -Function29549: ; 29549 - ld de, wc702 - ld a, [de] - cp $fd - jr z, Function295a1 - call Function29573 - ld de, wc702 - call Function295e3 - ld de, wc703 - call Function295ef - ld a, [wEnemyCharging] - ld de, wc724 - call Function295f6 - ld de, wEnemyWrapCount - call Function29611 - call Function295d8 - ret -; 29573 - -Function29573: ; 29573 - call WaitTop - call Function297cf - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - hlcoord 3, 0 - ld b, $6 - ld c, $d - call TextBox - hlcoord 4, 0 - ld de, String29591 - call PlaceString - ret -; 29591 - -String29591: ; 29591 - db "─── №." - next "" - next "OT/" - next $73, "№.@" -; 295a1 - -Function295a1: ; 295a1 - call WaitTop - call Function297cf - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - hlcoord 3, 0 - ld b, $6 - ld c, $d - call TextBox - hlcoord 4, 2 - ld de, String295c2 - call PlaceString - call Function295d8 - ret -; 295c2 - -String295c2: ; 295c2 - db "EGG" - next "OT/?????" - next $73, "№.?????@" -; 295d8 - -Function295d8: ; 295d8 - call WaitBGMap - call WaitTop - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - ret -; 295e3 - -Function295e3: ; 295e3 - hlcoord 10, 0 - lb bc, PRINTNUM_LEADINGZEROS | 1, 3 - call PrintNum - ld [hl], $7f - ret -; 295ef - -Function295ef: ; 295ef - hlcoord 4, 2 - call PlaceString - ret -; 295f6 - -Function295f6: ; 295f6 - cp 3 - jr c, .asm_295fb - xor a - -.asm_295fb - push af - hlcoord 7, 4 - call PlaceString - inc bc - pop af - ld hl, Unknown_2960e - ld d, 0 - ld e, a - add hl, de - ld a, [hl] - ld [bc], a - ret -; 2960e - -Unknown_2960e: ; 2960e - db " ", "♂", "♀" -; 29611 - -Function29611: ; 29611 - hlcoord 7, 6 - lb bc, PRINTNUM_LEADINGZEROS | 2, 5 - call PrintNum - ret -; 2961b - -Function2961b: ; 2961b - lb de, $54, $58 - ld a, $e - call Function3b2a - call Function29114 - ld a, $20 - ld [wcf64], a - ret -; 2962c - -Function2962c: ; 2962c - lb de, $54, $58 - ld a, $e - call Function3b2a - ld hl, $b - add hl, bc - ld [hl], $1 - ld hl, $7 - add hl, bc - ld [hl], $dc - call Function29114 - ld a, $38 - ld [wcf64], a - ret -; 29649 - -Function29649: ; 29649 - lb de, $54, $58 - ld a, $f - call Function3b2a - call Function29114 - ld a, $10 - ld [wcf64], a - ld de, SFX_BALL_POOF - call PlaySFX - ret -; 29660 - -Function29660: ; 29660 - ld a, $e4 - call Functioncf8 - lb de, $28, $58 - ld a, $10 - call Function3b2a - call Function29114 - ld a, $40 - ld [wcf64], a - ret -; 29676 - -Function29676: ; 29676 (a:5676) - ld hl, $b - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Jumptable_29686 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 29686 - -Jumptable_29686: ; 29686 (a:5686) - dw Function2969a - dw Function296a4 - dw Function296af - dw Function296bd - dw Function296cf - dw Function296dd - dw Function296f2 -; 2969a - -Function29694: ; 29694 (a:5694) - ld hl, $b - add hl, bc - inc [hl] - ret - -Function2969a: ; 2969a (a:569a) - call Function29694 - ld hl, $c - add hl, bc - ld [hl], $80 - ret - -Function296a4: ; 296a4 (a:56a4) - ld hl, $c - add hl, bc - ld a, [hl] - dec [hl] - and a - ret nz - call Function29694 - -Function296af: ; 296af (a:56af) - ld hl, $4 - add hl, bc - ld a, [hl] - cp $94 - jr nc, .asm_296ba - inc [hl] - ret -.asm_296ba - call Function29694 - -Function296bd: ; 296bd (a:56bd) - ld hl, $5 - add hl, bc - ld a, [hl] - cp $4c - jr nc, .asm_296c8 - inc [hl] - ret -.asm_296c8 - ld hl, $ - add hl, bc - ld [hl], $0 - ret - -Function296cf: ; 296cf (a:56cf) - ld hl, $5 - add hl, bc - ld a, [hl] - cp $2c - jr z, .asm_296da - dec [hl] - ret -.asm_296da - call Function29694 - -Function296dd: ; 296dd (a:56dd) - ld hl, $4 - add hl, bc - ld a, [hl] - cp $58 - jr z, .asm_296e8 - dec [hl] - ret -.asm_296e8 - call Function29694 - ld hl, $c - add hl, bc - ld [hl], $80 - ret - -Function296f2: ; 296f2 (a:56f2) - ld hl, $c - add hl, bc - ld a, [hl] - dec [hl] - and a - ret nz - ld hl, $ - add hl, bc - ld [hl], $0 - ret -; 29701 (a:5701) - -Function29701: ; 29701 - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jr z, .asm_29725 - ld hl, UnknownText_0x29737 - call PrintText - ld c, $bd - call DelayFrames - ld hl, UnknownText_0x29732 - call PrintText - call Function297c9 - ld c, $80 - call DelayFrames - call Function29114 - ret - -.asm_29725 - ld hl, UnknownText_0x29732 - call PrintText - call Function297c9 - call Function29114 - ret -; 29732 - -UnknownText_0x29732: ; 0x29732 - ; was sent to @ . - text_jump UnknownText_0x1bc6e9 - db "@" -; 0x29737 - -UnknownText_0x29737: ; 0x29737 - ; - text_jump UnknownText_0x1bc701 - db "@" -; 0x2973c - -Function2973c: ; 2973c - ld hl, UnknownText_0x29752 - call PrintText - call Function297c9 - ld hl, UnknownText_0x29757 - call PrintText - call Function297c9 - call Function29114 - ret -; 29752 - -UnknownText_0x29752: ; 0x29752 - ; bids farewell to - text_jump UnknownText_0x1bc703 - db "@" -; 0x29757 - -UnknownText_0x29757: ; 0x29757 - ; . - text_jump UnknownText_0x1bc719 - db "@" -; 0x2975c - -Function2975c: ; 2975c - call WaitTop - hlcoord 0, 10 - ld bc, 8 * SCREEN_WIDTH - ld a, " " - call ByteFill - call WaitBGMap - ld hl, UnknownText_0x2977a - call PrintText - call Function297c9 - call Function29114 - ret -; 2977a - -UnknownText_0x2977a: ; 0x2977a - ; Take good care of @ . - text_jump UnknownText_0x1bc71f - db "@" -; 0x2977f - -Function2977f: ; 2977f - ld hl, UnknownText_0x2979a - call PrintText - call Function297c9 - ld hl, UnknownText_0x2979f - call PrintText - call Function297c9 - ld c, $e - call DelayFrames - call Function29114 - ret -; 2979a - -UnknownText_0x2979a: ; 0x2979a - ; For @ 's @ , - text_jump UnknownText_0x1bc739 - db "@" -; 0x2979f - -UnknownText_0x2979f: ; 0x2979f - ; sends @ . - text_jump UnknownText_0x1bc74c - db "@" -; 0x297a4 - -Function297a4: ; 297a4 - ld hl, UnknownText_0x297bf - call PrintText - call Function297c9 - ld hl, UnknownText_0x297c4 - call PrintText - call Function297c9 - ld c, $e - call DelayFrames - call Function29114 - ret -; 297bf - -UnknownText_0x297bf: ; 0x297bf - ; will trade @ @ - text_jump UnknownText_0x1bc75e - db "@" -; 0x297c4 - -UnknownText_0x297c4: ; 0x297c4 - ; for @ 's @ . - text_jump UnknownText_0x1bc774 - db "@" -; 0x297c9 - -Function297c9: ; 297c9 - ld c, $50 - call DelayFrames - ret -; 297cf - -Function297cf: ; 297cf - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - ret -; 297db - -Function297db: ; 297db -.asm_297db - push bc - push hl -.asm_297dd - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_297dd - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .asm_297db - ret -; 297ed - -Function297ed: ; 297ed - ld a, [hSGB] - and a - ld a, $e4 - jr z, .asm_297f6 - ld a, $f0 - -.asm_297f6 - call Functioncf8 - ld a, $e4 - call DmgToCgbBGPals - ret -; 297ff - -Function297ff: ; 297ff - push de - ld de, wc736 - ld bc, NAME_LENGTH - call CopyBytes - pop hl - ld de, wc741 - ld bc, NAME_LENGTH - call CopyBytes - ret -; 29814 - -Function29814: ; 29814 - ld a, [hl] - ld [wc74c], a - ld a, [de] - ld [wc74d], a - ret -; 2981d - -Function2981d: ; 2981d - ld a, [wcf65] - and $7 - ret nz - ld a, [rBGP] - xor $3c - call DmgToCgbBGPals - ret -; 2982b - -Function2982b: ; 2982b - call DelayFrame - ld de, TradeBallGFX - ld hl, VTiles0 tile $62 - lb bc, BANK(TradeBallGFX), $6 - call Request2bpp - ld de, TradePoofGFX - ld hl, VTiles0 tile $68 - lb bc, BANK(TradePoofGFX), $c - call Request2bpp - ld de, TradeCableGFX - ld hl, VTiles0 tile $74 - lb bc, BANK(TradeCableGFX), $4 - call Request2bpp - xor a - ld hl, wc300 - ld [hli], a - ld [hl], $62 - ret -; 2985a - -Function2985a: ; 2985a - call DelayFrame - ld e, $3 - callab Function8e83f - ld de, TradeBubbleGFX - ld hl, VTiles0 tile $72 - lb bc, BANK(TradeBubbleGFX), $4 - call Request2bpp - xor a - ld hl, wc300 - ld [hli], a - ld [hl], $62 - ret -; 29879 - -Function29879: ; 29879 - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_29882 - dec [hl] - ret - -.asm_29882 - call Function29114 - ret -; 29886 - -Function29886: ; 29886 - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_2988f - dec [hl] - ret - -.asm_2988f - call Function29114 - ret -; 29893 - - -Function29893: ; 29893 -; This function is unreferenced. -; It was meant for use in Japanese versions, so the -; constant used for copy length was changed by accident. - - ld hl, Unknown_298b5 - - ld a, [hli] - ld [wc6d0], a - ld de, wc6e7 - ld c, 13 ; jp: 8 -.asm_2989f - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_2989f - - ld a, [hli] - ld [wc702], a - ld de, wc719 - ld c, 13 ; jp: 8 -.asm_298ae - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_298ae - ret -; 298b5 - -Unknown_298b5: ; 298b5 - db $03, "ゲーフり@@", $23, $01 ; GAME FREAK - db $06, "クりーチャ@", $56, $04 ; Creatures Inc. -; 298c7 - - -TradeGameBoyTilemap: ; 298c7 -; 6x8 - db $31, $32, $32, $32, $32, $33 - db $34, $35, $36, $36, $37, $38 - db $34, $39, $3a, $3a, $3b, $38 - db $3c, $3d, $3e, $3e, $3f, $40 - db $41, $42, $43, $43, $44, $45 - db $46, $47, $43, $48, $49, $4a - db $41, $43, $4b, $4c, $4d, $4e - db $4f, $50, $50, $50, $51, $52 -; 297f7 - -Tilemap_298f7: ; 297f7 -; 12x3 - db $43, $55, $56, $53, $53, $53, $53, $53, $53, $53, $53, $53 - db $43, $57, $58, $54, $54, $54, $54, $54, $54, $54, $54, $54 - db $43, $59, $5a, $43, $43, $43, $43, $43, $43, $43, $43, $43 -; 2991b - -TradeArrowGFX: INCBIN "gfx/trade/arrow.2bpp" -TradeCableGFX: INCBIN "gfx/trade/cable.2bpp" -TradeBubbleGFX: INCBIN "gfx/trade/bubble.2bpp" -TradeGameBoyLZ: INCBIN "gfx/trade/game_boy.2bpp.lz" -TradeBallGFX: INCBIN "gfx/trade/ball.2bpp" -TradePoofGFX: INCBIN "gfx/trade/poof.2bpp" - -Special_CheckTimeCapsuleCompatibility: ; 29bfb -; Checks to see if your Party is compatible with the generation 1 games. Returns the following in ScriptVar: -; 0: Party is okay -; 1: At least one Pokemon was introduced in GS -; 2: At least one Pokemon has a move that was introduced in GS -; 3: At least one Pokemon is holding mail - -; If any party Pokemon was introduced in the generation 2 games, don't let it in. - ld hl, PartySpecies - ld b, PARTY_LENGTH ; 6 -.loop - ld a, [hli] - cp $ff - jr z, .checkitem - cp CHIKORITA ; MEW + 1 ; 151 + 1 - jr nc, .mon_too_new - dec b - jr nz, .loop - -; If any party Pokemon is holding mail, don't let it in. -.checkitem - ld a, [PartyCount] - ld b, a - ld hl, PartyMon1Item -.itemloop - push hl - push bc - ld d, [hl] - callba ItemIsMail - pop bc - pop hl - jr c, .mon_has_mail - ld de, PARTYMON_STRUCT_LENGTH - add hl, de - dec b - jr nz, .itemloop - -; If any party Pokemon has a move that was introduced in the generation 2 games, don't let it in. - ld hl, PartyMon1Moves - ld a, [PartyCount] - ld b, a -.move_loop - ld c, NUM_MOVES -.move_next - ld a, [hli] - cp STRUGGLE + 1 - jr nc, .move_too_new - dec c - jr nz, .move_next - ld de, PartyMon2 - (PartyMon1 + NUM_MOVES) - add hl, de - dec b - jr nz, .move_loop - xor a - jr .done - -.mon_too_new - ld [wd265], a - call GetPokemonName - ld a, $1 - jr .done - -.move_too_new - push bc - ld [wd265], a - call GetMoveName - call CopyName1 - pop bc - call Function29c67 - ld a, $2 - jr .done - -.mon_has_mail - call Function29c67 - ld a, $3 - -.done - ld [ScriptVar], a - ret -; 29c67 - -Function29c67: ; 29c67 - ld a, [PartyCount] - sub b - ld c, a - inc c - ld b, $0 - ld hl, PartyCount - add hl, bc - ld a, [hl] - ld [wd265], a - call GetPokemonName - ret -; 29c7b - -Special_EnterTimeCapsule: ; 29c7b - ld c, $a - call DelayFrames - ld a, $4 - call Function29f17 - ld c, $28 - call DelayFrames - xor a - ld [hVBlank], a - inc a - ld [wLinkMode], a - ret -; 29c92 - -Special_AbortLink: ; 29c92 - ld c, $3 - call DelayFrames - ld a, -1 - ld [hLinkPlayerNumber], a - xor a - ld [rSB], a - ld [hSerialReceive], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - ld c, $3 - call DelayFrames - xor a - ld [rSB], a - ld [hSerialReceive], a - ld a, $0 - ld [rSC], a - ld a, $80 - ld [rSC], a - ld c, $3 - call DelayFrames - xor a - ld [rSB], a - ld [hSerialReceive], a - ld [rSC], a - ld c, $3 - call DelayFrames - ld a, -1 - ld [hLinkPlayerNumber], a - ld a, [rIF] - push af - xor a - ld [rIF], a - ld a, $f - ld [rIE], a - pop af - ld [rIF], a - ld hl, wcf5b - xor a - ld [hli], a - ld [hl], a - ld [hVBlank], a - ld [wLinkMode], a - ret -; 29ce8 - -Special_SetBitsForLinkTradeRequest: ; 29ce8 - ld a, $1 - ld [wcf56], a - ld [wd265], a - ret -; 29cf1 - -Special_SetBitsForBattleRequest: ; 29cf1 - ld a, $2 - ld [wcf56], a - ld [wd265], a - ret -; 29cfa - -Special_SetBitsForTimeCapsuleRequest: ; 29cfa - ld a, $2 - ld [rSB], a - xor a - ld [hSerialReceive], a - ld a, $0 - ld [rSC], a - ld a, $80 - ld [rSC], a - xor a - ld [wcf56], a - ld [wd265], a - ret -; 29d11 - -Special_WaitForLinkedFriend: ; 29d11 - ld a, [wcf56] - and a - jr z, .asm_29d2f - ld a, $2 - ld [rSB], a - xor a - ld [hSerialReceive], a - ld a, $0 - ld [rSC], a - ld a, $80 - ld [rSC], a - call DelayFrame - call DelayFrame - call DelayFrame - -.asm_29d2f - ld a, $2 - ld [wcf5c], a - ld a, $ff - ld [wcf5b], a -.asm_29d39 - ld a, [hLinkPlayerNumber] - cp $2 - jr z, .asm_29d79 - cp $1 - jr z, .asm_29d79 - ld a, -1 - ld [hLinkPlayerNumber], a - ld a, $2 - ld [rSB], a - xor a - ld [hSerialReceive], a - ld a, $0 - ld [rSC], a - ld a, $80 - ld [rSC], a - ld a, [wcf5b] - dec a - ld [wcf5b], a - jr nz, .asm_29d68 - ld a, [wcf5c] - dec a - ld [wcf5c], a - jr z, .asm_29d8d - -.asm_29d68 - ld a, $1 - ld [rSB], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - call DelayFrame - jr .asm_29d39 - -.asm_29d79 - call Function908 - call DelayFrame - call Function908 - ld c, $32 - call DelayFrames - ld a, $1 - ld [ScriptVar], a - ret - -.asm_29d8d - xor a - ld [ScriptVar], a - ret -; 29d92 - -Special_CheckLinkTimeout: ; 29d92 - ld a, $1 - ld [wcf56], a - ld hl, wcf5b - ld a, $3 - ld [hli], a - xor a - ld [hl], a - call WaitBGMap - ld a, $2 - ld [hVBlank], a - call DelayFrame - call DelayFrame - call Function29e0c - xor a - ld [hVBlank], a - ld a, [ScriptVar] - and a - ret nz - jp Function29f04 -; 29dba - -Function29dba: ; 29dba - ld a, $5 - ld [wcf56], a - ld hl, wcf5b - ld a, $3 - ld [hli], a - xor a - ld [hl], a - call WaitBGMap - ld a, $2 - ld [hVBlank], a - call DelayFrame - call DelayFrame - call Function29e0c - ld a, [ScriptVar] - and a - jr z, .asm_29e08 - ld bc, rIE -.asm_29de0 - dec bc - ld a, b - or c - jr nz, .asm_29de0 - ld a, [wcf51] - cp $5 - jr nz, .asm_29e03 - ld a, $6 - ld [wcf56], a - ld hl, wcf5b - ld a, $1 - ld [hli], a - ld [hl], $32 - call Function29e0c - ld a, [wcf51] - cp $6 - jr z, .asm_29e08 - -.asm_29e03 - xor a - ld [ScriptVar], a - ret - -.asm_29e08 - xor a - ld [hVBlank], a - ret -; 29e0c - -Function29e0c: ; 29e0c - xor a - ld [$ffca], a - ld a, [wcf5b] - ld h, a - ld a, [wcf5c] - ld l, a - push hl - call Function29e3b - pop hl - jr nz, .asm_29e2f - call Function29e47 - call Function29e53 - call Function29e3b - jr nz, .asm_29e2f - call Function29e47 - xor a - jr .asm_29e31 - -.asm_29e2f - ld a, $1 - -.asm_29e31 - ld [ScriptVar], a - ld hl, wcf5b - xor a - ld [hli], a - ld [hl], a - ret -; 29e3b - -Function29e3b: ; 29e3b - call Function87d - ld hl, wcf5b - ld a, [hli] - inc a - ret nz - ld a, [hl] - inc a - ret -; 29e47 - -Function29e47: ; 29e47 - ld b, $a -.asm_29e49 - call DelayFrame - call Function908 - dec b - jr nz, .asm_29e49 - ret -; 29e53 - -Function29e53: ; 29e53 - dec h - srl h - rr l - srl h - rr l - inc h - ld a, h - ld [wcf5b], a - ld a, l - ld [wcf5c], a - ret -; 29e66 - -Special_TryQuickSave: ; 29e66 - ld a, [wd265] - push af - callba Function14ab2 - ld a, $1 - jr nc, .asm_29e75 - xor a - -.asm_29e75 - ld [ScriptVar], a - ld c, $1e - call DelayFrames - pop af - ld [wd265], a - ret -; 29e82 - -Special_CheckBothSelectedSameRoom: ; 29e82 - ld a, [wd265] - call Function29f17 - push af - call Function908 - call DelayFrame - call Function908 - pop af - ld b, a - ld a, [wd265] - cp b - jr nz, .asm_29eaa - ld a, [wd265] - inc a - ld [wLinkMode], a - xor a - ld [hVBlank], a - ld a, $1 - ld [ScriptVar], a - ret - -.asm_29eaa - xor a - ld [ScriptVar], a - ret -; 29eaf - -Special_TimeCapsule: ; 29eaf - ld a, LINK_TIMECAPSULE - ld [wLinkMode], a - call DisableSpriteUpdates - callab LinkCommunications - call EnableSpriteUpdates - xor a - ld [hVBlank], a - ret -; 29ec4 - -Special_TradeCenter: ; 29ec4 - ld a, LINK_TRADECENTER - ld [wLinkMode], a - call DisableSpriteUpdates - callab LinkCommunications - call EnableSpriteUpdates - xor a - ld [hVBlank], a - ret -; 29ed9 - -Special_Colosseum: ; 29ed9 - ld a, LINK_COLOSSEUM - ld [wLinkMode], a - call DisableSpriteUpdates - callab LinkCommunications - call EnableSpriteUpdates - xor a - ld [hVBlank], a - ret -; 29eee - -Special_CloseLink: ; 29eee - xor a - ld [wLinkMode], a - ld c, $3 - call DelayFrames - jp Function29f04 -; 29efa - -Special_FailedLinkToPast: ; 29efa - ld c, $28 - call DelayFrames - ld a, $e - jp Function29f17 -; 29f04 - -Function29f04: ; 29f04 - ld c, $3 - call DelayFrames - ld a, -1 - ld [hLinkPlayerNumber], a - ld a, $2 - ld [rSB], a - xor a - ld [hSerialReceive], a - ld [rSC], a - ret -; 29f17 - -Function29f17: ; 29f17 - add $d0 - ld [wcf56], a - ld [wcf57], a - ld a, $2 - ld [hVBlank], a - call DelayFrame - call DelayFrame -.asm_29f29 - call Function83b - ld a, [wcf51] - ld b, a - and $f0 - cp $d0 - jr z, .asm_29f40 - ld a, [wcf52] - ld b, a - and $f0 - cp $d0 - jr nz, .asm_29f29 - -.asm_29f40 - xor a - ld [hVBlank], a - ld a, b - and $f - ret -; 29f47 - -Special_CableClubCheckWhichChris: ; 29f47 - ld a, [hLinkPlayerNumber] - cp $1 - ld a, $1 - jr z, .yes - dec a - -.yes - ld [ScriptVar], a - ret -; 29f54 - -GFX_29f54: ; 29f54 -INCBIN "gfx/unknown/029f54.2bpp" -; 29fe4 - -Function29fe4: ; 29fe4 +Function29fe4: ; unreferenced ld a, $0 call GetSRAMBank ld d, $0 @@ -45998,7 +41882,7 @@ GetUnownLetter: ; 51040 ld [hDividend + 2], a ld a, 10 ld [hDivisor], a - ld b, $4 + ld b, 4 call Divide ; Increment to get 1-26 |