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 :
https://ibb.co/t4V5L1H
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
https://ibb.co/QNkH2tw
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 :
https://ibb.co/zHn9J8D
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" :
https://ibb.co/FB33dW2
4 firsts bytes are the pointer, the beginning adress of instruction :
https://ibb.co/3BF0J0j
the rest is for the name :
https://ibb.co/9r8g2vb
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 :
https://ibb.co/M8Hryb3
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" :
https://ibb.co/85tMMv7
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.
https://ibb.co/cTVtBS7
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 :
https://ibb.co/DMCH4F8
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
https://www.mediafire.com/file/bs78h07o ... I.SCT/file
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.