Difference between revisions of "Apply ROM hacks and translations"

From Emulation General Wiki
Jump to navigation Jump to search
(Created page with "There are games which were never translated officially. Some talented people (this might include you) took these untranslated ROM images and altered them in a process known as...")
 
(Apply the Patch)
Line 21: Line 21:
  
 
==Apply the Patch==
 
==Apply the Patch==
It depends on which format the patch is in.
+
It depends on which format the patch is in. '''Make a backup copy of the original untouched ROM just in case!'''
  
===IPS===
+
Also if you're on Android, try [http://www.romhacking.net/utilities/959/ this IPS/UPS/BPS/PPF patcher] with SNES header / MD checksum fixes!
Very common patching format. It replaces bytes at specific addresses in the file with bytes from the translation, so it's not suited to cases where the translation swaps huge quantities of data around (xdelta would be better). It's also nonfunctional with ROM sizes bigger than 16MB.
 
  
 +
===IPS and UPS===
 +
IPS is a very common patching format for third and fourth generation ROMs. It replaces bytes at specific addresses in the file with bytes from the translation, so it's not suited to cases where the translation swaps huge quantities of data around (xdelta would be better) because then it would just include the data as-is in the patch and you might then as well distribute the ROM.
 +
 +
IPS doesn't work properly with ROM sizes bigger than 16MB, in which cases it deletes the parts of the file past the 16MB mark.
 +
 +
UPS works just like IPS, though it doesn't have the 16MB ROM size limitation. Not as nearly as common and supported though, aside from GBA projects.
 +
 +
