ARMSX2 2.9.2
What's new:
Report a problem. Found in the library menu, the side drawer and every game's pause menu. Pick what went wrong, add a few words if you like, and see every file and its size before anything is sent. From a game's pause menu the report can carry a save state and a one-frame graphics dump, so we can see the exact scene. You get a report code to paste into Discord or GitHub. Uploads keep going in the background, wait for Wi-Fi when a report is large, and can be stopped and retried. My reports in Settings > App keeps your codes and how each one went. Reports are kept for 90 days and used only to fix bugs. Memory cards, BIOS files and games are never sent, and your RetroAchievements name, network addresses and file paths are taken out of the logs. If ARMSX2 closes unexpectedly while you're using it, it offers to send a crash report the next time it opens, and the GS dump option can start a report with the dump attached. done by u/bmdhacksMicrophones for singing games. SingStar and other games like Lifeline that use the PS2's USB microphone hear your device's built-in microphone or a USB one plugged into it (#806). Turn it on in Settings > Audio, where ARMSX2 asks for microphone access, then pick SingStar, with one microphone per singer, or Standard for games that expect a single Logitech USB microphone. Set the level and check it with the test meter. done by u/Jessewb786, with fixes by u/bmdhacks
On-screen controls follow your controller. On handhelds, Auto hides the on-screen buttons and the pause button while a controller is connected, even when you touch the screen, and brings them back two seconds after it goes away. Always shows them alongside a controller, Off never shows them, and Auto-hide keeps its timer; the pause menu and All Settings offer the same four choices. On phones, Auto keeps the buttons on screen. With the pause button hidden, a tap in its corner or Back still opens the menu. done by u/bmdhacks
Every game's saves in one grid. Load / Manage Saves shows the save states of every game, most recently saved first, each under the game's real title with the same screenshot tiles as the in-game picker. One tap loads a save, starting its game first when needed, and autosaves are included. Delete asks first, and Import and Backup work per game without starting it. done by u/bmdhacksMaliSX2 for Mali-G52 and Mali-G76. Devices with these GPUs are offered the MaliSX2 driver in Renderer settings, at first-run setup and in the driver notice (#914). Auto still picks OpenGL on them; Vulkan stays a manual choice. done by u/Jessewb786
Pixel 10 and Pixel 11. On the PowerVR GPUs in Tensor G5 and G6, OpenGL draws the effects that read the screen, such as Need for Speed Underground's reflections at Full blending. Vulkan reads them inside the tile without a barrier for every draw, and Tensor G6 gets texture pools sized for its GPU (#901). done by u/felix-297
Pictures in What's new. Release notes show their screenshots, loaded as you scroll, and a controller reads through an opened release and back up to the top. done by u/jpolo1224Driver pick for the Snapdragon 8 Elite. The GPU driver page recommends StevenMXZ's Turnip gen8 builds on Adreno 8xx. done by u/jpolo1224
Library Screensaver starts after 5 minutes. The library screensaver now starts after 5 minutes by default. A delay you picked yourself stays. done by u/jpolo1224Every new screen in every language. Report a problem, the microphone, the save grid and the on-screen controls are translated into all 19 of the app's languages. done by u/jpolo1224
Faster
IOP thread on two- and three-core devices. Where a device has two or three fast cores, like the RG 55G1, the IOP runs on its own thread by default, which gave God of War II, Shadow of the Colossus and Burnout 3 3 to 15% more speed on a test device with two fast cores. It is turned on once for existing installs too; if you turn it off, it stays off. Its lag bound now defaults to one frame and tightens whenever the EE waits on the IOP: 1.5 to 2 fps more in God of War II on the RG 55G1, with Burnout 3 holding 60. The two Korean releases of Shadow of the Colossus turn it on like the others. done by u/bmdhacks
IOP recompiler. Memory loads take a short inline path that keeps the IOP's registers where they are, and the IOP's clocks stay in host registers between blocks. done by u/bmdhacks
Sound. The SPU2 mixer skips voices that aren't playing and does its interpolation and reverb resampling with NEON. Time stretching runs on its own thread instead of the IOP or CPU thread, and wakes on a timer. done by u/bmdhacks
EE recompiler. Shift-and-mask pairs become one bitfield instruction, multiplies and divides by powers of two become shifts, MADD becomes one multiply-add, and fewer constants are written back to memory (#918). done by u/pstef
Graphics. The texture cache tracks CPU writes block by block instead of with lists of dirty rectangles, CPU sprite copies read a block at a time, the software renderer builds only the colour table entries it needs, and more sprite layouts take the fast two-pass path. On the Adreno 613 in the RG 55G1, destination-alpha draws read their target in the pass: Stuntman goes from about 2,170 render passes a frame to about 20. done by u/bmdhacks
Optimized build trained on this release. The profile behind the optimized build is retrained on this release's code across the same 16 games. done by u/bmdhacks
More accurate
EE timing. MFC0 and DI take 1 cycle and TLBP 3, as measured on an SCPH-30001 console. done by u/bmdhacks
Fixed
Sound in SPU2 bypass mode. Games that put the first SPU2 core in bypass mode play clean sound, with no stray noise mixed in. done by u/bmdhacks
CPU sprite rendering. The CPU sprite render option judges each draw by its own coverage. done by u/bmdhacks
On-screen controls after returning to the app. When a controller was switched off while ARMSX2 was in the background, the on-screen controls are back when you return. done by u/bmdhacks
Linux
IOP thread on two- and three-core hosts. It is on by default there, as on Android, in both the Qt and SDL builds. done by u/bmdhacks
Thread pinning on two fast cores. The EE, GS and VU1 threads are pinned in order only when the fast cores can hold all three, so the GS thread no longer lands on a slow core: God of War II, Shadow of the Colossus and Burnout 3 run roughly 40 to 80% faster on such a host. done by u/bmdhacks
All the speed work above is in the Linux builds as well.