You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-04-09 05:44:44 -07:00
178
ram/hram.asm
Normal file
178
ram/hram.asm
Normal file
@@ -0,0 +1,178 @@
|
||||
SECTION "HRAM", HRAM
|
||||
|
||||
hROMBankBackup:: db
|
||||
hFarByte::
|
||||
hTempBank:: db
|
||||
hSRAMBank:: db
|
||||
|
||||
hRTCDayHi:: db
|
||||
hRTCDayLo:: db
|
||||
hRTCHours:: db
|
||||
hRTCMinutes:: db
|
||||
hRTCSeconds:: db
|
||||
|
||||
ds 2
|
||||
|
||||
hHours:: db
|
||||
ds 1
|
||||
hMinutes:: db
|
||||
ds 1
|
||||
hSeconds:: db
|
||||
ds 1
|
||||
|
||||
ds 1
|
||||
|
||||
hVBlankCounter:: db
|
||||
|
||||
ds 1
|
||||
|
||||
hROMBank:: db
|
||||
hVBlank:: db
|
||||
hMapEntryMethod:: db
|
||||
|
||||
hMenuReturn:: db
|
||||
hUnusedByte:: db
|
||||
|
||||
hJoypadReleased:: db
|
||||
hJoypadPressed:: db
|
||||
hJoypadDown:: db
|
||||
hJoypadSum:: db
|
||||
hJoyReleased:: db
|
||||
hJoyPressed:: db
|
||||
hJoyDown:: db
|
||||
hJoyLast:: db
|
||||
|
||||
hInMenu:: db
|
||||
|
||||
ds 1
|
||||
|
||||
hPrinter:: db
|
||||
hGraphicStartTile:: db
|
||||
hMoveMon:: db
|
||||
|
||||
UNION
|
||||
hMapObjectIndex:: db
|
||||
hObjectStructIndex:: db
|
||||
NEXTU
|
||||
hConnectionStripLength:: db
|
||||
hConnectedMapWidth:: db
|
||||
ENDU
|
||||
|
||||
hEnemyMonSpeed:: dw
|
||||
|
||||
UNION
|
||||
; math-related values
|
||||
|
||||
UNION
|
||||
; inputs to Multiply
|
||||
ds 1
|
||||
hMultiplicand:: ds 3
|
||||
hMultiplier:: db
|
||||
NEXTU
|
||||
; result of Multiply
|
||||
hProduct:: ds 4
|
||||
NEXTU
|
||||
; inputs to Divide
|
||||
hDividend:: ds 4
|
||||
hDivisor:: db
|
||||
NEXTU
|
||||
; results of Divide
|
||||
hQuotient:: ds 4
|
||||
hRemainder:: db
|
||||
ENDU
|
||||
|
||||
hMathBuffer:: ds 5
|
||||
|
||||
NEXTU
|
||||
; PrintNum scratch space
|
||||
hPrintNumBuffer:: ds 10
|
||||
|
||||
NEXTU
|
||||
; Mystery Gift
|
||||
hMGExchangedByte:: db
|
||||
hMGExchangedWord:: dw
|
||||
hMGNumBits:: db
|
||||
hMGChecksum:: dw
|
||||
ds 1
|
||||
hMGUnusedMsgLength:: db
|
||||
hMGRole:: db
|
||||
hMGStatusFlags:: db
|
||||
ENDU
|
||||
|
||||
UNION
|
||||
hUsedSpriteIndex:: db
|
||||
hUsedSpriteTile:: db
|
||||
NEXTU
|
||||
hCurSpriteXCoord:: db
|
||||
hCurSpriteYCoord:: db
|
||||
hCurSpriteXPixel:: db
|
||||
hCurSpriteYPixel:: db
|
||||
hCurSpriteTile:: db
|
||||
hCurSpriteOAMFlags:: db
|
||||
ENDU
|
||||
|
||||
UNION
|
||||
hMoneyTemp:: ds 3
|
||||
NEXTU
|
||||
hMGJoypadPressed:: db
|
||||
hMGJoypadReleased:: db
|
||||
hMGPrevTIMA:: db
|
||||
ENDU
|
||||
|
||||
hLCDCPointer:: db
|
||||
hLYOverrideStart:: db
|
||||
hLYOverrideEnd:: db
|
||||
|
||||
hMobileReceive:: db
|
||||
hSerialReceivedNewData:: db
|
||||
hSerialConnectionStatus:: db
|
||||
hSerialIgnoringInitialData:: db
|
||||
hSerialSend:: db
|
||||
hSerialReceive:: db
|
||||
|
||||
hSCX:: db
|
||||
hSCY:: db
|
||||
hWX:: db
|
||||
hWY:: db
|
||||
hTilesPerCycle:: db
|
||||
hBGMapMode:: db
|
||||
hBGMapThird:: db
|
||||
hBGMapAddress:: dw
|
||||
|
||||
hOAMUpdate:: db
|
||||
|
||||
hSPBuffer:: dw
|
||||
|
||||
hBGMapUpdate:: db
|
||||
hBGMapTileCount:: db
|
||||
|
||||
ds 1
|
||||
|
||||
hMapAnims:: db
|
||||
hTileAnimFrame:: db
|
||||
|
||||
hLastTalked:: db
|
||||
|
||||
hRandomAdd:: db
|
||||
hRandomSub:: db
|
||||
|
||||
hUnusedBackup:: db
|
||||
|
||||
hBattleTurn::
|
||||
; Which trainer's turn is it? 0: player, 1: opponent trainer
|
||||
db
|
||||
|
||||
hCGBPalUpdate:: db
|
||||
hCGB:: db
|
||||
hSGB:: db
|
||||
|
||||
hDMATransfer:: db
|
||||
hMobile:: db
|
||||
hSystemBooted:: db
|
||||
|
||||
if DEF(_DEBUG)
|
||||
hDebugRoomMenuPage::
|
||||
endc
|
||||
hClockResetTrigger:: db
|
||||
|
||||
ds 19
|
384
ram/sram.asm
Normal file
384
ram/sram.asm
Normal file
@@ -0,0 +1,384 @@
|
||||
SECTION "Scratch", SRAM
|
||||
|
||||
sScratch:: ds $60 tiles
|
||||
|
||||
|
||||
SECTION "SRAM Bank 0", SRAM
|
||||
|
||||
sPartyMail::
|
||||
; sPartyMon1Mail - sPartyMon6Mail
|
||||
for n, 1, PARTY_LENGTH + 1
|
||||
sPartyMon{d:n}Mail:: mailmsg sPartyMon{d:n}Mail
|
||||
endr
|
||||
|
||||
sPartyMailBackup::
|
||||
; sPartyMon1MailBackup - sPartyMon6MailBackup
|
||||
for n, 1, PARTY_LENGTH + 1
|
||||
sPartyMon{d:n}MailBackup:: mailmsg sPartyMon{d:n}MailBackup
|
||||
endr
|
||||
|
||||
sMailboxCount:: db
|
||||
sMailboxes::
|
||||
; sMailbox1 - sMailbox10
|
||||
for n, 1, MAILBOX_CAPACITY + 1
|
||||
sMailbox{d:n}:: mailmsg sMailbox{d:n}
|
||||
endr
|
||||
|
||||
sMailboxCountBackup:: db
|
||||
sMailboxesBackup::
|
||||
; sMailbox1Backup - sMailbox10Backup
|
||||
for n, 1, MAILBOX_CAPACITY + 1
|
||||
sMailbox{d:n}Backup:: mailmsg sMailbox{d:n}Backup
|
||||
endr
|
||||
|
||||
sMysteryGiftData::
|
||||
sMysteryGiftItem:: db
|
||||
sMysteryGiftUnlocked:: db
|
||||
sBackupMysteryGiftItem:: db
|
||||
sNumDailyMysteryGiftPartnerIDs:: db
|
||||
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
|
||||
sMysteryGiftUnusedFlag:: db
|
||||
sMysteryGiftTrainer:: ds wMysteryGiftTrainerEnd - wMysteryGiftTrainer
|
||||
sBackupMysteryGiftItemEnd::
|
||||
|
||||
ds $30
|
||||
|
||||
sRTCStatusFlags:: db
|
||||
ds 7
|
||||
sLuckyNumberDay:: db
|
||||
sLuckyIDNumber:: dw
|
||||
|
||||
|
||||
SECTION "Backup Save", SRAM
|
||||
|
||||
sBackupOptions:: ds wOptionsEnd - wOptions
|
||||
|
||||
sBackupCheckValue1:: db ; loaded with SAVE_CHECK_VALUE_1, used to check save corruption
|
||||
|
||||
sBackupGameData::
|
||||
sBackupPlayerData:: ds wPlayerDataEnd - wPlayerData
|
||||
sBackupCurMapData:: ds wCurMapDataEnd - wCurMapData
|
||||
sBackupPokemonData:: ds wPokemonDataEnd - wPokemonData
|
||||
sBackupGameDataEnd::
|
||||
|
||||
ds $18a
|
||||
|
||||
sBackupChecksum:: dw
|
||||
|
||||
sBackupCheckValue2:: db ; loaded with SAVE_CHECK_VALUE_2, used to check save corruption
|
||||
|
||||
sStackTop:: dw
|
||||
|
||||
if DEF(_DEBUG)
|
||||
sRTCHaltCheckValue:: dw
|
||||
sSkipBattle:: db
|
||||
sDebugTimeCyclesSinceLastCall:: db
|
||||
sOpenedInvalidSRAM:: db
|
||||
sIsBugMon:: db
|
||||
endc
|
||||
|
||||
|
||||
SECTION "Save", SRAM
|
||||
|
||||
sOptions:: ds wOptionsEnd - wOptions
|
||||
|
||||
sCheckValue1:: db ; loaded with SAVE_CHECK_VALUE_1, used to check save corruption
|
||||
|
||||
sGameData::
|
||||
sPlayerData:: ds wPlayerDataEnd - wPlayerData
|
||||
sCurMapData:: ds wCurMapDataEnd - wCurMapData
|
||||
sPokemonData:: ds wPokemonDataEnd - wPokemonData
|
||||
sGameDataEnd::
|
||||
|
||||
ds $18a
|
||||
|
||||
sChecksum:: dw
|
||||
|
||||
sCheckValue2:: db ; loaded with SAVE_CHECK_VALUE_2, used to check save corruption
|
||||
|
||||
|
||||
SECTION "Active Box", SRAM
|
||||
|
||||
sBox:: box sBox
|
||||
|
||||
ds $100
|
||||
|
||||
|
||||
SECTION "Link Battle Data", SRAM
|
||||
|
||||
sLinkBattleStats::
|
||||
sLinkBattleWins:: dw
|
||||
sLinkBattleLosses:: dw
|
||||
sLinkBattleDraws:: dw
|
||||
|
||||
sLinkBattleRecord::
|
||||
; sLinkBattleRecord1 - sLinkBattleRecord5
|
||||
for n, 1, NUM_LINK_BATTLE_RECORDS + 1
|
||||
sLinkBattleRecord{d:n}:: link_battle_record sLinkBattleRecord{d:n}
|
||||
endr
|
||||
sLinkBattleStatsEnd::
|
||||
|
||||
|
||||
SECTION "SRAM Hall of Fame", SRAM
|
||||
|
||||
sHallOfFame::
|
||||
; sHallOfFame1 - sHallOfFame30
|
||||
for n, 1, NUM_HOF_TEAMS + 1
|
||||
sHallOfFame{d:n}:: hall_of_fame sHallOfFame{d:n}
|
||||
endr
|
||||
sHallOfFameEnd::
|
||||
|
||||
|
||||
SECTION "SRAM Crystal Data", SRAM
|
||||
|
||||
sMobileEventIndex:: db
|
||||
|
||||
sCrystalData:: ds wCrystalDataEnd - wCrystalData
|
||||
|
||||
sMobileEventIndexBackup:: db
|
||||
|
||||
|
||||
SECTION "SRAM Battle Tower", SRAM
|
||||
|
||||
; Battle Tower data must be in SRAM because you can save and leave between battles
|
||||
sBattleTowerChallengeState::
|
||||
; 0: normal
|
||||
; 2: battle tower
|
||||
db
|
||||
|
||||
sNrOfBeatenBattleTowerTrainers:: db
|
||||
sBTChoiceOfLevelGroup:: db
|
||||
; Battle Tower trainers are saved here, so nobody appears more than once
|
||||
sBTTrainers:: ds BATTLETOWER_STREAK_LENGTH ; sbe48
|
||||
sBattleTowerSaveFileFlags:: db
|
||||
sBattleTowerReward:: db
|
||||
|
||||
sBTMonOfTrainers::
|
||||
; team of previous trainer
|
||||
; sBTMonPrevTrainer1 - sBTMonPrevTrainer3
|
||||
for n, 1, BATTLETOWER_PARTY_LENGTH + 1
|
||||
sBTMonPrevTrainer{d:n}:: db
|
||||
endr
|
||||
; team of preprevious trainer
|
||||
; sBTMonPrevPrevTrainer1 - sBTMonPrevPrevTrainer3
|
||||
for n, 1, BATTLETOWER_PARTY_LENGTH + 1
|
||||
sBTMonPrevPrevTrainer{d:n}:: db
|
||||
endr
|
||||
|
||||
|
||||
; The PC boxes will not fit into one SRAM bank,
|
||||
; so they use multiple SECTIONs
|
||||
DEF box_n = 0
|
||||
MACRO boxes
|
||||
rept \1
|
||||
DEF box_n += 1
|
||||
sBox{d:box_n}:: box sBox{d:box_n}
|
||||
endr
|
||||
ENDM
|
||||
|
||||
SECTION "Boxes 1-7", SRAM
|
||||
|
||||
; sBox1 - sBox7
|
||||
boxes 7
|
||||
|
||||
SECTION "Boxes 8-14", SRAM
|
||||
|
||||
; sBox8 - sBox14
|
||||
boxes 7
|
||||
|
||||
; All 14 boxes fit exactly within 2 SRAM banks
|
||||
assert box_n == NUM_BOXES, \
|
||||
"boxes: Expected {d:NUM_BOXES} total boxes, got {d:box_n}"
|
||||
|
||||
|
||||
SECTION "SRAM Mobile 1", SRAM
|
||||
|
||||
ds $7
|
||||
|
||||
s4_a007:: ; struct size $30
|
||||
|
||||
ds $c
|
||||
|
||||
s4_a013:: ds 36
|
||||
|
||||
s4_a037:: ds 4
|
||||
|
||||
s4_a03b:: ds 37 * 40
|
||||
|
||||
s4_a603:: ds 8
|
||||
|
||||
s4_a60b:: db
|
||||
s4_a60c:: db
|
||||
s4_a60d:: db
|
||||
|
||||
s4_a60e:: dw
|
||||
|
||||
ds $1f0
|
||||
|
||||
sMobileBattleTimer:: ds 3
|
||||
|
||||
ds $7fd
|
||||
|
||||
s4_b000:: db
|
||||
|
||||
|
||||
SECTION "SRAM Mobile 2", SRAM
|
||||
|
||||
ds 1 ; JP: location of sMobileEventIndex
|
||||
|
||||
sTrainerRankings::
|
||||
sTrainerRankingGameTimeHOF:: ds 4
|
||||
sTrainerRankingStepCountHOF:: ds 4
|
||||
sTrainerRankingHealingsHOF:: ds 4
|
||||
sTrainerRankingBattlesHOF:: ds 3
|
||||
sTrainerRankingStepCount:: ds 4
|
||||
sTrainerRankingBattleTowerWins:: ds 4
|
||||
sTrainerRankingTMsHMsTaught:: ds 3
|
||||
sTrainerRankingBattles:: ds 3
|
||||
sTrainerRankingWildBattles:: ds 3
|
||||
sTrainerRankingTrainerBattles:: ds 3
|
||||
sTrainerRankingUnused1:: ds 3
|
||||
sTrainerRankingHOFEntries:: ds 3
|
||||
sTrainerRankingWildMonsCaught:: ds 3
|
||||
sTrainerRankingHookedEncounters:: ds 3
|
||||
sTrainerRankingEggsHatched:: ds 3
|
||||
sTrainerRankingMonsEvolved:: ds 3
|
||||
sTrainerRankingFruitPicked:: ds 3
|
||||
sTrainerRankingHealings:: ds 3
|
||||
sTrainerRankingMysteryGift:: ds 3
|
||||
sTrainerRankingTrades:: ds 3
|
||||
sTrainerRankingFly:: ds 3
|
||||
sTrainerRankingSurf:: ds 3
|
||||
sTrainerRankingWaterfall:: ds 3
|
||||
sTrainerRankingWhiteOuts:: ds 3
|
||||
sTrainerRankingLuckyNumberShow:: ds 3
|
||||
sTrainerRankingPhoneCalls:: ds 3
|
||||
sTrainerRankingUnused2:: ds 3
|
||||
sTrainerRankingLinkBattles:: ds 3
|
||||
sTrainerRankingSplash:: ds 3
|
||||
sTrainerRankingTreeEncounters:: ds 3
|
||||
sTrainerRankingUnused3:: ds 3
|
||||
sTrainerRankingColosseumWins:: ds 3
|
||||
sTrainerRankingColosseumLosses:: ds 3
|
||||
sTrainerRankingColosseumDraws:: ds 3
|
||||
sTrainerRankingSelfdestruct:: ds 3
|
||||
sTrainerRankingCurrentSlotsStreak:: ds 2
|
||||
sTrainerRankingLongestSlotsStreak:: ds 2
|
||||
sTrainerRankingTotalSlotsPayouts:: ds 4
|
||||
sTrainerRankingTotalBattlePayouts:: ds 4
|
||||
sTrainerRankingLongestMagikarp:: ds 2
|
||||
sTrainerRankingShortestMagikarp:: ds 2
|
||||
sTrainerRankingBugContestScore:: ds 2
|
||||
sTrainerRankingsChecksum:: ds 2
|
||||
sTrainerRankingsEnd::
|
||||
|
||||
ds 1 ; JP: location of sMobileEventIndexBackup
|
||||
|
||||
sTrainerRankingsBackup:: ds sTrainerRankingsEnd - sTrainerRankings
|
||||
|
||||
ds $6fa
|
||||
|
||||
s5_a800:: db
|
||||
|
||||
ds $24
|
||||
|
||||
s5_a825:: db
|
||||
s5_a826:: db
|
||||
|
||||
ds $6d
|
||||
|
||||
s5_a894:: ds 6
|
||||
s5_a89a:: dw
|
||||
s5_a89c:: ds 22
|
||||
s5_a8b2:: ds 150
|
||||
|
||||
s5_a948:: ds 246
|
||||
|
||||
ds $3
|
||||
|
||||
s5_aa41:: ds 4
|
||||
|
||||
ds $2
|
||||
|
||||
s5_aa47:: db
|
||||
s5_aa48:: db
|
||||
|
||||
ds $1
|
||||
|
||||
s5_aa4a:: db
|
||||
|
||||
sMobileLoginPassword:: ds MOBILE_LOGIN_PASSWORD_LENGTH
|
||||
|
||||
ds $1
|
||||
|
||||
s5_aa5d:: ds MOBILE_LOGIN_PASSWORD_LENGTH
|
||||
|
||||
ds $4
|
||||
|
||||
s5_aa72:: db
|
||||
s5_aa73:: ds 12
|
||||
s5_aa7f:: ds 12
|
||||
|
||||
s5_aa8b:: db
|
||||
s5_aa8c:: db
|
||||
s5_aa8d:: db
|
||||
s5_aa8e:: ds 7 * $cc
|
||||
|
||||
ds $1
|
||||
|
||||
s5_b023:: ds 105
|
||||
s5_b08c:: ds 4
|
||||
s5_b090:: db
|
||||
s5_b091:: db
|
||||
s5_b092:: ds 31
|
||||
|
||||
ds $100
|
||||
|
||||
s5_b1b1:: db
|
||||
s5_b1b2:: db
|
||||
s5_b1b3:: db
|
||||
s5_b1b4:: db
|
||||
|
||||
ds $1e
|
||||
|
||||
s5_b1d3::
|
||||
|
||||
ds $120
|
||||
|
||||
s5_b2f3:: db
|
||||
s5_b2f4:: ds 4
|
||||
|
||||
ds $1
|
||||
|
||||
s5_b2f9:: db
|
||||
s5_b2fa:: db
|
||||
s5_b2fb:: db
|
||||
|
||||
ds $b49
|
||||
|
||||
s5_be45:: db
|
||||
s5_be46:: db
|
||||
|
||||
ds $1b8
|
||||
|
||||
s5_bfff:: db
|
||||
|
||||
|
||||
SECTION "SRAM Mobile 3", SRAM
|
||||
|
||||
s6_a000::
|
||||
|
||||
|
||||
SECTION "SRAM Mobile 4", SRAM
|
||||
|
||||
s7_a000::
|
||||
|
||||
ds $800
|
||||
|
||||
s7_a800:: db
|
16
ram/vram.asm
Normal file
16
ram/vram.asm
Normal file
@@ -0,0 +1,16 @@
|
||||
SECTION "VRAM0", VRAM
|
||||
|
||||
vTiles0:: ds $80 tiles
|
||||
vTiles1:: ds $80 tiles
|
||||
vTiles2:: ds $80 tiles
|
||||
vBGMap0:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
|
||||
vBGMap1:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
|
||||
|
||||
|
||||
SECTION "VRAM1", VRAM
|
||||
|
||||
vTiles3:: ds $80 tiles
|
||||
vTiles4:: ds $80 tiles
|
||||
vTiles5:: ds $80 tiles
|
||||
vBGMap2:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
|
||||
vBGMap3:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
|
3608
ram/wram.asm
Normal file
3608
ram/wram.asm
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user