Skip to content

RetroRecomp v1.5.1 — the shared base syncs, points at once, no more Visual Studio

Choose a tag to compare

@ArthurReboulSalze ArthurReboulSalze released this 25 Oct 13:02
· 247 commits to main since this release

RetroRecomp v1.5.1 — the shared base syncs, points at once, no more Visual Studio

  • The shared base works both ways. Signed in, before each batch
    RetroRecomp fetches, in one request, the paths other players already found
    for the games of the batch, even if nobody confirmed them yet. They only
    guide the conversion, which always rechecks them (a failure retries
    without them and sets them aside). When they come from a scan at least as
    thorough as yours, the game is rebuilt from them with a quick check
    instead of a new discovery. After each batch, your new discoveries are
    sent automatically. Both are on by default and can be turned off in
    Options › Common › Account.
  • Points at once, coins on confirmation. The first player to send a path
    the base did not have earns its points immediately, all of them (no more
    decreasing value on big games). When another player finds it again, it is
    confirmed: its class may rise (Platinum, Diamond), the first finder earns
    RR coins, and the confirming player earns a few too. A path nobody
    confirmed keeps its points. Coins unlock titles on your account page;
    the chosen title shows under your name, in the header and on the
    leaderboard, beside your coins.
  • No more Visual Studio on Windows. Before the first conversion,
    RetroRecomp now installs a portable compiler beside itself: llvm-mingw,
    CMake and Ninja, pinned and SHA-256-checked, about 245 MB to download and
    380 MB on disk, without administrator rights. Visual Studio is still used
    if it is already installed and the portable tools are not. Games built with
    the portable tools need Windows 10 or later.
  • Same games, measured. Sixteen games of the nine profiles were converted
    with both compilers from the same source: native, CPU, RAM, video and image
    proofs are identical, with no extra interpreted cycle or opcode. Host time
    per frame (same PC, one pinned core, no window) is 0.75× to 1.01× that of the
    Visual Studio builds. This measures host cost only, not gameplay or latency.
  • Your 1.4.1 games are upgraded, not converted again. Their game code is
    unchanged, so each export of Master System, Game Gear, Game Boy, NES, Mega
    Drive, Super Nintendo, Neo Geo and CPS-1 is rebuilt with the current tools
    and rechecked on the quick routes, without rediscovery; if that check does
    not pass, the game is converted in full and the earlier export stays until
    a new one passes. Quick states (F8/F9) of Mega Drive, Super Nintendo, Neo
    Geo and CPS-1 games keep working; Master System, Game Gear and Game Boy
    states are unchanged; NES states work in the same work folder, as before.
    Super Nintendo games redo their ROM analysis once (a few minutes, no
    rediscovery). X68000 exports are converted again in full once, and their
    earlier quick states are refused (its state key includes the compiler).
  • Smaller Linux games. Linux exports are now compressed with the same
    UPX 5.2.1 as Windows, after their validation: about a third of their
    size or less (Super Nintendo ActRaiser 36.4 → 7.5 MB, X68000 Active Shoot
    14.8 → 3.8 MB), measured on all nine profiles on Debian 13 with native
    validation passed and no interpreted instruction before or after; quick
    states load across raw and compressed builds. A compressed
    Linux game moved without its datas folder is no longer recognized from
    its file alone (it is kept, never overwritten), as on Windows.
  • No build leftovers. Once a game is converted and published, its build
    project (generated C, object files, raw executables, checks; 20 to 100 MB
    or more per game) is deleted, on Windows and Linux; a failed or stopped
    conversion keeps it for diagnosis. Options › Common › Disk space shows
    how much earlier conversions left behind and frees it, keeping the shared
    caches every conversion reuses. A reconversion then rebuilds from scratch.
  • Linux starts again, and installs with a double-click. Linux releases
    1.3.1 to 1.4.1 could stop at startup ("invalid command name
    PyImagingPhoto"): download 1.5.1 again, since those versions cannot open
    their updater. Debian and Ubuntu also get a .deb package: double-click
    it, and RetroRecomp appears in the applications menu; each user keeps a
    private copy where settings, games and in-app updates work without a
    password. The .run installer remains for other distributions.
  • A lighter header. A more compact banner; your portrait with
    Leaderboard and Sign in / Sign out beside it; help (?) moved to
    the toolbar; Options › Common gathers your RetroRecomp account and box art.
    The help page and the leaderboard open only once, however often you click.
    The status line at the bottom is about half as tall. Every Options tab
    scrolls when the window is short: a light scrollbar appears, and the wheel
    scrolls anywhere on the page (no longer changing a list under the
    pointer). Signing out asks for confirmation.
  • Stop means stop. The Stop button now interrupts the running conversions
    at once (their compiler and validation processes are killed) instead of
    waiting for them to finish; it asks first, and earlier exports are kept
    since nothing is published before a conversion ends. Stopped rows are
    marked as such, and a Retry button converts the failed or stopped games
    again, in one more batch. During a batch, the compiled games, the help, the
    leaderboard and the credits stay open.
  • Right-click in the queue. The ROM list has the same kind of menu as the
    compiled games: play, convert the selection, retry, box art, video
    standard, open the ROM or game folder, remove from the list (the ROM files
    stay on disk; Delete does the same), clear, select all. The remove button
    left the toolbar.
  • Enter is Start, Shift is Select. On every console whose pad has Start
    (Game Gear, Game Boy, NES, Mega Drive, Super Nintendo, Neo Geo, CPS-1),
    the keyboard default is Enter = Start and either Shift = Select (Coin on
    arcade, Mode on the six-button Mega Drive pad). On Game Gear, the game
    menu moves from Enter to P, as on Game Boy. Master System keeps Enter as
    Pause, since its pad has no Start. Saved bindings are kept; only defaults
    changed. Default pad buttons were checked on every console.
  • Starting feels like starting. A small picture with the logo shows
    while the converter unpacks; on Linux the desktop's starting cursor
    follows it. Clicking the launcher again brings the open window to the
    front instead of opening a second converter.
  • Ready before the first game. Right after the build tools, the shared
    pieces every conversion needs (engine sources, Z80 → C translator, a
    static SDL2) are downloaded and compiled once behind the same progress
    window, so the first conversion starts at once.
  • Credits on small computers. The credits page measures its frame rate:
    below 20 fps it drops the spheres and boxes, below 15 the stars and
    curves too, and remembers it; a faster computer gets the effects back.
    On Windows it also no longer stalls at 21 fps because of the system
    timer.
    Your portrait and score come from a local cache, refreshed at most every 30
    minutes, instead of a request at every start.
  • What counts on the leaderboard. Only Master System, Game Gear, Game Boy,
    NES, Mega Drive and Super Nintendo discoveries are shared and counted; Neo
    Geo and the experimental CPS-1 and X68000 count for nothing until they join
    the shared base. The sending cards now say so.
  • Credits. Capcom CPS-1 has its own credits (MAME, ymfm, Geolith,
    m68k-recomp-core); the unused Super Mario World notice is gone; the portable
    compiler's runtime licences ship with the converter and in every exported
    game.

Measured on Windows; Linux remains qualified on Debian 13 / glibc 2.41 (GCC,
unchanged toolchain).