Repository navigation
Eglantine smileytatsu/dev-rebased build 16 (22d6be2)
Pre-releaseWhat changed
Mario Kart World's in-game 30 FPS mode now follows the game instead of the pacer.
The game picks a 1- or 2-vblank frame mode from a frame time that already includes the interval it asked for, so a frame held for two vblanks kept reading as too slow and it stayed at 30 FPS for good. The dynamic mode that avoids this was already in the tree but never ran: PaceToVblank recognised the title through the current process, and a present that arrives from a service context has no current game process, so the program id never matched. It now asks for the application process, and the recommended settings for the title switch the mode on.
- Guarded on the loader patch: a title whose instruction sequence does not match is left unchanged, and no other title is affected.
- Takes effect after restarting the game. It can also be switched on per game as Mario Kart World: dynamic FPS.
- It removes the artificial hold, not the frame time: the game still only picks one vblank when a frame fits in one.
README: the engine table lists the change, and a new Ideas section records what is worth doing next (pacer clock, present queue, emulated refresh rate, two frames ahead, texture cache cap, submission batching, range uploads, a host GPU capture, the draw path). The per-image upload idea is replaced by a per-layer one, after a temporary tally showed that no large texture is rewritten every frame: the only images uploaded every frame were the small planes the video decoder writes.
Commits since build-15
0cd801d8nx2: apply Mario Kart World's dynamic frame rate398af04eREADME: list the Mario Kart World pacing change and the ideas22d6be2cREADME: the per-image upload tally found no large texture rewritten every frame
Automatic build of smileytatsu/dev-rebased at 22d6be2.
Linux
Linux packages come as an AppImage (self-contained, needs glibc 2.39 or newer: Ubuntu 24.04, Fedora 40, Debian 13, Arch) and a tar.gz (uses your system libraries, so Qt 6 and the usual libraries must be installed).
| Build Type | Standard | PGO (Recommended) | Notes |
|---|---|---|---|
| amd64 | AppImage · tar.gz | AppImage · tar.gz | Make the AppImage executable (chmod +x) and run it |
| ARM (aarch64) | AppImage · tar.gz | AppImage · tar.gz |
Windows
Windows packages are in-place zip files: extract and run eglantine.exe, or eden-cli.exe from a terminal.
| Build Type | Standard | PGO (Recommended) | Notes |
|---|---|---|---|
| amd64 / x86_64 (MSVC) | MSVC zip | Use if you run into graphical issues on other builds | |
| amd64 / x86_64 (MinGW) | PGO zip | Built with MinGW clang; bundles its own DLLs, no Visual C++ redistributable needed |
The PGO builds are the same programs compiled with profile-guided optimization (clang plus Eglantine's profile); prefer them when your CPU supports it.