Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

The Battle of Olympus (NES)/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
No edit summary
 
(One intermediate revision by one other user not shown)
(No difference)

Latest revision as of 20:58, 28 January 2024

Chip tiny.png The following article is a RAM map for The Battle of Olympus (NES).

Some notes on RAM usage:

$05 = stringBitWidth
$0F = currentTextBufferPosition
$10 = NPC_ID
$16 = curStringBitNum
$17 = curStringByte
$19 = numTokensToRead
$1A = textStartXOffset
$1B = currentLineNumber
$1C = charactersOnCurrentLine
$42-$43 = mainStringAddr
$4A = curHP
$D7 = curTableNum (high bit indicates numbers/symbols table, second highest indicates 6-bit encoding, second-lowest bit = ???, lowest bit indicates lowercase (set) vs. uppercase (clear), others appear to be unused)
$D8-$D9 = curStringAddr
$DA-$DD = random number generator internal state
$DF = mapLocation
$E0 = oliveCount_ones
$E1 = oliveCount_tens
$E2 = salamanderSkins
$EF = maxHP
$F0-$F4 = questStatusFlags (index is 5-bit, but $F8-$F9 are used during IRQ, so I guess the 2 highest of the 5 bits are never actually set)
$FD = makingMapperChanges; INC before writing to mapper registers, DEC after finished
$FE = PPU_Control_Register_2_settings
$FF = PPU_Control_Register_1_settings