Releases: btsouth/omakade
Release list
Omakade 1.15.0
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.
Omakade 1.14.2
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.
Omakade 1.14.1
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.
Omakade 1.14.0
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-qtas a required dependency for the in-game overlay and
declarelibpulseas 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.
Omakade 1.13.0
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
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 aSaveFilePathoverride frommelonDS.tomlare protected as a shared ROM-folder save
set; save states and relocated<state>.savfiles 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 readsgames.yml, installed
dev_hdd0/gamedirectories, thevfs.ymlauto-detection folder and explicit PS3 ROM
folders, validates categories rather than importing updates or save data, and uses the
verifiedrpcs3 --no-gui <path>/Flatpak argv. The save resolver reads each candidate save
directory'sPARAM.SFOinstead 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 asIPSX30001and closed one 79-second session. -
Add PPSSPP discovery, PSP grouping, launching, recording and save protection. Omakade reads
PARAM.SFO from ISO and PBP images, derivesDISC_ID,DISC_VERSIONand region, accepts
homebrew ELF entries with a stable path identity, and scans explicit PSP folders plus the
bounded Recent and PinnedPaths entries inppsspp.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 withGod of War: Ghost of Sparta(NPUG80508) under
PPSSPP 1.20.4 closed one 79-second attributed session. Save protection selects only
PSP/SAVEDATAfolders prefixed by the disc ID, keeps the shared-container warning, and never
treatsPPSSPP_STATEfiles as game saves. -
Read PCSX2's live
logs/emulog.txtto 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 realBlack (USA)run
identifiedSLUS-21376and 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
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 thexenia_canarybinary.
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
- 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
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
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
.wuagames 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.