too bad i have not followed earlier, as i could have provided the filelist.csv with id, size and offset, sorted and unsorted. i have done this myself on my desperate attempts with that free cpk maker. i thought nobody would care about this anymore and that those cpks are secured with crc
The tools are updated, I have tested what I could so it should work. Try them out and post the results Here is something like a guide:
About the tools General note: the tools can only modify files that are currently are in a cpk. You can not add new files (yet).
For quickly adding uncompressed small files to rootR, you can still use cpkforp. You cannot add the voice files with this and you have to be careful to not exceed the 2GB limit. You should only add the different files. For this, you can use a listfile I posted earlier or see what files are changed with tools like winmerge. Since this tool works I only fixed some typos.
For a complete repack, you can use cpkcr, it can remake cpk files with both compressed and uncompressed files. However, the program must know the size of every file before they were compressed, and it is easy to make errors in the listfile.
If you are a dev and you want to work with cpk files, you can use cpkbuild and tocdump. You can dump the header into separate files and make every kind of listfiles with tocdump, edit them and then rebuild cpks with these headers and uncompressed files as content. You have to copy the dumped headers to the folder of the unpacked files. I completely rewrote tocdump so it's actually can be very useful.
How to use cpkforp - this only works with rootR and small files. Get the listfile I posted before (or make your own with tocdump -dlist ip), then make a copy of this file and delete the lines you don't want to add. Place the new files to a folder, keeping the directories. Then run the program with the gui or command line and set the parameters.
cpkbuild with tocdump - unpack the content with the script to a dir, dump the header with tocdump and make a listfile wit id and path column. Copy the headers and listfile to the previous folder. You can edit the files now. When you finished, run cpkbuild. If you unpacked a mapfile and didn' modified anything, it should make a 1:1 copy of the original.
cpkcr - this should work with all cpk files. I will show an example:
First I use the modified unpack script (to keep compression) to unpack the jp rootR to rootR_JP folder and the us one to rootR_US. I copy the sysstring files to rootR_US ( Sys/en/SysString.bin and Sys/jp/SysString.bin ). Do this now, before you forget it I prepare the listfiles (extractedsize+pathname) of both files, rootR_jp_filesizes.txt and rootR_us_filesizes.txt.
Mixing the files:
Now I copy the files that I want to modify from the US dir to the JP dir (or reversed, copy the files you want to keep original to the US dir). In this example, I keep the original voices and the two font files ( /snd/ and /Sys/Font...).
Now comes the part where you can make errors. My new file will consist of mostly US files, so I make a copy of rootR_us_filesizes.txt (eg. rootR_mixed.txt) and replace the lines in it with the lines from rootR_jp_filesizes for those lines where I kept the original files. You have to copy the lines for the files you copied over. I kept the voices and fonts so I have to copy those lines over where the filename starts with snd/ (lines 2047-84), Sys/FontBinary2.bin (line 2094) and Sys/FontTexture2.tex (line 2095). This must be done correctly or the cpk will not work correctly. This step is a lot easier for the mapXR files
Now that I have a folder and listfile with mixed content, I can run the program. If you have already made a copy of rootR (it should work with both the jp and us one) then you can use -f to set it as an input/output file or use -f2 to set an original rootR for reading headers and an output file for writing (if the two are the same file, it is just like -f ), but check if you have 2GB of free space (this time I use -f2 rootR_JP.cpk rootR_mixed.cpk). Set the directory of the mixed files and set the listfile of it (in this case the JP dir and rootR_mixed.txt). I recommend -v too. Start the program, and it will make your cpk in a few minutes.
Testing before transfer:
You can always test the files on PC with the (original) unpacker script. If it can unpack it then it will probably work in game too. Then copy over to your Tales dir on PS3 and optionally to the install data too (if the files don't match it will copy the files from the main dir there anyway).
When you copy lines over from one listfile to another you have to replace the lines and keep the file order. The only difference can be only the extracted size! (The files are in the same order as in Toc). If the extracted sizes are not correct it will cause infinite loading (as the game could not extract the files correctly). If your file is not compressed (like the us SysString files), the extracted size will equal the file size. If you use your own lists, note that in the us rootR there are some leftover files that I already removed from the attached list.