Tool-assisted game movies
When human skills are just not enough

Game Resources / NES / Snake Rattle N Roll



RAM Addresses

Address Set #9: Snake Rattle 'n' Roll
System: Nintendo Entertainment System
Download .wch file for: BizHawk
Domain Address Data Type Signed Endian Description
RAM 0067 Byte Unsigned Big Position in dimension 1
RAM 0069 Byte Unsigned Big Position in dimension 2
RAM 006B Byte Unsigned Big Position in dimension 3 (the jumping and falling dimension)
RAM 03F9 Byte Unsigned Big Eaten nibbly-pibbly color 1
RAM 03FB Byte Unsigned Big Eaten nibbly-pibbly color 2
RAM 03FD Byte Unsigned Big Eaten nibbly-pibbly color 3
RAM 053B Byte Unsigned Big Sub position in dimension 1
RAM 054F Byte Unsigned Big Sub position in dimension 2
RAM 0563 Byte Unsigned Big Sub position in dimension 3
RAM 0620 Byte Unsigned Big Health of final boss

Weight system

The color of the Nibly-pibbly you eat determines how how much weight you'll put on:

You need 4 points for each body piece you put on. The scale at the end of the levels doesn't count the exact number of points, though, to determine if you're heavy enough. It instead just counts the number of body pieces that you have (excluding the head). In the first and second levels you need 4 body pieces to ring the bell. In all levels between 3-9 that have scales you need 5 body pieces. In level 10 you need 6.

Facing the opposite direction that you're moving:

If you build up velocity in the certain direction and immediately push in the opposite direction you'll deaccelerate while still facing the same way. But if you have one frame of no input before pushing in the other direction, you'll face the way in which you're breaking.

Getting ejected up platforms and double jumping:

If you push yourself against a platform and jump up on it, it'll be enough if your position - in the jumping dimension - is less 6 pixels under the platform you're aiming for. Then you'll get ejected the last pixels. The most useful thing about this is a related bug that works in such a way that if you push the jump button at the frame when you're getting ejected, you'll immediately jump again.

Game map


Simple HUD script

dim1speed = 0
dim2speed = 0
xspeed    = 0
xsubspeed = 0
yspeed    = 0
ysubspeed = 0
function stuff()
	xspeed    = memory.readbyte(0x417)
	xsubspeed = memory.readbyte(0x419)
	if (xspeed == 255) then xspeed = -1 end
	yspeed    = memory.readbyte(0x41b)
	ysubspeed = memory.readbyte(0x41d)
	if (yspeed == 255) then yspeed = -1 end

	gui.text(1,9 ,"L:"..memory.readbyte(0x67) % 16) -- left axis
	gui.text(1,19,"R:"..memory.readbyte(0x69) % 16) -- right axis
	gui.text(1,29,"H:"..memory.readbyte(0x6b) % 16)	-- height axis
	gui.text(30,9, "LVel:"..(xspeed * 256) + xsubspeed + (yspeed * 256) + ysubspeed)
	gui.text(30,19,"RVel:"..(xspeed * 256) + xsubspeed - (yspeed * 256) - ysubspeed)

See also

Combined RSS Feed
GameResources/NES/SnakeRattleNRoll last edited by Brandon on 2012-11-25 07:14:31
Page info and history | Latest diff | List referrers | View Source