{"id":28757293,"url":"https://github.com/libretro/virtualjaguar-libretro","last_synced_at":"2026-05-01T06:06:17.456Z","repository":{"id":7887148,"uuid":"9263817","full_name":"libretro/virtualjaguar-libretro","owner":"libretro","description":"Hard fork of Virtual Jaguar (abandoned project) to Libretro","archived":false,"fork":false,"pushed_at":"2024-10-21T21:41:39.000Z","size":2373,"stargazers_count":32,"open_issues_count":14,"forks_count":40,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-06-08T10:51:31.775Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/libretro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-04-06T17:33:56.000Z","updated_at":"2024-12-29T15:55:10.000Z","dependencies_parsed_at":"2024-10-22T05:47:41.959Z","dependency_job_id":null,"html_url":"https://github.com/libretro/virtualjaguar-libretro","commit_stats":{"total_commits":279,"total_committers":28,"mean_commits":9.964285714285714,"dds":"0.24014336917562729","last_synced_commit":"2cc06899b839639397b8b30384a191424b6f529d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/libretro/virtualjaguar-libretro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libretro%2Fvirtualjaguar-libretro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libretro%2Fvirtualjaguar-libretro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libretro%2Fvirtualjaguar-libretro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libretro%2Fvirtualjaguar-libretro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/libretro","download_url":"https://codeload.github.com/libretro/virtualjaguar-libretro/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libretro%2Fvirtualjaguar-libretro/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260281515,"owners_count":22985633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-17T03:10:27.841Z","updated_at":"2026-05-01T06:06:17.452Z","avatar_url":"https://github.com/libretro.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Virtual Jaguar libretro\n\nPort of the [Virtual Jaguar](http://shamusworld.gotdns.org/git/virtualjaguar) Atari Jaguar emulator to the [libretro](https://www.libretro.com/) API.\n\n[![C/C++ CI](https://github.com/libretro/virtualjaguar-libretro/actions/workflows/c-cpp.yml/badge.svg)](https://github.com/libretro/virtualjaguar-libretro/actions/workflows/c-cpp.yml)\n\n## Features\n\n- Emulates the Atari Jaguar's four processors: Motorola 68000, GPU, DSP, and Object Processor\n- Supports NTSC and PAL video modes\n- 2-player input with configurable numpad mapping\n- Fast and legacy blitter modes (the legacy/accurate path is SIMD-accelerated on SSE2 and NEON)\n- Optional BIOS boot sequence, plus an HLE BIOS so games can boot without a BIOS image\n- Save state, run-ahead (deterministic serialization), SRAM/EEPROM via the libretro SRAM interface, cheat codes, and a memory map for RetroAchievements\n- Supported ROM formats: `.j64`, `.abs`, `.jag`, `.rom` (including inside ZIP archives), plus conservative headerless raw homebrew loading\n\n## Recent improvements (libretro fork)\n\nThis fork has diverged substantially from upstream Virtual Jaguar v2.1.0. See [docs/WHATSNEW](docs/WHATSNEW) for the full v2.2.0 changelog. Highlights:\n\n- **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_bios` cover the contract.\n- **Game-specific fixes**: Alien vs Predator red noise (M2 blitter `BKGWREN+BCOMPEN`), Doom resolution (proper `PWIDTH` pixel 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).\n- **CPU accuracy**: DSP 40-bit MAC accumulator semantics, FLAGS-write dispatch, GPU/DSP IMASK preservation and ADDC carry overflow, DIVL exception PC.\n- **Accurate-blitter** accuracy fixes (`daddmode` NAND tree, `daddbsel` bit 3, `ADDARRAY` cinsel carry, `SRCSHADE` color).\n- **Object Processor**: scaled and fixed-bitmap `firstPix` handling, left/right/reflected edge clipping for scaled bitmaps, `firstPix` for 2/4/16/24 BPP fixed bitmaps.\n- **TOM IRQs**: pending status now latches even when CPU enables are clear; `IPL2` reasserts on enable via the unified `TOMAssertEnabledIRQs` path. Selective clear works correctly when multiple sources are pending.\n- **Headless test surface**: `make test` runs 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 via `miniretro` on push.\n- **Performance**: `~2x` speedup on DSP/GPU/memory hot paths, audio refactored to drop per-sample events.\n\n## Building\n\n```bash\nmake -j$(getconf _NPROCESSORS_ONLN)            # Auto-detects platform\nmake -j$(getconf _NPROCESSORS_ONLN) DEBUG=1    # Debug build\nmake platform=ios-arm64                         # Cross-compile (ios-arm64, osx, unix, win, android, switch, vita, etc.)\n```\n\nOutput varies by platform: `.so` (Linux), `.dylib` (macOS), `.dll` (Windows).\n\n## Documentation\n\n- [File format details](docs/README)\n- [Source layout](docs/source-layout.md)\n- [Changelog](docs/WHATSNEW)\n- [Known issues \u0026 TODO](docs/TODO)\n- [libretro documentation](https://docs.libretro.com/)\n\n## Links\n\n- Upstream: `git clone http://shamusworld.gotdns.org/git/virtualjaguar`\n- Unofficial GitHub mirror: https://github.com/mirror/virtualjaguar\n\n## Contributors\n\nThis project is built on the work of many contributors. See the [full list on GitHub](https://github.com/libretro/virtualjaguar-libretro/graphs/contributors).\n\n- Original Virtual Jaguar by David Raingeard (Potato Emulation).\n- SDL/Linux/Win32 port by Niels Wagenaar \u0026 Carwin Jones (SDLEMU).\n- Cleanups, GUI/Qt port, and ongoing upstream maintenance by James Hammons (Shamus).\n- libretro core port by libretro/RetroArch contributors.\n- libretro fork maintenance — Joseph Mattiello ([@JoeMatt](https://github.com/JoeMatt)).\n\n## License\n\nLicensed under the [GNU General Public License v3.0](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibretro%2Fvirtualjaguar-libretro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibretro%2Fvirtualjaguar-libretro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibretro%2Fvirtualjaguar-libretro/lists"}