shithub: pokecrystal

Download patch

ref: a51b1a2f1399798193e3d788d9f3fb8bb9f3ac5c
parent: bcc0d633e948227e68da8a264d1533771a54b5c4
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Thu Oct 29 11:15:14 EDT 2020

Port more pokegold link engine symbols, and name an unused WRAM byte

--- a/engine/link/link.asm
+++ b/engine/link/link.asm
@@ -101,9 +101,9 @@
 	ld a, [hl]
 	pop hl
 	and a
-	jp z, Function28b22
+	jp z, ExitLinkCommunications
 	cp $7
-	jp nc, Function28b22
+	jp nc, ExitLinkCommunications
 	ld de, wLinkData
 	ld bc, $1a2
 	call Link_CopyOTData
@@ -163,7 +163,7 @@
 .done_party
 	ld [de], a
 	ld hl, wTimeCapsulePlayerData
-	call Function2868a
+	call Link_ConvertPartyStruct1to2
 	ld a, LOW(wOTPartyMonOT)
 	ld [wUnusedNamesPointer], a
 	ld a, HIGH(wOTPartyMonOT)
@@ -467,7 +467,7 @@
 	pop af
 	ld [wOptions], a
 	farcall LoadPokemonData
-	jp Function28b22
+	jp ExitLinkCommunications
 
 .ready_to_trade
 	ld de, MUSIC_ROUTE_30
@@ -833,7 +833,7 @@
 ; Fill 5 bytes at wc9f4 with $20
 	ld de, wc9f4
 	ld a, $20
-	call Function28682
+	call Link_CopyMailPreamble
 
 ; Copy all the mail messages to wc9f9
 	ld a, BANK(sPartyMail)
@@ -934,7 +934,8 @@
 	ld [de], a
 	ret
 
-Function28682:
+Link_CopyMailPreamble:
+; fill 5 bytes with the value of a, starting at de
 	ld c, 5
 .loop
 	ld [de], a
@@ -943,7 +944,7 @@
 	jr nz, .loop
 	ret
 
-Function2868a:
+Link_ConvertPartyStruct1to2:
 	push hl
 	ld d, h
 	ld e, l
@@ -1247,7 +1248,7 @@
 .not_d_up
 	bit D_DOWN_F, a
 	jp z, LinkTradePartiesMenuMasterLoop
-	jp Function28ac9
+	jp LinkTradeCheckCancel
 
 LinkTrade_PlayerPartyMenu:
 	farcall InitMG_Mobile_LinkTradePalMap
@@ -1283,7 +1284,7 @@
 .check_joypad
 	bit A_BUTTON_F, a
 	jr z, .not_a_button
-	jp Function28926
+	jp LinkTrade_TradeStatsMenu
 
 .not_a_button
 	bit D_DOWN_F, a
@@ -1329,7 +1330,7 @@
 	jp z, LinkTradePartymonMenuLoop ; PARTYMON
 	jp LinkTradeOTPartymonMenuLoop  ; OTPARTYMON
 
-Function28926:
+LinkTrade_TradeStatsMenu:
 	call LoadTilemapToTempTilemap
 	ld a, [wMenuCursorY]
 	push af
@@ -1427,12 +1428,12 @@
 	dec a
 	ld [wCurTradePartyMon], a
 	ld [wPlayerLinkAction], a
-	farcall Function16d6ce
+	farcall PrintWaitingTextAndSyncAndExchangeNybble
 	ld a, [wOtherPlayerLinkMode]
 	cp $f
 	jp z, InitTradeMenuDisplay
 	ld [wCurOTTradePartyMon], a
-	call Function28b68
+	call LinkTradePlaceArrow
 	ld c, 100
 	call DelayFrames
 	farcall ValidateOTTrademon
@@ -1483,7 +1484,7 @@
 	call PlaceString
 	ld a, $1
 	ld [wPlayerLinkAction], a
-	farcall Function16d6ce
+	farcall PrintWaitingTextAndSyncAndExchangeNybble
 	ld c, 100
 	call DelayFrames
 	jp InitTradeMenuDisplay
@@ -1499,7 +1500,7 @@
 	text_far _LinkAbnormalMonText
 	text_end
 
-Function28ac9:
+LinkTradeCheckCancel:
 	ld a, [wMenuCursorY]
 	cp 1
 	jp nz, LinkTradePartiesMenuMasterLoop
@@ -1542,11 +1543,11 @@
 	ldcoord_a 9, 17
 	ld a, $f
 	ld [wPlayerLinkAction], a
-	farcall Function16d6ce
+	farcall PrintWaitingTextAndSyncAndExchangeNybble
 	ld a, [wOtherPlayerLinkMode]
 	cp $f
 	jr nz, .loop1
-Function28b22:
+ExitLinkCommunications:
 	call RotateThreePalettesRight
 	call ClearScreen
 	ld b, SCGB_DIPLOMA
@@ -1553,7 +1554,7 @@
 	call GetSGBLayout
 	call WaitBGMap2
 	xor a
