gDPFullSync() calls buffers read, which can be broken when settings changed.
Fixed Enabling and disabling Antialasing midgame makes the emulator crash #903
Fixed Jeremy McGrath Supercross 2000: missing jauge line in menu #274
This game sets coordinates of lines vertices via modify_vtx.
modify_vtx set screen coordinates for the vertex.
Screen coordinates must be converted back to normalized device coordinates (NDC)
to apply viewport transformation. Unfortunately, the screen coordinates set are out of current viewport
and just clipped after transformation to NDC coordinates and viewport transformation.
Solution: use fullscreen viewport for modified vertex coordinates and
transform coordinates according to this viewport.
Fixed Star Wars Episode I - Racer (J) Displaying wrong text. #510
The game uses the same CI texture with different palettes.
Each palette produces different set of hieroglyphs from the texture.
Current palette depends on tile index, which is set by tile parameter of texrect.
Texrect vertex alpha was set to 1 for all games in d506d6134d commit as fix for issue #721.
It causes regression in Duke Nukem 64, issue #906,
so I made separate hack and enable it for PS2.
- read depth buffer only when texturedRectDepthBufferCopy called for current frame
- for Conker, read depth buffer only in texturedRectDepthBufferCopy.
- for PD the buffer need to be read twice, otherwise coronas may poke through objects.
- Take into account coverage flags.
This is still not quite correct without proper coverage emulation.
- Discard pixels with zero alpha if uCvgXAlpha flag is set.
Resulted pixel coverage is function of pixel alpha multiplied by actual
coverage in that mode, thus pixel with zero alpha has zero coverage and discarded.
Fixed regression in BAR, issue #866
This was confusing me for a while as it would simply fail to find the
proper support and I was confronted with a blank screen in certain areas.
This warning (and the associated change of default. I'd like users to see
warnings as well) will help others figure out why there is a blank screen.
My driver supports the necessary extensions (but not 4.3), so if I force it to
advertise 4.3 support (and glsl 420 support) it will properly render.
I tried to create a patch that only looks for the proper extension, and
it works for me, but I feel as though it would depend on behaviour that
most GL implementations would not implement the same way so I've put
it in a separate branch and probably won't request to merge it.
Mesa should get 4.3 support soon enough anyway, so it shouldn't
be an issue for much longer.