Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
ExHiROM mod breaks some of the instructions #71
This was posted by Madsiur over on the Qhimm Forums:
This is beyond what I know anything about, so passing it along.
Still don't understand what he's talking about, lol. But more info!
I get the jist of what he's saying at least. I'll attempt the change myself when I get time. My only concern is whether or not that notation will cause issues on the actual hardware, but tbh I doubt it will…
On Sat, Mar 17, 2018, 11:01 PM edale2 ***@***.***> wrote: Basically using HiROM notation for long instructions (bank number + 0xC00000) will make the mod work on every FF6 carts and roms possible, regular FF6 ROM type (HiROM + FastROM) or expanded 6MB ROM type (ExHiROM). I don't fully understand the technicalities underlying the mapping differences between both rom types but I tested both versions on debugger emulator and made a fix after seeing the JML instruction not jumping where it should. Since he coded this with an ASM file it could even be something not wanted in the first place but that was working with vanilla FF6 ROM type. As I said no instruction in FF6 use absolute bank notation, it's all in HiROM notation. Still don't understand what he's talking about, lol. But more info! — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#71 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AASag_sSC0F3AxNr-YjH91245biQz5THks5tfc4MgaJpZM4Su_ge> .
Okay so, here's the problem I'm having ATM. The $18FA72 thing is not something I'm hardcoding, but something created by the way the wla-dx assembler works. Specifically, we're looking here:
Another problem is that it's not "$18FA72", it's "$12FA72", the bank number is in decimal.
So if I add C0 to that, we get D2 or decimal 210.
Which ends up with this:
If I were to instead use "D8", I get this:
I'm sure there's something simple here I'm missing but I don't know of any way to actually make wla-dx use the kind of notation Madsiur is talking about.
Ok, I figured it out.
What you do is at the beginning of the file, after you set up the ROM mapping, you do either .BASE $80 or .BASE $C0 to use fastrom/hirom notation. This adds that number to whatever banks you need.
So using ".BASE $C0" fixed my code afaict. Jumps are now going to $D2xxxx instead of $12xxxx in bsnes-plus.
If the people who want to test could please test the ff3msu.ips in commit 6b81b9d I'd be grateful.
Will make a Hotfix Three release once I'm sure this isn't breaking anything for anyone.