So I've stumbled upon a rather interesting issue. I've modified the sprite load routine so that whenever the value in X is below 0E (00 to 0D is basically PC's only), it'll load a different area for the sprite data. This works fantastically well, in the menu anyway. Cless works, Mint, Chester, Arche and Lia all seem to work perfectly fine with no wrong details. But when it comes to Klarth and Rambard in-game, not in the menu, things go crazy.
Klarth's sprites will.. well look at the image. And Rambard's sprites simply don't ever show up. Yet in the menu, they show up perfectly fine.
- Working on Left, Broken on Right.
I'm not absolutely sure what's causing this, but here's what I have as the code.
$F0/282E 18 CLC A:0A00 X:000A Y:0000 P:envmxdizc
$F0/282F 65 26 ADC $26 [$00:0026] A:0A00 X:000A Y:0000 P:envmxdizc
$F0/2831 E0 0E 00 CPX #$000E A:0A06 X:000A Y:0000 P:envmxdizc - Checks if X is below 0E
$F0/2834 90 14 BCC $14 [$284A] A:0A06 X:000A Y:0000 P:eNvmxdizc - If so, jump to 284A and load the new location for Sprite Data.
$F0/284A AA TAX A:0A06 X:000A Y:0000 P:eNvmxdizc
$F0/284B BF 5E 28 F0 LDA $F0285E,x[$F0:3264] A:0A06 X:0A06 Y:0000 P:envmxdizc
$F0/284F 85 10 STA $10 [$00:0010] A:0700 X:0A06 Y:0000 P:envmxdizc
$F0/2851 BF 60 28 F0 LDA $F02860,x[$F0:3266] A:0700 X:0A06 Y:0000 P:envmxdizc
$F0/2855 85 12 STA $12 [$00:0012] A:0045 X:0A06 Y:0000 P:envmxdizc
$F0/2857 BF 62 28 F0 LDA $F02862,x[$F0:3268] A:0045 X:0A06 Y:0000 P:envmxdizc
That's really all there is in the custom routine. It works perfect in the menus and for most of the part outside the menu, but Klarth and Rambard just seem to blow up.