So I forgot about your thread for a while and when I was browsing through the forum and saw it, I'm like "Oh, sh
t!"
I quickly got to work and over the course of about two hours of intense concentration, frustration, and talking to myself like an idiot, I developed this:
Codeheader : lorom
org $00D8FF
autoclean JML YoshiFlight
NOP #5
YoshiFlightReturn:
freecode
YoshiFlight:
LDA $14A5 ; \ Original code
BNE CODE_00D90D ; /
PHY ; > Push Y
LDY $187A ; \ Determine value to load
BNE OnYoshi ; /
LDA $16,x ; > Load value for Raccoon
OnYoshiReturn: ; \ Do... something
BPL CODE_00D924 ; /
PLY ; \ Pull Y and return
JML YoshiFlightReturn ; /
OnYoshi: ; \
LDA $15,x ; | Load value for Yoshi
BRA OnYoshiReturn ; /
CODE_00D90D: ; \
JML $00D90D ; |
CODE_00D924: ; | Branches
PLY ; |
JML $00D924 ; /
This code is probably inefficient, but it's not a huge deal. It turns out the problem was caused by the Raccoon patch which you should have said you had. Not listing any patches left be clueless. Anyway, that means that any hack with the Raccoon patch has this bug. My patch determines if you're riding Yoshi and loads in the correct address for the current situation with no known side effects. The hijacked code only runs with cape/Raccoon and wing Yoshi so there shouldn't be any. Important: If you ever re-patch the Raccoon patch for some reason, re-patch this right after!
During the time I had forgotten,
I made this, so it's not like I disappeared.