The International Simutrans Forum

Community => Simutrans Gaming Discussion => Topic started by: 123.jack.scott on October 13, 2009, 06:00:21 AM

Title: Simutrans Trainer
Post by: 123.jack.scott on October 13, 2009, 06:00:21 AM
Hi.
I am trying to make a simutrans trainer.
Ie so you can control how much money etc you have during the game.
Can someone tell me where the memory address is for the money?
is this value even stored in the ram?
Thanks, Jack
Title: Re: Simutrans Trainer
Post by: Dwachs on October 13, 2009, 07:32:46 AM
Just use freeplay mode.
Title: Re: Simutrans Trainer
Post by: VS on October 13, 2009, 07:47:35 AM
Hello,
I am afraid this is technically unfeasible. In short, there is no "memory address of money in Simutrans", you have to append "revision ABCD compiled with XYZ". Simutrans itself is an ongoing project (perhaps better said never ending). Code is being changed all the time and people compile it in at least two vastly different environments (mingw & msvc++). It would be shooting a moving target at best.

If you want such functionality, perhaps it might be a better idea to actually extend the game itself.

Plus, as Dwachs notes, there is already something similar. Beginner and Freeplay modes. Starting money can be also set...
Title: Re: Simutrans Trainer
Post by: Ashley on October 13, 2009, 10:20:01 AM
Most trainers scan through memory to try and find values which are the same as the current value in the game, this is because the games you usually use them on are closed source so a more direct method of modifying the amount of money you have isn't possible.

Given that Simutrans is open source you could easily (or at least more easily than writing another application to scan memory locations) add a button to give yourself more money, rendering a trainer pointless. Even easier, compile a vehicle with a negative cost, then buy a bunch of them in-game. You'll make money quickly that way.

Or, as others have said, play with -freeplay turned on so that money doesn't matter, or set the starting money to a very high number.