diff options
Diffstat (limited to 'engine/link.asm')
-rwxr-xr-x | engine/link.asm | 211 |
1 files changed, 107 insertions, 104 deletions
diff --git a/engine/link.asm b/engine/link.asm index 14c9c2f4d..f5bc24da9 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -25,7 +25,7 @@ LinkCommunications: ; 28000 hlcoord 4, 10 ld de, String_PleaseWait call PlaceString - call Function28eff + call SetTradeRoomBGPals call WaitBGMap2 ld hl, wcf5d xor a @@ -41,7 +41,7 @@ TimeCapsule: ; 2805d call FixDataForLinkTransfer xor a ld [wPlayerLinkAction], a - call Function87d + call WaitLinkTransfer ld a, [hLinkPlayerNumber] cp $2 jr nz, .player_1 @@ -163,9 +163,9 @@ TimeCapsule: ; 2805d ld hl, wTimeCapsulePartyMon1Species call Function2868a ld a, OTPartyMonOT % $100 - ld [wd102], a + ld [wUnusedD102], a ld a, OTPartyMonOT / $100 - ld [wd103], a + ld [wUnusedD102 + 1], a ld de, MUSIC_NONE call PlayMusic ld a, [hLinkPlayerNumber] @@ -404,9 +404,9 @@ Gen2ToGen2LinkComms: ; 28177 ld bc, OTPartyDataEnd - OTPartyMons call CopyBytes ld a, OTPartyMonOT % $100 - ld [wd102], a + ld [wUnusedD102], a ld a, OTPartyMonOT / $100 - ld [wd103], a + ld [wUnusedD102 + 1], a ld de, MUSIC_NONE call PlayMusic ld a, [hLinkPlayerNumber] @@ -431,10 +431,12 @@ Gen2ToGen2LinkComms: ; 28177 ld bc, NAME_LENGTH call CopyBytes call ReturnToMapFromSubmenu - ld a, [wc2d7] + + ; LET'S DO THIS + ld a, [wDisableTextAcceleration] push af - ld a, $1 - ld [wc2d7], a + ld a, 1 + ld [wDisableTextAcceleration], a ld a, [rIE] push af ld a, [rIF] @@ -446,7 +448,9 @@ Gen2ToGen2LinkComms: ; 28177 ld [rIE], a pop af ld [rIF], a + predef StartBattle + ld a, [rIF] ld h, a xor a @@ -456,7 +460,7 @@ Gen2ToGen2LinkComms: ; 28177 ld a, h ld [rIF], a pop af - ld [wc2d7], a + ld [wDisableTextAcceleration], a pop af ld [Options], a callba LoadPokemonData @@ -491,10 +495,10 @@ LinkTimeout: ; 283b2 pop de pop hl bccoord 1, 14 - call PlaceWholeStringInBoxAtOnce + call PlaceHLTextAtBC call RotateThreePalettesRight call ClearScreen - ld b, SCGB_08 + ld b, SCGB_DIPLOMA call GetSGBLayout call WaitBGMap2 ret @@ -575,9 +579,9 @@ FixDataForLinkTransfer: ; 28434 jr nz, .loop2 ld hl, wMisc ld a, $fd -rept 3 ld [hli], a -endr + ld [hli], a + ld [hli], a ld b, $c8 xor a .loop3 @@ -1094,14 +1098,12 @@ Function2868a: ; 2868a ld a, $46 ld [hli], a xor a -rept 2 ld [hli], a -endr + ld [hli], a ld [hl], a pop hl -rept 2 inc de -endr + inc de ret ; 28771 @@ -1211,9 +1213,9 @@ InitTradeMenuDisplay: ; 287e3 callba InitTradeSpeciesList xor a ld hl, wOtherPlayerLinkMode -rept 3 ld [hli], a -endr + ld [hli], a + ld [hli], a ld [hl], a ld a, 1 ld [wMenuCursorY], a @@ -1252,8 +1254,8 @@ LinkTradeOTPartymonMenuLoop: ; 28835 bit A_BUTTON_F, a jr z, .not_a_button ld a, $1 - ld [wd263], a - callab Function50db9 + ld [wInitListType], a + callab InitList ld hl, OTPartyMon1Species callba LinkMonStatsScreen jp LinkTradePartiesMenuMasterLoop @@ -1445,8 +1447,8 @@ Function28926: ; 28926 pop af ld [wMenuCursorY], a ld a, $4 - ld [wd263], a - callab Function50db9 + ld [wInitListType], a + callab InitList callba LinkMonStatsScreen call Call_LoadTempTileMapToTileMap hlcoord 6, 1 @@ -1488,7 +1490,7 @@ Function28926: ; 28926 callba Link_WaitBGMap ld hl, .Text_CantTradeLastMon bccoord 1, 14 - call PlaceWholeStringInBoxAtOnce + call PlaceHLTextAtBC jr .cancel_trade .abnormal @@ -1510,7 +1512,7 @@ Function28926: ; 28926 callba Link_WaitBGMap ld hl, .Text_Abnormal bccoord 1, 14 - call PlaceWholeStringInBoxAtOnce + call PlaceHLTextAtBC .cancel_trade hlcoord 0, 12 @@ -1595,7 +1597,7 @@ Function28ade: ; 28ade Function28b22: ; 28b22 call RotateThreePalettesRight call ClearScreen - ld b, SCGB_08 + ld b, SCGB_DIPLOMA call GetSGBLayout call WaitBGMap2 xor a @@ -1686,7 +1688,7 @@ LinkTrade: ; 28b87 call GetPokemonName ld hl, UnknownText_0x28eb8 bccoord 1, 14 - call PlaceWholeStringInBoxAtOnce + call PlaceHLTextAtBC call LoadStandardMenuDataHeader hlcoord 10, 7 ld b, 3 @@ -1900,7 +1902,7 @@ LinkTrade: ; 28b87 call DelayFrames call ClearTileMap call LoadFontsBattleExtra - ld b, SCGB_08 + ld b, SCGB_DIPLOMA call GetSGBLayout ld a, [hLinkPlayerNumber] cp $1 @@ -1934,26 +1936,26 @@ LinkTrade: ; 28b87 callab EvolvePokemon call ClearScreen call LoadTradeScreenBorder - call Function28eff + call SetTradeRoomBGPals callba Link_WaitBGMap ld b, $1 pop af ld c, a cp MEW - jr z, .asm_28e49 + jr z, .loop ld a, [CurPartySpecies] cp MEW - jr z, .asm_28e49 + jr z, .loop ld b, $2 ld a, c cp CELEBI - jr z, .asm_28e49 + jr z, .loop ld a, [CurPartySpecies] cp CELEBI - jr z, .asm_28e49 + jr z, .loop ld b, $0 -.asm_28e49 +.loop ld a, b ld [wPlayerLinkAction], a push bc @@ -1961,17 +1963,17 @@ LinkTrade: ; 28b87 pop bc ld a, [wLinkMode] cp LINK_TIMECAPSULE - jr z, .asm_28e63 + jr z, .save ld a, b and a - jr z, .asm_28e63 + jr z, .save ld a, [wOtherPlayerLinkAction] cp b - jr nz, .asm_28e49 + jr nz, .loop -.asm_28e63 - callba Function14a58 - callba MobileFn_1060af +.save + callba SaveAfterLinkTrade + callba TrainerRankings_Trades callba BackupMobileEventIndex ld c, 40 call DelayFrames @@ -2027,8 +2029,8 @@ LoadTradeScreenBorder: ; 28ef8 ret ; 28eff -Function28eff: ; 28eff - callba Function16d6a7 +SetTradeRoomBGPals: ; 28eff + callba LoadTradeRoomBGPals_ ; just a nested farcall; so wasteful call SetPalettes ret ; 28f09 @@ -2148,7 +2150,7 @@ Special_EnterTimeCapsule: ; 29c7b ld c, 10 call DelayFrames ld a, $4 - call Function29f17 + call Link_EnsureSync ld c, 40 call DelayFrames xor a @@ -2197,7 +2199,7 @@ WaitForOtherPlayerToExit: ; 29c92 ld [rIE], a pop af ld [rIF], a - ld hl, wcf5b + ld hl, wLinkTimeoutFrames xor a ld [hli], a ld [hl], a @@ -2238,7 +2240,7 @@ Special_SetBitsForTimeCapsuleRequest: ; 29cfa Special_WaitForLinkedFriend: ; 29d11 ld a, [wPlayerLinkAction] and a - jr z, .asm_29d2f + jr z, .no_link_action ld a, $2 ld [rSB], a xor a @@ -2251,17 +2253,17 @@ Special_WaitForLinkedFriend: ; 29d11 call DelayFrame call DelayFrame -.asm_29d2f +.no_link_action ld a, $2 - ld [wcf5c], a + ld [wLinkTimeoutFrames + 1], a ld a, $ff - ld [wcf5b], a -.asm_29d39 + ld [wLinkTimeoutFrames], a +.loop ld a, [hLinkPlayerNumber] cp $2 - jr z, .asm_29d79 + jr z, .connected cp $1 - jr z, .asm_29d79 + jr z, .connected ld a, -1 ld [hLinkPlayerNumber], a ld a, $2 @@ -2272,16 +2274,16 @@ Special_WaitForLinkedFriend: ; 29d11 ld [rSC], a ld a, $80 ld [rSC], a - ld a, [wcf5b] + ld a, [wLinkTimeoutFrames] dec a - ld [wcf5b], a - jr nz, .asm_29d68 - ld a, [wcf5c] + ld [wLinkTimeoutFrames], a + jr nz, .not_done + ld a, [wLinkTimeoutFrames + 1] dec a - ld [wcf5c], a - jr z, .asm_29d8d + ld [wLinkTimeoutFrames + 1], a + jr z, .done -.asm_29d68 +.not_done ld a, $1 ld [rSB], a ld a, $1 @@ -2289,19 +2291,19 @@ Special_WaitForLinkedFriend: ; 29d11 ld a, $81 ld [rSC], a call DelayFrame - jr .asm_29d39 + jr .loop -.asm_29d79 +.connected call LinkDataReceived call DelayFrame call LinkDataReceived - ld c, $32 + ld c, 50 call DelayFrames ld a, $1 ld [ScriptVar], a ret -.asm_29d8d +.done xor a ld [ScriptVar], a ret @@ -2310,7 +2312,7 @@ Special_WaitForLinkedFriend: ; 29d11 Special_CheckLinkTimeout: ; 29d92 ld a, $1 ld [wPlayerLinkAction], a - ld hl, wcf5b + ld hl, wLinkTimeoutFrames ld a, $3 ld [hli], a xor a @@ -2320,19 +2322,19 @@ Special_CheckLinkTimeout: ; 29d92 ld [hVBlank], a call DelayFrame call DelayFrame - call Function29e0c + call Link_CheckCommunicationError xor a ld [hVBlank], a ld a, [ScriptVar] and a ret nz - jp Function29f04 + jp Link_ResetSerialRegistersAfterLinkClosure ; 29dba Function29dba: ; 29dba ld a, $5 ld [wPlayerLinkAction], a - ld hl, wcf5b + ld hl, wLinkTimeoutFrames ld a, $3 ld [hli], a xor a @@ -2342,7 +2344,7 @@ Function29dba: ; 29dba ld [hVBlank], a call DelayFrame call DelayFrame - call Function29e0c + call Link_CheckCommunicationError ld a, [ScriptVar] and a jr z, .vblank @@ -2357,11 +2359,11 @@ Function29dba: ; 29dba jr nz, .script_var ld a, $6 ld [wPlayerLinkAction], a - ld hl, wcf5b + ld hl, wLinkTimeoutFrames ld a, $1 ld [hli], a ld [hl], $32 - call Function29e0c + call Link_CheckCommunicationError ld a, [wOtherPlayerLinkMode] cp $6 jr z, .vblank @@ -2377,40 +2379,40 @@ Function29dba: ; 29dba ret ; 29e0c -Function29e0c: ; 29e0c +Link_CheckCommunicationError: ; 29e0c xor a ld [hFFCA], a - ld a, [wcf5b] + ld a, [wLinkTimeoutFrames] ld h, a - ld a, [wcf5c] + ld a, [wLinkTimeoutFrames + 1] ld l, a push hl - call Function29e3b + call .CheckConnected pop hl - jr nz, .asm_29e2f - call Function29e47 - call Function29e53 - call Function29e3b - jr nz, .asm_29e2f - call Function29e47 + jr nz, .load_true + call .AcknowledgeSerial + call .ConvertDW + call .CheckConnected + jr nz, .load_true + call .AcknowledgeSerial xor a - jr .asm_29e31 + jr .load_scriptvar -.asm_29e2f +.load_true ld a, $1 -.asm_29e31 +.load_scriptvar ld [ScriptVar], a - ld hl, wcf5b + ld hl, wLinkTimeoutFrames xor a ld [hli], a ld [hl], a ret ; 29e3b -Function29e3b: ; 29e3b - call Function87d - ld hl, wcf5b +.CheckConnected: ; 29e3b + call WaitLinkTransfer + ld hl, wLinkTimeoutFrames ld a, [hli] inc a ret nz @@ -2419,17 +2421,19 @@ Function29e3b: ; 29e3b ret ; 29e47 -Function29e47: ; 29e47 - ld b, $a -.asm_29e49 +.AcknowledgeSerial: ; 29e47 + ld b, 10 +.loop call DelayFrame call LinkDataReceived dec b - jr nz, .asm_29e49 + jr nz, .loop ret ; 29e53 -Function29e53: ; 29e53 +.ConvertDW: ; 29e53 + ; [wLinkTimeoutFrames] = ((hl - $100) / 4) + $100 + ; = (hl / 4) + $c0 dec h srl h rr l @@ -2437,9 +2441,9 @@ Function29e53: ; 29e53 rr l inc h ld a, h - ld [wcf5b], a + ld [wLinkTimeoutFrames], a ld a, l - ld [wcf5c], a + ld [wLinkTimeoutFrames + 1], a ret ; 29e66 @@ -2448,12 +2452,11 @@ Special_TryQuickSave: ; 29e66 push af callba Link_SaveGame ld a, $1 - jr nc, .asm_29e75 + jr nc, .return_result xor a - -.asm_29e75 +.return_result ld [ScriptVar], a - ld c, $1e + ld c, 30 call DelayFrames pop af ld [wd265], a @@ -2462,7 +2465,7 @@ Special_TryQuickSave: ; 29e66 Special_CheckBothSelectedSameRoom: ; 29e82 ld a, [wd265] - call Function29f17 + call Link_EnsureSync push af call LinkDataReceived call DelayFrame @@ -2523,19 +2526,19 @@ Special_Colosseum: ; 29ed9 Special_CloseLink: ; 29eee xor a ld [wLinkMode], a - ld c, $3 + ld c, 3 call DelayFrames - jp Function29f04 + jp Link_ResetSerialRegistersAfterLinkClosure ; 29efa Special_FailedLinkToPast: ; 29efa ld c, 40 call DelayFrames ld a, $e - jp Function29f17 + jp Link_EnsureSync ; 29f04 -Function29f04: ; 29f04 +Link_ResetSerialRegistersAfterLinkClosure: ; 29f04 ld c, 3 call DelayFrames ld a, -1 @@ -2548,7 +2551,7 @@ Function29f04: ; 29f04 ret ; 29f17 -Function29f17: ; 29f17 +Link_EnsureSync: ; 29f17 add $d0 ld [wPlayerLinkAction], a ld [wcf57], a |