Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

3DS:Game modification: Difference between revisions

From Hacks Guide Wiki
(a few words)
(added ROM and save editor info + moved plugin links to →‎External links)
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Page WIP|notes=* Could use instructions on how to modify and rebuild a CIA for ROM hacks (maybe a link to a different guide?)}}
==Luma3DS game patching==
==Luma3DS game patching==
{{Main|3DS:Luma3DS/Configuration}}
{{Main|3DS:Luma3DS/Configuration}}
Luma3DS allows for the modification of a game or application without having to patch the original files. This is done by redirecting the reading of files to a separate location containing the modified files. Because no original game files are actually being modified, this feature works with physical game cartridges. To use this feature, files must be placed in a <code>/luma/titles/<Title ID>/</code> folder. You can get the game's title ID from [http://3dsdb.com/ here] (cartridges), [https://hax0kartik.github.io/3dsdb/ here] (digital games), or from the <code>FBI -> Titles</code> menu. For example the Title ID for Pokémon X is <code>0004000000055D00</code>, so modified Pokémon X files would be placed at <code>/luma/titles/0004000000055D00/</code>.
[[3DS:Luma3DS|Luma3DS]] allows for the modification of a game or application without having to patch the original files. This is done by redirecting the application's file calls to a separate location containing the modified files. Because no original game files are actually being modified, this makes distribution/installation of ROM hacks simple, and even works with game cartridges. Files must be placed in a <code>/luma/titles/<Title&nbsp;ID>/</code> folder, with the Title ID of the title being modified. Luma3DS's game patching supports the following files:


===External code.bin and exheader.bin loading===
* <h3>External code.bin and exheader.bin loading</h3>
Patched <code>code.bin</code> and <code>exheader.bin</code> files can be loaded. Compressed <code>.code</code> files will not work with this feature, it must be uncompressed into a <code>code.bin</code>.
:: Patched <code>code.bin</code> and <code>exheader.bin</code> files can be loaded. Compressed <code>.code</code> files will not work with this feature, it must be uncompressed into a <code>code.bin</code>.
===IPS patching===
IPS patches for <code>code.bin</code> are also supported, which contain only the changes to the original code rather than the entire <code>code.bin</code>. Patches should be named <code>code.ips</code> and placed instead of a patched <code>code.bin</code>.
===LayeredFS===
Files within a game or applications <code>romfs</code> folder can redirected by placing modified files within <code>/luma/titles/<Title ID>/romfs</code>.
===Locale Emulation===
{{Main|3DS:Setting game locales}}


* <h3>IPS patching</h3>
:: IPS patches for <code>code.bin</code> are also supported, which contain only the changes to the original code rather than the entire <code>code.bin</code>. Patches should be named <code>code.ips</code> and placed instead of a patched <code>code.bin</code>.


