Progress Report: June 2017

Another month another colossal RPCS3 progress record. But first things first, take a look at this beautiful introduction to RPCS3 video that reznoire made:

[redacted]

Moving on to some statistics the numbers alone this month are quite impressive, and that is not even counting games that improved from emulation improvements that are still work in progress.
Game Compatibility: Game Status

Game Compatibility: Monthly Improvements (June 2017)

Looking at the GitHub statistics 16 authors have pushed 140 commits to the master branch. Here 353 files have changed and there have been 19,729 additions and 17,660 deletions. These numbers are much larger than normal, and several exciting changes are behind it. This month RPCS3 transitioned away from the previous GUI toolkit Wx to Qt which in turn also lead to several user facing interface improvements. This separate report goes into significantly greater detail regarding what work has already been done on the GUI, and what work is planned to be done in the future. On a lower level, Nekotekina reworked the entire PPU LLVM recompiler to greatly increase compatibility of it. kd-11 fixed various graphical issues affecting hundreds of games, most notably broken shadows and depth of field in various titles. Moreover kd-11 also enabled Vulkan on Linux and pushed support for it to the master branch. Nekotekina and Numan also worked on .sprx relocations in general and in the LLVM recompiler which in simple terms is a compatibility and performance improvement.

The talented developer Jarves is working on a very important core improvement. It is not yet finished or merged to the master branch, but as work on this has been going on in public, and a lot of people have already tested it and submitted results this report will cover the work anyway. Jarves is working on “LLE gcm” which is huge and here is why:

LLE stands for Low Level Emulation. In RPCS3 this means that a PS3 operating system module is run directly as it is via lower level emulation methods. This is great for compatibility because it doesn’t involve much guesswork and is very accurate. As far as the games are concerned, they are working with the exact same operating system methods with the exact same implementations here as on a real PS3.

gcm or “graphics command management” is the part of the PS3 operating system responsible for creating and managing various graphics commands, including everything from how to set up vsync to graphics memory allocation.

LLE gcm is huge. A very core part of emulating games is now done exactly the same as on on a real PS3, and the result is amazing. For example Red Dead Redemption no longer hangs almost instantly. The Last of Us doesn’t crash immediately and actually shows a loading screen and goes through a lot of initialisation successfully. [redacted] no longer randomly crashes. Various high end games that did nothing before are now starting to boot, for example the Yakuza series where Yakuza 3 went from nothing to ingame, and Yakuza 4 and 5 went from nothing to loading screens. One could go on and on about what a substantial compatibility improvement LLE gcm is (and I will). Now combine this with the greatly improved LLVM recompiler and over 40 commits of graphics fixes and you have a month of quite insane progress. This would be a great segway into looking at improved games and such, but Jarves did one other important contribution that deserves its own section.

59.94 hz or “the dumbest bug of all time”

Koei Tecmo including subsidiaries like Gust, Team Ninja, and Omega Force have developed several games in several popular series like Warriors, Atelier, Dead or Alive, and so on. They all share the same engine and every game in this engine since 2014 failed to work at all in RPCS3. In fact, even going back to RPCS3 versions from 2015 these games fail in exactly the same way, which is interesting because there basically isn’t an area of the emulator that hasn’t been touched since then (you see where this is going). Various people had looked at it and (incorrectly) concluded that perhaps some colossal area like cellSpurs or gcm were failing. As even Red Dead Redemption started to work before the weeb games that I (ssshadow) am interested in, like Atelier Escha & Logy, this engine had reached a meme status for RPCS3 developers. A week ago two things happened:

ssshadow looked at an older game in the same engine that did work (Deception IV) and found that cellVideoOutGetDeviceInfo() was the last function call before cellVideoOutConfigure() and various gcm functions with various parameters, that is the last function call before initialising graphics output is cellVideoOutGetDeviceInfo(). But in Atelier Escha & Logy (and every other game in this engine since 2014) cellVideoOutGetDeviceInfo() was the last function call before the game got into an endless loop of doing nothing useful at all, or in one case throwing an exception. cellVideoOutConfigure() was not called! Let’s look at the code:

“Use standard dummy values for now.”. Could it be?

Jarves took a closer look and ran one of the games in the same engine that he had. Shortly thereafter Atelier Escha & Logy, and really 20 other games too, booted for the first time ever in RPCS3, and Atelier here even went ingame. cellVideoOutGetDeviceInfo() was indeed to blame. In particular a “standard dummy value”. This is the commit that fixes everything:

