And another fix (clearing the high bit of PBR and ROMBR on set) gets the Voxel demo showing things, though very obviously wrong things:
Oh hey, thanks! That one never worked in bsnes, but I tend not to debug PD ROMs for sanity reasons. 19 times out of 20, they tend to have the same problem on hardware.
But yeah, masking PBR and ROMBR to 7-bits fixed it.
The last visible bug I'm aware of is this:
If you start Super Mario World 2 V1.1 (U), and hold down the start button immediately and keep it down, it skips the island rotation (normal), but it also seems to "interlace" the logo (obviously not normal.)
Seems to be timing related, disabling my pixel cache delays fixes it but throws off Winter Gold. I really don't understand how the pixel cache works. Does a single SFX RAM access while its emptying stall until the entire cache is empty, do they interleave accesses, or does it just stall the pixel cache for one GSU write cycle? Meh.
Even with ROM buffer + RAM buffer + instruction cache + primary and secondary pixel cache + multiplier speed select support, timing in bsnes is still off from the real thing by about ~10% or so. Noticeable by music in certain scenes ending too early.
I helped debug some SuperFX issues, and we're doing better now...
I almost want to say the Yoshi's Island scrambledness looks familiar ... but I can't think of anything at the moment.