The Virtual Jaguar app

A standalone desktop front end for the same core. It runs on macOS, Windows and Linux with no RetroArch installed, and it drives the core through the same retro_* API RetroArch uses, so every core option and save state behaves the same in both. New in v3.9.0; it carries the core’s version number.

Two ways to play: the RetroArch core, or this app. The core is not going away, and nothing here changes how it works.

Get it

The packages are attached to each GitHub release next to the core builds, and listed in that release’s SHA256SUMS.txt.

SystemPackageNotes
macOS VirtualJaguar-X.Y.Z-macos-universal.zip Virtual Jaguar.app, Apple Silicon and Intel, macOS 11 or later. Zip only, no disk image.
Windows x64 VirtualJaguar-X.Y.Z-windows-x64.zip, ...-windows-x64-setup.exe The zip is portable: portable.txt keeps settings in a data folder beside the program. The installer is per-user by default.
Windows ARM64 VirtualJaguar-X.Y.Z-windows-arm64.zip, ...-windows-arm64-setup.exe Native ARM64 build (Snapdragon X and other ARM64 PCs), same layout as x64. The installer needs ARM64 Windows.
Linux x86_64, aarch64 VirtualJaguar-X.Y.Z-linux-<arch>.AppImage, virtualjaguar_X.Y.Z_<amd64|arm64>.deb Built on Ubuntu 22.04. The .deb installs under /usr/lib/virtualjaguar with a link in /usr/bin.
Linux x86_64 (Flatpak) VirtualJaguar-X.Y.Z-linux-x86_64.flatpak A single-file bundle: flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo, then flatpak install --user VirtualJaguar-X.Y.Z-linux-x86_64.flatpak. It can read your home folder (read-only) to find ROMs. No shaders in the Flatpak yet.

Or use the installer, which can install the core, the app, or both:

macOS, Linux

curl -fsSL {{RAW_URL}}/tools/install.sh | sh -s -- --what app

Windows (PowerShell)

$env:VJ_WHAT = 'app'; irm {{RAW_URL}}/tools/install.ps1 | iex

--what takes core, app or both; the installer verifies each download against SHA256SUMS.txt. More options, and the PowerShell alternatives, are on the home page.

Nightlies carry the app too. The rolling nightly prerelease holds VirtualJaguar-nightly-* packages built from the same develop commit as the nightly core. Add --channel nightly to the installer to get them. They are gated on compiling, not on the test suite.

Unsigned builds. Until signing is configured for the release, macOS may refuse the app at first launch (right-click the app and choose Open, once) and Windows SmartScreen may warn about the installer. Packaging, signing and the package-manager templates are in app/packaging/README.md.

Game library

Home screen Cartridges
The Virtual Jaguar app home screen: a search box, filter and size controls above Cartridges, Jaguar CD and BIOS and system tabs, then a grid of 22 Atari Jaguar box art tiles with game titles beneath.
With no game loaded, the main window is the library. Add a folder and it scans it for cartridge and disc images.

Shaders and scaling

The app runs RetroArch .slangp presets, unmodified, through librashader. Presets from libretro/slang-shaders are bundled: the CRT family (CRT-Royale, CRT-Geom, CRT-EasyMode and others), scanlines and interpolation, plus two small first-party presets (vj-scanlines, vj-sharp-bilinear). Point Preset folder at a full slang-shaders checkout for the rest, and preset parameters get sliders. Integer scaling and the aspect modes are separate from shaders and apply to both.

Plain integer scale
The Alien vs Predator main menu (Select Character, Restore Game, High Scores, Credits) drawn sharp on a black window, centred with integer scaling.
CRT-Royale same frame
The same Alien vs Predator menu through the CRT-Royale shader preset, with visible scanlines, phosphor mask and glow.

Shaders are optional: if a preset does not compile or librashader is missing, the app draws the plain picture and says why. Platform notes: the macOS and Windows packages bundle the librashader runtime; upstream publishes no Linux build, so on Linux install a librashader package and the app finds it. The macOS universal package currently ships an arm64-only librashader, so shaders may be unavailable on Intel Macs (see the packaging notes).

Settings > Video Shader
The Settings window on the Video tab: integer scaling, smooth filter, stretch, aspect ratio, VSync and fullscreen options, then a Shader section with a Use shader checkbox, the selected CRT-Royale preset path and a scrollable list of 500 built-in presets.
Settings > Video > Shader: pick a preset from the built-in list or load a file. View > Shader switches it on and off.
Skyhammer running
Skyhammer's cockpit view inside a rusty industrial structure, with green heads-up displays for fire, fuel, shield damage and altitude, a minimap and a Gatling gun gauge.
The picture is drawn at the largest whole-number scale that fits when integer scaling is on. Pacing follows the core’s reported field rate, 60.05445 Hz NTSC and 50.08013 Hz PAL.

Controllers and keyboard

Settings > Input Devices & players
The Settings window on the Input tab, Devices and players sub-tab: Jaguar port 1 set to Rotary (Tempest) and port 2 set to Team Tap, five player slots below, and tuning sliders for mouse speed, rotary speed and stick dead zone.
Port 1 set to the Tempest rotary, port 2 to a Team Tap. The Players list grows by three sockets for each Team Tap.
Controls overlay F3
A translucent panel over the Tempest 2000 credits listing the keyboard bindings for Player 1: the D-pad on the arrow keys, buttons A B C on X Z C, Option on Return, and the keypad on the number row with Pro Controller letters.
The overlay never takes input. It reads the bindings you actually have, including per-game changes.

The mouse is captured only while a mouse or rotary is plugged in and a game has focus; Esc or F10 releases it. Controller details: input devices guide and the app README.

Cheats, achievements and save states

Cheats

Emulation > Cheats lists the cheats the libretro cheat database has for the running game, with a toggle each, plus manual ADDRESS:VALUE codes. What is on is remembered per game. The database files are bundled with the app, with their licence (CC BY-SA 4.0); you can add your own .cht files.

Emulation > Cheats Tempest 2000
The Cheats window for Tempest 2000: the cheat set picker, database cheats Infinite Lives (ticked) and Start with 999999 Score, a manual code entry row and a collapsed Cheat library section.

RetroAchievements

Save states

F5 saves, F7 loads, F6 cycles the slot; Emulation > State manager shows every slot with a thumbnail. States use the core’s own format, so they behave as they do in RetroArch.

State manager thumbnails
The Save states window for Tempest 2000: ten numbered slots, four with a thumbnail of the saved frame and a timestamp, the rest marked empty, each with Save and Load buttons.

Netplay

The Netplay window sets up Jaguar link-cable play over a local network: it joins the two emulated link ports. It is not rollback netplay and not general online play, and play over the Internet or a VPN is not supported. The link swaps many small messages every frame, so it is limited by network delay: a wired connection is best.

Netplay window Host a game
The Netplay window over Doom: the link device choice between JagLink and Voice Modem, Host a game and Join a game tabs with a port picker, a Start hosting button, a note about delay, and a table of the games that use the link.
The machine’s own LAN address is blanked in this image.

Background and the details of the link itself: netlink user guide and voice-modem.md.

More