ARMSX1 is a fork of psxe, rebuilt around a native FSUI donor shell and SDL2-hosted frontends for desktop, Android, iOS, UWP, web, and PSVita.
What It Supports
ARMSX1 currently has the following emulator pieces wired up:
CPU, DMA, GPU, SPU, MDEC, GTE, and timers
CD-ROM loading
memory cards
BIOS selection and PS-X EXE boot
screenshot capture
logging controls
VSync control
fast forward
protocol/file launch through armsx:///... on supported hosts
the FSUI settings shell
Disc image support is:
BIN/CUE
single-track BIN
ISO
CHD, including mixed-mode metadata, pregaps/postgaps, audio byte order, and Q subchannel data
ZIP archives containing a supported game image and its companion files
Accuracy and Acceleration
ARMSX1 has two portable CPU engines:
cached is the default. It caches decoded instruction handlers, but still performs a real bus fetch and opcode check for every emulated instruction. Writes invalidate matching entries, including cached/uncached address aliases.
interpreter is the reference path and remains selectable for diagnostics.
Neither engine emits native code, uses executable memory, or relies on host threading behavior. Select the engine in Settings, with --cpu-engine=cached|interpreter, or with ARMSX_CPU_ENGINE.
The GPU always uses the accurate software PlayStation rasterizer and keeps its 16-bit VRAM authoritative. Presentation has two SDL2 modes:
SDL software, the default
SDL accelerated, opt-in through Settings or ARMSX_GPU_BACKEND=sdl-accelerated
The accelerated mode uploads only changed VRAM scanlines to an SDL texture. It does not replace PS1 rasterization with host triangles, so switching presentation modes does not change emulated GPU results. If an accelerated SDL renderer is unavailable, ARMSX falls back to SDL software rendering.
Supported Targets
Desktop: macOS, Linux, Windows
Mobile and alternate hosts: Android, iOS, UWP, WebAssembly, PSVita
CI also builds Linux x64, x32, arm64, arm32 and Windows x64/x32 packages
Desktop and Android are the main day-to-day targets. The other ports are present and buildable, but they are more platform-specific and may lag behind the desktop path.