Skip to content

Add known Linux Mono builds - #155

Open
ero-qt wants to merge 29 commits into
LiveSplit:masterfrom
ero-qt:linux-builds
Open

Add known Linux Mono builds#155
ero-qt wants to merge 29 commits into
LiveSplit:masterfrom
ero-qt:linux-builds

Conversation

@ero-qt

@ero-qt ero-qt commented Aug 30, 2026

Copy link
Copy Markdown

Depends on #153.
Part of #154.

Adds a table of 13 Linux Mono builds and the offsets measured from each. Attaching to a game that runs one of them now uses those measured offsets instead of guessing from the Unity version.

A build is recognized by its build ID, a value the linker stamps into the binary, different for every build. Unity''s Mono library has one up to 2019.4. Newer ones don''t, so those builds are recognized by UnityPlayer.so''s ID instead. We only fall back to the player''s ID when the Mono library has none at all, never because the lookup missed, so a modified Mono can''t match a normal build''s entry and attach with its offsets.

This fixes Linux games that can''t attach at all today. Version::detect needs to find either a file named libmono.so, or a UnityPlayer.so to read the Unity version out of. Some games have neither: they ship libmonobdwgc-2.0.so and no player library, so detection finds nothing and attaching fails. 2018.4 is one of them. The build lookup runs first, so those games work now.

The measurements also fill in the Linux offset tables, which is what games nobody has measured fall back on. Those tables were shared with Mac, so they''re split in two first and only the Linux copy takes the measurements. Mac keeps the values it had.

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.

1 participant