New PlayStation1 core SwanStation now available for RetroArch!

SwanStation is a totally new PlayStation 1 (aka PSX) emulator focusing on playability, speed, and long-term maintainability. Accuracy is not the main focus of the emulator, but the goal is to be as accurate as possible while maintaining performance suitable for low-end devices. “Hack” options are discouraged, the default configuration should support all playable games with only some of the enhancements having compatibility issues. A “BIOS” ROM image is required to start the emulator and to play games. You can use an image from any hardware version or region, although mismatching game regions and BIOS regions may have compatibility issues. A ROM image is not provided with the emulator for legal reasons, you should dump this from your own console using Caetla or other means. SwanStation includes hardware rendering (OpenGL, Vulkan and D3D11), upscaling and 24-bit color and a 64-bit dynarec.

It is currently available on the Libretro buildbot for the following platforms:

  • Windows
  • Linux
  • Android (AArch64-only)

Features

  • Relatively high degree of compatibility
  • Has three hardware renderers: OpenGL, Vulkan, and Direct3D11
  • Allows you to internally upscale the resolution
  • Has a dynamic recompiler and cached interpreter CPU core
  • Ability to run PSX CDROM emulation on a separate thread, reducing frame time spikes
  • How to get it

    There are two ways to install and/or update the SwanStation core:

    a – If you have already installed the core before, you can go to Online Updater and select ‘Update Installed Cores’.

    b – If you haven’t installed the core yet, go to Online Updater, ‘Core Updater’, and select ‘Sony – PlayStation (SwanStation)’ from the list. It will then download and install this core.

    BIOS required

    SwanStation, like Beetle PSX, requires a real BIOS in order to work. There is no HLE BIOS like PCSX ReARMed.

    A “BIOS” ROM image is required to start the emulator and to play games. You can use an image from any hardware version or region, although mismatching game regions and BIOS regions may have compatibility issues. A ROM image is not provided with the emulator for legal reasons, you should dump this from your own console using Caetla or other means.

    Recognized BIOS images:

    • scph5500.bin
    • scph5501.bin
    • scph5502.bin

    Benchmarks

    System specs: CPU – Intel Core i7 7700k | GPU – Geforce RTX 2080 Ti (11GB VRAM, 2018) | 16GB RAM

    We’ve performed some basic performance tests between SwanStation and Beetle PSX HW. We are using the same baseline resolution (1x) for both cores, and we try to make the test as fair as possible by disabling features such as PGXP and texture filtering for Beetle PSX HW (both features which SwanStation lacks).

    SwanStation

    Title Direct3D11 Vulkan OpenGL
    Tekken 3 396fps 414fps 335fps
    Alien Trilogy 538fps 552fps 499fps

    Beetle PSX HW

    NOTE: Beetle PSX HW does not have a Direct3D 11 renderer

    Title Vulkan OpenGL
    Tekken 3 326fps 229fps
    Alien Trilogy 480fps 473fps

    As you can see, on average performance is overwhelmingly in SwanStation’s favor. It does have to be said that Beetle PSX HW right now has some unique features that SwanStation lacks, such as PGXP and texture replacement.

    Conclusion

    You should definitely give SwanStation a go if you want a high performance PlayStation1 emulator. If you find Beetle PSX HW to be running too slowly for you on your system, you should check if SwanStation is faster instead.

(Coming Soon) RetroArch 1.9.0 – Widget-based ‘load content’ animation

A new “Load Content” Startup Notification option has been added under Settings > On-Screen Display > On-Screen Notifications. When enabled, a brief animation is shown whenever content is launched – it looks something like this –

Notes:

  • The animation is disabled when running a core without content (there are some underlying technical issues that prevent this)
  • The animation is disabled when running content with ‘in-built’ cores (imageviewer, music/video player).
  • The animation works both for content launched via the menu and via the command line

Preview of custom texture replacement pack for WipeOut 2097/XL (Beetle PSX HW)!

Here is a sneak peek of LyonHrt’s upcoming texture pack replacement for Wipeout 2097/XL! You will be able to use this with the Beetle PSX HW core on RetroArch! Experience Wipeout XL/2097 with never-before-seen fidelity!

