Ymir (Source)
Ymir is a Sega Saturn emulator with limited compatibility. The games that do play, play well. The emulator features a nice GUI and supports controllers.
- Load games from MAME CHD, BIN+CUE, IMG+CCD, MDF+MDS or ISO files
- Automatic IPL (BIOS) ROM detection
- Automatic region switching
- Up to two players with standard Control Pads or 3D Control Pads on both ports (more to come)
- Fully customizable keybindings
- Backup RAM, DRAM and ROM cartridges (more to come)
- Integrated backup memory manager to import and export saves, and transfer between internal and cartridge RAM
- Save states
- Rewinding (up to one minute at 60 fps), turbo speed, frame step (forwards and backwards)
- Full screen mode with VRR support and low input lag
- Optional deinterlaced/progressive rendering of high resolution modes
- A work-in-progress feature-rich debugger
Building on Windows
To build Ymir on Windows, you will need Visual Studio 2022 Community and CMake 3.28+. Clang is highly recommended over MSVC, as it produces much higher-quality code, outperforming MSVC by 50-80%. However, MSVC tends to provide a better debugging experience.
All dependencies are included in the vendor
directory and are built together with the emulator. No external dependencies are needed.
You can choose to generate a .sln file with CMake or open the directory directly with Visual Studio. Both methods work, but opening the directory allows Visual Studio to use Ninja for significantly faster build times.
Building on Linux
To build Ymir on Linux, first you will need to install SDL3's required dependencies. Follow the instructions on this page to install them.
The compiler of choice for this platform is Clang. GCC is not currently supported, as there seems to be a bug that causes it to take an extremely long time to compile sh2.cpp.
Use CMake to generate a Makefile or (preferably) a Ninja build script:
cmake -S . -B build -G Ninja
Pass additional -D<option>=<value> parameters to tune the build. See the Build configuration section above for details.
You can use CMake to build the project, regardless of generator:
cmake --build build --parallel
Building on macOS
Use CMake to generate a Makefile or (preferably) a Ninja build script:
cmake -S . -B build -G Ninja
Pass additional -D<option>=<value> parameters to tune the build. See the Build configuration section above for details.
You can use CMake to build the project, regardless of generator:
cmake --build build --parallel