Language…
8 users online: autisticsceptile1993, CrazyPencilDawg, Dan2point5, DanMario24YT, Gamet2004, iamtheratio, Scags, TheOrangeToad - Guests: 262 - Bots: 303
Users: 64,795 (2,378 active)
Latest user: mathew

RAM Values Thread

Link Thread Closed
  • Pages:
  • 1
  • 2
Originally posted by Anti-matter Drone
Perhaps there ought to be a sticky that has all of the values for RAM adresses....

He's right, isn't he? You can all participate, I or a mod/smod/admin will edit it here.

For all flags:
00=False; 01=True

$7E:0015
Controller data 1
01=Right, 02=Left, 04=Down, 08=Up, 10=Start, 20=Select, 00=R and L, 40=Y and X, 80=B and A

$7E:0016
Controller data 1 (one frame)
Same values as above.

$7E:0017
Controller data 2
00=Right, 00=Left, 00=Down, 00=Up, 00=Start, 00=Select, 10=R, 20=L, 00=Y, 40=X, 00=B, 80=A

$7E:0018
Controller data 2 (one frame)
Same values as above.

$7E:0019
Powerup
00=Small Mario; 01=Super Mario; 02=Cape Mario; 03=Fire Mario

$7E:0076
Mario's Direction
00=Left; 01=Right

$7E:007B
Mario's X speed
This value is relative to $00D345, $00D347, $00D349, $00D34A and all other values that effect Mario's X speed. +/-15 is fully walking, +/-30 is fully running. 00-7F is right, 80-FF is left.

$7E:007D
Mario's Y speed
This value is relative to $00D7A5, $00D7A6 and all other values that effect Mario's Y speed. 15 is falling at mid-speed, 30 is falling at max-speed, EB is jumping at mid-speed and D0 is jumping at full speed.

$7E:0100
Game Mode
00 Load Nintendo Presents
01 Nintendo Presents
02 Fade to Title Screen
03 Load Title Screen
04 Prepare Title Screen
05 Title Screen: Fade in
06 Title Screen: Circle effect
07 Title Screen
08 Title Screen: File select
09 Title Screen: File delete
0A Title Screen: Player select
0B Fade to Overworld
0C Load Overworld
0D Overworld: Fade in
0E Overworld
0F Fade to Level
10 Fade to Level (black)
11 Load Level (Mario Start!)
12 Prepare Level
13 Level: Fade in
14 Level
15 Fade to Game Over
16 Fade to Game Over?
17 Game Over
18 Load Credits/Cutscene?
19 Load Credits/Cutscene?
1A Load Credits/Cutscene?
1B Ending: Credits / Cutscene
1C Fade to Yoshi's House
1D Fade to Yoshi's House (black)
1E Ending: Yoshi's House: Fade in
1F Ending: Yoshi's House
20 Fade to Enemies
21 Fade to Enemies (black)
22 Fade to Enemies?
23 Fade to Enemies (black)?
24 Ending: Enemies: Fade in
25 Ending: Enemies
26 Fade to The End / Go to 22
27 Fade to The End (black)
28 Ending: The End: Fade in
29 Ending: The End

$7E:0DC2
Reserved Item(current player)
02 = Fire Flower, 03 = Star, 04 = Cape

$7E:0DB3
Character
00=Mario; 01=Luigi

$7E:0DBC
Mario's Item Box
00=Nothing; 01=Mushroom; 02=Cape; 03=Fire Flower

$7E:0DBD
Luigi's Item Box
00=Nothing; 01=Mushroom; 02=Cape; 03=Fire Flower

$7E:0DC2
Reserved Item (current player)
#$00=None; #$01=Mushroom; #$02=Fire Flower; #$03=Star; #$04=Cape

$7E:0F30
Timer Frame Counter
After this reaches $00, then the game decrements the timer

$7E:0F31
Timer, hundreds' digit ($00 through $09)

$7E:0F32
Timer, tens' digit ($00 through $09)

$7E:0F33
Timer, ones' digit ($00 through $09)

$7E:0F34
Mario Score
1 here = 10 points, because the game draws an extra 0 after the score

$7E:0F37
Luigi Score
Same as above

$7E:14C8 - $7E:14D3
Sprite Status Table
00=Non-existant
01=Initial
02=Killed, falling off screen
03=Smushed
04=Spinjumped
05=Sinking in lava
06=Turn into coin at lvl end
07=Stay in Yoshi's mouth
08=Normal routines
09=Stationary
0A=Kicked
0B=Carried
0C=Powerup from being carried past goaltape.

$7E:17C0 - $7E:17C3 - Smoke images.
00=Nothing
01=Puff of smoke
02=Contact graphic
03=Smoke when Mario turns around abruptly
04=None
05=Glitter sprite

