VOGONS

Common searches


First post, by BSF-BGP

User metadata
Rank Newbie
Rank
Newbie

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

Reply 1 of 5, by BloodyCactus

User metadata
Rank Oldbie
Rank
Oldbie

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 :: [ https://bloodycactus.com :: http://kråketær.com ]-/\--

Reply 2 of 5, by Rekrul

User metadata
Rank Member
Rank
Member
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.

Reply 3 of 5, by squ1rrel

User metadata
Rank Newbie
Rank
Newbie

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.

Reply 5 of 5, by squ1rrel

User metadata
Rank Newbie
Rank
Newbie
danrevella wrote:

If this game does work in dosbox, you may use the (full) dosbox debugger: you may put breakpoint, change memory and resume....

Yes, this is true, I can do what I want manually with the debugger console. But my goal is to automate those actions so the game plays itself indefinitely match after match without human input. Like a screensaver...