Q2 2020 Progress Report
A huge boost in accuracy that we've accomplished was improving Z-Buffer emulation on both hardware and software renderers. What this means is that a lot of games received a boost in accuracy throughout the ps2 game library. Many text and HUD issues have been resolved. So far these are the games that we know of that show an improvement:
- Itadaki Street 3 (text display),
- Midnight Club 3 (text input),
- Rozen Maiden DuellWalzer (text)
- F1 2004 (starting lights),
- Alone in the Dark (improper controller display),
- Silent Hill 2 and 3 (textures not showing on different angles such as toilet),
- Syphon Filter: The Omega Strain (weapon HUD),
- Tomb Raider Angel of Darkness (book pictures).
For anyone interested what Z-Buffering is and it's technical aspects, there is a nice wiki page that you can read here .
Here are some eye candy image comparisons from some of the mentioned games
Itadaki Street:
Rozen Maiden DuellWalzer:
Tomb Raider Angel of Darkness:
Alone in the Dark:
(HW) Improved Texture shuffle detection
To put it simply it improves the effect detection so that games can be properly rendered, plus we removed the CRC hacks that were in its place to skip the bad draw calls. So far we know of only two games that hit the code path such as Onimusha 3 and Devil May Cry 3, but we believe there are more that we don't know of.
Everybody loves image comparisons right?
Onimusha 3:
Devil May Cry 3:
(HW) Invalidate Source with overlapping draw
Improve texture cache Source objects invalidation logic taking into account overlapping with current draw. Fixes eyes rendering for the Major in Jak 1.
(HW) Extend Software Sprite Renderer to Dragonball Z Budokai Tenkaichi 2 and 3
Previously we've discussed that we have a new feature called SWSpriteRenderer that we use to properly render the Jak character model in Jak games. Now we are extending the feature as well as improving the SWSpriteRenderer code itself to work on Budokai Tenkaichi 2 and 3 games. This improves rendering of Kaio-ken effect in Dragonball Z Budokai Tenkaichi 2, as well as improve character silhouette in Dragonball Z Budokai Tenkaichi 2 and 3 when a character is hidden from displaying from an obstacle (rock for example), as well as properly render character flashing on a charged attack.
So far only Jak and Budokai Tenkaichi 2 and 3 games use this feature. In the future we plan on finding more games that can benefit from this, further improve the feature and always enable it by default along with auto detection.
Budokai Tenkaichi 2:
Budokai Tenkaichi 3:
(HW) Add dithering support
Dithering support has been added on all hardware renderers. Another great step in increasing accuracy which further matches or gets close to Software renderer. For more specifics about what dithering is you can check this link here . For those who wish to turn off dithering on the latest development builds they can do so with the Page Down key which is temporary or edit the GSdx ini file which is permanent. There are 3 levels. Off, Scaled and Unscaled. A lot of games use dithering so here is an example below from Castlevania.
(HW) Color clip blending improvements
-
Enable non recursive blending when blending is set to None.Previously non recursive blending was enabled only when blending wasset to Basic or higher, and now it will be active on None option aswell as there are 0 drawbacks. It is faster so games will gain acouple of FPS when blending is disabled and it is also moreaccurate. A win - win situation.
-
(OpenGL) Always use accurate sw blending on Safe/Accurate Framebuffer masking instead of accumulation mode. Fixes shadows inSuperman Shadows of Apokolips, see image comparison below.
Other important GSdx changes
(PSX/PS1 emu) PS1 emulator plugin support has been dropped/removed
(PSX/PS1 emu) PS1 emulator plugin support has been dropped/removed, as the code wasn't maintained at all and the feature was barely working. What does this mean? GSdx as a plugin can no longer be used on other ps1 emulators that support a plugin interface such as ePSXe. PS1 titles can still be played using PCSX2.
(HW) Custom Resolution has been removed from the GUI
(HW) CustomResolution has been removed from the GUI. The option didn't work properly with many features such as Depth Emulation, Destination Alpha Test and many more, breaking accurate emulation in the process. For anyone still wishing to use Custom Resolution even though we strongly advise against it, they can modify the GSdx ini file.
(HW/SW) Mirror RGBAQ to 0x11
(HW/SW) Mirror RGBAQ to 0x11. FixesRidge Racer V shadows, see image comparison below. Backported from Dobiestation.
(HW/SW) Mask A+D addresses
(HW/SW) Mask A+D addresses. Fixes network configuration wizard display issues on some games, see image comparison below. Backported from Dobiestation.
(HW) Alpha Stencil hack has been now completely removed from the Direct3D10/11 renderer as well
(HW) Alpha Stencil hack has been now completely removed from the Direct3D10/11 renderer as well. As it was the case with OpenGL now DATE Accuracy renders the effects properly with little to no side effects, leaving Alpha Stencil completely useless. In 9 out of 10 cases Alpha Stencil used to break plenty of post processing effects which was an awful hack.
Core Improvements
- Adds dithering to the RGB32->RGB16 conversion (see images from Hisshou Pachinko PachiSlot Kouryaku Series Vol 10 - carefully).
-
Adds SSE2 implementation of RGB32->RGB16 conversion (speed on the opening FMV in Hisshou Pachinko PachiSlot Kouryaku Series Vol 10 goes from ~175% to ~275% with frame limiter disabled using GSdx software mode).
-
Implements VQ (see images from Klonoa 2).
- Removes GameDB patches for Klonoa 2, and revert workaround for Klonoa 2 crashes which are no longer needed.
Other Core changes
SuperVU legacy recompiler has been completely removed
SuperVU legacy recompiler has been completely removed. In order to move forward and make things easier (for example adding 64bit support) we have decided to completely remove the legacy SuperVU recompiler
Allow reading of 8bit timers (and other hardware pages)
Allow reading of 8bit timers (and other hardware pages). Fixes Robin Hood (character not being able to move, enemies not spawning, missing UI elements)
Fix situation where a VIF IRQ triggers and the game triggers a STOPcausing the IRQ to never trigger
Fixes Nitro Bike (hanging)
Make recLUT not hardcoded to 32 MB
This change makes the EE recompiler not hardcoded to working with 32 MB of RAM.This may be helpful if anybody else in the future wants to emulate a PS2 dev kit with 128 MB of RAM
Implemented memory mode check in COP0
This makes Next Generation Tennis 2003 (Roland Garros French Open 2003) and Spongebob Squarepants Battle for Bikini Bottom (PAL release) work
SPU2-X Improvements
XAudio 2.7 has been removed
It's no longer needed since Windows 7 is no longer supported
Rewrite the spu2-x dialog on Linux in wxwidgets
GameDB Improvements
Performance patch fix for Primal and Ghosthunter
Fix for terrible performance in US versions of Primal (all the time) and Ghosthunter (when encountering Teddy Bear and in the moment of Gator-Man's rush attack, maybe a few other cases)
- Other GameDB additions or deletions have been done throughout the Q2 cycle as well.
Misc Improvements
Preliminary work on macOS support
It still needs a lot work but it's a great step moving forward
Fixed some texts being cut off from the GUI on several plugins as well as the glitchy logo when using DPI scaling.
Switch over the null plugins dialog code to use wxWidgets instead of gtk on Linux
-
Windows 7 and Windows 8 support has been dropped in order to move forward.
-
There have been other improvements made such as more code cleanups, bug fixes and other improvements but we won't mention them since they aren't that big of a deal.
Future Plans
64 bit support is in progress and getting along nicely, more work on macOS support, more juicy new core accuracy improvements that will be mentioned in the next report, more code cleanups, refactoring, overhauling and so on.
And that's all from us, see you next time in our Q3 Report!