diff options
Diffstat (limited to 'engine/link.asm')
-rwxr-xr-x | engine/link.asm | 1609 |
1 files changed, 37 insertions, 1572 deletions
diff --git a/engine/link.asm b/engine/link.asm index 77b63183e..96c5cb376 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -83,8 +83,8 @@ Function2805d: ; 2805d ld a, $fe ld [de], a ld hl, wc608 - ld de, wc6d0 - ld bc, $c8 + ld de, wPlayerTrademonSpecies + ld bc, wPlayerTrademonSpecies - wc608 call Function75f xor a ld [rIF], a @@ -105,7 +105,7 @@ Function2805d: ; 2805d ld de, OverworldMap ld bc, $1a2 call Function2879e - ld de, wc6d0 + ld de, wPlayerTrademonSpecies ld hl, wc813 ld c, $2 .asm_280fe @@ -226,7 +226,7 @@ Function28177: ; 28177 ld a, $fe ld [de], a ld hl, wc608 - ld de, wc6d0 + ld de, wPlayerTrademonSpecies ld bc, $c8 call Function75f ld a, [wLinkMode] @@ -250,7 +250,7 @@ Function28177: ; 28177 ld de, OverworldMap ld bc, $1b9 call Function2879e - ld de, wc6d0 + ld de, wPlayerTrademonSpecies ld hl, wc813 ld c, $2 .asm_28224 @@ -841,12 +841,12 @@ Function28595: ; 28595 cp LINK_TRADECENTER ret nz -; Fill 32 bytes at wc9f4 with $05 +; Fill 5 bytes at wc9f4 with $20 ld de, wc9f4 ld a, $20 call Function28682 -; Copy all the mail messages to $ca14 +; Copy all the mail messages to wc9f9 ld a, BANK(sPartyMail) call GetSRAMBank ld hl, sPartyMail @@ -855,19 +855,19 @@ Function28595: ; 28595 push bc ld bc, MAIL_MSG_LENGTH + 1 call CopyBytes - ld bc, MAIL_STRUCT_LENGTH - MAIL_MSG_LENGTH - 1 + ld bc, sPartyMon1MailEnd - sPartyMon1MailAuthor add hl, bc pop bc dec b jr nz, .loop2 -; Copy the mail metadata to $cada +; Copy the mail metadata to wcabf ld hl, sPartyMail ld b, PARTY_LENGTH .loop3 push bc ld bc, MAIL_MSG_LENGTH + 1 add hl, bc - ld bc, MAIL_STRUCT_LENGTH - MAIL_MSG_LENGTH - 1 + ld bc, sPartyMon1MailEnd - sPartyMon1MailAuthor call CopyBytes pop bc dec b @@ -903,19 +903,19 @@ Function28595: ; 28595 ld d, h ld e, l pop hl - ld bc, $21 + ld bc, sPartyMon1MailAuthor - sPartyMon1Mail add hl, bc pop bc dec b jr nz, .loop4 call CloseSRAM ld hl, wc9f9 - ld bc, $c6 + ld bc, PARTY_LENGTH * (sPartyMon1MailAuthor - sPartyMon1Mail) .loop5 ld a, [hl] cp $fe jr nz, .skip2 - ld [hl], $21 + ld [hl], sPartyMon1MailAuthor - sPartyMon1Mail .skip2 inc hl @@ -925,7 +925,7 @@ Function28595: ; 28595 jr nz, .loop5 ld hl, wcabf ld de, wcb13 - ld b, $54 + ld b, PARTY_LENGTH * (sPartyMon1MailEnd - sPartyMon1MailAuthor) ld c, $0 .loop6 inc c @@ -1798,7 +1798,7 @@ Function28b87: ; 28b87 call CopyBytes call CloseSRAM ld hl, PlayerName - ld de, wc6e7 + ld de, wPlayerTrademonSenderName ld bc, NAME_LENGTH call CopyBytes ld a, [wd002] @@ -1807,28 +1807,28 @@ Function28b87: ; 28b87 ld c, a add hl, bc ld a, [hl] - ld [wc6d0], a + ld [wPlayerTrademonSpecies], a push af ld a, [wd002] ld hl, PartyMonOT call SkipNames - ld de, wc6f2 + ld de, wPlayerTrademonOTName ld bc, NAME_LENGTH call CopyBytes ld hl, PartyMon1ID ld a, [wd002] call GetPartyLocation ld a, [hli] - ld [PlayerScreens], a + ld [wPlayerTrademonID], a ld a, [hl] - ld [EnemyScreens], a + ld [wPlayerTrademonID + 1], a ld hl, PartyMon1DVs ld a, [wd002] call GetPartyLocation ld a, [hli] - ld [wc6fd], a + ld [wPlayerTrademonDVs], a ld a, [hl] - ld [wPlayerMinimized], a + ld [wPlayerTrademonDVs + 1], a ld a, [wd002] ld hl, PartyMon1Species call GetPartyLocation @@ -1836,9 +1836,9 @@ Function28b87: ; 28b87 ld c, l callba GetCaughtGender ld a, c - ld [wc701], a + ld [wPlayerTrademonCaughtData], a ld hl, wd26b - ld de, wc719 + ld de, wOTTrademonSenderName ld bc, NAME_LENGTH call CopyBytes ld a, [wd003] @@ -1847,27 +1847,27 @@ Function28b87: ; 28b87 ld c, a add hl, bc ld a, [hl] - ld [wc702], a + ld [wOTTrademonSpecies], a ld a, [wd003] ld hl, OTPartyMonOT call SkipNames - ld de, wc724 + ld de, wOTTrademonOTName ld bc, NAME_LENGTH call CopyBytes ld hl, OTPartyMon1ID ld a, [wd003] call GetPartyLocation ld a, [hli] - ld [wEnemyWrapCount], a + ld [wOTTrademonID], a ld a, [hl] - ld [wPlayerCharging], a + ld [wOTTrademonID + 1], a ld hl, OTPartyMon1DVs ld a, [wd003] call GetPartyLocation ld a, [hli] - ld [wEnemyTrappingMove], a + ld [wOTTrademonDVs], a ld a, [hl] - ld [wPlayerWrapCount], a + ld [wOTTrademonDVs + 1], a ld a, [wd003] ld hl, OTPartyMon1Species call GetPartyLocation @@ -1875,7 +1875,7 @@ Function28b87: ; 28b87 ld c, l callba GetCaughtGender ld a, c - ld [wEnemyCharging], a + ld [wOTTrademonCaughtData], a ld a, [wd002] ld [CurPartyMon], a ld hl, PartySpecies @@ -1908,14 +1908,14 @@ Function28b87: ; 28b87 call GetSGBLayout ld a, [hLinkPlayerNumber] cp $1 - jr z, .asm_28de4 - predef Function28f24 - jr .asm_28de9 + jr z, .player_2 + predef TradeAnimation + jr .done_animation -.asm_28de4 - predef Function28f63 +.player_2 + predef TradeAnimationPlayer2 -.asm_28de9 +.done_animation pop af ld c, a ld [CurPartyMon], a @@ -2050,1542 +2050,7 @@ Function28f09: ; 28f09 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 ClearBGPalettes - 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 - hlbgcoord 0, 0 - 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 - hlbgcoord 20, 3 - 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 _InitSpriteAnimStruct - ld hl, $b - add hl, bc - pop bc - ld [hl], b - pop de - ld a, $12 - call _InitSpriteAnimStruct - ld hl, $b - add hl, bc - pop bc - ld [hl], b - call WaitBGMap - ld b, SCGB_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 ClearBGPalettes - call ClearTileMap - call ClearSprites - call DisableLCD - callab Function8cf53 - hlbgcoord 0, 0 - 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 ClearBGPalettes - 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, SCGB_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, [wPlayerMinimized] - ld [TempMonDVs + 1], a - ld b, SCGB_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, SCGB_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 - depixel 10, 11, 4, 0 - ld a, $e - call _InitSpriteAnimStruct - call Function29114 - ld a, $20 - ld [wcf64], a - ret -; 2962c - -Function2962c: ; 2962c - depixel 10, 11, 4, 0 - ld a, $e - call _InitSpriteAnimStruct - 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 - depixel 10, 11, 4, 0 - ld a, $f - call _InitSpriteAnimStruct - call Function29114 - ld a, $10 - ld [wcf64], a - ld de, SFX_BALL_POOF - call PlaySFX - ret -; 29660 - -Function29660: ; 29660 - ld a, $e4 - call Functioncf8 - depixel 5, 11 - ld a, $10 - call _InitSpriteAnimStruct - 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" +INCLUDE "engine/trade/animation.asm" Special_CheckTimeCapsuleCompatibility: ; 29bfb ; Checks to see if your Party is compatible with the generation 1 games. Returns the following in ScriptVar: |