JaffarPlus

April 27, 2025 · View on GitHub

Build and Run Tests codecov

JaffarPlus

JaffarPlus is a high-performance general-purpose breadth-first search optimizer. This project is specially tailored for the production of tool-assisted speedruns (TAS). Its features are:

  • High-Performance: Tailored for multi-core CPUs, especially for high core counts.
  • Multi-Platform: Supports games from multiple consoles/game emulators
  • Extensible: Any new emulators or games that support load/save and advance step functions can be added to JaffarPlus via a common API

Built-in Emulator Support

Consoles

ConsoleCore(s)
Atari 2600QuickerStella
Atari 2600Atari2600Hawk
NESQuickerNES
SNESQuickerSnes9x
Sega GenesisQuickerGPGX
Sega CDQuickerGPGX
Sega SG-1000QuickerGPGX
Sega Master SystemQuickerGPGX
Gameboy AdvanceQuickerMGBA
Gameboy / Gameboy ColorQuickerGambatte

Game-Specific

GameCore(s)TargetNotes
Prince of PersiaQuickerSDLPoPLibTAS+PCemMany PoP ports use this same (AppleII / DOS) game logic
Another WorldQuickerNEORAWDOSThis AW interpreter only works with DOS files
Another WorldQuickerRAWGLMultipleThis AW interpreter works with most AW ports
Super Mario Bros (NES)QuickerSMBCBizhawk 2.9.2Inaccurate in transitions, but good for solving levels
Arkanoid (NES)QuickerArkbotBizhawk 2.9.2 (NesHawk Core)
DoomQuickerDSDADoom / Doom II
SokobanQuickerBanSokoban (all)

Author

  • Sergio Martin (eien86)

  • A list of TAS movies produced by eien86 using JaffarPlus can be found here

  • Contributions via pull requests are highly appreciated.

  • Thanks to:

    • This work is based on Jaffar, a solver for the original Prince of Persia (DOS).
    • TASVideos' staff (judges, encoders, admins, etc)
    • The Bizhawk development team (YoshiRulz, feos, Morilli, CasualPokePlayer, NattTheBear, Alyosha, feos, zeromus, and many others)
    • Dávid Nagy and all SDLPoP developers
    • Gregory Montoir and Fabien Sanglard (authors of Fabother World)
    • Eke-Eke and all Genesis Plus GX developers
    • Shay Green, Christopher Snowhill and all QuickNES developers
    • sbroger (a.k.a Chef Stef), developer of Arkbot
    • Mitchell Sternke, developer of SMB-C
    • sinamas, et al. for Gambatte-Speedrun
    • Vicki Pfau, et al. for MGBA
    • Alexander Lyashuk (mooskagh, crem) for kickstarting the idea of creating a TASing bot.
    • The authors of DSDA
    • The authors of the third party libraries used.
  • JaffarPlus is distributed freely under the Apache License 2.0 for any purpose and use, as long as:

    • The license and proper credits to its author are preserved
    • If you publish a TAS or any public work using this software, I'd appreciate you mention it and linking this repository in your description