Skip to content

Releases: btsouth/omakade

Omakade 1.15.0

Choose a tag to compare

@github-actions github-actions released this 04 Oct 01:09
c587700

Press the Xbox, PlayStation or Home button to start Game Mode, return to the desktop
and resume.

  • New Controller Home button setting in Settings → Controls, off by default. A short
    press on any controller does what Super + Ctrl + G does, from inside a game or with
    Omakade closed.
  • It runs as an optional user service, omakade-guide-button, that only reads
    controllers. Nothing is grabbed, remapped or emulated, and Steam Input keeps working.
  • Long holds, chords with other buttons or triggers, the press that switches a
    controller on and duplicate reports from Steam Input's pad are ignored. Presses while the screen is
    locked are ignored.
  • With Steam open, turn off "Guide button focuses Steam" and "Enable Guide Button
    Chords for controllers" in Steam's controller settings.

Install Omakade ·
Game Mode guide

Omakade 1.14.2

Choose a tag to compare

@github-actions github-actions released this 03 Oct 22:40

Game Mode remembers your place. Return to the desktop, then resume your library
or running game with the same shortcut.

  • Super + Ctrl + G returns to the desktop and resumes the complete Game Mode session,
    with or without a game. Details, selection, focus and scroll stay in place until
    End Game Mode, Stop Games and Leave, or closing Omakade.
  • Running games stay on their workspace with attributable game audio muted while away.
    A game ending releases its game/audio records and keeps the library session available.
  • Prepare the Game Mode layout and fullscreen state before showing the window,
    avoiding the windowed-to-fullscreen flash when entering or resuming.
  • Keep Resume available during background session checks and prevent late focus
    requests from pulling you away from the restored desktop.
  • Restore the desktop even when game audio recovery fails, retaining the recovery
    record for a retry.

Install Omakade ·
Game Mode guide

Omakade 1.14.1

Choose a tag to compare

@github-actions github-actions released this 03 Oct 14:26
080ff13

Fixes the Game Mode shortcut leaving a new Omakade window on your desktop.
When the shortcut launches Omakade, pressing it again leaves Game Mode and closes
Omakade after restoring the desktop. An already-open window stays open in its
previous layout.

Install Omakade ·
Game Mode guide

Omakade 1.14.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 11:57
f3d724c

Game Mode brings Omakade to the couch. Choose a display and sound output, then
start from Settings or omakade --game-mode. Omakade opens fullscreen, silences
notifications and keeps the screen awake. Leaving restores the settings it changed.

  • Add Super + Ctrl + G from Settings with one click. The same key leaves Game Mode,
    or opens the Game Mode controls over a game that is still running.
  • Return Omakade to the exact spot it held in a tiled layout.
  • Return to your library, leave games running, or confirm Stop Games and Leave. A game
    left running comes back to your desktop.
  • Keep controls responsive with large libraries and when an emulator hangs.
  • Recover session settings after an unexpected exit.
  • Find setup instructions in the shorter README and new feature guide.
  • Sort installed games first, then alphabetically, and dim uninstalled covers in
    desktop and Couch Mode. Other sort choices remain available.
  • Import owned Epic, GOG and Amazon games from Heroic, including uninstalled
    titles. Heroic handles installation and launch; refresh its libraries before rescanning.
  • Keep ROM filename details accessible when metadata and descriptions are missing.
  • Add layer-shell-qt as a required dependency for the in-game overlay and
    declare libpulse as optional for Game Mode sound switching.
  • Show wide box art whole on the details page, name consoles in full, and keep
    setup hints and playtime bookkeeping off the TV.

Game Mode switches desktop audio as a whole. Gamescope, HDR and per-game audio
routing are outside this release.

Install Omakade ·
Game Mode guide

Omakade 1.13.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 02:40

Clearer browsing, library repair and save relocation, with controller and keyboard
navigation checks built into the test suite.

  • Rework Home, Library, Details and Settings layouts. Keep actions reachable in
    narrow windows, theme native controls, and use shared spacing and the Omarchy font.
  • Make Couch navigation follow the visible rows. Up and Down reach adjacent toolbar
    rows, including wrapped filters, and return between games and their entry control.
    Search, Filters and Details restore focus when closed. Tab and Shift+Tab follow
    the visible controls and games.
  • Give keyboard and controller input usable focus on a cold launch, including
    empty and delayed libraries. Opening Omakade no longer needs a mouse click first.
    Clear Filters also clears search stored in the library model.
  • Add five navigation contracts covering 4,320 directional links and 16 cold-start
    cases to normal CI. Check keyboard, D-pad and analog input through production
    controller polling, both Couch layouts, empty results and wrapped rows.
  • Match Nintendo controller actions to their button prompts. Show Stop Game only
    for attributable running targets and repair focus when actions change.
  • Improve Stats Overview, Play patterns and Library snapshot, with clearer labels
    for recorded periods and imported lifetime totals.
  • Clarify repair, artwork, launch setup and save actions. Evaluate library review
    availability in the background and keep review and undo controls navigable.
    Recheck superseded background work, group disconnected folders correctly, and
    keep relocation dialog focus inside its visible controls. Removing a search
    chip clears Couch searches too; relocation accepts real filenames containing #.
  • Copy verified save backups when relocating a game's path. Preserve the original
    backups and copies on undo, reuse existing verified copies on repeated repairs,
    and refuse destination conflicts, incomplete recovery or unverified save mappings.
  • Fix Home shelf scrolling and a cached-artwork geometry binding loop.

