ActRaiser/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
mNo edit summary
 
(One intermediate revision by one other user not shown)
Line 284: Line 284:
   They are spent when buildings are built.
   They are spent when buildings are built.
</pre>
</pre>
{{Internal Data}}

Latest revision as of 14:30, 24 January 2024

Chip tiny.png The following article is a RAM map for ActRaiser.

Most things on the platformer side seem to use BCD.

          7E0018 = Game mode (00 = Non-Platformer, 01 = Platformer)
          7E0019 = Map - Current map number     <-- Second byte of unique map ID
          7E001A = Map - Destination map number <-- Second byte of unique map ID
          7E001B = Map - Destination map group  <-- First byte of unique map ID
          7E001C = Platformer - Lives
          7E001D = Platformer - Current HP
          7E001E = Platformer - Max HP
7E001F to 7E0020 = Platformer - Score
          7E0021 = Platformer - MP
7E0022 to 7E0023 = Palace - X position
7E0024 to 7E0025 = Palace - Y position

7E00A5 to 7E00A7 = Decompression - Long pointer to current byte of compressed input

7E00AB to 7E00AD = Music - Long pointer to current music
          7E00AE = Decompression - Weight of current bit (0x80, 0x40, ... 0x01)
7E00AF to 7E00B0 = Decompression - Current position in sliding window
7E00B1 to 7E00B2 = Decompression - Source position in sliding window, used by the pastcopy case
7E00B3 to 7E00B4 = Decompression - Output size
7E00B5 to 7E00B6 = Decompression - Output destination
7E00B7 to 7E00B8 = Decompression - Scratch space for pastcopy case

7E00E6 to 7E00E7 = Platformer - Time remaining



          7E0200 = Text speed

7E0218 to 7E0219 = Population - Total
7E021A to 7E021B = Population - Most recently visited town
7E021C to 7E021D = Population - Fillmore
7E021E to 7E021F = Population - Bloodpool
7E0220 to 7E0221 = Population - Kasandora
7E0222 to 7E0223 = Population - Aitos
7E0224 to 7E0225 = Population - Marahna
7E0226 to 7E0227 = Population - Northwall
          7E0228 = Town growth rate - Fillmore
          7E0229 = Town growth rate - Bloodpool
          7E022A = Town growth rate - Kasandora
          7E022B = Town growth rate - Aitos
          7E022C = Town growth rate - Marahna
          7E022D = Town growth rate - Northwall
7E022E to 7E022F = Town technology level - Fillmore
7E0230 to 7E0231 = Town technology level - Bloodpool
7E0232 to 7E0233 = Town technology level - Kasandora
7E0234 to 7E0235 = Town technology level - Aitos
7E0236 to 7E0237 = Town technology level - Marahna
7E0238 to 7E0239 = Town technology level - Northwall
7E023A to 7E023B = Number of offerings - Fillmore
7E023C to 7E023D = Number of offerings - Bloodpool
7E023E to 7E023F = Number of offerings - Kasandora
7E0240 to 7E0241 = Number of offerings - Aitos
7E0242 to 7E0243 = Number of offerings - Marahna
7E0244 to 7E0245 = Number of offerings - Northwall
          7E0246 = ??? - Fillmore
          7E0247 = ??? - Bloodpool
          7E0248 = ??? - Kasandora
          7E0249 = ??? - Aitos
          7E024A = ??? - Marahna
          7E024B = ??? - Northwall
7E024C to 7E0254 = Offerings - Fillmore
7E0255 to 7E025D = Offerings - Bloodpool
7E025E to 7E0266 = Offerings - Kasandora
7E0267 to 7E026F = Offerings - Aitos
7E0270 to 7E0278 = Offerings - Marahna
7E0279 to 7E0281 = Offerings - Northwall
7E0282 to 7E0283 = Angel - Current SP
7E0284 to 7E0285 = Angel - Max SP
          7E0286 = Angel - Current HP
          7E0287 = Angel - Max HP
7E0288 to 7E0290 = Master - Name
7E0291 to 7E0292 = Master - Level
7E0293 to 7E0294 = Master - HP
7E0295 to 7E0296 = Master - MP
7E0297 to 7E0298 = Master - Population required for next level
7E0299 to 7E02A1 = Master - Magic inventory
7E02A2 to 7E02AA = Master - Offerings inventory
          7E02AB = Master - Number of lives

7E02B3 to 7E02B4 = Platformer score record - Fillmore, Act I
7E02B5 to 7E02B6 = Platformer score record - Fillmore, Act II
7E02B7 to 7E02B8 = Platformer score record - Bloodpool, Act I
7E02B9 to 7E02BA = Platformer score record - Bloodpool, Act II
7E02BB to 7E02BC = Platformer score record - Kasandora, Act I
7E02BD to 7E02BE = Platformer score record - Kasandora, Act II
7E02BF to 7E02C0 = Platformer score record - Aitos, Act I
7E02C1 to 7E02C2 = Platformer score record - Aitos, Act II
7E02C3 to 7E02C4 = Platformer score record - Marahna, Act I
7E02C5 to 7E02C6 = Platformer score record - Marahna, Act II
7E02C7 to 7E02C8 = Platformer score record - Northwall, Act I
7E02C9 to 7E02CA = Platformer score record - Northwall, Act II

7E0314 to 7E0315 = Palace - Map rotation (used by platform stage intro zoom-in)
7E0316 to 7E0317 = Palace - Zoom level (current)
7E0318 to 7E0319 = Palace - Zoom level (target)

          7E033E = When inside a temple, which action to carry out
                     00 = Give an Oracle (same as "Take an Offering", except for the name)
                     01 = Let us Listen
                     02 = Take an Offering

          7E0341 = Current town

          7E0347 = 0x7 after completing Death Heim (used by ending sequence stuff)?

          7E035A = Low eight bits of accumulator at last COP instruction
          7E035B = Low eight bits of accumulator at last BRK instruction



          7E06A0 = Root of a table with 0x12-byte entries?
                   Used by menu icons?
                   Has at least 0x30 entries...



7E0B30 to 7E0B55 = Statistics for current monster from local lair #1
7E0B56 to 7E0B7B = Statistics for current monster from local lair #2
7E0B7C to 7E0BA1 = Statistics for current monster from local lair #3
7E0BA2 to 7E0BC7 = Statistics for current monster from local lair #4

7E2000 to 7E20FF = Decompression - Sliding window

7E4000 to ------ = Map metadata [01 00] for current map
7E5000 to ------ = Map metadata [01 01] for current map
7E6000 to 7E7FFF = WRAM storage for map metadata [80] (graphics) <-- Unsure about end address



7F2000 to ------ = Arrangement for current map?



7F6800 to ------ = Related to which roads have been constructed?
                   One word for each 4x4 block, where 1 is the width
                     of a road.
                   Setting the 0x40 bit of a word obstructs the 
                     "building direction" selector.
                   Setting the 0x200 bit of a word makes a 4x4 block
                     show the "obstacle" layer instead of "base".
                   [29 38] = Single road straight up
                   [38 F8] = Crossroads
                   [3A C8] = Single road straight across
                   Doesn't seem to change when houses are built...

                   I think this is ordered by town? The first 0x80 
                   bytes for Fillmore, the next for Bloodpool, etc.



7F6B18 to 7F6B19 = Number of platformer Acts completed - Fillmore
7F6B1A to 7F6B1B = Number of platformer Acts completed - Bloodpool
7F6B1C to 7F6B1D = Number of platformer Acts completed - Kasandora
7F6B1E to 7F6B1F = Number of platformer Acts completed - Aitos
7F6B20 to 7F6B21 = Number of platformer Acts completed - Marahna
7F6B22 to 7F6B23 = Number of platformer Acts completed - Northwall



7F6B9F to 7F6BA0 = Building Direction highlight, X position - Fillmore
7F6BA1 to 7F6BA2 = Building Direction highlight, X position - Bloodpool
7F6BA3 to 7F6BA4 = Building Direction highlight, X position - Kasandora
7F6BA5 to 7F6BA6 = Building Direction highlight, X position - Aitos
7F6BA7 to 7F6BA8 = Building Direction highlight, X position - Marahna
7F6BA9 to 7F6BAA = Building Direction highlight, X position - Northwall
7F6BAB to 7F6BAC = Building Direction highlight, Y position - Fillmore
7F6BAD to 7F6BAE = Building Direction highlight, Y position - Bloodpool
7F6BAF to 7F6BB0 = Building Direction highlight, Y position - Kasandora
7F6BB1 to 7F6BB2 = Building Direction highlight, Y position - Aitos
7F6BB3 to 7F6BB4 = Building Direction highlight, Y position - Marahna
7F6BB5 to 7F6BB6 = Building Direction highlight, Y position - Northwall

