RPCS3 Has Moved to Qt

June has been an exciting month for RPCS3. Quite a few new features have been added to the emulator, with a healthy focus on the somewhat outdated GUI. This post will break down some of changes brought by Qt, as well as new features introduced since the transition. This mini progress report will only focus on GUI changes. The main progress report to be published tomorrow will cover the rest.

First up is, obviously, the actual transition from the user interface toolkit WxWidgets to Qt. This transition has been a long and time consuming process, but it added a host of new functionality, both visible and not so visible. A non-exhaustive list of the transition pull requests, the main of which can be found here is:

  • – Appveyor and Travis now build with Qt project, thanks to hcorion. This switches the nightly builds, and eventually the linux builds, to use the Qt interface.
  • – Made some design changes to the GUI, such as progress bars and taskbars now showing percent completion and slight improvements to the Vulkan/DX12 adapter selection box to make it easier to use.
  • – Added support for layouts, which allows you to move your docked widgets as you please.
  • – Added support for booting games in fullscreen.
  • – Added a Welcome screen to point new users to the Quickstart setup guide.
  • – Support for themes! An example can be found further down.

As with all major changes, this caused a few hiccups, but they are being worked on as they are found, and issues can be reported here.

This transition to Qt brought a wave of GUI improvements with it. First up was a recent games list, implemented in #2843 and #2847. This saves the last nine games launched in an easy to use list that has hotkeys, so that those with large libraries, or those using Blu-ray disc games, can easily launch their favorites. The list can be frozen, though items cannot yet be pinned.

Second was a new viewing mode and a tool bar. The game list can now be viewed as a simple grid:

As you can see in the screenshot provided by user Talkashie(which also shows a custom made theme!), the new toolbar allows for searching of large libraries, as well as directly filtering the list by game types. An example being that you can filter out audio/video apps and home apps, or you can choose to view only HDD games. Thanks to user rutantan for creating the very nice button icons in the toolbar.

Yet another newly added feature was the VFS dialog, which was added in #2863. This allows users to change the directories used for things such as dev_hdd0, which enables sharing a single directory throughout all rpcs3 installations. This is a very useful feature for quickly testing games between commits going forward, as it allows users to boot games from the game list quickly, rather than having to either create a second install of the game or manually boot it. This feature shouldn’t be confused with adding Blu-Ray disc games to the game list, which will come at a later point in time.

#2876 revamps the debugger and CgDisAsm GUIs to both look better and be more functional. This includes improving resizing of the debugger, replacing tabs with a side-by-side view in the CgDisAsm and adding drag and drop support for fpo and vpo files. More details can be found in the actual PR. Improvements to the debugger are ongoing.

#2890 redoes the gamelist categories to be more faithful to the original PS3. It allows all bootable categories to boot, and the filters should work as intended now. Several miscellaneous categories have been condensed into an “other” category for the time being. The icons in the toolbar have been updated as needed as well.

One of the most exciting commits this month is #2924, which connects the stubbed save manager to the actual save function. Simply put, this allows for the creation and use of multiple saves. This is only an initial implementation, but it enables one of the biggest missing features of a real console, and is a huge step forward for the emulator.

Several other pull requests not mentioned here fixed bugs, restored forgotten functionality, and improved the new features mentioned above. Several other GUI features are in the works, including properly featuring Blu-Ray disc games in game lists by creating a directory for them. In addition to existing features being improved and new features being implemented, Megamouse is working with lead web and graphics designer DAGINATSUKO to rework the GUI into a much smoother and user friendly experience. A preview of some of the upcoming changes can be seen below. Bugs will be fixed as they are found as quickly as possible, and hopefully new features will keep on coming.

A look at the rework of the main window to the right compared to the old main window to the left.

New Keyboard controls setup screen. Much more intuitive than the old one.

Settings GUI updated to look better, and includes tooltips for what options actually do.

Closing Words

This report only scratches the surface of the work that was done to bring RPCS3 over to Qt. flash-fire, Megamouse, hcorion and others worked hard over many weeks to make RPCS3 better in the user interface department. They will also continue to do so in the future as there is still more work to do.

You can support further RPCS3 development on Patreon here.

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

This report was written by twdarkeh and edited by ssshadow.