- FIX94 for creating many of the GameCube save file exploits, in which a lot of code from them is used in this project.
- magcius (aka Jasper) for creating the TTYD save file hacker, which a lot of of this repo's code is based off of. (GitHub repo for this can be found here)
- AECX for assisting with making necessary modifications to the Makefiles in
\OriginalVersion\source\ttyd_hack
and\OriginalVersion\source\ttyd_hack\exploit
. - Sjorec for testing this project's exploit on an actual console.
This is a simple webpage for hacking a Paper Mario: The Thousand-Year Door GCI save file to load a DOL file from memory card slot A. More specifically, it is set to load a boot.dol
file converted to a GCI file via dol2gci
(included in the Home Bros.
project).
First, use one of these two methods to apply this project's exploit to a TTYD GCI file:
- Download a premade GCI file from the releases page.
- Use the Github Pages website to upload your own GCI file, select the file in it to hack, and then click the
hack
button.
Once you have the GCI file with the exploit, use a Homebrew app such as GCMM to put both this project's GCI file and the boot.dol
GCI file onto your memory card. Once the files are on your memory card, you are free to boot up the game like normal. To trigger the exploit, simply load the file at the file select screen (should be named DOL Loader
). Upon loading it, the curtain will close like normal, and then the exploit will trigger.
It's also important to note that the other three files can still be used for standard gameplay, as this exploit only affects the file that it is applied to.
devkitPPC
(can be found here)
Node.js
(can be found here)
Yarn
(can be found here)
ts-node
also needs to be installed with Node.js. The details for doing so can be found here.
Once the prerequisites are installed, you must add DEVKITPPC to your environment, in which it should be set to the devkitPPC
folder. Once this is done, run make
in \OriginalVersion\source\ttyd_hack
. This will build three separate bin
files, which will be placed into the bin
folder. You can also specify specific versions to build by adding additional rules, such as make jp
, make us eu
, etc. Once the bin
files have been built, move them to \Binaries\bin
.
After the bin
files have been placed, navigate to the root of the ttyd-exploit
directory in a command prompt, and run yarn install
. If you start getting errors such as Binaries/generate_data.ts:4:23 - error TS2307: Cannot find module 'path'
, then running yarn install --check-files
from the root should resolve them.
The assembly codes that will be injected into the save file are stored at Binaries\bin
. To use them, they must be converted to strings. To convert the bin files to strings, run ts-node Binaries\generate_data.ts
from the root. This will remake BinaryData.ts
, which contains the strings for the bin files. These should then be placed inside of WebVersion\main.ts
.
Once the bin file strings are placed, main.js
can be rebuilt by running tsc WebVersion\main.ts
from the root. Once main.js is rebuilt, it can be placed in the gh-pages
branch.
The intitial code used in this project is from magcius (aka Jasper), which is licensed under GNU GPL, version 3. Due to most of the code in this project being from them, this project itself is using the same license. However, most of the files and code in \OriginalVersion\source\ttyd_hack
and \OriginalVersion\source\ttyd_hack\exploit
are from FIX94's save file exploit projects, which are licensed under GNU GPL, version 2. Thus, additional licenses are included in those folders.