Yes. Every game in this engine since 2014 explicitly and literally refuses to boot and enters a dead code path of doing nothing or even throwing an exception if the “display” doesn’t report supporting 59.94 hz. One can disassemble the binary, and Jarves did, and see that is how they programmed it. If refresh rate is not 59.94 hz, do not boot. No one will ever know why they did this.

Index

Jump to:
Games
Linux
Ultrawide mods
The new Qt interface
Commits
Nekotekina
kd-11
Other Contributors
Conclusion

Games

After Burner Climax


Thanks to improvements to graphics by kd-11 and the improved recompiler by Nekotekina After Burner Climax now runs flawlessly at full speed with correct graphics. Previously it would run slower, and also have buggy reflections among other issues.

Ar nosurge: Ode to an Unborn Star

Ar Nosurge is a Koei Tecmo engine game that used to do nothing at all that is now going ingame. It would be playable if not for the broken character outline issue seen above. However, kd-11 is on top of it. This game, along with many others that use the same engine, will likely be playable by the next report. The game works fine with the LLVM recompiler and easily reaches 30 fps on any 4+ ghz i5 or better.

Atelier Escha & Logy and Atelier Shallie

Atelier Escha & Logy together with Atelier Shallie were the last two Atelier games to be released on the PS3 (in English). Like Ar Nosurge above they are Koei Tecmo engine games that used to do absolutely nothing but now go ingame and would be playable if not for the broken character outlines seen above. Once again they perform well, reports indicate running at around 30 fps with Vulkan and a 4+ ghz i5 or similar. When the graphical issues are fixed every single PS3 Atelier game will be playable in RPCS3 as the older titles, Rorona through Ayesha are already playable.

Beyond: Two Souls

Beyond: Two Souls can now go ingame but rarely renders much. However video playback at least works as seen above. For now it is very unstable, and furthermore it is way too slow to be even testable.

Borderlands

The PS3 version of Borderlands now goes ingame. It is very slow, but take a look at the graphics and especially the shadows! They render flawlessly thanks to recent graphics improvements in general, and improvements to shadows in particular, by kd-11.

Castle of Illusion Starring Mickey Mouse


Castle of Illusion Starring Mickey Mouse saw substantial performance improvements this month, now reaching its target frame rate of 30 fps. Some graphical issues persist as seen above, but it basically works now.

Condemned 2


Condemned 2 use to do nothing at all, but now it goes ingame. There are some graphical issues and it runs too slow, but it is always interesting to look at games that go from nothing to ingame like this.

Dante’s Inferno


Dante’s Inferno used to only show some intro and loading screens, but now it goes ingame. Together with graphics fixes by kd-11 it also looks quite good, and with the LLVM recompiler it performs well too.

Dark Awake


An obscure Japanese 2D fighting game. No idea if this is actually progress for this month, but someone tested this rare game and it works fine.

Dragon Ball Z: Battle of Z


Dragon Ball Z: Battle of Z used to only show some intro screens and a loading screen before hanging. Now it goes ingame, and it seems to render fine except all 3D is stretched to the upper half of the game window.

Dead or Alive 5 Last Round


Graphics and performance were improved in Dead or Alive 5 Last Round. The game looks perfectly fine, although still runs a bit too slow even on high end hardware.

Dead to Rights: Retribution


Dead to Rights: Retribution used to crash starting up, but with this fixed it goes ingame. Thanks to graphics improvements it also looks quite good. However, it runs far too slow to be considered playable, or even tested much further.

Deadly Premonition: The Director’s Cut


Deadly Premonition: The Director’s Cut saw improvements to both graphics and performance. In the screenshot above we see how shadows and lighting are flawlessly rendered now. Performance is also very good! It holds 30 fps most of the time even on an Haswell i5 at around 4.5 ghz.

Deadstorm Pirates

Deadstorm Pirates runs relatively fast now in the range of 30 – 60 fps thanks to the improved recompiler. Previously it was far too slow and would randomly hang. But with these issues fixed the game is now playable.

DeathSpank

DeathSpank saw performance improvements this month, too. It now runs twice as fast as before thanks to both the improved recompiler, and also being enabled to work with Vulkan. Moreover some graphical issues were fixed, for example missing or broken character models. The game is now fast and playable. The screenshots above show the improved performance and fixed graphics.

