ARMSX3 0.9.9
What's new:
Faster SPU code on ARM64. The byteswap the recompiler emits constantly is one instruction now instead of two, and code written for x86 is no longer generated on this platform. Thanks to @Whatcookie for this!
Shortcuts and frontends use the right settings. Launching from a home screen shortcut or an external frontend built its own idea of the game and missed its serial, so it ran under a second configuration. It now resolves to the same entry the library uses, which also gives it the right title and cover. A title that gained a serial changed the key its settings were filed under, so everything set for it was left behind and the global values applied instead. Old settings are brought forward the first time you open the game.
A .pkg you have not installed but placed in your ROM folder shows up in the library, carrying its real title and cover art from inside the package. Tap it to install, with the option to delete the package afterwards.
Audio fixes from upstream, including one for games that came out silent on some output configurations, by @digant73, and shared memory handling for the audio system by @Yahfz.
First time setup now offers RPCS3's recommended settings config database. Some games need a specific setting before they will boot at all, and this is the list of them. Your own settings always win over it, and it can be turned off under App settings. (Existing users are unaffected, although I know a majority of you already use the config database).
Multi-touch on high resolution displays: On devices whose high resolution mode renders apps smaller than the screen, holding one on-screen control and pressing another put the second press in the wrong place. ARMSX3 now takes the true touch size from the touchscreen itself. Confirmed fixed on a Samsung S25 Ultra at 2340 x 1080 pixels. This fix will also make its way to ARMSX2 users.
Also: folders are named readably in settings instead of showing a raw storage id, installing updates that have numerous in order chain updates to go through now show real progress instead of sitting at 100 percent.
Save states now have a timestamp for when they were created.
Trophies sound support. The core's sound callback was empty, so trophies, dialogs and the on screen keyboard were all silent. Pick the file for Trophy sounds in App settings, with a test button and its own volume slider. There is no bundled default, you must provide your own.
Portrait Render Position works. It saved your choice and then dropped it. It is in the in game menu now as well. The landscape version is gone, since a 16:9 game in a 16:9 window has no empty band to move into.
Display Resolution (HW scaler) keeps your choice. It read the value in different units than it wrote, so every pick snapped back to Screen.
OSD Size works properly now. Two controls drove one setting, and the one at the top of the tab was the dead one.
Rest of Upstream: @elad335 (save state handling fixes, memory allocation, and loader fixes for games built against SDK versions below 2.00), @Yahfz (audio shared memory, user memory reservations) and @digant73 (audio output, UTF-8 filenames, file attribute reads).
DISCLAIMER:
Save states made before this update will no longer load. The save state format changed upstream and old ones are refused rather than misread. Your games, saves and settings are untouched, but a state you were relying on to resume is gone, as a reminder it's always best to NOT rely on save states for times like these where something is reworked upstream. (RPCS3 is still an Alpha emulator).
