Open v-fox opened 4 years ago
Seems it's using the SCANMSK register to do its transparency effects? I'm going to try implementing it and share the results.
Could you share the game's title ID? Would be great for compatibility tracker :slightly_smiling_face:
Could you share the game's title ID? Would be great for compatibility tracker
SLUS_201.44 - for original "Song of Liberty", and SLES_820.09 - for "Substance" re-release.
I've made an implementation of the SCANMSK register in the Vulkan GS handler:
Results are a bit strange:
It's such a weird way to do transparency.
In MGS3, there's no alternating pattern, dunno if it's supposed to do that or not.
I don't think that it is. Pretty sure it should be a normal window.
It's such a weird way to do transparency.
That's some early 200X trickery in action. Like how they did "reflections" by doubling geometry and illusion of 2D "light-shafts/specks" by creating geometric 3D "beams".
IIRC second part of the trick is they used two displays. One will be offset by a pixel and blended with the other. Kind of an old fashion dither transparency.
So, I've temporarily changed OpenAL output from JACK to PA (which runs as JACK shim) to avoid https://github.com/jpd002/Play-/issues/950 and tried out Metal Gear Solid 2. There were few issue right of the bat but the most prominent is probably https://github.com/PCSX2/pcsx2/issues/2514 which also notoriously affects original old PC port, among other things. There is a patch for SW renderer of PCSX2: https://github.com/PCSX2/pcsx2/pull/3444 Maybe the logic behind it can help to figure out right approach.
There are also more pressing issues:
For some reason I also can't correctly convert image dumps from the emulator with ImageMagic tools into png, they come out corrupted but jpg works fine (maybe IM bug and no one tests bmp). And there seem to be no options for some kind of logging.