Skip to main content

Q3 2020 Progress Report

· 11 min read

On the previous report the highlight was GSdx improvements mostly. This one on the other hand is Core changes, and A LOT of core changes. Enjoy!

GSdx Improvements

Port from OpenGL

  • Helps sprite rendering inLets Make a J-League Pro Soccer Club (see image comparison below).

Before

After

Other GSdx Changes

It will allow to run sw blending with DATE draw (DATE Accuracy Full) which was previously DATE_GL42 by default

(OpenCL) OpenCL renderer which was barely maintained and rarely used for debug purposes only has been completely removed in our quest for cleaning up the codebase

  • Dropdown menu for 3 options: Off (No Effect/ Been always like this), Scaled (Strongest effect/obvious), Unscaled (Weakest effect/less obvious)
  • Change Default dithering mode from Scaled to Unscaled

F9 has been modified on Windows to have the following functionality:

If the renderer config is set to HW, it will toggle between the respective HW renderer (OGL/DX) and SW

If the renderer config is set to SW, it will toggle between SW and the renderer returned by GetBestRenderer()

Before

After

In a nutshell it merges the software renderers. There's no need to have multiple ones, and it makes it easier for the end users.


Lilypad Improvements

Removes the capability of running Lilypad on ps1 emulators that support a plugin interface like ePSXe. PS1 games will still be played normally without any issue when using PCSX2.


SPU2-X Improvements


Core Improvements

64bit Recompiler support. By tellowkrinkle and beaumanvienna**

It's been a long awaited goal for us and we are very happy with the progress of the 64bit work that's been put in recently. That said there are still a couple of issues left to take care of before we start providing fully working builds to the public on Orphis buildbot. Those that want to take the risks and still give the 64bit builds a go then they can fetch appveyor artifacts or build the source code themselves and give it a go Performance should be -/+ 5% for anyone expecting huge performance gains. For the technical details see the following PRs below.

Should allow the algorithm to be changed much more easily in the future.

Makes x86emitter emit the x86-64 machine code you would expect it to.

Makes recompilers compatible with x86-64.

Other Core Improvements

Backport from Dobiestation

  • Don't interrupt if compare/overflow flag is already set.
  • Removed GameDB patches for Harry Potter Prisoner of Azkaban and Chamber of Secrets as they are no longer required.

PSI-Rockin made an excellent post explaining the functionality/technical details. You can read more about it here.

Fixes the following games from crashing, and removes gamedb patches for them since they now work properly:

  • The Sims
  • Spiderman 3
  • Sharks Tale
  • Maybe some bits of Over the Hedge
  • Pitfall (both demo and full game)
  • Gumball 3000
  • Enter the Matrix
  • Evolution Snowboarding

Backport from Dobiestation

Doing this reset performs a forced command end, meaning the IPU will run through the procedure of ending any command running and telling the core that it is done, even if there is no command currently active.

Fixes Fightbox and Sakura Taisen 3.

Implement basic cycle counting for COP2 operations, implement COP2 detection while not interlocking, implement Mbit, drastically change cycles required to run for every microprogram. Improved handling of edge cases for scenarios where COP2 updates flags.

As explained here in PSI's blog post, hardware tests proved that VU run at the same speed as EE mips core. This is important as the EE can read values from VU0 while a VU program is running using COP2 commands such as CFC2 (Copy From COP2/VU0), so it is important to run VU0 at the same speed as the EE, this was particularly important for games using M-Bit synchronization (Mike Tyson, My Street etc) and games which start a VU program and then copy a value to VU0 to be used by the new program, an example of this happening was 24: The Game.

Depending on if the game is expecting the value written to be used or written after the register is used, the VU needs to run either ahead or behind and it varies per game, so in this case it's essential that we rely on a new gamefix that we implemented calledVU0KickstartHack.

