Snake Rattle 'n' Roll (ROM offset)

From AcmlmWiki

Jump to: navigation, search
This page is uncategorized. Please introduce categories that relate to it into the article. (See AcmlmWiki:Project Category)


Take caution, below info is being steadily researched on at this moment!

Level 1, where the bytes between $0x0063dd and $0x0063e3 have been modified. Note that the "Checkers" piece isn't behind the pillar due to the game not expecting objects to go behind scenery.
Level 1, where the bytes between $0x0063dd and $0x0063e3 have been modified. Note that the "Checkers" piece isn't behind the pillar due to the game not expecting objects to go behind scenery.
Each row x is 64 bytes.
$63D0 Main area data starts (the most left tile on the first level, barely visible on the screen)
$73CF Main area data ends (the most right tile on the end of the second level, also barely visible)
$73D0 The mushrooms in level 2 acts odd. Quite suspecting considering that it's the byte after the main area data...
I suspect that the data for the othera area is seperated from the main one, such as the bonus, underwater and arctic area.
$63cf This byte is B6, it seems to just mean "end of the text". Changing it just make the game barf.

How the game generate the area from the area data in the game. (if the area was 4x4)
In hex editor:
ABCD
EFGH
IJKL
MNOP

In the game:

MNOP
IJKL
EFGH
ABCD
----
Tiles
----
Water, Elevated water have waterfall along it's walls, and also have currents (how currents works is unknown at the moment).
Ground, the regular chess patterned ground. It's palette varies with the levels.
Spike, thoose sharp things you see everywhere in the game
Lspike, alternate spike, only looks good next to ground.
YBrick, appears as Yellow brick on the first level. (Might vary with level!)
----
Note that tiles marked as "Too high" will be researched further, probably on another level.
.
$00 = Water	level 0
$01 = Ground	level 1
$02 = Ground	level 4
$03 = Spike	level high (can't see the top... it's cut off.)
$04 = Ground	level 2
$05 = Lspike	level 3
$06 = Ground	level 12 (might be inaccurate!)
$07 = Ground	level 14 (used previous pillar as reference)
$08 = Lspike	level too high (Looks glitched, but only becuse Lspike needs to be next to a level-1 tile to look any good.)
$09 = Dspike	level too high
$0A = Dspike	level high
$0B = YBrick	level high
$0C = Dspike	level 4
$0D = YBrick	level high
$0E = Water	level high
$0F = Dspike	level 6
$10 = YBrick	level high
$11 = Lspike	level high
$12 = Dspike	level high
$13 = ground	level 5
$14 = Ybrick	level high
$15 = Ybrick	level high
$16 = Dspike	level high
$17 = water	level high
$18 = Dspike	level can see the top (quite high)
$19 = Ybrick	level high
$1a = Lspike	level 2
$23 = Water	level 3
$2f = GroundC	level 5
$3F = Ground	level 3
$41 = Water	level 3

----
TODO
----
* Study the intresting tiles in the sixth line before going the brute force way...)
* Level 1-10 (and probably 11 too) is stored as one level (I just prove this by replacing every byte between $0x0063D and $0x0063D0 with 01.) Bonus/underwater levels might be stored seperatly, but not too sure about that.
* Each level probably have a seperate header for music/pallete and info about the sprites appearing on the levels. Better find thoose.
* The height of the "too high" tiles should be replaced with their proper value... now if I only saw a pattern in this.

For anything that seems unclear, please ask Ailure.

Personal tools