diff options
author | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-11-01 13:42:08 -0500 |
---|---|---|
committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-11-01 13:42:08 -0500 |
commit | 7be1223fc140d824d32100c00db356a195711cb2 (patch) | |
tree | 511576c1eee904730551eff27872a15f42b0bb1c | |
parent | a75527df250d7ea5fa35630eab711bf4eeef9a02 (diff) |
Identify wLinkBattleRNPreamble
-rw-r--r-- | constants/serial_constants.asm | 2 | ||||
-rw-r--r-- | engine/link/link.asm | 47 | ||||
-rw-r--r-- | wram.asm | 7 |
3 files changed, 30 insertions, 26 deletions
diff --git a/constants/serial_constants.asm b/constants/serial_constants.asm index ddb6f4fd..d3bc5e60 100644 --- a/constants/serial_constants.asm +++ b/constants/serial_constants.asm @@ -29,6 +29,8 @@ SERIAL_NO_DATA_BYTE EQU $fe SERIAL_PATCH_LIST_PART_TERMINATOR EQU $ff SERIAL_PREAMBLE_LENGTH EQU 6 +SERIAL_RN_PREAMBLE_LENGTH EQU 7 +SERIAL_RNS_LENGTH EQU 10 ; timeout duration after exchanging a byte SERIAL_LINK_BYTE_TIMEOUT EQU $5000 diff --git a/engine/link/link.asm b/engine/link/link.asm index d8526687..37338ea9 100644 --- a/engine/link/link.asm +++ b/engine/link/link.asm @@ -71,9 +71,9 @@ Gen2ToGen1LinkComms: ldh [rIF], a ld a, 1 << SERIAL ldh [rIE], a - ld hl, wd0dc + ld hl, wLinkBattleRNPreamble ld de, wEnemyMonSpecies - ld bc, $11 + ld bc, SERIAL_RN_PREAMBLE_LENGTH + SERIAL_RNS_LENGTH call Serial_ExchangeBytes ld a, SERIAL_NO_DATA_BYTE ld [de], a @@ -85,7 +85,7 @@ Gen2ToGen1LinkComms: ld [de], a ld hl, wc508 ld de, wTrademons - ld bc, wTrademons - wc508 + ld bc, 200 call Serial_ExchangeBytes xor a ldh [rIF], a @@ -215,9 +215,9 @@ Gen2ToGen2LinkComms: ldh [rIF], a ld a, 1 << SERIAL ldh [rIE], a - ld hl, wd0dc + ld hl, wLinkBattleRNPreamble ld de, wEnemyMonSpecies - ld bc, $11 + ld bc, SERIAL_RN_PREAMBLE_LENGTH + SERIAL_RNS_LENGTH call Serial_ExchangeBytes ld a, SERIAL_NO_DATA_BYTE ld [de], a @@ -229,7 +229,7 @@ Gen2ToGen2LinkComms: ld [de], a ld hl, wc508 ld de, wTrademons - ld bc, wTrademons - wc508 + ld bc, 200 call Serial_ExchangeBytes ld a, [wLinkMode] cp LINK_TRADECENTER @@ -502,36 +502,41 @@ ClearLinkData: ret FixDataForLinkTransfer: - ld hl, wd0dc + ld hl, wLinkBattleRNPreamble ld a, SERIAL_PREAMBLE_BYTE - ld b, wLinkBattleRNs - wd0dc -.loop1 + ld b, SERIAL_RN_PREAMBLE_LENGTH +.preamble_loop ld [hli], a dec b - jr nz, .loop1 - ld b, wTempEnemyMonSpecies - wLinkBattleRNs -.loop2 + jr nz, .preamble_loop + + assert wLinkBattleRNPreamble + SERIAL_RN_PREAMBLE_LENGTH == wLinkBattleRNs + ld b, SERIAL_RNS_LENGTH +.rn_loop call Random cp SERIAL_PREAMBLE_BYTE - jr nc, .loop2 + jr nc, .rn_loop ld [hli], a dec b - jr nz, .loop2 + jr nz, .rn_loop + ld hl, wc508 ld a, SERIAL_PREAMBLE_BYTE ld [hli], a ld [hli], a ld [hli], a - ld b, $c8 + + ld b, 200 xor a -.loop3 +.loop1 ld [hli], a dec b - jr nz, .loop3 + jr nz, .loop1 + ld hl, wTimeCapsulePlayerData - 1 + PARTY_LENGTH ld de, wc512 lb bc, 0, 0 -.loop4 +.loop2 inc c ld a, c cp SERIAL_PREAMBLE_BYTE @@ -554,19 +559,19 @@ FixDataForLinkTransfer: inc hl ld a, [hl] cp SERIAL_NO_DATA_BYTE - jr nz, .loop4 + jr nz, .loop2 ld a, c ld [de], a inc de ld [hl], SERIAL_PATCH_LIST_PART_TERMINATOR - jr .loop4 + jr .loop2 .next1 ld a, SERIAL_PATCH_LIST_PART_TERMINATOR ld [de], a inc de lb bc, 1, 0 - jr .loop4 + jr .loop2 .done ld a, SERIAL_PATCH_LIST_PART_TERMINATOR @@ -1934,7 +1934,8 @@ wEvolutionCanceled:: db NEXTU ; link ds 9 -wd0dc:: ds 1 +wLinkBattleRNPreamble:: ds SERIAL_RN_PREAMBLE_LENGTH +wLinkBattleRNs:: ds SERIAL_RNS_LENGTH NEXTU ; miscellaneous @@ -1945,10 +1946,6 @@ wOtherDecoration:: db wCurEnemyItem:: db ENDU - ds 3 - -wLinkBattleRNs:: ds 10 - wTempEnemyMonSpecies:: db wTempBattleMonSpecies:: db |