An app to explore and modify the game Maniac Mansion on NES.
This tool is a web app to explore and modify the resources contained in the Maniac Mansion game on NES. The goal is to encourage the ROM hacking community to modify the game and create new ROM hacks or translations based on this game.
This app only works with Maniac Mansion on NES, it won't work with SCUMM files from other platforms or other NES games.
Portion of the code comes from ScummVM and Maniac Mansion Decoded.
It currently supports:
Resource | Parser | Serialiser | UI Editor |
---|---|---|---|
Graphics | โ | โ | โ |
Rooms | โ (partial) | โ (partial) | โ (palette only) |
Title screens | โ | โ (partial) | โ (palette only) |
Scripts | โ | โ | โ |
Sounds | โ | โ | โ |
Costumes | โ | โ | โ |
Initial States | โ | โ | โ |
Charset | โ (hardcoded) | โ | โ |
Prepositions | โ | โ | โ |
Parsers are used to view the resources. Serialisers allows the modification of the resources to create new ROM hacks. The UI Editor column indicates resources that can be modified using the app.
The following version are supported:
- American English
- European English
- French
- German
- Italian
- Spanish
- Swedish
- American English prototype
The Japanese version is not supported as it doesn't use SCUMM but implements its own engine instead.
The app doesn't use the runtime code used by the NES to start and play the game. It only works with the SCUMM resources stored in the ROM files.
At this stage, only the room palettes can be modified. Click on any colour to display a colour picker.
When you're happy with your changes, export a ROM file with the download icon on the top left corner.
On top of the app, there is a command line interface to export the resources to JSON. This is useful to process or compare the data.
node index.js --input path/to/rom --output resources.json
Options:
--input
,-i
Path to a ROM or PRG file.--base-rom
,-b
The base ROM version of the input ROM.--output
,-o
Path to a JSON filename to be created.--version
,-v
Print the version number.
To run it locally, make sure that node v20 or higher is installed, clone the repo, and install the dependencies:
npm install
Start the dev server with:
npm run dev
Create a production build with:
npm run build
Then deploy the content of the dist
folder.
- Use Typescript.
- Write more tests.
- Parse more resource types (charset, sounds...).
- Make more elements modifiable.
- QoF improvements (store the ROM files locally...)
- Cover other SCUMM versions.
scumm-nes
is developed by edo999. Find me on social media:
- Mastodon: edo999 (mastodon.social)
- Bluesky: @edo999.bsky.social