u/Shocked79

SudoBat 1.2.1 — it now asks how your session went and auto-tunes, tells you about updates itself, and got a round of real-world fixes

SudoBat 1.2.1 — it now asks how your session went and auto-tunes, tells you about updates itself, and got a round of real-world fixes

A few days ago I shared SudoBat, a free app that runs inside Batocera (x86_64) and does per-game, hardware-aware graphics tuning. Today's release is a big one https://www.reddit.com/r/batocera/comments/1umgrtb/i_built_a_tool_that_diagnoses_emulator_crashes/ — if you tried it, it's worth re-installing (one command, bottom of the post).

Major updates

Auto-tuning driven by you, not just crash fixing. After any real game session, SudoBat asks a few targeted questions: did it run smooth? good FPS? stutter in intense scenes? glitches?

- Everything fine → your current settings get validated into the catalog (next time the game is already known-good, and you can opt-in to share them with everyone)

- "It stuttered" → it proposes a lighter graphics set, one button to apply, replay, repeat until it's right

This is the real core of the tool now: your judgment of real sessions drives the tuning, for every game on every emulator.

It distinguishes a crash from a bad experience. Died in seconds, or a known fatal in the emulator log → straight to diagnosis, no silly questions. Played 20 minutes and exited normally → it asks how it went. And for the case no machine can see — the game that dies on its own after 20 minutes, which in the numbers looks identical to you quitting — there's a first question: "did it close on its own?". If yes, it re-reads the emulator logs as a crash and can fire the optional AI turbo on it.

It tells you about updates itself. Once a day (3-second timeout, totally silent if offline) it checks whether a new release is out; if so, a discreet banner appears and you can update from Settings with one button — it just runs the official installer, selftest included. Never automatic, always behind your confirmation. So this is the last update you'll have to find out about from Reddit.

Fixes (all found on real sessions)

- Add-on emulators now get real graphics sets. Emulators installed by add-on packs register their options in separate es_features_*.cfg files that weren't being read. Fixed generically for any add-on, present or future. On my box this unlocked the whole Switch family, which previously showed "no settings for this game".

- Game identification is much more reliable. The game ID is now read straight from the emulator's own log (which always declares it, even for a 30-second session), with the folder heuristic as fallback — and the scan covers the standard XDG paths too, where AppImage emulators outside Batocera's config redirection actually write.

- Controller buttons are read from YOUR pad, not assumed. The old hardcoded "Xbox-style" mapping got SELECT wrong on a real X360 pad (so the AI turbo was unreachable from the gamepad). Now SudoBat reads the exact mapping you already configured in EmulationStation (es_input.cfg, matched by controller GUID). If ES doesn't know your pad — or knows it only partially — a 3-press wizard asks for the buttons at first start, and you can remap anytime from Settings.

How to update / install

Same one-liner for both — re-running it updates:

curl -L https://raw.githubusercontent.com/masimoneext-sketch/SudoBat/master/install.sh | bash

Your data survives updates: outcomes history, catalog and your Groq API key (if you use the optional AI turbo) are all preserved. And from this version onward, SudoBat will notify you of the next release by itself.

Honest notes, as always

- No FPS measuring — your end-of-session judgment IS the quality signal, and that's deliberate

- It still can't switch emulator/core for you (EmulationStation owns that); it tells you when and how

- The community catalog starts empty and grows from validated real sessions — the first field-validated entry landed today

Repo (readable code, 29 selftests, PolyForm Noncommercial): https://github.com/masimoneext-sketch/SudoBat

Feedback and weird hardware reports very welcome — the whole point is that it reads YOUR machine instead of assuming mine.

u/Shocked79 — 2 days ago

I built a tool that diagnoses emulator crashes and auto-tunes per-game graphics settings for your hardware

I've been running Batocera on a small box for a while and got tired of the same loop: a game crashes or stutters, I go dig through logs, tweak batocera.conf by hand, test, repeat. So I built a tool to do that part for me and figured someone else here might find it useful.

What it does:

- Detects when a game crashed or ran badly (short session + emulator log signals)

- Reads your actual hardware and es_features to figure out sane graphics settings for THAT game on THAT box — no hand-made presets

- Writes only to batocera.conf, surgically, line by line, with timestamped backups and a one-click restore from the UI (dry-run by default)

- Learns from your feedback: 4 quick flags at the end of a session (smooth / fps ok / stutters in action / glitches) re-rank the suggestions over time

It never swaps your cores or emulators behind your back — the escalation is just lighter settings first, and it tells you what it's doing.

There's an optional Groq turbo mode for unknown crashes (off by default, your own API key), and an opt-in community knowledge base: if a setting works for you, you can share it so others with the same game+hardware get a validated starting point. Opt-in, one tap, nothing leaves your box unless you say so.

Install (Batocera, one line):

curl -L https://raw.githubusercontent.com/masimoneext-sketch/SudoBat/master/install.sh | bash

Repo + docs: https://github.com/masimoneext-sketch/SudoBat

It's free for personal use. It's a hobby project, so it's early — I'd genuinely like feedback, bug reports, and which games/systems you'd want covered next. Tested mostly on an iGPU box so far; curious how it behaves on stronger hardware.

u/Shocked79 — 3 days ago

[Tool] RomsOrganizer — a free tool to clean up duplicate ROMs on Batocera (with backup & restore)

Hey everyone!

I kept ending up with tons of duplicate ROMs in my lists (same game in multiple regions, Game.zip + Game (1).zip, .cue/.bin next to .chd…), so I built a little tool to clean things up — and figured I'd share it with the community.RomsOrganizer is a Python/pygame app that installs into your PORTS menu (same install style as RGSX) and is fully controller-friendly.

What it does:Finds duplicates in 4 ways: same-name files, format variants (.cue/.bin vs .chd), duplicate/orphan gamelist entries, and region/revision (1G1R) duplicates

Automatic mode: resolves thousands of games in one pass (region priority Europe > USA > World), or pick manually game-by-game

Progress bar that shows what it's doing in real time

Tidy-up: clean displayed names, move ROMs to the correct system, fix gamelists

Safety first: it never deletes anything — duplicates are moved to a ROM eliminate folder with a full restore function (single file or everything). Every action shows a dry-run preview before it touches your library.

Install (SSH or terminal):

curl -L https://raw.githubusercontent.com/masimoneext-sketch/RomsOrganizer/main/install.sh | sh

Then Menu → Game settings → Update game list and you'll find it under PORTS.

Repo (free, MIT): https://github.com/masimoneext-sketch/RomsOrganizer

It's brand new, so feedback / bug reports / feature ideas are very welcome. Tested on Batocera 43 (x86_64). Not affiliated with Batocera or RGS — just a fan project.

Credits: background music "Climbers In The Dark" by Nihilore (CC BY 4.0); install approach inspired by RGSX.

reddit.com
u/Shocked79 — 10 days ago