How I've done to patch the ME131I.SCT file.
The goal was to import in PAL version with 4 langages, Ramirez's Blood.
It was easier to choose this way, than import 4 langages in jap version due to text encoding issue.
Thanks to all people who help me
How a skies of arcadia file is managed :
1) The first word of 4 bytes is not to be modified, it is the same for both versions, for me it is the name of the file :
Image ME131-I-SCT hosted in ImgBB
ibb.co
The second word of 4 bytes, I don't know what it is, I was thinking of a pointer or the file size check but the file is smaller...
fortunately no need to change this one
Image ME131-I-2-SCT hosted in ImgBB
ibb.co
The third word is the number of instructions, I add one instruction (lig123bdef), it's not the Ramirez's blood but it was in more in the jap version so I added it.
I patch this one from 0xC0 to 0xC1 :
Image Skies-of-arcadia-2 hosted in ImgBB
ibb.co
after that you have the instruction list starting at adress 0xC :
each instruction is managed on 0x14 bytes :
For example with the fourth called "l15cut1" :
Image Skies-of-arcadia-3 hosted in ImgBB
ibb.co
4 firsts bytes are the pointer, the beginning adress of instruction :
Image Skies-of-arcadia-4 hosted in ImgBB
ibb.co
the rest is for the name :
Image Skies-of-arcadia-5 hosted in ImgBB
ibb.co
In order to find the beginning of an instruction, you have to add to this pointer the list of instruction size !
For example :
l15cut1 (instruction number 4) the pointer is 0x498 in big endian, the list length in the patch file is 0xF20 (0xC1 * 0x14 + 0xC of file head length)
so to find the beginning of the instruction 0x498 + 0xF20 = 0x13B8
Each instruction starts by 0x09 00 00 00 :
Image Skies-of-arcadia-6 hosted in ImgBB
ibb.co
After the listing you have the code, at the end you can find a new listing of files that are called.
2) In first I compare the size of each instruction doing the difference length with the next pointer and the actual of the instruction :
example for init the first one :
0xC4 - 0x00 = 0xC4
I did it with US and JAP, because there are only one langage both.
i found that instructions : l18cut10, l18cut11, l18cut13 are bigger in jap version, and do the same size in US and PAL versions.
I imported the JAP datas in more in PAL version, simply by doing a copy and an insert.
I used the free software "beyond compare" :
Image Skies-of-arcadia-7 hosted in ImgBB
ibb.co
After that I have to patch the pointers of listing due to new datas.
add the datas adds to next pointers of l18cut10, l18cut11, l18cut13 and lig_13b_def until the end of listing.
3)
If you run the game with the file, you'll have a black screen...
It's because the pointers inside the code are not good anymore.
Each pointer have the format 0xXX XX 00 00, or 0xXX XX 01 00
Thanks to "beyond compare" there are now in red comparing PAL patch and JAP version in the code
The "small" pointers are not to patch because the code is not modified next of them.
There are still in black in beyond compare, but I checked them too in order to do not mistakes.
Image Skies-of-arcadia-8 hosted in ImgBB
ibb.co
Last thing to understand a pointer inside the code work by adding to his own adress to its number
for example with the one of the last screen capture :
0x00 01 31 B8 at adress 0x45AC
for locate the target :
0x1 31 B8 + 0x45AC = 0x1 7764
this one one target an other instruction :
Image Skies-of-arcadia-9 hosted in ImgBB
ibb.co
Last thing to care of is the text there are 4 pointers for each text than Jap have only one.
After a lot of patience the patch is done :-D
MediaFire is a simple to use free service that lets you put all your photos, documents, music, and video in a single place so you can access them anywhere and share them everywhere.
www.mediafire.com
So to finish the uncensored version, there is a last little issue with Gilder attack.
But we can consider is now good.
With this knowedge, I don't know if it's possible to import the Gamecube addings, but it can help for sure.