View previous topic :: View next topic |
Author |
Message |
Pr3tzals Advanced Cheater
Reputation: 1
Joined: 05 Jun 2007 Posts: 59
|
Posted: Tue Jan 22, 2008 7:16 am Post subject: New Cheat Engine to Emulator Code Finder? |
|
|
Ok ive returned dont know why ive left and i started getting into the DS craze and was wondering with C++ could i be able to create my own cheat engine but specifically for finding memory and values in roms on an emulator and convert them to Ar/GS/CB codes? What would the scripting look like and do you believe this is possible?
Oh and i didnt know where to post this if this is wrong spot please move
_________________
|
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 468
Joined: 09 May 2003 Posts: 25712 Location: The netherlands
|
Posted: Tue Jan 22, 2008 12:48 pm Post subject: |
|
|
first thing you need to do is find the base address of the emulated memory (And hope the emulator emulates it as one whole block and not segmented into pieces)
then find out how the Ar/GS/CB codes work based on the base address.
then when you find a value, do createCode((address of value) - (base of emulated memory))
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
Back to top |
|
 |
Pr3tzals Advanced Cheater
Reputation: 1
Joined: 05 Jun 2007 Posts: 59
|
Posted: Tue Jan 22, 2008 9:14 pm Post subject: |
|
|
Ok alright currently im trying to learn the hexadecimal system and if i get around to making this would you like rights to the program?
_________________
|
|
Back to top |
|
 |
samuri25404 Grandmaster Cheater
Reputation: 7
Joined: 04 May 2007 Posts: 955 Location: Why do you care?
|
Posted: Tue Jan 22, 2008 9:42 pm Post subject: |
|
|
First of all, if you're only learning the hexadecimal system, then you're a long ways off.
Second, DB can only claim rights to the program if you modify his source. If you start from scratch, then the program's all yours.
_________________
|
|
Back to top |
|
 |
Pr3tzals Advanced Cheater
Reputation: 1
Joined: 05 Jun 2007 Posts: 59
|
Posted: Wed Jan 23, 2008 12:07 am Post subject: |
|
|
First of i said im learning there Hexadecimal i will be learning other things im going to just learn from the scripts of CE and whenever i finish the project i will send it to DB and if he finds the source do be similar to his own he can have rights to it also.
_________________
|
|
Back to top |
|
 |
Losplagos Expert Cheater
Reputation: 0
Joined: 21 Mar 2006 Posts: 172 Location: Knee deep in a c++ book
|
Posted: Fri Jan 25, 2008 7:41 am Post subject: |
|
|
I did something like this before. But i did with psx and made working gameshark codes using cheatengine and a emulator. I will have to look around see if i have a copy of the text files i saved on the conversions.
I do have a suggestion if your going to start this psx gameshark codes are more than likely as close to cheatengine addresses as you going to get.
Edit: The best way to i could think to do it is find a address in cheatengine and compare it to a code that does the same thing.
_________________
Earthbound = 31337 |
|
Back to top |
|
 |
Pr3tzals Advanced Cheater
Reputation: 1
Joined: 05 Jun 2007 Posts: 59
|
Posted: Sat Jan 26, 2008 6:15 am Post subject: |
|
|
after reading your post you got me thinking first start off small scale but then something else came to mind first off just make a program that can create codes for data entry from the values int he emualtor
_________________
|
|
Back to top |
|
 |
Losplagos Expert Cheater
Reputation: 0
Joined: 21 Mar 2006 Posts: 172 Location: Knee deep in a c++ book
|
Posted: Sat Jan 26, 2008 7:56 am Post subject: |
|
|
Dark Byte wrote: | first thing you need to do is find the base address of the emulated memory (And hope the emulator emulates it as one whole block and not segmented into pieces)
then find out how the Ar/GS/CB codes work based on the base address.
then when you find a value, do createCode((address of value) - (base of emulated memory)) |
Dark byte explained a major part of it. Or you can find a way of conversion.
Here is a example of a codebreaker code for pokemon pearl on the ds.
Code: | 6F502064 BD3C4F83
667425C1 30DD03B3 |
It puts a Adamant orb in slot 1.
Now here is a example of a gameshark code for breath of fire 3 on the psx.
It makes the game show that you have 99 of the item in item slot 2 .
Now i will break that down to the point that i under stand it.
It is very common to see 80 or 30 at the begining of the code. I know that 30 says it is a byte value. And a 80 says that it is a word value. The gameshark cannot use a word value to set something that starts at a odd number. So looking at the code example above since $14524D is a odd address i cannot use this to give it a dword value such as this example.
To overcome that limitation i would do this.
Code: | 3014524D 0069
3014524E 007A |
Which would change the item value from 99 to 31337.
Oh and also there are things like D0 at the begining.
Which is saying if $01449EC = 0001 do whatever is in the code.
A example of this using $01449EC which is ryu's apprenticed level in bof3 would be.
Code: | D01449EC 0001
3014524D 0063 |
Which is like saying
Code: | If (1449EC = 1) {14524D = 99} |
So the basic make up of any code for a video game system is quite simple. What complicates is it is now more than put this value here. New age codes for console games could be 200 lines of code if you wrote it out as a program compressed into hardly anything. The only constant is there will always be a address a value and instructions what to do in the code.
As it gets more advanced we might even have keyboards and large external storages connected to consoles to cheat and be able to program new code to use in these simple lines of numbers. Yes i know that even the first game genie hade extra storage space outside of the console and game cartridge.
Ok im done with the rant if you read one paragraph this should be it. Making a cheatengine code into a code for devices like gameshark, codebreak, action replay is very complicated. You must know how the memory addresses are calculated and the commands in the code and how to put them together.
_________________
Earthbound = 31337 |
|
Back to top |
|
 |
|