News: 11 March 2016 - Forum Rules

Author Topic: FF VI — multiple patches?  (Read 487 times)

Modus Ponens

  • Newbie
  • *
  • Posts: 1
  • If P, then Q. P. Therefore, Q.
    • View Profile
FF VI — multiple patches?
« on: April 04, 2021, 06:25:42 pm »
I want to play some FF VI hacks, but there are almost 200 of them here, so I would hope to be able to apply multiple patches to the same ROM. In particular, I would like to try out the Edgar's Bazooka hack, the hack that lets you press Y to switch between the equipment and relics menus, and a general bugfix patch, if not several others as well. Is there any guide to applying multiple patches for this particular game, considering there are so many of them here on RHDN? Or, if not, does anyone here have any experience with doing what I'm trying to do? Thanks in advance!

FAST6191

  • Hero Member
  • *****
  • Posts: 3299
    • View Profile
Re: FF VI — multiple patches?
« Reply #1 on: April 05, 2021, 08:44:44 am »
Ever the fun question but justifiable.

There tends to be two, maybe three problems with applying multiple patches

1) Them targetting different versions of the ROM.
With header and without header tending to be the big one on older systems where there were different dumping standards, and on newer ones where people explode the games into its component files and then put them back together (or worse still for things like the PS1 then one targets the original Scene release made in some long forgotten format where another targets what someone might do if they popped a CD in a drive today and ripped it with a modern format) then you also have that to worry about.
Obviously you also have regions and revisions (think https://www.zeldaspeedruns.com/oot/generalknowledge/version-differences with such things tending to make for some radical internal differences, not that a dumb patching format that is little more than "go here, change this data to this" ever stood any hope in such a scenario) but that is less of an issue for most things around here.

So yeah you have to be away of what goes here for headers/target versions. This might then involve either modifying patches (don't unless you know what you are doing already) or maybe removing a header, patching one patch, adding a header, patching another, removing... until done with the list.

2) Hackers either use the same area (free space is often at a premium on many systems and not all hacks will be made with all other hacks and potential future hacks in mind) or patch the same thing. Conflicts or collisions being the term of choice here
http://www.romhacking.net/utilities/1386/
http://www.romhacking.net/utilities/1268/
http://www.romhacking.net/utilities/1038/


The possible third is a variation on 2. Say you edited a font in a game. I come along and want to do more. Somewhere in the game is likely a pointer that all of the font locations are derived from. If via that pointer I shuffle it to far later in the game where I found some free space (maybe I want to add a bunch more characters) you can edit the font's original location all day long but as the game will now be fetching it from somewhere else it will have no effect on that. This is also one of the problems with the "collision checker" stuff noted above for if you did not touch said base pointer in your hacks then it will say no collision all day long but... yeah.


Hackers however know all this sort of thing so will often be aware of what the popular hacks are and make theirs work with it, or indeed be hacks to further improve/tweak other hacks ("I like this translation but did not like their font so apply then translation and then apply this" sort of thing).
To that end read the readmes/release notes/nfos with the patches you are looking to stack/nest. Many will have designed things to work with others and might even suggest an order of application, or sometimes even have separate versions to deal with that. You can try it yourself if you like as well -- most of the time a bit of common sense works well (if say a translation does one thing and you want another patch to further tweak it then the further tweak probably ought to be second lest the translation overwrite the further tweak's work).