mirror of
https://github.com/thornAvery/kep-hack.git
synced 2026-02-06 15:45:24 +13:00
Add a subdirectory for RAM files
This commit is contained in:
parent
edb55e00f8
commit
ba15b4b44e
6 changed files with 10 additions and 14 deletions
402
ram/hram.asm
Normal file
402
ram/hram.asm
Normal file
|
|
@ -0,0 +1,402 @@
|
|||
SECTION "HRAM", HRAM
|
||||
|
||||
; Initialized to 16.
|
||||
; Decremented each input iteration if the player
|
||||
; presses the reset sequence (A+B+SEL+START).
|
||||
; Soft reset when 0 is reached.
|
||||
hSoftReset:: db
|
||||
|
||||
UNION
|
||||
hBaseTileID:: ; base tile ID to which offsets are added
|
||||
hDexWeight::
|
||||
hWarpDestinationMap::
|
||||
hOAMTile::
|
||||
hROMBankTemp::
|
||||
hPreviousTileset::
|
||||
hRLEByteValue::
|
||||
db
|
||||
|
||||
hSpriteIndexOrTextID:: ; DisplayTextID's argument
|
||||
hPartyMonIndex::
|
||||
db
|
||||
|
||||
hVRAMSlot::
|
||||
db
|
||||
|
||||
hFourTileSpriteCount::
|
||||
hHalveItemPrices::
|
||||
db
|
||||
|
||||
NEXTU
|
||||
hItemPrice:: ds 3 ; BCD number
|
||||
|
||||
NEXTU
|
||||
hSlideAmount:: db
|
||||
|
||||
; the total number of tiles being shifted each time the pic slides by one tile
|
||||
hSlidingRegionSize:: db
|
||||
|
||||
; -1 = left
|
||||
; 0 = right
|
||||
hSlideDirection:: db
|
||||
|
||||
NEXTU
|
||||
hSpriteInterlaceCounter::
|
||||
hSpriteWidth:: db ; in tiles
|
||||
hSpriteHeight:: db ; in tiles
|
||||
hSpriteOffset:: db
|
||||
|
||||
NEXTU
|
||||
; counters for blinking down arrow
|
||||
hDownArrowBlinkCount1:: db
|
||||
hDownArrowBlinkCount2:: db
|
||||
|
||||
NEXTU
|
||||
hMapStride::
|
||||
hEastWestConnectedMapWidth::
|
||||
hNorthSouthConnectionStripWidth::
|
||||
db
|
||||
hMapWidth::
|
||||
hNorthSouthConnectedMapWidth::
|
||||
db
|
||||
|
||||
NEXTU
|
||||
hSpriteDataOffset:: db
|
||||
hSpriteIndex:: db
|
||||
hSpriteImageIndex::
|
||||
hSpriteFacingDirection::
|
||||
hSpriteMovementByte2::
|
||||
db
|
||||
|
||||
NEXTU
|
||||
ds 2
|
||||
hLoadSpriteTemp1:: db
|
||||
hLoadSpriteTemp2:: db
|
||||
|
||||
NEXTU
|
||||
ds 2
|
||||
hEnemySpeed:: dw
|
||||
ENDU
|
||||
|
||||
UNION
|
||||
hSpriteOffset2:: db
|
||||
hOAMBufferOffset:: db
|
||||
hSpriteScreenX:: db
|
||||
hSpriteScreenY:: db
|
||||
|
||||
NEXTU
|
||||
hFF8F:: db
|
||||
hFF90:: db
|
||||
hFF91:: db
|
||||
hFF92:: db
|
||||
ENDU
|
||||
|
||||
hTilePlayerStandingOn:: db
|
||||
|
||||
hSpritePriority:: db
|
||||
|
||||
UNION
|
||||
; Multiplication and division variables are meant
|
||||
; to overlap for back-to-back usage. Big endian.
|
||||
UNION
|
||||
ds 1
|
||||
hMultiplicand:: ds 3
|
||||
hMultiplier:: db
|
||||
ds 1
|
||||
hMultiplyBuffer:: ds 4
|
||||
NEXTU
|
||||
hProduct:: ds 4
|
||||
NEXTU
|
||||
hDividend:: ds 4
|
||||
hDivisor:: db
|
||||
hDivideBuffer:: ds 5
|
||||
NEXTU
|
||||
hQuotient:: ds 4
|
||||
hRemainder:: db
|
||||
ENDU
|
||||
|
||||
NEXTU
|
||||
; PrintNumber (big endian).
|
||||
hPastLeadingZeros:: db ; last char printed
|
||||
hNumToPrint:: ds 3
|
||||
hPowerOf10:: ds 3
|
||||
hSavedNumToPrint:: ds 3
|
||||
|
||||
NEXTU
|
||||
hNPCMovementDirections2Index::
|
||||
hNPCSpriteOffset::
|
||||
; distance in steps between NPC and player
|
||||
hNPCPlayerYDistance::
|
||||
db
|
||||
hNPCPlayerXDistance::
|
||||
db
|
||||
hFindPathNumSteps:: db
|
||||
; bit 0: set when the end of the path's Y coordinate matches the target's
|
||||
; bit 1: set when the end of the path's X coordinate matches the target's
|
||||
; When both bits are set, the end of the path is at the target's position
|
||||
; (i.e. the path has been found).
|
||||
hFindPathFlags:: db
|
||||
hFindPathYProgress:: db
|
||||
hFindPathXProgress:: db
|
||||
; 0 = from player to NPC
|
||||
; 1 = from NPC to player
|
||||
hNPCPlayerRelativePosPerspective:: db
|
||||
ds 1
|
||||
; bit 0:
|
||||
; 0 = target is to the south or aligned
|
||||
; 1 = target is to the north
|
||||
; bit 1:
|
||||
; 0 = target is to the east or aligned
|
||||
; 1 = target is to the west
|
||||
hNPCPlayerRelativePosFlags:: db
|
||||
|
||||
NEXTU
|
||||
hSwapItemID:: db
|
||||
hSwapItemQuantity:: db
|
||||
|
||||
NEXTU
|
||||
hSignCoordPointer:: dw
|
||||
|
||||
NEXTU
|
||||
ds 1
|
||||
hMutateWY:: db
|
||||
hMutateWX:: db
|
||||
|
||||
NEXTU
|
||||
; temp value used when swapping bytes or words
|
||||
hSwapTemp:: db
|
||||
hExperience:: ds 3 ; big endian
|
||||
ENDU
|
||||
|
||||
UNION
|
||||
hMoney:: ds 3 ; BCD number
|
||||
NEXTU
|
||||
; some code zeroes this for no reason when writing a coin amount
|
||||
hUnusedCoinsByte:: db
|
||||
hCoins:: ds 2 ; BCD number
|
||||
ENDU
|
||||
|
||||
hDivideBCDDivisor::
|
||||
hDivideBCDQuotient::
|
||||
ds 3 ; BCD number
|
||||
hDivideBCDBuffer::
|
||||
ds 3 ; BCD number
|
||||
|
||||
ds 1
|
||||
|
||||
hSerialReceivedNewData:: db
|
||||
; $01 = using external clock
|
||||
; $02 = using internal clock
|
||||
; $ff = establishing connection
|
||||
hSerialConnectionStatus:: db
|
||||
hSerialIgnoringInitialData:: db
|
||||
hSerialSendData:: db
|
||||
hSerialReceiveData:: db
|
||||
|
||||
; these values are copied to rSCX, rSCY, and rWY during V-blank
|
||||
hSCX:: db
|
||||
hSCY:: db
|
||||
hWY:: db
|
||||
|
||||
hJoyLast:: db
|
||||
hJoyReleased:: db
|
||||
hJoyPressed:: db
|
||||
hJoyHeld:: db
|
||||
hJoy5:: db
|
||||
hJoy6:: db
|
||||
hJoy7:: db
|
||||
|
||||
hLoadedROMBank:: db
|
||||
hSavedROMBank:: db
|
||||
|
||||
; is automatic background transfer during V-blank enabled?
|
||||
; if nonzero, yes
|
||||
; if zero, no
|
||||
hAutoBGTransferEnabled:: db
|
||||
|
||||
; 00 = top third of background
|
||||
; 01 = middle third of background
|
||||
; 02 = bottom third of background
|
||||
hAutoBGTransferPortion:: db
|
||||
|
||||
; the destination address of the automatic background transfer
|
||||
hAutoBGTransferDest:: dw
|
||||
|
||||
hRedrawMapViewRowOffset:: db
|
||||
|
||||
; temporary storage for stack pointer during memory transfers that use pop
|
||||
; to increase speed
|
||||
hSPTemp:: dw
|
||||
|
||||
; source address for VBlankCopyBgMap function
|
||||
; the first byte doubles as the byte that enabled the transfer.
|
||||
; if it is 0, the transfer is disabled
|
||||
; if it is not 0, the transfer is enabled
|
||||
; this means that XX00 is not a valid source address
|
||||
hVBlankCopyBGSource:: dw
|
||||
|
||||
; destination address for VBlankCopyBgMap function
|
||||
hVBlankCopyBGDest:: dw
|
||||
|
||||
; number of rows for VBlankCopyBgMap to copy
|
||||
hVBlankCopyBGNumRows:: db
|
||||
|
||||
; size of VBlankCopy transfer in 16-byte units
|
||||
hVBlankCopySize:: db
|
||||
|
||||
; source address for VBlankCopy function
|
||||
hVBlankCopySource:: dw
|
||||
|
||||
; destination address for VBlankCopy function
|
||||
hVBlankCopyDest:: dw
|
||||
|
||||
; size of source data for VBlankCopyDouble in 8-byte units
|
||||
hVBlankCopyDoubleSize:: db
|
||||
|
||||
; source address for VBlankCopyDouble function
|
||||
hVBlankCopyDoubleSource:: dw
|
||||
|
||||
; destination address for VBlankCopyDouble function
|
||||
hVBlankCopyDoubleDest:: dw
|
||||
|
||||
; controls whether a row or column of 2x2 tile blocks is redrawn in V-blank
|
||||
; 00 = no redraw
|
||||
; 01 = redraw column
|
||||
; 02 = redraw row
|
||||
hRedrawRowOrColumnMode:: db
|
||||
|
||||
hRedrawRowOrColumnDest:: dw
|
||||
|
||||
hRandomAdd:: db
|
||||
hRandomSub:: db
|
||||
|
||||
hFrameCounter:: db ; decremented every V-blank (used for delays)
|
||||
|
||||
; V-blank sets this to 0 each time it runs.
|
||||
; So, by setting it to a nonzero value and waiting for it to become 0 again,
|
||||
; you can detect that the V-blank handler has run since then.
|
||||
hVBlankOccurred:: db
|
||||
|
||||
; Controls which tiles are animated.
|
||||
; 0 = no animations (breaks Surf)
|
||||
; 1 = water tile $14 is animated
|
||||
; 2 = water tile $14 and flower tile $03 are animated
|
||||
hTileAnimations:: db
|
||||
|
||||
hMovingBGTilesCounter1:: db
|
||||
|
||||
ds 1
|
||||
|
||||
hCurrentSpriteOffset:: db ; multiple of $10
|
||||
|
||||
UNION
|
||||
hPlayerFacing:: db
|
||||
hPlayerYCoord:: db
|
||||
hPlayerXCoord:: db
|
||||
|
||||
NEXTU
|
||||
|
||||
; $00 = bag full
|
||||
; $01 = got item
|
||||
; $80 = didn't meet required number of owned mons
|
||||
; $FF = player cancelled
|
||||
hOaksAideResult::
|
||||
hOaksAideRequirement:: ; required number of owned mons
|
||||
db
|
||||
hOaksAideRewardItem:: db
|
||||
hOaksAideNumMonsOwned:: db
|
||||
|
||||
NEXTU
|
||||
hVendingMachineItem:: db
|
||||
hVendingMachinePrice:: ds 3 ; BCD number
|
||||
|
||||
NEXTU
|
||||
hGymGateIndex:: db
|
||||
hGymGateAnswer:: db
|
||||
|
||||
NEXTU
|
||||
hDexRatingNumMonsSeen:: db
|
||||
hDexRatingNumMonsOwned:: db
|
||||
|
||||
NEXTU
|
||||
hItemToRemoveID:: db
|
||||
hItemToRemoveIndex:: db
|
||||
|
||||
NEXTU
|
||||
hItemCounter::
|
||||
hSavedCoordIndex::
|
||||
hMissableObjectIndex::
|
||||
hGymTrashCanRandNumMask::
|
||||
db
|
||||
|
||||
NEXTU
|
||||
hFFDB:: db
|
||||
hFFDC:: db
|
||||
ENDU
|
||||
|
||||
ds 1
|
||||
|
||||
hBackupGymGateIndex::
|
||||
hUnlockedSilphCoDoors::
|
||||
db
|
||||
|
||||
; the first tile ID in a sequence of tile IDs that increase by 1 each step
|
||||
hStartTileID:: db
|
||||
|
||||
ds 2
|
||||
|
||||
hNewPartyLength:: db
|
||||
|
||||
UNION
|
||||
hDividend2:: db
|
||||
hDivisor2:: db
|
||||
hQuotient2:: db
|
||||
|
||||
NEXTU
|
||||
hIsHiddenMissableObject:: db
|
||||
ENDU
|
||||
|
||||
hMapROMBank:: db
|
||||
|
||||
hSpriteVRAMSlotAndFacing:: db
|
||||
|
||||
hCoordsInFrontOfPlayerMatch::
|
||||
hSpriteAnimFrameCounter::
|
||||
db
|
||||
|
||||
UNION
|
||||
hSpriteScreenYCoord:: db
|
||||
hSpriteScreenXCoord:: db
|
||||
hSpriteMapYCoord:: db
|
||||
hSpriteMapXCoord:: db
|
||||
|
||||
NEXTU
|
||||
hItemAlreadyFound:: db
|
||||
ds 2
|
||||
hDidntFindAnyHiddenObject:: db
|
||||
|
||||
NEXTU
|
||||
ds 1
|
||||
hSavedMapTextPtr:: dw
|
||||
ds 1
|
||||
ENDU
|
||||
|
||||
ds 4
|
||||
|
||||
hWhoseTurn:: db ; 0 on player's turn, 1 on enemy's turn
|
||||
|
||||
hClearLetterPrintingDelayFlags:: db
|
||||
|
||||
ds 1
|
||||
|
||||
; bit 0: draw HP fraction to the right of bar instead of below (for party menu)
|
||||
; bit 1: menu is double spaced
|
||||
hUILayoutFlags:: db
|
||||
|
||||
hFieldMoveMonMenuTopMenuItemX:: db
|
||||
|
||||
hJoyInput:: db
|
||||
|
||||
hDisableJoypadPolling:: db
|
||||
|
||||
ds 5
|
||||
53
ram/sram.asm
Normal file
53
ram/sram.asm
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
SECTION "Sprite Buffers", SRAM
|
||||
|
||||
sSpriteBuffer0:: ds SPRITEBUFFERSIZE
|
||||
sSpriteBuffer1:: ds SPRITEBUFFERSIZE
|
||||
sSpriteBuffer2:: ds SPRITEBUFFERSIZE
|
||||
|
||||
ds $100
|
||||
|
||||
sHallOfFame:: ds HOF_TEAM * HOF_TEAM_CAPACITY
|
||||
|
||||
|
||||
SECTION "Save Data", SRAM
|
||||
|
||||
ds $598
|
||||
|
||||
sGameData::
|
||||
sPlayerName:: ds NAME_LENGTH
|
||||
sMainData:: ds wMainDataEnd - wMainDataStart
|
||||
sSpriteData:: ds wSpriteDataEnd - wSpriteDataStart
|
||||
sPartyData:: ds wPartyDataEnd - wPartyDataStart
|
||||
sCurBoxData:: ds wBoxDataEnd - wBoxDataStart
|
||||
sTileAnimations:: db
|
||||
sGameDataEnd::
|
||||
sMainDataCheckSum:: db
|
||||
|
||||
|
||||
; 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}:: ds wBoxDataEnd - wBoxDataStart
|
||||
ENDR
|
||||
ENDM
|
||||
|
||||
SECTION "Saved Boxes 1", SRAM
|
||||
|
||||
; sBox1 - sBox6
|
||||
boxes 6
|
||||
sBank2AllBoxesChecksum:: db
|
||||
sBank2IndividualBoxChecksums:: ds 6
|
||||
|
||||
SECTION "Saved Boxes 2", SRAM
|
||||
|
||||
; sBox7 - sBox12
|
||||
boxes 6
|
||||
sBank3AllBoxesChecksum:: db
|
||||
sBank3IndividualBoxChecksums:: ds 6
|
||||
|
||||
; All 12 boxes fit within 2 SRAM banks
|
||||
ASSERT box_n == NUM_BOXES, \
|
||||
"boxes: Expected {d:NUM_BOXES} total boxes, got {d:box_n}"
|
||||
31
ram/vram.asm
Normal file
31
ram/vram.asm
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
SECTION "VRAM", VRAM
|
||||
|
||||
UNION
|
||||
; generic
|
||||
vChars0:: ds $80 tiles
|
||||
vChars1:: ds $80 tiles
|
||||
vChars2:: ds $80 tiles
|
||||
vBGMap0:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
|
||||
vBGMap1:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
|
||||
|
||||
NEXTU
|
||||
; battle/menu
|
||||
vSprites:: ds $80 tiles
|
||||
vFont:: ds $80 tiles
|
||||
vFrontPic:: ds 7 * 7 tiles
|
||||
vBackPic:: ds 7 * 7 tiles
|
||||
|
||||
NEXTU
|
||||
; overworld
|
||||
vNPCSprites:: ds $80 tiles
|
||||
vNPCSprites2:: ds $80 tiles
|
||||
vTileset:: ds $80 tiles
|
||||
|
||||
NEXTU
|
||||
; title
|
||||
ds $80 tiles
|
||||
vTitleLogo:: ds $80 tiles
|
||||
ds 7 * 7 tiles
|
||||
vTitleLogo2:: ds 30 tiles
|
||||
|
||||
ENDU
|
||||
2331
ram/wram.asm
Normal file
2331
ram/wram.asm
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue