mysimulation/Tools/TSOSimulatorClient
Fatbag 8bb608d5ce Fully functional cst parser.
New client code for Windows. The window does not appear until the OpenGL rendering context has completely initialized and (one day) has the first frame ready to draw.
2012-03-18 23:06:08 -05:00
..
compile.bat iff2html is working and can properly parse STR# chunks. 2012-03-13 00:12:27 -05:00
memory map.txt iff2html is working and can properly parse STR# chunks. 2012-03-13 00:12:27 -05:00
Readme.txt iff2html is working and can properly parse STR# chunks. 2012-03-13 00:12:27 -05:00
TSOSimulatorClient.cpp Fully functional cst parser. 2012-03-18 23:06:08 -05:00
TSOSimulatorClient.hpp Fully functional cst parser. 2012-03-18 23:06:08 -05:00

DLLs in The Sims Online (and also SimCity 4 and The Sims 2) use a special
interface, based on Microsoft COM.

These DLLs each export exactly one function:
void * GZDllGetGZCOMDirector(void)

This function creates and sets up a C++ object, with variables and member
functions, and returns a pointer to that object. This is your standard
C++ v-table.

TSOSimulatorClientD.dll is the most important DLL in the game. It implements
the SimAntics virtual machine which executes all the objects in the game.
In our situation, we need to figure out everything it does, because we lack
any information regarding the SimAntics instruction set architecture.
A text dump of this DLL is not nearly enough to find this. The files in the
objectdata/globals folder are not nearly enough. The page on
simtech.sourceforge.net documenting all they know about SimAntics is not
nearly enough. We need to run this DLL in a disassembler and figure out the
meaning of every opcode used in every behavior script of the game.