Skip to content

Terraria: pin wine to its directory and heap fixes; drop a dead process's directory listings - #475

Open
insertfloppy wants to merge 5 commits into
willfaust:mainfrom
insertfloppy:upstream/terraria
Open

insertfloppy wants to merge 5 commits into
willfaust:mainfrom
insertfloppy:upstream/terraria

Conversation

@insertfloppy

Copy link
Copy Markdown
Contributor

Requested by Cameron · project thread

The Madeira half of the willfaust/wine pull request "ntdll iOS: Terraria runs" (insertfloppy/wine, branch madeira/terraria-dir-and-heap), which gets Terraria (105600)
running on iPhone. Merge after that PR. If you'd rather pin wine in your
next wave, only the server_ios.c change is needed from here.

Changes

  • wine: pinned to the wine PR's head (three commits on madeira-lgpl
    df1c5ea5, the current pin): directories read by path instead of through
    the shared cwd, a directory cache per process, and executable heap blocks
    flushed from the translator.
  • build/ntdll-unix/server_ios.c: server_init_process_done calls
    madeira_dir_cache_flush_pid() next to madeira_fast_flush_pid(). The
    server reissues dead processes' ids, so a new process drops the directory
    listings a dead one with its id left behind.

Testing

Confirmed on device (iPhone, sideloaded build 34): Terraria loads its
assets, makes a character, builds a world and plays. That build had the
same changes on the previous wine pin (9129e968). This branch is rebased
onto main e96065a; it is not compiled or device-tested on that base yet.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LiLQakAySboBR7FkqkJFKS

insertfloppy and others added 5 commits October 28, 2026 11:55
…Terraria fixes

Pins wine to three Terraria fixes on top of madeira-lgpl (sent to
willfaust/wine as their own pull request):

- ntdll iOS: read directories by path, not through the shared cwd
- ntdll iOS: a directory cache per process, not one shared by all
- ntdll: flush blocks handed out by an executable heap from the translator

The second keeps the client half of the directory cache per process id.
The server reissues the ids of dead processes, so server_init_process_done
now calls madeira_dir_cache_flush_pid() next to the fastsync cache's
flush, and a new process drops what a dead one with its id left behind.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LiLQakAySboBR7FkqkJFKS
Signed-off-by: ft7t8drgwf-wq <337626868+ft7t8drgwf-wq@users.noreply.github.com>
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