You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(favourites): VCD favourites -- Favourites tab gets its own L3 ISO/VCD view
PS1/.VCD games can now be favourited and launched from the Favourites tab. The
tab gains its own L3 toggle (like every device page) that swaps between disc
favourites and PS1 favourites; favouriting a game while a device is in its VCD
view records a VCD favourite that resolves, renders, and launches as POPSTARTER
independent of the source device's current view.
Format: favourites.bin OFAV bumped v1->v2 with a per-record isVcd byte. v1 files
still load (every record isVcd=0) and the uOPL/wOPL import (no OFAV magic) sets
isVcd=0, so no user loses favourites on upgrade; the first write upgrades in place.
Resolution is by NAME (stored text == .VCD basename), not by a submenu id -- the
source device may be in ISO view (its games array holds discs, not VCDs) yet the
favourite must still surface. favResolve binds a VCD fav only to a loaded device
that provides the new itemLaunchVcd callback; favGetImage/favGetConfig drive the
VCD art (vcdLoadArt) + PS1 config (sbPopulateConfig) off the owner's itemGetPrefix;
favLaunchItem dispatches to itemLaunchVcd. bdm/eth/mmce implement it by refactoring
their existing in-view VCD launch branch into a launch-by-name helper (no behaviour
change to the in-view path; reuses the exact, freeze-tested device code). FAV joins
vcdModeSupported; favUpdateItemList filters by vcdViewActive(FAV_MODE); the menusys
render reorder puts the VCD view ahead of the FAV branch so VCD favourites render
with the PS1 theme family.
The APA HDD (HDD_MODE) is deferred: its __.POPS partition model isn't
name-resolvable here, so it has no itemLaunchVcd and R3 on an HDD VCD item is an
honest no-op rather than storing a permanently-hidden record. The common internal
exFAT HDD is a BDM massN: device and is fully covered.
Adversarially verified (16-agent workflow: GO, 0 blocker / 0 major); the 4
confirmed minors/nits are fixed here -- source-page star re-mark, the HDD dead-end
guard, favGetImage isRelative parity, and an unconditional FAV dirty-flag consume.
REMAINING: HW validation (BDM/MMCE/SMB VCD favourite capture + launch); APA-HDD
VCD favourites as a follow-up.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments