A Python-based utility to inject and dump N64 ControllerPak/TransferPak saves for the MiSTer FPGA.
- Download this repo and extract its
.zip
archive contents anywhere on your PC. - Ensure that Python is installed.
- Download the most recent version of N64-Database.txt and place it in the same folder as
convert_tpak_data.py
. - Create a copy of
Input_EXAMPLE.ini
and then rename the copy toInput.ini
. - Edit
Input.ini
in your favorite text editor. Please read all of the comments carefully as you fill it out! - (Windows Users only) Double-click on
launch.bat
.- For Linux/Mac/Other:
convert_tpak_data.py -ini
- For Linux/Mac/Other:
If you filled out the form correctly, your new save file(s) should be at the path you specified for OutputSavePath
.
convert_tpak_data.py [-h] [-n64 [N64]] [-o [O]] [-cid [CID]] [-mpk [MPK]] [-d] [-ini]
-h, --help show this help message and exit
-n64 [N64] Input N64 Save Path | (Default: "N64_In.sav")
-o [O] Output Save Path | (Default: "Output.sav")
-cid [CID] N64 Cart ID | (Default: "")
-mpk [MPK] Input [C/T]Pak Save Path (Comma-separated; Max: 4) | (Default: "MPK_in.sav")
-d Flag: The MPK (and TPak Gameboy) saves should be dumped from the N64 save | (Default: False)
-ini Flag: Override all other arguments with data from Input.ini | (Default: False)
python convert_n64_savedata.py -n64 "N64.sav" -cid "NP3___" -mpk "GB_in.sav"
The above example will inject GB_in.sav
into N64.sav
as Pokemon Stadium 2 (NP3___)
and output it as Output.sav
.
python convert_n64_savedata.py -d -n64 "N64.sav" -cid "NP3___" -o "GB_out.sav"
The above example will dump the Gameboy Save from N64.sav
as Pokemon Stadium 2 (NP3___)
and output it as GB_out.sav
. The remaining 3 controller ports' saves will also be output under this name, but slightly renamed to differentiate them.
python convert_n64_savedata.py -n64 "MK64_In.sav" -cid "NKT___" -mpk "moomoofarm_wariostadium.mpk,*cpakTestBak1_LuigiRaceway.mpk"
The above example will inject moomoofarm_wariostadium.mpk
and cpakTestBak1_LuigiRaceway.mpk
into N64.sav
as Mario Kart 64 (NKT___)
and output it as Output.sav
.
Additionally, cpakTestBak1_LuigiRaceway.mpk
will be injected with flipped endian bytes, because it has a *
at the start of its path.