Game Patcher 3DS: Difference between revisions

From GameBrew
(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/25
| 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
}}
}}
<youtube></youtube>
== Game Patcher ==


[![](https://img.shields.io/github/v/release/Ich73/GamePatcher?include_prereleases&label=Release)](https://github.com/Ich73/GamePatcher/releases/latest)
[![](https://img.shields.io/github/downloads/Ich73/GamePatcher/total?label=Downloads)](https://github.com/Ich73/GamePatcher/releases)
[![](https://img.shields.io/github/license/Ich73/GamePatcher?label=License)](/LICENSE)
# 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:
* [xdelta](https://github.com/jmacd/xdelta-gpl) ([v3.1.0](https://github.com/jmacd/xdelta-gpl/releases/tag/v3.1.0))
* [3dstool](https://github.com/dnasdw/3dstool) ([v1.1.0](https://github.com/dnasdw/3dstool/releases/tag/v1.1.0))
* [ctrtool](https://github.com/3DSGuy/Project_CTR) ([v0.7](https://github.com/3DSGuy/Project_CTR/releases/tag/ctrtool-v0.7))
* [makerom](https://github.com/3DSGuy/Project_CTR) ([v0.17](https://github.com/3DSGuy/Project_CTR/releases/tag/makerom-v0.17))
## Using Game Patcher
You can download the newest version as an executable from the [Release Page](https://github.com/Ich73/GamePatcher/releases/latest). 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.
* [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 `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 <code>n</code> will preserve all folders and tools and therefore speed up the next execution.
* Choosing `all` will delete all folders in the current directory as well as all the downloaded tools.
* 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
== For Developers ==
### Setup
 
This program is written using [Python 3.8](https://www.python.org/downloads/release/python-383/).
=== Setup ===
### Running
 
You can run the program by using the command `python GamePatcher.py`.
This program is written using [https://www.python.org/downloads/release/python-383/ Python 3.8].
### Distributing
 
To pack the program into a single executable file, [pyinstaller](http://www.pyinstaller.org/) is needed. Simply run the command `pyinstaller GamePatcher.spec --noconfirm` and the executable will be created in the `dist` folder.
=== 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.

Advertising: