News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Releasing a patch  (Read 1222 times)

werewolfslayr925

  • Jr. Member
  • **
  • Posts: 86
    • View Profile
Releasing a patch
« on: July 09, 2018, 05:35:35 pm »
What are the typical mechanics/hindrances/nuances to releasing a completed patch? I ask for two reasons:

1. I am looking to release a translation of Dragon Warrior relatively soon and want to know the ins and outs of release.
2. I understand that the translation of Metal Slader Glory is complete and tested as of March of this year, but the patch has yet to be released. I'm curious as to what could be holding it back.
As the harbor is welcome to the sailor, so is the last line to the scribe.

- complaint in the margin of a medieval manuscript

filler

  • RHDN Patreon Supporter!
  • Hero Member
  • *****
  • Posts: 802
  • "WINNERS DON'T SELL REPROS"
    • View Profile
    • Filler's Translation Projects
Re: Releasing a patch
« Reply #1 on: July 09, 2018, 07:45:43 pm »
What are the typical mechanics/hindrances/nuances to releasing a completed patch? I ask for two reasons:

1. I am looking to release a translation of Dragon Warrior relatively soon and want to know the ins and outs of release.

It's not too complicated. When I release something I make a readme.txt file. I include some information like the release date and patch version, credits of who worked on the patch, instructions, a short description of the game, licensing information, and any notes that I, or another member of the team, want to add.

I then make a couple patch files. I've been making an IPS and a BPS using Floating IPS recently. I used to include NINJA (RUP I think?) but it seems like D's format isn't used much. Dynamic Designs releases an IPS, BPS, UPS, and XDelta patch for all current releases. Really you can release in whatever format you want. IPS is pretty standard, but you may have to use a format like XDelta if your patch is large (I think).

Pop those in a .zip or .7z archive (you could use whatever archive format you like of course), and submit via the submission form. Refer to the submission form for specific instructions, but basically you want to make your file web accessible and submit a link to it. You'll need to pick or add an author, and you'll have to include some information like a short description and some information on the image file.

You can use the new patcher to get MD5, CRC32, and SHA-1 hashes for the ROM file if you need. Then wait about 24-48hrs for the submission to be automatically approved, or reviewed by a staffer and approved. After that you may want to submit credits for the patch, and/or write and submit a news article.

Alternately you could just post your patch on your website someplace and call it a day. Up to you.

2. I understand that the translation of Metal Slader Glory is complete and tested as of March of this year, but the patch has yet to be released. I'm curious as to what could be holding it back.

EDIT: I submitted without responding to this. You'll have to ask Pennywise to know for sure. In general, stuff that holds up projects I've worked on tend to be bug fixes for issues found at the last minute. Sometimes people are waiting to get information from team members for the readme. Sometimes there is some thing that's important to someone like a splash screen, or a font change that stalls release. It can be any number of things. Maybe the person with all the files just loses interest.

werewolfslayr925

  • Jr. Member
  • **
  • Posts: 86
    • View Profile
Re: Releasing a patch
« Reply #2 on: July 10, 2018, 10:17:32 am »
Thanks, filler!

I've been making an IPS and a BPS using Floating IPS recently.

Is there a significant difference between these files?
As the harbor is welcome to the sailor, so is the last line to the scribe.

- complaint in the margin of a medieval manuscript

filler

  • RHDN Patreon Supporter!
  • Hero Member
  • *****
  • Posts: 802
  • "WINNERS DON'T SELL REPROS"
    • View Profile
    • Filler's Translation Projects
Re: Releasing a patch
« Reply #3 on: July 10, 2018, 10:37:13 am »
Thanks, filler!

Is there a significant difference between these files?

Yeah, kinda. If I remember correctly, BPS performs some kind of checksum on the ROM so you can't patch the wrong one. It may include some meta data too. IPS is "dumber" and just applies to whatever you specify. It's been around since the beginning though, and has wide support in emulators. I'd encourage you to do a quick search on the patching formats I mentioned for more details.

Kazuto

  • Newbie
  • *
  • Posts: 1
    • View Profile
Re: Releasing a patch
« Reply #4 on: July 10, 2018, 03:21:25 pm »
Thanks, filler!

Is there a significant difference between these files?

I didn't even realize BPS was a thing until seeing it mentioned in this topic. But a quick search led me to the details: expanding on what filler said, the difference between IPS and BPS is user-friendliness. IPS requires the user to know whether their game is headered or not. BPS will patch the correct areas regardless, because it detects and adjusts for headers.

BPS also has no size limitation, whereas an IPS patch tops out at 16 MB. Not really an issue for older games, but it's easily possible for anything NDS and beyond to require more than 16 MB worth of changes.

For all intents and purposes, BPS really ought to replace IPS, since it's essentially the same thing without the limitations.

FAST6191

  • Hero Member
  • *****
  • Posts: 2374
    • View Profile
Re: Releasing a patch
« Reply #5 on: July 10, 2018, 06:03:47 pm »
Going further IPS does not handle data relocation.
Not really a problem with pre file system consoles (as far as commercial games go then basically everything that is not a CD, floppy disc or the DS or newer) but on a file system based console if you rebuilt it with all the same files in the same order but it turned out the files were now 20 bytes ahead then IPS would see changes everywhere and patch accordingly (you then ending up with a massive patch file full of the original game's data). A better patching tool (like Xdelta or BSDiff) would search for the relocated data and carry on with life.

IPS (or at least most versions*) also don't handle adding data to files that well. Not always a problem on old systems but any GBA game you can expand to 32 megabytes trivially, and people often did use extra space. Also said 32 megabytes are larger than the conventional 16 megabytes of the patching program's window (though in practice hard file size limit for most patchers).

*I don't think anybody quite knows who originally coded IPS any more, and even then as there was nothing resembling a main project or central authority there are hundreds of forks aimed at fixing "problems" and even greater numbers of flawed implementations of patchers and patch making (classic example being IPS technically should end with a EOF in ASCII to signify end of file, some patch makers leave this out and some patching programs crash or refuse to patch when they do not see it).

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 6579
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: Releasing a patch
« Reply #6 on: July 11, 2018, 01:46:09 am »
IPS is a problem on NES with PRG-ROM expansion as the majority of mappers expected the last ROM bank to stay last. Of course that means if CHR-ROM is present it will be forceably moved as well.

I'm not sure what exactly xdelta does but is it overkill on something like NES or SNES? I believe it was designed for CD consoles like PS1?
"My watch says 30 chickens" Google, 2018

Nightcrawler

  • Hero Member
  • *****
  • Posts: 5716
    • View Profile
    • Nightcrawler's Translation Corporation
Re: Releasing a patch
« Reply #7 on: July 11, 2018, 08:57:18 am »
KingMike, I think you're thinking of the PPF (Playstation patch file)format.

xdelta was designed for general delta encoding of binary files. xdelta is a great format. It's very advanced with many years of development behind it. It's open source too. I include xdelta patches with all of my distributions. We have patchers/patch creators here that utilize xdelta.

MultiPatch (MacOS X)  - https://www.romhacking.net/utilities/746/
Delta Patcher (Win/Linux) - https://www.romhacking.net/utilities/704/
xdelta UI (Win .NET/Linux Mono) - https://www.romhacking.net/utilities/598/
TransCorp - Over 20 years of community dedication.
Dual Orb 2, Wozz, Emerald Dragon, Tenshi No Uta, Glory of Heracles IV SFC/SNES Translations