The following games have been added to the list of games that have achievements:
- Age of Chivalry
- Harvest: Massive Encounter
- Insurgency
- Mayhem Intergalactic
- Unreal Tournament 3
The following games have been added to the list of games that have achievements:
Mirror’s Edge PC port came out a few days ago, I got my copy today. I updated my Unreal3 package reading code that I wrote for Mass Effect to be compatible with Mirror’s Edge archives.
I wrote some code to dump information about all music tracks and made a tool with this information so anyone who has a copy of the PC port can extract the music with ease.
The music files are all in Ogg format.
Note that due to how Unreal packages are generated by the Unreal editor, there are probably lots of dupes of tracks.
As usual if you encounter any bugs or issues feel free to comment this post.
All cheats for the PC version, taken from the file cheats.xtbl, these may apply to the console versions as well.
UPDATE: This editor should no longer be necessary as of Patch #2 (released 02/17/2009) which adds support for detection of 16:9/16:10 resolutions.
Since the game does not properly detect 16:9 and 16:10 resolutions, I’ve made an editor which can edit settings.dat for the resolution you specify.
The game appears to operate just fine with resolutions such as 1440×900 and 1680×1050.
Saints Row 2 Resolution Editor
Requires .NET 2.0.
Saints Row 2 came out today for PC, no more being a bitch in GTA IV. 🙂
Here is a basic trainer for GTA IV 1.0.1.0, features:
This trainer will work with and without my XLive wrapper.
Note: this trainer is for GTA IV 1.0.1.0 only, the trainer does not attempt to validate that you are running 1.0.1.0 at all, using it with other versions may lead to unexpected behavior.
Basic Trainer for GTA IV 1.0.1.0
Running the trainer will immediately activate all mentioned features. If you do not become invincible, simply run the trainer again and it should take.
This trainer will refuse to activate if it detects you are playing in multiplayer.
This trainer is based on the superman example script provided in Alice, created by Alexander Blade, in standalone form.
As usual, please report any problems, etc in comments to this post.
Another feature set provided by the Games For Windows API is various functions for “protecting” data (hashing & validating). GTA IV uses these functions to hash and validate its save files. I’m not exactly sure how these functions work exactly — other than the fact that the one we are interested in, XLiveUnprotectData, is called in a peculiar way.
It’s called twice, with five arguments, none of these arguments point at the save data itself, but at the 360 byte blob at the end of the save file. I suspect that this process is actually decrypting some memory rather than hashing the save itself, the end result is that a CRC32 hash of a part of the save is extracted, then compared against. By hashing the save and providing the valid CRC32 in the result of a replaced XLiveUnprotectData we can get past this validation, allow us to load other people’s saves as well as letting us modify our saves.
For the new version of the wrapper:
Note: the save validation “feature” of this version of my wrapper now potentially makes it incompatible with any other game, and previous version of GTA IV. This version of the wrapper was made with GTA IV 1.0.1.0 in mind, if there are compatibility issues with previous versions I have no plans to support them.
XLive Wrapper (1.2.0.7) for GTA IV (1.0.1.0)
I have only tested my wrapper locally. There could be unforeseen issues that I have not expected, if you experience any bugs feel free to comment this post.
The following games have been added to the list of games that have achievements:
One of the features the Games For Windows API provides is protected buffers. These buffers can be allocated by games that use the API, and data can be copied back and forth from them. GTA IV uses this for a bunch of the game memory, for example, your current cash.
The following functions (thanks, xlive.pdb!), are what provide this feature to games:
int XLivePBufferAllocate(int size, XLiveProtectedBuffer **pbuffer)int XLivePBufferGetByte(XLiveProtectedBuffer *pbuffer, int offset, unsigned char *value)int XLivePBufferGetDWORD(XLiveProtectedBuffer *pbuffer, int offset, unsigned int *value)int XLivePBufferGetByteArray(XLiveProtectedBuffer *pbuffer, int offset, void *destination, int size)int XLivePBufferSetByte(XLiveProtectedBuffer *pbuffer, int offset, unsigned char value)int XLivePBufferSetDWORD(XLiveProtectedBuffer *pbuffer, int offset, unsigned int value)int XLivePBufferSetByteArray(XLiveProtectedBuffer *pbuffer, int offset, void *source, int size)int XLivePBufferFree(XLiveProtectedBuffer *pbuffer)By creating a fake xlive.dll which wraps the real xlive.dll, we can serve ‘unprotected’ versions of these 8 functions. In doing this, we can now freely modify at runtime the data that the game wants to be protected, including your current cash.
XLive Wrapper for GTA IV 1.0.0.1
Drop this into your GTA IV game directory (where GTAIV.exe resides), start the game, viola, unprotected memory!
(The first time you run the game, the wrapper will prompt you if it is OK to copy the original xlive.dll/xlive.dll.CAT unmodified to another location with a new name)
If you encounter any issues with the wrapper aside from the UI issue, please let me know!
The only side effect that I’ve seen so far is that the in-game UI for Games For Windows no longer appears, although the game continues to function normally (including multiplayer).
Part III will talk about save validation and include version 1.1.0.0 of the wrapper with this disabled :).
The following games have been added to the list of games that have achievements: