ART - Amiga Realtime Trainer (C)1997 by eNTiTy/tBS Disclaimer: The usual stuff here... use at own risk. Introduction: With this thingy you can CHEAT in games which multitask, or have a sleep mode. Things that you could change would be points, lives, money, etc.. The GUI and stuff... Range : These two gadgets set the range ART should look in.. Alignment : Actually, it's just the stepsize (1, 2 or 4 bytes) better to leave this at 'BYTE' NOTE NOTE NOTE!!! ONLY 68020 OR HIGHER PROCESSORS CAN READ AND WRITE WORDS AND LONGWORDS AT ODD ADDRESSES, SO IF YOU LEAVE ALIGNMENT ON 'BYTE' WHILE WORKING WITH WORDS YOUR AMIGA WILL CRASH. Var. Size : Sets the type of variable you're looking for. Search : Initiates scan. Enter searchvalue in gadget next to this one. Compare : Compares scanned addresses with new value, enter comparison value in gadget next to it. Poke : Pokes the value entered in the gadget next to this one into the memorylocation entered below the list. Reset : Doesn't do much, only clears the list and unlocks the varsize gadget after a search. (scanned addresses are lost..) Using it: Well, ehm, ok, I'll TRY to explain how to find a game variable, but If you don't understand the terms BYTE, WORD, LONG or POKE, or you don't know how your memory is configured, then don't bother to try... First, you have to determine what's the TYPE of variable used to store the value, for lives this is usually a BYTE, for money or other things that can assume large numbers this is usually a WORD or LONGWORD. Set the searchrange (the 2 string gadgets at the top) to a memory area where you expect to find the value (this is usually in fastmem, if you have any, so set the range to your entire area of fastmem) Now set the VAR. SIZE cycle gadget to the type you think it is, and enter the CURRENT VALUE of it in the gadget next to 'SEARCH'. Now hit SEARCH and wait 'till the scan is over. When it's completed you should continue your game and try to change the value you were looking for, so if you're after money, do something that changes the amount of money. 'Sleep' your game again, and enter the NEW value of the variable in the gadget next to COMPARE, and hit COMPARE. If everything is ok, then there should be one or two addresses in the list. You can then enter one of those addresses in the gadget below the list, and enter the desired value in the gadget next to POKE. Now hit POKE, and you'll have lots of money, lives, or whatever it was you wanted.. Now, there could be some complications though, for one, poking values in memory isn't that 'clean' and certainly NOT system friendly, so KNOW what you're doing. Also, it's possible you can't find any addresses, in that case, change the memory searchrange and/or variable size. If it doesn't work out, then the game uses a (clever?) way to 'cloak' it's variables... Effectiveness: Well, I've tried this sucker on a few games, and hey! it worked! :^) Bugs: Well, the thing is coded in one day so there MUST be a few bugs! But I don't intend to fix them if it's just a minor bug, after all, I know what I'm doing, so you should also! WARNING: I can't emphasize enough that this program is dangerous, one tiny mistake with the POKE address and you may have a hanging Amiga. If your compy crashed when you were rendering that 6400 frame animation while you were trying to alter your lives in MiniArkanoid, then that's your fault, you shouldn't be playing games anyway when you are doing something "important"! The program doesn't allow you to poke at address $0-$7, so your execbase pointer is reasonably safe (athough the actual execbase isn't! :^).