A performance-focused update for ARMSX2
ARMSX2 2.9, released on October 26, 2026, is a major update to the ARM64 PlayStation 2 emulator. It introduces new ways to reduce emulation overhead, simplifies graphics-driver setup on supported Android hardware and adds controls aimed at handheld users. ARMSX2 is based on PCSX2 and emulates PlayStation 2 hardware on compatible ARM64 phones, computers and gaming handhelds.
The release also marks ARMSX2’s first anniversary. Its central additions are the VU1 Ahead-of-Time Compiler, optional IOP Thread support and Automatic Performance Tuning. Together, they target demanding parts of PlayStation 2 emulation while giving users more control over how individual games use the host device. A PlayStation 2 BIOS dump from a legitimately owned console is required to use the emulator.
VU1 compilation targets demanding 3D games
The PlayStation 2’s VU1 performs much of the console’s 3D mathematics. ARMSX2 2.9 can recompile frequently used VU1 programs into faster code on a background thread and remember that work, so those programs can be ready sooner on later launches.
The VU1 Ahead-of-Time Compiler is enabled by default. It appears in Performance settings under Advanced Speedhacks and in the in-game Performance menu. Disabling the option also clears the saved compilation data. The release further reduces the size and execution cost of VU code in general, targeting games that place a heavy load on the console’s vector units.
IOP Thread moves PlayStation 2 support work off the main thread
The PlayStation 2’s I/O processor handles tasks including sound, controllers, memory cards and disc access. Version 2.9 can run that processor on its own thread instead of keeping all its work on the main emulation thread. The setting is available globally or per game through Performance settings and the in-game Performance menu.
IOP Thread requires four performance cores. An accompanying IOP Thread Lag Bound option controls how far the I/O processor may fall behind. The feature remains disabled for PlayStation 1 and arcade games. ARMSX2’s game database enables it for Shadow of the Colossus, God of War and God of War II. On the Retroid Pocket Duo, the project reports gains of up to 11% in Shadow of the Colossus and about 6% in God of War II.
Automatic Performance Tuning selects settings per game
Automatic Performance Tuning is a new optional system that tests settings which may be limiting a game. It can consider resolution, blending, texture download mode, the GS back thread and the emulated CPU clock. A change is kept only when it makes the game faster, and the result is saved for that game.
The option is off by default, and first-run setup asks whether it should be enabled. Each game’s Performance settings show the changes that were made and provide a Reset option. Manually changing one of those settings disables automatic tuning for that game, preserving direct control for users who prefer to configure performance themselves.
Integrated drivers and Retroid Pocket Duo improvements
First-run setup now offers ARMSX2’s own graphics drivers for compatible hardware. ARMSX2 Turnip is recommended for Adreno 6xx and 7xx GPUs, while MaliSX2 is offered for supported Mali hardware. The driver page includes Adreno 613, including the chip marketed as “Adreno A12” in the Anbernic RG 55G1, and setup can download and select the driver with one tap.
The Retroid Pocket Duo received particularly focused work in this release. Its Adreno 722 receives the rendering rules required under Turnip, and the optimized build was tuned using 16 games. The release also handles sideways-mounted displays by providing an already rotated image, avoiding the need for Android to rotate every frame on the GPU. The same change benefits portrait-oriented panels such as the RG 55G1’s display.
ARMSX2 reports that Shadow of the Colossus now maintains 30 frames per second on the Retroid Pocket Duo after its shadow-rendering changes. At the settings measured by the project, the game reaches 150% speed at 2.5x resolution, God of War II reaches 123% speed in widescreen at 2x, and Black reaches 124% speed at 2.5x. These are project-reported results for that device, not a guarantee for every Android handheld.
More scheduling and rendering changes
The GS back thread now gives the busiest emulation thread the fastest available core when Android is using its Performance Cores mode. ARMSX2’s game database enables it for Spider-Man 3, Sly 3 and Ratchet & Clank: Up Your Arsenal, with reported gains ranging from 1% to 24% on the devices measured.
Ranked CPU affinity modes now use the kernel’s own core ranking when assigning emulator threads, prioritizing larger cores according to the host system. The software renderer can copy sprites containing a 32-bit texture directly from PlayStation 2 video memory, reducing GS work by about 3.4 milliseconds per frame in Stuntman on a Snapdragon 865. The hardware renderer performs fewer pipeline switches between blended draws and releases fully redrawn render targets sooner.
At 2x resolution and above, the picture is cropped by one PlayStation 2 pixel on each side to remove stray edge lines that can appear during upscaling. Vulkan render passes that restart partway through a frame now preserve what they had already drawn.
A more convenient in-game menu and controller setup
The in-game menu now reopens on the last-used tab. With a controller, it also remembers the previously selected option, making repeated visits to achievements, rendering and performance settings quicker. Shortcuts that target a particular tab, such as Open Achievements, continue to open that destination directly.
A new “All controllers play as Player 1” option allows a handheld’s built-in controls and a connected Bluetooth controller to operate as Player 1, with both receiving Player 1 rumble behavior. The in-game Controls screen lists connected controllers, shows their player assignment and allows mapping profiles to be changed without leaving the game.
Touchscreen shoulder controls can now use tighter L1, L2, R1 and R2 touch areas. When enabled under Settings, Controls and On-Screen Controls, each button responds only within its own displayed artwork. Selection highlights in menus and the library now follow controller use and hide during touch input; pressing a controller button after touching the screen restores the highlight where it was.




