More actions
(Created page with "{{Infobox-3DS-Homebrews | title = GamePatcher | image = https://dlhb.gamebrew.org/3dshomebrew/GamePatcher-3DS.jpg|250px | type = Hack Utilities | version = v1.1.3 | lastupdate...") |
No edit summary |
||
Line 4: | Line 4: | ||
| type = Hack Utilities | | type = Hack Utilities | ||
| version = v1.1.3 | | version = v1.1.3 | ||
| lastupdated = 2021/08/ | | lastupdated = 2021/08/22 | ||
| licence = Mixed | | licence = Mixed | ||
| author = Ich73 | | author = Ich73 | ||
Line 11: | Line 11: | ||
| source = https://github.com/Ich73/GamePatcher | | source = https://github.com/Ich73/GamePatcher | ||
}} | }} | ||
== Game Patcher == | |||
Game Patcher is a small program to simplify the workflow of patching CIA and 3DS files. | Game Patcher is a small program to simplify the workflow of patching CIA and 3DS files. | ||
It uses the following tools: | It uses the following tools: | ||
It supports regular CIAs, update CIAs and 3DS files and tries to automatically determine which | * [https://github.com/jmacd/xdelta-gpl xdelta] ([https://github.com/jmacd/xdelta-gpl/releases/tag/v3.1.0 v3.1.0]) | ||
* [https://github.com/dnasdw/3dstool 3dstool] ([https://github.com/dnasdw/3dstool/releases/tag/v1.1.0 v1.1.0]) | |||
* [https://github.com/3DSGuy/Project_CTR ctrtool] ([https://github.com/3DSGuy/Project_CTR/releases/tag/ctrtool-v0.7 v0.7]) | |||
* [https://github.com/3DSGuy/Project_CTR makerom] ([https://github.com/3DSGuy/Project_CTR/releases/tag/makerom-v0.17 v0.17]) | |||
== Using Game Patcher == | |||
You can download the newest version as an executable from the [https://github.com/Ich73/GamePatcher/releases/latest Release Page]. Extract the archive and copy <code>GamePatcher.exe</code> to the directory containing the dumped CIA or 3DS file of your game and the patches as a zip archive and run it. | |||
It supports regular CIAs, update CIAs and 3DS files and tries to automatically determine which <code>.zip</code> patches should be used to patch which <code>.cia</code> and <code>.3ds</code> games. The required tools are downloaded automatically. | |||
At the end of the script you are asked whether you want to start the clean up. | At the end of the script you are asked whether you want to start the clean up. | ||
* Choosing | |||
* Choosing | * Choosing <code>n</code> will preserve all folders and tools and therefore speed up the next execution. | ||
* Choosing | * Choosing <code>y</code> will delete all the folders created in the current execution. | ||
* Choosing <code>all</code> will delete all folders in the current directory as well as all the downloaded tools. | |||
You can supply the following command line arguments: | You can supply the following command line arguments: | ||
usage: GamePatcher [-h] [--mapping patch cia version] [--ignore-incompatible-patches] [--xdelta-url url] | <pre>usage: GamePatcher [-h] [--mapping patch cia version] [--ignore-incompatible-patches] [--xdelta-url url] | ||
[--3dstool-url url] [--ctrtool-url url] [--makerom-url url] [--romfs file] [--manual file] | [--3dstool-url url] [--ctrtool-url url] [--makerom-url url] [--romfs file] [--manual file] | ||
[--download-play file] [--banner file] [--code file] [--icon file] [--logo file] [--plain file] | [--download-play file] [--banner file] [--code file] [--icon file] [--logo file] [--plain file] | ||
[--ex-header file] [--header0 file] [--header1 file] [--header2 file] | [--ex-header file] [--header0 file] [--header1 file] [--header2 file] | ||
optional arguments: | optional arguments: | ||
-h, --help show this help message and exit | -h, --help show this help message and exit | ||
--mapping patch game version | --mapping patch game version | ||
Defines which patch file should be used to patch which game file. Can be used multiple times. | Defines which patch file should be used to patch which game file. Can be used multiple times. | ||
When patching a CIA file specify the version as a string (v1.0.0) or integer (1024). When | When patching a CIA file specify the version as a string (v1.0.0) or integer (1024). When | ||
patching a 3DS file the version will be ignored. | patching a 3DS file the version will be ignored. | ||
--ignore-incompatible-patches | --ignore-incompatible-patches | ||
Continue patching when a patch cannot be applied instead of stopping the process. | Continue patching when a patch cannot be applied instead of stopping the process. | ||
--xdelta-url url The direct download link to xdelta. Supported file types are zip and exe. | --xdelta-url url The direct download link to xdelta. Supported file types are zip and exe. | ||
--3dstool-url url The direct download link to 3dstool. Supported file types are zip and exe. | --3dstool-url url The direct download link to 3dstool. Supported file types are zip and exe. | ||
--ctrtool-url url The direct download link to ctrtool. Supported file types are zip and exe. | --ctrtool-url url The direct download link to ctrtool. Supported file types are zip and exe. | ||
--makerom-url url The direct download link to makerom. Supported file types are zip and exe. | --makerom-url url The direct download link to makerom. Supported file types are zip and exe. | ||
--romfs file The name of the patch file for DecryptedRomFS.bin | --romfs file The name of the patch file for DecryptedRomFS.bin | ||
--manual file The name of the patch file for DecryptedManual.bin | --manual file The name of the patch file for DecryptedManual.bin | ||
--download-play file The name of the patch file for DecryptedDownloadPlay.bin | --download-play file The name of the patch file for DecryptedDownloadPlay.bin | ||
--banner file The name of the patch file for banner.bin | --banner file The name of the patch file for banner.bin | ||
--code file The name of the patch file for code.bin | --code file The name of the patch file for code.bin | ||
--icon file The name of the patch file for icon.bin | --icon file The name of the patch file for icon.bin | ||
--logo file The name of the patch file for LogoLZ.bin | --logo file The name of the patch file for LogoLZ.bin | ||
--plain file The name of the patch file for LogoLZ.bin | --plain file The name of the patch file for LogoLZ.bin | ||
--ex-header file The name of the patch file for DecryptedExHeader.bin | --ex-header file The name of the patch file for DecryptedExHeader.bin | ||
--header0 file The name of the patch file for HeaderNCCH0.bin | --header0 file The name of the patch file for HeaderNCCH0.bin | ||
--header1 file The name of the patch file for HeaderNCCH1.bin | --header1 file The name of the patch file for HeaderNCCH1.bin | ||
--header2 file The name of the patch file for HeaderNCCH2.bin | --header2 file The name of the patch file for HeaderNCCH2.bin</pre> | ||
== For Developers == | |||
This program is written using [ | === Setup === | ||
You can run the program by using the command | This program is written using [https://www.python.org/downloads/release/python-383/ Python 3.8]. | ||
To pack the program into a single executable file, [ | === Running === | ||
You can run the program by using the command <code>python GamePatcher.py</code>. | |||
=== Distributing === | |||
To pack the program into a single executable file, [http://www.pyinstaller.org/ pyinstaller] is needed. Simply run the command <code>pyinstaller GamePatcher.spec --noconfirm</code> and the executable will be created in the <code>dist</code> folder. | |||
[[Category:3DS homebrew rom hacks]] | [[Category:3DS homebrew rom hacks]] | ||
[[Category:Homebrew 3DS game hacks]] | [[Category:Homebrew 3DS game hacks]] |
Revision as of 11:56, 28 September 2021
Template:Infobox-3DS-Homebrews
Game Patcher
Game Patcher is a small program to simplify the workflow of patching CIA and 3DS files.
It uses the following tools:
Using Game Patcher
You can download the newest version as an executable from the Release Page. Extract the archive and copy GamePatcher.exe
to the directory containing the dumped CIA or 3DS file of your game and the patches as a zip archive and run it.
It supports regular CIAs, update CIAs and 3DS files and tries to automatically determine which .zip
patches should be used to patch which .cia
and .3ds
games. The required tools are downloaded automatically.
At the end of the script you are asked whether you want to start the clean up.
- Choosing
n
will preserve all folders and tools and therefore speed up the next execution. - Choosing
y
will delete all the folders created in the current execution. - Choosing
all
will delete all folders in the current directory as well as all the downloaded tools.
You can supply the following command line arguments:
usage: GamePatcher [-h] [--mapping patch cia version] [--ignore-incompatible-patches] [--xdelta-url url] [--3dstool-url url] [--ctrtool-url url] [--makerom-url url] [--romfs file] [--manual file] [--download-play file] [--banner file] [--code file] [--icon file] [--logo file] [--plain file] [--ex-header file] [--header0 file] [--header1 file] [--header2 file] optional arguments: -h, --help show this help message and exit --mapping patch game version Defines which patch file should be used to patch which game file. Can be used multiple times. When patching a CIA file specify the version as a string (v1.0.0) or integer (1024). When patching a 3DS file the version will be ignored. --ignore-incompatible-patches Continue patching when a patch cannot be applied instead of stopping the process. --xdelta-url url The direct download link to xdelta. Supported file types are zip and exe. --3dstool-url url The direct download link to 3dstool. Supported file types are zip and exe. --ctrtool-url url The direct download link to ctrtool. Supported file types are zip and exe. --makerom-url url The direct download link to makerom. Supported file types are zip and exe. --romfs file The name of the patch file for DecryptedRomFS.bin --manual file The name of the patch file for DecryptedManual.bin --download-play file The name of the patch file for DecryptedDownloadPlay.bin --banner file The name of the patch file for banner.bin --code file The name of the patch file for code.bin --icon file The name of the patch file for icon.bin --logo file The name of the patch file for LogoLZ.bin --plain file The name of the patch file for LogoLZ.bin --ex-header file The name of the patch file for DecryptedExHeader.bin --header0 file The name of the patch file for HeaderNCCH0.bin --header1 file The name of the patch file for HeaderNCCH1.bin --header2 file The name of the patch file for HeaderNCCH2.bin
For Developers
Setup
This program is written using Python 3.8.
Running
You can run the program by using the command python GamePatcher.py
.
Distributing
To pack the program into a single executable file, pyinstaller is needed. Simply run the command pyinstaller GamePatcher.spec --noconfirm
and the executable will be created in the dist
folder.