Deception IV: Blood Ties


Deception IV is still very slow, however graphics were improved this month thanks to fixes by kd-11. Shadows now render properly, and various graphical corruptions that would previously occur no longer happen.

Demon’s Souls

Graphics were greatly improved in Demon’s Souls this month. Broken depth of field would make everything look blurry and low resolution, while shadows would be either missing completely or be corrupt and buggy in various ways. As seen in the screenshots above, the game is now looking much nicer than before. Check out the video below highlighting the changes in motion.

Dragon’s Lair


Dragon’s Lair used be very unstable, frequently hanging. This was confirmed to be fixed this month. Allegedly the PS3 version is one of, if not the best versions of the game since the movie files are of very high quality on this platform. Regardless they play back smoothly and the game is playable.

Drakengard 3


Drakengard 3 now reaches the main menu but crashes when going ingame. However it used to not even do that. By going through the menus you can also see rendered 3D graphics which may indicate that the game is close to working now. As an added bonus this screenshot was taken on Linux.

Eat Them

Both graphics and performance were improved in Eat Them making the game playable, both factors thanks to Vulkan improvements. The game easily runs at 30+ fps now, and smaller issues around broken shadows were also fixed.

Eternal Sonata

Graphics were greatly improved in Eternal Sonata this month. Various issues like missing or broken shadows and missing graphics were addressed. However while the game may look perfectly fine (both technically, but also visually) it runs ludicrously slow for now. This game seems to “only” need improved performance to become playable.

Fairy Fencer F


Fairy Fencer F used to have very broken graphics, for instance missing text, completely black environments and so on. It also ran quite slow and would eventually crash. All of this was fixed and the game is now fast, looks good, and is playable.

Final Fantasy X HD


Final Fantasy X HD now runs flawlessly at 30 fps with the improved LLVM recompiler and Vulkan. Thanks to relocation awareness for .sprx modules, various .sprx files used throughout the game (for example every spell cast in combat is an .sprx file) are only recompiled once and then used again forever, even after restarting RPCS3. Thus while the LLVM recompiler was working before, in a sense it wasn’t actually much faster than the interpreter due to the constant interruptions of the recompiling window. Moreover the sphere grid used for leveling up in this game looked broken before, but kd-11 fixed it this month.

Foosball 2012


Playstation Official Magazine UK had this to say about Foosball 2012: “The graphics and gameplay are so simplistic that this could probably be run on a high-end calculator.” [Oct 2012, p.119]

They were absolutely right, this game is very easy to emulate and runs on basically anything.

As for the game itself, it was probably improved in some way or another, not that anyone tested it before or even cares to look into it.

Game of Thrones


Game of Thrones, but really the Telltale engine in general, saw improvements to graphics and performance. These games are still quite slow, but various aspects of the graphics like the shadows were improved this month.

God of War Collection (God of War I & II)

These games now render their graphics perfectly, and moreover thanks to improvements to the LLVM recompiler by Nekotekina they now run at full speed, 60 fps even on an Haswell i5 at 4.5 ghz (but likely a lower clock would work just fine too). They would be completely playable if the sound was not broken.

Gran Turismo HD Concept


Gran Turismo HD Concept used to do nothing at all, but it now boots and usually shows some intro scenes before crashing. With some luck one can proceed further to the car selection too as seen in the video below. The other Gran Turismo games also boot further than before, although this one in particular seems to run the least unstable for now.

Grand Theft Auto IV & V

With Jarves LLE gcm these games no longer hang upon going ingame, and furthermore graphics were improved a little. More is rendered on the screen than before, while also being rendered more accurately. Obviously there is a long road ahead, but it is very impressive that they run more or less stable and don’t crash at this point.

Hitman 2 Silent Assassin


Hitman 2 graphics were improved with shadows now rendering as they should. Overall the game looks perfect and runs at 60 fps even on something like an i3 with Vulkan and the LLVM recompiler.

How to Train Your Dragon

How to Train Your Dragon now renders shadows perfectly and also runs fast with Vulkan and the LLVM recompiler. The game is perfectly playable.

Jojo’s Bizarre Adventure: All Star Battle

Jojo ASB is now completely playable with perfect graphics given a very fast CPU like a 6-core Haswell-E. The improved LLVM recompiler with libfiber support made the game 2-3 times faster, and kd-11 fixed broken shadows on top of this.