Omakade 1.12.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 01:37

Play history and local statistics, safer game stopping, durable recording, and new Nintendo DS,
PlayStation 3, and PSP sources.

Play history and statistics

  • Open Stats for recorded play, top games, hourly patterns, streaks, achievements,
    and backlog habits. Export a local PNG card with the recording period clearly labelled.
    Imported lifetime totals stay separate. Desktop and Couch Mode are supported.
  • See running sessions on Home, browse older history, and delete finished sessions
    with confirmation. Deletion preserves imported playtime and later recorded play.
  • Stop one game or all attributable games. Previews explain shared Wine/Flatpak scopes;
    idle installations and documents open in editors are excluded. Recognize Steam Proton
    games whose process paths use Steam's container drive, and stop their verified prefix
    processes when no system wineserver is installed. Wait briefly for a forced process to
    exit before reporting the result.
  • Record supported file-picker loads on Hyprland. Optionally pause recording when the
    emulator loses focus, or show the current game through Discord Rich Presence.
  • Fix imported/recorded playtime overlap, recovery timestamps, stale title matching,
    Discord reconnects, and partial history deletion on storage failure.
  • Keep Stats totals and charts consistent across midnight, New Year and DST. Paused
    historical sessions use labelled timing estimates. Storage errors prevent card export.
  • Remember the selected Stats period, count linked installations consistently, and fit
    longer notes inside the exported card. Headless demo exports require an explicit fixture flag.

Recording reliability and emulator support

  • Make refused session writes durable. Sessions get a stable identity before their first
    write, and an insert, close or active-session checkpoint the database refuses is journaled
    to a bounded file beside the database and replayed, both after a recorder restart and
    during ordinary polling. Replay is idempotent, so a crash between the database commit and
    the journal acknowledgment cannot double a session. A torn final append keeps the verified
    prefix, and a partial header is repaired rather than swallowing the next record. A replayed
    checkpoint keeps its observation time as the heartbeat and never lowers recorded progress.
    A game-wide clear, a single-session deletion and a database restore each invalidate only the
    records they should, checked in the same transaction as the write, and a temporary database
    read failure retries instead of discarding. An unresolved identity remains retryable under
    a durable journal-owner binding, while Replace restore invalidates and removes prior
    journal work. A recovered session whose game has exited or changed is closed at the last
    observation, and a surviving same-game process is adopted under one stable key. A failed
    final close remains retryable, and checkpoint replacement reports write, flush, sync,
    rename and directory-persistence failures instead of a false acknowledgement. Repeated
    checkpoints replace rather than fill the journal, and a full or damaged journal is shown in
    recorder status instead of dropping accepted records. This replaces the earlier in-memory
    retry limitation.

  • Preserve artwork when a Steam app has no published capsule. Metadata keys with their embedded
    source/runner/app-id separators are now decoded losslessly when the library reopens, and a
    Steam preload whose capsule request fails falls back to its identified IGDB cover. A real
    Steam capsule still takes priority whenever one exists.

  • Attribute a game Dolphin loaded from its own file picker. Dolphin rewrites a playtime file
    while emulation runs, keyed by disc id, so it is read for a live Dolphin process and a game
    whose total has advanced is recorded against the right game. A total that has not advanced
    attributes nothing, a disc id the library does not know or one that matches two games is
    refused rather than guessed at, and two games advancing between two polls is refused for that
    poll. A record that stops advancing keeps the game it last confirmed instead of ending the
    session, which is what a paused game looks like. A session first attributed from Dolphin's
    window title ends when the record takes over, so the same play is never billed twice. Evidence
    from a command line still wins over the record, and stop actions still use verified command
    line evidence only. No other supported emulator writes a record that proves the loaded game,
    so their file-picker loads keep the window-title path.

  • Add native melonDS discovery, launching, recording, title-index and save protection for
    Nintendo DS and DSi dumps. Omakade scans the ROM folders the user marked as DS, reads the
    same game-code and header fields melonDS reads, groups the games under a Nintendo DS console
    entry, and launches one ROM as a structured argument. The default battery save beside the ROM
    and a SaveFilePath override from melonDS.toml are protected as a shared ROM-folder save
    set; save states and relocated <state>.sav files are not treated as in-game saves. The
    native source was accepted with the MIT-licensed DS-Craft beta 1.7.1 homebrew release under
    melonDS 1.1. The Flatpak route launched the same homebrew and closed one 14-second session.
    melonDS still has no current-session evidence for a game loaded inside its own picker.

  • Add RPCS3 discovery, PS3 grouping, launching, recording profile, title-index support and
    PARAM.SFO-aware per-title save resolution. Omakade reads games.yml, installed
    dev_hdd0/game directories, the vfs.yml auto-detection folder and explicit PS3 ROM
    folders, validates categories rather than importing updates or save data, and uses the
    verified rpcs3 --no-gui <path>/Flatpak argv. The save resolver reads each candidate save
    directory's PARAM.SFO instead of trusting a title-id prefix. Native execution was accepted
    after installing supplied PS3 firmware 4.93 in the isolated RPCS3 root: the GPL-2.0 iPSX3
    homebrew booted as IPSX30001 and closed one 79-second session.

  • Add PPSSPP discovery, PSP grouping, launching, recording and save protection. Omakade reads
    PARAM.SFO from ISO and PBP images, derives DISC_ID, DISC_VERSION and region, accepts
    homebrew ELF entries with a stable path identity, and scans explicit PSP folders plus the
    bounded Recent and PinnedPaths entries in ppsspp.ini. The native source was accepted with
    the MIT-licensed 2048PSP release under PPSSPP 1.20.4 and closed one 59-second session over a
    60-second wall span. A real-title run with God of War: Ghost of Sparta (NPUG80508) under
    PPSSPP 1.20.4 closed one 79-second attributed session. Save protection selects only
    PSP/SAVEDATA folders prefixed by the disc ID, keeps the shared-container warning, and never
    treats PPSSPP_STATE files as game saves.

  • Read PCSX2's live logs/emulog.txt to identify the serial of the game actually loaded, including
    titles started inside PCSX2's own file picker. The adapter tracks appended data, handles log
    truncation and disc changes, keeps the last confirmed game while the log is quiet, and refuses
    an unknown serial instead of falling back to the previous game. A real Black (USA) run
    identified SLUS-21376 and closed one 75-second attributed session. Recorder Settings now
    states which sources have verified live-game evidence and which remain command-line/title only.

  • Persist observed activity intervals for each session, including pause spans, through the
    database and the durable recovery journal. Existing sessions retain aggregate provenance; new
    interval-backed sessions are marked observed. The existing proportional Stats allocator is
    intentionally unchanged in 1.12.

Omakade 1.10.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 02:00

Xenia (Xbox 360) support and a TV setup for the couch.

  • Xbox 360 games from Xenia Canary: discovery from Xenia's recent-games list and storage
    root, save backup, playtime recording, and launching through the xenia_canary binary.
    Thanks to @Salt-555 for the Xenia source work.
  • Xbox 360 titles identified with IGDB and shown under their own console card, including
    names Xenia writes with trademark marks.
  • Xenia pinned to X11 on Wayland, where its window otherwise stayed grey while audio kept
    playing.
  • An optional TV gaming agent skill with a Gamescope launcher that checks the TV output,
    workspace, and audio sink before starting a game. It stays inert unless you install it.
    Thanks to @LucasOl1337 for the guide and helper.

Omakade 1.9.2

Choose a tag to compare

@github-actions github-actions released this 14 Sep 00:02
  • Add an optional ProtonDB tier badge on library cards, off by default. Turn on both
    community reports and card badges in Settings to see the tier beside playtime and
    rating. Fixes #39.

Omakade 1.9.1

Choose a tag to compare

@github-actions github-actions released this 13 Sep 21:07

This patch fixes RomM catalog refresh for large libraries.

  • Ask RomM to omit the result-set index and filter data it repeats on every page
    by default, which is what pushed large catalogs past the response limit.
  • Raise the whole-refresh total while keeping each page bounded in memory, so
    libraries with tens of thousands of entries finish loading. A failed refresh
    still keeps the existing offline catalog.

Fixes #46.

Omakade 1.9.0

Choose a tag to compare

@github-actions github-actions released this 13 Sep 01:29

Omakade 1.9 adds RomM libraries, per-game launch setup, emulator save protection, and tools for fixing your library.

New features

  • RomM libraries: connect your server, launch locally mounted games, and browse the cached catalog offline. Credentials are stored securely; Omakade does not modify your server.
  • Launch setup: choose an emulator or core for each installation, inspect launch diagnostics, and repair missing paths.
  • Save protection: back up supported emulator saves before launch, restore or undo changes, and manage custom layouts, retention, and cleanup. Shared memory cards include warnings before restoring.
  • Library repair: work through missing artwork, identification problems, and unavailable installations with saved filters, selected retries, and separate identity and artwork undo.
  • Game details: view play history and optional ProtonDB community reports. Library cards keep their compact two-line layout.

Fixes

  • Improve ROM identification and artwork recovery while preserving manual choices and editions.
  • Fix cached cover loading loops and refresh backup lists after automatic capture.
  • Keep archive launches on compatible RetroArch setups and explain missing archives, cores, or runtimes.
  • Skip GOG DLC-only manifests so they do not block game discovery.
  • Recognize Cemu .wua games in session recording.

Thanks

Thanks to @gotar for reporting the GOG DLC scanning bug and @ksavery for suggesting ProtonDB integration. Thanks to everyone contributing reports, ideas, and testing.

Downloads

Arch packages are available below for x86_64 and ARM64 (aarch64), alongside source, SHA-256 checksums, SPDX dependency reports, and signed build provenance.

Full changelog