.devcontainer | ||
.github | ||
.vscode | ||
dockerfiles | ||
docs | ||
scripts | ||
site | ||
utils | ||
.dockerignore | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.nvmrc | ||
.prettierignore | ||
.prettierrc | ||
changelog.md | ||
Codes.xml | ||
docker-compose.yml | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
Readme.md |
GCT Generator
This repository contains the code behind the Super Mario Sunshine Cheatfile Generator at https://gct.zint.ch/
Features
- Custom cheat combination
- Custom stage loader based on QbeRoot's fastcodes
- Creates cheatfiles ready for use with Nintendont, Gecko Cheat Manager and Dolphin
Contributing
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.
Reserved Memory
Some codes store some states in the games memory starting from address 0x817F0000. To avoid collisions use a memory range in the unallocated ranges:
Adding translations
- Create a new file
<lang>.json
insite/.vuepress/i18n
, where<lang>
is the language code you want to add. Copy the contents ofen-US.json
into your file and translate each entry in the JSON file. - Create a new folder with your language code in
site
(such assite/de
for German). Create a new markdown file for each existing page (guide.md
,index.md
,ios58.md
, ...) and translate its contents from the English version. - Create a new entry in
site/.vuepress/i18n/locales.json
with the site metadata and navigation items for your language. - Open
Codes.xml
and add a translation for each code (<title>
and<description>
).
Updating Guides
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.
Site Development
If you intend to change site code you need NodeJS version 14.X LTS installed on your local.
# Install dependencies
npm i
# Run project in watch mode
# This will serve the page in development mode on http://localhost:8080
npm run dev
# Build project
npm run build
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