Files
virtualjaguar-libretro/docs/RELEASE_NOTES_v3.9.0.md
Joseph MattielloandClaude Opus 5.5 ad23b8120e chore: version v3.9.0 (was v3.8.1)
The release grew from a fix release into the desktop app debut, debug tools and timing
work, so it ships as v3.9.0. Version bumped in all three places; release notes renamed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 00:33:51 -04:00

20 KiB

Virtual Jaguar libretro v3.9.0

RISC overclocking no longer costs more than it should, and the Virtual Jaguar desktop app ships: a standalone emulator for macOS, Windows and Linux built on the same core.

v3.9.0 brings the RISC overclock fix and new timing work to the core, and debuts the standalone desktop app (https://github.com/libretro/virtualjaguar-libretro/issues/833). For RetroArch and Provenance users the change is the overclock fix, an experimental DSP timing model behind an existing option, and measurement tooling. With default settings the core is byte-identical to v3.8.0 in the cartridge and CD boot matrices. No option keys were removed, no listed option values changed, and the savestate format stays v17.


Core


The desktop app

A front end of its own in app/: SDL3 for the window, audio and input, Dear ImGui for the interface, OpenGL 3.3 for presentation. It drives the core through the same retro_* API that RetroArch uses, so core options and save states behave the same. It carries the core's version number and ships with each release. It was built in https://github.com/libretro/virtualjaguar-libretro/pull/867; docs and site in https://github.com/libretro/virtualjaguar-libretro/pull/896. Screenshots: https://jaguar.provenance-emu.com/app.html

Library and artwork

BIOS

Playing

Look and feel

  • Light and dark themes. Settings > Video > Appearance picks System (the default), Dark or Light; System follows the operating system and switches live. The in-game overlays (controls sheet, on-screen messages, achievement toasts, frame rate) stay dark and translucent in both themes so they read on any game picture. Customize... opens a theme editor: start from Dark or Light, change the main colours, the rounding and the spacing with a live preview and a warning when text drops below 4.5:1 contrast, then save it as a named theme (a small .ini in the app's themes folder), duplicate, delete, export or import it (https://github.com/libretro/virtualjaguar-libretro/pull/920). Window backgrounds are opaque, so text no longer shows through About and Settings (https://github.com/libretro/virtualjaguar-libretro/pull/904).
  • Choose the interface font. Settings > Video > Font: Retro (the pixel font, still the default), System UI (San Francisco, Segoe UI, the desktop's sans-serif), a system monospace face, or a font file of your own, at 11-24 pt, applied live. Text is drawn at the display's full pixel density, so it is crisp on Retina and 125-200% Windows scaling, and rendered with FreeType (statically linked, nothing to install) which adds Hinting (none / light / full) and Smooth edges choices (https://github.com/libretro/virtualjaguar-libretro/pull/925).
  • Feels native (https://github.com/libretro/virtualjaguar-libretro/pull/912):
    • macOS: a real menu bar (Cmd shortcuts, Open Recent, State Slot, Window and Help menus) and a Dock menu with your recent games.
    • Windows: a dark title bar, recent games in the taskbar Jump List and an optional installer checkbox that opens .j64 / .jag / .cue / .chd and the rest with Virtual Jaguar.
    • Linux: a proper MIME type and desktop actions, and the window now matches its .desktop file.
    • All three: double-clicking a game, Open With and dropping a game on the app icon work; the screensaver no longer stays blocked while you are in the library or paused; an optional tray / menu-bar icon offers pause, reset and recent games; "Show in Finder / Explorer" is in the menu.
  • Windows outside the window. Settings, Achievements, Cheats, Netplay and the debug tools can be dragged past the edge of the main window and become windows of their own, with a normal title bar, for example on a second monitor (Settings > Storage > Desktop > "Let windows move outside the main window"; on by default on macOS and Windows). They stay inside while fullscreen. Wayland cannot position a program's own extra windows, so it is off there (SDL_VIDEODRIVER=x11 turns it on under XWayland). On macOS "Show the menu bar inside the window" keeps the in-window menu bar next to the native one (https://github.com/libretro/virtualjaguar-libretro/issues/833).

RetroAchievements

Discord

  • Rich Presence (Settings > Discord). Shows the game you are playing, its box art, how long, and RetroAchievements progress / hardcore / netplay mode on your Discord profile, with a Get Virtual Jaguar button (and the game's RetroAchievements page) for other people to find the app. On by default, needs Discord running locally; the app speaks Discord's local protocol itself (no SDK), connects in the background and never waits on Discord, and only the first window publishes (https://github.com/libretro/virtualjaguar-libretro/pull/922).

Debug tools (Tools menu)

Packaging and signing


Known issues

  • Signing. macOS packages are signed with a Developer ID and notarized; Windows packages are not signed yet (SmartScreen may warn).
  • Shaders on Intel Macs. The macOS universal package bundles an arm64-only librashader, so shaders may be unavailable on Intel Macs.
  • Shaders on Linux need librashader installed separately (a distribution package, or built from source). The Flatpak does not include librashader yet, so it has no shaders.
  • The MSVC Windows build is experimental. The released Windows packages are built with MinGW (the ARM64 ones with MinGW's clang).
  • RetroAchievements identifies cartridges and .cue discs, but not .chd or .cdi discs yet.
  • Netplay is link-cable play on a local network only. It is not rollback netplay, and Internet or VPN play is not supported. General rollback netplay is tracked in https://github.com/libretro/virtualjaguar-libretro/issues/864.
  • Double-clicking a game while the app is running opens a second instance on Windows and Linux. On macOS a double-click activates the running copy; use open -n for another.
  • CHD identification in the library is verified on synthetic images only.
  • GPU/DSP Pipeline Timing (Experimental) does not improve pacing yet (see Core).

Upgrading

  • RetroArch / Provenance: drop-in. The core reports v3.9.0; options and savestates (v17) carry over. If you had GPU Pipeline Timing on, it now also applies the DSP model.
  • App: unzip or install the package for your system. The app does not include BIOS images or games.