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
- Get
pkg2zip
https://github.com/mmozeiko/pkg2zip - Also, get
psvpfstools
https://github.com/motoharu-gosuto/psvpfstools - With
pkg2zip
, extract thepkg
pkg2zip.exe
innocenceR.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
zRif
from somewhere. - If everything's correct it will decrypt everything into the
PCSG00009_dec
- You still need a Vita to decrypt the
EBOOT.BIN
as it is an FSELF and it's encrypted - Download
FAGDec.vpk
https://github.com/CelesteBlue-dev/PSVita-RE-tools/raw/master/FAGDec/build/FAGDec.vpk - Install
FAGDec.vpk
from Vita Shell. A new bubble should be on the home screen. - Select the
EBOOT.BIN
file to decrypt and chooseSTART DECRYPT(ELF)
- Compile
psvita-l7ctool.exe
from 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
- Skip Hacker Note 2
- Get
Kuriimu2
from https://github.com/FanTranslatorsInternational/Kuriimu2/releases/tag/1.2.0 - Install .NET Core 3.1 Runtime
- Open
Kuriimu2.exe
and go to File > Open with Plugin > plugin_bandai_namco.dll > L7C > OK - Select
toidata_release.l7c
(decrypted from Hacker Note 1) - Right-click
_Data
and extract all. - View files in
UTF-8
to get readable Japanese
- 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)0x175AEC
at 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
Change the eboot.bin
(the one with the 0x1000 SCE header) as follows: offset 0x7B5E
(should contain 01 23
) to 00 23
to fix monospace problem
Also, change the eboot.bin
as follows: offset 0x8630
(should contain 80 18
) to 40 18
If recompile.py
doesn't work, install python package "sortedcontainers" and "click": pip install sortedcontainers
, pip install click
Get kuriiku2.exe (CMD version) to batch replace patched files: Kuriimu2.exe extensions batch-inject orig-dir patch-dir
(haven't tested yet)
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)
- Movie subs can be saved to .SRT format
- Batch inject settings to create patch
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)
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