I vaguely recall having a problem like that in Mednafen with Silent Hill a long time ago, I think it had something to do with proper mask bit/bit15 handling(maybe in regards to blending?), but I may be wrong.
No, you're right. Rewriting the GPU has been on my todo list for a long while now, but I want to get the DMA model sorted first. Which has meant me taking on SCSI/IDE first (something the console emulators haven't had to worry about).
Leaving it broken is my way of retaining interest in the project, because at some point I'll have something visible to show for the work.