Skip to content

ARMSX3 0.7.2

Latest

Choose a tag to compare

@jpolo1224 jpolo1224 released this 14 Aug 02:37

ARMSX3 0.7.2
Fixes the graphical regressions in 0.7, plus a lockup, three freezes and the settings Reset button.

Performance:

The renderer is back to the 0.6 path. 0.7's graphics work caused corruption in several games and, once that was sorted, testers consistently reported the older renderer as the faster one, so it goes back out. The measurement behind that work was one game on one device and did not hold up on other hardware.

Two pieces are kept, because neither is part of that work and both are wins on their own: the RSX FIFO idle fix (about 11% of total CPU that was being burned on sched_yield), and ADPF frame timing, without which the performance-hint setting reported nothing and did nothing.

Fixed:

Games could lock up completely when deleting a file. Deleting, creating or removing a directory inside a game's own folder failed on Android, because that folder is a read-only mounted disc image, and the failure killed the emulator's main thread inside the syscall. The game froze with the CPU idle and nothing in the log. Oblivion never got past its title screen because of it.

Fixed three separate freezes caused by log spam. Games that poll a system call in a loop could produce over twenty thousand log lines in ten seconds, and writing them stalled the emulator for twenty seconds or more. One of them reported a failed memory lock on every single mapping, advising you to raise a system limit Android never grants to apps in the first place. All three are quiet now, and still available by raising the log channel to Trace.

Fixed water not rendering in Oblivion on Vulkan, and likely other missing or wrong shader effects on Adreno. Native half-precision shaders were disabled on every mobile GPU and emulated instead, which does not produce the same result. Re-enabled on Adreno drivers new enough to accept them, older drivers and other vendors are unchanged.

Reset on a settings page did nothing on most tabs. The lists of what each page owns were out of date, so Reset cleared settings the page no longer shows while missing most of what it does, on the Audio page it did not include the audio backend, format, channels or Cubeb backend. Rebuilt from what each page actually changes.

Diagonal stick movement was much slower than straight movement. A full diagonal was sent at about 70% strength, which is what a real DualShock does, but games that check each axis separately then ignore it, Oblivion's camera crawled diagonally. Added Full Diagonal Range, per stick, in Controls --> Analog Sticks --> Stick Feel. On by default. Turn it off to match original hardware exactly.

Enter Button Assignment (circle or cross), in Controls. The emulator has always supported this, the UI just never showed it.

Reset all settings, in App Settings. Per-game settings and controller binds are left alone.

Oboe is now the default audio backend on Android.