(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)




RE Engine paks only have a list of filepath hashes (murmur3) in the header rather than the filepaths themselves. thankfully the RSZ data (.user, .pfb, .scn) refer to files by path, and the engine hashes those paths on the fly to find them in the pak file. that's why retool needs a list of known filepaths; it compares each filepath hash to the hashes of each path in the list to find a match.
i made the filelist by naively searching through each RSZ file with regex for things that look like filepaths, doing a bunch of other ugly post-processing on that list to find more paths (e.g. giving each path all the language-specific file extensions), then giving the result to retool, which will filter out all the bad paths (since they don't match any hash in the pak file). this is definitely not the best way, it's far better to parse the RSZ files properly using e.g. the 010 Editor template linked above and then searching its hierarchy for filepaths instead (or better yet, just throw every unique string in the list; retool will take a while but at least you know for sure you're not missing anything).
some filepaths are hardcoded into the engine so their paths are in the game executable rather than referenced by files in the pak. for those you can use the live path dumper at https://github.com/praydog/REFramework/tree/master/reversing/scripts/pathdumper which will list out all the paths the game loads at runtime. this can be used to dump the paths in the RSZ files too but you won't get anything that the game doesn't try to access (e.g. if you don't get to chapter 2 in-game, it can't dump the filepaths for its assets because the game never loads them).
tldr: it's not a fun process and you're better off waiting a few weeks for someone else to make a list for everyone to use. i ended up doing it for ghost trick only because i really wanted to extract some of the game's animations and i had some time on my hands to learn about how re engine works