Here are some notes from my first time using this patch by the awesome and helpful Tzepish, who has made many contributions to the FFV romhacking scene. Because a very small number of bytes are changed by this patch, it’s a great one to look at for analyzing how this process works.
This patch comes from this archive.
The part of the readme that shows the code that will change is on the left.
The log of the changes that were made by patching the rom, is on the right. This log file 🧾 is from the LunarIPS program, which is recommended. (Turn this option on when you're using it: it's off by default.)
The “size” of B means 11, for this is in hexadecimal numbering, like most values in this strange realm. Sure enough the Offset address in the readme above says that 11 bytes will change at this location (the series of 4C 43 91 and then EA 8 times) when the patch is used.
The locations $C2/6CE4 and 026CE4 are the same place in the rom, but in different address styles. More on this later, elsewhere 😹 It’s pretty clear that most of the address is the same in both styles, right??
<aside> ⚠️ The next place it made changes is a bit confusing to me, for the readme suggests that only 2 bytes ($D1/0D33 and $D1/0D37) will change, but patch log says that size = 5 bytes when it was applied. Again, the location matched up, so I am assured that the change was made at the right place, but… this would benefit from investigation.
</aside>
Consider that the process of “applying a patch” is the same as changing some parts of the game’s rom manually— that is, typing in new values for those bytes, in a hex editor. Lunar IPS and other patching tools know how to use “.ips” files to automatically change dozens or thousands of bytes with extreme precision, so they’re standard to use instead of doing code changes by hand.
With that being said, there’s a discrepancy to investigate, so…
I’m interested why this patching receipt (log file) says it changed 5 bytes when the readme file told me to expect only 2 bytes to change, so I’m gonna open up the rom I just patched in Lunar IPS. I'll use windhex, so I can look at the bytes and see what happened.
👆 The trusty and ancient Windhex program, the only one I’ve used so far in my romhacking journey to edit bytecode (aka machine code).
Using the Goto (Ctrl + G) feature is super recommended for this sort of thing, versus scrolling around a few million bytes and searching.
So I open Windhex and hit Ctrl + G and then paste in the location that needs investigating, D1/0D33.
Wow, I’m still at the absolute top of the file, just 13 rows down.
I will try Goto again, this time changing the address to “HiRom” so that it can find the location correctly!
<aside> 💡 (The FFV rom is HiRom, it’s just something to memorize and keep in mind for now, unless you want to get into the topic of how these old games were built, so they’d use the physical cartridge efficiently. It’s incredibly technical, so just remember that the FFV game that I write about in these guides is in “HiRom” and we can leave it to others to explain the types of roms… 😹)
</aside>
Also, I was causing a problem for the Goto function when I left the “/” in the address, so I went and deleted that so it now looks like: D10D33
OK, we’ve arrived at the exact byte in location D10D33! Let’s see how it looks in this copy of the rom before the patch was applied.