A new graphics driver for supported Adreno devices

ARMSX2 2.7.1 adds ARMSX2 Turnip, the project’s own build of the open-source Turnip Vulkan driver with a change designed for PlayStation 2 emulation. It is available in the emulator’s driver list and is recommended for Adreno 650 through Adreno 699 hardware, including devices using Snapdragon 865, 870 and 888 chips.

The driver targets a costly pattern in PS2 graphics: games frequently read back parts of the frame while drawing. On Adreno hardware, the new driver can let the driver itself order those reads instead of forcing an extra copy before each draw. The release notes report two- to three-times faster results in cases dominated by these reads when using ARMSX2 Turnip on Adreno 650–699. Splashdown at native resolution on a Snapdragon 865 is cited as improving from 54.7 milliseconds to 22.4 milliseconds per frame.

Turnip users on Adreno 730 and newer can also see gains in particular workloads. The project reports 17–21 percent faster performance in Stuntman and WRC 3 with any Turnip driver. Other GPU and driver combinations retain their previous behavior rather than receiving the same claimed improvement. ARMSX2 Turnip is based on Mesa 26.1.2 with an additional change for the supported Adreno range.

Recompilers reduce processor work

The EE, VU and IOP recompilers, along with VIF unpacking, now generate tighter ARM64 code. The project reports that these changes make the affected code run about 10 percent faster, with instruction-level tests added to check each change. Correctness improvements include console-matching behavior for VU LQD and SQD addressing and ILW lane selection.

The practical benefit depends on the game and device. On lower-end hardware, the graphics synthesizer often remains the main limit, so the release notes characterize this update primarily as a way to reduce battery use and heat rather than guaranteeing a higher frame rate in every title.

Analog triggers and improved touchscreen light-gun controls

Pad-to-button mapping now offers Analog pressure for L2 and R2 when the connected pad or handheld reports analog triggers. Games that use trigger pressure can receive the degree of a pull instead of a simple pressed-or-released state. Gran Turismo 4 is given as an example, allowing its throttle and brake controls to respond to partial presses.

The pad must be in analog mode, and the option includes a response curve for short handheld triggers plus a live pressure readout. The setting is disabled by default and warns if the Analog button is not assigned. It also addresses controllers such as the Odin 2 Portal that report each trigger twice, preventing a half press from being interpreted as a full press.

GunCon 2 controls are now available in the touch-layout editor. A, B, C, Start, Select and Cal can be moved, resized or hidden independently instead of remaining over the DualShock 2 controls. Touchscreen aiming also leaves the face and shoulder buttons available.

The new calibration-shot behavior is intended for games whose gun setup screen does not accept a normal touchscreen shot, such as Time Crisis. Tapping Cal and then shooting the target places the calibration shot at the touched position. GunCon 2 shots also now align correctly when performance downscaling or a resolution override is active.

More reliable memory cards, USB devices and network entry

Memory-card storage no longer silently switches to internal storage after a failed data-folder check. ARMSX2 now decides the data-folder location once rather than rechecking it whenever a screen requests access. This prevents the emulator from overlooking existing cards and creating new ones during the same run when the selected SD-card or custom folder is still usable.

USB device selection is now available before a game starts and remains populated after a game has run. Each port has a dropdown for choosing a device. A separate fix stops the USB keyboard switch from overwriting Port 1 with “Not Connected” at launch and whenever settings change, so GunCon 2, Buzz buzzers and other devices assigned to that port can reach the game.

Devices selected while a game is running are connected immediately, although games that only scan for peripherals during startup may still require a restart to detect them. The on-screen keyboard now includes the punctuation needed for network addresses, host names and file paths: period, slash, colon, hyphen and underscore. Long entries keep their ending visible, and entering a DNS address automatically changes that slot to Manual mode.

Upscaling follows a consistent pixel rule

Version 2.7.1 changes how ARMSX2 maps the PlayStation 2’s native pixels to an upscaled display. A native pixel now owns the output pixels whose centers fall within it, using the same rule across the renderer. This is intended to make dithering, scanline masks, deinterlacing and field-mode presentation consistent at native resolution, 2x and fractional scales such as 1.5x.

Points, lines and sprite edges should also land on the same corresponding pixels at different scales. A per-game detector determines whether the two fields of an interlaced image are offset, helping presentation remain consistent for titles that use interlaced output.

The faster culling and vertex paths previously used at native resolution now apply at every scale. CPU palette rendering is also more efficient: the release specifically targets Call of Duty 2 and Call of Duty 3, which can perform roughly 10,000 small palette-related draws per frame. Those copies can now bypass the full rasterizer, while the software renderer avoids rebuilding unnecessary tables.

Game-specific graphics fixes and renderer changes

Several title-specific rendering problems are addressed. Sly 3’s cel outlines no longer show gaps or block-like stepping above native resolution, fixing a regression introduced in version 2.7. The Godfather’s lamps now render correctly, although some Adreno GPUs may perform additional copies as a result. Beyond Good & Evil’s bloom blur no longer reads pixels while simultaneously writing them, preventing frame-to-frame changes in the effect.

The Accurate blending fast-path switch has been removed from the user interface. ARMSX2 now chooses whether to use that path according to the GPU. Pipelined GS also no longer performs worse than Off when used with OpenGL or with unsynchronized hardware downloads that cannot support the pipeline; it behaves as Off in those situations.

Multi-region texture packs are installed using the serial of the game copy being used, so a PAL copy can load a pack associated with its own region rather than being directed to an NTSC serial. Deleting a pack now removes it from the game even if one file in the pack is stuck. The game database also gives Splashdown’s new blending cap a translated name instead of displaying a raw key.

Library music can now start when another application has an inactive audio stream open, such as a paused emulator in the background. ARMSX2 waits for actual media playback rather than treating every existing audio stream as a conflict.

Memory-card backups move to ZIP files

Memory-card backups now use the ZIP format, making them easier to open with ordinary file managers. Existing .mcbak backups are renamed the first time the backup list is opened. The change affects the backup format and does not alter the emulator’s role as a PlayStation 2 system emulator.

ARMSX2 editorial illustration
AI-generated editorial illustration; not an application screenshot.