Seventh release of the RustyNES-parity roadmap: RetroAchievements never loaded a game.
Fixed
- RetroAchievements never actually loaded a game. No code path ever called
RaClient::begin_load_game— login worked,CheevosState::do_frameran every
emulated frame, andAchievementTriggeredevents were wired all the way to
status-bar toasts, but with no game ever identified/loaded intorc_client,
there was no achievement set to evaluate memory against, so achievements
could never actually trigger.CheevosState::load_game/unload_gamenow
wrap the missing calls, invoked fromapp.rs'sMenuAction::OpenRom/
CloseRomhandlers (a no-op unless a user is logged in); apoll()-drained
toast surfaces success/failure so the fix is observably verifiable, not just
type-checked. This is the actual prerequisite bug blocking hardcore mode,
leaderboards, and rich presence from meaning anything — found while scoping
those features for this release.
Deferred (honestly scoped, not silently dropped)
- Splitting a new
rustysnes-rasession/UI crate out offrontend/src/cheevos.rs's
informal state, hardcore mode gating rewind/save-load/cheats/TAS, and
leaderboard/rich-presence UI are all real, substantial features that were
meaningless without the game-load fix above landing first. Pushed to a
later, explicitly-scoped release. Seeto-dos/VERSION-PLAN.md'sv1.11.0
section. - A ROM loaded via the CLI at startup, followed by a later login through the
Tools window, is not retroactively announced torc_client— the common
path (launch, log in, then open a ROM via the File menu) is unaffected. See
cheevos.rs's module doc.