Yes I noticed something similar in .01, although some are acutally double-mapped (first calling another nearby function before the far call).
Yes, they used wrapper functions for some graphic driver far calls... I replaced much of those functions with direct graphic driver function calls, and the rest of the wrapping functions will be removed later in OpenCiv1.
By the way I saw your overlay listing, and can complete your missing descriptions if not already done:
- Overlay 3: Hall of fame (FAME.DTA)
- Overlay 4: In-game help
- Overlay 15: Schism (when a large Civ splits into 2 civs when their capital is captured)
- Overlay 17: Palace
- Overlay 18: Sapceship
Thanks, much appreciated
I am considering of restarting my reverse engineering efforts with .05 so our efforts could be sync'd, and it would also be a good opportunity to try out Ghidra, which apparently can decompile 16-bit DOS code to some extent.
I'm not sure about Ghidra (since I came this far on my own). But, perhaps, I should first try it before I make any comment
Apparently it looks much like IDA and can import IDA database.
As I said before, there is much by hand assembly used in source, so I'm not sure how successful Ghidra decompiler would be in those situations...
Much work is already done in OpenCiv1, so I'm not sure if Ghidra (at this point) would be of any help, perhaps with some functions it would be easier to translate, but I looked at examples, they are nothing spectacular.
I started with version .05 because it's most up to date, perhaps, with less bugs. As far as I know only unit definitions, difficulty multipliers and some texts are different than in .01
(somebody please correct me if I'm wrong).
Also, I'm almost not using IDA anymore since code is stable (for now). I'm only using IDA for reference, for example: if generated code doesn't work as expected...
My work in IDA is nothing spectacular, some redefined data and code sections and no renames... otherwise, I would share my IDA database with you to help you get started.