EmulatorsPlaystation

ARMSX3 0.8 Adds Frame Generation and ARM64 Fixes


The ARMSX2 team is back with another major ARMSX3 update, and this one brings some of the most technically interesting changes yet. ARMSX3 0.8 introduces four different Android builds, fixes several ARM64 and Vulkan issues and adds experimental Lossless Scaling frame generation.

Four Android builds

One of the biggest changes is happening before you even launch a game. ARMSX3 will now be distributed in four builds:

  • Legacy: Android 11+, ARMv8.1
  • A11: Android 11+, ARMv8.2
  • A13: Android 13+, ARMv8.2
  • A15: Android 15+, ARMv8.2

The ARMv8.2 versions target newer CPU instructions including FP16 and dot-product operations. The developers recommend using the highest build supported by your device.

The Legacy build is intended for older CPUs such as Cortex-A53 and Cortex-A73, which are still found in some lower-end Mali devices. If the A11 build crashes on startup, the Legacy version is the alternative to try.

LLVM fix

One of the more important fixes is for Saint Seiya: Sanctuary Battle. The game previously stalled during PPU compilation and eventually ended up at a black screen.

The problem was traced to the ARM64 LLVM backend rather than ARMSX3 itself. The team’s LLVM changes now provide the emergency spill slot required when the register scavenger runs out of registers under the GHC calling convention.

All 231 modules now compile successfully.

Because this is an LLVM-level fix rather than a game-specific workaround, other titles encountering the same ARM64 compiler problem can benefit as well. The same fix also gets Sonic Unleashed’s FMVs working correctly.

Vulkan fixes

ARMSX3 0.8 also introduces Extended Dynamic State in the Vulkan renderer.

Instead of baking settings such as culling, front-face orientation, depth testing and primitive topology into individual pipeline objects, these states can now be changed per draw.

Significantly fewer pipeline permutations need to be compiled and cached, which should help reduce first-run shader compilation and stuttering on supported Adreno and Mali GPUs. Devices without the required Vulkan extension automatically fall back to the previous behavior.

Experimental Lossless Scaling

Perhaps the most eye catching addition is experimental frame generation.

ARMSX3 can now use Lossless Scaling’s frame interpolation technology at x2, x3 or x4. Users need to provide their own copy of Lossless.dll from Lossless Scaling on Steam. Nothing is bundled with ARMSX3.

There are also two tuning options:

  • Performance shaders, enabled by default
  • Motion detail, which controls optical-flow resolution

However, the developers are being very clear about this feature: it is experimental and is not a magic performance button.

Frame generation works best when the emulator already produces a stable frame rate. A game fluctuating between different frame times can actually look worse after interpolation. The feature also adds some GPU overhead and does not make the game itself run faster.

There are a few other caveats too. Enabling or disabling frame generation during gameplay can cause a several second pause while the additional graphics device and shader pipelines are created. The OSD can flicker and game menus are interpolated as well.

In other words, this is one for the high-end devices and for people who don’t mind experimenting.

More game-specific and stability fixes

The changelog is packed with smaller fixes as well:

  • Eternal Sonata no longer floods the log with SPU errors when the analyzer fails.
  • God of War III no longer permanently disables its SPU cache after an out-of-memory event.
  • BLEACH: Soul Resurrección gets an ARM64 fault recovery fix.
  • Leisure Suit Larry: Box Office Bust now completes its HDD cache preparation during boot.
  • Vulkan surface-loss crashes when Android backgrounds the application have been fixed.
  • A black screen when launching a game immediately after opening ARMSX3 has been fixed.
  • RSX semaphore waits have been improved on CPUs where low-power waiting does not properly park the thread.
  • Excessive SPU logging has been rate-limited. One tester reportedly saw a log shrink from 600 MB to just 2 MB.
  • A frame-generation use-after-free caused by resolution or orientation changes has been fixed.
  • OSD color and position settings now work properly.
  • Brazilian Portuguese translations have been updated and corrected.

ARMSX3 is still very much an experimental PS3 emulator on Android, but the pace of development is becoming difficult to ignore. Version 0.8 isn’t simply another compatibility update: the new ARM64 builds, Vulkan pipeline changes and experimental frame generation show that the team is already working on some fairly deep parts of the emulator.

You can grab the latest version here:

https://github.com/ARMSX2/ARMSX3/releases


Discover more from AndroGaming.com

Subscribe to get the latest posts sent to your email.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.