+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  PC game patch distribution?
Pages: [1]
Author Topic: PC game patch distribution?  (Read 2 times)
Moogle Warrior
Guest
« on: September 09, 2009, 10:59:12 am »

My question is: how can I do it without just handing around a hacked executable and the translated data files?

Granted, there are still about 500 megs of data files that wouldn't need to be bundled with it, but I noticed in browsing the PC translations section that RH.net can't host patches that contain the hacked executable. Unfortunately, Google has failed me on this one.
rmco2003
Guest
« Reply #1 on: September 09, 2009, 11:01:02 am »

Couldn't you just create an IPS or equivalent patching format file for people to patch the exe?
Moogle Warrior
Guest
« Reply #2 on: September 09, 2009, 11:18:15 am »

It had occurred to me to IPS it and include a batch file and ips.exe, but that's sort of a last resort. I'm trying to find a more elegant solution, if there is one.
KaioShin
Guest
« Reply #3 on: September 09, 2009, 11:21:39 am »

The people from the visual novel community who are experienced in this stuff usually build installation programs that patch/overwrite all files as needed. It's possible those installers still contain the modified exe within, but still it's at least somewhat obfuscated.
golden
Guest
« Reply #4 on: September 09, 2009, 11:30:47 am »

A very popular installation system is the one from Nullsoft. It's fully scriptable and simple to use. Plus, the documentation is pretty extensive and full of examples.
BRPXQZME
Guest
« Reply #5 on: September 09, 2009, 11:39:40 am »

You can use some sort of binary diff tool (for example, bsdiff or xdelta) and patch using its respective patcher. bsdiff and xdelta are designed to handle one file at a time, so you’ll probably want to write some sort of program or script to handle multiple files as a batch job (and make backups, etc.). Not the most pleasant process imaginable, but it beats writing a custom patcher, and it will be an honest-to-God patch instead of just including the files.

People use IPS for ROM’s because it’s convenient for many ROM-related patching needs, not because it’s a good end-all be-all format. It’s not that great for PC-app changes because it concentrates on one file at a time (okay, so it’s not really that different from anything else in that regard). It’s technically useless for any file bigger than 16MB. It is designed for simplicity, so you don’t really get much of a compression bonus out of it, nor does it check to see if you’re patching the right file. But, I suppose if none of those are limitations, you could use it.

And then there’s UPS....
Moogle Warrior
Guest
« Reply #6 on: September 09, 2009, 01:51:00 pm »

The way the game works, all the resources are stored unencrypted (including event scripts), and I've hacked the pointers in the executable to point to the English versions (as well as translated the two small string tables stored in the executable itself). The translated resources can be distributed freely (rather than patched over) because I rebuilt them from scratch based on the original file specifications.

Most visual novel translations work on a similar premise, and use ONScripter to emulate the original executable (which doesn't apply to the game I've translated, unfortunately.)

Basically, only the executable needs patching over, for which I suppose binary differentiation is the only real way to go. Actually, I found something that'll work in a part of the Utilities section I didn't notice before, but thanks for the input anyway.
Spinner 8
Guest
« Reply #7 on: September 10, 2009, 04:08:34 am »

If you haven't yet found NINJA here on RHDN, you may want to look into that. It's got the ability to patch entire directories (or at least I think so; I haven't made patches with it myself).
Pages: [1]  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC