Port of the Virtual Jaguar Atari Jaguar emulator to the libretro API.
- Emulates the Atari Jaguar's four processors: Motorola 68000, GPU, DSP, and Object Processor
- Supports NTSC and PAL video modes
- 2-player input with configurable numpad mapping
- Fast and legacy blitter modes (the legacy/accurate path is SIMD-accelerated on SSE2 and NEON)
- Optional BIOS boot sequence, plus an HLE BIOS so games can boot without a BIOS image
- Save state, run-ahead (deterministic serialization), SRAM/EEPROM via the libretro SRAM interface, cheat codes, and a memory map for RetroAchievements
- Supported ROM formats:
.j64,.abs,.jag,.rom(including inside ZIP archives), plus conservative headerless raw homebrew loading
This fork has diverged substantially from upstream Virtual Jaguar v2.1.0. See docs/WHATSNEW for the full v2.2.0 changelog. Highlights:
- HLE BIOS now produces hardware-equivalent post-boot state — MEMCON1, clocks, GPU auth magic, OLP, exception vectors, TOM/JERRY timing — and the vast majority of commercial titles boot cleanly without any BIOS image. 200+ pin tests in
test_hle_bioscover the contract. - Game-specific fixes: Alien vs Predator red noise (M2 blitter
BKGWREN+BCOMPEN), Doom resolution (properPWIDTHpixel replication, replaces the legacy hack), and audio dropouts at frame edges across many titles (interleaved JERRY events). Jaguar CD support is in flight on a separate branch (PR forthcoming). - CPU accuracy: DSP 40-bit MAC accumulator semantics, FLAGS-write dispatch, GPU/DSP IMASK preservation and ADDC carry overflow, DIVL exception PC.
- Accurate-blitter accuracy fixes (
daddmodeNAND tree,daddbselbit 3,ADDARRAYcinsel carry,SRCSHADEcolor). - Object Processor: scaled and fixed-bitmap
firstPixhandling, left/right/reflected edge clipping for scaled bitmaps,firstPixfor 2/4/16/24 BPP fixed bitmaps. - TOM IRQs: pending status now latches even when CPU enables are clear;
IPL2reasserts on enable via the unifiedTOMAssertEnabledIRQspath. Selective clear works correctly when multiple sources are pending. - Headless test surface:
make testruns HLE-BIOS pin tests, event queue tests, blitter SIMD bit-exactness, DSP MAC40 semantics, save-state round-trip / rewind, cheat decoders, libretro memory-map / RetroAchievements wiring, plus a screenshot regression diff viaminiretroon push. - Performance:
~2xspeedup on DSP/GPU/memory hot paths, audio refactored to drop per-sample events.
make -j$(getconf _NPROCESSORS_ONLN) # Auto-detects platform
make -j$(getconf _NPROCESSORS_ONLN) DEBUG=1 # Debug build
make platform=ios-arm64 # Cross-compile (ios-arm64, osx, unix, win, android, switch, vita, etc.)Output varies by platform: .so (Linux), .dylib (macOS), .dll (Windows).
- File format details
- Source layout
- Changelog
- Known issues & TODO
- Security policy & binary verification
- libretro documentation
- Upstream:
git clone http://shamusworld.gotdns.org/git/virtualjaguar - Unofficial GitHub mirror: https://github.com/mirror/virtualjaguar
This project is built on the work of many contributors. See the full list on GitHub.
- Original Virtual Jaguar by David Raingeard (Potato Emulation).
- SDL/Linux/Win32 port by Niels Wagenaar & Carwin Jones (SDLEMU).
- Cleanups, GUI/Qt port, and ongoing upstream maintenance by James Hammons (Shamus).
- libretro core port by libretro/RetroArch contributors.
- libretro fork maintenance — Joseph Mattiello (@JoeMatt).
Licensed under the GNU General Public License v3.0.