Maniac Mansion for the Nintendo Entertainment System uses a simple compression scheme for it's graphics and layouts known as Run Length Encoding (RLE). The encoding makes it very difficult to edit any of the layouts or graphics in the game.
This mod expands the game and decodes all of the encoded data to make it very easy to edit graphics and layouts. The number of tiles for each room is also maximized to make room for new graphics. A lot of space is freed up as a result which makes it easier to edit game objects and text as well. As such, this hack can serve as a base for modifications to Maniac Mansion.
A code example is included which adds a new puzzle chain that modifies existing objects, adds new objects, and adds a whole new room as a final payoff. It does not affect the rest of the game.
The following optional patches are applied by default:
- char_select.ips - Adds rounded corners to the character select screen.
- fridge.ips - Rearranges the fridge to recolor the lettuce green and the batteries brown.
- portraits.ips - Improves the various portraits in the house, including Fred in Edna's room, Edna in Fred's room, Fred in Edna's attic, and the family portrait in the den.
- title_screen.ips - Uses the title screen from the Japanese version, which is based on the C64 graphics. (Not included in default patches, must be applied separately.)
- under_house_enhanced.ips - Improves the post and valve graphics under the house and fixes the background mask.
Several bugs from the original game are also fixed. More information can be found on romhacking.net.
- Download or clone this repository.
- Add your legally obtained copy of
Maniac Mansion (USA).nes
(the "game file") to the repository directory. - Run
build.bat
by double clicking it or executing it from a command prompt in the directory of step 1. - Open the resulting
Maniac Mansion (USA) Decoded.nes
file in the emulator of your choice. - Generated files can be cleaned up by running
build clean
from the command prompt.
- By default the mod will build with the optional patches applied.
- Running
build puzzle
from the command prompt will include the custom puzzle code as well. - Running
build base
will omit both the optional patches and the custom puzzle. - Running
build title
will apply the Japanese title screen along with the optional patches. - Finally,
build release
orbuild [puzzle|base|title] release
will package the resulting files.
- The runtime changes that execute during gameplay are found in
src/decompress.asm
. - The data portions are generated by reading from the original game file and decoding the content into a format suitable for assembly source files that are then compiled into patches during the build process. These source files are generated by code found under
tools/generator
and can be regenerated by runningbuild patches
from a command prompt. - Code for the custom puzzle chain can be found in
src/puzzle
. - The changes for bug fixes to the orginal game are only available as patch files found under
src/patches
. - Optional patches and their source code are found under
src/patches/optional
. - During build time the original game file is expanded, the various source files are compiled, and the resulting patches are applied to the expanded game file to produce the final result.