Sega Master System / Mark III / Game Gear
ATTENTION: THIS PROGRAM MADE BY YASUSHI MITAMURA 05/20/1991.WOW !! 05/20 IS BIRTHDAY !! CONGURATURATIONS !! PLEASE GOOD JOB.( MAKING CHARACTER / PROGRAMING / PRANNING / OTHERS )CALL ME. 03-3413-6861(JAPAN)
The level data for Slider can be found at offset $18000 in the Slider (Export) ROM. The Skweek (JP) rom seems to be the same.
The first 198 bytes are the pointers to the 99 levels. After the pointers, the actual level data starts.
Levels are made up by 32 columns × 7 rows of tiles of 16×16 pixels each. They are stored in rom with simple RLE compression:
A single byte is in the form
where dddddd is the tile number (6 bits, 0-63) and nn is the repeat count - 1. There is no row ending marker so a run can go from the end of one row to the start of the next.
Data is stored from right to left, top to bottom.
Out of the 64 possible tile indexes, only 0 to 47 are used for the level data, and some of those values aren't even actually used in the stored maps, as they are transitional values which appear temporarily in ram e.g. when you change a tile from blue to pink, or when you destroy a wall with the laser. Indexes 48 to 63 are used for some pieces of the HUD; they can be placed into a map just fine (even though, of course, none of the existing maps use them), and they will be treated like walls (Slider won't be able to walk on them).
Tiles 32 and 33 are duplicates of tiles 35 and 36, with the difference that 35 and 36 will appear on the foreground (hiding Slider), while 32 and 33 will appear on the background; only tile 33 has the power to hurt Slider (other than the blank tile 0). Tiles 37, 38, and 39, are duplicates of the blank tile 0, but Slider can walk on them; they're not used in any level (to my knowledge), and they're probably unused tiles.
The pointers to the song data are at $C9B2. The first 10 of them are valid (the 10th song is unused, by the way), and there are 4 more but they point to blank/invalid entries.
Offsets refer to Slider, Skweek uses the same passwords but data may be at different offsets.
Passwords are stored in ASCII from $6cf6 to $75e5 (2288 bytes for 572 passwords for 99 levels). They are in alphabetical order. The level corresponding to each password is stored in an array between $6aba and $6cf5. This is a remarkably inefficient way of managing level passwords.