Skip to content

Add LOLLIPOP CHAINSAW RePOP 1.21.1 support - #684

Open
thehobbit85 wants to merge 11 commits into
seedds:mainfrom
thehobbit85:codex/lollipop-chainsaw-repop
Open

thehobbit85 wants to merge 11 commits into
seedds:mainfrom
thehobbit85:codex/lollipop-chainsaw-repop

Conversation

@thehobbit85

@thehobbit85 thehobbit85 commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Add LOLLIPOP CHAINSAW RePOP 1.21.1 (0100DD301A686000, v1245184) and verified Maxwell 32-bit global ATOM.CAS translation. Main still lacks the profile and global CAS implementation. Signed displacements, predication and the returned old value are preserved; unsupported forms fail explicitly.

Current head 0cb39d7b2b71d1a533aee6e2bcd000f7449e838b. python3 -m unittest dm.tools.tests.test_docs dm.tools.tests.test_nsp_chain dm.tools.tests.test_profile_guess passed on this revision (45 tests). The feature sources, tests and documentation match the previously validated revision 0a2c24babd82 byte for byte.

This PR incorporates pinned main 6136418bcd564f086cf57cb0a59e8f997d36445e. Exact-head merge simulation confirmed conflicts before rebase. The combined publication contains upstream Pokopia's Ampere changes and this PR's CAS implementation. Five rebuilt managed/PDB files match fresh publish output; the universal launcher and runtime/dependency metadata remain unchanged. Generated chain: 26829bb0be3f; embedded source digest: bff706efc1b71e0e. Compiler pins are preserved.

Main supplies the logic-generator type repair. The combined branch retains the RePOP profile, CAS translation and HMMA regression coverage.

Earlier integration validation on 0a2c24babd82

  • 119 focused tests passed, no skips, with the rebuilt checked-in translator and DMSH_TEST_GPU=1 DMSH_TEST_METAL=1 DMSH_TEST_METAL_SDKS=macosx,iphoneos: docs, chain, profile guessing, CAS, toolchain cache, Pokopia/Ampere memory, HMMA, logic and control flow. This includes all 11 CAS GPU cases.
  • Eight additional committed Pokopia fixture outputs passed Mac/iOS compilation and linking (16 metallibs), using a private wrapper and normal compile conventions: half add/multiply, signed immediates, HFMA2 rotated lanes, F2FP merge, half conversion, UP2UR and shared histogram increment.
  • make -C dm/host GAME=0100DD301A686000 -j2 and the full native host test run passed, including UE virtual-span alignment/realloc and filesystem cases.
  • make -C dm/gfx/tests GAME=0100DD301A686000 -j2 run passed every executed case. Six optional Wonder reflection-sample checks were skipped because their game-derived inputs are absent. Existing local-SDK build warnings remain.
  • Python lint against the pin passed: 391 baseline findings, zero new or stale.
  • LLVM 23.1.4 focused CAS fixture lint passed, zero direct fixture findings and no new file/check pairs; included-header findings remain within the unchanged baseline. Compile database: 218 sources.
  • Range-diff, ancestry, whitespace, source/publication identity, generated gallery/header and documentation placement passed. No agent plans or execution journals are in the diff.

Impact and limitations

RePOP directly exercises three CAS shaders. Scarlet (0100A3D008C5C000) and Tears of the Kingdom (0100F2C0115B6000) have recorded buffer-atomic use; Fortune's Weave (04007EF01F8AE000) covers Ampere translation; Z-A (0100F43008C44000) supplies a separate NVN cache. The five-title regress.py check --no-smoke attempt exited 2 at discovery: the first four builds were absent, with only Z-A installed. No five-title comparison ran; other games remain unchecked.

The strict tool check stops on local Metal 32023.921 versus pinned 32023.922 for both SDKs; translator, source and SPIRV-Cross fingerprints match. Synthetic compilation does not validate supported-toolchain game libraries. No lock override, RePOP launch, extraction rebuild, per-game shader rebuild or device run occurred. The user's manual confirmation and stop on automated RePOP gameplay remain in force. validated.tsv still applies only to its historical chain. Native arm64 execution and the universal apphost signature were checked; no fresh x86_64 managed run is claimed.

Long sessions, later stages/checkpoints, audio listening and iOS device behavior remain open. Upstream canonical developer/archive-key docs and archive implementation remain unchanged; this integration adds no archive-key behavior. Detailed validation stays here; durable findings and references remain in the game note.

Earlier PR evidence and limitations, historical revisions only

