Re: Executable Functions [message #71722 is a reply to message #66458] |
Mon, 04 March 2019 15:07 |
blastedt
Messages: 5 Registered: May 2016 Location: Blastedt
|
|
|
|
EternalNoob wrote on Tue, 24 April 2012 00:40[
Unknown = 0x0099EBF0
This takes two visible parameters. It also requires an object reference pointer in the register ECX. (Likely a "this" pointer.)
Update:
I believe this is used by the games "IntelligentPointers", basically, if an object exist, it finds it, otherwise it creates it, and makes a pointer to it, for reference tracking\access, etc,.
0x99EBF0 is a string constructor. The game uses something called "CCharString" likely to provide wrapper functions and such. In the following image, Mac code (with built-in labels) is left, with the corresponding PC code is on the right. You can see the 99ebf0 call corresponds to a Mac call of CCharString's constructor (taking a char* and its length). This code is from the Necropolis tablet scripting.
https://i.imgur.com/y4yKcRN.png (Please ignore that I've accidentally named the destructor the same thing - 99ebf0 is the constructor, and 99eae0 is the destructor.)
Similarly, 0x9ed190 *is* related to the console - this is CConsole::Initialise(CConsole*, char, EInputKey, CFontBank*).
Sorry to necro an old thread, but this is pretty much the only existing resource on reverse engineering Fable, and I'd rather add to it than make a redundant thread.
Blastedt
[Updated on: Mon, 04 March 2019 16:57] Report message to a moderator
|
|
|