The Secret Level Editor in Maze Madness is an in-house editor that was used by the designers to create the game's levels. In its final game state, it allows single caves to be saved and loaded. The editor can be opened with ScummVM by using Control-D, and then typing "room 5." It can also be opened by going into hegames.ini on C:\Windows, adding "RhettCool=1" under [Maze], then entering the game and pressing the "E" key while viewing the standard editor. This file can be accessed in the Steam version as well. It is called "scummvm-freddimazemadness.ini" in the folder "Steam\steamapps\common\Freddi Fish and Luthers Maze Madness\ScummVM_Windows".
Game levels are stored in the MAZE.he8 game data file. The file has the following structure:
300 x [CAVE DATA] 706B (0x2C2) lower_level 176 shorts 352B background 1 short 2B upper_level 176 shorts 352B
lower_level: Each short codes for a wall or an object (kelp seed, urchin, etc.). There is one short for each square on the level grid; the first short codes for the upper left and subsequent shorts proceed right across the rows. There are 16 squares in each row and 11 rows.
background: Codes for one of five background images
upper_level: Each short codes for an arch, shovel and pail, valve, or other swim-through object. Follows the same square pattern as the lower_level block. Note that some upper_level objects span several squares which can cause unexpected behavior if objects overlap.
The cave data block is repeated 300 times, six times for each of the 50 levels (each level is thus 4236B, 0x108C). The first five cave data blocks for each level are standard caves; the sixth is for the bonus cave. Thus despite the fact the game only has bonus caves every 5 levels by default, it is possible to have a bonus cave on every single level. Levels always start in cave 1 (the level's first cave data block in MAZE.he8), so the start must always be placed in cave 1 and never in caves 2 through 5. The bonus cave, if used, must have a start square.
The editor can only save one cave at a time. Thus in order to create a full level, all the level's caves must be created and saved separately. The level's caves must then be assembled in order and copied into the MAZE.he8 file. The only way to test custom levels is to overwrite the game's existing levels, so the file should be copied prior to editing so that the original levels may be restored if desired. If a level does not use all of the 5 available caves, the remaining cave data blocks may be left blank (filled with 706 null bytes). If a level does not use a bonus cave, that cave data block may be left blank.
It is advisable to copy all six cave data blocks for a given level into a single file, save that file, and then copy the entire level into MAZE.he8 in order to avoid errors. A hex editor should be used to edit MAZE.he8 so that level offsets are easy to find.
A full level takes 108C size of data.
Offsets for each level are as follows;
1 0 2 108C 3 2118 4 31A4 5 4230 6 52BC 7 6348 8 73D4 9 8460 10 94EC 11 A578 12 B604 13 C690 14 D71C 15 E7A8 16 F834 17 108C0 18 1194C 19 129D8 20 13A64 21 14AF0 22 15B7C 23 16C08 24 17C94 25 18D20 26 19DAC 27 1AE38 28 1BEC4 29 1CF50 30 1DFDC 31 1F068 32 200F4 33 21180 34 2220C 35 23298 36 24324 37 253B0 38 2643C 39 274C8 40 28554 41 295E0 42 2A66C 43 2B6F8 44 2C784 45 2D810 46 2E89C 47 2F928 48 309B4 49 31A40 50 32ACC End of file: 33B58
Walls[]
Walls can be tricky to use in the editor. Here is a guide on the arrangements of tiles of each set both with and without grid.
Most sets follow the same arrangement, but there are a few versions and exceptions. These arrangements are numbered, the same number being the same arrangement, with a few exceptions, such as the Sand tileset having the lone tile at the very end instead of in the middle between the blank tiles. Also, a few tilesets don't have these blank tiles and instead go right to the second wall portion (which are alternative aesthetical tiles). The ship tileset also has a bunch of solid tiles at the very end. The bonus room tileset has a lot of tiles that look similar, but they are actually different and do correspond with the pink guidelines above the tiles (missing only single pixels in corners, it really isn't that big of a deal but it's there nonetheless). Also note that the empty wall tiles do have collision, thus making it possible to have invisible walls.
Decorations[]
Decorations can also be tricky to use since the editor doesn't show them clearly in the selector, and many take up more than one tile. Fortunately, each decoration will switch to the corresponding tileset automatically. Each decoration will be placed with the tile shown in the selector at the mouse cursor, which usually is the top-left most tile of the respective decoration, but there are exceptions. Keep in mind to never place decorations that go beyond the bottom of the screen, this can and will mess things up, and it can be hard to reverse this (basically needing to manually editing hex values yourself). No decoration is taller than 3 tiles, so always keep this in mind when placing near or at the bottom.
Here is a guide of all the pieces per set.
Backgrounds[]
In the secret editor you can choose which backgrounds each room/level uses, as opposed to it being selected automatically like in the regular editor. However, the background selector in the secret editor is glitchy and thus it can be hard to figure out which background is which. Here is a helpful image of what background is which, and in which official levels they're used.
Backgrounds 1 and 8 are identical.
Backgrounds 4 and 10 are never used in the official levels.
Additional Notes[]
- The game makers used this editor for the official game levels.
- Music is selected by the wall style- the wall in the uppermost left hand corner determines the music. [1]
- Unlike the regular editor, you can surpass the 40 object limit. However, doing this will cause random objects to not load while playing, so it is highly recommended to never go beyond 40 objects. This does not include invisible objects like the scepter spawning tiles (though as long as 40 objects are present, the scepter will not spawn, though the sound still plays), the currents, the bubble rapids and geysers (though they won't animate on their own), Freddi's spawning point (contrary to the normal editor), or the cave exits (but the exit notifications won't show up), but does include the bonus level crack/portal and any visible object, enemy, or pickup. The bonus figures won't appear as long as the limit has been reached, however, sometimes they still won't appear after the object count has been reduced. Pearls won't spawn from containers until the count has been decreased, spawning only as many pearls until the limit has been reached or all pearls have been released. Wall tiles and decorations also don't count as objects and can thus be placed without restrictions.
- It has been erroneously claimed that the editor cannot be used with ScummVM or Steam. While it is a bit more involved, it is still possible.
- ScummVM deflates levels using gzip prior to saving. Levels saved with ScummVM must thus be decompressed prior to insertion in the MAZE.he8 file.
- In the Steam version, your levels are saved in the folder "Steam\steamapps\common\Freddi Fish and Luthers Maze Madness\Saves".
- After saving a level, add .gz extension to the file and then use any zip extractor to extract it. Now you can use that file to paste into your custom Maze.he8 file to play your levels!
- You can alternatively write level data by hand in your hex editor, byte by byte, and load your rooms into the secret editor to confirm that they are how you want them.
- There are two crabs in the enemy list and no blowfish. The second crab actually represents the blowfish.
- Swinging doors are oriented such that the hinge is positioned at the narrow end. Swinging doors always swing through the square on which they are placed in the editor.
- Narrow "cave to x" squares are used for caves which are positioned on the side walls. Wide "cave to x" squares are used for caves positioned on the top and bottom walls. These caves may also be placed on middle walls; in this case, wide squares are for caves meant to be entered from above or below and narrow caves are used for caves meant to be entered from the left or right.
- An open-source variant of the editor is available on GitHub.
Video tutorial[]
YouTuber Colorful Arty created a tutorial on using the secret editor.