Fixed games list:

  • (VIF) Hitman games - Resolve potential crashes with TLB misses or FIFO errors
  • 24: The Game, Primal, Ghosthunter - No longer need patches to run at full speed
  • Air Rescue Ranger - Ground no longer has SPS
  • Amplitude - FreQ avatars no longer have SPS
  • Gift, Woody Woodpecker, Kaan - Now runs at the proper speed
  • Lotus Challenge - Cars are no longer bouncy
  • My Street - Missing characters are now visible. (Note: they still exhibit a small amount of SPS in microVU0, the VU0 Interpreter does not have this issue.)
  • Mike Tysons Heavyweight Box - Characters are no longer asserting their dominance by t-posing. See-through characters are also fixed.
  • Next Generation Tennis 2003 - No longer needs a patch to fix SPS
  • Nichibeikan Pro Yakyuu: Final League / World Fantasista - Random glitches are gone
  • Phase Paradox - Lighting and camera in cutscenes are fixed
  • Rayman 2 Revolution - Resolved character collision issues with the ground
  • Sega Superstars Tennis - SPS on hands/feet is now gone
  • Tiger Woods PGA Tour 2002 - Fixed player stance
  • Wakeboarding Unleashed demo no longer crashes at the loading screen (also requires XGKick hack)
  • Totally Spies Totally Party! - SPS reduced - (Note: requires EE Cyclerate + 3 to completely fix.)
  • Twisted Metal Head-On - Black doors have now proper colors
  • Wakeboarding Unleashed - No longer hangs getting to the menu on release builds
  • World Series Baseball 2k3 - No longer hangs on the loading screen (game still hasother issues)

Here you can see the before (left) and after (right) images.

Before
After
Before
After
Before
After
Before
After

Fix state saving when m-bit is reached. Fix range merging to encompass whole ranges of programs.

  • Fixes shadows in The Shadow of Zorro
  • Fixed slight SPS in Totally Spies Totally Party! Still needs Cyclerate +3 however

Backport from Dobiestation

  • Fixes the Titantron's on the WWE games (Except Shut Your Mouth).
  • Fixes the frame order for the following games, so they look less blurry and don't need the interlacing mode swapped:
  • Soul Calibur 2
  • World Rally Championship
  • Mike Tysons Heavyweight Boxing
  • Urban Reign
  • Mortal Kombat Shaolin Monks

Based on data gathered from PS2 console tests.

Removes an old VIF hack.

Fix GIF resets.

Fixes the memcard screen on Onimusha Blade Warriors, no longer invisible.

Reduces frequency of VIF spamming the console in Ratchet & Clank when completing the game.

Fixes/adds Chinese bios support. This also fixes a number of Chinese region games with the added feature.

So far we have 3 games confirmed working:

  • Ape Escape 2 (SCCS 40001)
  • XIGO: Zuihou de Touzi XIGO (SCCS 40004)
  • Gran Turismo 4 (SCCS 60002)

Other games on could be fixed as well, someone just needs to test/verify them. The full list can be seen on the pull request itself.

An IPC protocol was added to PCSX2. This feature gives you a header-only C++ library with bindings in C, Python, Rust, Lua and C# which allows you to communicate with the emulator and the underlying game it emulates. Ever wanted a game to trigger a save state? That's how you'd do it! Want to make advanced TAS tools? AI based players with a fancy GUI to visualize all your neuronal networks? This should do the trick!

Note that all the main planned IPC features are not yet merged/developed, so all of this isn't possible yet but should be soon.

For more information you can check the PR's themselves for details.

The following Plugins have been merged in to the core

You heard it right folks, PCSX2 will require 2 less plugins now to fiddle with.


GameDB Improvements

  • Other GameDB additions or deletions have been done throughout the Q3 cycle as well.

Misc Improvements

Initial release has been published as well so developers can download and use it without the hassle of compiling


TAS (Tool Assisted Speedrun) Utility Improvements


And that's all from us, see you next time in our Q4 Report!

Metadata

2020 Q3: (dev110 to dev350) (2020-07-01 - 2020-09-30)