Messages

If DISE is stuck trying to update, run this command in Command Prompt.

Saturday, February 4, 2012

The trainer and the features I promised

I promised to add infinite ammo and I have let you wait quite a while now. I can't help feeling ashamed because it didn't have to take this long. I just wanted more complex patches (I'll explain further down) instead of doing i the "easy way". That's why I spent most of the time simply rewriting the patching engine in my trainer just to support more complex patches. Hardcore, you know! Since it would have taken more time, I gave up on that and have now done it the easy way after all.

I'm testing it now before release, so it should be ready very soon. I'll also test it with the Ryder White DLC to make sure it works.

The new options are infinite ammo and no reloading.

Hopefully without using too many computer terms, my trainer was planned to do this:
  • Infinite ammo would make your ammo fully replenish with the correct max ammo (for that weapon) when reaching 0.
  • No reloading would just let you spray your bullets all you want without having to reload at all (always the correct max number of bullets in the clip for that weapon).
I decided to simply set the ammo to 99 and not make your bullet count decrease. I doubt that anyone actually minds, but I wanted it to be better, and thus I am disappointed. :(

I can be a perfectionist many times, but in this case, I have wasted a lot of time.

Geek alert

The way I wanted to do it involves code hooking and code-caves. While that's easy if you have a good library, I don't know of such a library that can be used in a different process without DLL injection (and I didn't want to use it in this trainer). Most (if not all) of the libraries I know of don't consider updating branch instructions' address value.

This was my original idea by making the patching/hooking engine. Then I realized/remembered that there are many branch instructions, and with different address sizes. It would take a lot more time and efforts. Just as I thought I was almost finished, I realized this important thing. /facepalm

2 comments:

  1. how do u use this

    ReplyDelete
  2. The trainer can only be used on the PC. You can start the trainer before starting the game, then it should be as easy as pressing button combinations to activate options. If my answer was totally off, I must ask you to elaborate. :)

    ReplyDelete