Repository navigation
Snoopy & The Great Mystery Club — PPSA28795 #7382
JJenkx
started this conversation in
Game bring-up
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Existing thread
Title
Snoopy & The Great Mystery Club (PPSA28795)
Content version tested
01.000.002.
AnyPS5 commit
Latest tested main:
4566cc3377cf7f237f726061b8f8c87ffa43e2b6, with these changes applied in order:47dc793420.a936c3563d.82fb24ab9d.d792b168ec.29b29c8e90.Tested integration head:
29b29c8e905b00271b8a79e30b8774fe0bb1c2e4. Other authors retain their authorship. Full runtime libraries built; shader memory, SRT read patching, write-tracking, repeated-neighbour-store and 2/4/8-sample DCC clear tests passed (7/7, no skips); conventions passed. The register-clear change has no upstream PR yet; all 20 owned slots are occupied. Older integrations and the optional page-history candidate are retained below as historical comparisons.System tested
Arch Linux, AMD Ryzen 9 7950X, AMD Radeon RX 6650 XT (RADV NAVI23), Mesa/vulkan-radeon 26.2.4-1, GCC 16.2.1, Release build.
Furthest point
Backyard movement and first object collection verified: the Supper Dish displayed an “Evidence collected” panel, followed by the inventory tutorial. The backyard-search objective remains incomplete. Sustained gameplay, audio correctness and acceptable performance are not yet verified.
Latest result — pipelined draws and cache investigation, 2026-10-18
The integration above also completes the movement, Supper Dish collection and inventory-tutorial sequence with
APS5_PIPELINED_DRAWS=1. A 432.45-second diagnostic run collected the dish by the 380-second screenshot and reached the inventory tutorial by 410 seconds. Ordinary close returned exit 0; PID gone and the udmabuf limit restored to 64 MiB were verified. This repeats the interactive milestone with pipelined draws; it does not establish completion of the backyard objective, correct audio or persistence of the newly collected item.A separate runtime cache-capacity experiment used the same integration, machine, input schedule and visually checked idle saved-game backyard scene, pipelined draws enabled, diagnostic profiling disabled, and official timing window
APS5_TRACE_SECONDS=195:20:The first pair's improvement did not reproduce when order was reversed. These measurements do not justify changing the default cache capacity. They compare runtime settings on a five-patch integration, not unmodified main against a proposed source change. CPU event buffers overflowed in the captures; aggregate phase totals remained complete. All four runs closed normally, with exit 0, PIDs gone and the kernel setting restored. Pinned official summaries and experiment limitations.
Earlier interactive result — 2026-10-18, main
3de84fa10698On the earlier integration
6a81142b3d44d9446048e873016c4dae82a44ad1based on main3de84fa10698aef4ff43d6bd821d15698f9c8db0, a completed 488.86-second native run loaded an existing Chapter 0 save, reached the backyard, moved right and left, dismissed the interaction tutorial, and collected the highlighted food bowl with Cross at 451.95 seconds. The 460-second screenshot shows “Evidence collected — Supper Dish”; the 480-second screenshot shows the inventory tutorial. The game closed ordinarily at 486.86 seconds and exited 0; its PID was gone and the udmabuf limit restored to 64 MiB. A separate recorded 1.6-second left/down stick adjustment brought Snoopy into interaction range. This is a saved-game run, not a fresh-New-Game timing comparison. Gameplay remained slow; no matched performance or audio claim is made.Real save payloads now exist at
_sd/Peanuts/global.jsonand_sd/Peanuts/local/local1.json, in addition to the four-byte allocation file. The existing save loaded successfully in this run. A local backup was taken after clean shutdown, but its inventory is still empty: the new dish collection has not been saved, and restoration of that backup has not been tested.Earlier results
With the page-history candidate and the four bring-up changes above, a first New Game replay displayed Snoopy and Woodstock in the yard with readable dialogue at 150 seconds, passed the previous resident-DCC refusal, and exited normally after an ordinary window close at 285 seconds (exit 0, 287.79 seconds total).
A second replay advanced the opening conversation with Cross input and reached the movement tutorial by 290 seconds. It also closed normally (exit 0, 348.50 seconds total). The directional pulse landed while the tutorial was open; this is not evidence of free movement. Both native PIDs were gone afterwards, and the udmabuf limit was restored to its previous 64 MiB value.
Failure-only diagnostics of the earlier refusal found that the DCC range was rejected because an evicted driver-store generation covered its shared 64 KiB tracking block conservatively. CPU stamps were not the reported cause, and no retained overlapping driver interval was reported. This identifies a tracking-history limitation; unchanged metadata values alone would not prove that no writes occurred.
The candidate records a generation per 4 KiB page when an exact interval is evicted. Queries on other pages no longer inherit that uncertainty. Evicted overlapping writes, uncertainty within the same page, CPU writes, missing history and unknown tracking remain conservative; page evidence cannot establish complete byte coverage. The write-tracking regression passes, while replacing only the production tracker with main makes the new assertion fail. Conventions checks pass. This costs 64 additional bytes per allocated driver-history block and is not a performance claim.
Related #6868 retains contained/repeated intervals before eviction; #7233 separates possible and exact write coverage; #7371 depends on #7233. Those changes overlap the tracker but do not implement this page-bounded eviction fallback. A completed native comparison replaced the page-history candidate entirely with #6868 (
aa8f734907686de67c0f16924e84ef5b4762f606), retaining the other four bring-up changes. Integration heada00c3338d116117a4efbcc8270e2ba1c524d6365reached the backyard objective; the 345-second screenshot is before movement, rightward left-stick input at 351.15 seconds moved Snoopy toward the house by 360 seconds, and leftward input at 375.88 seconds returned across the yard and triggered the interaction tutorial by 385 seconds. The run closed ordinarily at 406.80 seconds and exited 0 (408.81 seconds total); PID gone and udmabuf limit restored to 64 MiB were verified. Focused write-tracking and repeated-neighbour-store tests also passed (2/2). This supports using the existing #6868 for this bring-up rather than requiring the page-history candidate. The latter addresses distinct-history overflow and remains a separate follow-up, not a required Snoopy dependency. No matched performance comparison was performed.What is shown
All 1628 title asset files were checked against the package manifest for presence and size before the current-main comparisons. On unmodified main, startup aborts in the title's SDK allocator. Adding #6610 passes that point and reaches graphics initialization, where uniform DCC key
0x20is rejected. The register-clear fix passes that import and then exposes an unsupported write to resident multisampled metadata. With #6543 and #7250 also applied, startup renders the publisher logo, loading screen, title screen and main menu.A 138.81-second startup run and a separate 167.39-second input run both exited normally after an ordinary window-close request (exit 0); the native PIDs were gone and the previous kernel setting was restored. The second Cross pulse in the input run advanced the title prompt to a readable main menu with New Game selected. The first pulse alone had not advanced it; no claim is made about the reason.
These are functional bring-up observations, not a performance comparison. Audio correctness has not been evaluated. Vulkan validation was not enabled for these native runs.
Earlier blocker and focused checks
No crash was observed during the two title/menu checks described above. A separate new-game run with the same integration used Cross pulses at 60 and 100 seconds and displayed a rendered house-and-yard loading screen at 120 seconds. It then aborted at 131.09 seconds (exit 134) with:
The native process was gone and the kernel setting restored after that failure. This was the observed blocker before the page-history candidate. #7250 alone covered the tested title/menu path but did not cover this later transition. The latest result above supersedes this stopping point; free movement remains unconfirmed.
On main plus #6610, the earlier failure was:
A diagnostic snapshot found uniform DCC
0x20and CMASK0xcc. The new implementation uses the existing exact clear-register conversion; unknown metadata, unsupported formats and other unmodeled paths still throw.The own DCC change passed the 2x, 4x and 8x GPU regression tests on RADV (3 passed, zero skips). Removing only its production line makes the new 2x case fail at the original exception. Lavapipe passed 4x and 8x; 2x was unsupported and skipped. The combined integration passed those three RADV tests plus
agc_driver_clamped_global_fill(4 passed, zero skips). The allocator integration passed all 10application_heap_*checks.How it was run
Build
libsandrelinkerat the pinned source. Relink the executable and the title-shipped SDK/Unity modules against the library directory; keep the title assets accessible fromapp0. The title's SDK wrappers and Unity modules are loaded from its converted guest modules.From the runtime directory:
The test temporarily used an 8192 MiB udmabuf size limit and restored the previous 64 MiB limit after each run. Controller input was issued through
APS5_PAD_INPUT_FILE; the test did not require foreground window focus. No core dumps were retained. Full logs and screenshots are preserved locally.AI-assisted implementation, testing and report preparation: yes.
All reactions