NOTE: To use this texture replacement pack, you will need to use Beetle PSX HW and in specific the Vulkan renderer.

RetroArch 1.8.9 released!


RetroArch 1.8.9 has just been released.

Grab it here.

A Libretro Cores Progress Report will follow later.

Remember that this project exists for the benefit of our users, and that we wouldn’t keep doing this were it not for spreading the love with our users. This project exists because of your support and belief in us to keep going doing great things. If you’d like to show your support, consider donating to us. Check here in order to learn more. In addition to being able to support us on Patreon, there is now also the option to sponsor us on Github Sponsors! You can also help us out by buying some of our merch on our Teespring store!

Highlights

AI Service – Custom accessibility service support

The AI service feature has included new changes to allow closer integration between the service selected and the game being played, allowing the service to read and press gamepad buttons along with the current screen image. The example video above shows a custom service (still in development) designed to make Final Fantasy 1 accessible and playable by blind users.

When started, the AI service will continually parse the screen and describe what’s being shown. When in a town or overworld view, it will describe what’s around the player to the west, north, east, and south, as well as any new things of interest that have appeared on screen (eg: a townsperson, a weapon shop, treasure chest, etc.). When the emulator is paused, it will give a more detailed description of what’s on the screen, including how far the player can walk in all directions and all things of interest along with their coordinates relative to the player. If the player holds the select button at this time, then the AI service will read out the list of things of interest on the screen and allow the player to scroll through them and select one. When selected, the AI service will unpause the game and move the player to that thing and interact with it.

When on a menu or battle screen, the service will read out the text on the screen and the currently selected menu option.

We will have more information on this for you soon after the initial testing and feedback is over.