$7E:17F0 - $7E:17FB
Minor Extended Sprites type
00=None
01=Piece of brick block
02=Small star
03=Cracked shell (Yoshi egg)
04=Fireball from Podoboo
05=Small star?
06=Rip van Fish Z tile
07=Water splash
08=Rip van Fish Z tile (unused)
09=Rip van Fish Z tile (unused)
0A=Boo Stream tile
0B=Unused Yoshi smoke

$7E:185C
Mario no ground contact flag
00 = No effect; 01 = Mario falls through all solid objects

$7E:18FD
Whistling Chuck Flag

values in brackets [] mean the probable minimum. ex lowest speed, but still running would be 26 to the right or d1 to the left.
Code
values for $7B
00      = Not Moving
FF-ED   = Max walking Speed left
[EE]-DD = Max medium Speed left
[DE]-D1 = Max running Speed left
01-15   = Max walking Speed right
[16]-25 = Max medium Speed right
[26]-31 = Max running Speed right

>_>
That only has codes that can be inserted into your code.... This would be all the values.... For example, $1471 has values that aren't listed anywhere....

EDIT: Perhaps these ought to be attached to the RAM map (and perhaps ROM map) after the description.... It might take a lot of work but it can be done!
Anyway, just to add some common knowledge (I would put in more but I'm not certain about it....):
For all flags, 00=Not true; 01=True
$7E0019: 00=Small Mario; 01=Super Mario; 02=Cape Mario; 03=Fire Mario
$7E0076: 00=Left; 01=Right
$7E007B: 80=Null value; subtract = +left value; add = +right value
$7E007D: 80=Null value; subtract = +downwards value; add = +upwards value
$7E0DB3: 00=Mario; 01=Luigi
$7E0DBC: 00=Nothing; 01=Mushroom; 02=Cape; 03=Fire Flower
$7E0DBD: 00=Nothing; 01=Mushroom; 02=Cape; 03=Fire Flower
To be continued.... I'm not going to continue this right now though. Smart, eh?
Or..!
Maybe just, ya'know, put it in the ram map...
I've edited it in the first post.
Your layout has been removed.
Added.
I vote sticky too.
Your layout has been removed.
Another vote for sticky
Your layout has been removed.
sticky'd

but should this be moved to SMW Data Repository?
I vote for a move to Data Repository since Smallhacker has a similar thread there for ROM addresses.
I've removed my NoFades patch until I can find the brightness code for Star Road warps.
Sprite Status Table (7E14C8 - 7E14D3)

00 - Non-existant
01 - Initial
02 - Killed, falling off screen
03 - Smushed
04 - Spinjumped
05 - Sinking in lava
06 - Turn into coin at lvl end
07 - In Yoshi's mouth but not swallowed yet?
08 - Normal routines
09 - Stationary
0A - Kicked
0B - Carried
0C - Powerup from being carried past goaltape.
--------> Don't follow "Find Roy's Dignity", my hack. Because it's pretty outdated. <--------
Originally posted by Fuzzyfreak
Sprite Status Table (7E14C8 - 7E14D3)
05 - Sinking in lava


a curiosity: if i take it for a code for level asm, all sprite in the level will be sink like in the lava tile even if they don't fall on the lava?
My deviantART
My Youtube channel
My avatar
Watch, i made a Super Mario 64 level
No, this goes for on-screen sprites only. Since it's a table with 12 slots, one value won't affect all others. If one sprite is touching lava, that doesn't mean the other is too. When you're spriting, you access this with 'LDA $14C8,x', 'STA $14C8,x', etc.
You don't need to do anything, unless you're using the X index for something else. If that's the case, you need to push X onto the stack.

Also, this flag is automatically set when they're touching lava. You could, for example, create additional effects. The code that all sprites that are harmed by lava share, is that a value is set to determine how long they'll sink before disappearing, and another one for how fast they go down. X speed slowdown is also handled here.
--------> Don't follow "Find Roy's Dignity", my hack. Because it's pretty outdated. <--------
Originally posted by Fuzzyfreak
Sprite Status Table (7E14C8 - 7E14D3)
07 - Unused


It's not actually unused state. It's the state while a sprite that won't be swallowed immediately is staying in Yoshi's mouth.
Oh ok, sorry, I took that straight off all.log (pretty much all values but 05)
--------> Don't follow "Find Roy's Dignity", my hack. Because it's pretty outdated. <--------
oh another curiosity:
in the RAM map, we have both "yoshi stomps" and "yoshi flies" abilites.

so is missing "yoshi spit fire" abilites :(

i have intention to join these abilites, but i don't know the RAM address of "yoshi spit fire"

someone can suggest me this

thanks in advance
(LOL i know that this is not a RAM value request, but i don't want to post a pointless theard XO)
My deviantART
My Youtube channel
My avatar
Watch, i made a Super Mario 64 level
smwcentral icon$0DC2
Reserved Item(current player)
#$02 = Fire Flower #$03 = Star, #$04 = Cape
I know it's odd but it's true. I was doing a request when I stumbled upon these values.
You know, it would be cool if someone made a sword sprite(s) and released it to the public. That would help a lot of people........ Now that I think about it, that would be perfect for C3! (Not that I could program a sword sprite)
VEY THANKS FOR THIS LIST. I'VE MADE MY FIRST BLOCK EVER!!!!
Fierce Deity is cool.
Workin' in OW request...
Currently attendind Scape Santa, but I don't know what to do...
Our RAM Map now provides the quoted information, but without values for these addresses.

Originally posted by RAM Map
Address (Length) Type Description

$7E:0072 (1 byte) Misc. Mario's image while in the air.

$7E:0F30 (1 byte) Misc. Timer Frame Counter
$7E:0F31 (3 bytes) Misc. Timer
$7E:0F34 (3 bytes) Misc. Mario Score
$7E:0F37 (3 bytes) Misc. Luigi Score



I wanted to check whether Mario is in the air, or on the ground. I found a hint (at ROM Map $00:F878) to use $7E:0072 for this check. I then wrote a custom routine for Level $103 (Yoshi's Island 3), using my local variant of Ersanio's LevelASM, to check if $72 is nonzero, and change the timer.

Thus I learned that $7E:0072 is nonzero while Mario is in the air, but is zero while Mario is on the ground. (Should I try $7E:0077 instead?) I do not know the meanings of the different nonzero values.

I first intended to set the timer to 300 if Mario is in the air, or to 600 if Mario is on the ground. I would set the Mario Score, but I already had a hack to set the Mario Score to the level number. When I tried to set the timer, I met trouble. After several tries, I found the format of the timer.

The format of the timer is very strange. The timer consists of three decimal digits, and each byte seems to contribute one digit. The three bytes come in big-endian order, instead of the usual little-endian order. Am I correct? Other hackers must already know the format of the timer.

The Mario Score seems to be an ordinary 24-bit little-endian integer, though I have only checked values in the range of $000015 through $0001ff. (Donut Plains 1 has score 210, and the goal of Yoshi's Island 4 has score 5110. The game draws an extra 0 after the score.)

If I set the Timer Frame Counter to $00, then the game will immediately decrement the timer, unless the timer has stopped. So if I store $0100 to 7E:0F30 and store $0000 to 7E:0F32, then the timer will read 99 but stop at 100 (and the 100 alarm will sound many times). I guess that the game decrements this counter during each frame, but I still do not know the number of frames for one game second.

I suggest these additions to the descriptions in the RAM Map.


Address (Length) Type Description

$7E:0072 (1 byte) Misc. Mario's image while in the air. This value is nonzero when Mario is in the air, but is zero when Mario is on the ground.

$7E:0F30 (1 byte) Misc. Timer Frame Counter. After this reaches $00, then the game decrements the timer.
$7E:0F31 (1 byte) Misc. Timer, hundreds' digit ($00 through $09)
$7E:0F32 (1 byte) Misc. Timer, tens' digit ($00 through $09)
$7E:0F33 (1 byte) Misc. Timer, ones' digit ($00 through $09)
$7E:0F34 (3 bytes) Misc. Mario Score. 1 here = 10 points, because the game draws an extra 0 after the score.
$7E:0F37 (3 bytes) Misc. Luigi Score

Hacking Super Mario World since 28 February 2009
SMWDISC
Well, I'd personally use $77 instead.

$18FD is apparently the flag for Whistlin' Chuck's whistle. (That's the address the custom Exploding Block sprites used, anyway. I just submitted it in an incorrect format--and twice to boot--because I've never submitted a RAM address and don't quite know the format.)

----------------

I'm working on a hack! Check it out here. Progress: 64/95 levels.
HyperHacker
Originally posted by Kernigh
I guess that the game decrements this counter during each frame, but I still do not know the number of frames for one game second.
60 for NTSC games, 50 for PAL. That's true of just about any game console, though I suspect newer ones (360, PS3, maybe PS2 and Wii) may just render as fast as possible.
My projects - ROM hacks, Gameshark codes, homebrew, useful apps, online 65816 disassembler
SCAM: HomebreWare and Wiiunlocker
Generation over 9000: The first time you see this, put a meme in your signature.
  • Pages:
  • 1
  • 2
Link Thread Closed