Skip to content

Port the verified Archolos branch onto a pinned current upstream revision #13

Open

Description

@Lu2cz

Parent

#1

Evidence and scope

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.

Activity

  1. added
    maintenanceRepository, dependencies and repeatable validation
    priority:normalUseful gameplay work after current blockers
    needs-triageReview evidence and scope before implementation
    on Sep 11, 2026
  2. Lu2cz commented on Sep 26, 2026

    @Lu2cz
    OwnerAuthor

    This was generated by AI during triage.

    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

    1. 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.
    2. 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.
    3. 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

    Watch rather than import now

    • 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    maintenanceRepository, dependencies and repeatable validationneeds-triageReview evidence and scope before implementationpriority:normalUseful gameplay work after current blockers

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions