So THIS might be one of those cases where I believe it's actually an incompatibility with the game and the CX4 chip, it's what I'm assuming anyway.
Setting the header at 00:FFD5 to be 30 instead of 20 will set the game to be 'FastROM'. Upon doing so, it seems that HDMA and sprites all just break in every possible way. Mainly because the sprites, HDMA and various other wireframe objects all use the CX4 chip to operate. Though I'm entirely unsure why the header change would completely destroy the entire thing since it's still loading the same locations technically at this point, but it seems anything CX4 wise is just broken.
There's not much research on the CX4 chip, and whatever there is is way beyond my head at the moment as I don't think I can really trace anything that's really going on with it. It's all very strange at this point. There could be a feasible work around with sprites by having an actual OAM table in RAM like other games but no clue how to work around it with HDMA and such though.
Anyone have an idea on this area? I'm willing to bet it's a chip compatibility issue but I can't be absolutely sure.
Edit: I've noticed something odd when it's set to FastROM.
$05/F8C3 AD 52 7F LDA $7F52 [$06:7F52] A:0101 X:0000 Y:0010 P:envMxdIzC
$05/F8C6 CD 8F 08 CMP $088F [$06:088F] A:0100 X:0000 Y:0010 P:envMxdIZC
- Good set of code when it's NOT FastROM.
$05/F8C3 AD 52 7F LDA $7F52 [$06:7F52] A:0101 X:0000 Y:0010 P:envMxdIzC
$05/F8C6 CD 8F 08 CMP $088F [$06:088F] A:017F X:0000 Y:0010 P:envMxdIzC
- Bad set of code when it IS FastROM. It seems like whenever it's set to FastROM, it will read that last byte in the LDA as the value it needs to load.. for some reason. It's strange as heck.
Edit: Able to view the CX4 RAM in BSNES. Once it's switched to FastROM, it definitely freaks the hell out horrendously in the CX4 chip RAM. I have NO idea why this would even occur. This is really strange.