Those Gabi codes, at first glance, do appear to be correct, I haven't looked them up myself, but I think you did it right.
I'm sorry, I really would love to help you understand it, but I can only understand it enough to actually do it myself.
There's a lot of things that need to be learned in order to understand the process.
First I suggest you download my newest package of tools, I posted it a few posts back...
Kaochin is one of the Chaotic PKs, she is a Lord Partisan, and she is a returning character from wayyyyyy back in the anime .hack//SIGN.
Because she is generic, her job doesn't REALLY matter, she should be able to use any weapon.
Since she's masked on top of Piros, who normally only equips lances, she will equip lances.
In order to follow what we've done here, you'll need to have PS2DIS open (with the GU3.pis file open in PS2DIS)
That is how we look up out info.
To FIND what data belongs to Kaochin, we have to find
her. To do that we open Hackstract, and tell it to open the DATA.CVM file, which is on the GU3 Disc. It will search for all of the textures in the game and list them.
To find Kaochin's texture, which will lead us to her data in PS2DIS, we have to first know what Kaochin looks like... (Why would you want to use her if you didn't know what she looked like?)
She has Orange hair, Purple dress, and a squiggly 'S' mark on her forehead.
(To save trouble, her file should be in the folder labeled "2pcfz4" which is what we will look for in PS2DIS)
Numbers on the left side of PS2DIS are called "addresses" and the numbers on the right are called "values"
Addresses, as it sounds, is WHERE in the file something is. Values are WHAT is stored at that address.
Makes sense? Moving on.
In PS2DIS, we open the search window, (CTRL-F like in most programs will open it, or you can do "Edit > Find Pattern")
now, since 2pcfz4 is NOT a number, we make sure "As Hex String" is NOT checked, and we type in 2pcfz4, and tell it to search.
numbers it will find will be one of these
1. 004CB1F8
2. 0092E588
3. 00B374D4 (Ignore this last one, I don't know what the game needs it for)
The 00B~ address can't help us, so we ignore that one.
If the address you find is that one, redo the search and it will find the next place that 2pcfz4 is listed, which should be
either an 0092~ or an 004C~ number.
Either of those should work. Open up the search box again. This time we will be searching for the address we just found, because another address will have that number written in its value in order to find the file 2pcfz4.
I will search for 004CB1F8, since it is the first on the list. To do this search, we CHECK the "As Hex String" box, because it IS a number.
to search for a number like this we need to separate it into pairs, like this:
00 4C B1 F8
and order them in reverse like this:
F8 B1 4C 00
So, to search for 004CB1F8, we actually type F8 B1 4C 00 (or F8B14C00. With or without spaces, it doesn't care)
and tell it to search.
it will find an address and value like this:
0092e59c 004cb1f8
Now we search again for the address on the left, 0092e59c (we type it in this way: 9c e5 92 00)
and click search.
We won't find anything with that... BUT, the address just above 0092e59c 004cb1f8, is this, 0092e598 0092e588.
Recognize 0092e588? it's one of the addresses we found above,
1. 004CB1F8
2. 0092E588
3. 00B374D4 (Ignore this last one, I don't know what the game needs it for)
Because we know that 0092e588 is also one of the numbers we were looking for, we can search for the Address that has 0092e588 as its value. (Address -> 0092e598 0092e588 <- Value, remember?)
if we try searching for
that address, we find this.
The highlighted address and value is the number we JUST searched for.
It is in the very center of Kaochin's Model data. To find the beginning we look about 5 addresses above, to see something like this:
009AA77C 00000100
The start of a generic character's data will always look like that, having a series of 0's and a small number at the end like 00000100 is. (Or it could just be 00000000)
Now, because there are a lot of places in this file that 00000100 is written, we look at what data is around it too.
Looking right under the 00000100, we see a lot of Values that correspond to Addresses in the file and all of them are part of Kaochin's Model data. There are about 5 Values that point to 0092~ addresses.
This shows that we have found our generic character data. To make a code from it, we tell codebreaker to copy this data starting at the beginning (009AA77C 00000100).
The end of the data is usually a line with 41C00000 (it could vary a little bit but its usually that number)
Now, we see that Kaochin's data is 11 lines long, if we separate each line of Values into pairs, we see that there are exactly 4 pairs of numbers in every Value line. These pairs are called "bytes." 4 * 11 = 44. So, we need to copy 44 bytes, starting from the address 009AA77C, because that is where our data starts.
a copy code is always begun with a 5. to copy our data we type this (The first 0 on the very left of 009AA77C is not important, so the 5 goes there)
509AA77C
Now, we have to tell our copy code how many bytes we want to copy. Since we need to copy 44 bytes, (but codebreaker counts in hexadecimal, so 44 would look like this to codebreaker: 2C. Windows has a calculator program that can turn decimal numbers into hexadecimal numbers)
So, to finish the first line of our copy code (copy codes are always 2 lines long) we have this: 509AA77C 000000
2C
That will copy 0x2C (44) bytes of data from address 009AA77C (the beginning of Kaochin's data) to wherever we tell it.
To tell codebreaker WHERE to copy the data TO, we need the second line.
Piros's model data for his 2nd model (each character has 4) starts at address 0095AB8C. We know this because it is in the GUModelFAQ file ZED made. Look under the section labeled "SPC's" "Model Offsets")
Instead of using Piros's 2nd model, I'm going to us his first model. That, as you can see, starts at 0095AB60
We want to copy Kaochin's model data to that address, so that is the second line of our copy code, like this
0095AB60 00000000
The full code will be this
509AA77C 0000002C (where we copy from, and how many bytes to copy)
0095AB60 00000000 (where we copy to, followed by 0's. Always 0's)
Does all of that make sense? I guarantee it won't make FULL sense until you try it a few times and see what you're really doing.
On an unrelated note, here is the full code for a proper dual broadsword (Doubled stats since there's 2, custom name, etc)
Code: Select all
Spin Wings
50986F50 0000000C
00986F70 00000000
20988D28 002B0001 Dual Sword, level 43
20988D2C 00003268 13000GP
20988D30 0000004C +76 PATK
20988D44 FFFF0002 2 slots
20988D4C 01020304 4Rare
20446944 004C65E8 Spin
20447204 004C66F8 Wings