Progress Report: March 2017

March 2017 beat the previous record set by February 2017 as the most eventful month in the history of the project. So much happened that even this colossal progress report can only begin to scratch the surface.

First of all, lead RPCS3 developer Nekotekina reached the $1000 goal on Patreon, securing his long time commitment to work on RPCS3 full time. This was the direct result of the massive amount of attention the project got when two popular games were drastically improved this month. First, Demon’s Souls went from crashing in zero seconds to going ingame and almost being playable. Second, the cult classic Catherine received significant performance improvements and now runs with practically perfect graphics and performance. The two videos of these games received over 200 000 views on the official RPCS3 YouTube channel. Even the famous YouTube personality, TotalBiscuit was impressed with the progress, and the killing of the notorious Demon’s Souls boss Vanguard in RPCS3.

Of course the hundreds of videos posted by the community on YouTube, different forum posts, Reddit submissions, and so on, have contributed greatly to the massive growth of the RPCS3 community. In fact, new developer Inviuz aka Numan was one of these people who recently discovered RPCS3, spent a lot of hours reading the code and debugging Demon’s Souls, and finally getting it to boot for the first time. Oh and Red Dead Redemption also went to the main menu thanks to this, and some graphics improvements by kd-11. This showcases one of the most important strengths of RPCS3 being free and open-source software and it is very likely that more and more people will join the project in the future and contribute changes both big and small.

Since the last progress report, approximately 17 authors have made 115 commits with 6,831 lines of code added, and 4,471 lines of code deleted. And some significant improvements are still in the pipeline but have yet to be merged.

The progress report is mainly split into three different parts. First we will take a closer look at what each pull request this month did, and show a few practical examples. Thereafter we will take a look at a selection of some interesting games that were improved this month, though this is just a small slice of the hundreds upon hundreds of games that received small or significant improvements this month. Lastly we will take a look at some of the upcoming changes before rounding of this monthly progress report.

This Month’s Contributions

Let us start with Nekotekina who did some significant work this month. Over 60 commits encompassing a lot of major improvements such as automatic LLE module selection (probably the single most requested feature ever), LLVM 4 for Ryzen support, and staggering performance and stability improvements in many games.

Nekotekina’s Contributions