-	ld [wcfbb], a
+	ld [wUnusedLinkCommunicationByte], a
 	xor a
 	ldh [rSB], a
 	ldh [hSerialSend], a
@@ -1563,15 +1564,18 @@
 	ldh [rSC], a
 	ret
 
-Function28b42: ; unreferenced
+GSPlaceTradeScreenFooter: ; unreferenced
+; Fill the screen footer with pattern tile
 	hlcoord 0, 16
-	ld a, "┘"
+	ld a, $7e
 	ld bc, 2 * SCREEN_WIDTH
 	call ByteFill
+; Clear out area for cancel string
 	hlcoord 1, 16
 	ld a, " "
 	ld bc, SCREEN_WIDTH - 2
 	call ByteFill
+; Place the string
 	hlcoord 2, 16
 	ld de, .CancelString
 	jp PlaceString
@@ -1579,7 +1583,8 @@
 .CancelString:
 	db "CANCEL@"
 
-Function28b68:
+LinkTradePlaceArrow:
+; Indicates which pokemon the other player has selected to trade
 	ld a, [wOtherPlayerLinkMode]
 	hlcoord 6, 9
 	ld bc, SCREEN_WIDTH
@@ -1640,7 +1645,7 @@
 	ld b, 3
 	ld c, 7
 	call LinkTextboxAtHL
-	ld de, String28eab
+	ld de, String_TradeCancel
 	hlcoord 12, 8
 	call PlaceString
 	ld a, 8
@@ -1668,12 +1673,12 @@
 	call WaitBGMap2
 	pop af
 	bit 1, a
-	jr nz, .asm_28c33
+	jr nz, .canceled
 	ld a, [wMenuCursorY]
 	dec a
-	jr z, .asm_28c54
+	jr z, .try_trade
 
-.asm_28c33
+.canceled
 	ld a, $1
 	ld [wPlayerLinkAction], a
 	hlcoord 0, 12
@@ -1683,16 +1688,17 @@
 	hlcoord 1, 14
 	ld de, String_TooBadTheTradeWasCanceled
 	call PlaceString
-	farcall Function16d6ce
-	jp Function28ea3
+	farcall PrintWaitingTextAndSyncAndExchangeNybble
+	jp InitTradeMenuDisplay_Delay
 
-.asm_28c54
+.try_trade
 	ld a, $2
 	ld [wPlayerLinkAction], a
-	farcall Function16d6ce
+	farcall PrintWaitingTextAndSyncAndExchangeNybble
 	ld a, [wOtherPlayerLinkMode]
 	dec a
-	jr nz, .asm_28c7b
+	jr nz, .do_trade
+; If we're here, the other player canceled the trade
 	hlcoord 0, 12
 	ld b, 4
 	ld c, 18
@@ -1700,9 +1706,9 @@
 	hlcoord 1, 14
 	ld de, String_TooBadTheTradeWasCanceled
 	call PlaceString
-	jp Function28ea3
+	jp InitTradeMenuDisplay_Delay
 
-.asm_28c7b
+.do_trade
 	ld hl, sPartyMail
 	ld a, [wCurTradePartyMon]
 	ld bc, MAIL_STRUCT_LENGTH
@@ -1715,18 +1721,18 @@
 	add hl, bc
 	ld a, [wCurTradePartyMon]
 	ld c, a
-.asm_28c96
+.copy_mail
 	inc c
 	ld a, c
 	cp PARTY_LENGTH
-	jr z, .asm_28ca6
+	jr z, .copy_player_data
 	push bc
 	ld bc, MAIL_STRUCT_LENGTH
 	call CopyBytes
 	pop bc
-	jr .asm_28c96
+	jr .copy_mail
 
-.asm_28ca6
+.copy_player_data
 	ld hl, sPartyMail
 	ld a, [wPartyCount]
 	dec a
@@ -1741,10 +1747,14 @@
 	ld bc, MAIL_STRUCT_LENGTH
 	call CopyBytes
 	call CloseSRAM
+
+; Buffer player data
+; nickname
 	ld hl, wPlayerName
 	ld de, wPlayerTrademonSenderName
 	ld bc, NAME_LENGTH
 	call CopyBytes
+; species
 	ld a, [wCurTradePartyMon]
 	ld hl, wPartySpecies
 	ld b, 0
@@ -1753,6 +1763,7 @@
 	ld a, [hl]
 	ld [wPlayerTrademonSpecies], a
 	push af
+; OT name
 	ld a, [wCurTradePartyMon]
 	ld hl, wPartyMonOT
 	call SkipNames
@@ -1759,6 +1770,7 @@
 	ld de, wPlayerTrademonOTName
 	ld bc, NAME_LENGTH
 	call CopyBytes
+; ID
 	ld hl, wPartyMon1ID
 	ld a, [wCurTradePartyMon]
 	call GetPartyLocation
