You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The order in which OOVPA's are scanned, greatly influence the correctness of the outcome. With the right order, most of not all functions are located correctly, resulting in correctly placed patches, resulting in better emulation than when the order is wrong. When the order is wrong, functions are located incorrectly, leading to incorrectly placed patches, leading to crashes and otherwise incorrect emulation.
Currently, there's an effort underway to order the OOVPA's in code alphabetically, giving a well defined ordering, and as a result, duplicates or omissions can be easily spotted and corrected.
Alphabetical ordering is however a 'wrong' order to use during scanning, as described above.
So, we should devise a scanning order, leading to the highest possible ratio of correctly located functions.
One such scanning order could be to scan for big functions first, smaller functions later.
Also, we could scan for xrefs first, patches later.
Another idea is to scan with one OOVPA version per xref/patch first, ideally the version linked into the executable.
Keep the current approach in which the memory is scanned again until no more symbols are found.
Then, for any symbol not yet found in the first phase, scan using the nearest OOVPA version available.
Once that's done, either stop or repeat one last time with the next-nearest OOVPA versions.
Any symbol still not found, must be deemed not present.
Let's discuss this idea, and if possible, others, please.
Moved from Cxbx-Reloaded/Cxbx-Reloaded#124
Original post by @PatrickvL:
For all posts see Cxbx-Reloaded/Cxbx-Reloaded#124 first before make new post.
The text was updated successfully, but these errors were encountered: