The Little Mermaid/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
No edit summary
 
(23 intermediate revisions by 2 users not shown)
Line 2: Line 2:
{| border="1" cellpadding="1"
{| border="1" cellpadding="1"
|'''RAM'''||'''Function'''||'''Details'''
|'''RAM'''||'''Function'''||'''Details'''
|-
|0x0000 - 0x0001||Pointer address||Used to jump to specific section
|-
|0x0014||PAD1 new input||Input new to current frame
|-
|0x0015||PAD2 new input||Input new to current frame
|-
|0x0016||PAD1 input||All current input
*0x'''8'''0 = A
*0x'''4'''0 = B
*0x'''2'''0 = Select
*0x'''1'''0 = Start
*0x0'''8''' = Up
*0x0'''4''' = Down
*0x0'''2''' = Left
*0x0'''1''' = Right
|-
|0x0017||PAD2 input||All current input
|-
|0x0030||Ariel's current action||
*0x00 = Still/moving
*0x01 = Turning
*0x03 = Shooting bubble/throwing object
*0x07 = Taking damage/dying
*0x09 = Entering stage
|-
|0x0031||Ariel's direction of movement||
|-
|-
|0x003A||Object being held||# of object slot
|0x003A||Object being held||# of object slot
|-
|0x003B||A button timer (bubbles/throw)||
|-
|0x0050||Room info||
*0x'''8'''0 = Scrolls upward
*0x'''4'''0 = Scrolls downward
*0x'''0'''0 = Scrolls horizontally
*0x0'''F''' = Room #
|-
|0x0051||Size of current room||
|-
|0x0052||Position in current room||256/240 pixel segments depending on horizontal or vertical scrolling
|-
|0x0092||Global timer||
|-
|-
|0X00B0||Lives||
|0X00B0||Lives||
Line 13: Line 54:
|0x00B5||Bubble range||
|0x00B5||Bubble range||
|-
|-
|0X00E4 - 0X00E7||RNG Seed||Fibonacci LFSR (Function 0xC250)
|0X00E4 - 0X00E7||RNG Seed||Fibonacci LFSR (Function [[The Little Mermaid:ROM map#Function 0xC250|0xC250]])
|-
|0x00E9||Current stage||
|-
|0x00EF||Current object slot||Used in [[The Little Mermaid:ROM map#Function 0x8000|Function 0x8000 (Page 6)]]
|-
|0x00F7||Screen x-pos within current room segment||
|-
|0x00F8||Screen y-pos within current room segment||
|-
|0x00FA||Screen y-pos (high byte)||240 pixels per segment
|-
|-
|0x0100 - 0x01FF||Stack||
|0x00FB||Screen y-pos (low byte)||pixels
|-
|-
|0x0300 - 0x030F||Object Phase||0x80 = slot occupied, 0x0F = phase within script
|0x00FC||Screen x-pos (high byte)||256 pixels per segment
|-
|-
|0x0310 - 0x031F||Object ID||Determines object's behavior||
|0x00FD||Screen x-pos (low byte)||pixels
|-
|0x0100 - 0x01BF||Stack||
|-
|0x0300 - 0x030F||Object Phase||
*0x'''8'''0 = slot occupied
*0x0'''F''' = phase within script
|-
|0x0310 - 0x031F||Object ID||Determines object's behavior
|-
|-
|0x0320 - 0x032F||y-position subpixel||
|0x0320 - 0x032F||y-position subpixel||
Line 41: Line 100:
|0x03B0 - 0x03BF||y-speed high byte (pixels/frame)||
|0x03B0 - 0x03BF||y-speed high byte (pixels/frame)||
|-
|-
|0x03C0 - 0x03CF||Attributes||0x40 = damage hitbox active, 0x20 = able to be bubbled
|0x03C0 - 0x03CF||Attributes||
*0x'''4'''0 = damage hitbox active
*0x'''2'''0 = able to be bubbled
|-
|-
|0x03D0 - 0x03DF||Direction of movement||0x01 = left, 0x02 = right
|0x03D0 - 0x03DF||Direction of movement||Speed values above are scalar. They are used in conjunction with this value to determine velocity.
*0x0'''8''' = up
*0x0'''4''' = down
*0x0'''2''' = right
*0x0'''1''' = left
|-
|-
|0x03F0 - 0x03FF||HP||
|0x03F0 - 0x03FF||HP||
|-
|-
|0x0400 - 0x040F||Sprite orientation||0x04 = invisible
|0x0400 - 0x040F||Sprite orientation||
*0x'''4'''0 = Horizontal flip (face left)
*0x0'''4''' = invisible
|-
|-
|0x0430 - 0x043F||Graphic ID||Determines object's animation loop
|0x0430 - 0x043F||Graphic ID||Determines object's animation loop
|-
|-
|0x0460 - 0x046F||Timer 1||Use depends on object
|0x0460 - 0x046F||Counter 1||Use depends on object
|-
|0x0470 - 0x047F||Counter 2||Use depends on object
|-
|-
|0x0470 - 0x047F||Timer 2||Use depends on object
|0x0480 - 0x048F||Counter 3||Use depends on object
|-
|-
|0x0480 - 0x048F||Timer 3||Use depends on object
|0x0490 - 0x049F||Counter 4||Use depends on object
|-
|-
|0x04A0 - 0x04AF||Stun timer||Actions/animation paused until zero
|0x04A0 - 0x04AF||Stun timer||Actions/animation paused while nonzero
|-
|-
|0x0620 - 0x063F||Current color palettes||
|0x0620 - 0x063F||Current color palettes||
{{Internal Data}}

Latest revision as of 14:34, 24 January 2024

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

RAM Function Details
0x0000 - 0x0001 Pointer address Used to jump to specific section
0x0014 PAD1 new input Input new to current frame
0x0015 PAD2 new input Input new to current frame
0x0016 PAD1 input All current input
  • 0x80 = A
  • 0x40 = B
  • 0x20 = Select
  • 0x10 = Start
  • 0x08 = Up
  • 0x04 = Down
  • 0x02 = Left
  • 0x01 = Right
0x0017 PAD2 input All current input
0x0030 Ariel's current action
  • 0x00 = Still/moving
  • 0x01 = Turning
  • 0x03 = Shooting bubble/throwing object
  • 0x07 = Taking damage/dying
  • 0x09 = Entering stage
0x0031 Ariel's direction of movement
0x003A Object being held # of object slot
0x003B A button timer (bubbles/throw)
0x0050 Room info
  • 0x80 = Scrolls upward
  • 0x40 = Scrolls downward
  • 0x00 = Scrolls horizontally
  • 0x0F = Room #
0x0051 Size of current room
0x0052 Position in current room 256/240 pixel segments depending on horizontal or vertical scrolling
0x0092 Global timer
0X00B0 Lives
0X00B1 Health
0x00B4 Bubble power
0x00B5 Bubble range
0X00E4 - 0X00E7 RNG Seed Fibonacci LFSR (Function 0xC250)
0x00E9 Current stage
0x00EF Current object slot Used in Function 0x8000 (Page 6)
0x00F7 Screen x-pos within current room segment
0x00F8 Screen y-pos within current room segment
0x00FA Screen y-pos (high byte) 240 pixels per segment
0x00FB Screen y-pos (low byte) pixels
0x00FC Screen x-pos (high byte) 256 pixels per segment
0x00FD Screen x-pos (low byte) pixels
0x0100 - 0x01BF Stack
0x0300 - 0x030F Object Phase
  • 0x80 = slot occupied
  • 0x0F = phase within script
0x0310 - 0x031F Object ID Determines object's behavior
0x0320 - 0x032F y-position subpixel
0x0330 - 0x033F x-position low byte (pixel)
0x0340 - 0x034F x-position high byte
0x0350 - 0x035F y-position subpixel
0x0360 - 0x036F y-position low byte (pixel)
0x0370 - 0x037F y-position high byte
0x0380 - 0x038F x-speed low byte (subpixels/frame)
0x0390 - 0x039F x-speed high byte (pixels/frame)
0x03A0 - 0x03AF y-speed low byte (subpixels/frame)
0x03B0 - 0x03BF y-speed high byte (pixels/frame)
0x03C0 - 0x03CF Attributes
  • 0x40 = damage hitbox active
  • 0x20 = able to be bubbled
0x03D0 - 0x03DF Direction of movement Speed values above are scalar. They are used in conjunction with this value to determine velocity.
  • 0x08 = up
  • 0x04 = down
  • 0x02 = right
  • 0x01 = left
0x03F0 - 0x03FF HP
0x0400 - 0x040F Sprite orientation
  • 0x40 = Horizontal flip (face left)
  • 0x04 = invisible
0x0430 - 0x043F Graphic ID Determines object's animation loop
0x0460 - 0x046F Counter 1 Use depends on object
0x0470 - 0x047F Counter 2 Use depends on object
0x0480 - 0x048F Counter 3 Use depends on object
0x0490 - 0x049F Counter 4 Use depends on object
0x04A0 - 0x04AF Stun timer Actions/animation paused while nonzero
0x0620 - 0x063F Current color palettes