Juiced 2: Hot Import Nights


Juiced 2 graphics and performance were improved, shadows now render correctly thanks to fixes by kd-11, and the LLVM recompiler allows the game to run at a stable 30 fps.

Killzone


Killzone made some progress thanks to LLE gcm. It now goes past the main menu and shows the loading screen before going ingame. Sadly it hangs at this point, but it is very close now.

LittleBigPlanet


LittleBigPlanet can now go past the initial loading screen and show an intro. However, it is extremely unstable and will crash, more often than not before even going past the initial loading screen. Nevertheless it is finally past the previous point of failure where it had been stuck for half a year if not even more thanks to LLE gcm and some sysutil work also by Jarves.

LittleBigPlanet Karting

LittleBigPlanet Karting now goes ingame thanks to LLE gcm and a fix by Zangetsu. Previously it did nothing at all. Graphics can turn supremely broken as seen above, but the game runs and isn’t even that slow all things considered.

Life is Strange

Life is Strange used to not work at all, but now it goes ingame and runs very fast at 30 fps with Vulkan and the LLVM recompiler. The only problem is that it sets some kind of RPCS3 record for the most broken graphics ever. Other than that, it works fine.

Mafia II


Mafia II now goes ingame thanks to LLE gcm. It used to do nothing at all. Above we see it run at roughly 10 fps on the interpreter and with Vulkan. Some graphics like the main character (or any character really) and the trees on the other side of the street are missing however.

Marvel vs. Capcom 3: Fate of Two Worlds


Graphics in Marvel vs. Capcom 3 used to be a flickering broken mess, and it also only ran at 3 fps. With graphics fixes by kd-11 and the improved LLVM recompiler by Nekotekina this is no longer the case. The game looks fine and runs almost at the intended 30 fps.

Mega Man 9

Mega Man 9 didn’t really work at all before, only showing a black screen and hanging. With LLE gcm it is now completely playable at full speed (naturally). For those who don’t know about this series, this is actually a “new” game (from 2008), not a port of some old SNES game or similar.

Metal Gear Solid 1 inside Metal Gear Solid 4


This is more of a curiosity than anything. MGS4 does not work, however bundled with it is MGS1 and a PS1 emulator. You can boot it directly and it works. Together with improvements to the LLVM recompiler it also works quite well, basically reaching full speed.

Naruto: Ultimate Ninja Storm

Here we see improvements both from graphics fixes by kd-11 and from the improved LLVM recompiler by Nekotekina. The missing and broken shadows are fixed while frame rate and loading times are also improved. The difference in frame rate isn’t so noticeable here as the 4,9 ghz i7-4790k managed to run pretty well with the interpreter too, but on lower end chips like an i5 the improved performance should be much more noticeable. The game is completely playable. Besides the sometimes corrupted sky box, it runs fast and fluently with no stability problems and with good audio. Other Naruto games use the same engine and have improved similarly this month.

Ni no Kuni

Ni no Kuni: Wrath of the White Witch saw improvements to performance and graphics. Previously shadows were broken, water would be incorrectly rendered on top of everything all the time, and the grass would be jumping around and flickering. Now the game looks more or less as it should, runs acceptably fast, and is stable. Therefore we consider it playable (but not perfect).

NieR RepliCant

NieR RepliCant (and Nier Gestalt) were improved recently by both graphics fixes from kd-11, and by the improved LLVM recompiler from Nekotekina. The graphics are substantially better looking now, with missing graphics, incorrect lighting, and broken shadows fixed, or at least improved. Moreover loading times are reduced, and frame rate is approximately two to three times higher than before. However some graphical issues persist, and more importantly the game isn’t completely stable and will crash after a while. Nevertheless it is running quite a bit better today compared to earlier.

Ninja Gaiden Sigma 2

Ninja Gaiden Sigma 2 got improved graphics this month. With fixed shadows it now looks perfect, and performance is the only remaining problem.

Okami HD


Okami HD went from absolutely nothing to fully and perfectly playable this month! Thanks to significant improvements to .sprx relocations by Numan and Nekotekina this game now runs at 1080p and 30 fps. A user also extensively tested the game and played it for hours with no issues. Did you know that Okami HD was internally rendered at 4K on real PS3 hardware? Below is a video of the game running in RPCS3.

Payday: The Heist

Graphics were improved in Payday: The Heist and it now looks almost flawless, with only bloom being a bit too bright. Shadows in particular were fixed and now render properly.

Persona 4 Arena & Persona 4 Arena Ultimax

The two Persona 4 Arena games saw improvements in the graphics department this month and now look more or less as they should. However, they are still too slow to be playable, even with LLVM.

[redacted]

Nekotekina spent more or less a month rewriting and redesigning the LLVM recompiler which more or less has helped every single game. The original intention was to enable the system library libfiber which [redacted] (and some other games) uses to work with the LLVM recompiler, and therefore to make [redacted] work with the recompiler. While a lot of games saw tremendous improvements, [redacted] only got moderately faster. Further investigations shined light on other bottlenecks, such as PPU SPU communication, which slow the game down a lot. However, even with this bottleneck, [redacted] did get faster. On something like a 4.5+ ghz Haswell+ i5 you could attempt to play the game at roughly 10-30 fps most of the time, with occasional peaks beyond that. Paired with LLE gcm the game also runs stable with no crashes (if other hacks are not used). Graphics are still a bit broken as seen above, but it will be investigated soon™.

Red Dead Redemption

Until just a few days ago Red Dead Redemption would only load up to the main menu and show a few frames before hanging. Some persistent users could quickly get ingame from there, but once again it would only show a few frames before hanging. With recent improvements to graphics emulation thanks to Jarves the game can now continue to run without hanging and we can finally go ingame and control the (sometimes invisible) character. With the improved LLVM recompiler by Nekotekina we reach about 3-15 fps depending on what is going on, a clear improvement from only showing the main menu at 1 fps a month ago. Lastly kd-11 fixed a graphics bug that would cause almost everything in the game to be completely blue.

All in all, the game kind of works. Sure it is slow and has bugs, but we are getting there.

Resogun

Thanks to performance improvements by kd-11 this game now runs at a stable 30 fps, even on an i3 if it is clocked at around 4 ghz.

Saints Row 2, Saints Row: The Third, Saints Row IV and Saints Row: Gat Out of Hell


With LLE gcm every game in The Saints Row franchise now reaches the intro for the first time. Unfortunately, after that, there’s an infinite black screen.

Saw II: Flesh & Blood

Saw II saw great performance improvements from the improved LLVM recompiler and also some graphics fixes. As seen above some issues persist, but it is getting close to playable now.

Scott Pilgrim vs the World

Last month Scott Pilgrim vs the World became playable. This game is a bit special because it was delisted from both the Xbox and Playstation store for some reason. However, RPCS3 can now preserve it forever. In the video above we see local multiplayer working as RPCS3 does support multiple XInput controllers at the same time, and really any input method could be wrapped to XInput on one way or another. This also means that local multiplayer in for example Catherine should work, although I haven’t seen anyone report on it (perhaps because this functionality isn’t known).

Shadow of the Colossus HD


With LLE gcm Shadow of the Colossus HD now shows more graphics than before and also renders it more accurately. Previously it was a completely unrecognizable mess, but now you basically see the world. However it still doesn’t look quite right and crashes a few frames in.

Shining Resonance

RPCS3 does what SEGA doesn’t. Shining Resonance now runs at 30 fps with the improved LLVM recompiler and Vulkan. A few graphical issues persist like the broken character seen above, but overall the game works. Shining Resonance was never translated to English but if there is interest in the fan translation scene RPCS3 is here to help, with a variety of debugging functionality that may be useful for the endeavour.

Silent Hill Downpour

Silent Hill Downpour runs fairly well now thanks to LLE gcm, previously only loading to a black screen. Given a very fast CPU, perhaps a 5 ghz i7-7700k, it should basically perform as it does on a real PS3.

Sly 3: Honour Among Thieves

Sly 3 technically reaches ingame, but it gets stuck in the first cutscene. Previously it would not really get past the main menu and the loading screens around it.

SoulCalibur IV

kd-11 fixed broken shadows and the improved LLVM recompiler by Nekotekina made the game twice as fast. Towards the end of the video above a graphical issue with broken colors turn up, but as it turns out turning on the option ‘write color buffers’ fixes this. Therefore the game looks fine and plays fine except for the messed up audio. Very close to playable now.

Tom Clancy’s Splinter Cell: Chaos Theory HD

