This repository contains the code behind the Super Mario Sunshine Cheatfile Generator at https://gct.zint.ch/
- Custom cheat combination
- Custom stage loader based on QbeRoot's fastcodes
- Creates cheatfiles ready for use with Nintendont, Gecko Cheat Manager and Dolphin
Updating Practice Codes
The codes are stored in the
Codes.xml file. If you want to add or change codes edit the XML file. Note that GMSJ0A refers to the NTSC-J 1.1 release of Super Mario Sunshine. (It's not actually called version A but that's what we've been calling it for years due to a misconception on what the A on the back of the box means).
When adding new codes keep in mind that the English title/description are mandatory.
Some codes store some states in the games memory starting from address 0x817F0000. To avoid collisions use a memory range in the unallocated ranges:
- Create a new file
<lang>is the language code you want to add. Copy the contents of
en-US.jsoninto your file and translate each entry in the JSON file.
- Create a new folder with your language code in
site/defor German). Create a new markdown file for each existing page (
ios58.md, ...) and translate its contents from the English version.
- Create a new entry in
site/.vuepress/i18n/locales.jsonwith the site metadata and navigation items for your language.
- Add your locale to the
Codes.xmland add a translation for each code (
You can find the guides in the site folder. Simply edit the corresponding markdown file (.md).
Note that in the code reference files everything following the
<!-- injectionpoint --> tag will be removed during the next build.
You can either use dev containers or your own setup to develop new features.
If you have access to codespaces simply open the repository in codespaces. Else you can set it up locally as follows:
- Install Docker and docker-compose.
- Open the project in VSCode
- Click the
Reopen in Containerbutton or run the command with the same name.
Using your own environment
Due to formatting rules you should use VSCode for development with the following features/extensions:
- NodeJS 16.x (LTS)
- npm 8.x
# Install dependencies npm i # Inject codes from the Codes.xml file npm run codes:inject # Run project in watch mode # This will serve the page in development mode on http://localhost:8080 npm run dev # Remove injected codes npm run codes:clean # Build project for production npm run build # Serve the production build npm run serve
The XML codes will be written automatically to the json file and code reference during the following actions:
- Starting the development server with
npm run dev
- Building the site with
npm run build
If you want to inject the codes at any given point you can use
npm run codes:inject.
!!! Note that if npm was used,
npm run codes:clean is ran automatically as a pre-commit hook, removing all injected codes and staging ALL changes. If you want to commit changes without cleaning codes first you have to commit through
git commit --no-verify.
Build and preview the site (Docker)
The project root provides a docker-compose file, which creates a clean build (with the same configuration as the production build) and spins up a minimal Apache server on your local, serving the resulting build on port 8080.
# Build and serve the site on http://localhost:8080 # Press CTRL+C to stop the container docker-compose up --build