Add LOLLIPOP CHAINSAW RePOP 1.21.1 (0100DD301A686000, v1245184) with its profile, shader inventory, prewarm seed and Mac gallery entry. The shared Maxwell translator now implements verified 32-bit global ATOM.CAS, including signed displacement, predication and the old-value result; unsupported forms fail explicitly. Main still lacks this profile and compare-and-swap implementation. Upstream allocator/region discovery replaces the obsolete fixed cuts and game argument.

Revision b2e73e865290d13eec73bf9ede35df6871c006e3 includes main b1dee89c2114b89154a659b5af231fa98c1c6a1f. Main adds Skyward Sword HD and normalized-target logic shaders. It still lacks the RePOP profile and Maxwell global CAS support.

Regenerated the gallery from the combined table. Both RePOP and Skyward Sword HD appear once. The RePOP profile, Maxwell CAS translator sources, binaries and lock match the previous PR revision. Regenerating the header from the combined sources produces caf4c6e250eb.

Local validation on the M2 Max. python3 -m unittest dm.tools.tests.test_docs dm.tools.tests.test_nsp_chain dm.tools.tests.test_profile_guess dm.tools.tests.test_global_atomic_cas dm.gfx.tests.test_dmsh_logic dm.gfx.tests.test_dmsh_control_flow dm.gfx.tests.test_dmsh_ampere_mem passed 76 tests with the PR translator, synthetic GPU cases and Metal compilation for macOS and iOS enabled. The host built. The full native graphics command passed its executed cases, including the normalized-target logic replay. The compiler was Metal 32023.921; the supported lock remains 32023.922.

6 optional Wonder reflection samples were unavailable. No fresh RePOP gameplay, game-library rebuild, or device run was performed.

Pinned Python lint failed on this revision and exact main with the same new Pyright finding in dm/gfx/tools/dmsh_logic.py:83. The file is identical on both revisions. Pyright infers a possible list where the replacement callback concatenates a string. No lint baseline or assertion was changed.

scripts/regress.py check --no-smoke --games 01002DA013484000,0100000000010000,010015100B514000,04007EF01F8AE000,0100F43008C44000 exited 2 at discovery. Skyward Sword directly exercises normalized-target logic operations. Odyssey and Wonder provide other NVN material and shader paths, Fortune’s Weave exercises the Ampere translator, and Z-A covers a separate NVN cache. Only Z-A was installed, so no five-title comparison ran.

GitHub checks for this revision

Earlier integration tests on 45171708025f. DMSH_TEST_XLATE="$PWD/dm/gfx/tools/dmsh_xlate_bin/dmsh_xlate" DMSH_TEST_METAL=1 DMSH_TEST_GPU=1 DMSH_TEST_METAL_SDKS=macosx,iphoneos DM_GAME=0100DD301A686000 python3 -m unittest dm.tools.tests.test_docs dm.tools.tests.test_nsp_chain dm.tools.tests.test_shader_toolchain_cache dm.tools.tests.test_global_atomic_cas dm.gfx.tests.test_dmsh_pairs dm.gfx.tests.test_unity_compute dm.gfx.tests.test_unity_known_trees. All 62 tests passed. The native host built for GAME=0100DD301A686000. Eight native graphics targets passed, exercising finalized memory pools, empty vertex streams, draw hazards, readbacks, image aliases, initial contents, texture views and direct uploads. The CAS tests exercised the synthetic Mac GPU path and compiled for Mac and iOS with the installed Metal 32023.921 compiler. The lock remains at 32023.922. Pinned Python lint passed with zero new or stale findings.

Earlier local validation on eec4ad9e2710. DMSH_TEST_XLATE="$PWD/dm/gfx/tools/dmsh_xlate_bin/dmsh_xlate" DMSH_TEST_GPU=1 DMSH_TEST_METAL=1 DMSH_TEST_METAL_SDKS=macosx,iphoneos python3 -m unittest dm.tools.tests.test_docs dm.tools.tests.test_nsp_chain dm.tools.tests.test_global_atomic_cas dm.gfx.tests.test_dmsh_control_flow dm.gfx.tests.test_dmsh_ampere_mem dm.gfx.tests.test_dmsh_first_store. All 41 tests passed. make -C dm/host GAME=0100DD301A686000 built the host. make -C dm/gfx/tests GAME=0100DD301A686000 -j4 run passed every executed fixture. Six optional Wonder reflection samples were unavailable. The 41 focused tests used the combined translator, enabled Mac GPU execution and compiled the synthetic shaders for Mac and iOS. They include 11 CAS GPU cases, signed addressing, unsupported forms, Ampere memory, control flow and compute first-store behavior. The installed Metal compiler is 32023.921. The supported lock remains 32023.922.

