https://gitlab.synchro.net/main/sbbs/-/commit/b7c59b78c62840b5edc2ed23
Added Files:
src/doors/syncretro/GAMES_INI.md
Modified Files:
exec/load/syncretro_lobby.js src/doors/syncretro/.gitignore main.c probe_core.c syncretro_games.c test_binds.c test_games.c
Log Message:
syncretro: fix games.ini review findings, track GAMES_INI.md
Applies the final code review of the games.ini feature.
- Track GAMES_INI.md (was never git-added, though four shipped files
already cite it) and correct it: mark the feature implemented, amend
sec 7 so a missing/mistyped/unmeasured cabinet stays non-fatal but
is now reported (the old "no log noise" wording conflated "don't
fail" with "don't speak"), and document the stick2 asymmetry as a
known, deliberate limitation (button.* absent means unmeasured;
stick2 absent means one stick).
- syncretro_games.c: fix the button.* validator, which used
strncmp()/strcmp() while every xpdev ini lookup matches keys
case-insensitively (stricmp() in ini_file.c) -- a lower-case
"button.y" was honoured by the reader and flagged as invalid by the
validator in the same breath. Switch to strnicmp()/stricmp().
test_games.c gains a case proving this and failing against the old
comparison.
- sr_games_load() now reports which of three states it found (a
loaded section, no section, or no file) in one stderr line, so a
missing file, a typo'd section name, and a genuinely unmeasured
cabinet are no longer indistinguishable from each other or from
success.
- syncretro_lobby.js warns once if a dead names.json is still present
next to games.ini, since only a sysop's hand-added titles silently
vanish when it stops being read.
- probe_core.c: -hold no longer sits behind the -coin guard, so it
works standalone -- previously the only tool for measuring a
games.ini entry silently did nothing without -coin.
- Smaller fixes: syncretro_games.c's path buffer is PATH_MAX instead
of a silently-truncating 512; main.c's stale sr_games_load() comment
clause is trimmed; the syncretro .gitignore covers build-test/ and
build-probe/; two untracked *.pre-syncarcade.bak files are removed;
test_binds.c pins that every arcade button row's solo spelling
agrees with the key that actually reaches it.
Co-Authored-By: Claude Opus 4.8 (1M context) <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net