Web-based, experimental savedata editor/viewer for Nintendo's Game Builder Garage
Currently on hold due to lack of interest and an issue regarding file hashes that prevents games from being uploaded online.
Implemented:
- Full level file parser, reads metadata, textures, nodon, connections, etc
- Partial level file exporter
- Texture editor
- Nodon graph viewer (pretty basic, doesn't support ports or settings yet)
- 3d world viewer (also basic, doesn't map textures properly, doesn't support connectors or customised world lighting)
Game information view, also showing all the textures used:
Texture editor with various tools:
Basic Nodon graph view -- connection ports and settings aren't currently mapped, so not too useful:
3D world viewer, textures currently aren't quite mapped correctly in all directions:
glTF exporter so levels can be brought into other 3D software:
You can run parts of this tool from the command line to inspect files etc
git clone https://github.com/jaames/game-builder-garage-editor
Then enter into it
cd game-builder-garage-editor
Make sure you have installed NodeJS, which also installs NPM.
Then install the project dependencies by running this inside the game-builder-garage-editor
directory:
npm install
Use npm run cli
to run the command line interface
Usage: npm run cli [options] [command]
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
game-hash <input> attempt to generate a value hash for a given game BYML file (not working)
game-dump <input> <output> dump game BYML content to a YAML file
game-meta <input> returns metadata for a given game BYML file
table-hashes <input> read value hashes from a LgcTpb.bin BYML file
table-dump <input> <output> dump table BYML content to a YAML file
help [command] display help for command
Please don't submit PRs or issues yet, this code is going to change a lot as the project develops. If you're interested in helping reverse-engineer Game Builder Garage, you can find me on Twitter @rakujira
, or on Discord @jaames#9860
-- I will likely post on Twitter when I feel like I've made enough progress for an announcement.