Editing ROM hacking resources

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 153: Line 153:
 
With another command-line tool called [http://www.romhacking.net/utilities/224/ Atlas], you may re-insert that text file (after modifying it) in the ROM, and the tool will take care of updating the pointers. You can, for example, tell it to start inserting text in an empty yet accessible location at the end of the ROM. The possibilities are endless.
 
With another command-line tool called [http://www.romhacking.net/utilities/224/ Atlas], you may re-insert that text file (after modifying it) in the ROM, and the tool will take care of updating the pointers. You can, for example, tell it to start inserting text in an empty yet accessible location at the end of the ROM. The possibilities are endless.
  
Command-line tools may sound scary, with their black MS-DOS dialog boxes flashing quickly and disappearing. They're actually easy to use. Just put all the needed files in the same folder, make a new .txt file where you write the command detailed in the tool's readme, and save that file as one with the .bat extension. If you double-click on it, it will execute that tool the way you wanted it with little effort.
+
Command-line tools may sound scary, with their black MS-DOS dialog boxes flashing quickly and disappearing. They're actually easy to use. Just put all the needed files in the same folder, make a new .txt file where you write the command detailed in the tool's readme, and save that file as one with the .bat extension. If you double-click on it, it will execute that tool the way you wanted it with little effort.  
  
 
===Editing graphics with tile editors===
 
===Editing graphics with tile editors===
Line 185: Line 185:
 
* IDA Pro with some user-made plugins can also take a ROM file from the system covered in said plugin, and try to disassemble its binary to a text file. Some emulators offer the option to do this if you give them which address in the ROM (or RAM) you want to disassemble from.
 
* IDA Pro with some user-made plugins can also take a ROM file from the system covered in said plugin, and try to disassemble its binary to a text file. Some emulators offer the option to do this if you give them which address in the ROM (or RAM) you want to disassemble from.
  
However, disassembly can easily fail, and you end up with garbage nonsensical code in the text file. Why? Just like hex editors with text display, or tile editors, when disassemblers try to interpret stuff that's not programming as such, it's a recipe for disaster. Another extra problem is that after reading garbage data, even if the disassembler stumbles upon some legit programming bits after that, it will no longer tell where instructions begin and end (remember they're all just bytes) and so there will be even more erroneous interpretations.
+
However, disassembly can easily fail, and you end up with garbage nonsensical code in the text file. Why? Just like hex editors with text display, or tile editors, when disassemblers try to interpret stuff that's not programming as such, it's a recipe for disaster. Another extra problem is that after reading garbage data, even if the disassembler stumbles upon some legit programming bits after that, it will no longer tell where instructions begin and end (remember they're all just bytes) and so there will be even more erronous interpretations.
  
 
That is, not to mention the numerous cases where the developers DON'T want you to look at their code: so it's either protected against disassembler tools during runtime (Denuvo on PC games), compressed then the game uncompresses just what it needs to the RAM and executes from there (Ys 5 for the Super Famicom), or most of the programming is written in another arbitrary programming language and the remaining 10% recognizable assembly code for that hardware is just the part which translates that arbitrary languages and not much else - this is also called bytecode and is used in many RPGs, with a quite infamously complicated variant being present in Earthbound (Mother 2) for example.  
 
That is, not to mention the numerous cases where the developers DON'T want you to look at their code: so it's either protected against disassembler tools during runtime (Denuvo on PC games), compressed then the game uncompresses just what it needs to the RAM and executes from there (Ys 5 for the Super Famicom), or most of the programming is written in another arbitrary programming language and the remaining 10% recognizable assembly code for that hardware is just the part which translates that arbitrary languages and not much else - this is also called bytecode and is used in many RPGs, with a quite infamously complicated variant being present in Earthbound (Mother 2) for example.  
Line 192: Line 192:
 
* a documentation of the hardware you're working on (including the various registers, hardware registers for stuff like the VRAM, the memory addressing...)
 
* a documentation of the hardware you're working on (including the various registers, hardware registers for stuff like the VRAM, the memory addressing...)
 
* an opcode list for that hardware, which includes all the instructions allowed on that hardware which you'll encounter (in the game's original code) and probably will use (in the code you'll write as a replacement)
 
* an opcode list for that hardware, which includes all the instructions allowed on that hardware which you'll encounter (in the game's original code) and probably will use (in the code you'll write as a replacement)
* an assembler tool, to transform the text file with your innovating hack's code to binary format to be inserted later with a hex editor in the game proper. If you're especially good at regular computer programming, you could write one yourself for your personal use.
+
* an assembler tool, to transform the text file with your innovating hack's code to binary format to be inserted later with a hex editor in the game proper. If you're especially good in regular computer programming, you could write one yourself for your personal use.
 
* a hex editor
 
* a hex editor
 
* optionally, knowing how to use a cheat engine, since the RAM addresses it finds can lead to the instructions we need to find and eventually mod, in case those instructions affect those RAM addresses.
 
* optionally, knowing how to use a cheat engine, since the RAM addresses it finds can lead to the instructions we need to find and eventually mod, in case those instructions affect those RAM addresses.
 
* any of the aforementioned disassembly solutions, as long as they can help you pinpoint which instructions in the original interest you and could be changed to achieve the effect you desire.
 
* any of the aforementioned disassembly solutions, as long as they can help you pinpoint which instructions in the original interest you and could be changed to achieve the effect you desire.
  
Having the new code being too long can be troublesome since you wouldn't want to overwrite irrelevant parts of the rom and thus corrupt it. The popular solution is to insert a JUMP instruction (as always, which instruction it depends on the hardware) pointing your code to some faraway empty place where you can comfortably put all the code you want -- of course, within the limitations of that specific system. You can see it's the same idea as text editing.
+
Having the new code being too long can be troublesome since you wouldn't want to overwrite irrelevant parts of the rom and thus corrupt it. The popular solution is to insert a JUMP instruction (as always, which instruction it is depends on the hardware) pointing your code to some faraway empty place where you can comfortably put all the code you want -- of course, within the limitations of that specific system. You can see it's the same idea as text editing.
  
 
If you're more interested, check SMWCentral's boards for tutorials introducing you to SNES hacking with Super Mario World. Then if you feel more comfortable tackling harder stuff, you could learn PS1/PS2 assembly and translate/mod/fix some games.
 
If you're more interested, check SMWCentral's boards for tutorials introducing you to SNES hacking with Super Mario World. Then if you feel more comfortable tackling harder stuff, you could learn PS1/PS2 assembly and translate/mod/fix some games.
  
By the way, more recent systems no longer have a big data blob with all data types mixed, but use neatly arranged file trees with recognizable (yet proprietary) file formats. This goes for programming too: all systems now have the executable in a separate file, and it's often the one loaded first. Some people even claim they had success running those through third-party disassemblers like IDA Pro. Some examples:
+
By the way, more recent systems no longer have a big data blob with all data types mixed, but use neatly arranged file trees with recognizeable (yet proprietary) file formats. This goes for programming too: all systems now have the executable in a separate file, and it's often the one loaded first. Some people even claim they had success running those through third-party disassemblers like IDA Pro. Some examples:
 
* PS1: SLUS_*** or some variation
 
* PS1: SLUS_*** or some variation
 
* PSP: EBOOT.BIN, BOOT.BIN
 
* PSP: EBOOT.BIN, BOOT.BIN
Line 215: Line 215:
  
 
* '''Cheats:''' You modified some text and graphics in the final stage but can't be bothered to replay the whole game legitimately. In case the emulator doesn't support this natively, you might want to consider using [http://www.cheatengine.org/ Cheat Engine].
 
* '''Cheats:''' You modified some text and graphics in the final stage but can't be bothered to replay the whole game legitimately. In case the emulator doesn't support this natively, you might want to consider using [http://www.cheatengine.org/ Cheat Engine].
* '''Save states, rewinding, fast forward, frame advance, pause:''' You modified something appearing in a very narrow timeframe, or you just want to take clean screenshots of the game.
+
* '''Save states, rewinding, fast forward, frame advance, pause:''' You modified something appearing in a very narrow timeframe, or you just want to take clean screenshoots of the game.
 
* '''Debuggers''' with the following features:
 
* '''Debuggers''' with the following features:
 
** '''Breakpoints:''' A breakpoint throws a fit and pauses the game if a specific address is tampered with. Of course, to know which address it is, you need to find it first with a cheat/RAM search.
 
** '''Breakpoints:''' A breakpoint throws a fit and pauses the game if a specific address is tampered with. Of course, to know which address it is, you need to find it first with a cheat/RAM search.
** '''Conditional Breakpoints:''' Breakpoints that only trigger when another condition is also met. For example: Dragon Quest 1 keeps track of the monster ID (during battles) and the floor type (outside battles) in the same RAM variable. Which means every single step the hero makes will trigger the breakpoint, so if you're only interested in the monster ID code, you can weed out all other BPs by simply adding the condition "only trigger when the battle status RAM variable is on". Conditions can be about RAM or hardware register status.
 
 
** '''Disassembler:''' Translates the last few lines of programming executed from hex code to known opcodes telling which instruction is which (LDA/LDR/LD (load to accumulator/register), STA/STR/ST (store to accumulator/register), NOP (do nothing), and so on). After a breakpoint, it gives you the programming line (in assembly) directly responsible for altering the address the breakpoint was guarding against reading/writing/executing attempts. This is incredibly invaluable to understand the game's programming.
 
** '''Disassembler:''' Translates the last few lines of programming executed from hex code to known opcodes telling which instruction is which (LDA/LDR/LD (load to accumulator/register), STA/STR/ST (store to accumulator/register), NOP (do nothing), and so on). After a breakpoint, it gives you the programming line (in assembly) directly responsible for altering the address the breakpoint was guarding against reading/writing/executing attempts. This is incredibly invaluable to understand the game's programming.
 
** '''Assembler:''' Allows the user to write their new lines of programming, which are then converted to the corresponding hex data. It's rare that emulators include this. Assemblers are often separate tools affecting the ROMs or to be inserted manually by users in ROMs.
 
** '''Assembler:''' Allows the user to write their new lines of programming, which are then converted to the corresponding hex data. It's rare that emulators include this. Assemblers are often separate tools affecting the ROMs or to be inserted manually by users in ROMs.
Line 228: Line 227:
  
 
===Emulators===
 
===Emulators===
{| class="wikitable" style="text-align:center;"
+
{| class="wikitable"
|+NES
 
|-
 
! scope="col"|Name
 
! scope="col"|Operating System(s)
 
! scope="col"|Version
 
! scope="col"|[[Emulation Accuracy|Accuracy]]
 
! scope="col"|Save states
 
! scope="col"|Cheat support
 
! scope="col"|Frame options
 
! scope="col"|Breakpoint
 
! scope="col"|Conditional Breakpoint
 
! scope="col"|Disassembler
 
! scope="col"|Assembler
 
! scope="col"|Tracer
 
! scope="col"|Memory view
 
! scope="col"|Tile view
 
! scope="col"|BG/OAM view
 
! scope="col"|Useful?
 
|-
 
|[[FCEUX]]
 
|Windows, Linux, macOS, Solaris, BSD
 
|2.2.3
 
|High
 
|✓
 
|✓
 
|✓
 
|✓
 
|✓
 
|✓
 
|✓
 
|✓
 
|✓
 
|✓
 
|✓
 
|✓✓
 
|}
 
 
 
* '''FCEUX''' is the golden standard for emulator debuggers, it's a fully featured one and very newbie friendly. So please check it out even if you're not interested in NES games as it's an excellent starting point for game modding. It's one of the few emulators, alongside PCSX2 and PPSSPP, to include conditional breakpoints.
 
 
 
{| class="wikitable" style="text-align:center;"
 
 
|+SNES
 
|+SNES
 
|-
 
|-
 
! scope="col"|Name
 
! scope="col"|Name
! scope="col"|Operating System(s)
+
! scope="col"|OS
 
! scope="col"|Version
 
! scope="col"|Version
! scope="col"|[[Emulation Accuracy|Accuracy]]
+
! scope="col"|[[Accuracy]]
 
! scope="col"|Save states
 
! scope="col"|Save states
 
! scope="col"|Cheat support
 
! scope="col"|Cheat support
 
! scope="col"|Frame options
 
! scope="col"|Frame options
 
! scope="col"|Breakpoint
 
! scope="col"|Breakpoint
! scope="col"|Conditional Breakpoint
+
! scope="col"|Conditional BP
 
! scope="col"|Disassembler
 
! scope="col"|Disassembler
 
! scope="col"|Assembler
 
! scope="col"|Assembler
Line 288: Line 247:
 
! scope="col"|Useful?
 
! scope="col"|Useful?
 
|-
 
|-
|[[Snes9x]]
+
| style="text-align: center;"|Snes9X
|Multi-platform
+
| style="text-align: center;"|Windows, Linux
|Gieger's r1.51
+
| style="text-align: center;"|Gieger's r1.51
|High
+
| style="text-align: center;"|High
|✓  
+
| style="text-align: center;"|✓  
|✓  
+
| style="text-align: center;"|✓  
|✓  
+
| style="text-align: center;"|✓  
|Address
+
| style="text-align: center;"|Address
|✗  
+
| style="text-align: center;"|✗  
|✓  
+
| style="text-align: center;"|✓  
|✗  
+
| style="text-align: center;"|✗  
|✓  
+
| style="text-align: center;"|✓  
|✓  
+
| style="text-align: center;"|✓  
|✗  
+
| style="text-align: center;"|✗  
|✗  
+
| style="text-align: center;"|✗  
|✓✓
+
| style="text-align: center;"|Yes
 
|-
 
|-
|[[BizHawk]]
+
| style="text-align: center;"|Bizhawk
|Windows
+
| style="text-align: center;"|Windows, Linux
|Main
+
| style="text-align: center;"|Main
|Cycle
+
| style="text-align: center;"|Cycle
|✓  
+
| style="text-align: center;"|✓  
|✓  
+
| style="text-align: center;"|✓  
|✓  
+
| style="text-align: center;"|✓  
|Range
+
| style="text-align: center;"|Range
|✗  
+
| style="text-align: center;"|✗  
|✓  
+
| style="text-align: center;"|✓  
|✗  
+
| style="text-align: center;"|✗  
|Read-only
+
| style="text-align: center;"|Read-only
|✓  
+
| style="text-align: center;"|✓  
|✓  
+
| style="text-align: center;"|✓  
|✗  
+
| style="text-align: center;"|✗  
|
+
| style="text-align: center;"|Unstable
 
|-
 
|-
|[[No$|NO$SNS]]
+
| style="text-align: center;"|NO$SNS
|Windows, [[POS_(Pong_Consoles)_CPUs_and_Other_Chips#Intel_CPU.27s|DOS]]
+
| style="text-align: center;"|Windows
|1.6
+
| style="text-align: center;"|1.6
|Mid
+
| style="text-align: center;"|Mid
|✗  
+
| style="text-align: center;"|✗  
|✗  
+
| style="text-align: center;"|✗  
|✗  
+
| style="text-align: center;"|✗  
|Address
+
| style="text-align: center;"|Address
|✗  
+
| style="text-align: center;"|✗  
|✓  
+
| style="text-align: center;"|✓  
|✗  
+
| style="text-align: center;"|✗  
|✓  
+
| style="text-align: center;"|✓  
|✓  
+
| style="text-align: center;"|✓  
|✓  
+
| style="text-align: center;"|✓  
|✓  
+
| style="text-align: center;"|✓  
|
+
| style="text-align: center;"|Detailed
 
|}
 
|}
 
* Older '''bsnes''' versions, and many of its forks - notably BizHawk and Marmelade, have an extensive VRAM viewer, some versions having ones topping NO$SNS, as well as a memory viewer. byuu says he wants to make a proper debugger himself called Loki (citing this as the reason for putting on hiatus the FEOE:Zero translation) but don't hold your breath for it.
 
 
* Geiger's custom build of an older version of Snes9x also is very useful. While the base emulator only has a background layer disabling hotkeys, cheat codes and frame advance features, this build adds a debugger, a tracer (to a log file), as well as a memory viewer/editor with the option to dump to external files to open with hex editors. There's also the very useful "What's Used" feature which colors areas in the memory viewer depending on what's onscreen (controllable with the BG layer hotkeys). However, it doesn't play nicely with nonstandard SNES cartridges. There's another custom Snes9x build by FuSoYa for Super FX2 games.
 
 
* As for '''NO$''' emulators, right off the bat when you start it, they have a fully editable debugger (upper-left), RAM memory viewer (lower-left), hardware register (upper-right) and stack (lower-right). You can set breakpoints on addresses or programming lines (opcodes). You can view I/O status (for stuff like sound and DMA) with the F10 hotkey.
 
 
And most importantly, you can view the contents of the VRAM in real-time. It's particularly useful in the case of the SNES (though there's no Mode-7 mode), as there's detailed info about tilemap tiles (the other alternative was to get a ZSNES save state and then load it in an external viewer tool to get that info). It also has sprite information. It's not ideal but far more rom modding oriented than other tools which don't even display 16 tiles per line thus often scrambling the view.
 
 
NO$PSX and NO$GBA's special debugger build (regular build doesn't have the debugger) also show 3D textures, and in the case of NO$GBA the 3D models too.
 
 
However, the main flaw these have is the lack of decent frame advancing, save state, and cheat options. You'll need CheatEngine, and importing SRAM files from other files most probably. Also, the base emulation isn't without its flaws (for example, NO$SNS crashes with Quintet games because sound isn't emulated).
 
 
 
 
* '''DeSmuME''' has some older builds on gbatemp with interesting modder-friendly options:
 
** Custom build allowing searching for unused RAM areas. If you want to change the game's programming you'll need to find an empty place in memory to put your new code, so this is extremely useful.
 
** Custom build allowing to select a DEBUG option under Slot-1. The console window will show every single file loaded off the cartridge in real time, and it's also logged to a text file. If you're, say, looking for the title screen to change it, you can this way narrow down which files you need to look for.
 
  
 
==General resources==
 
==General resources==
Line 371: Line 312:
 
* [http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm XVI32]
 
* [http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm XVI32]
 
* [http://www.romhacking.net/utilities/219/ Translhextion]
 
* [http://www.romhacking.net/utilities/219/ Translhextion]
 
===Roster editors===
 
* [https://www.simheads.com/products/apfe.4 All-Pro Football Editor (APFe)] - Also it's possible to bring back franchise mode with using this tool[https://youtu.be/2lF9_RIOeCw?t=795].
 
* [https://forum.nhl94.com/index.php?/topic/20285-tecmo-super-bowl-3-editing-rosters/ TSB3 editor]
 
  
 
==Game-specific==
 
==Game-specific==
 
===EarthBound===
 
===EarthBound===
* Starmen.net's [https://forum.starmen.net/forum/Community/PKHack PK Hack board] – Home of the hacking utility [https://forum.starmen.net/forum/Community/PKHack/CoilSnake-v1-0-Cool-Fish-Type-Edition/first CoilSnake], a tool that dumps data from the USA release of EarthBound into an editable format (mainly config files, plain text, and PNG spritesheets) and compiles everything back into the ROM.
+
* [http://www.starmen.net Starmen.net] – Home of the hacking utility [http://starmen.net/pkhack/ PK Hack], an editor for modifying the EarthBound/Mother 2 ROM. Has an active hacking community in the PK Hack section of its forums, where links to completed hacks can also be found.
 
 
Threads for completed hacks are listed, as is the original PK Hack tool, which was adequate for making hacks when it first came out, but is now infamous for corrupting ROMs when pushed too far.
 
  
 
===Final Fantasy VI===
 
===Final Fantasy VI===
* [https://www.ff6hacking.com/forums/portal.php FF6Hacking] – Home to a large community of Final Fantasy VI hackers, complete with active forums, patches, FAQs and guides for those looking to get into hacking the game.
+
* [http://www.ff6hacking.com/forums/portal.php FF6 Hacking] – Home to a large community of Final Fantasy VI hackers, complete with active forums, links to patches, and FAQs and guides for those looking to get into hacking the game.
* [https://www.ff6hacking.com/wiki/doku.php FF6Hacking Wiki] – The most complete Final Fantasy VI hacking wiki with information on the SNES version but also on Final Fantasy VI Advance (GBA).
 
  
===Final Fantasy hacktics===
+
===Final Fantasy Tactics===
 
* [http://ffhacktics.com/ Final Fantasy Hacktics] – Community for FFT hacking with a variety of completed hacks, patches, and resources.
 
* [http://ffhacktics.com/ Final Fantasy Hacktics] – Community for FFT hacking with a variety of completed hacks, patches, and resources.
  
Line 392: Line 326:
 
* [http://www.feshrine.net/hacks.html Fire Emblem Shrine] – An active and prominent Fire Emblem hacking community.  Hosts a variety of completed hacks and FAQs to get you started.
 
* [http://www.feshrine.net/hacks.html Fire Emblem Shrine] – An active and prominent Fire Emblem hacking community.  Hosts a variety of completed hacks and FAQs to get you started.
 
* [http://serenesforest.net/forums/index.php?showforum=8 Serenes Forest] – Another active and prominent Fire Emblem hacking community, though perhaps a bit more active than Fire Emblem Shrine.
 
* [http://serenesforest.net/forums/index.php?showforum=8 Serenes Forest] – Another active and prominent Fire Emblem hacking community, though perhaps a bit more active than Fire Emblem Shrine.
* [https://feuniverse.us/ Fire Emblem Universe] – Yet another active Fire Emblem Hacking community, about as active as Serenes Forest if not as well known.
 
  
 
===The Legend of Zelda: A Link to the Past===
 
===The Legend of Zelda: A Link to the Past===
* [http://www.zeldix.net Zeldix] - An active forums for A Link to the Past hacking, along with a database of MSU-1 hacks.
+
* [http://forum.metroidconstruction.com/index.php/board,27.0.html?PHPSESSID=c83e531bb78ed7c6a3a4de5b45756595 Zelda Construction] – Despite its huge popularity, the hacking community for ALttP is relatively small.  This is mainly due to the lack of a truly good editor, though one is in the works.  This community is a spin-off of Metroid Construction devoted to hacking of ALttP and other games in the series.
 
 
===New Super Mario Bros.===
 
* [https://nsmbhd.net The NSMB Hacking Domain] - A large and active forum for New Super Mario Bros. hacking with tons of resources and hacks.
 
  
 
===Pokémon===
 
===Pokémon===
 
* [http://www.pokecommunity.com/forumdisplay.php?f=37 The PokéCommunity] – Very active (and helpful) Pokémon hacking community.
 
* [http://www.pokecommunity.com/forumdisplay.php?f=37 The PokéCommunity] – Very active (and helpful) Pokémon hacking community.
* [https://projectpokemon.org/ Project Pokémon] - An active Pokémon hacking community that maintains a database of past events including promotional giveaways and wonder cards.
 
 
===Shin Megami Tensei Series===
 
* [https://shrinefox.com/ Shrine Fox] – A collection of Shin Megami Tensei mods, tools, and guides. Primarily contains Persona and SMT V mods.
 
  
 
===Sonic the Hedgehog===
 
===Sonic the Hedgehog===
Line 425: Line 351:
 
* [http://metroidconstruction.com Metroid Construction] – The most prominent and active Super Metroid hacking community currently.  Hosts a large variety of hacks, resources, FAQs, and an active community and forum.  Originated in m2k2 before becoming its own dedicated site.
 
* [http://metroidconstruction.com Metroid Construction] – The most prominent and active Super Metroid hacking community currently.  Hosts a large variety of hacks, resources, FAQs, and an active community and forum.  Originated in m2k2 before becoming its own dedicated site.
 
* [http://wiki.metroidconstruction.com/doku.php Metroid Construction Wiki] – As its name implies, a wiki created by the Metroid Construction community.
 
* [http://wiki.metroidconstruction.com/doku.php Metroid Construction Wiki] – As its name implies, a wiki created by the Metroid Construction community.
* [http://www.metroid2002.com/ Metroid 2002] – The former most prominent and active Super Metroid hacking community.  While it has since been foregone in favor of Metroid Construction, it can still be a valuable resource for knowledge about the more advanced mechanics and inner workings of Super Metroid (as well as other games in the series).
+
* [http://www.metroid2002.com/ Metroid 2002] – The former most prominent and active Super Metroid hacking community previously.  While it has since been foregone in favor of Metroid Construction, it can still be a valuable resource for knowledge about the more advanced mechanics and inner workings of Super Metroid (as well as other games in the series).
  
 
==Downloads==
 
==Downloads==
* [https://mega.nz/#F!R8RCnZZY!Zxyqoynu9GVWIwFHCISK2Q!og53jJJL ROM Hacks]
+
* [https://mega.co.nz/#F!R8RCnZZY!Zxyqoynu9GVWIwFHCISK2Q!og53jJJL ROM Hacks]
[[Category:Modding]]
+
 
 
[[Category:FAQs]]
 
[[Category:FAQs]]

Please note that all contributions to Emulation General Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Emulation General Wiki:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)