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
{{ message }}
Repository navigation
Port the verified Archolos branch onto a pinned current upstream revision #13
Current playable branch is based on v0.92. An older read-only trial at 2089182 against upstream 711a69c found item-physics and Tempest conflicts; that assessment predates later music/persistence changes and is not current merge/build proof.
What to deliver
A separate migration branch/check-out with existing production fixes and necessary tests, adapted to a pinned upstream revision. Retain the current playable version and baseline tag until acceptance passes.
Acceptance criteria
Pin source/base/dependency revisions and inventory all carried fixes and diagnostic instrumentation.
Preserve or deliberately replace Tempest and ZenKit fixes; record API changes.
Configure/build and run relevant baseline regressions with private saves.
Review game/compatibility mapping/version and save compatibility explicitly.
Compare controlled performance and validate basic Gothic 2 behavior for shared engine changes.
Install only after verified acceptance; retain rollback binary and record exact installed version.
Blocked by
Published baseline and regenerated relevant checkpoints. Schedule separately from active memory/queue changes; not required merely to create the fork.
Estimate
Re-estimate from the final carried diff; the old two-conflict trial is not a reliable migration estimate.
Read recent September commits, open/recent PR diffs and relevant maintainer discussion. No upstream code or dependencies applied to the playable app during this review. Local baseline inspected at 2d2692f.
Highest-value candidates
Item collision lifetime fix, merged upstream PR #993, commit d83c6db3. Changes stored callback capture from [&] to [owner]. Our game/physics/dynamicworld.cpp still captures the constructor's local owner pointer by reference; the delayed callback can dereference an expired stack reference. Good bounded backport candidate. Exercise dropped-item/weapon impact and combat/death paths; upstream Game crash on death Try/OpenGothic#984/[Gothic I] (maybe [Gothic II]?) item ground collision causing engine crash Try/OpenGothic#994 give reproduction context, not proof that every death crash is this bug.
macOS upload wait, open PR #943, maps directly to our Investigate intermittent macOS loading stall in InstanceStorage::join #31's InstanceStorage::join sampled stack. Our branch still has the busy loop and unpredicated uploader wait. Strong diagnosis lead, not an accepted ready-made cure. Upstream maintainer requested consideration of separate condition variables and questioned root cause. Review notify_one routing if sharing a condition variable between main/uploader waiters; test work submission and shutdown as well as repeated loads. The PR's unrelated Cpu32 empty-string fix should not be duplicated blindly.
Save-loading ZIP metadata/lifecycle, merged #988, commit 794d7971. Our Serialize retains the old per-entry file-stat scan and lacks its reader-end cleanup. Worth controlled load-time/memory measurement and a focused adaptation around our custom compatibility persistence. Do not replace Serialize wholesale or assume a measured speedup before testing.
Useful secondary candidates
f04d28e6, walk/swim/dive bits and sneak toggling, follows closed PR Fix diving controls Try/OpenGothic#989. Our branch still has the older arrangement. Relevant before expanding swimming/diving coverage; requires movement/combat/animation regression tests.
Open #991 adds a custom saves directory. Useful for future packaging/test isolation, but our current separate working directories already solve that. Maintainer prefers broader #992 installation/config/save design first.
Closed/unmerged #987 restores Ikarus bindings on reload. Relevant corroboration of problems we solved, not a replacement for our broader persisted heap/mapping implementation. Upstream explicitly deferred DMA save/load design.
Open #953 mixes regeneration timing and line-of-sight changes for L’Hiver. No demonstrated equivalent Archolos regression yet; investigate only with evidence.
Recent editor work, Vulkan-specific swapchain work, Android/iOS packaging and Windows DirectMusic changes are lower relevance to our native Metal campaign target.
Recommendation: bounded Try#993 adaptation, then #31 investigation informed by Try#943, then measured Try#988 adaptation. Full upstream/dependency migration remains #13, with carried-fix and save-compatibility review. These are recommendations, not newly started implementation tasks.
Activity
Lu2cz commentedon Sep 26, 2026
Upstream review — 26 September 2026
Read recent September commits, open/recent PR diffs and relevant maintainer discussion. No upstream code or dependencies applied to the playable app during this review. Local baseline inspected at 2d2692f.
Highest-value candidates
[&]to[owner]. Ourgame/physics/dynamicworld.cppstill captures the constructor's local owner pointer by reference; the delayed callback can dereference an expired stack reference. Good bounded backport candidate. Exercise dropped-item/weapon impact and combat/death paths; upstream Game crash on death Try/OpenGothic#984/[Gothic I] (maybe [Gothic II]?) item ground collision causing engine crash Try/OpenGothic#994 give reproduction context, not proof that every death crash is this bug.InstanceStorage::joinsampled stack. Our branch still has the busy loop and unpredicated uploader wait. Strong diagnosis lead, not an accepted ready-made cure. Upstream maintainer requested consideration of separate condition variables and questioned root cause. Review notify_one routing if sharing a condition variable between main/uploader waiters; test work submission and shutdown as well as repeated loads. The PR's unrelated Cpu32 empty-string fix should not be duplicated blindly.Useful secondary candidates
Watch rather than import now
Recommendation: bounded Try#993 adaptation, then #31 investigation informed by Try#943, then measured Try#988 adaptation. Full upstream/dependency migration remains #13, with carried-fix and save-compatibility review. These are recommendations, not newly started implementation tasks.