|
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
++METHOS I post too much Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Tue May 02, 2023 8:14 pm Post subject: |
|
|
You can certainly go that route if you choose.
If you check the value of the register, as described, then you should have a reliable filter forever, and you can do that with each value that the instruction accesses.
|
|
Back to top |
|
|
Beginner999 Newbie cheater Reputation: 0
Joined: 27 Jul 2018 Posts: 21
|
Posted: Tue May 02, 2023 8:35 pm Post subject: |
|
|
++METHOS wrote: | You can certainly go that route if you choose.
If you check the value of the register, as described, then you should have a reliable filter forever, and you can do that with each value that the instruction accesses. |
Fix me if I'm wrong. So from here basically I found the instruction to the value I want and I can certainly make the multiplier script as intended using this method by filtering out the wanted address. With that in mind I made the multiplier script for gold below and it's crash the game, any idea what's wrong with it?
Code: | aobscanmodule(aob_master,FFVIII_EFIGS.dll,8B 04 01 5D C3 CC CC CC) // should be unique
alloc(newmem_master,$200,aob_master)
label(return_master)
label(originalcode_master)
label(gold)
label(gold_code)
registersymbol(aob_master)
registersymbol(gold)
label(gold1)
label(gold_code1)
registersymbol(gold1)
newmem_master:
cmp ecx,D58
je gold_code
jmp originalcode_master
gold_code:
push edi
lea edi,[eax+ecx]
mov [gold],edi
pop edi
//multipler codeo start here
gold_code1:
push edi
mov edi,[eax+ecx] //preparing for the comparision, suspecting problem here
cmp edi,eax //comparing new gold value with old gold value
jle originalcode_master //if new value is less or equal than old skip the multiplier
sub edi,eax //calculating1
imul edi,[gold1] //calculating2
add edi,eax //calculating3
mov [eax+ecx],edi //copy result to the original address
pop edi
//multipler codeo end here
originalcode_master:
mov eax,[eax+ecx]
pop ebp
ret
jmp return_master
gold:
dd 0
gold1:
dd 4
aob_master:
jmp newmem_master
return_master:
[DISABLE]
aob_master:
db 8B 04 01 5D C3
unregistersymbol(*)
dealloc(*) |
|
|
Back to top |
|
|
++METHOS I post too much Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Tue May 02, 2023 9:08 pm Post subject: |
|
|
There is no need to do this, really. Since you have the address/value of gold always, you can set it to whatever you want at any time.
Also, you do not want to create a multiplier for something like gold in this case, where the instruction is accessing it several times per second. The value will become so large, so quickly, that it will probably crash the game. You could try adding 1 to it and see if that works.
I recommend starting with something else if you are insistent on applying a multiplier (and preferably use an instruction that writes instead of accesses so that the value does not get out of hand). I would also recommend that you set a breakpoint at the start of your code-cave and step through the code so that you can acquire some understanding about what is actually happening with your script. This will help you learn. It is also a good habit to comment out each line of code, one-by-one, if you are unsure what the problem is. This can help you to isolate and identify the problem more easily.
|
|
Back to top |
|
|
Beginner999 Newbie cheater Reputation: 0
Joined: 27 Jul 2018 Posts: 21
|
Posted: Tue May 02, 2023 9:46 pm Post subject: |
|
|
[quote="++METHOS"]There is no need to do this, really. Since you have the address/value of gold always, you can set it to whatever you want at any time.
Also, you do not want to create a multiplier for something like gold in this case, where the instruction is accessing it several times per second. The value will become so large, so quickly, that it will probably crash the game. You could try adding 1 to it and see if that works.
I recommend starting with something else if you are insistent on applying a multiplier (and preferably use an instruction that [i]writes [/i]instead of [i]accesses [/i]so that the value does not get out of hand). [b]I would also recommend that you set a breakpoint at the start of your code-cave and step through the code so that you can acquire some understanding about what is actually happening with your script. This will help you learn. It is also a good habit to comment out each line of code, one-by-one, if you are unsure what the problem is. [/b]This can help you to isolate and identify the problem more easily.[/quote]
This basically what I did for other games, I'm trying to learn using CE but this game just not friendly to me so far, I was able to make a working table with the PSX version but not the remastered one. Whenever I tried to do a break point it crash the game
:(
|
|
Back to top |
|
|
++METHOS I post too much Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Tue May 02, 2023 10:03 pm Post subject: Re: FF8 remastered finding instructions problem |
|
|
Beginner999 wrote: | The problem I have with this game is most of the instructions that I found control multiple things (might goes up to thousands addresses) | -So it seems that we have resolved this issue now. Yes?
Beginner999 wrote: | On the other hand I downloaded a working table and it work just like a champ. Question is how do they were able to find those unique instruction? Is there any special technique? | -For this, it is difficult to say, since there are so many possibilities. I have not looked at the game again and probably won't. However, I can recommend the following:
1. Using the steps that we have followed thus far, check to see what is accessing the AP address, not just at random times, but when the value actually changes in-game, due to a specific event. You may find that additional instructions access this address during specific game sequences etc.. Doing so may allow you to find something interesting.
It may be that the original script is using an instruction that is writing to the address only during certain moments (and not constantly), which is why you haven't found it yet. So, you may find the correct instruction by letting the debugger capture instructions while you play through the game (especially during moments when the AP is applied - whatever that is).
If breakpoint crashes target, try changing the debugger settings.
|
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|