isledecomp / isle

A work-in-progress decompilation of LEGO Island (1997)
1.79k stars 89 forks source link

Brute force string search for BETA10 #1097

Closed disinvite closed 3 months ago

disinvite commented 3 months ago

String constants in release builds are de-duplicated (meaning: the string appears once in the binary even if it's used in multiple places). Because the strings are a unique item in the binary, they also get a symbol. For example: "Helicopter" is in the PDB under the symbol: ??_C@_0L@OPFI@Helicopter?$AA@ (Reference)

Debug builds (i.e. BETA10) don't de-dupe the strings, which means that only one occurrence of the string gets assigned a symbol, with the majority left unidentified. We could solve this with annotation coverage (// STRING) or just scan each binary to find them. This PR adds that brute force search and some code to weed out junk data.

This should cover all of the assert strings so they will now stand out in the diff.