This must be one of the best examples of improved shadows on RPCS3. The game looks flawless. It would be playable if it was a bit faster.

Tales of Symphonia Chronicles


With improved .sprx relocation support by Numan and Nekotekina this game went from crashing instantly to going ingame and being playable. Graphics look fine, and the kd-11 fixes to shadows earlier in the month likely helped this game too.

Tekken Revolution


Tekken Revolution saw improvements to graphics this month, shadows were fixed along with other issues surrounding broken textures. Hower the game can crash and is therefore not playable even if it ran faster.

White Knight Chronicles

White Knight Chronicles saw doubled performance (8 fps instead of 4 fps…) and various fixes to the graphics, including the same broken depth of field as Demon’s Souls.

Yakuza 3

With LLE gcm Yakuza 3 went from nothing at all to going ingame with quite respectable performance. There are stability issues and sometimes some graphics are missing, but it is almost there now.

Yakuza 4 & 5


With LLE gcm Yakuza 4 and 5 also get past the “does nothing at all” stage and show loading screens where they hang. However the cause of the hang is likely in the WIP LLE gcm area, and therefore these could improve any day now.

Linux builds

RPCS3 on Linux is in a very good state. As far as the development team knows compatibility and performance is almost identical to the Windows version with only a few special exceptions. Controller support is still limited, but it is being worked upon right now. Things like enabling the Vulkan backend, adding ALSA audio support, and moving over to Qt to fix problems like broken DPI scaling all make RPCS3 on Linux very usable. Except for the small problem of users being unable to download and run a binary. This is actually the last of the original “short term” goals from January. We tried building a normal binary on Travis, Appimage, FlatPak… Nothing works and the problem is with how we use LLVM. RPCS3 uses LLVM to its fullest, and perhaps also in some rare ways. Due to very obscure and esoteric reasons that can’t be explained here we have a real problem when the LLVM version used in, for example, the well-known graphics drivers mesa don’t match the LLVM version used in RPCS3. This is basically unsolvable, at least with a format like Appimage or FlatPak. One simply can’t package an application that depends on LLVM in this way with these formats. Some very smart people have tried, including people who developed these packaging formats. We may still try to do an Appimage that at least works on a few distributions like Debian/Ubuntu or Fedora but it is also time to reach out to the community to work out how we can do distro specific builds. If you package software for a Linux distribution please message an administrator on Discord to discuss further.

Ultra wide mods

A forum user by the name of Esppiral modded a few games to run in ultra wide aspect ratios. Take a look at the images and how they are indeed running with correct proportions but wider field of view:

The new Qt interface

RPCS3 got a new user interface this month. The move over to Qt is detailed in this report:

RPCS3 Has Moved to Qt

Commits

As always, this is not a complete list of PRs or commits, nor does it necessarily list every single thing done by a given PR. For a full list, see PRs merged in June. Many of the unmentioned PRs are updates, fixes, and small improvements to the new Qt interface. More can be read about this below.

Nekotekina

#2906 – Improvements
Once again, Nekotekina brings us a massively consequential pull request with a rather underwhelming title. As you probably guess, this contains some improvements, including the much hyped rework of the LLVM recompiler to work with the libfiber module. Due to some complications encountered on the way, much of the recompiler was redesigned, and as a result, compatibility has expanded to just about every game, even those that don’t use the libfiber module. This PR is truly huge, it took the LLVM recompiler from being something that one could maybe try and use with some luck to basically being the default and recommended PPU emulation backend.

#2910 – Style Fixes
This PR fixes a few Qt issues, converts some spaces to tabs per the coding style guide, and perhaps most importantly, buries WxWidgets. A moment of silence, if you would.

#2911 – PPU LLVM: Multithread compilation

Another huge commit, with an actually helpful title this time! This allows more than one PPU executable to be compiled at the same time, greatly decreasing the time it takes to start games for the first time or following updates. In theory initial compilation of a game could be 16 times faster on a Ryzen 7, in other words taking a 20 minute long compile job down to almost no time at all. This is huge, even on a 4-threaded i3/i5 the quality of life improvements here are colossal.

#2915 – Annoying improvements
And we’re back to these titles. This contains various PPU fixes, including a crash when compiling is canceled, a few unnecessary things removed or disabled, and some simplifications. This also fixes a few PPU instructions that were buggy and could cause strange issues in various games, for instance breaking certain doors and objects in [redacted].