==Plugins==
* <h3>LayeredFS</h3>
{{Main|3DS:Plugins}}
:: Files within a game or applications <code>romfs</code> folder can redirected by placing modified files within <code>/luma/titles/<Title&nbsp;ID>/romfs</code>.
[https://github.com/PabloMK7/CTRPluginFramework-BlankTemplate CTRPluginFramework 3GX - Blank Template]<br>
[https://github.com/ItsDeidara/MegaNTR MegaNTR PLG plugin collection]<br>
[https://www.gamebrew.org/wiki/List_of_all_3DS_Rom_Hacks#Plugins-0 Plugins list from gamebrew]


==Cheats==
* <h3>Locale Emulation</h3>
[https://github.com/iSharingan/CTRPF-AR-CHEAT-CODES CTRPluginFramework Action Replay cheat codes]
:: {{Main|3DS:Setting game locales}}
:: Locale Emulation can be used to launch a title with different region settings than the system. Although Luma3DS allows for any region game to be launched, some games may crash if the system region settings are not supported. Luma3DS can use alternate locale information from a <code>locale.txt</code> file placed in the <code>/<Title&nbsp;ID>/</code> folder for a title. Follow [[3DS:Setting game locales]] for more detailed instructions.
 
==ROM hacks==
ROM hacks are game mods that work by modifying or adding to a games files to change or add new content. ROM hacks can be made for a variety of different reasons, from making a game harder, adding new levels, translating the game to a different language, texture packs, randomization, and much more. Most ROM hacks on 3DS are distributed as unpacked files, and applied using Luma3DS's layeredfs. You can find some ROM hacks on their individual game pages; see a full list at [[:Category:Nintendo 3DS games|Category:Nintendo 3DS games]], or use the search feature.
 
===Patching using layeredfs===
{{info|Some hacks have additional files and instructions to follow that aren't covered here. Always refer to the hacks installation instructions/README if available.}}
# Download a ROM hack
# Copy the files to your SD card:
#* If the files contain a <code>/luma/</code> folder, copy it to the root of your SD card merging when asked
#* If the files contain a <code>/<Title&nbsp;ID>/</code> (16 character long) folder, copy it to <code>/luma/titles/</code>
#* If the files contain <code>/romfs/</code>, <code>code.bin</code> or <code>code.ips</code>; create a new folder in <code>/luma/titles/</code> and rename it to the Title ID of the game. Copy the <code>/romfs/</code>, <code>code.bin</code> or <code>code.ips</code> to the <code>/luma/titles/<Title&nbsp;ID>/</code> folder you just made
#** You can get the game's title ID from [http://3dsdb.com/ here] (cartridges), [https://hax0kartik.github.io/3dsdb/ here] (digital games), or from the <code>FBI&nbsp;->&nbsp;Titles</code> menu. For example the Title ID for Pokémon X is <code>0004000000055D00</code>, so modified Pokémon X files would be placed at <code>/luma/titles/0004000000055D00/</code>.
# Insert your SD card into your console
# While holding {{B|SELECT}}, power on your console to enter [[3DS:Luma3DS/Configuration|the Luma3DS configuration menu]]
# Turn on '''Enable game patching''' if it is not already enabled
# Press {{B|START}} to save and exit
{{success|Your title should now be patched using layeredfs.}}
 
==Game plugins==
{{Main|3DS:Game plugins}}
Plugins are add-ons that run with a game. Plugins generally come in two types, 3GX or PLG. [[3DS:Game plugins/3GX|3GX plugins]] run using Luma3DS's built in plugin loader, while [[3DS:Game plugins/PLG|PLG plugins]] can be run using [https://github.com/Nanquitas/BootNTR BootNTR]. 3GX plugins are usually newer and should generally be used if given a choice. You can find some plugins on their individual game pages; see a full list at [[:Category:Nintendo 3DS games|Category:Nintendo 3DS games]], or use the search feature.
 
==Cheat codes==
Cheat codes, or Action Replay codes, are instructions to edit memory addresses that allow for games behavior and values to be edited. These can be used in a variety of ways, from invincibility, max currency, unlocking items, and more. The two main ways to use cheats are from Luma3DS's Rosalina menu, or CTRPluginFramework's Action Replay. Using cheats with CTRPluginFramework, or a dedicated cheat plugin for the game you want to play will usually be more compatible.
 
===Rosalina menu cheats===
To use cheats with Rosalina menu:
# Place cheat files in plain text at either <code>/cheats/<Title&nbsp;ID>.txt</code> or <code>/luma/titles/<Title&nbsp;ID>/cheats.txt</code>
#* Cheat files can be generated using [[Checkpoint]], or downloaded from [https://github.com/FlagBrew/Sharkive/tree/master/3ds the Sharkive repository].
# Open the Rosalina menu ({{B|L|D-Pad down|SELECT}} by default)
# Select <code>cheats...</code>
# Press {{B|A}} on any cheats you want activated
# Press {{B|B}} until you exit the Rosalina menu
 
===CTRPluginFramework Action Replay===
To use cheats with CTRPluginFramework:
# Install the latest version of [https://github.com/PabloMK7/CTRPluginFramework-BlankTemplate/releases/latest CTRPluginFramework-BlankTemplate] (the <code>.3gx</code> file) using the instructions [[3DS:Game plugins/3GX|here]]
# Place cheat files in plain text at either <code>/cheats/<Title&nbsp;ID>.txt</code> or in the same folder as the <code>.3gx</code> plugin as <code>cheats.txt</code>
#* A repository of compiled cheat codes can be found [https://github.com/iSharingan/CTRPF-AR-CHEAT-CODES here]
#* Or create your own cheats; a list of all code types supported by Action Replay can be found [https://gist.github.com/Nanquitas/d6c920a59c757cf7917c2bffa76de860 here]
# Open the Rosalina menu ({{B|L|D-Pad down|SELECT}} by default)
# Press {{B|A}} on <code>Plugin Loader:</code> to enable it
# Press {{B|B}} until you exit the Rosalina menu
# launch your game of choice
#* The screen should flash another color to indicate that the plugin has successfully loaded
#* it will say <code>Plugin ready!</code> on the top screen when it is loaded
# Press {{B|SELECT}} to open the plugin menu
# Tap on <code>Action Replay</code>
# Select the Action Replay codes you want to use
# Press {{B|SELECT}} to exit the plugin menu


==Save editors==
==Save editors==
Save editors are tools that allow game saves to be edited in order to unlock items, change game progression, edit characters or companions and more. Save editors are usually limited by what the game is already capable of doing, but can sometimes unlock items not earnable through normal gameplay. Most save editors require your save to be unencrypted; you can use a save game manager such as [[Checkpoint]] to make unencrypted backups and restore save backups. You can find some Save editors on their individual game pages; see a full list at [[:Category:Nintendo 3DS games|Category:Nintendo 3DS games]], or use the search feature.


==ROM editors==
==ROM editors==
ROM editors are tools that allow game files or code to be edited in order to change how the game functions. Depending on the editor it may be able to edit textures or sounds, add new game content, make the game more/less difficult, remix content in a new way such as randomizers, and much more. You can find some ROM editors on their individual game pages; see a full list at [[:Category:Nintendo 3DS games|Category:Nintendo 3DS games]], or use the search feature.


==External links==
==External links==
[https://github.com/LumaTeam/Luma3DS/wiki/Optional-features Luma3DS/wiki/Optional-features]<br>
* [https://www.gamebrew.org/wiki/List_of_all_3DS_Rom_Hacks List of Rom Hacks from gamebrew]
[https://www.gamebrew.org/wiki/List_of_all_3DS_Rom_Hacks List of Rom Hacks from gamebrew]<br>
* [https://github.com/ItsDeidara/MegaNTR MegaNTR PLG plugin collection]
[https://www.gamebrew.org/wiki/List_of_3DS_homebrew_applications#Save_Managers_and_Editors-0 save editor 3DS applications from gamebrew]
* [https://www.gamebrew.org/wiki/List_of_all_3DS_Rom_Hacks#Plugins-0 List of plugins from gamebrew]
* [https://www.gamebrew.org/wiki/List_of_3DS_homebrew_applications#Save_Managers_and_Editors-0 save editor 3DS apps from gamebrew]
* [https://www.romhacking.net/?page=utilities&platform=51 Romhacking.net utilities]
* [https://github.com/LumaTeam/Luma3DS/wiki/Optional-features Luma3DS/wiki/Optional-features]

Revision as of 22:52, 29 May 2024

Luma3DS game patching

Luma3DS allows for the modification of a game or application without having to patch the original files. This is done by redirecting the application's file calls to a separate location containing the modified files. Because no original game files are actually being modified, this makes distribution/installation of ROM hacks simple, and even works with game cartridges. Files must be placed in a /luma/titles/<Title ID>/ folder, with the Title ID of the title being modified. Luma3DS's game patching supports the following files:

  • External code.bin and exheader.bin loading

Patched code.bin and exheader.bin files can be loaded. Compressed .code files will not work with this feature, it must be uncompressed into a code.bin.
  • IPS patching

IPS patches for code.bin are also supported, which contain only the changes to the original code rather than the entire code.bin. Patches should be named code.ips and placed instead of a patched code.bin.
  • LayeredFS

Files within a game or applications romfs folder can redirected by placing modified files within /luma/titles/<Title ID>/romfs.
  • Locale Emulation

Locale Emulation can be used to launch a title with different region settings than the system. Although Luma3DS allows for any region game to be launched, some games may crash if the system region settings are not supported. Luma3DS can use alternate locale information from a locale.txt file placed in the /<Title ID>/ folder for a title. Follow 3DS:Setting game locales for more detailed instructions.

ROM hacks

ROM hacks are game mods that work by modifying or adding to a games files to change or add new content. ROM hacks can be made for a variety of different reasons, from making a game harder, adding new levels, translating the game to a different language, texture packs, randomization, and much more. Most ROM hacks on 3DS are distributed as unpacked files, and applied using Luma3DS's layeredfs. You can find some ROM hacks on their individual game pages; see a full list at Category:Nintendo 3DS games, or use the search feature.

Patching using layeredfs

OOjs UI icon information-progressive.svg Some hacks have additional files and instructions to follow that aren't covered here. Always refer to the hacks installation instructions/README if available.
  1. Download a ROM hack
  2. Copy the files to your SD card:
    • If the files contain a /luma/ folder, copy it to the root of your SD card merging when asked
    • If the files contain a /<Title ID>/ (16 character long) folder, copy it to /luma/titles/
    • If the files contain /romfs/, code.bin or code.ips; create a new folder in /luma/titles/ and rename it to the Title ID of the game. Copy the /romfs/, code.bin or code.ips to the /luma/titles/<Title ID>/ folder you just made
      • You can get the game's title ID from here (cartridges), here (digital games), or from the FBI -> Titles menu. For example the Title ID for Pokémon X is 0004000000055D00, so modified Pokémon X files would be placed at /luma/titles/0004000000055D00/.
  3. Insert your SD card into your console
  4. While holding SELECT, power on your console to enter the Luma3DS configuration menu
  5. Turn on Enable game patching if it is not already enabled
  6. Press START to save and exit
OOjs UI icon information-constructive.svg Your title should now be patched using layeredfs.

Game plugins

Plugins are add-ons that run with a game. Plugins generally come in two types, 3GX or PLG. 3GX plugins run using Luma3DS's built in plugin loader, while PLG plugins can be run using BootNTR. 3GX plugins are usually newer and should generally be used if given a choice. You can find some plugins on their individual game pages; see a full list at Category:Nintendo 3DS games, or use the search feature.

Cheat codes

Cheat codes, or Action Replay codes, are instructions to edit memory addresses that allow for games behavior and values to be edited. These can be used in a variety of ways, from invincibility, max currency, unlocking items, and more. The two main ways to use cheats are from Luma3DS's Rosalina menu, or CTRPluginFramework's Action Replay. Using cheats with CTRPluginFramework, or a dedicated cheat plugin for the game you want to play will usually be more compatible.

Rosalina menu cheats

To use cheats with Rosalina menu:

  1. Place cheat files in plain text at either /cheats/<Title ID>.txt or /luma/titles/<Title ID>/cheats.txt
  2. Open the Rosalina menu (L+D-Pad down+SELECT by default)
  3. Select cheats...
  4. Press A on any cheats you want activated
  5. Press B until you exit the Rosalina menu

CTRPluginFramework Action Replay

To use cheats with CTRPluginFramework:

  1. Install the latest version of CTRPluginFramework-BlankTemplate (the .3gx file) using the instructions here
  2. Place cheat files in plain text at either /cheats/<Title ID>.txt or in the same folder as the .3gx plugin as cheats.txt
    • A repository of compiled cheat codes can be found here
    • Or create your own cheats; a list of all code types supported by Action Replay can be found here
  3. Open the Rosalina menu (L+D-Pad down+SELECT by default)
  4. Press A on Plugin Loader: to enable it
  5. Press B until you exit the Rosalina menu
  6. launch your game of choice
    • The screen should flash another color to indicate that the plugin has successfully loaded
    • it will say Plugin ready! on the top screen when it is loaded
  7. Press SELECT to open the plugin menu
  8. Tap on Action Replay
  9. Select the Action Replay codes you want to use
  10. Press SELECT to exit the plugin menu

Save editors

Save editors are tools that allow game saves to be edited in order to unlock items, change game progression, edit characters or companions and more. Save editors are usually limited by what the game is already capable of doing, but can sometimes unlock items not earnable through normal gameplay. Most save editors require your save to be unencrypted; you can use a save game manager such as Checkpoint to make unencrypted backups and restore save backups. You can find some Save editors on their individual game pages; see a full list at Category:Nintendo 3DS games, or use the search feature.

ROM editors

ROM editors are tools that allow game files or code to be edited in order to change how the game functions. Depending on the editor it may be able to edit textures or sounds, add new game content, make the game more/less difficult, remix content in a new way such as randomizers, and much more. You can find some ROM editors on their individual game pages; see a full list at Category:Nintendo 3DS games, or use the search feature.

External links