Due to how UPS and IPS work, assuming many patches alter different things (as in, they don't conflict and modify the same areas in the ROM) and work on the same base rom, you can apply them in succession. For example, a patch changing only the character sprites, and another changing only the text, should be okay to apply in succession. It's a very bad idea to apply two patchs altering the same thing unless you know it's a fix (like a change to an ugly font or a nasty bug). Just use common sense.
 +
 +
====Emulators Supporting IPS/UPS patching on the fly====
 
Some emulators are compatible with IPS patches. You just need to put the untranslated game ROM in the same folder as the IPS patch, with both of them sharing the same file name sans file extension. When you play the game, the emulator applies the translation automatically during gameplay. Some of these emulators include:
 
Some emulators are compatible with IPS patches. You just need to put the untranslated game ROM in the same folder as the IPS patch, with both of them sharing the same file name sans file extension. When you play the game, the emulator applies the translation automatically during gameplay. Some of these emulators include:
 
* '''NES:''' FCEUX
 
* '''NES:''' FCEUX
Line 32: Line 41:
 
* '''GBA:''' VBA, VBA-M, mGBA
 
* '''GBA:''' VBA, VBA-M, mGBA
  
But not all emulators might have this feature. Also, you might prefer a single ROM file with the translation. So you can do it the proper way and generate the English-translated ROM!
+
As for UPS, however, it's not as widely supported. Here's a bunch of emulators supporting it:
* Get LunarIPS.
+
* '''SNES:''' bsnes
* Open IPS file.
+
* '''GBA:''' VBA-M, mGBA
* Select "Apply IPS Patch".
+
 
 +
The ROM itself remains unaltered (untranslated, etc) during this process.
 +
 
 +
====Applying the Patch directly on the ROM====
 +
Not all emulators support patching ROMs on the fly with IPS/UPS patches. Also, you might prefer a single ROM file with the translation. So you can do it the proper way and generate the English-translated ROM!
 +
 
 +
'''IPS - Tool Used:''' LunarIPS
 +
 
 +
* Open IPS file. Select "Apply IPS Patch". (You can create IPS patches too using LunarIPS.)
 
* Choose IPS file.
 
* Choose IPS file.
 
* Choose original untranslated ROM file.
 
* Choose original untranslated ROM file.
* Now choose a name and a directory for your translated ROM file, and save.
+
'''* LunarIPS overwrites the original ROM with the translated ROM.'''
* LunarIPS then generates the translated ROM file!
 
  
You can create IPS patches too using LunarIPS.
+
'''UPS - Tool Used:''' [http://www.romhacking.net/utilities/519/ Tsukuyomi UPS]
  
===UPS===
+
There are three fields to fill. The first is for the UPS patch file. The second is for the unmodified ROM. The third is for where you want to save '''a copy''' of the ROM with the translation applied. Once you fill them all, click "Apply Patch".
Works just like IPS, though it doesn't have the 16MB ROM size limitation. Not as nearly as common and supported though.
 
  
Some emulators are compatible with UPS patches. You just need to put the untranslated game ROM in the same folder as the patch, with both of them sharing the same file name sans file extension. When you play the game, the emulator applies the translation automatically during gameplay. Some of these emulators include:
+
===xdelta===
* '''GBA:''' VBA-M, mGBA
+
One of the main IPS/UPS format shotcomings is how they couldn't handle unchanged data moving around, and would just treat the whole data as "changes" and include all of it in the patch. xdelta solves this issue, bringing the size of the patch down considerably. Thus, it's very popular for recent translations on the PSP and DS.
 +
 
 +
Almost no emulators support xdelta patching on the fly.
 +
 
 +
====Applying the Patch directly on the ROM====
 +
'''xdelta - Tool Used:''' [http://www.romhacking.net/utilities/704/ Delta Patcher] (Lite version)
 +
 
 +
Note the program will throw an error when the unmodified ROM isn't exactly what it expects it to be, so that you know that your got the wrong ROM for patching.
 +
 
 +
===PPF (PlayStation Patch Format)===
 +
Old format for patching game ISOs on disc-based systems, originally conceived for PS1 patches but also expanded for other systems.
 +
 
 +
'''PPF - Tool Used:''' [http://www.romhacking.net/utilities/354/ PPF-O-Matic]
 +
 
 +
===BPS (Beat Patching Format)===
 +
The newest patching format in the scene. It aims to fix shortcomings of both xdelta and IPS/UPS patches.
 +
 
 +
In addition to modifications, beat patches can detect data insertions and deletions. Patch formats that can only detect modifications will fail completely, producing file sizes equal or larger to the original file sizes in these cases. This allows for substantially smaller patches on non-ROM based systems and certain ROM types (eg Mystic Ark is half the size this way.) beat patches can be used to patch either a single file or an entire directory full of files and subfolders, thus allowing the format to handle ROMs, CDs, PC games, etc..
  
But not all emulators might have this feature. Also, you might prefer a single ROM file with the translation. So you can do it the proper way and generate the English-translated ROM!
+
====Emulators Supporting BPS patching on the fly====
* Get Tsukuyomi UPS
+
* '''SNES:''' bsnes
* Select Browse in front of the "UPS Patch" field and choose the UPS patch file
+
* mednafen
* Select Browse in font of the "Input Source File" field and choose the untranslated ROM
 
* Choose where you want to save the generated translated ROM file under "Target"
 
* Apply Patch.
 
  
===xdelta===
+
====Applying the Patch directly on the ROM====
 +
'''BPS - Tool Used:''' [http://www.romhacking.net/utilities/893/ beat]
  
===PPF===
+
===After Applying the Patch===
 +
====Checksums====
 +
Applying the patches sometimes result, if the patch author isn't careful enough (which is often the case) in the checksum being wrong. While in the case of SNES games this isn't really a problem with emulators, MD/GEN games will crash to a red screen.
  
===beat===
+
To fix the checksum of MD/GEN ROMS, use [http://www.romhacking.net/utilities/342/ this tool].

Revision as of 19:47, 28 August 2015

There are games which were never translated officially. Some talented people (this might include you) took these untranslated ROM images and altered them in a process known as ROM Hacking. They produced in the end a working English ROM (or whatever their language is).

But how would they distribute it? While Chinese ROM hackers don't give a shit and just upload the translated ROM as-is, the rest of the world is another matter. Anyone doing this, especially ROM hackers since they're more... under the vengeful watchful eye of the publishers for the first legal slip, would be asking for legal hell. The ROM data is copyrighted data to the original company, and them not selling their product here doesn't mean they'll let someone pirate their games.

ROM hackers not dumb enough to risk having their asses sued resort to another solution.

They upload just a patch. It's a file containing only the modifications, and nothing else. When applied to the original Japanese ROM, it produces the English-translated ROM the hacker has in their computer. Only a few megabytes generally, so very practical for sharing. This patch on its own is legal, it's meaningless without a copy of the ROM/ISO and hence harmless on its own.

To apply a patch you'll need to do the following steps:

Get the ROM / ISO

You need to read the readme included with the patch to know what ROM version you exactly need:

  • The game name
  • The region: Japanese, US, Europe...
  • The revision
  • The dump: [!] means good dump, but you can get a No-Intro dump for that.

Either download it off a search engine, or dump it yourself if you can.

In the case of SNES games, the patch needs to be either on rom with a header or without a header. You can convert a given rom between both states with the tush utility. In case the readme doesn't tell which one you need to have, you can tell if the patch is applied and corrupts everything in-game.

Apply the Patch

It depends on which format the patch is in. Make a backup copy of the original untouched ROM just in case!

Also if you're on Android, try this IPS/UPS/BPS/PPF patcher with SNES header / MD checksum fixes!

IPS and UPS

IPS is a very common patching format for third and fourth generation ROMs. It replaces bytes at specific addresses in the file with bytes from the translation, so it's not suited to cases where the translation swaps huge quantities of data around (xdelta would be better) because then it would just include the data as-is in the patch and you might then as well distribute the ROM.

IPS doesn't work properly with ROM sizes bigger than 16MB, in which cases it deletes the parts of the file past the 16MB mark.

UPS works just like IPS, though it doesn't have the 16MB ROM size limitation. Not as nearly as common and supported though, aside from GBA projects.

Due to how UPS and IPS work, assuming many patches alter different things (as in, they don't conflict and modify the same areas in the ROM) and work on the same base rom, you can apply them in succession. For example, a patch changing only the character sprites, and another changing only the text, should be okay to apply in succession. It's a very bad idea to apply two patchs altering the same thing unless you know it's a fix (like a change to an ugly font or a nasty bug). Just use common sense.

Emulators Supporting IPS/UPS patching on the fly

Some emulators are compatible with IPS patches. You just need to put the untranslated game ROM in the same folder as the IPS patch, with both of them sharing the same file name sans file extension. When you play the game, the emulator applies the translation automatically during gameplay. Some of these emulators include:

  • NES: FCEUX
  • SNES: bsnes, Snes9X, ZSNES
  • GB: VBA
  • GBA: VBA, VBA-M, mGBA

As for UPS, however, it's not as widely supported. Here's a bunch of emulators supporting it:

  • SNES: bsnes
  • GBA: VBA-M, mGBA

The ROM itself remains unaltered (untranslated, etc) during this process.

Applying the Patch directly on the ROM

Not all emulators support patching ROMs on the fly with IPS/UPS patches. Also, you might prefer a single ROM file with the translation. So you can do it the proper way and generate the English-translated ROM!

IPS - Tool Used: LunarIPS

  • Open IPS file. Select "Apply IPS Patch". (You can create IPS patches too using LunarIPS.)
  • Choose IPS file.
  • Choose original untranslated ROM file.

* LunarIPS overwrites the original ROM with the translated ROM.

UPS - Tool Used: Tsukuyomi UPS

There are three fields to fill. The first is for the UPS patch file. The second is for the unmodified ROM. The third is for where you want to save a copy of the ROM with the translation applied. Once you fill them all, click "Apply Patch".

xdelta

One of the main IPS/UPS format shotcomings is how they couldn't handle unchanged data moving around, and would just treat the whole data as "changes" and include all of it in the patch. xdelta solves this issue, bringing the size of the patch down considerably. Thus, it's very popular for recent translations on the PSP and DS.

Almost no emulators support xdelta patching on the fly.

Applying the Patch directly on the ROM

xdelta - Tool Used: Delta Patcher (Lite version)

Note the program will throw an error when the unmodified ROM isn't exactly what it expects it to be, so that you know that your got the wrong ROM for patching.

PPF (PlayStation Patch Format)

Old format for patching game ISOs on disc-based systems, originally conceived for PS1 patches but also expanded for other systems.

PPF - Tool Used: PPF-O-Matic

BPS (Beat Patching Format)

The newest patching format in the scene. It aims to fix shortcomings of both xdelta and IPS/UPS patches.

In addition to modifications, beat patches can detect data insertions and deletions. Patch formats that can only detect modifications will fail completely, producing file sizes equal or larger to the original file sizes in these cases. This allows for substantially smaller patches on non-ROM based systems and certain ROM types (eg Mystic Ark is half the size this way.) beat patches can be used to patch either a single file or an entire directory full of files and subfolders, thus allowing the format to handle ROMs, CDs, PC games, etc..

Emulators Supporting BPS patching on the fly

  • SNES: bsnes
  • mednafen

Applying the Patch directly on the ROM

BPS - Tool Used: beat

After Applying the Patch

Checksums

Applying the patches sometimes result, if the patch author isn't careful enough (which is often the case) in the checksum being wrong. While in the case of SNES games this isn't really a problem with emulators, MD/GEN games will crash to a red screen.

To fix the checksum of MD/GEN ROMS, use this tool.