pokecrystal/sram.asm

246 lines
6.2 KiB
NASM

SRAM_Begin EQU $a000
SRAM_End EQU $c000
GLOBAL SRAM_Begin, SRAM_End
SECTION "Scratch", SRAM, BANK [0]
sScratch::
SECTION "SRAM Bank 0", SRAM [$a600], BANK [0]
; a600
sPartyMail::
sPartyMon1Mail:: mailmsg sPartyMon1Mail
sPartyMon2Mail:: mailmsg sPartyMon2Mail
sPartyMon3Mail:: mailmsg sPartyMon3Mail
sPartyMon4Mail:: mailmsg sPartyMon4Mail
sPartyMon5Mail:: mailmsg sPartyMon5Mail
sPartyMon6Mail:: mailmsg sPartyMon6Mail
; a71a
sPartyMailBackup::
sPartyMon1MailBackup:: mailmsg sPartyMon1MailBackup
sPartyMon2MailBackup:: mailmsg sPartyMon2MailBackup
sPartyMon3MailBackup:: mailmsg sPartyMon3MailBackup
sPartyMon4MailBackup:: mailmsg sPartyMon4MailBackup
sPartyMon5MailBackup:: mailmsg sPartyMon5MailBackup
sPartyMon6MailBackup:: mailmsg sPartyMon6MailBackup
; a834
sMailboxCount:: ds 1
sMailbox::
sMailbox1:: mailmsg sMailbox1
sMailbox2:: mailmsg sMailbox2
sMailbox3:: mailmsg sMailbox3
sMailbox4:: mailmsg sMailbox4
sMailbox5:: mailmsg sMailbox5
sMailbox6:: mailmsg sMailbox6
sMailbox7:: mailmsg sMailbox7
sMailbox8:: mailmsg sMailbox8
sMailbox9:: mailmsg sMailbox9
sMailbox10:: mailmsg sMailbox10
; aa0b
sMailboxCountBackup:: ds 1
sMailboxBackup::
sMailbox1Backup:: mailmsg sMailbox1Backup
sMailbox2Backup:: mailmsg sMailbox2Backup
sMailbox3Backup:: mailmsg sMailbox3Backup
sMailbox4Backup:: mailmsg sMailbox4Backup
sMailbox5Backup:: mailmsg sMailbox5Backup
sMailbox6Backup:: mailmsg sMailbox6Backup
sMailbox7Backup:: mailmsg sMailbox7Backup
sMailbox8Backup:: mailmsg sMailbox8Backup
sMailbox9Backup:: mailmsg sMailbox9Backup
sMailbox10Backup:: mailmsg sMailbox10Backup
; abe2
sMysteryGiftItem:: ds 1
sMysteryGiftUnlocked:: ds 1
sBackupMysteryGiftItem:: ds 1
sNumDailyMysteryGiftPartnerIDs:: ds 1
sDailyMysteryGiftPartnerIDs:: ds 5 * 2 ; maximum 5 per day, 2 bytes per ID
sMysteryGiftDecorationsReceived:: flag_array NUM_NON_TROPHY_DECOS
ds 4
sMysteryGiftTimer:: ds 1
sMysteryGiftTimerStartDay:: ds 1
ds 1
sMysteryGiftTrainerHouseFlag:: ds 1
sMysteryGiftPartnerName:: ds NAME_LENGTH
s0_ac09:: ds 1
sMysteryGiftTrainer:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2 ; ac0a
sBackupMysteryGiftItemEnd::
ds $30
sRTCStatusFlags:: ds 8
sLuckyNumberDay:: ds 1
sLuckyIDNumber:: ds 2
SECTION "Backup Save", SRAM [$b200], BANK [0]
sBackupOptions:: ds OptionsEnd - Options
s0_b208:: ds 1 ; loaded with 99, used to check save corruption
sBackupGameData:: ; b209
sBackupPlayerData:: ds wPlayerDataEnd - wPlayerData
sBackupMapData:: ds wMapDataEnd - wMapData
sBackupPokemonData:: ds wPokemonDataEnd - wPokemonData
sBackupGameDataEnd::
; bd83
ds $18a
; bf0d
sBackupChecksum:: ds 2
s0_bf0f:: ds 1 ; loaded with 0x7f, used to check save corruption
sStackTop:: ds 2
SECTION "Save", SRAM, BANK [1]
sOptions:: ds OptionsEnd - Options
s1_a008:: ds 1 ; loaded with 99, used to check save corruption
sGameData:: ; a009
sPlayerData:: ds wPlayerDataEnd - wPlayerData
sMapData:: ds wMapDataEnd - wMapData
sPokemonData:: ds wPokemonDataEnd - wPokemonData
sGameDataEnd::
; ab83
ds $18a
; ad0d
sChecksum:: ds 2
s1_ad0f:: ds 1 ; loaded with 0x7f, used to check save corruption
SECTION "Active Box", SRAM, BANK [1]
; ad10
box sBox
; b160
ds $f4
SECTION "Link Battle Data", SRAM, BANK [1]
sLinkBattleResults:: ds $c
sLinkBattleStats:: ; b260
sLinkBattleWins:: ds 2
sLinkBattleLosses:: ds 2 ; b262
sLinkBattleDraws:: ds 2 ; b264
link_battle_record: MACRO
\1Name:: ds NAME_LENGTH +- 1
\1ID:: ds 2
\1Wins:: ds 2
\1Losses:: ds 2
\1Draws:: ds 2
endm
sLinkBattleRecord::
sLinkBattleRecord1:: link_battle_record sLinkBattleRecord1
sLinkBattleRecord2:: link_battle_record sLinkBattleRecord2
sLinkBattleRecord3:: link_battle_record sLinkBattleRecord3
sLinkBattleRecord4:: link_battle_record sLinkBattleRecord4
sLinkBattleRecord5:: link_battle_record sLinkBattleRecord5
sLinkBattleStatsEnd::
SECTION "SRAM Hall of Fame", SRAM, BANK [1]
sHallOfFame:: ; b2c0
; temporary until I can find a way to macrofy it
hall_of_fame sHallOfFame01
hall_of_fame sHallOfFame02
hall_of_fame sHallOfFame03
hall_of_fame sHallOfFame04
hall_of_fame sHallOfFame05
hall_of_fame sHallOfFame06
hall_of_fame sHallOfFame07
hall_of_fame sHallOfFame08
hall_of_fame sHallOfFame09
hall_of_fame sHallOfFame10
hall_of_fame sHallOfFame11
hall_of_fame sHallOfFame12
hall_of_fame sHallOfFame13
hall_of_fame sHallOfFame14
hall_of_fame sHallOfFame15
hall_of_fame sHallOfFame16
hall_of_fame sHallOfFame17
hall_of_fame sHallOfFame18
hall_of_fame sHallOfFame19
hall_of_fame sHallOfFame20
hall_of_fame sHallOfFame21
hall_of_fame sHallOfFame22
hall_of_fame sHallOfFame23
hall_of_fame sHallOfFame24
hall_of_fame sHallOfFame25
hall_of_fame sHallOfFame26
hall_of_fame sHallOfFame27
hall_of_fame sHallOfFame28
hall_of_fame sHallOfFame29
hall_of_fame sHallOfFame30
; x = 1
; rept NUM_HOF_TEAMS
; ; PRINTT("{x}\n")
; if STRLEN({x}) == 2
; PRINTT(STRSUB({x},2,1))
; hall_of_fame STRCAT("sHallOfFame0", STRSUB({x},2,1))
; else
; PRINTT(STRSUB({x},2,2))
; hall_of_fame STRCAT("sHallOfFame", STRSUB({x},2,2))
; endc
; x = x + 1
; endr
sHallOfFameEnd::
SECTION "SRAM Crystal Data", SRAM, BANK [1]
sMobileEventIndex:: ds 1 ; be3c
sCrystalData::
ds wCrystalDataEnd - wCrystalData
sMobileEventIndexBackup:: ds 1
SECTION "SRAM Battle Tower", SRAM, BANK [1]
; data of the BattleTower must be in SRAM because you can save and leave between battles
sBattleTowerChallengeState:: ds 1
; 0: normal
; 2: battle tower
sBattleTower:: ; be46
sNrOfBeatenBattleTowerTrainers:: ds 1
sBTChoiceOfLevelGroup:: ds 1
; The 7 trainers of the BattleTower are saved here, so nobody appears more than once
sBTTrainers:: ; sbe48
ds 7
s1_be4f:: ds 1
sBattleTowerReward:: ds 1
; Pkmn of previous trainer
sBTPkmnOfTrainers:: ; 0xbe51
sBTPkmnPrevTrainer1::
ds 1
sBTPkmnPrevTrainer2:: ds 1
sBTPkmnPrevTrainer3:: ds 1
; Pkmn of preprevious trainer
sBTPkmnPrevPrevTrainer1:: ds 1
sBTPkmnPrevPrevTrainer2:: ds 1
sBTPkmnPrevPrevTrainer3:: ds 1
SECTION "Boxes 1-7", SRAM, BANK [2]
box sBox1
box sBox2
box sBox3
box sBox4
box sBox5
box sBox6
box sBox7
SECTION "Boxes 8-14", SRAM, BANK [3]
box sBox8
box sBox9
box sBox10
box sBox11
box sBox12
box sBox13
box sBox14