The bad news: XCom doesn't seem to be able to run natively-- it either must be run through windows' dos emulation (NTDVM.EXE) or DOSBox, and DOSBox, as far as I can tell, only interprets the assembler of XCOM's executable. This means that it would be difficult or impossible to hack the games' executable.
The good news: I've found that most (if not all) of the dat files are stored in memory in their entirety, meaning that anything you can do to savegames, you can do in REAL TIME to the game's state in memory. Also, the game lacks DMA, so the offsets to these memory chunks do not change.
Caveat: Because XCOM is run in DOSBox, it is possible that any future revisions of DOSBox could break a trainer that relied solely on those memory offsets. Even worse, the emulation makes it so that certain DMA-beating methods such as code-caving would be difficult if not impossible, because you cannot discover what modifies the values.
Here are the .dat files I have found, and their offset in DOSBox's memory:
What you can do to help: If there are any among you who know more about memory hacking than me, please speak up. If you have any ideas or insight into how to work around the problems I stated above, don't hesitate to speak. If you know how to look around in process memory, you can test my offsets to see if they work in your version of DOSBox, and let me know your DOSBox version, XCOM version, or other information that would be necessary for me to know.
Just don't whine about them not working in other emulators (like NTDVM)
From what I can see, it seems that one could potentially do any kind of modification to XCOM real-time. All of XCU's operations could be performed while the game is still running, meaning that it could be possible to play multiplayer hotseat games without having to quit out every turn. Or even better yet, it could be possible to play multiplayer games over the internet or network using an application that sent .DAT modifications back and forth between computers.
Any input would be appreciated...
GEOSCAPE: (alphabetical order)ACTS 0x03656358AKNOW 0x035e8a2cALIEN 0x03659de8ASTORE 0x035e87d0BASE 0x03675128BPROD 0x036a4204CRAFT 0x0369c204DIPLOM 0x0365505cFACIL 0x03652DA8IGLOB 0x0365b8d0INTER 0x035e8c20LEASE 0x035e07bcLIGLOB 0x0365b940LOC 0x035e03d0MISSIONS 0x035e0874PRODUCT 0x03652b30PROJECT 0x036852e8PURCHASE 0x03652EB8RESEARCH 0x036522F0SAVEINFO (N/A)SOLDIER 0x03748058TRANSFER 0x035e0b18UIGLOB 0x0365b910UP 0x03655c48XBASES 0x036597e8XCOM 0x03659818ZONAL 0x0365634c-TACTICAL: (alphabetical order)BGLOB 0x036712ecGEODATA 0x0366EFA4MAP 0x03732058MISDATA 0x03670B3COBPOS 0x03669e94ROUTES 0x03663aecSEEMAP 0x0373C058SMOKBIT 0x03670BE6SMOKREF 0x03669084SOURCEMP 0x0372345cTERMP 0x03726f74UNITPOS 0x0366a934UNITREF 0x0366ad94WGLOB 0x036712b4
Edited by ZeldaFreak, 05 May 2007 - 08:01 AM.