2
<p>I&#39;ll have to write some code to find all the CALL 2000:xxxxs and set up matching thunks</p>
<p>well, if nothing else, I think this has caused it to stop thinking there&#39;s jumps into the middle of functions. <br />so now I can just manually thunk every cross-segment call, by creating the 2000:0000 segment that ghidra is imagining exists</p>
<p>9000:8006 9a d7 05 b7 1f CALLF SUB_2000_0147<br /> </p><p>Hey ghidra I can read the machine code. That&#39;s CALL FAR 1fb7:05d7, not CALL FAR 2000:0147! WHY ARE YOU CONFUSED BY THIS?</p>
<p>I guess I could test it anyway. Move it to 9000:8000 and see what breaks. (like everything)</p>
<p>so the first one is at 1000:0000 and the second was at 1fb7:0009. I moved it to 5000:7000, and the second segment seems to be working fine now.</p><p>the problem is that I was only able to do that because the segment is only 82a7h long. the first segment, the 1000:0000 one, is FB79 long. So I can&#39;t just move it so it&#39;s in the middle of a segment, since it&#39;ll end up spanning into the next 64k chunk, which is where ghidra fucks up</p>
<p>so the program has three main code segments, as it has approximately 111kb of code <br />The problem is that ghidra gets confused when the relative addresses are too big.</p>
<p><span class="h-card" translate="no"><a href="https://mastodon.social/@samth" class="u-url mention">@<span>samth</span></a></span> <span class="h-card" translate="no"><a href="https://mastodon.social/@sayrer" class="u-url mention">@<span>sayrer</span></a></span> i feel like before this work (and the LBO paper that it builds on), the narrative was that &quot;pauseless&quot; collectors were a net improvement over those with a pause phase; bad end-to-end latency results for pauseless collectors were really an eye-opener for me</p>
<p>Portal 2 gets a compatibility update for Linux <a href="https://www.gamingonlinux.com/2025/02/portal-2-gets-a-compatibility-update-for-linux/" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://www.</span><span class="ellipsis">gamingonlinux.com/2025/02/port</span><span class="invisible">al-2-gets-a-compatibility-update-for-linux/</span></a></p><p><a href="https://mastodon.social/tags/Portal2" class="mention hashtag" rel="tag">#<span>Portal2</span></a> <a href="https://mastodon.social/tags/Steam" class="mention hashtag" rel="tag">#<span>Steam</span></a> <a href="https://mastodon.social/tags/Gaming" class="mention hashtag" rel="tag">#<span>Gaming</span></a> <a href="https://mastodon.social/tags/Linux" class="mention hashtag" rel="tag">#<span>Linux</span></a> <a href="https://mastodon.social/tags/LinuxGaming" class="mention hashtag" rel="tag">#<span>LinuxGaming</span></a> <a href="https://mastodon.social/tags/Valve" class="mention hashtag" rel="tag">#<span>Valve</span></a></p>
<p><span class="h-card" translate="no"><a href="https://mastodon.social/@samth" class="u-url mention">@<span>samth</span></a></span> <span class="h-card" translate="no"><a href="https://mastodon.social/@sayrer" class="u-url mention">@<span>sayrer</span></a></span> i agree with sam though that there must be places in which shenandoah and zgc are interesting, and it would be good if it were better known exactly what part of the configuration+workload space this is.</p>