The Little Mermaid/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
No edit summary
No edit summary
Line 10: Line 10:
|-
|-
|0x0016||PAD1 input||All current input
|0x0016||PAD1 input||All current input
*0x80 = A
*0x'''8'''0 = A
*0x40 = B
*0x'''4'''0 = B
*0x20 = Select
*0x'''2'''0 = Select
*0x10 = Start
*0x'''1'''0 = Start
*0x08 = Up
*0x0'''8''' = Up
*0x04 = Down
*0x0'''4''' = Down
*0x02 = Left
*0x0'''2''' = Left
*0x01 = Right
*0x0'''1''' = Right
|-
|-
|0x0017||PAD2 input||All current input
|0x0017||PAD2 input||All current input
Line 35: Line 35:
|-
|-
|0x0050||Room info||
|0x0050||Room info||
*0x80 = Scrolls upward
*0x'''8'''0 = Scrolls upward
*0x40 = Scrolls downward
*0x'''4'''0 = Scrolls downward
*Empty high bit = Scrolls horizontally
*0x'''0'''0 = Scrolls horizontally
*0x0F = Room #
*0x0'''F''' = Room #
|-
|-
|0x0051||Size of current room||
|0x0051||Size of current room||
|-
|-
|0x0052||Position in current room||
|0x0052||Position in current room||256/240 pixel segments depending on horizontal or vertical scrolling
|-
|-
|0x0070 - 0x0071||Address of layout for current stage||
|0x0070 - 0x0071||Address of layout for current stage||
Line 61: Line 61:
|-
|-
|0x00EF||Current object slot||Used in [[The_Little_Mermaid:ROM_map#Function_0x8000|Function 0x8000 (Page 6)]]
|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
|-
|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 - 0x01FF||Stack||
|0x0100 - 0x01FF||Stack||
|-
|-
|0x0300 - 0x030F||Object Phase||
|0x0300 - 0x030F||Object Phase||
*0x80 = slot occupied  
*0x'''8'''0 = slot occupied  
*0x0F = phase within script
*0x0'''F''' = phase within script
|-
|-
|0x0310 - 0x031F||Object ID||Determines object's behavior
|0x0310 - 0x031F||Object ID||Determines object's behavior
Line 91: Line 103:
|-
|-
|0x03C0 - 0x03CF||Attributes||
|0x03C0 - 0x03CF||Attributes||
*0x40 = damage hitbox active
*0x'''4'''0 = damage hitbox active
*0x20 = able to be bubbled
*0x'''2'''0 = 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.
|0x03D0 - 0x03DF||Direction of movement||Speed values above are scalar. They are used in conjunction with this value to determine velocity.
*0x08 = up
*0x0'''8''' = up
*0x04 = down
*0x0'''4''' = down
*0x02 = right
*0x0'''2''' = right
*0x01 = left
*0x0'''1''' = left
|-
|-
|0x03F0 - 0x03FF||HP||
|0x03F0 - 0x03FF||HP||
|-
|-
|0x0400 - 0x040F||Sprite orientation||
|0x0400 - 0x040F||Sprite orientation||
*0x40 = Horizontal flip (face left)
*0x'''4'''0 = Horizontal flip (face left)
*0x04 = invisible
*0x0'''4''' = invisible
|-
|-
|0x0430 - 0x043F||Graphic ID||Determines object's animation loop
|0x0430 - 0x043F||Graphic ID||Determines object's animation loop

Revision as of 06:15, 29 December 2018

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
0x0070 - 0x0071 Address of layout for current stage
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 - 0x01FF 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