(guides assume you're on Windows)
- download REtool
- download Ghost Trick filepath list
retool -h GTPD_PC_Release.list -x re_chunk_000.pak
primer:
- Ghost Trick runs on Capcom's RE Engine. REtool is an unofficial tool for dealing with the engine's file formats
- all resources are stored in a big file named
re_chunk_000.paklocated in the game's installation directory (which is accessible in steam through [right click] > Manage > Browse local files) - unlike a typical archive format like .zip/.rar/.7z, .pak files don't have filenames plainly stored in a way that REtool can reliably retrieve, so you also need to give it a list of names to read from so it knows what to name the things it's extracting. if you don't, you'll be stuck with a bunch of files without discernable names and your life will become harder
what to do:
- download RETool from the link above and extract
REtool.exeto the game's installation directory (the same folder asre_chunk_000.pak) - download the filepath list from the link above, into the same folder
- open a command prompt in that folder. there are a billion ways to do this but the easiest way is typing
cmdinto the address bar in file explorer - type
retool -h GTPD_PC_Release.list -x re_chunk_000.pakto extract everything. when it's done there'll be a folder namedre_chunk_000with all the stuff - you'll notice there are still hundreds of files without proper names (that look something like
15349567-2389623703.bin). this is normal and most of those files are unimportant/not unique to Ghost Trick, so you can ignore them. it happens because the list we passed to REtool has most but not all filenames, so anything missing will end up with a name like that
(everything here assumes you've just done all the things above)
- type
for /r %f in (*.tex.*) do retool -tex %f. this will recursively convert every .tex file to .dds, which is readable by image editing programs like paint.net
- they're just .wav files with an extra header in front. you have two options:
- if you have Python installed, run this script to convert to and from the format
- open up a hex editor (e.g. HxD) and remove the first 78 (0x4e) bytes, then change the file extension to .wav
- they're just .wmv files. change the file extension to .wmv and you're set
- except for
natives/stm/streaming/movie/igt_op_480x320_500kbps.mov.1, that's an .mp4
- download REMSG_Converter, and type
for /r %f in (*.msg.*) do remsg_converter %fto convert recursively to .csv, which you can open in excel or any text editor. add-m jsonto use json instead
- these are encrypted OpenType and TrueType font files. you can encrypt/decrypt them using REE.FontsCryptor from the REE.PAK.Tool repository (as of writing binaries aren't provided, you'll have to build it yourself)
- you can use the RE_RSZ 010 Editor template to read and edit these
(this is a non-exhaustive list)
- facepics/portraits:
natives/stm/charfiles/3d/08_face - backgrounds:
natives/stm/charfiles/2d/02_bg - character animations:
natives/stm/charfiles/2d/01_human - object animations:
natives/stm/charfiles/2d/03_gimmick - ui:
natives/stm/charfiles/3d/06_id
- bgm:
- remastered:
natives/stm/streaming/sound/bgm_new - original:
natives/stm/streaming/sound/bgm_resource
- remastered:
- sound effects:
natives/stm/streaming/sound/se_resource
- cutscenes:
natives/stm/streaming/gui/ui010500/tex - unused trailer:
natives/stm/streaming/movie
- it's all in
natives/stm/gamedesign/text
- they're in
natives/stm/gui/font/outlinefont
- Junkyard -
st01 - Pigeon Man's Office -
st02 - Prison -
st03 - The Chicken Kitchen -
st04 - Lady's Red Apartment -
st05 - Lynne's Apartment -
st06 - Kamila's Old House -
st07 - Office of the Troubled Man -
st09 - Drive to Chicken Kitchen -
st10 - Special Investigation Unit -
st11 - Temsik Park -
st13 - The Yonoa -
st14 - Prologue & Credits -
st15
- Sissel (human) -
cicel - Sissel (cat) -
neko(猫, lit. "cat") - Lynne -
linne - Ray -
kuneri - Nearsighted Jeego -
killera - Commander Sith -
sisu - Masked Muscleman -
migi(右, lit. "right") - "One Step Ahead" Tengo -
killerb - Kamila -
girl - Missile -
pome("pome[narian]") - Emma -
fujin(婦人, lit. "madam") - Amelie -
eimin(永眠, lit. "death") - Justice Minister -
daijin(大臣, lit. "minister") - Detective Mccaw -
keijig(刑事, lit. "detective g[reen]") - The Blue Detective -
keijib(刑事, lit. "detective b[lue]") - Odd Blue Doctor -
doc - Inspector Cabanela -
kaba - Detective Rindge -
caron - Guardian of the Park -
birakubari(ビラ配り, lit. "handing out leaflets") - Pigeon Man -
kanri(管理, lit. "management") - Chicken Kitchen Cook -
cock - Typical Cop -
keikan(警官, lit. "policeman") - Officer Bailey -
keibia(警備, lit. "guard a") - Rock Jailbird -
rock - Curry-loving Jailbird -
shujinb - Detective Jowd -
jodo - SIU Chief -
bucho(部長, lit. "department head") - Memry -
waitress - Dandy -
yukaib - Beauty -
yukaia - Chicken Kitchen Bartender -
barten("barten[der]") - Alma -
mama - Minor Crew Hand -
zako(雑魚, lit. "small fry")
- Fluffy Mod Manager - mod manager for RE Engine games (for modifying assets)
- REFramework - scripting and mod framework (for modifying game logic)




when RE Engine needs to load a file it first tries loading from the .pak, and if it can't find it there it resorts to loading loose files from the file system in the working directory as a fallback. generally when people mod the game they just null out (i.e. invalidate) the filepath hash in the .pak header, and then place their modded file in the file system next to the game executable; this is what Fluffy Mod Manager does, and it saves a lot of disk space compared to repacking the .pak file. if you want to do that anyway though, you can use REE.PAK.Tool (and it might be required for console versions of the game, though I have no experience there).
the vast majority of RE Engine games use Wwise for audio, but Ghost Trick (and a few others like Capcom Arcade Stadium) seem to use RE Engine's built-in sound system, which is what .asrc files are for. because they're in so few games I couldn't find any documentation for them, so everything in the script is what I could surmise by looking in a hex editor.
the bgm flag is set only for music and not sound effects, but I never confirmed what it actually does (streaming is just a guess). you should set it anyway to be consistent with the original files.
the audio source id you have to get from the original file with a hex editor. I planned on adding something to the script for printing out the info in the asrc header to make it easier, but never got around to it. as for why it's a thing...
there are two types of .asrc files, with the magic bytes "srch" and "srcd". srch files live in
natives/stm/soundand are basically stubs; they just contain the source id and not much else. srcd files are innatives/stm/streaming/sound, and contain a header + the actual audio data (hence "d"), so they're the ones you want to modify; they also contain the same source id as the srch file. the ids in both files must match or else the game won't be able to load the audio; that's why you can't just put any random number there. my best guess is that the ids are stored in a hashmap for sound caching or something similar.