As I am usually more interested into older systems to play, I read the first time about a working PlayStation 3 emulator today. You as well? They call themselves the ‘The world’s first open-source Sony PlayStation 3 Emulator for Windows and Linux’, so we are probably not the only ones. So lets have a look at what RPCS3 exactly is and what it can do already. From their ‘About’ page:
The History of RPCS3
RPCS3 is an open-source Sony PlayStation 3 emulator and debugger written in C++ for Windows and Linux. The project began development on May 23rd, 2011 and currently supports modern Vulkan, Direct3D 12 and OpenGL graphic APIs. The emulator is capable of booting and playing hundreds of commercial games. With each and every contribution and donation, more and more games are becoming closer and closer to either booting or full playability.
RPCS3 was founded by programmers DH and Hykem. The developers initially hosted the project on Google Code and eventually moved it to GitHub later in its development. The emulator was first able to successfully boot and run simple homebrew projects and was then later publicly released in June of 2012. Today RPCS3 is dubbed one of the most complex video game console emulators of all time with an endless goal to effectively emulate the Sony PlayStation 3 and all of its aspects.
As we all now the PlayStation 3 is quite a powerful piece of hardware hence you need pretty beefy hardware on your PC to emulate it. Lets look into the recommended requirements for RPCS3:
Windows 7 64-bit or greater / Linux 64-bit
A modern x64 processor with SSSE3 support
A GPU that supports OpenGL 4.3 or greater
Minimum: 4GB of RAM. Recommended: 8GB of RAM or greater
Storage requirements will expand depending on installed PlayStation 3 software.
Download and install
Lets grab a copy of RPSC3 and install it. Head over to their Download page and get either the Windows or the Linux binary, depending on your Operating Platform. Download and the run it.
Linux users have to execute the command “sudo chmod a+x ./rpcs3-v0.0.3-2017-08-14-b44f5e5-7621_linux64.AppImage” before running the AppImage.
Once started and in the main windows of RPSC3, install the firmware you downloaded from Sony’s site via “File -> Install Firmware” and selected the just downloaded file PS3UPDAT.PUP. That takes a while and RPSC3 will report back once successfully installed.
Depending on the file you like to run, lets assume we got a PKG file, you have to install it. Go the RPSC3 select “File -> Install .pkg”, select the downloaded and extract PKG file and let RPSC3 do some magic. It should look similar to this screenshot:
SELF or ELF files can be executed via “File -> Boot SELF/ELF”.
Now it is time to start the PS3 file: Double click (or right click and “Boot”) to start the image. Depending on your machine’s horse power it takes a bit long or even longer to start.
Wow, feels like RetroArch 1.6.3 was just released the other day, the team behind it released today the next version 1.6.4 with quite a few interesting highlights:
Windows 98 SE/2000/Millennium Edition version – now with 29 cores (I will test this it out pretty soon and provide feedback on it)
RetroArch PlayStation3 version is getting nightlies
Citra/OpenLara/Dolphin cores can now be easily used
Also the cores got many updates; here was has changed since the last version:
r-type fixed Beetle NGP‘s longstanding bugs with big-endian architecture, which should allow that core to control properly on those architectures. He also fixed compilation of the atari800 and Hatari cores on Wii U and fixed some issues with the cap32 core on that platform.
Twinaphex and r5 continued overhauling Beetle PSX HW‘s OpenGL renderer, doing much behind-the-scenes work that isn’t particularly visible to end-users but should improve stability and lay the groundwork for future improvements.
Twinaphex also added MSVC2005 solutions for many cores, making them compatible with our Win98 port of RetroArch.
bparker fixed some memory and GL issues with the Craft Minecraft clone core, which should correct an issue where the core was crashing at launch for some people.
markwkidd backported C-based MIPS3 support to MAME2003, which gets Killer Instinct and Killer Instinct 2 working with this core. Without a MIPS dynarec, they’re too demanding for most ARM devices, unfortunately (Killer Instinct 1 is not quite full speed on my Shield ATV, while Killer Instinct 2 is pretty far from full speed; Raspberry Pi is, of course, not even close), but they should work fine on x86 and x86_64 devices.
Bounty hunter rtissera added CHD support to Beetle Saturn and Beetle PC Engine Fast – with plans to add support for this format to several other disc-based cores in the near future–and hooked up support for the Saturn’s 3D pad. He also fixed an issue with MAME 2003 with Midway DCS games that would lead to audio issues at set intervals. This should fix the sound in Mortal Kombat 1/2/3/Ultimate, NBA Jam, Total Carnage, etc. other games.
casdevel, another active bounty hunter, fixed mouse input in Desmume libretro.
albertofustinoni submitted changes for a variety of cores to make them compatible with his RetriX UWP libretro frontend, which is compatible with Windows 10, Windows Phone and Xbox One developer mode.
orbea committed some buildfixes for the early work-in-progress Basilisk2 core.
yoshisuga continued adding build targets for iOS ARM64 in various cores.
hunterk did the mind-numbing work of bisecting and correcting a regression in Snes9x Libretro that apparently broke the game Phalanx back in May.
psyke83 fixed a crash with Tyrquake that could happpen on Raspberry Pi-based devices (e..g. Retropie).
Citra / OpenLara / Dolphin will now work without having to explicitly enable ‘Shared Hardware Context’ in RetroArch.
Read their blog post here and grab the latest version from here.
As always, there have been many updates to various libretro cores from a number of contributors, some of whom are regular contributors and some of whom have never contributed to libretro projects before. Here are some of the highlights, in no particular order:
Twinaphex and r5 did a deep-dive on the Beetle PSX HW OpenGL renderer to resolve a host of issues that would lead to crashes whenever users messed with internal resolution and/or toggled fullscreen. Those context changes should now be handled gracefully and without any major issues.
RobLoach updated MelonDS to match StapleButter’s upstream v0.4 release and added to the ScummVM libretro core the ability to launch *.scummvm files located inside game directories. He also merged a variety of updates from upstream EasyRPG to the libretro core and added FFMMidi for MIDI support.
bparker snatched up the $50 bounty to fix a longstanding issue with 3DO emulator 4DO Libretro, which caused saving to be broken. Prior to this fix, saves were just garbage data and the core would try to load *other* garbage data. Everything should work fine now.
Twinaphex backported a slew of per-game hacks/fixes from upstream Mupen64Plus to ParaLLEl-N64 to fix audio sync in Resident Evil 2 FMVs, fix Indiana Jones, fix missing sound in Episode 1 Pod Racer and to fix Perfect Dark when using the Angrylion or ParaLLEl renderers, among other fixes and cleanups. He also added a toggle for dithering with the Angrylion renderer, which can provide a cleaner image and also squeeze out a few more frames per second for users who were hovering around full speed with that highly accurate plugin. He also added a fix for Mario Kart 64 when using the Rice video plugin. Twinaphex also added very high internal resolution multipliers for cores that support it, including Dolphin Libretro, Beetle PSX HW, OpenLara Libretro, Craft libretro and Mupen64plus Libretro.
oxavelar added 4-player controller support to the still-nascent Dolphin Libretro core.
Meepingsnesroms improved rotation functionality in Beetle WonderSwan Libretro and fixed the Amiga emulator core, (P-)UAE Libretro core on Android x86.
frranck tweaked the AI in MrBoom Libretro to make playing against computer opponents a better experience.
danieljg backported to our FBA2012 core a turbo speedhack for Metal Slug 2.
r-type updated MAME Libretro to stay in lockstep with upstream MAME, as well as adding a bunch of new resolutions to the “alt renderer” core option, which should allow for clean, anti-aliased vector graphics, as well as clean use of MAME’s artwork feature. He also added more target systems to his libretro port of Vice, along with a core option to choose different models of C64 and/or VIC20.
yoshisuga has added iOS-ARM64 build targets for many cores to make them compatible with newer Apple iDevices. He also helped track down and squash a longstanding bug that was causing a handful of cores to display only a black screen on iOS devices.
Tatsuya79 added an option to crop overscan on the blueMSX libretro core, along with fixing a variety of mapper issues in that core. He also added a core option to Beetle PCE Fast to allow users to choose which CD-ROM BIOS to use, as well as adding a bunch of new functionality for Prboom Libretro, including keyboard and mouse support and savegame slots.
hunterk backported some minor fixes from upstream Higan to our bsnes and bsnes-mercury cores to fix an elusive hanging issue in Magical Drop and audio issues with several games using the performance core. He also added a fix for Nestopia-UE‘s libretro interface that was preventing autoselection of the Japanese 4-player adapter when using the NstDatabase. hunterk also added core options to increase the internal resolution of the Vectrex emulator core, Vecx Libretro, which greatly reduces the ugly jaggies caused by 1x rendering.
barbudreadmon updated FBAlpha Libretro to the upstream v0.2.97.42 and fixed a segfault that could occur with some pgm games.
radius fixed savestates in FBAlpha Libretro and re-applied a fix to Mupen64plus Libretro for stuttering that some users experienced with games that run at 30 fps.
sergiobenrocha2 and shakalakka provided more intuitive button layouts for the MAME2014-libretro and MAME2016-libretro cores. sergiobenrocha2 also merged in endrift’s upstream changes from mGBA v0.6.0.
kivutar made a lot of improvements to the lutro-platformer core, while RobLoach added Love support to it.
markwkidd did a variety of quality-of-life improvements for MAME2003-libretro, including adding a catver.ini file that helps with categories and fixing the Makefile to compile in the MIPS engine for x86, which should fix Killer Instinct on x86 (that is, KI is still broken on x86_64 and ARM) with this core. He also added DAT and catver.ini for MAME2000-libretro and submitted a fix from RetroPie user poi to MAME2010-libretro to fix Xevious and Bosconian.
TylerLoch (with some cleanup help from radius) added a SuperFX chip 20 MHz overclock option (i.e., instead of starting at 40 Mhz) for snes9x-libretro.
OpenLara has been updated to the latest version by twinaphex. It should now have an inventory screen and a working healthbar.
SpiralBrad backported from upstream the ability to automatically set the BIOS time in Beetle Saturn based on the host system’s clock, which is particularly useful for the real-time holiday functionality in Christmas NiGHTS.
j-selby continued improving the already impressively complete Citra Libretro port to include touchscreen emulation using the mouse and optional right analog stick among other improvements.
Libretro announced on their blog the release of the next version of RetroArch which is v1.6.3. To get the newest release go over to this page.
From their “General changelog” this is what changed:
IOS: Fix GL regression – 32bit color format cores were no longer rendering CHEEVOS: Add support for N64 cheevos and other small fixes. CHEEVOS: Add ‘Achievements -> Achievements Verbose Mode’. Ability to display cheevos related messages in OSD, useful for RetroAchievements users. AUDIO: Audio mixer’s volume can now be independently increased/decreased, and muted. AUDIO: Mute now no longer disables/enables audio but instead properly mutes the audio volume. Mute is also independent from the audio mixer volume. INPUT: Add mouse index selection; ability now to select between different mice INPUT: Fix ‘All Users Control Menu’ setting LINUX: Add a tinyalsa audio driver. Doesn’t require asoundlib, should be self-contained and lower-level. LOBBIES: Announce the RetroArch version too LOCALIZATION: Add Traditional Chinese translation LOCALIZATION: Update French translation LOCALIZATION: Update Italian translation LOCALIZATION: Update Japanese translation LOCALIZATION: Update Russian translation MENU: Add ‘User Interface -> Views’. Ability to display/hide online updater and core updater options. NETPLAY: Disconnecting one client shouldn’t cause everyone to disconnect anymore NETWORK: SSL/TLS support, disabled by default SCANNER: Fix PS1 game scanning SCANNER: Move content list builder into scanner task with progress, fixes menu freeze with large playlists SDL2: Fix ‘SDL2 driver does not see the hat on wired Xbox 360 controller” SETTINGS: Fix regression ‘Custom Viewport is no longer overridable per-core or per-game’ VITA: Add cheevos support VITA: Add support for external USB if mounted WAYLAND: Fix menu mouse input WII: Add support for single-port ‘PS1/PS2 to USB controller adapter’
There are many port specific changes too, which details you will find on their blog post.
A new blog entry from libretro with some interesting news:
This time it is mostly for people using powerful hardware, this includes CPU and GFX cards, to run their games on: Resolutions supported up to 16K! That should be enough details for everyone out there.
What does that mean exactly?
Dolphin supports now resolutions up to 12k, which is 12160×10032
OpenLara can run at 16K or with 16000×9000 pixels
Craft (Minecraft clone) also 16k; 16000×9000 pixels
There is also news on a new software-based renderer Angrylion for the Nintendo 64 core, which is also target currently only at high-end CPU’s.
Even though Retroarch is a really great frontend for emulators using libretro API, it can be a bit confusing for beginners to get started and play a game as it is not a simple File->Open as most people are used to from other (standalone) emulators. At least it was for me, until I figured it out. Hence a very quick tutorial on how to
Once you got Retroarch installed on your system (this might be worth another article) and started it up, you look at its frontend. By default this is XMB which looks similar to the Playstation 3 (PS3) interface with horizontal and vertical aligned menus. To load a game from your device, which needs to be supported by Retroarch obviously, go to
/ (3rd item, depends on the Operating system you are using (eg. Windows, Linux, OS X, …..)
Then browse to the directory where your game is located and select it
if the game is zipped, select Load Archive
If the filetype is not yet associated with a core, the you can select the core here. Give it a try, which one works best on your system. (If a core is already associated, the game starts immediately.)
Now the game should start
Load and scan your game library
Probably the preferred option of everyone is to scan the whole library and then easy select the games from each of the systems available. Including a nice boxart.
How to do this? Lets have a look.
Preparation: In my experience it works best, if you store all your roms within folders separate by systems: So have a SNES, NES, Gameboy, … folders with each of the games in it.
Steps to scan a folder:
Go to “Import content” (the + sign)
Browse to the folder you like to scan.
Once in the folder, select “Scan This directory”
Depending on the number of roms within the directory to scan this can take quite some time…. Retroarch shows the progress in the bottom left corner.
Once finished, a new icon with the system(s) scanned shows up on the right hand side on the horizontal menu axis. Go there and select the game you like to play. Have fun.
Hope this helps some newcomer. Questions, comments or any feedback in general is very welcome.
A warm welcome to everybody finding this website about classic games.
Why another one? Good question: I enjoyed some hours playing Mario and various arcade games with my kids on various systems. Even showed them some older titles using Lakka.tv. I am collecting old consoles and got many of them. But with Lakka, I have to connect only a single computer instead of several consoles, so was playing around with it (and no original item can get damaged).
As I had some troubles with hardware recongnization I thought writing a tutorial helping others might help. Perhaps also a possibility to discuss other topics and learn something further. So here we go. Enjoy.
PS. Migrating over from phpBB to WordPress which offers much more possibilities.