mirror of
https://github.com/pret/pokecrystal.git
synced 2024-11-23 13:29:42 +00:00
Identify remaining Mystery Gift labels and constants
Source: https://projectpokemon.org/home/forums/topic/43930-mystery-gift-reverse-engineering-of-ir-protocol/
This commit is contained in:
parent
2738858985
commit
446f1846b1
@ -71,10 +71,10 @@ rTIMA EQU $ff05 ; Timer counter (R/W)
|
||||
rTMA EQU $ff06 ; Timer Modulo (R/W)
|
||||
rTAC EQU $ff07 ; Timer Control (R/W)
|
||||
rTAC_ON EQU 2
|
||||
rTAC_4096_HZ EQU 0
|
||||
rTAC_262144_HZ EQU 1
|
||||
rTAC_65536_HZ EQU 2
|
||||
rTAC_16384_HZ EQU 3
|
||||
rTAC_4096_HZ EQU %00
|
||||
rTAC_262144_HZ EQU %01
|
||||
rTAC_65536_HZ EQU %10
|
||||
rTAC_16384_HZ EQU %11
|
||||
rIF EQU $ff0f ; Interrupt Flag (R/W)
|
||||
rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W)
|
||||
rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W)
|
||||
@ -147,6 +147,9 @@ rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High
|
||||
rHDMA4 EQU $ff54 ; CGB Mode Only - New DMA Destination, Low
|
||||
rHDMA5 EQU $ff55 ; CGB Mode Only - New DMA Length/Mode/Start
|
||||
rRP EQU $ff56 ; CGB Mode Only - Infrared Communications Port
|
||||
rRP_LED_ON EQU 0
|
||||
rRP_RECEIVING EQU 1
|
||||
rRP_ENABLE_READ_MASK EQU %11000000
|
||||
rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index
|
||||
rBGPI_AUTO_INCREMENT EQU 7 ; increment rBGPI after write to rBGPD
|
||||
rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data
|
||||
|
@ -14,6 +14,8 @@ FEMALE EQU 1
|
||||
|
||||
; G/S version ID: 0 = Gold, 1 = Silver (used by checkver)
|
||||
GS_VERSION EQU 0
|
||||
; Pokémon Pikachu 2, a step counter / virtual pet device (used by Mystery Gift)
|
||||
POKEMON_PIKACHU_2_VERSION EQU 3
|
||||
|
||||
; save file corruption check values
|
||||
SAVE_CHECK_VALUE_1 EQU 99
|
||||
|
@ -30,3 +30,5 @@ SERIAL_NO_DATA_BYTE EQU $fe
|
||||
SERIAL_PATCH_LIST_PART_TERMINATOR EQU $ff
|
||||
|
||||
SERIAL_PREAMBLE_LENGTH EQU 6
|
||||
|
||||
MAX_MYSTERY_GIFT_PARTNERS EQU 5
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
PrepMysteryGiftDataToSend:
|
||||
StageDataForMysteryGift:
|
||||
ld de, wMysteryGiftStaging
|
||||
ld a, $1 + GS_VERSION
|
||||
ld a, GS_VERSION + 1
|
||||
ld [de], a
|
||||
inc de ; wMysteryGiftStaging+1
|
||||
ld a, BANK(sGameData)
|
||||
@ -46,10 +46,10 @@ PrepMysteryGiftDataToSend:
|
||||
ld a, [sBackupMysteryGiftItem]
|
||||
ld [de], a
|
||||
inc de
|
||||
ld a, [sBackupMysteryGiftItem + 1]
|
||||
ld a, [sNumDailyMysteryGiftPartnerIDs]
|
||||
ld [de], a
|
||||
ld a, $14
|
||||
ld [wca00], a
|
||||
ld a, wMysteryGiftPlayerDataEnd - wMysteryGiftPlayerData
|
||||
ld [wUnusedMysteryGiftStagedDataLength], a
|
||||
call CloseSRAM
|
||||
ld hl, wMysteryGiftStaging
|
||||
ld de, wMysteryGiftPlayerData
|
||||
@ -121,7 +121,7 @@ PrepMysteryGiftDataToSend:
|
||||
pop de
|
||||
ret
|
||||
|
||||
MysteryGiftGetItemHeldEffect:
|
||||
MysteryGiftGetItem:
|
||||
ld a, c
|
||||
cp MysteryGiftItems.End - MysteryGiftItems
|
||||
jr nc, MysteryGiftFallbackItem
|
||||
|
@ -173,12 +173,13 @@ _ResetWRAM:
|
||||
ld [wRoamMon2MapNumber], a
|
||||
ld [wRoamMon3MapNumber], a
|
||||
|
||||
ld a, BANK(sMysteryGiftItem)
|
||||
ld a, BANK(sMysteryGiftItem) ; aka BANK(sMysteryGiftUnlocked)
|
||||
call OpenSRAM
|
||||
ld hl, sMysteryGiftItem
|
||||
xor a
|
||||
ld [hli], a
|
||||
dec a
|
||||
assert sMysteryGiftItem + 1 == sMysteryGiftUnlocked
|
||||
dec a ; -1
|
||||
ld [hl], a
|
||||
call CloseSRAM
|
||||
|
||||
@ -370,7 +371,7 @@ Continue:
|
||||
ld c, 20
|
||||
call DelayFrames
|
||||
farcall JumpRoamMons
|
||||
farcall MysteryGift_CopyReceivedDecosToPC
|
||||
farcall CopyMysteryGiftReceivedDecorationsToPC
|
||||
farcall ClockContinue
|
||||
ld a, [wSpawnAfterChampion]
|
||||
cp SPAWN_LANCE
|
||||
|
@ -206,7 +206,7 @@ MainMenu_GetWhichMenu:
|
||||
ld a, BANK(sNumDailyMysteryGiftPartnerIDs)
|
||||
call OpenSRAM
|
||||
ld a, [sNumDailyMysteryGiftPartnerIDs]
|
||||
cp -1
|
||||
cp -1 ; locked?
|
||||
call CloseSRAM
|
||||
jr nz, .mystery_gift
|
||||
; This check makes no difference.
|
||||
|
@ -272,7 +272,7 @@ DoMysteryGiftIfDayHasPassed:
|
||||
ld hl, wBuffer1
|
||||
call InitOneDayCountdown
|
||||
call CloseSRAM
|
||||
farcall Function1050c8
|
||||
farcall ResetDailyMysteryGiftLimitIfUnlocked
|
||||
|
||||
.not_timed_out
|
||||
ld a, BANK(sMysteryGiftTimer)
|
||||
|
10
hram.asm
10
hram.asm
@ -88,8 +88,14 @@ NEXTU
|
||||
hPrintNumBuffer:: ds 10
|
||||
|
||||
NEXTU
|
||||
; miscellaneous
|
||||
ds 9
|
||||
; Mystery Gift
|
||||
hMGExchangedByte:: db
|
||||
hMGExchangedWord:: dw
|
||||
hMGNumBits:: db
|
||||
hMGChecksum:: dw
|
||||
ds 1
|
||||
hMGUnusedMsgLength:: db
|
||||
hMGRole:: db
|
||||
hMGStatusFlags:: db
|
||||
ENDU
|
||||
|
||||
|
7
sram.asm
7
sram.asm
@ -47,19 +47,20 @@ sMailbox8Backup:: mailmsg sMailbox8Backup
|
||||
sMailbox9Backup:: mailmsg sMailbox9Backup
|
||||
sMailbox10Backup:: mailmsg sMailbox10Backup
|
||||
|
||||
sMysteryGiftData::
|
||||
sMysteryGiftItem:: db
|
||||
sMysteryGiftUnlocked:: db
|
||||
sBackupMysteryGiftItem:: db
|
||||
sNumDailyMysteryGiftPartnerIDs:: db
|
||||
sDailyMysteryGiftPartnerIDs:: ds 5 * 2 ; maximum 5 per day, 2 bytes per ID
|
||||
sDailyMysteryGiftPartnerIDs:: ds MAX_MYSTERY_GIFT_PARTNERS * 2
|
||||
sMysteryGiftDecorationsReceived:: flag_array NUM_NON_TROPHY_DECOS
|
||||
ds 4
|
||||
sMysteryGiftTimer:: dw
|
||||
ds 1
|
||||
sMysteryGiftTrainerHouseFlag:: db
|
||||
sMysteryGiftPartnerName:: ds NAME_LENGTH
|
||||
ds 1
|
||||
sMysteryGiftTrainer:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2
|
||||
sMysteryGiftUnusedFlag:: db
|
||||
sMysteryGiftTrainer:: ds wMysteryGiftTrainerEnd - wMysteryGiftTrainer
|
||||
sBackupMysteryGiftItemEnd::
|
||||
|
||||
ds $30
|
||||
|
44
wram.asm
44
wram.asm
@ -1000,29 +1000,11 @@ ENDU
|
||||
|
||||
NEXTU
|
||||
; mystery gift data
|
||||
UNION
|
||||
wMysteryGiftPartyTemp:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH
|
||||
|
||||
NEXTU
|
||||
wMysteryGiftStaging:: ds 80
|
||||
|
||||
NEXTU
|
||||
ds 7
|
||||
wc807:: ds 1
|
||||
ds 10
|
||||
wMobileSDK_PacketChecksum:: dw
|
||||
ds 4
|
||||
wMobileSDK_AdapterType:: db
|
||||
ds 5
|
||||
wMobileSDK_SendCommandID:: db
|
||||
ds 2
|
||||
wc821:: ds 1
|
||||
wc822:: ds 46
|
||||
ENDU
|
||||
|
||||
UNION
|
||||
wMysteryGiftTrainerData:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2
|
||||
wMysteryGiftTrainerDataEnd::
|
||||
wMysteryGiftTrainer:: ds 1 + (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 1
|
||||
wMysteryGiftTrainerEnd::
|
||||
|
||||
NEXTU
|
||||
wMysteryGiftCardHolderName:: ds PLAYER_NAME_LENGTH
|
||||
@ -1031,7 +1013,7 @@ ENDU
|
||||
ds 138
|
||||
|
||||
wMysteryGiftPartnerData::
|
||||
wc900:: db
|
||||
wMysteryGiftGameVersion:: db
|
||||
wMysteryGiftPartnerID:: dw
|
||||
wMysteryGiftPartnerName:: ds NAME_LENGTH
|
||||
wMysteryGiftPartnerDexCaught:: db
|
||||
@ -1069,9 +1051,9 @@ wCreditsBlankFrame2bppEnd::
|
||||
|
||||
NEXTU
|
||||
; mystery gift data
|
||||
wca00:: db
|
||||
wca01:: db
|
||||
wca02:: db
|
||||
wUnusedMysteryGiftStagedDataLength:: db
|
||||
wMysteryGiftMessageCount:: db
|
||||
wMysteryGiftStagedDataLength:: db
|
||||
|
||||
NEXTU
|
||||
; link data
|
||||
@ -1108,6 +1090,20 @@ wccb8:: ds 1
|
||||
wccb9:: ds 1
|
||||
wccba:: ds 102
|
||||
|
||||
NEXTU
|
||||
; mobile
|
||||
ds 7
|
||||
wc807:: ds 1
|
||||
ds 10
|
||||
wMobileSDK_PacketChecksum:: dw
|
||||
ds 4
|
||||
wMobileSDK_AdapterType:: db
|
||||
ds 5
|
||||
wMobileSDK_SendCommandID:: db
|
||||
ds 2
|
||||
wc821:: ds 1
|
||||
wc822:: ds 46
|
||||
|
||||
if DEF(_DEBUG)
|
||||
NEXTU
|
||||
; debug room
|
||||
|
Loading…
Reference in New Issue
Block a user