#2923 – Trivial fixes
Some small code cleanup, more optimizations, and miscellaneous bug fixes. It may sound trivial but in practice it can fix a lot of crashes and problems here and there.

#2932 – Relocation awareness
This is big, in and of itself but also considering what groundwork is laid out here. To explain a very complicated subject simply: .sprx files are like smaller programs that don’t do anything themselves, but that other programs can load and make use of. On Windows these are called .dll files. These .sprx files can be loaded and unloaded by a game whenever it feels like it, and they can be loaded into different memory locations each time, that is they can be relocated. Previously this wasn’t supported well, the interpreter could crash and the recompiler would have to recompile the entire module every time it was loaded, which made it useless in many games like Okami HD and Final Fantasy X HD. But now the recompiler can handle relocation of .sprx files in memory, each module only has to be compiled once and then the result is used forever, even after restarting RPCS3. This also lays the foundation of future functionality like scanning a game directory to precompile every .sprx module so that it doesn’t even have to interrupt gameplay once.

kd-11

#2823 – This PR fixes some Intel specific OpenGL issues. In general Intel and OpenGL is a bad combination because the drivers are abysmally low quality, but at least some games are starting to work now. For example [redacted] on Intel was fixed here.

#2842 – Support Vulkan on Linux
The title of the commit pretty much sums this one up. It updates the build scripts to allow RPCS3 to be built with Vulkan on Linux. It also does a cleanup of unused stuff from the main project, and fixes a few Vulkan specific API spec violations as well as implementing various missing functionality. This was one of the short term goals on kd-11s roadmap, which can be successfully marked complete.

#2850 rsx/vk: Bug fixes
This fixes various Vulkan issues affecting different games, for instance errors around running out of allocated graphics memory and games that seem to render fine except for being cut off or squashed down to a part of the screen.

#2861 – rsx: Bug fixes
This was a huge commit by kd-11 that impacted countless games. This commit fixes broken shadows in pretty much every game, along with numerous other graphical bugs. It fixed a few regressions in different games as well. The most notable improvement is the fact that Ni no Kuni is now playable as a result of this PR as it also fixed depth buffer issues. The graphics tab was rearranged to accommodate a few new toggles for features introduced in this PR. This PR is behind many of the improvements seen around this report, for example te fixed graphics in Demon’s Souls above.

#2918 rsx/vk: Bug fixes
The PR description goes into greater detail but essentially this is a collection of several different bug fixes and performance improvements. Resogun is up to three times faster with these improvements. This also inludes the 59.94 hz fix found by Jarves earlier.

Other Contributors

 

RipleyTom

#2844 – Command line elf path fix
This commit fixes when a game checks the executable path so that it points at the right spot, which fixes this issue in LocoRoco Cocoreccho! [NPUA80069] and any other games that check to see if the game is on HDD or a Blu-Ray disk.

jbeich

#2813 – Improve portability for BSDs
Another PR where what it does is largely in the title. This improves RPCS3’s ability to run on BSD based operating systems, however no real games actually work yet.

Clienthax

#2879 – HLE cellHttpUtilParseUri, Also initialize networking with Windows.
Implements a function in cellHttpUtil, as the title suggests. Fixes a crash in Bomberman Ultra.

Zangetsu

#2929 VK: Fix for lbp karting
A small one liner that makes LittleBigPlanet Karting go ingame with Vulkan.

Jarves & Numan

#2893 – Sprx/reloc/misc
#2916 – FREFS/weak imports and VREFS 4 and 6
#2927 – REF 57 plus FREF fix
The first PR has a collection of various fixes to several issues, including a small fix for trophies, a fix to games trying to initialize a mouse, and some others. However these three together improve .sprx support, fixing various issues and most notably taking Okami HD from nothing at all to ingame and playable.

Closing Words

In conclusion, the new Qt GUI by flash-fire, Megamouse, hcorion and DAGINATSUKO, improved LLVM recompiler by Nekotekina, graphics fixes by kd-11, and work on LLE gcm by Jarves has lead to some monumental RPCS3 progress and a very long progress report.

If you want to help out Nekotekina and kd-11 and make RPCS3 progress even faster you can check out the Patreon page here.

Also, come check out our YouTube channel and Discord to stay up-to-date with any big news.

This progress report was written by ssshadow with contributions from twdarkeh, Ani, MarioSonic2987, and Talkashie.