@@ -1766,6 +1778,7 @@
 	ld [wPlayerTrademonID], a
 	ld a, [hl]
 	ld [wPlayerTrademonID + 1], a
+; DVs
 	ld hl, wPartyMon1DVs
 	ld a, [wCurTradePartyMon]
 	call GetPartyLocation
@@ -1773,6 +1786,7 @@
 	ld [wPlayerTrademonDVs], a
 	ld a, [hl]
 	ld [wPlayerTrademonDVs + 1], a
+; caught data
 	ld a, [wCurTradePartyMon]
 	ld hl, wPartyMon1Species
 	call GetPartyLocation
@@ -1781,10 +1795,14 @@
 	farcall GetCaughtGender
 	ld a, c
 	ld [wPlayerTrademonCaughtData], a
+
+; Buffer other player data
+; nickname
 	ld hl, wOTPlayerName
 	ld de, wOTTrademonSenderName
 	ld bc, NAME_LENGTH
 	call CopyBytes
+; species
 	ld a, [wCurOTTradePartyMon]
 	ld hl, wOTPartySpecies
 	ld b, 0
@@ -1792,6 +1810,7 @@
 	add hl, bc
 	ld a, [hl]
 	ld [wOTTrademonSpecies], a
+; OT name
 	ld a, [wCurOTTradePartyMon]
 	ld hl, wOTPartyMonOT
 	call SkipNames
@@ -1798,6 +1817,7 @@
 	ld de, wOTTrademonOTName
 	ld bc, NAME_LENGTH
 	call CopyBytes
+; ID
 	ld hl, wOTPartyMon1ID
 	ld a, [wCurOTTradePartyMon]
 	call GetPartyLocation
@@ -1805,6 +1825,7 @@
 	ld [wOTTrademonID], a
 	ld a, [hl]
 	ld [wOTTrademonID + 1], a
+; DVs
 	ld hl, wOTPartyMon1DVs
 	ld a, [wCurOTTradePartyMon]
 	call GetPartyLocation
@@ -1812,6 +1833,7 @@
 	ld [wOTTrademonDVs], a
 	ld a, [hl]
 	ld [wOTTrademonDVs + 1], a
+; caught data
 	ld a, [wCurOTTradePartyMon]
 	ld hl, wOTPartyMon1Species
 	call GetPartyLocation
@@ -1820,6 +1842,7 @@
 	farcall GetCaughtGender
 	ld a, c
 	ld [wOTTrademonCaughtData], a
+
 	ld a, [wCurTradePartyMon]
 	ld [wCurPartyMon], a
 	ld hl, wPartySpecies
@@ -1828,6 +1851,7 @@
 	add hl, bc
 	ld a, [hl]
 	ld [wCurTradePartyMon], a
+
 	xor a ; REMOVE_PARTY
 	ld [wPokemonWithdrawDepositParameter], a
 	callfar RemoveMonFromPartyOrBox
@@ -1844,6 +1868,7 @@
 	add hl, bc
 	ld a, [hl]
 	ld [wCurOTTradePartyMon], a
+
 	ld c, 100
 	call DelayFrames
 	call ClearTilemap
@@ -1935,7 +1960,7 @@
 	ld c, 18
 	call LinkTextboxAtHL
 	hlcoord 1, 14
-	ld de, String28ebd
+	ld de, String_TradeCompleted
 	call PlaceString
 	farcall Link_WaitBGMap
 	ld c, 50
@@ -1945,12 +1970,12 @@
 	jp z, Gen2ToGen1LinkComms
 	jp Gen2ToGen2LinkComms
 
-Function28ea3:
+InitTradeMenuDisplay_Delay:
 	ld c, 100
 	call DelayFrames
 	jp InitTradeMenuDisplay
 
-String28eab:
+String_TradeCancel:
 	db   "TRADE"
 	next "CANCEL@"
 
@@ -1958,7 +1983,7 @@
 	text_far _LinkAskTradeForText
 	text_end
 
-String28ebd:
+String_TradeCompleted:
 	db   "Trade completed!@"
 
 String_TooBadTheTradeWasCanceled:
--- a/engine/link/link_trade.asm
+++ b/engine/link/link_trade.asm
@@ -153,15 +153,15 @@
 	call _LinkTextbox
 	ret
 
-Function16d6ce:
+PrintWaitingTextAndSyncAndExchangeNybble:
 	call LoadStandardMenuHeader
-	call Function16d6e1
+	call .PrintWaitingText
 	farcall WaitLinkTransfer
 	call Call_ExitMenu
 	call WaitBGMap2
 	ret
 
-Function16d6e1:
+.PrintWaitingText:
 	hlcoord 4, 10
 	ld b, 1
 	ld c, 10
--- a/wram.asm
+++ b/wram.asm
@@ -1580,7 +1580,7 @@
 wPredefAddress:: dw
 wFarCallBCBuffer:: dw
 
-wcfbb:: db
+wUnusedLinkCommunicationByte:: db
 
 wGameTimerPaused::
 ; bit 0: game timer paused