7F6BE7 to 7F77E6 = ???, existence attested to by 03/A784

          7F9101 = Flags
                     0x01 = Death Heim related?
                     0x02 = Death Heim related?

          7F910B = Flags
                     0x20 = Bloodpool has bridge technology?

7F9250 to 7F954F = ???, existence attested to by 03/A79C

7F9568 to 7F9597 = Monster Lairs - X position on town map
7F9598 to 7F95C7 = Monster Lairs - Y position on town map
7F95C8 to 7F95F7 = Monster Lairs - Lair image
7F95F8 to 7F9627 = Monster Lairs - Monster type
7F9628 to 7F9657 = Monster Lairs - Delay between defeat and respawn
7F9658 to 7F9687 = Monster Lairs - Decrementing count of time between defeat and respawn
7F9688 to 7F96B7 = Monster Lairs - WRAM address of current monster statistics
7F96B8 to 7F96E7 = Monster Lairs - Number of monsters remaining

          7F9750 = When nonzero, displays the first-two-people lightning sequence once and becomes zero

7F9EFA to 7F9EFB = Town growth points - Fillmore
7F9EFC to 7F9EFD = Town growth points - Bloodpool
7F9EFE to 7F9EFF = Town growth points - Kasandora
7F9F00 to 7F9F01 = Town growth points - Aitos
7F9F02 to 7F9F03 = Town growth points - Marahna
7F9F04 to 7F9F05 = Town growth points - Northwall

7FB000 to 7FB7FF = BG3 tilemap (B000-00FF or B000-B6BF is visible, depending on $F1)

.............................................................................

Lair Images
-----------
Lair images 07 through 0A are used exclusively in Northwall.
I have no idea why.

  00 = Cave       (Bloodpool)
  01 = Castle     (Bloodpool)
  02 = Great Tree (Northwall)
  03 = Lair - X
  04 = Lair - O
  05 = Lair - Bat
  06 = Lair - Diamond
  07 = Lair - X
  08 = Lair - O
  09 = Lair - Diamond
  0A = Lair - Diamond
  0B = N/A
  0C = N/A
  0D = N/A
  0E = Hole    (Fillmore)
  0F = Pyramid (Kasandora)
  10 = Temple  (Marahna)


Monster Types
-------------
  12 = Blue Dragon
  13 = Napper Bat
  14 = Red Demon
  15 = Skull Head


Monster Lair Index
------------------
  00 = Fillmore   Blue Dragon  (southwest)
  02 = Fillmore   Napper Bat   (northeast)
  04 = Fillmore   Napper Bat   (south)
  06 = Fillmore   Napper Bat   (northwest)
  08 = Bloodpool  Red Demon    (southwest)
  0A = Bloodpool  Napper Bat   (northwest)
  0C = Bloodpool  Blue Dragon  (south)
  0E = Bloodpool  Blue Dragon  (east)
  10 = Kasandora  Blue Dragon  (northeast)
  12 = Kasandora  Red Demon    (north)
  14 = Kasandora  Red Demon    (southeast)
  16 = Kasandora  Napper Bat   (center)
  18 = Aitos      Blue Dragon  (northwest)
  1A = Aitos      Skull Head   (west)
  1C = Aitos      Blue Dragon  (northeast)
  1E = Aitos      Blue Dragon  (southwest)
  20 = Marahna    Red Demon    (northwest)
  22 = Marahna    Napper Bat   (southwest)
  24 = Marahna    Blue Dragon  (southeast)
  26 = Marahna    Blue Dragon  (west)
  28 = Northwall  Skull Head   (east)
  2A = Northwall  Skull Head   (north)
  2C = Northwall  Blue Dragon  (south)
  2E = Northwall  Red Demon    (northwest)


Town growth rates
-----------------
  00 = None
  01 = Stop
  02 = Slow
  03 = Norm
  04 = Fast
  05 = Max


Town growth points
------------------
  Town growth points are acquired by defeating monsters and sealing Monster Lairs.
  They are spent when buildings are built.