Automatic LLE (#2459)

Probably the single most anticipated feature ever. If you don’t know what this is, RPCS3 previously required you to manually pick which firmware modules should be loaded for each game. People would often have to refer to long lists of 20+ modules on the forums, often discovered by trial and error. However this is all ancient history now. RPCS3 will analyze the game executable and automatically load the required libraries now.

Reservations rewritten (#2404)

Substantial performance and stability improvements in many games. For example Catherine, [redacted], and Demon’s Souls saw large performance improvements from this. In fact, [redacted] is literally 10 times faster in all scenarios now, going from about 1 to about 10 FPS in the opening scene for example. In battles and dungeons [redacted] can peak at 30 FPS already. Catherine also runs at a stable 30 FPS in all scenarios with an overclocked Haswell-E 6-core or a Ryzen 7 8-core.

Moreover every single PhyreEngine game saw tremendous improvements from this commit as semi infrequent random hanging was completely eliminated. For example the first four Atelier games and Ar Tonelico Qoga are completely playable now using a hacked build that can save and load. Performance wise they run at full speed and at around 15-30 FPS on an average modern CPU. However these particular games highlight a serious performance bottleneck in the graphics back end. If one runs Atelier on the null renderer, that is skipping graphics output, they reach 100-200 FPS (!) instead. More on this puzzling result later on.
The reservations rewrite is more of a re-re-re-rewrite and the PR took over three weeks to complete. But it was certainly worth the effort.

LLVM 4.0 and Fixes, PPU: HACK instruction removed (#2557)

This finally updated the AoT LLVM PPU recompiler in RPCS3 to use LLVM 4.0. There was a significant amount of work involved in making this happen, but it finally enabled proper LLVM support on Ryzen and also fixed some other old bugs in the process. For example Ni no Kuni now works with LLVM. According to certain rumors it is said that Nekotekina may have found bugs within LLVM itself as well…
Other code improvements were also made, the “Hack” PPU instruction was removed.

0.0.2 (#2498)

This PR enables the sys_memory fixes for Demon’s Souls that allows it to boot (the work was already done by Inviuz, this just publically enables it), and also bumps RPCS3 to v.0.0.2.

Fixes (#2500)

Implements SPU channel 69 (NOP), the last piece of the puzzle for Demon’s Souls and bumps RPCS3 to v0.0.2 in the GUI (totally forgot about that in the last PR).

Fixes (#2495)

Makes LLVM recompiler work with Demon’s Souls. Nice improvement in loading times, some improvements to sound, and better FPS for weak CPUs (no FPS difference for a very fast CPU as the true bottlenecks are in other areas than PPU emulation).

Reservations: fixes (#2492)

The reservations rewrite improved performance and stability overall but also caused a few regressions here and there. Most of them should be fixed now.

Memory enhancements, thread fixes and minor optimization (#2521)

Fixes write color buffers in many games (probably) but specifically for Demon’s Souls. With this build, and this option, no more hacked builds were needed and every change is properly implemented into the master branch. Demon’s Souls will no longer randomly look very dark, or be completely black. This also fixes some bugs in the reservations rewrite, once again fixing Atelier and every other PhyreEngine game randomly hanging (it was a different bug this time, a deadlock in the RSX thread).

Fixes (#2443)

Improvements to PKG installer, as an added bonus Vita PKG files are also partially supported now. (Not that anything installed from a Vita .pkg will run)

There were also bug fixes for .rap file loading and per game config as well as for LLVM.

cellFsSdataOpenByFd draft and fixes (#2470)

Bug fixes for .sdat loading, related to .sdat PR by Jarveson.

Fixes (#2475)

Bug fixes for Linux. For the first time ever the frame rate counter finally works on Linux. The firmware installer was also fixed.

Fix path issues (boot, fw, pkg) (#2501)

Minor bugfix for Linux.

Fixes (#2535)

Updated auto LLE to load more modules, stubbed some functions, options to disable LLVM logging, bugfixes, and updated the about dialog to include more developers and supporters on Patreon.

Fixes PPU interpreter fix, cellVdec default FRC workaround, other fixes (#2547)

Bugfixes in PPU interpreter, fixing various crashes. Also makes the intro video play in Bakugan Battle Brawlers (and probably other games with h264 videos).

Fixes (#2576)

Another big commit, fixing various bugs in file handling, RPCS3 debugger, PPU bugs, LLVM bugs, and Linux specific issues. Also improves auto LLE even further. For example Bomberman Ultra now works with LLVM.
As an added bonus a right click menu option was added to open the configuration folder of games.

Kd-11’s Contributions

kd-11 is the graphics developer of RPCS3 and a huge fan of the Souls series. Naturally he had had some work to do this month.

Improve texture cache (#2391)

Substantial improvements for many games. For example: Persona 4 Arena (Ultimax) goes from a black screen to ingame, and this also extends to every other Arc System Works game. many other games saw minor or major graphics and performance improvements.

gl/vk/cache: Fix invalidating intersecting and overlapping memory regions (#2447)

All backends have a problem properly handling textures that are not at 4k aligned addresses. It’s much worse with smaller textures (like 1D color index lookups).
This should fix flickering in 1942: Joint Strike and many other games where malformed textures are read from the cache while they have actually been invalidated.

gl/vk/dx12: Implement forced channel remapping (#2477)

Graphical fix for Demon’s Souls, makes the opening video display (previously black).

Also fixes wrong colors in some games such as videos in Rainbow Moon with Vulkan.

rsx: Fix some shader decompiler bugs (#2482)

General graphics improvements in many games. This enables graphics in Payday and improves the overall look of Deadly Premonition. It also gives general graphical improvements to Kane and Lynch, Midnight Club, and PixelJunk. Moreover shadows are improved in some games like Demon’s Souls and Lost Dimension. Beyond Two Souls also shows a loading screen now.

Finally, this allows NieR Replicant and NieR Gestalt to go ingame, previously crashing, although graphics are still fairly broken.

rsx/vp: Fixes (#2533)

gl: Fix texture cache bugs (#2490)

Improvements to Demon’s Souls (and probably many more games).

gl: Lower restriction on render target pitch (#2522)

A theoretical bugfix, although nothing was (immediately) found in practice.

Minor rsx fixes (#2567)

Improves several games. Tales of Xillia now goes ingame and is stable on all renderers. Previously it would quickly crash. Also improves Wheelman and Kamen Rider Battride War II.

gl/vk: Stencil fixes (#2582)

Fixes various graphical issues in different games. God of War III now shows the logo screens, and the minimap in Deadly Premonition now displays as it should.

rsx: Add support for immediate mode rendering (#2594)

Improves graphics in various homebrew. But more surprisingly also allows The Last of Us and the Uncharted games to show loading screens, if one hacks around an earlier crash.

rsx fixes (#2606)

Minor bugfixes. Enables for example Wolfenstein to go ingame, but more about this particular game and the interesting problems it has later.

Inviuz’s (Numan) Contributions

Handles directory creation in cellGameDataCheckCreate2 (#2488)

Fixes “not enough hard drive space” errors on some games like Demon’s Souls. Also improves some sceNp (PSN) functions to better simulate that the emulated PS3 is offline. Everybody’s Golf: World Tour also saw improvements from this PR.

Mmapper with Neko’s review fixes (#2503)

This is the essential fix for Demon’s Souls that fixes the first crash that has always plagued this game. Moreover some other games like GTA V go a bit further with this fix.

Use sys_vm_memory_map plus add default value for sys_allocate_memory (#2506)

Fixes a crash in One Piece: Unlimited World (and probably other games).

implement getSizeKB functions (#2588)

Theoretical bug fixes for game installations and sys_net that may help some games to go further. Also some logging that confirms that Atelier Escha & Logy (and every other modern Koei Tecmo game) is in a bad spot right now.

Jarveson’s Contributions

rsx: image_in fix for clipx/y (#2440)

Fixes broken graphics in many games. Most noticeably menus and video cutscenes in Spyro are now perfect, in fact the entire game is perfectly playable and runs fast with no known bugs now!

Also fixes graphics in Ninja Gaiden Sigma 2, Putty Squad, How to Train your dragon, and more.

 

mself / sdat: on the fly decoding support (#2468)

A massive quality of life improvement. This implements automatic .mself and .sdat decryption support on the fly, meaning it doesn’t create any temporary files, and it also only decrypts the requested data rather than the whole file. Previously one would have to manually use a command line tool to decrypt these files.

This fixes a lot of games silently failing to boot if one is not very observant of the log file. Even Numan who fixed Demon’s Souls actually got stuck on missed .sdat files for a whole day!

Edat / Sdata: On the fly decryption for edat + misc fixes (#2491)

This adds support for ‘on the fly’ decryption of .edat files, like the previous sdaa/mself implementation.

Also some minor fixes for cellPad and cellMsgDialog allowing for example Crazy Taxi to boot and play.

Misc fixes – Crypto/Edat and xinput/mmjoy (#2572)

Improves games that load custom .sprx files such as Castlevania: Harmony of Despair or Metal Gear Solid 4, but these still fail due to other issues in .sprx loading.

Also fixes XInput support in Catherine, and likely any other games that support multiple controllers. Along with previous fixes Catherine is now also completely playable with a real controller.

al0xf’s (ssshadow) Contributions

OSK fixes (#2531)

More accurate cellOSK (On Screen Keyboard) implementation fixing name input in Oblivion and Minecraft, and probably some other games.

Ani’s Contributions

Fix ExitSpawn, Implement VerifyUpgradeLicense (#2428).

Improves Child of Light and Plants Vs Zombies a little, but they still crash.

ExitSpawn is a method called when the game is ending itself: before it didn’t end graciously but now it does. It was missing an argument which shifted all other arguments out of place and made it throw an access violation. Doesn’t improve the game itself sadly as it still ends itself (presumably because it catches an error by itself and handles it).

Fix cellDiscGameGetBootDiscInfo (#2430)

Sometimes cellDiscGameGetBootDiscInfo is called by non-disc games for some reason (this may happen due to inaccuracies on other cellGame functions which need a proper fix).

That wasn’t accounted for and therefore it would try to read PARAM.SFO from an unmounted disc path and throw an access violation.

Tested with NBA Live 08 Demo (NPUB90029), probably fixes similar games as well.

Add missing system languages (#2484)

If games support Portuguese (BR) or Turkish they can now use them.

HLE: Register cellSysutilNpEula, libmedi, cellCrossController (#2586)

Register some new modules and functions. They are not implemented, but essentially if a game tries to use them at least we can let the functions return that they finished, even if they did nothing else but log an error. Improves LittleBigPlanet 3 a little.

WisterToub’s Contributions

PPUInterpreter: Fix undefined behavior of left rotate functions (#2469)

Could theoretically fix crashes.

raven02’s Contributions

DX12: fix DRGB8 texture format (#2480)

Fixes white videos in Rainbow Moon under DirectX12. Could fix other games as well.

Megamouse’s Contributions

Add “Open Game Folder” Option” (#2595)

Adds a right click option to open the folder a game is located in.

Clienthax’s Contributions

Stub sys_gamepad ycon interface (#2435)

This is related to PlayStation Move, internally known as Ycon. The Move controller isn’t emulated (yet) but this commit at least enables proper logging when games are trying to use it.

twdarkeh’s Contributions

Remove custom config (#2574)

A GUI improvement, one can now right click on a game and delete any custom config for it.

scribam’s Contributions

Update PPUFunction.cpp (#2558)

Documents some new syscalls.

Update cellOvis (#2561)

Stub some more functions in cellOvis for proper logging.

ikki84’s Contributions

Stub cellAvconfExt (#2505)

A piece of the puzzle allowing GTA 5 to get ingame.

Other Contributions

These are not directly related to the end user functionality of RPCS3, but are meaningful in the eyes of developers.

Chocobo1’s Contributions

TravisCI: use ccache (#2448)

TravisCI improvements (#2460)

Optimized build scripts for Travis CI. Build time cut down from 8 minutes to 3 minutes.

Morten242’s Contributions

Multithreaded compile on Windows for llvm, glsl, vulkan (#2575)

Changed compilation settings, these components build faster in Visual Studio now.

Zangetsu38’s Contributions

Move module in correct path (#2593)

Moved some files that were in the wrong folder.

Linux

Quite a few Linux specific improvements were made this month. The frame rate counter now works and the firmware installer was fixed. Several PPU interpreter and PPU LLVM bugs related to Linux (or both Linux and Windows) were fixed. Sadly despite all of this most games still more or less hang instantly. Simple games like Arkedo above do work however, but with poor audio quality as only the OpenAl backend is available. This old backend sounds terrible on Windows too, and a new low latency backend for Linux is on the roadmap, after the early crashes have been fixed.

Website and Compatibility

Helped by our little announcement of Demon’s Souls and RPCS3 v0.0.2, our website passed 250.000 unique visitors for this month!

Ani has been greatly improving things over the compatibility list side:


Compatibility list’s history: You can now see the history between the beginning of the month and the current day. You will also be able to search history for previous months once they’re over (e.g [1st]March 2017-[1st]April 2017);
Improved searching algorithms (levenshtein): If you search for something that’s not found in the database it will check it for the closest value and return it (e.g. “demom suols”  returns “Demon’s Souls”, “katerine”  returns “Catherine”). This is made using levenshtein string comparisons;
[WIP] Improving searching algorithms (abbreviation search): Although this is still WIP and therefore not finished, you can now search many games for their abbreviation (e.g “GT6” will return “Gran Turismo 6”, “TOCS” will return “The Legend of Heroes: Trails of Cold Steel”);

Other searches: Clicking a date on the list will search for all games which were reported tested on that day. Clicking a flag will return all games with the same region.

 

Compatibility Statistics:

Surprisingly enough, while we saw an increase of 366 games in the grand total of games tested, we also saw an increase in the percentage of Playable games (+0,19%), Ingame (+3,30%) and a decrease in the percentage of Intro (-3,86%), Loadable (-1,40%). Nothing games percentage increased (+1,76%).

 

Games

Hundreds upon hundreds of games were improved in one way or another this month. This is a selection of games that may be more interesting than some others. (And some personal favorites, just because I can). This is sorted in alphabetical order.

3D Dot Game Heroes

3D Dot Game Heroes went from nothing to reaching the main menu where it now crashes with a shader compilation error. This game is probably close to working now.

Armored Core: For Answer

This is the first Armored Core game to boot in RPCS3, and it reaches the main menu where it hangs. Armored Core is a series by Demon’s Souls developer FromSoftware.

Atelier, Ar Tonelico Qoga, and PhyreEngine

Thanks to the reservations rewrite by Nekotekina every single PhyreEngine game saw significant improvements to stability and performance. These games used to randomly hang all the time but this issue is without a doubt fixed now. Below are some screenshots from Ar Tonelico Qoga, Atelier Meruru, and Atelier Ayesha running acceptably on a 2012 era laptop with an i7-2670qm @ 2.5GHz boost.


Beyond Good & Evil HD

Beyond Good & Evil HD saw stability, performance, and graphics improvements this month. Frame rate can sometimes be a bit low, and there are a few minor graphical glitches, but it is essentially playable.

Beyond Two Souls

Beyond Two Souls now boots and shows a loading screen.

Catherine

Catherine was one of the games that were improved with the reservations rewrite by Nekotekina and now runs at a stable 30 FPS on fast CPUs like Haswell-E or Ryzen. Check out the gameplay video on the official RPCS3 channel.

Dark Souls

The PS3 version of Dark Souls also boots up and shows a loading screen in RPCS3. It seems to use (and updated verison of) the same engine as Demon’s Souls and currently seems to get stuck on some PSN related functions. This one may be close to working now.

Deadly Premonition

The PS3 version of Deadly Premonition runs fast and looks good now as it saw improvements in both graphics and performance this month.

Demon’s Souls

Demon’s Souls is without a doubt one of the most iconic games of the platform, and it went from crashing in 0 seconds to going ingame and almost being playable this month. You should definitely read the dedicated blog post about this game to read the story of how the RPCS3 team got it working. Also take a look at the YouTube video we uploaded to the official channel that at the time of writing has over 140 000 views.

With emulation you easily also get interesting game hacks, and one user unlocked the hidden and unfinished Northern Limit level of the game.



Dragon Quest Builders

Dragon Quest Builders saw a nice performance improvement and some graphical fixes this month. It used to run at half of this speed.

Fallout 3 & Oblivion

The PS3 versions of Fallout 3 and Oblivion now run in RPCS3 with pretty minimal graphical issues and especially in the case of Oblivion surprisingly good performance, reaching no less than 10 FPS outside on the PPU interpreter, and of course a lot more when inside.

One interesting find is that it seems like the PS3 versions of these games can be modded as they load .esm and .esp files just like the PC counterparts. So while you can’t (properly) mod Fallout 4 on PS4 at least you can mod Fallout 3 in RPCS3. #sickburn

Final Fantasy XIII

Booting Final Fantasy is always a nice milestone for any emulator. While not many people will care as the game is also out on PC (and some would argue that it is a bad game) it is still an important piece of history that is being preserved here. Right now it displays the opening video and reaches the main menu, but it crashes when loading the ingame bits.

Grand Theft Auto 5

GTA 5 now goes ingame with very broken graphics. But it is ingame and one can sort of control it for a short while before it crashes. This is perhaps one of the most demanding games on the console so it is quite impressive that it starts up and goes ingame, even if it has “some” issue.

Hatsune Miku: Project Diva F

Ani completed the entire game, proving that it is perfectly and completely playable at full speed!

Heavy Rain

Heavy Rain goes ingame and works surprisingly well. While the graphics seem very dark and it is too slow it does run and look almost entirely correct.

JoJo’s Bizarre Adventure: All-Star Battle

JoJo’s Bizarre Adventure: All-Star Battle saw some graphics improvements, no strange self shadows anymore for example. It looks exactly like it should and would be completely playable, if it was faster.

JoJo’s Bizarre Adventure HD

JoJo’s Bizarre Adventure HD has relieved colossal performance improvements from the hardware accelerated blit support that is being worked on by kd-11 right now. It runs at a stable 60 FPS given a fast CPU.

Kane & Lynch: Dead Men

Kane & Lynch: Dead Men goes ingame with almost entirely correct graphics. Performance varies widely however. In some parts it touches 30 FPS, in others it runs closer to 3 FPS.

Kingdom Hearts HD 1.5 Remix

Kingdom Hearts HD 1.5 Remix runs about as fast as it should, reaching 30 FPS in many places and it also looks mostly like it should, though sometimes some parts of it can seem too dark.

LittleBigPlanet 3

LittleBigPlanet 3 now boots and shows a broken loading screen. It used to do nothing.

Lost Dimension

Another PhyreEngine game that was substantial performance improvements this month. It is completely playable and mostly runs at 30 FPS on a fast CPU.

Midnight Club: Los Angeles

Midnight Club: Los Angeles went from nothing to ingame this month, although at 3 FPS and with mostly missing cars it is not very playable, yet.

Minecraft

The PS3 version of Minecraft saw a monumental performance improvement thanks to the reservations rewrite. The before and after comparison above speaks for itself. This certainly runs better than the Java version now.

Naruto: Ultimate Ninja Storm 2

User RainKikyou beat the entire game Naruto: Ultimate Ninja Storm 2 in RPCS3 proving that it is perfectly playable from start to finish with near flawless graphics and good performance.You can watch parts of the playthrough here.

NieR RepliCant & NieR Gestalt

NieR RepliCant and NieR Gestalt now go ingame in RPSC3. While not playable yet due to graphical issues and low speed, it seems to run quite stable otherwise. Maybe give these a try later this year after playing NieR Automata.

Ni no Kuni: Wrath of the White Witch

Ni no Kuni: Wrath of the White Witch saw a decent performance improvement this month, both from the reservations rewrite, but also from the LLVM bugfixes as this game now works with LLVM. The extremely flickering graphics were also fixed, although mostly missing characters and monsters are still a problem. It still looks quite nice otherwise.

Odin Sphere Leifthrasir

Odin Sphere Leifthrasir, the HD remastered version of the classic game Odin Sphere now goes ingame in RPCS3, previously doing nothing. In the screenshot above it is compared to the emulated PS2 version, and as this is a 2D game there isn’t much that can be done in PCSX2 to make it look good. Odin Sphere Leifthrasir seems like the superior option, but sadly it is still too slow, dropping down to about 20 FPS when there is a bit more action on the screen.

Persona 4 Arena (Ultimax)

Both Persona 4 Arena games now go ingame and would be playable if they were not so slow. Even on a very nice overclocked Skylake i7 it only reaches about 40 FPS. For now. As an added bonus every other PS3 game by Arc System Works uses the exact same engine and now runs just as good, or bad. This includes the Guilty Gear and BlazBlue games. Previously these would only show a black screen or very broken graphics.

[redacted]


This currently not yet released JRPG will be the last real game on the PS3 and it runs “ok” after the reservations rewrite and some graphical fixes. It used to run at 1 FPS with much worse graphics just two months ago, and now it “only” suffers from broken bloom and in conjunction with this incorrect colors. Performance is around 10-40 FPS depending on what is going on and with a very fast Haswell-E CPU (in one of the screenshots the game is running at 2 FPS on a laptop). As you can see this game benefits greatly from a lot of physical cores and according to user reports performs very well on the newly released Ryzen series.

 

Warning: YouTube will recommend videos with spoilers in the titles and thumbnails. Be very carefull!

[redacted]

Moreover al0xf aka ssshadow hacked together a rough implementation of the cellImeJp module (input method Japanese) finally allowing one to proceed past the name input screen and Inviuz aka Numan hacked around in the cellSave module to get saving and loading working. Both of these changes are work in progress and not yet committed, but maybe they will be ready in time for the English release on the 4:th of April… (However it can be said with 99 % certainty that the English version of the game likely will not use the cellImeJp module).

Ragnarok Odyssey Ace

Ragnarok Odyssey Ace also saw a decent performance improvement this month and seems playable at full speed except for the broken black outlines.

Red Dead Redemption

Red Dead Redemption used to only show the intro but now it reaches the main menu which is technically ingame as it is supposed to show ingame graphics in the background. A lot of work is still needed, but at least it goes this far now.

Resident Evil 5

Resident Evil 5 goes ingame, and although incredibly slow graphics are almost perfect with only a few strange blue spots here and there.

Ridge Racer 7


IT’S RIIIIIDGE RAAAACEEER!!!
(wow, memes from 2006)

Robotics;Notes

Robotics;Notes went from nothing at all to being perfectly playable. This is a Japanese only visual novel but it highlights that RPCS3 might be very useful for the visual novel translation scene, not only because games like this can run but also because the provided debugging functionality might be very helpful.

Saint Seiya: Brave Soldiers

Saint Seiya: Brave Soldiers was played from start to finish by user MarioSonic2987. Performance was completely acceptable mostly around 30 FPS and the game had no real issues otherwise.

Skate 3

Skate 3 now starts to go ingame and runs pretty fast, at around 20-30 fps. However due to possible thread synchronisation issues the game only starts maybe 1/20 times. And it also crashes after a short while. Still, it used to do absolutely nothing, and on the bright side of things graphics are mostly there already.

SoulCalibur IV

SoulCalibur IV saw some modest performance and graphics improvements this month. Still a bit to slow to truly be playable, but it’s getting close now.

Tales of Vesperia

Tales of Vesperia now plays the opening video and then crashes. A clear improvement over doing nothing at all however.

Tales of Xillia 1 & 2

Both Tales of Xillia games now go ingame with improved performance and no shader error crashing. Some graphical and performance issues still remain, but they are getting very close to being playable now.

The Last of Us

Yup. The Last of Us boots now. Kind of. It needs a hacked build to proceed after an exception but it does show a loading screen now, and it does actually load a lot of files before hanging, probably due to the earlier exception.

The Legend of Heroes: Trails of Cold Steel

This hidden gem went from a 3 FPS mess to a glorious 30 FPS with some magic by kd-11. A user has reportedly played this game for over 10 hours now with no real problems. It needs a modern CPU, but nothing too insane to reach full speed. It also needs a work in progress build and some special settings to work as it should. Check out the corresponding forum thread for this game: simply search for it in the compatibility database and go on from there.

The Legend of Spyro: Dawn of the Dragon

The Legend of Spyro: Dawn of the Dragon saw some final graphics improvements this month and is now completely and flawlessly playable given a (very) fast CPU where it can peak at 60 FPS.

Trinity Universe

Trinity Universe saw colossal performance improvements from the reservations rewrite. It runs at a steady 30 FPS in battles, and 60 FPS outside of battles even on a 2012 era laptop with an i7-2670qm @ 2.5GHz boost. What’s the catch? It crashes on a graphics error loading the save menu.

Uncharted 1, 2, and 3

Just like with The Last of Us one can hack past an exception and get a loading screen where the game loads several files and then hangs, presumably due to the previous exception. All three Uncharted games run the same in this regard.

Other Findings

Nekotekina found a game that has mouse support, and it works!

Working on Kingdom Hearts the infamous “Ubisoft mode” was activated (this is fixed now).

Upcoming

Take a look at Wolfenstein below. It runs and looks pretty good, but it is insanely slow at 0.04 FPS. That is one frame every 25 seconds! Why is that?

This game actually highlights some very common inefficiencies in the graphics backends. Things that should be very quick such as vertex upload takes 10, sometimes 100 times longer than they really should. If you run Wolfenstein here with the null renderer, that is ignoring vertex upload and other graphics work it runs at about 2 FPS, or 50 times faster. Still very slow but this game also hammers the ASMJIT SPU recompiler very very hard. Let us instead take a look at some easier to run games. For example on a very old and slow i7-2670qm @ 2.5GHz Atelier Ayesha drops down to as little as 5 FPS at times. Switch to the null renderer however and you are looking at a consistent 100-200 FPS (!) on the same CPU. The Atelier games are affected by the same inefficiencies. This can be fixed.

This marks the end of the March 2017 progress report. With $1000 on Patreon Nekotekina will work full time on RPCS3. Moreover progress is greatly accelerated thanks to the help of kd-11, Numan, and everyone else that contributes to RPCS3 monthly. More and more significant games are starting to run and who knows what great surprises await in the future. Perhaps more hype countdowns on rpcs3.net?

Thank you, to each and every one of our generous Patrons who helped reach the $1000 goal and who made all of this possible.

Don’t forget to join our Discord server and forums to keep in touch.