Repository navigation
v3.8.0
Virtual Jaguar libretro v3.8.0
Correct by default. Flip Out runs, Fight For Your Life boots on the real BIOS, Club Drive
has sound under HLE, White Men Can't Jump stops tearing, and Doom netplay holds 60 fps.
v3.8.0 is the "Correct by default" release (milestone "v3.8.0 — Correct by default", epic
#746). It fixes titles that needed a non-default setting or misbehaved in one boot mode,
makes the per-title database explain itself in the frontend, and adds a release gate that
blocks a tag when any corpus row moves backward. There is one new core option (the
GameDrive SD card) and one new value for an existing option. The savestate format moves
from v16 to v17; v3.7.1 and older states still load (see Savestates).
Several fixes here are verified headlessly only, not yet in RetroArch. Each one says so
below, and they are collected under Known issues.
Highlights
- Flip Out runs in both boot modes. 1, 2 and 4 MB cartridge images now repeat across
the cartridge window as on hardware (#855, #851). - Fight For Your Life (1996) boots on the real BIOS. Power-on RAM is now zero-filled in
BIOS mode, as it already was in HLE (#868, #856). - Club Drive has audio under the default HLE boot. DSP interrupts are taken at the
DSP's next instruction instead of inside an event callback (#849, #744). - White Men Can't Jump gameplay stops tearing at default settings, through a new
"68000 only" value for Blitter Bus Timing (#870, #736). - Music Demo, Ruiner Pinball and Native Demo (bin) no longer run their DSP or GPU into
garbage (#862, #869, #872, #873). - Doom 2-player netplay holds 60 fps instead of dropping to 30 Hz. Play over Wi-Fi is
still slower than single player (#861, #871, #860). - The GameDrive SD card works, backed by a folder on your device (#844, #783).
- The frontend explains per-title presets, and options that apply only at load say so
(#847, #859, #863).
Game fixes
Cartridge titles
- Flip Out (#851, #855). The game checks the long at
$A02000and executesILLEGAL
if it does not match. A 2 MB cartridge drives only the address lines it has, so on
hardware its image repeats at$A00000; the core returned 0 there. HLE looped
ILLEGAL/RTEfrom about frame 320 and BIOS trapped into the boot ROM at about frame
810. Images of exactly 1, 2 or 4 MiB are now mirrored (1 MB every MB, 2 MB at$A00000
and$C00000, 4 MB once at$C00000), matching the MiSTer core'scart_mask; the JTRM is
silent on this. In a headless run HLE reaches the high-score screen by frame 1000 and BIOS
the title screen by frame 1200. A 160-cart A/B changed only Flip Out, plus one pixel in
Fight For Your Life, where a blit reads past the end of the 4 MB image. The cart window
past an image is also cleared on load, so a previous title's bytes no longer survive a
reload in the same session. Headless-verified only. - Fight For Your Life (1996), real BIOS (#856, #868). The game sizes a fill from a RAM
word nothing ever writes. BIOS mode filled power-on RAM with a per-word random pattern,
so the fill overran into the GPU's parameter block, the GPU wrote a bad pointer, and the
68K took an address error into the boot ROM at frame 1032. HLE zero-fills and never hit
it. BIOS mode now zero-fills too. Power-on DRAM contents are undefined on hardware, but
real parts come up in near-uniform runs, not independent random words. RAM-loaded images
and the first 8 bytes are still preserved. One known cost: the JaGol intro seeds its Game
of Life from power-on RAM and now shows an almost empty field (see Known issues).test_ffyl_856now runs 1400 frames to game
code. The good dump is CRCB14C4753; the[a1]dump is an authentic BIOS reject.
Headless-verified only. - Club Drive audio under HLE (#744, #849). Club Drive was silent under the default HLE
boot (in a sweep of 97 start-up I2S phases, 5 were silent on develop and 0 with the fix). The core vectored the DSP inside the I2S event
callback; the 68K then rewroteD_PCwhile the DSP was running (JTRM v8 p.110 allows that
only while it is idle), so the interrupt service routine never ran and the game never
re-armed it. The interrupt is now latched and taken at the DSP's next instruction.
Club Drive HLE went from RMS 0.0 to 2948.6. A 160-cart A/B was framebuffer-identical in
both modes, and the audio pair is unchanged on Wolfenstein 3D, Doom, White Men Can't Jump,
Iron Soldier 1 and 2, Skyhammer, Atari Karts, Raiden, Tempest 2000 and Zoop. Confirmed by
ear in RetroArch on iOS (Doom, Wolfenstein 3D, Club Drive, Music Demo). - White Men Can't Jump gameplay tearing (#736, #870). v3.7.1 turned Blitter Bus Timing
on for this title to fix its intro logo. That also made the GPU wait out each of its own
blits at worst-case cost, so the GPU's draw started late and in 86 of 125 fields was
still running when the 68000 swapped buffers: horizontal tears and sprites missing for a
field. Blitter Bus Timing gains a "68000 only" value that stalls just the 68000, and
the title's preset now uses it. The intro logo fix still holds (boot frames 0-300 hash
identically; the logo is 43.8% lit). Over two 600-frame stretches of the attract match,
reverted frames / spliced frames went from 68/12 and 95/15 to 21/2 and 23/4. Some
flicker remains. Headless-verified only (fb_flicker_probe). - Music Demo DSP runaway (#853, #862). The DSP code stores
D_FLAGSto change register
bank and then setsr31in the next instruction. On hardware that instruction still sees
the old bank (JTRM v8 p.109); the core switched immediately, so the stack pointer landed in
the wrong bank and the first interrupt returned into garbage. The bank switch now waits
out the two-instruction retire window, andjump/jrcommit it before their delay slot
so the Doom and Wolfenstein 3D epilogues behave as before. A 160-cart A/B (HLE and BIOS,
1200 frames, framebuffer and audio) was byte-identical except Music Demo. The crash
watchdog now also sees DSP runaways in HLE. Confirmed in RetroArch on iOS: Music Demo
runs in both modes with no watchdog lines. - GPU
G_FLAGSretire window (#865, #869). The GPU gets the same two-instruction window
as the DSP. No title is known to change. Unit-tested (test_gpu_ops66/66). A partial
corpus A/B (98 carts, 1200 frames) was 98/98 identical in HLE and 96/98 in BIOS, the two
differences being harness artifacts, and the release cart matrix (which includes this
change) has no backward row. A per-frame A/B of the whole corpus and a visual check are
still owed. - Ruiner Pinball GPU escape (#866, #873).
store Rn,(r15+Rm)was the one GPU long-store
form that did not drop the low address bits, so a word-aligned store split across two
longs, a jump table went wrong and the GPU ran off into DSP RAM at frame 56. Every form
now aligns, as the MiSTer RTL addresses GPU local RAM by bits 11:2 only. Ruiner Pinball
loses itsgpu_pc_escapeandvideo_stallin both modes. The core does not yet claim the
game is playable. Headless-verified only. - Native Demo (bin) boots (#866, #872). This headerless binary is linked at
$5000,
but every address it uses also fits$4000, so the loader picked$4000and the GPU ran
away at frame 1. On a tie the loader now prefers the base under whichLEAtargets point
at Jaguar I/O descriptor tables. Across 141 resolvable carts only this title changes base.
It now reaches game code with video in both modes, like the.jagversion.
Headless-verified only.
Netplay
- Doom 2-player netplay holds 60 fps (#860, #861, #871). The per-frame wait for the
partner's link byte ignored how long the rest of the frame took, so frames overran vsync
and the core ran at 30 Hz with half-rate audio. The wait now fits in what is left of one
frame, with a self-adjusting margin. In the simulator (3 ms each way) Doom went from 14.5
to 22.2 image updates/s with overruns from 30/s to 0. #871 adds an idle-side wait: a side
that only answers used to finish its frame early and cost the link a whole video frame per
byte. Simulated tic rates rose from 16.3 to 20.8 at 3 ms each way and from 8.9 to 16.0 on
a jittery Wi-Fi profile. A[NETLINK] link statsline now appears in the log every 5 s
while a link carries traffic.- On iOS to iOS over Wi-Fi the maintainer saw #861 hold 60 fps, but players still moved at
about half single-player speed. A Doom tic is 12 one-way single-byte hops, each costing a
network round trip, so better waiting cannot fix the rest. Epic #864 (two Jaguars in one
core with standard rollback netplay) tracks it. #871 gains are simulator numbers and
have not been measured on a device.
- On iOS to iOS over Wi-Fi the maintainer saw #861 hold 60 fps, but players still moved at
GameDrive SD card (#783, #844)
GameDrive software can now open, read, write, seek, list and stat files on an SD card
backed by a host folder: jaggd-sd inside the frontend's save directory (system directory
if there is none). This is what JagOS 'Spot', homebrew with streamed assets and screenshot
tools use. Paths are confined to that folder: .., drive letters, FAT-invalid characters
and symlinks are refused, and names match case-insensitively.
- New option Jaguar GameDrive SD Card (
virtualjaguar_jgd_sd): Read/write (default),
Read-only, Disabled. It is active only when the GameDrive is (Jaguar GameDrive: Auto
for images over 6 MB, or Enabled). - Open files are saved in savestates (see below). Loading a state never creates, truncates
or appends to a file, but writes already made stay made, so run-ahead and netplay can
repeat host-side writes. Seedocs/jgd-interface-notes.md. - Hardened before release: a directory read with a bad handle no longer copies host memory
into the game, and a state loaded with no card configured reopens nothing. - Not yet: GPU and asynchronous reads still return -1. Tested with a synthetic probe only;
acceptance with a real JagOS ROM is pending.
Per-title database and frontend
- Compatibility presets (#748, #842). A per-title setting is now either an
enhancement (the performance profile may withhold it) or a compatibility setting (never
withheld, and it must cite the ticket for the real fix so it can be retired). White Men
Can't Jump's Blitter Bus Timing row is the first compatibility row. Your own option value
still wins over any preset. - CD titles can have rows (#747, #843). Discs are keyed by the CRC32 of their boot stub,
which is the same across CUE, CHD and CDI rips of one pressing. The disc table ships empty
in this release. Every CD load logs[titledb] disc boot stub CRC32 $XXXXXXXX. Seven
homebrew discs share one loader and so share a key; audio-only discs have none. - The frontend explains presets (#841, #847, #850, #859). At load RetroArch shows an
on-screen notice naming the presets applied (for example "White Men Can't Jump: Blitter Bus
Timing on (compatibility preset)") and says when the performance profile withheld or
demoted one. Option sublabels describe the current state. The core never rewrites your
option values. Options that apply only at load now start their description with "Restart
required: applied when content is loaded." With a CD loaded, cartridge-only options
(GameDrive, GameDrive SD card, enhancement hooks, blit memo) are hidden. - BIOS and PAL apply only at load (#858, #863). Changing an unrelated option mid-game
used to switch the boot ROM flag back off on GPU-only carts and real-BIOS CD boots, and
PAL switched clocks live while the frontend's AV timing stayed at the load-time standard. Both options now take
effect at the next content load; a mid-game change writes a one-time "takes effect on
restart" line to the log. - Towers II no longer defaults to 2x internal resolution; it gave no visible gain (#809,
#848).
Savestates
- States are now v17. v16 and older states still load. v17 states do not load in older
builds. - One chunk is appended after
BLH1:JGF1, the GameDrive SD handles (per open file the
card-relative path, access and position; per open directory its path and position). A
state from another machine works because paths are card-relative. A missing file comes back
closed. - The DSP (#862) and GPU (#869) retire windows are stored in spare bits of an existing byte,
with no layout change. Older states load as "no window pending". - Details:
docs/savestate-compat.md.
Testing
Release gate against the v3.7.1 tag, run on the corpus machine
(docs/release-process.md). The matrices were swept on develop 0a820e5 and the suite ran
on c556940; the two differ only in the regenerated matrix docs (#874). test/tools/matrix_diff.py: 0 rows moved backward in either
matrix.
- Cart corpus, 155 titles (Fast blitter). HLE: 155/155 reach game code. Real BIOS: 141
reach game code and 14 areBIOS_REJECT.- The 14 are not regressions. BIOS rows are now scored from the boot-ROM handoff instead
of frame 0 (#852, #854), so a dump the boot ROM refuses (the red "Jaguar" screen) no
longer counts as running just because the logo animation played. They are alternate or
bad dumps and BIOS-only demos: Assassin Demo Part 1, Drumpad2, Fight For Your Life
[a1]and[a2], Hubble Fade, Hubble Nebula, Iron Soldier[a1], Kasumi Ninja[a1],
Phase Zero, Rayman Demo (two), Super Cross 3D (this dump; the good one is CRC
EC22F572) and Ultra Vortek Beta (two). - 8 rows improved: Ruiner Pinball (HLE and BIOS) and Native Demo (bin) (HLE and BIOS) lose
their GPU escape and video stall; Music Demo (BIOS) goes from? (pc_escape)to game
code; Jaguar Server 50 Hz and 60 Hz and Painter (bin) (BIOS) loseinframe_hang. - Flip Out and Fight For Your Life (1996) do not show as improved: the old matrix already
scored them as game code (Flip Out's HLEILLEGALloop runs in cartridge space, and the
old BIOS rows counted the boot-ROM intro).
- The 14 are not regressions. BIOS rows are now scored from the boot-ROM handoff instead
- CD corpus: 28 of 28 discs reach game code in both modes, no row changed.
- JaguarDemos full suite (49 public demos): no regressions against the updated baseline.
Three rows were rebaselined from PASS to FAIL (JaGol, algorip, solidWaves); see Known
issues. - The matrices record a stage plus coarse video and audio flags; they cannot see most
rendering or audio changes. The cart matrix runs the Fast blitter only. make TEST_EXPORTS=1 testexits 0 on the corpus machine with the private ROMs, and the
audio pair actually ran: Skyhammer 0.000% saturated (RMS 3083.3), Iron Soldier 2 0.000%
(RMS 2598.3), Iron Soldier 1 presence in envelope, Club Drive HLE presence and clipping
clean (RMS 2948.6). Four checks were skipped for missing optional inputs (UDP broadcast
between local processes, a live Fountain ROM, a CHSE-capablechdman, a Red Book disc).
Developer and CI
- Release gate (#749, #846).
test/tools/matrix_diff.py OLD.md NEW.mdcompares two boot
matrices and exits 1 if any row moved backward or gained a crash-watchdog signature.
docs/release-process.mdmakes it a pre-tag step.test/test_matrix_diff.sh(43 checks)
runs inmake test. - BIOS scoring (#852, #854).
cart_boot_probefinds the boot-ROM handoff itself
(--post-handoff N); classification moved totest/tools/cart_classify.sh, which adds
BIOS_REJECTand? (bios_trap). - Harness:
--input-bitmasksexercises the joypad bitmask path RetroArch uses (#857). It
came out of re-triaging the FMV report #737, where no core defect was found. - Netlink tooling:
netlink_sim(a deterministic Doom-link simulator),
netlink_btrace_report.py, and jitter, spike and loss options fornetlink_delay_proxy. - New and extended tests:
test_jaggd_fs,test_jgdfile API,test_titledb,
test_pertitle_db13-17,test_disk_control9-10,test_option_explain,
test_option_visibility,test_cart_needs_biosmid-session arm,test_dsp_unit17-21,
test_music_demo_dsp_bank,test_gpu_opsretire-window and alignment cases,
test_cart_formatmirror and tie-break cases,fb_flicker_probe, and ROM-gated
test_flipout_851,test_ffyl_856andtest_ruiner_866. test_jaggd_fsbuilds as gnu99 and the SD-root join is bounded (#845).
Known issues
- Verified headlessly only, not yet in RetroArch: Flip Out (#855), Fight For Your Life
BIOS (#868), White Men Can't Jump tearing and intro logo (#870), Ruiner Pinball (#873),
Native Demo (bin) (#872), the GPU retire window (#869), the BIOS/PAL latching notice
(#863), the frontend preset notices and option hiding (#847, #859) and the GameDrive SD
card (#844). #871 netplay gains are simulator numbers. - Doom netplay over Wi-Fi stays slower than single player; epic #864.
- White Men Can't Jump still flickers somewhat, less than before (#736).
- JaGol (JaguarDemos, Outline 2023) shows an almost empty field: it seeds its Game of
Life from power-on RAM, which is now zero in BIOS mode. No uniform fill suits every title
(a random fill breaks Fight For Your Life, an$FFfill breaks homebrew that expects zeroed
memory); #876 tracks a better model. The JaguarDemos baseline also marks algorip and
solidWaves as failing: their earlier pass came from random RAM shown before the intro drew
(algorip renders correctly; the probe's sampling misses it, #877). - Ruiner Pinball no longer crashes its GPU; whether it plays correctly is unconfirmed.
- Still open in this milestone: the HLE-vs-BIOS asymmetry list (#744), I-War needing
Hardware Timing options (#634) and Checkered Flag's frame cap (#656). - Closed without a code change: the FMV interactive-scenes report (#737). Input works
in both boot modes with RetroArch defaults; Space Ace's scenes need the right direction
within about half a second.
Upgrading
- Savestates: v16 and older load; v17 states do not load in older builds.
- New option: Jaguar GameDrive SD Card (default Read/write; creates
jaggd-sdin the
save directory when GameDrive software uses it). - New value: Blitter Bus Timing "68000 only". Existing values keep their meaning.
- BIOS (Cartridges) and PAL now change only on the next content load.
- BIOS-mode power-on RAM is zero-filled, as in HLE (it was a per-word random pattern).
Downloads
Pre-built libretro cores are attached to the GitHub release, built by release.yml (24
targets). Each binary has a matching debug archive, and SHA256 checksums are in
SHA256SUMS.txt. Every push to develop publishes a nightly pre-release:
https://github.com/libretro/virtualjaguar-libretro/releases/tag/nightly
Maintainers
Joseph Mattiello, with the Virtual Jaguar libretro contributors. Original Virtual Jaguar
by David Raingeard (Potato Emulation) and James Hammons.
Artifacts in this release
SHA256SUMS.txt
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_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.
b926e41185057ee9204aaa0aaafff53ceec2cbb6d4f37e478edf7a7ddb353332 cue2cdi-linux-x86_64
c19f65c1be0eab40e58f0a4d619704dcfc4632858d00eef78a737d0f26e7a134 cue2cdi-macos-universal
16767f97e819cb04337d1e5222f9dc9896b6a4b18dc4913242209c8a98e7c2a7 cue2cdi-windows-x86_64.exe
efcd48fd886af2e73bf42569b7cc0dad8b66cb2173a02b6c0176d8b2a6e77802 jagcd-tools-linux-x64.zip
c05246b2f91a5039acbb130c299deda21fbd6fbad41c5eea6488584f02bc2806 jagcd-tools-macos.zip
c278ea4f54d2362301d61866cf16598f03c32da2e577e0d405ea3e10b78d9f11 jagcd-tools-windows-x64.zip
342c3346d979787d83ef870601f284603e085c46fc395fcbe91106a920aa1690 virtualjaguar_libretro-android-arm64-v8a-debug.tar.gz
00ac2e6f0e6981693c8a99630bb76b8207de6b9e81b92168c037f2ae2c2c6844 virtualjaguar_libretro-android-arm64-v8a.so
a4ad9c9d9c9c42b1465df28619844b07e7dcea07c818c231c2653bcb5996464b virtualjaguar_libretro-android-armeabi-v7a-debug.tar.gz
712a41ba30834ae438aac0a9ccef4112937c31c72050d8c087a533eead42d381 virtualjaguar_libretro-android-armeabi-v7a.so
9482ae8fb344698408ea61374489d55655376df26703538bdd07adba3d4c5bba virtualjaguar_libretro-android-x86-debug.tar.gz
403fea3821ed3f8f5c9c86a249a0c9b86461dee02de7be55b987445455a31e08 virtualjaguar_libretro-android-x86.so
32df9243c16557513c09a7b5cf19f8d31f0e152b3cade1fed5a40873c2619577 virtualjaguar_libretro-android-x86_64-debug.tar.gz
755ec7d89d86d94a9c23bbe50098fce0e0a3eaaf05341c6c7b13f5802529bb20 virtualjaguar_libretro-android-x86_64.so
15ef7040f14b5327bf6b95853b5a39b499c7420a22e4177b5ce803742198628c virtualjaguar_libretro-emscripten-wasm-debug.tar.gz
9f5bc6c512d0e2166e13371617714f21478b3f6147313c489258c0f4a4791d70 virtualjaguar_libretro-emscripten-wasm.bc
4d4c84ef360d0c7705cc10b391cc02a9ac080855af0fddc9b160dd7170ea52ec virtualjaguar_libretro-ios-arm64-debug.tar.gz
bab55a140b974ecd0ffe3ed03a5ffc8ab4556a85590527228f7bcfb9ed98606c virtualjaguar_libretro-ios-arm64.dylib
0798df635670472a55d119bdfd3eb4fe089b33c3bb689867eb0761d1103ed5e4 virtualjaguar_libretro-linux-aarch64-debug.tar.gz
4351e961939f3f0870e06842fccf9e54f81cb0d77072eb9ac935ed66a1fac544 virtualjaguar_libretro-linux-aarch64.so
913fac842b537fb7238f0fee752201505ac8cfbefd4d9082ff932ad3e3b9ab60 virtualjaguar_libretro-linux-i686-debug.tar.gz
2c7d95798ffbcfcbe4d263e381315a79fa2a8334de1c5dc6beba23ac65142d5c virtualjaguar_libretro-linux-i686.so
94f0581728cc19e837c1dd1300913bf747857f614bf6949f6879aaf8367e16c0 virtualjaguar_libretro-linux-rpi1-armv6-debug.tar.gz
03af55a667b49fe2344494868431538e7af0106ae21e72f7a121254ed83e17e4 virtualjaguar_libretro-linux-rpi1-armv6.so
252e9f62b848df238dea353fa3904ae215e0f0aff378b91a37974dcf7fa42c56 virtualjaguar_libretro-linux-rpi2-cortex-a7-debug.tar.gz
c1a1f8ae003e6476b30f5fd2cac01cf3a4ec5c9f9b35dda485507d2d0ea3bc4b virtualjaguar_libretro-linux-rpi2-cortex-a7.so
053fe04a67230017ca45b0cedf375acbb92d21ec49286812c92b0383833d02e1 virtualjaguar_libretro-linux-rpi3-cortex-a53-debug.tar.gz
ea442bbaefffbd5bfbe12d6334de798a343821cd20e17a69b393585f8dfb0be6 virtualjaguar_libretro-linux-rpi3-cortex-a53.so
42da49ffd15f0bd352bd971eeadc0b2e0ed5ad9df795b1d6f36e22a1ed549d61 virtualjaguar_libretro-linux-rpi3_64-cortex-a53-debug.tar.gz
e5d46be90ad6ee23024e812e35dd644f1b065ada1ce7eb50a99e00dc3bba11ed virtualjaguar_libretro-linux-rpi3_64-cortex-a53.so
337729c1bd890ead1810d5a8a77d7e789dae81beb18e0e05832afa9d85e03f9d virtualjaguar_libretro-linux-rpi4-cortex-a72-debug.tar.gz
f0263739be5f174ed8a84ad43248940b3572de372dd949af7c7fe221368a0daa virtualjaguar_libretro-linux-rpi4-cortex-a72.so
cc5eb6c4c02e8e2f71ad9256df18e6605308e1125f10cf42840d5fb6cda48d0a virtualjaguar_libretro-linux-rpi4_64-cortex-a72-debug.tar.gz
8364185cbee24180f1079e93f28afa04e10858619277171e9ae7b5d7b5bf2903 virtualjaguar_libretro-linux-rpi4_64-cortex-a72.so
13caadf801517e2ec5ba2d8c0fd46d27f4fea1005a02fe1b3c53d6558264a682 virtualjaguar_libretro-linux-rpi5-cortex-a76-debug.tar.gz
ff8bc611ff5fad82c42ed857ab9fe625272bb3eb8eb9edea8500a8dd5c364dbf virtualjaguar_libretro-linux-rpi5-cortex-a76.so
8a0d4b544d9ff04504f28681d9d253aecaa76c0e18f28658f98206c1d8012f0d virtualjaguar_libretro-linux-rpi5_64-cortex-a76-debug.tar.gz
5c20c054d380cb14c33d226c525f9af7da69211d03280d2a7d5eaf824b6d4e89 virtualjaguar_libretro-linux-rpi5_64-cortex-a76.so
a6626d78fd8285792f90a5571b8a99ae1b87156ad70bed375a6a4638d7dd5d2d virtualjaguar_libretro-linux-x86_64-debug.tar.gz
981929da4ceac8dfa66be689788898c88f33c1e10e3e8bab2d31465794ef4feb virtualjaguar_libretro-linux-x86_64.so
7093772b1d33718aaa113107fb41724c1975cfb04f80c320e4fe67c112929f2e virtualjaguar_libretro-macos-arm64-debug.tar.gz
486ea705e92a1b7fca2247282c25088e63ec1e606709dfb3edeff4ff7c748ed7 virtualjaguar_libretro-macos-arm64.dylib
7ef211c7c272394da1f300a6aa46ee3b05f59927aa03c6ace7439d19b2aa2d0c virtualjaguar_libretro-macos-x86_64-debug.tar.gz
869b869aa3d0c81ebe176c179938e1de6c7072c7eea469cc6f9cda2c65c3bdf9 virtualjaguar_libretro-macos-x86_64.dylib
5cefeffafe21058f8a99dccfc728c5e3319c91195467ada913f562a94a1e4f83 virtualjaguar_libretro-switch-debug.tar.gz
854c6c11a8cb70aa40753b116ff635ca15ca7cac60db06f89f895b23619da800 virtualjaguar_libretro-switch.a
aaffbe12baa2742bccd518a6943e4c32da7322fdd2042d4afda23863466270b3 virtualjaguar_libretro-tvos-arm64-debug.tar.gz
b60fc44eaeba416a5f0084c611c2c6f98c8ffcf30e92a79f35ecf2176275a0ff virtualjaguar_libretro-tvos-arm64.dylib
fbefa25e0118b60926f9b5b969fee6ab13a5f8f626d79347dcaf6305d1ed27fb virtualjaguar_libretro-vita-debug.tar.gz
b907ceb5432aa6bbc9bf4b65bcf9ca2b1c54397dcd64d962c274c6e200ce5d97 virtualjaguar_libretro-vita.a
0f156d44ca6b9b2227a0f082116eea4d43dc34099a42edf2a4b2215b1bde268e virtualjaguar_libretro-windows-i686-debug.tar.gz
064bfc1ddb7f38528a5cb9e42c9794f029b64ef3ad80711e86a76174149cb092 virtualjaguar_libretro-windows-i686.dll
81059f4b07bcef9360ba6a73b4b626aaae2c4ba76eeff8c5b89903fe7ba79c6f virtualjaguar_libretro-windows-x86_64-debug.tar.gz
0de704a64fcf2c9f155daba6bf41dc5d956745971e8e76274e045a4ed7e82d22 virtualjaguar_libretro-windows-x86_64.dll
990dd68275c9fda7ea73c497e64390cf8e09ba23ad50434b0ca4b9a69c55e3d9 virtualjaguar_libretro.info