
I looked over my mirroring code and I think it's correct, and SMB seems to be working well:
Code: Select all
if (GetROM().GetHeaderData().m_flags_6.Bits.m_mirroring == 0)
{
if (mirrored_position >= 0x2400 && mirrored_position < 0x2800)
{
mirrored_position &= 0x23FF;
}
else if (mirrored_position >= 0x2C00 && mirrored_position < 0x2FFF)
{
mirrored_position &= 0x2BFF;
}
}
else
{
if (mirrored_position >= 0x2800 && mirrored_position < 0x2C00)
{
mirrored_position &= 0x23FF;
}
else if (mirrored_position >= 0x2C00 && mirrored_position < 0x2FFF)
{
mirrored_position &= 0x27FF;
}
}
Perhaps the two issues are related. If anyone's run into something like this, I'd appreciate a tip....otherwise back to sleuthing