Historical validation and limits:

  • The user manually confirmed Mac gameplay on 2026-10-31. No route, timing or memory measurements accompany that confirmation, and the user requested no further automated RePOP gameplay.
  • Earlier instrumented M2 Max/macOS 26.6/Xcode 27.0 testing on chain d54f11c2255c and the former 4064 MiB region covered the startup movie, menus, prologue gates, movement/camera, first combat and parking-lot transition. The 95-second route reached 5,388 frames at 59.6 fps, p99 18.03 ms, with no new red-line or shader/interface failures; typical p50 was 16.7 ms, resident memory 4.0–4.2 GiB and Metal allocations 2.6–2.8 GiB. This was functional coverage, not a controlled performance benchmark. Save creation/relaunch worked, and direct audio produced PCM without reported callback underruns; later-checkpoint persistence and listening quality remain unverified.
  • That chain compiled all 9,828 base shaders for Mac and iOS, including 166 shadow-input, 7,064 alpha-test and 868 pulling variants. The unsigned 6.81 GiB IPA passed ZIP CRC verification and was not installed on a device. A fresh launch loaded 1,066 prewarm entries in about 1.2 s. These results predate the current allocator and automatic region sizing and do not validate those migrations at runtime.
  • Later reviewed synthetic CAS checks covered 11 GPU cases, Mac/iOS compilation, unsupported-form rejection and production-IR signed carry/borrow/address behavior. The earlier full native graphics campaign passed every executed case, including six shader-map/prewarm assertions; six optional Wonder reflection samples were skipped. Those figures apply to the earlier chain.
  • Allocator and region-finder checks on the untouched 1.21.1 module found constructor 0xae550, call 0x137f0, vtable 0x63b10b8, getter slot 26 and region gate at 0x137cc; rewrite/fixups and focused native sizing tests passed at their recorded earlier revisions. The historical gameplay used a smaller fixed region and does not prove the current automatic region behavior.

Game impact: RePOP directly exercises the three CAS shaders; the signed-address helper affects translated global accesses generally. Earlier broad host/graphics checks and the limited game comparisons retain their original revision scope. Full RePOP game-library rebuilds on the supported toolchain remain unverified. This run exercised the rebuilt translator on synthetic inputs with Xcode 27.0 and Metal 32023.921. The game-library lock calls for Metal 32023.922. LLVM 23 lint runs in CI. Long sessions, later stages/saves, audio listening and iOS device behavior remain open. validated.tsv applies only to its recorded historical chain. Synthetic checks are not gameplay.

Historical Python lint repair

The type error in the logic-op shader generator also reproduced on main at b1dee89c. That earlier integration carried the fix from #1019 with its own regenerated shader-chain header, 7ea4a5fe7d7a. The only files changed by 7cfccff5 are the generator and its header. The RePOP translator, lockfile, and profile are unchanged. The synthetic translator suite exercised the macOS and iOS SDKs.

On an M2 Max, Python lint passed with zero new or stale findings. All 76 focused tests passed, the Mac host built, and the native GPU logic-operation fixture passed 929 checks. The generated gallery also passed its consistency check. Per-game shader rebuilds require the pinned Metal compiler. The shared PR records the shader-output comparison, selected games, and local validation limits.

@thehobbit85
thehobbit85 force-pushed the codex/lollipop-chainsaw-repop branch 7 times, most recently from cfa046c to b2e73e8 Compare November 3, 2026 00:44
seedds added 11 commits November 2, 2026 18:40
ATOM.CAS silently omitted a feedback hash insertion. Emit the verified 32-bit atomic, preserve the old value and predication, and sign-extend global address displacements before adding carry. Reject unverified forms and publish the updated translator chain.

Verified 11 Mac GPU cases, both Metal SDKs and signed-address IR fixtures. All RePOP and Z-A shaders build; only the three expected RePOP shaders change. Mac smoke and combat pass, and the unsigned iOS IPA passes archive verification.
The upstream SDK matching rules reproduce all three patched module images byte for byte. Record the full Mac comparison on the rebased hosts and the rebuilt IPA size; archive CRCs, version, shader stamp and arm64 architecture pass verification.
@thehobbit85
thehobbit85 force-pushed the codex/lollipop-chainsaw-repop branch 2 times, most recently from 0a2c24b to 0cb39d7 Compare November 3, 2026 03:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants