Cheats : Creating an exp multiplier code
#1
Hi ,

I understood how to create an infinite EXP patch
And now I'm trying to create a EXP multiplier code.
Does someone know how to do this with cheat Engine or another?

My version of FFXII (PAL) CRC=CA284668

thanks.
Ivan
Reply

Sponsored links

#2
To make such code you have to have some idea about debugging and assembly and it's not always possible.

Hoewer there are such codes for FFXII NTSC-U which makes it very easy to just recreate them for any other FFXII version;].

In cheat engine set search range for EE memory which is 20000000-21FFFFFF, then uncheck "writable" as that code isn't there;]. Then make an aob scan for "12 A8 00 00 13 00 20 12" for exp multiplier, if it doesn't give any result, try searching for just 4 bytes hex 0x0000A812, just use the values from NTSC-U codes to set multiplier. For LP search for this array of bytes "2D 10 60 00 ?? ?? ?? ?? 2D 10 60 00" and change both the adress from the result and the one 8 bytes after it same way just like with NTSC-U codes.

Saying soo those are the codes for FFXII IZJS I just found, they will NOT work for your pal one you have to search for it on your own using above info or not;P, just posting as an example and couse IZJS didn't had those anywhere yet:
Code:
//exp multiplier
//x1 - disable code
patch=1,EE,203B6BC4,extended,0000A812
//2x
patch=1,EE,203B6BC4,extended,0002A840
//4x
patch=1,EE,203B6BC4,extended,0002A880
//8x
patch=1,EE,203B6BC4,extended,0002A8C0
//16x
patch=1,EE,203B6BC4,extended,0002A900
//32x
patch=1,EE,203B6BC4,extended,0002A940

//lp multiplier
//x1 - disable code
patch=1,EE,203B6D2C,extended,0060102D
patch=1,EE,203B6D34,extended,0060102D
//2x
patch=1,EE,203B6D2C,extended,00031040
patch=1,EE,203B6D34,extended,00031040
//4x
patch=1,EE,203B6D2C,extended,00031080
patch=1,EE,203B6D34,extended,00031080
//8x
patch=1,EE,203B6D2C,extended,000310C0
patch=1,EE,203B6D34,extended,000310C0
//16x
patch=1,EE,203B6D2C,extended,00031100
patch=1,EE,203B6D34,extended,00031100
//32x
patch=1,EE,203B6D2C,extended,00031140
patch=1,EE,203B6D34,extended,00031140
Reply
#3
miseru: is that the US code?
Reply
#4
Nope - IZJS - international zodiac job system, is japanese version;3, NTSC-U was already done, if you cannot find it, catch:
Code:
//Gain 2x EXP:
patch=1,EE,203B3EE4,extended,0002A840
//Gain 4x EXP:
patch=1,EE,203B3EE4,extended,0002A880
//Gain 8x EXP:
patch=1,EE,203B3EE4,extended,0002A8C0
//Gain 16x EXP:
patch=1,EE,203B3EE4,extended,0002A900
//Gain 32x EXP:
patch=1,EE,203B3EE4,extended,0002A940

//Gain 2x LP:
patch=1,EE,203B404C,extended,00031040
patch=1,EE,203B4054,extended,00031040
//Gain 4x LP:
patch=1,EE,203B404C,extended,00031080
patch=1,EE,203B4054,extended,00031080
//Gain 8x LP:
patch=1,EE,203B404C,extended,000310C0
patch=1,EE,203B4054,extended,000310C0
//Gain 16x LP:
patch=1,EE,203B404C,extended,00031100
patch=1,EE,203B4054,extended,00031100
//Gain 32x LP:
patch=1,EE,203B404C,extended,00031140
patch=1,EE,203B4054,extended,00031140

I simply took the defaults from NTSC-U and posted the info, anyone can find those for their FFXII version now;].
Reply
#5
Miseru99,

Thanks for your help
I was able to enable exp multiplier

On the contrary i didn't succeed in LP multiplier
I can't find the array of bytes "2D 10 60 00 ?? ?? ?? ?? 2D 10 60 00"
All that i found are six array like 2D 10 60 00 ?? ?? ?? ?? 2D 10

"change both the adress from the result and the one 8 bytes after it same way just like with NTSC-U codes."
I did'nt really understand what i should change on those array. The value of the array?

Thanks for your help


Here's my code for exp

gametitle= Final Fantasy XII [SLES 543.55] (E)
//exp 2x
patch=1,EE,203B60C4,extended,0002A840
Reply
#6
My sorry, in fact, it worked well,
The fact is contrary to exp, the display isn't modified. only see the result in menu.

LPx4:

patch=1,EE,20249324,extended,00031080
patch=1,EE,203B622C,extended,00031080

Thanks for your help.
Does this method work for all games or just ffXII?
Reply
#7
That's only for FFXII, only reason it's soo easy here that most codes between different versions of same game differ only by adress(most of the time all except those that changes dimenshions like Widescreen which differ between pal and ntsc through working on all different ntsc same way most of the time or affect added content that doesn't exist in other versions), soo if the code exist for one game version and you can ask someone for default values stored under those adresses(and potentially around it, couse it's usually easier to search for wider array of bytes instead of just 1-4 bytes), you can search those codes like that.

Codes that multiply something like exp are usually changing a variable of some equation. More or less you have to find calculated result first(assuming it's possible, if not then start from total counter, like exp that your character gets), then check what writes to it's adress and understand assembly code which calculates it then either change the code itself soo the result will be multiplied or one of the variables which will result in multiplying the result.
The main problem is that opcodes on ps2 differ from those on the pc(or soo I assume after my recent time waste of being interested in assembly) through and EE memory range inside pcsx2 memory stores raw ps2 memory before being interpreted by emulator, soo instead of Cheat Engine you would have to use ps2 disassembler or understand the ps2 assembly just by looking on hex and that's not soo user friendly. In other words it's much more troublesome than most people wish. There are some games which have items for multiplying exp/money/something else gained and that possibly makes it much easier to find, but it's not all soo common.
In load of RPG's the game divide the exp based on amount of characters in the active or total party, it can probably be used as well, through I never were interested in making such codes by myself(usually items and money counts much more as monsters commonly lvlup with players;P for example like in FFX, in FFXII whole game can be passed on lvl 1 as long as having end game items, there's even such game mode as new game+), soo it's pretty much only an idea I just had while writing that post.
Reply
#8
oh, if it wasn't I was gonna convert it
Reply
#9
Hey @all
Sorry for grabbing out an 1 Year old Thread Ninja

2 Days Ago i was searching for a Multiplier Code for XP and LP for SLES-54356 (DC2A467E) [DE]

And i found this Site, i used CheatEngine to search for the Address (Thanks to miseru99)

After 20 minutes i got both for XP and LP

Quote://EXP multiplier
//x1
patch=1,EE,203B60C4,extended,0000A812
//2x
patch=1,EE,203B60C4,extended,0002A840
//4x
patch=1,EE,203B60C4,extended,0002A880
//8x
patch=1,EE,203B60C4,extended,0002A8C0
//16x
patch=1,EE,203B60C4,extended,0002A900
//32x
patch=1,EE,203B60C4,extended,0002A940

//LP multiplier
//x1
patch=1,EE,203B622C,extended,0060102D
patch=1,EE,203B6234,extended,0060102D
//2x
patch=1,EE,203B622C,extended,00031040
patch=1,EE,203B6234,extended,00031040
//4x
patch=1,EE,203B622C,extended,00031080
patch=1,EE,203B6234,extended,00031080
//8x
patch=1,EE,203B622C,extended,000310C0
patch=1,EE,203B6234,extended,000310C0
//16x
patch=1,EE,203B622C,extended,00031100
patch=1,EE,203B6234,extended,00031100
//32x
patch=1,EE,203B622C,extended,00031140
patch=1,EE,203B6234,extended,00031140

Credits: Unknow Hacker of pcsx2.net, ported NTSC2PAL by Kadaji


The Way i used...

I didnt found the address for LP, i followed miserus posting with CheatEngine.

i was like "Wtf?"... and then i thought "hm, i should compare them oO"

PAL ->203B60C4
NTSC ->203B6BC4

From 0 to B are 11 Bytes right? (Calling it Bytes is correct or? im getting confusing with that Laugh )

LP NTSC
203B6D2C
203B6D34

And here the Same, from B to D are 2 Bytes, then i Add the same for LP

PAL
203B622C
203B6234

And BAM, its working Smile
Reply
#10
(07-31-2012, 06:33 PM)miseru99 Wrote: To make such code you have to have some idea about debugging and assembly and it's not always possible.

Hoewer there are such codes for FFXII NTSC-U which makes it very easy to just recreate them for any other FFXII version;].

In cheat engine set search range for EE memory which is 20000000-21FFFFFF, then uncheck "writable" as that code isn't there;]. Then make an aob scan for "12 A8 00 00 13 00 20 12" for exp multiplier, if it doesn't give any result, try searching for just 4 bytes hex 0x0000A812,  just use the values from NTSC-U codes to set multiplier. For LP search for this array of bytes "2D 10 60 00 ?? ?? ?? ?? 2D 10 60 00" and change both the adress from the result and the one 8 bytes after it same way just like with NTSC-U codes.

Saying soo those are the codes for FFXII IZJS I just found, they will NOT work for your pal one you have to search for it on your own using above info or not;P, just posting as an example and couse IZJS didn't had those anywhere yet:
Code:
//exp multiplier
//x1 - disable code
patch=1,EE,203B6BC4,extended,0000A812
//2x
patch=1,EE,203B6BC4,extended,0002A840
//4x
patch=1,EE,203B6BC4,extended,0002A880
//8x
patch=1,EE,203B6BC4,extended,0002A8C0
//16x
patch=1,EE,203B6BC4,extended,0002A900
//32x
patch=1,EE,203B6BC4,extended,0002A940

//lp multiplier
//x1 - disable code
patch=1,EE,203B6D2C,extended,0060102D
patch=1,EE,203B6D34,extended,0060102D
//2x
patch=1,EE,203B6D2C,extended,00031040
patch=1,EE,203B6D34,extended,00031040
//4x
patch=1,EE,203B6D2C,extended,00031080
patch=1,EE,203B6D34,extended,00031080
//8x
patch=1,EE,203B6D2C,extended,000310C0
patch=1,EE,203B6D34,extended,000310C0
//16x
patch=1,EE,203B6D2C,extended,00031100
patch=1,EE,203B6D34,extended,00031100
//32x
patch=1,EE,203B6D2C,extended,00031140
patch=1,EE,203B6D34,extended,00031140
How do you do that? Can you help me guys? I want to make 2x and 4x for FFX NTSC-U or FFX international NTSC-J
Reply




Users browsing this thread: 1 Guest(s)