How to make a DOS Game Trainer?

Getting old DOS games working. (DOSBox topics belong in DOSBox areas below, not here).

How to make a DOS Game Trainer?

Postby BSF-BGP » 2017-8-02 @ 00:03

I saw some of MS-DOS trainers on Defacto2, Pouet, Internet Archive and Demozoo. How can i make DOS game trainers? Please help!
BSF-BGP
Newbie
 
Posts: 3
Joined: 2017-8-01 @ 19:04

Re: How to make a DOS Game Trainer?

Postby BloodyCactus » 2017-8-02 @ 12:29

make a tsr or chained executable. on certain key press, change an area of memory. game trainer code itself is easy. the hard bit is knowing what memory areas / code to change. you have to do quite a bit of debugging to find the code that decrements lives, and it may be in 10 places, etc.

this gets into very version specific too, often EU game release trainers didnt work on US release etc, etc etc. v1.01 is not same as v1.02 etc.

many specifics to check for.
--/\-[ Stu : Bloody Cactus :: http://kråketær.com :: http://mega-tokyo.com ]-/\--
User avatar
BloodyCactus
Oldbie
 
Posts: 505
Joined: 2016-2-03 @ 13:34
Location: Lexington VA

Re: How to make a DOS Game Trainer?

Postby Rekrul » 2017-8-11 @ 10:03

BSF-BGP wrote:I saw some of MS-DOS trainers on Defacto2, Pouet, Internet Archive and Demozoo. How can i make DOS game trainers? Please help!

In order to make a trainer for a game, you need to be able to not only go through the game's code, but also to understand what it's doing. In other words, you have to be a programmer yourself.

Then what do you want to make a trainer for? Lives? You have to find the part of the program that keeps track of lives and decreases the counter every time you die, then remove that bit of code, so that the lives never go down. But what if instead of how many lives you have left and ending the game when it hits zero, maybe they counted how many times you've died and ends the game when it hits four. Why would they do that? Maybe to make it harder for people to make trainers and cheat at their game. :)

Or do you want a trainer for unlimited energy? That's even probably even more complicated because it's most likely not just a simple, single-digit number. Energy might be counted from 0-100, from 0-200, 0-1000, etc.

I've been told that people with experience doing this sort of thing look for the part of the program that prints your status information to the screen, and then work backwards from there to see where the information is coming from.
Rekrul
Member
 
Posts: 308
Joined: 2005-2-10 @ 23:14

Re: How to make a DOS Game Trainer?

Postby squ1rrel » 2017-8-12 @ 02:36

I didn't want to start a new thread because this seemed like pretty much exactly what I wanted to do, and I'd like some help with it.

I'm trying to mod a game called The Solar Hockey League (1992) into playing itself with random (or bracketed, maybe) AI teams (you can normally already set AI against AI in the main menu)

I know a fair bit of x86 assembly and I've managed to note program and memory locations for some parts (where the code goes to start a game, where teams are selected and where scores are kept, etc), however I don't know enough to write my own trainer nor can I find something suitable to listen on to DOSBox and make the necessary changes. (dosbox-python seemed promising, but you can't set breakpoints and then have the execution continue from it after you've made necessary changes)

So basically I need something that can trigger breakpoints and modify memory or read from it. If it can be externally scriptable (such as in Python, so I can also trigger events outside the DOSBox emulator from it), that is also a plus, since I want to make a bot which announces matches and winning teams (turning it into something similar to SaltyBet, for example).

Could anyone help me with that?

EDIT: Also, I didn't want to put this in the DOSBox section because I'm flexible as to which emulator to use, as long as it works.
squ1rrel
Newbie
 
Posts: 1
Joined: 2017-8-12 @ 02:30

Re: How to make a DOS Game Trainer?

Postby danrevella » 2017-8-18 @ 19:46

If this game does work in dosbox, you may use the (full) dosbox debugger: you may put breakpoint, change memory and resume....
danrevella
Newbie
 
Posts: 25
Joined: 2009-5-10 @ 13:34


Return to DOS

Who is online

Users browsing this forum: No registered users and 2 guests