The short answer
I wouldn't rely on it. The quick and dirty and reasonably
safe way to do this is to use FFHackster on an unedited ROM, then make a COPY of that ROM to apply those other patches to.Do not trust FFHackster to handle a ROM with external changes
. It might work just fine if you're careful, but it's asking for trouble -- and Hackster will have no hesitation about clobbering things it doesn't know anything about.The much, much longer answer that is really more about how people should be approaching ROM hacking in general
If this is just a quick hack that you are slapping together in a few days/weeks, then you can probably avoid this and stick to my short answer. But if this is a serious long-term project, I highly recommend considering my advice below:
I cannot overstate this enough.... you NEED
a build environment. Each individual change that you want to make should be separated as much as possible (or as much as is reasonable) and stored in separate files. Preferably
human readable text files that allow for comments so you can know wtf that change does 3 weeks down the road. Though in some cases you'll probably be stuck with IPS patches.
Then you need a build script that you can run, which takes ALL of those changes, applies them to a fresh, untouched ROM (in an order that you can configure and customize) -- and generates your final hacked ROM.
This provides numerous benefits:
- VERSION CONTROL. You can throw your project up on git. You'll never lose progress, you'll be able to make branches to experiment with new things without worrying about trashing all the work you've done, etc. All that great version control stuff that is criminially absent from most approaches to retro rom hacking
- You can cherry pick/remove individual changes if they cause a problem down the road merely by deleting (or commenting out or disabling) an individual file, rather than going back into your hacked ROM and "undoing" the hack
- ROM/Project destroying conflicts can't happen anymore because there's no ROM to destroy.
- Other conflicts can still happen but they can be minimized by isoliting individual changes. Which makes conflicts much easier to find and fix.
- This makes it MUCH easier to work in a group. Seriously, trying to have multiple people editing the exact same version of a ROM is a nightmare. But having people contributing changes to a git repo is done millions of times a day without problems.
- I can go on all day with reasons. Seriously... this is the way to do it
You probably should never be saving your changes directly to the ROM. That makes them very hard to track, and makes it very easy to forget what you've done, and it makes it really hard to rewind to an earlier version
when something goes wrong. And... frankly... it makes things harder to edit. Editing a binary is much harder than editing a text file.
Unfortunately.... I made FFHackster like 20 years ago when "in-place" editing was kind of the norm. But you can jump through some hoops to work around it.
- As mentioned in the short answer, Hackster should only touch its own copy of the ROM.
- Make some kind of script/shortcut to generate an IPS from the ROM Hackster is modifying
- Run that script after you save changes in Hackster
- Add a line in your build script (the one that actually will produce your hacked ROM file) to apply that IPS to the target ROM. This should probably be the first change it applies, and you should layer other changes on top of it
You can probably even merge those last three steps to create an IPS, and apply it in the build script. Or -- I guess skip the IPS entirely and just apply your changes to the Hackster-modified ROM (after copying it somewhere else, of course).
This adds an extra step of having to run a script after you save changes in Hackster, but that's as easy as two clicks of a mouse, or two key taps on a keyboard once you get things set up right.
FWIW -- I've kicked around the idea of making such a build tool that would allow people to approach retro ROM hacking more like modern software development but I don't really have much free time these days so I'll probably never get around to it.