Repository navigation
Virtual Jaguar v3.11.0
The emulation thread is on by default, with "Match display" pacing, community cheats in
the app, a finished TV mode, faster GPU and DSP emulation, and AvP's marines fight back.
This is a feature release for the standalone app on macOS, Windows and Linux. The libretro core
gains the AvP and GPU/DSP changes below. Core options and v17 savestates carry over.
The emulation thread is on by default
The app now runs the emulation on its own thread in every build, so the UI, menus and tool windows
no longer slow the game down.
(#1134)
- Tools and the debugger work with the thread on. This covers the Tools windows, debugger
halts, single-stepping and the GDB stub. Detach, Reset, Open and Close release a halt that GDB
holds.
(#1061,
#1068,
#1090) - Neuro AI players run on the emulation thread too.
(#1066) - Settings > Video > Frame pacing offers two modes:
- Jaguar rate, the default, runs the game at the console's own rate.
- Match display starts every frame on a display refresh, and the audio follows the display.
The game runs at the display's rate (on a 60 Hz screen, 0.1% slower than a Jaguar) with no
repeated or skipped images. Where the display can't be locked, the status line says why
and Jaguar rate is used.
(#1125,
#1128)
- The emulation thread asks for real-time scheduling, so frames start on time on a busy
machine. macOS uses a time-constraint thread, Windows a time-critical thread in the MMCSS
"Games" task, and LinuxSCHED_RRwhere the system allows it.
(#1135) - Rolling back: set Settings > Interface > Emulation thread to Off, or start the app
with--emu-thread off. Without the thread, the app no longer repeats and drops frames in
bursts as the display's refresh drifts against the console's.
(#1145) - To report a threading problem, follow
the app README.
(#1131)
Community cheats
-
Cheats > Community cheats installs, updates or removes the pack the project site publishes
for the loaded cartridge.- Packs are matched to the cartridge's CRC32.
- Every cheat starts off.
- Hardcore achievement mode is respected.
Library > Download art and cheat packs fetches packs for the whole library.
(#1073,
#1076) -
The packs are converted from jguffer's
BigPEmu_Scripts, with the author's permission
and credit. The converter now also handles the following, so more of the scripts convert:
TV mode is complete
- TV Settings (Picture, Speed, Sound, Interface), Overlays, Achievements and
More screens.
(#1060,
#1077) - Automatic switching: Settings > Interface > TV mode can be Off, Manual or Auto. A
first-use hint explains how to get back.
(#1067)
Emulation
-
Alien vs Predator: the marines now attack when you play as the Alien. TOM's horizontal
counter is derived from emulated time, as on hardware. Games use it as a random source, and the
old per-read counter never produced the marines' fire roll. This also restores Atari Karts'
AI variety.
(#1094,
#1096) -
Faster GPU and DSP, bit-exact:
- The GPU interpreter inlines its hot opcodes and dispatches directly inside its loop.
- The DSP's idle-loop skip now covers more wait loops, including Iron Soldier 2's and
Cybermorph's. - The idle skip stays on with Blit Memoization enabled.
Video, audio and savestates are unchanged.
(#1057,
#1117,
#1118,
#1121,
#1137,
#1139,
#1140)
Desktop app
- Windows without a modern OpenGL driver (stock Windows on some machines and VMs offers only
OpenGL 1.1) no longer exits at startup. The app retries with the bundled Mesa, using Direct3D 12
when the GPU has it and software rendering otherwise.
(#1138,
#1143) - Memory viewer bitmap mode previews graphics at any address. You can choose the depth, the
colour mode and the CLUT, and the viewer can guess the width.
(#1095) - macOS: the app no longer hangs in the GL swap when it starts with the display asleep, and the
late latch's event wait ends on time.
(#1058,
#1089) - Windows portable updates keep your
data/folder (settings, saves, states, ROMs).
(#1059) - The installers fetch their scripts from
master(the released code), notdevelop.
(#1087)
libretro core
.info:savestate_features = "deterministic"(RetroArch already read the old value as
deterministic).
(#1064)
For packagers
- Packaging for the Microsoft Store (MSIX), Steam and a sandboxed Mac App Store build is in the
tree. Store releases are not published yet.
(#1111,
#1112) - The app has CMake presets. Configure warns when no librashader runtime will ship.
(#1132)
Known limitations
- Doom's attract-demo timing and the other emulation limitations documented for v3.9.1 remain.
- Windows signing depends on the signing service's availability and approval, so not every
Windows package may be signed.
Downloads and upgrading
Install the app over your existing version; settings carry over. A stored emulation-thread
setting is kept. Only installs that never set it pick up the new default. RetroArch and
Provenance users can replace the core without changing options or v17 savestates.
Download the app, libretro cores and Jaguar CD tools from
the v3.11.0 release.
Use the release's SHA256SUMS.txt to verify downloads. macOS packages are universal; Windows has
portable and installer packages; Linux has AppImage and Debian packages.
Validation
Candidate 5a976df8 passed a clean build on the Mac Studio. The library reports v3.11.0, and the
Makefile, .info and fallback versions agree. The full core suite (make TEST_EXPORTS=1 test) passed
with the private corpus, including:
- the audio presence and clipping tests;
- the TOM readback and MMULT tests;
- the GDB stub tests;
- the idle-skip A/B tests, which confirm that skip-on and skip-off output is bit-identical;
- the Doom pace gate.
Six checks were skipped because their fixtures or tools were missing on that host.
Against v3.10.0:
- Cartridge matrix (155 titles, HLE and BIOS): zero backward moves with either blitter. Gorf 2000
improves in both modes, from a trap loop to game code. The three known HLE/BIOS asymmetries are
unchanged. - CD matrix (28 title/mode rows, full disc corpus): zero backward moves.
- Corpus A/B (160 cartridges, 300 frames with audio):
- 157 are bit-identical, with the DSP idle skip off and on.
- Atari Karts, Gorf 2000 and White Men Can't Jump differ, as expected. All three read TOM's horizontal
counter, which #1094 changed. None of them differs in audio.
On the Mac Studio, in both a quiet and a loaded state, the app ran Cybermorph and yarc with the thread
off:
- Repeated and dropped images fell from 19-53 a minute to 0-1 repeats.
- Skips stay near the 3 a minute that a 60.05 Hz core has to make on a 60 Hz display. A loaded host
reached up to 8 a minute. - PAL is unchanged.
GitHub CI on the release pull request is the remaining gate.
Artifacts in this release
SHA256SUMS.txt
VirtualJaguar-3.11.0-linux-aarch64.AppImage
VirtualJaguar-3.11.0-linux-x86_64.AppImage
VirtualJaguar-3.11.0-linux-x86_64.flatpak
VirtualJaguar-3.11.0-macos-universal.zip
VirtualJaguar-3.11.0-windows-arm64-setup.exe
VirtualJaguar-3.11.0-windows-arm64.zip
VirtualJaguar-3.11.0-windows-x64-setup.exe
VirtualJaguar-3.11.0-windows-x64.zip
cue2cdi-linux-x86_64
cue2cdi-macos-universal
cue2cdi-windows-x86_64.exe
jagcd-tools-linux-x64.zip
jagcd-tools-macos.zip
jagcd-tools-windows-x64.zip
virtualjaguar_3.11.0_amd64.deb
virtualjaguar_3.11.0_arm64.deb
virtualjaguar_libretro-android-arm64-v8a-debug.tar.gz
virtualjaguar_libretro-android-arm64-v8a.so
virtualjaguar_libretro-android-armeabi-v7a-debug.tar.gz
virtualjaguar_libretro-android-armeabi-v7a.so
virtualjaguar_libretro-android-x86-debug.tar.gz
virtualjaguar_libretro-android-x86.so
virtualjaguar_libretro-android-x86_64-debug.tar.gz
virtualjaguar_libretro-android-x86_64.so
virtualjaguar_libretro-emscripten-wasm-debug.tar.gz
virtualjaguar_libretro-emscripten-wasm.bc
virtualjaguar_libretro-ios-arm64-debug.tar.gz
virtualjaguar_libretro-ios-arm64.dylib
virtualjaguar_libretro-linux-aarch64-debug.tar.gz
virtualjaguar_libretro-linux-aarch64.so
virtualjaguar_libretro-linux-i686-debug.tar.gz
virtualjaguar_libretro-linux-i686.so
virtualjaguar_libretro-linux-rpi1-armv6-debug.tar.gz
virtualjaguar_libretro-linux-rpi1-armv6.so
virtualjaguar_libretro-linux-rpi2-cortex-a7-debug.tar.gz
virtualjaguar_libretro-linux-rpi2-cortex-a7.so
virtualjaguar_libretro-linux-rpi3-cortex-a53-debug.tar.gz
virtualjaguar_libretro-linux-rpi3-cortex-a53.so
virtualjaguar_libretro-linux-rpi3_64-cortex-a53-debug.tar.gz
virtualjaguar_libretro-linux-rpi3_64-cortex-a53.so
virtualjaguar_libretro-linux-rpi4-cortex-a72-debug.tar.gz
virtualjaguar_libretro-linux-rpi4-cortex-a72.so
virtualjaguar_libretro-linux-rpi4_64-cortex-a72-debug.tar.gz
virtualjaguar_libretro-linux-rpi4_64-cortex-a72.so
virtualjaguar_libretro-linux-rpi5-cortex-a76-debug.tar.gz
virtualjaguar_libretro-linux-rpi5-cortex-a76.so
virtualjaguar_libretro-linux-rpi5_64-cortex-a76-debug.tar.gz
virtualjaguar_libretro-linux-rpi5_64-cortex-a76.so
virtualjaguar_libretro-linux-x86_64-debug.tar.gz
virtualjaguar_libretro-linux-x86_64.so
virtualjaguar_libretro-macos-arm64-debug.tar.gz
virtualjaguar_libretro-macos-arm64.dylib
virtualjaguar_libretro-macos-x86_64-debug.tar.gz
virtualjaguar_libretro-macos-x86_64.dylib
virtualjaguar_libretro-switch-debug.tar.gz
virtualjaguar_libretro-switch.a
virtualjaguar_libretro-tvos-arm64-debug.tar.gz
virtualjaguar_libretro-tvos-arm64.dylib
virtualjaguar_libretro-vita-debug.tar.gz
virtualjaguar_libretro-vita.a
virtualjaguar_libretro-windows-i686-debug.tar.gz
virtualjaguar_libretro-windows-i686.dll
virtualjaguar_libretro-windows-x86_64-debug.tar.gz
virtualjaguar_libretro-windows-x86_64.dll
virtualjaguar_libretro.info
SHA-256 checksums
Verify with sha256sum --check SHA256SUMS.txt (Linux) or
shasum -a 256 --check SHA256SUMS.txt (macOS).
See SECURITY.md
for full verification instructions and antivirus false-positive guidance.
ca671600fd40d5a16ce766def85acbbe255a6415f25d7943295a39c323bbe496 VirtualJaguar-3.11.0-linux-aarch64.AppImage
07e8f8d5b5087c208760166e81a0bc9dbc28e87f9d492d879f47f7a86d7bd34f VirtualJaguar-3.11.0-linux-x86_64.AppImage
320be6ae42cc1e9fb542dade130aed0ab38ffc30858c4e56d7cc08a9b8d588a7 VirtualJaguar-3.11.0-linux-x86_64.flatpak
cb6039a40cf4cc81d0041c6dbcd75181da7e74aad6e054018b5e40220262cf2e VirtualJaguar-3.11.0-macos-universal.zip
761b9512826350398cd9c6fb68e904e992afe5fe39fd294f9a83cfd7c4558be1 VirtualJaguar-3.11.0-windows-arm64-setup.exe
7b38fdda1aab055ef9789ad5d64f64d83b7d8423a62a98a091645ab414e995f1 VirtualJaguar-3.11.0-windows-arm64.zip
1507247f7aa9a690e1d29bda5029575abb0bd20dfb7f5ad579fe40022488f930 VirtualJaguar-3.11.0-windows-x64-setup.exe
3772f90ba86a364d6f8c8de45aa5a8a85d9a9803d381be919d72c5fa1cd7588f VirtualJaguar-3.11.0-windows-x64.zip
b926e41185057ee9204aaa0aaafff53ceec2cbb6d4f37e478edf7a7ddb353332 cue2cdi-linux-x86_64
b9f4e70679ece9ca94e6c89a9aaadf5ea57d8129642f667f7a13ea25b0467f0d cue2cdi-macos-universal
6756be3ab51c16d17f5738af35dc5aa7198f61cb5f39b45797579d35cc83291b cue2cdi-windows-x86_64.exe
66e0e3f4600a29fd4ca90cd5617f70edef3d8c97bcdd2db3d476fd370655720b jagcd-tools-linux-x64.zip
17163df49498c2c2a8753d83ab69335c0df17b9648d97b4bf9379b1222eca4ea jagcd-tools-macos.zip
06c03973817fcf521c4c247504262f67b9272e4e5176a4f7ed88bfe66955d532 jagcd-tools-windows-x64.zip
4089dc6d8a91a9fdfbd9fa2fb60a9a8748b8f3679403e5204bff955f83e7aebe virtualjaguar_3.11.0_amd64.deb
8a08a6916ec71d046e7b20dcab48d71d845bd7251cfc4611b84be45d82d48293 virtualjaguar_3.11.0_arm64.deb
492251eca6adac3ecac090e12126dcc725fde187ac44f770150e6f69d22b1323 virtualjaguar_libretro-android-arm64-v8a-debug.tar.gz
90446691d7f5b80f9ba98e4b311e6dab5bc8afd58431fb319b4e30933f891df6 virtualjaguar_libretro-android-arm64-v8a.so
f236433721b0ae770937c037e36a258aedb99757974be304afbe45c808ceb9f4 virtualjaguar_libretro-android-armeabi-v7a-debug.tar.gz
3a173fbfaf62401c636591ba6a7ca16ef584481094f184c02519cffb093ec6cc virtualjaguar_libretro-android-armeabi-v7a.so
6492269894e697f593c34db1dabfaf8d4bfc0df16bde974c6ffc5bb97b16bbad virtualjaguar_libretro-android-x86-debug.tar.gz
2303d1bee859c14c58507c4d4ad4aff7cc39d5e2a7e537b6fce519a99bacd47a virtualjaguar_libretro-android-x86.so
396c7a683749bd5083b62dd15c4b20f44ebbfeae5bb46391e82f0ebeef64fa7c virtualjaguar_libretro-android-x86_64-debug.tar.gz
a72da2e64da709839db26daf0b387373d7a74122d5a53c687bfb4dcda1da7266 virtualjaguar_libretro-android-x86_64.so
cdaaceb4d3580167303f514daa82395ca373f7e172c0e67a339104c34e7a5bb4 virtualjaguar_libretro-emscripten-wasm-debug.tar.gz
30969b8c3aec4787e8c91a6623901e2b60d9562806342a32c66577ec5dfcd32a virtualjaguar_libretro-emscripten-wasm.bc
e93157fa3cb1ba238dc499e903ef126f74bffc54297b2984d63ff79ac97ab80f virtualjaguar_libretro-ios-arm64-debug.tar.gz
f6c31605e6802eb5a54c475f92125832ad730365f160e3bcd6b72d5b1974bb0e virtualjaguar_libretro-ios-arm64.dylib
153df74d678a697b59f920196e371915df7ddadddcfc03cb63b93518e91ad0c1 virtualjaguar_libretro-linux-aarch64-debug.tar.gz
e4ad6b488e1d75a7137704979852a265d7f003eb2662b0f8e4514102fe50f027 virtualjaguar_libretro-linux-aarch64.so
1d842aae7f752c5370684a38646293fd1ea1b3cd227fd02cff1c3fdfc357e54a virtualjaguar_libretro-linux-i686-debug.tar.gz
72d3a66ce3a2dcd4ce48f048ee499a43c21ce8f26f4ad9801d9018a0aa2f2caf virtualjaguar_libretro-linux-i686.so
6738d6304f395d1d872042ae01432b4f56d53d822e09af5f1bb783a909f02e6b virtualjaguar_libretro-linux-rpi1-armv6-debug.tar.gz
e3137061c18e399d2ba444b56a91223edab119e56976ce677fabff35e38612a8 virtualjaguar_libretro-linux-rpi1-armv6.so
8509dfc2376bb442f6f4fe9852642cb0dfc2f93b3147c28743e33987a9d0ff0b virtualjaguar_libretro-linux-rpi2-cortex-a7-debug.tar.gz
a8386c9e67ebd7e4cd77365a54c7feb169909a5af49bd37b96ce72a607e61e0f virtualjaguar_libretro-linux-rpi2-cortex-a7.so
ae2c79a6b92063b75c275a061143afaeaf899ceb66a73b1fd022eb382ef2df94 virtualjaguar_libretro-linux-rpi3-cortex-a53-debug.tar.gz
1b05cb7e9d2663d9f2a76900360fa284259eb78ac326796a6edf5982c758b529 virtualjaguar_libretro-linux-rpi3-cortex-a53.so
9351f463c4296eee3c814a0a16e99b438021931443423556469d627b1ea1e2ba virtualjaguar_libretro-linux-rpi3_64-cortex-a53-debug.tar.gz
250c44d49241e43bbc3a92efa7fff56a133ae1c05fdd5db39b0d348712ef58b6 virtualjaguar_libretro-linux-rpi3_64-cortex-a53.so
61447aaeb6476eb02e88d24e32537a7d1f3fba87b6faca3a39ea266c29343a0e virtualjaguar_libretro-linux-rpi4-cortex-a72-debug.tar.gz
9d1a7e69735e7b7061bc79b17c829b74a31130d27043a1b898cee857d421e68d virtualjaguar_libretro-linux-rpi4-cortex-a72.so
a7c76749e81b9a1a5d566feffa1b23d02b2aeba1bfc0cd92a01a9e9cf729a431 virtualjaguar_libretro-linux-rpi4_64-cortex-a72-debug.tar.gz
f073d094f10a31a3aab0861c7a4d6e46b729dfc4b33fb6f614172bfeb8d42815 virtualjaguar_libretro-linux-rpi4_64-cortex-a72.so
59cb7462018b9f545d058c63b10eeebcec86bf764ee89694ef2918e5d4f3fa34 virtualjaguar_libretro-linux-rpi5-cortex-a76-debug.tar.gz
c81abd91dc5700028654d566aa223f8cb219ab1a12a9822fc6bc4671ec3fc77e virtualjaguar_libretro-linux-rpi5-cortex-a76.so
bdccebc87fdb38e1aa59341fd7eedb9a4e06b1e3bc18ec59f3329afdb613f315 virtualjaguar_libretro-linux-rpi5_64-cortex-a76-debug.tar.gz
c3f841fb44209af25c2f45e34f921cb5d3ffe47dc4398d71863af427ab6865a5 virtualjaguar_libretro-linux-rpi5_64-cortex-a76.so
eab0d4d564f030fe7c21a44d0f593e4a2599df3f73e34a4edf6dcf94fea27647 virtualjaguar_libretro-linux-x86_64-debug.tar.gz
bd2b2ace103443cc8ccc57819862f985e1bcdc0bc6970e5c767765fe31d55fb8 virtualjaguar_libretro-linux-x86_64.so
ed1ff383bab8f6e9aca036ffb2a60799a6f5286a1297ce20e603496dee37ac18 virtualjaguar_libretro-macos-arm64-debug.tar.gz
ad3912698ab79985e3a379617e3ebe215d3930f1d069a1be58fad2f468a5d789 virtualjaguar_libretro-macos-arm64.dylib
7b9aa7b32046dddb347871d1a717e11a52e36f9264f087b41c701ab33400d658 virtualjaguar_libretro-macos-x86_64-debug.tar.gz
566bfeace57bd8d8a0596f8e993c4ecc7c906c89f238431b4f5bfa9926057157 virtualjaguar_libretro-macos-x86_64.dylib
99690330494b6555bce300f3f6ec4cbe46d8b7791caf8324cce120eb28b1dd69 virtualjaguar_libretro-switch-debug.tar.gz
fb81f491081133128d89ef342a0acd15d3013d67ff46d5f7690cb11cf0b0d42e virtualjaguar_libretro-switch.a
a23cef2bf9088317e4589c8aee3601fb0352f7acea56e0445d1784450fcc2ecd virtualjaguar_libretro-tvos-arm64-debug.tar.gz
095b82b0a85db5ae471e724f032e5474dfaa7120e5ce2a3e67de3afa53e07d5a virtualjaguar_libretro-tvos-arm64.dylib
faf9c1d08fc2e53e3513d81e4cc8b988f865fc70ced42c4b622d6f5f03a74623 virtualjaguar_libretro-vita-debug.tar.gz
905f2bc0557ad557f943c5bccfbb88cfcde4dbbaa3d88516a475ebd5fec278fe virtualjaguar_libretro-vita.a
d6f8621c8ec20a72d0e2f613b70fd6086161e1a22926937770f49243cc57b479 virtualjaguar_libretro-windows-i686-debug.tar.gz
235c7ca93c094d80c667e682f88fb3835c109a0c38ff340160b7211ccc10eeb4 virtualjaguar_libretro-windows-i686.dll
e67affff3c8cde18dbc4a9e207c96d77ae72b1908aa6fc4e0be49813aa13f715 virtualjaguar_libretro-windows-x86_64-debug.tar.gz
4e14e463492a2591681f93c5f7219692935e2218e58f5537cdf63d7f585f981b virtualjaguar_libretro-windows-x86_64.dll
4fcf7a078558106b6ea164bcf2d836bd80a92d9cc224d6ff56c679a9f4bce50c virtualjaguar_libretro.info