Core Management Options

  • The software license of each core is now shown in the ‘Core Downloader’ and ‘Load Core’ screen.
  • Pressing RetroPad Select on a Core Updater entry will now display any text in the description field of its info file
  • Installed cores are now highlighted via a [#] symbol
  • Pressing RetroPad Start on a selected, installed entry opens the Core Information menu (when using Material UI, swiping left or right triggers the same action). This means we can now view bios info etc. – and more importantly delete cores – without jumping through all the hoops of loading a core first and navigating all over the place
  • It’s now possible to hide ‘Experimental Cores’ from being shown in the ‘Core Downloader’ menu screen.

Backup cores when updating

By default now, a backup of the current Libretro core will be made when you upgrade a core from RetroArch’s builtin Updater service. In addition, you can also ‘freeze’ a core. ‘Freeze’ in this context means that the Updater service will not be able to overwrite your current core with the latest version from the Updater service.

Vulkan WSI improvements

There were some problem platforms with WSI (Window System Interface) currently, which version 1.8.9 partly addresses. This should theoretically reduce stalls on integrated GPUs.

  • Intel Mesa was broken when using Fences, we have to use Semaphores to acquire the swapchain or the entire GPU stalls.
  • Add support for either using fences or semaphores when syncing.
  • Prefer using semaphores for integrated GPUs (such as Intel HD) as it promotes better throughput over fences.
  • Do not use mailbox emulation on Android.
  • Also, to make this work, decouple frame index from swapchain index with regards to CPU-side synchronization. Before, swapchain index would be coupled with frame context, which is somewhat naive.

Changelog

What you’ve read above is just a small sampling of what 1.8.8 has to offer. There might be things that we forgot to list in the changelog listed below, but here it is for your perusal regardless.

1.8.9

  • AUTO SAVESTATES: Ensure save states are correctly flushed to disk when quitting RetroArch (fixes broken save states when exiting RetroArch – without first closing content – with ‘Auto Save State’ enabled)
    BUILTIN CORES: Builtin cores like ffmpeg and imageviewer would previously try to erroneously load a dynamic core named ‘builtin’ – this would fail and would just be a wasteful operation – this now skips dylib loading in libretro_get_system_info for builtin cores
  • CHEEVOS: Report API errors when unlocking achievements or submitting leaderboards
  • CHEEVOS: Support less common file extensions
  • CHEEVOS: Disable hardcore mode when playing BSV file
  • CHEEVOS: Correctly report unlocked non-hardcore achievements when hardcore is paused
  • CHEEVOS/M3U: Bugfix – did not handle absolute/relative paths in M3U files correctly before
  • CHEEVOS/M3U: Bugfix – it didn’t handle comments/directives
  • CHEEVOS/M3U: Bugfix – it doesn’t handle trailing whitespace
  • CHEEVOS/M3U: Bugfix – failed when loading M3U files with certain line endings
  • CORE MANAGEMENT: Add ‘core management’ menu (Settings -> Core)
  • CORE MANAGEMENT: Add option to backup/restore installed cores
  • CORE MANAGEMENT: Improved core selection logic
  • CORE INFO: Search search optimisations
  • CORE DOWNLOADER: Rename ‘Core Updater’ to ‘Core Downloader’
  • CORE DOWNLOADER: Add ‘Show Experimental Cores’ setting under Settings > Network > Updater
  • CORE DOWNLOADER: Core licenses are now shown for all entries in the Core Updater menu
  • CORE DOWNLOADER: Pressing RetroPad select on a Core Updater entry will now display any text in the description field of its info file
  • CORE DOWNLOADER: Installed cores are now highlighted via a [#] symbol
  • CORE DOWNLOADER: Pressing RetroPad start on a selected, installed entry opens the Core Information menu (when using Material UI, swiping left or right triggers the same action). This means we can now view bios info etc. – and more importantly delete cores – without jumping through all the hoops of loading a core first and navigating all over the place
  • CORE DOWNLOADER/UPDATER: Add option to automatically backup cores when updating
  • DISK CONTROL: Enable ‘Load New Disc’ while disk tray is open
  • INPUT: Added a hotkey delay option to allow hotkey input to work properly when it is assigned to another action
  • INPUT: Remove ‘All Users Control Menu’ setting, was buggy and will be properly reintroduced after input overhaul
  • LINUX: Set default saves/save states/system paths
  • LOCALIZATION: Add Persian language
  • LOCALIZATION: Add Hebrew language
  • LOCALIZATION: Add Asturian language
  • MENU: Proper line wrapping for message dialog boxes
  • MENU/HOTKEYS: Add sublabels to all hotkey bind entries
  • MENU/QUICK MENU: Suppress the display of ’empty’ quick menu listings when closing content
  • MENU/OZONE: Performance improvements
  • MENU/SDL: Add mouse controls
  • OPENGL1/VITA: Initial changes for HW context without FBO
  • OVERLAYS: Add options for moving the on-screen overlay
  • PLAYLISTS/WINDOWS: Fix core path entries in image/video/music history playlists
  • PS2: Add back CDFS support
  • SDL/GL: Advertise GLSL support
  • VIDEO/WIDGETS: Fix heap-use-after-free errors, leading to memory corruption
  • VITA: Added custom bubbles support
  • VITA: VitaGL update
  • VULKAN/WSI: Better frame pacing
  • VULKAN/WSI: Fix Intel Mesa being broken when using Fences, we have to use Semaphores to acquire the swapchain or the entire GPU stalls
  • VULKAN/WSI: Add support for either using fences or semaphores when syncing
  • VULKAN/WSI: Prefer using semaphores for integrated GPUs as it promotes better throughput over fences
  • VULKAN/WSI/ANDROID: Do not use mailbox emulation on Android
  • UWP/XBOX: Potentially improve performance by enabling ‘Game Mode’

ParaLLEl RDP updates

Several important things got fixed in the latest core updates for ParaLLEl N64.

Changes

– A new deinterlacing system has been implemented that should be significantly better than the old one. Especially noticeable in games like Resident Evil 2, Turok 2’s high-res mode, Daikatana’s high-res mode, Star Wars Episode 1 Racer’s high-res mode, and tons of other games.

It just blits with a linear filter with an Y offset based on field state. Very basic, but seems good enough. Avoids the worst aspects of bob and weave

Crop overscan added

A game rendered with Angrylion and/or ParaLLEl RDP usually retains the black borders of the screen that went unused. With the ‘Crop Overscan’ option, you can strip these away from the final output image.

See here a good example – Daikatana in high-res mode. By default, it has big borders.