How to change the amount of EXP received

Anything Cheat Engine related, bugs, suggestions, helping others, etc..
Post Reply
caiocarvv
What is cheating?
What is cheating?
Posts: 3
Joined: Wed Jan 20, 2021 5:11 pm
Reputation: 0

How to change the amount of EXP received

Post by caiocarvv »

Greetings, everybody!

I started playing Digimon FireRed and it's a hacked rom for GBA.

I want to multiply the amount of EXP received from each battle, maybe for 3x or so.

I found the address that modifies the EXP really received without changing the text message with the EXP amount, so if I freeze this adress with x EXP, I'll always receive this amout after the battle.

After that, I clicked "find out what accesses this address" and the only function that appeared was this (attachment).

So now I don't know what to do because I'm really a begginer and would like some help or tutorials, if any exists specifically for this matter.

Also, as a beginner, I really want to understand and learn how to read assembly so I can start playing with some games, as I am wondering if I should start studying languages to become a developer (in a general sense).

If you can help me or even send me links so I can start learning, I would really appreciate!

Thanks in advance, peace.


User avatar
Marc
Table Makers
Table Makers
Posts: 378
Joined: Mon Mar 26, 2018 2:35 pm
Reputation: 377

Re: How to change the amount of EXP received

Post by Marc »

Steep learning curve ahead... but managable.

In general: you have 3 assembler codes here. The first one writes to your address, the other ones are reading the value.
You'll have to activate one of these codes (I'd suggest the writing code here), click on "show disassembler" and you'll see the surrounding code of the writing-code.

Without seeing this code, it's hard to say but most likely you can klick on the line with "mov [eax+ecx],edx", press Ctrl-A, then choose "Template - AOB Injection". you'll get some code in your editor. put a "mov edx, #999" below the line "//insert your code here" to write always 999 to your value. (some kind of blind-flight here).

Anyway, for learning assembler and cheating, I suggest to watch the whole "Game Hacking 100" and the 200 Series.



And for additional infos, the videos from "Cheat the Game", who sadly passed away this year. But his awesome content is still available at
[Link]

good luck and have fun,
Marc

sbryzl
Expert Cheater
Expert Cheater
Posts: 143
Joined: Sat Mar 04, 2017 4:47 am
Reputation: 90

Re: How to change the amount of EXP received

Post by sbryzl »

The way emulators work is they have a small number of instructions that load all the data which means it's almost always shared instructions. The solution is easy for emulators because it's a base address plus an absolute offset. In this case it looks like eax and ecx are your base address and offset. The base address may change depending on the emulator's location in ram while the offset will usually be the same because emulators have static memory locations. Figure out which one is the offset then do a compare to distinguish the address you want, eg:

Code: Select all

cmp ecx,1234 // use whatever offset you want instead of 1234
jne @f
// do stuff here like mov [eax+ecx],whatever
@@:

Post Reply

Who is online

Users browsing this forum: PronKill