Tales of Innocence R
An attempt to create an English patch for Tales of Innocence R.
Discord: https://discord.gg/tmDgBDNPpE
Spreadsheet (Current): https://docs.google.com/spreadsheets/d/1hfZIQXpGyQw6dQtG_oVKI7bkO0teIUG9bXN9kKrANBw/edit?usp=sharing
Spreadsheet (Outdated): https://docs.google.com/spreadsheets/d/1X_-WfAYM5J2JL2uDAK0JPA9P8zGQHe2G3otozGymd1I/edit?usp=sharing
Hacker Note 1
- Get
pkg2ziphttps://github.com/mmozeiko/pkg2zip - Also, get
psvpfstoolshttps://github.com/motoharu-gosuto/psvpfstools - With
pkg2zip, extract thepkgpkg2zip.exeinnocenceR.pkg - It should produce this zip file
テイルズ オブ イノセンス R [PCSG00009] [JPN].zip. Extract it. - It should extract a folder named app, cut the folder PCSG00009 from it and paste it in the same folder as
psvpfstools - Then run
psvpfsparser.exe -i PCSG00009 -o PCSG00009_dec -z <zRif> -f http://cma.henkaku.xyz - Get
zRiffrom somewhere. - If everything's correct it will decrypt everything into the
PCSG00009_dec - You still need a Vita to decrypt the
EBOOT.BINas it is an FSELF and it's encrypted - Download
FAGDec.vpkhttps://github.com/CelesteBlue-dev/PSVita-RE-tools/raw/master/FAGDec/build/FAGDec.vpk - Install
FAGDec.vpkfrom Vita Shell. A new bubble should be on the home screen. - Select the
EBOOT.BINfile to decrypt and chooseSTART DECRYPT(ELF)
Hacker Note 2 (Outdated)
- Compile
psvita-l7ctool.exefrom the taikotools submodule and run this command:psvita-l7ctool.exe x toidata_release.l7c - You'll get a message
This archive type is unsupported and most likely won't unpack properly. - Files get extracted anyway, not sure if extracted correctly though:
_Data/Battle/Effect/00.pck
Hacker Note 3
- Skip Hacker Note 2
- Get
Kuriimu2from https://github.com/FanTranslatorsInternational/Kuriimu2/releases/tag/1.2.0 - Install .NET Core 3.1 Runtime
- Open
Kuriimu2.exeand go to File > Open with Plugin > plugin_bandai_namco.dll > L7C > OK - Select
toidata_release.l7c(decrypted from Hacker Note 1) - Right-click
_Dataand extract all. - View files in
UTF-8to get readable Japanese
Hacker Note 4
- ItemDataPack.dat = item name and description
- ArtsDataPack.dat - Magic
- EnemyParam = artes names, enemy names
- BattleBookDataPack.dat seems to be tutorial ( and also end of battle pop ups ?)
- these DAT files are easy enough that you could just write a simple Python script that extracts/inserts the text, Python can decode/encode UTF-8 natively
- first a 32-bit word that represents the number of "sub sections" or whatever you want to call them. then, starting from offset 0x10, there is a list of offset/size pairs that describes the sub sections. each sub section then contains a sequence of records. the records contain the text (besides others).
- the size of a record is always the same within a sub section, but can be different between different sub sections
- get from virtual address to offset in the file you'd need to subtract
0x80FFF000 - you only substract the offset to the text section from the base virtual address
abcde: if it uses 32-bit math you could try7F001000(positive)0x175AECat this offset there's a pointer to some text- the pointers where the lower 16 and upper 16 bits are a few instructions apart, because they're embedded into the code, and you need to extract the values from the instruction encoding (which abcde probably can't do)
- new line
0A
Hacker Note #4
- Change the
eboot.bin(the one with the 0x1000 SCE header) as follows: offset0x7B5E(should contain01 23) to00 23to fix monospace problem - Also, change the
eboot.binas follows: offset0x8630(should contain80 18) to40 18 - If
recompile.pydoesn't work, install python package "sortedcontainers", "click", and "pypng":pip install sortedcontainers,pip install click,pip install pypng - Get
Kuriiku2.exe(CMD version) to batch replace patched files:Kuriimu2.exe extensions batch-inject orig-dir patch-dir
orig-dir
data_release.l7c (as a file)
patch-dir
data_release.l7c (as a directory)
_data
announcement
announcement.anm
(followed by any number of files in the correct directory relative to the L7c)
Hacker Note #5
- Movie subs can be saved to .SRT format
Hacker Note #6
- Batch inject settings to create patch
Credits
Thanks to Ethanol for basically everything
Thanks to LT for for basically everything
Thansk to OnePieceFreak for basically everything
Mine for Translation Script: https://docs.google.com/document/d/12hoLXugMHRRiQ7YrqrB5nvLvxlpH9tIc7yisB_ZI_Y4/edit
kkhdigifantasy13 for Translation Guide: https://drive.google.com/file/d/1sbCzce3OMSNVEKuTcYGWufS-NWkJq4Th/view?usp=sharing
AppleKratue for Gameplay Guide: https://psnprofiles.com/guide/6120-tales-of-innocence-r-faq (https://twitter.com/talesofkratue)
Tools
https://gbatemp.net/threads/release-decrypt-and-launch-psn-store-vita-games-without-plugins.548878/
https://github.com/FanTranslatorsInternational/Kuriimu2
https://github.com/onepiecefreak3/taikotools
https://github.com/mariodon/taikotools




