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
This release is about knowing what needs your attention and finding things faster: a notification bell, a reorganised layout, and a new check of the installed games. It also brings a richer Activity screen and a fuller change history.
🔔 Notification bell:
One place for what needs the parent, such as a weak PIN, PlayGuard left open without one, backups, SD-card space, an out-of-date recovery sysmodule or a newer Atmosphère, hekate or firmware. Y opens it, you can ignore a warning or mark everything read, and badges on tabs and rows lead to what to fix. The recovery sysmodule updates from the bell.
🧭 New layout:
Console, History and PIN tabs replace Tools and Network clock. Each setting sits next to the feature it shapes, and Advanced has a screen of its own. The header shows the version, and the language and theme change with a tap or −.
📊 Activity:
All games has its own screen, as covers or a list. The screen opens on the last account shown or on a default one. Long play times read in whole hours, and the all-time average is shown over months or years.
🔍 Check the installed games:
Finds games with broken data, explains the cause and the fix, and repairs them. It remembers its results, keeps a To check section, and
Important
Summary written automatically.
📜 What changed
Every change in 1.2.0 (69 changes)
🚀 Features
about: PlayGuard's release notes on the same screen as Atmosphère's and hekate's (#211) (6a368b4)
about: the release notes on the Version row, Ⓐ and a chevron, not a row of their own (#220) (98ca7da)
about: the release notes on their own screen, laid out as in "What's new" (#217) (be36404)
activity: a grey controller on a game's cover until its icon arrives (#214) (ae4628c)
activity: All games on a screen of its own, as covers or a list (#201) (1c7a4c8)
activity: drop the games to rediscover (#209) (6d03162)
activity: play time over 100 h in whole hours, the all-time average over months or years (#195) (69591f3)
activity: start on the account shown last, or on a default one (#198) (5f88b3b)
compat: firmware 23.0.1 verified on a console (#167) (a3f8802)
console: the Console tab's notes icons on their rows, their text a press away (#216) (3b98efb)
dev-builds: a clearer build page, GitHub's Markdown, text from GitHub made safe (#149) (0f325f3)
dev-builds: a page per build, a loading bar, Find a build, resumed downloads (#147) (44239ec)
dev-builds: each build on two lines with tags, Y to search (#150) (4f7d8bf)
dev-builds: go back to the previous build, even when the new one crashes (#148) (a116ddf)
dev-builds: the first tab lists the repository's releases, not just the latest (#145) (e7eacd3)
games: the data check remembered, a To check section, games picked for one action (#166) (ea59309)
games: the Reinstall actions as buttons above the list, and the list sent to a gist (#163) (a04395b)
games: Tools › Check the installed games: the cause, the fix and the repairs (#69) (bb35936)
header: the language and the theme in the main screen's header, a tap or − to change them (#189) (4964e7a)
header: the version in a tag next to the title, the bell, language and theme at the right (#221) (7b4f601)
history: refused changes, the countdown, day groups, a filter and an export (#159) (fd00eef)
logs: a log file per run, PlayGuard's own CPU crashes with their backtrace, a fuller report (#157) (cdbe871)
notices: a notification bell gathers what needs the parent, Y opens it (#155) (97be4df)
notices: a weak PIN, PlayGuard open without it, backups, SD space, the week, and kinds to turn off (#158) (0338592)
notices: ignore a warning to do from the bell, mark everything read (#188) (fe4a5b2)
notices: the bell counts the parental controls, the Console tab the console, in a fixed order (#179) (ff92739)
notices: the recovery sysmodule out of date, newer Atmosphère, hekate and firmware (#156) (7a386cf)
pin: the PIN entered once holds until PlayGuard closes, asking again after 5 minutes a switch away (#186) (e307f09)
play-timer: the week chart opens the per-day editor, one save for several days (#180) (9b9430a)
rescue: update an out-of-date recovery sysmodule from the notification bell (#164) (88a2c4f)
rollback: the previous build offered only after a start that did not finish, not with L + R (#218) (ea80f11)
tools: release notes of Atmosphère, hekate and the firmware (#165) (ddc8ca8)
ui: a badge on each tab with something to do (#199) (e23c2ef)
ui: a Console tab and a History tab in place of Tools and Network clock (#178) (36c19b5)
ui: an open padlock and a crossed-out pencil by the title, a tap goes where they are undone (#212) (ab8a14e)
ui: each setting next to the feature it shapes, Advanced on a screen of its own (#176) (c7a01bb)
ui: one meaning per word for the locks, a PIN tab, a chevron on lines that open a screen (#170) (6cc0166)
ui: the badge on the row to fix, and the tab opens on it (#202) (a494fd2)
ui: the installed games to check as covers, and All games' chevron (#213) (34b57c8)
🐞 Bug Fixes
app: the findings of the second review of main (#185) (1dee8b6)
console: a Diagnostics header above the network clock and the game check (#197) (a987107)
dev-builds: no error page in a resumed download, requests side by side, a cut install recovered, a digest required (#173) (263e2ae)
diagnostic: the memory PlayGuard allocated, developer mode logged, the free-communication list one ID per line (#222) (26463a1)
games: one scan of the installed games at a time, stopped on exit, and the same names as Activity (#171) (475240b)
i18n: a build without a checksum said to be refused, the public-report notice translated (#181) (c457964)
markdown: runs of <, & and <scripted are read once, not once per character (#154) (b6c7561)
play-timer: extra time comes back by itself the next day, no "Keep" to dismiss it with (#182) (fb1f49d)
play-timer: no PIN, no silent "not applied"; three pctl codes named (#151) (8c271f6)
rescue: the recovery report proven by the sysmodule, and other security fixes (#175) (7fbf87a)
security: "Lock and quit" closes the game PlayGuard runs over (#146) (fc60f5f)
sys-notes: older versions in the tabs left, so an up-to-date console can browse its notes (#196) (e01aed8)
ui: the focus kept on the screen after a dialog whose opener went (#169) (f84c157)
ui: the footer clock on one line, the hints whole on the Switch (#200) (db00d83)
✨ Polish
activity: the games' icons decoded off the UI thread (#210) (47a7895)
ci: shorter smoke-test pauses, cached packages, and the slow screens' timings in the diagnostic report (#206) (9b88467)
ci: the smoke test in balanced shards, faster scrolls to a list's end, and no relayout for an unchanged text (#203) (2353adb)
core: pctl, the recovery sysmodule, the simulator and playstats share what they repeated (#190) (f39766c)
games: the name and icon of each game read from ns' cache first (#168) (f107fae)
i18n: borealis' string lookup without an exception per string in English (#207) (bd93f24)
prefs: Preferences only sets the app up, About holds its updates and help (#187) (f827f98)
startup: the start-up's SD-card looks before the preferences halved, and each one timed (#215) (e9c1f1b)
tests: shared test helpers, default suite flags, markdown::parse in steps (#191) (358a223)
ui: borealis lays out only what changed, and registers a view's XML attributes only when read (#208) (69e2cae)
ui: shared console actions, the game check's rules under test, smaller notices and main() (#193) (97887fb)
ui: the change history and All games laid out once, and ccache caches the size of one build (#205) (a10465e)
ui: the UI thread kept off the SD card: logs in batches, files read in part, config.json first (#172) (ac248cd)
util: shared date, text, UTF-8, emoji and JSON helpers; dead code out; core headers extern "C" (#177) (d1005c4)
util: the remaining copies on the shared helpers; the game check's rules and the Activity export out of their screens (#183) (8d00e08)
util: the remaining hand-written copies on the shared helpers; the GitHub API's URLs and its 401 handled once (#192) (276e5fa)
🛠️ For contributors: tests, docs (5 changes)
🧪 Tests
fuzz: resource checks for binds, layouts, images and config keys, new suites and seven fuzz targets (#174) (7d76ecc)
smoke: the notices' ignored screen taken once the list scrolled from its settled layout (#194) (56503fd)
📚 Documentation
readme: the docs, screenshots and video tour of the current tabs (#184) (8f1cba4)
readme: the release badge read from the release-please manifest, not the GitHub API (#219) (bac4c15)
readme: the screenshots and video tour of 1.2.0 (#204) (0d4da46)
📦 Install
New install: download playguard.zip (2.9 MB) and extract it to the root of the SD card.
The app lands in sd:/switch/playguard/, its files in sd:/config/playguard/.
Already installed? Update from PlayGuard itself (About › Update), sphaira or the Homebrew App Store. The app alone: playguard.nro (7.4 MB).
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
1.2.0 · 2026-10-18
⬇️ Download playguard.zip (2.9 MB) · the app alone (7.4 MB) · how to install
🚀 39 features · 🐞 14 fixes · ✨ 16 polish · 78 commits since v1.1.0
🌟 Highlights
This release is about knowing what needs your attention and finding things faster: a notification bell, a reorganised layout, and a new check of the installed games. It also brings a richer Activity screen and a fuller change history.
🔔 Notification bell:
One place for what needs the parent, such as a weak PIN, PlayGuard left open without one, backups, SD-card space, an out-of-date recovery sysmodule or a newer Atmosphère, hekate or firmware. Y opens it, you can ignore a warning or mark everything read, and badges on tabs and rows lead to what to fix. The recovery sysmodule updates from the bell.
🧭 New layout:
Console, History and PIN tabs replace Tools and Network clock. Each setting sits next to the feature it shapes, and Advanced has a screen of its own. The header shows the version, and the language and theme change with a tap or −.
📊 Activity:
All games has its own screen, as covers or a list. The screen opens on the last account shown or on a default one. Long play times read in whole hours, and the all-time average is shown over months or years.
🔍 Check the installed games:
Finds games with broken data, explains the cause and the fix, and repairs them. It remembers its results, keeps a To check section, and
Important
Summary written automatically.
📜 What changed
Every change in 1.2.0 (69 changes)
🚀 Features
🐞 Bug Fixes
✨ Polish
🛠️ For contributors: tests, docs (5 changes)
🧪 Tests
📚 Documentation
📦 Install
New install: download
playguard.zip(2.9 MB) and extract it to the root of the SD card.The app lands in
sd:/switch/playguard/, its files insd:/config/playguard/.Already installed? Update from PlayGuard itself (About › Update), sphaira or the Homebrew App Store. The app alone:
playguard.nro(7.4 MB).Locked out?
playguard-rescue.zip(72 KB) is the optional recovery sysmodule, for a forgotten PIN.Note
Requires custom firmware (Atmosphère). Checked on firmware 21.0.0 → 23.0.1. Compatibility
🔍 Build
Build report (size, tests, coverage, screenshots, toolchain) ·
SHA256SUMS.txt· provenance:gh attestation verify playguard.nro -R JigSawFr/PlayGuardContributors: @JigSawFr
This discussion was created from the release PlayGuard 1.2.0.
All reactions