asmodean's reverse engineering page

news and updates / index of tools / message board

2014/03/27 / exah3pac updated

2014/03/24 / exanepak updated

2014/03/16 / exkhwag

You'd think one archive type would be sufficient.

// exkhwag.cpp, v1.0 2014/03/16
// This tool extracts IAF_ (*.wag) archives used by 恋する気持ちの花言葉.

// exkharc.cpp, v1.0 2014/03/16
// This tool extracts ARCC (*.arc) archives used by 恋する気持ちの花言葉.
Known to work with:

2014/02/28   HexenHaus   「恋する気持ちの花言葉」

*.wag, *.arc (sig=IAF_, ARCC)

2014/03/10 / exm2lib updated

2014/03/02 / exdieslib updated

2014/02/26 / exbelldat updated

2014/02/03 / exbelldat updated / exef2paz updated

2014/01/03 / exbelldat updated / exdieslib updated

2013/12/28 / exfleurdat

Somebody needs to think a little harder about what data types to compress.

// exfleurdat.cpp, v1.0 2013/12/28
// This tool extracts *.dat archives used in 妹*シスター.
Known to work with:

2013/11/29   fleur-soft   「妹*シスター」

script.dat (sig=none)

2013/12/26 / decrddns2 updated / exifdypf updated / exescarc updated

2013/12/08 / exoozoarc updated

2013/11/26 / exmaotarc updated / expdfpk updated / exbelldat updated

2013/11/11 / junk updated

2013/11/07 / junk updated

2013/10/30 / exbsa updated

2013/10/22 / exbszdat

Now with Unity, lazy game makers can create bloated messes like never before!
The future is now.

Note that merge_spm2 will search for SPM by signature, so you can run it against resources.assets or the subresource containing them. (UAE names it resources_24668.-6, but that seems like a bug...)

// exbszdat.cpp, v1.0 2013/10/22
// This tool extracts GX4Lib (*.dat) archives used by バルドスカイ ゼロ.

// mergebszvis.cpp, v1.0 2013/10/22
// This tool merges the event images from バルドスカイ ゼロ.

// merge_spm2.cpp, v1.0 2013//10/22
// This tool merges images specified by serialized SPM VER-2.00 objects
// in バルドスカイ ゼロ.
Known to work with:

2013/09/27   戯画   「バルドスカイ ゼロ」

*.dat (sig=GX4Lib)

2013/10/13 / misceri updated

2013/10/12 / exmed updated

2013/10/04 / exhappyend

The PHYR (*.phyre) data is a blob of painfully bloated serialized objects.
I'm surprised a serious game engine would be so wasteful...

Anyway, I didn't feel like parsing out the complete heirarchy of useless junk so I just did some ghetto extraction of graphic data. Yes, it's lame.

// exhappyend.cpp, v1.0 2013/10/04
// This tool extracts GPDA64BY (*.dat) archives used by 
// Ore no Imouto ga Konna ni Kawaii Wake ga Nai: Happy End (PS3).
Known to work with:

2013/09/26   Bandai Namco Games   「俺の妹がこんなに可愛いわけがない。 Happy End (PS3)」

*.dat; *.phyre (sig=GPDA64BY; PHYR)

2013/09/28 / extarc updated

2013/09/25 / spc2bmp

I wrote this a long time ago but never figured out what color format type 2 is.
At least for Phantom of Inferno that's mostly worthless data anyway.

// spc2bmp.cpp, v1.0 2011/05/01
// This tool converts *.spc / xtx images to bitmaps.

// exafs.cpp, v1.0 2007/01/18
// This tool extracts files from CRI's AFS (*.AFS) archives.
Known to work with:

2012/06/14   イエティ   「ルートダブル Before Crime After Days (XBOX360)」
2012/10/25   ニトロプラス   「Phantom PHANTOM OF INFERNO (XBOX360)」
2013/08/30   ニトロプラス   「Phantom PHANTOM OF INFERNO」

*.afs; *.spc (sig=AFS; xtx)

2013/09/25 / exbelldat updated

2013/09/15 / exkifint updated

2013/09/08 / exmaotarc updated / toxtweak updated

2013/09/06 / exwhaledat updated

2013/08/12 / exmaotarc updated

2013/08/10 / exbelldat updated / exnllpk updated

2013/07/18 / exdieslib updated

2013/07/15 / exmed updated

2013/07/14 / exnpa updated

2013/07/08 / exescarc updated

2013/06/21 / exvfs updated / exbelldat updated

2013/06/10 / exbrpak

// exbrpak.cpp, v1.0 2013/06/10
// This tool extracts *.pak archives used by 淫獄痴漢列車.
Known to work with:

2013/03/29   BLACKRAINBOW   「淫獄痴漢列車 〜A Molestertrain Named Desire〜」

*.pak (sig=none)

2013/06/05 / extk2fpk updated

2013/06/03 / exwhaledat updated / exnpa updated

2013/05/31 / exkifint updated

2013/05/27 / exkifint updated

2013/05/14 / exmed updated

2013/05/10 / exdxa updated / exmaotarc updated

2012/05/07 / ex1uparc

// ex1uparc.cpp, v1.0 2013/05/07
// This tool extracts \x00ARC (*.arc) archives.
Known to work with:

2013/02/22   One-up   「デデンデン!」

*.ARC (sig=\x00ARC)

2013/05/04 / exnllpk updated

2013/04/26 / exmaotarc updated

2013/03/08 / expdfpk updated

2013/03/07 / exsteldat updated

2013/03/03 / exmed updated

2013/02/22 / exyatpkg updated

2013/02/16 / exafa updated

2013/02/13 / Frequency Based Study Decks updated

2013/02/12 / Frequency Based Study Decks updated

2013/01/27 / exdieslib updated

2013/01/23 / exchpac updated

2013/01/20 / exbelldat updated

2013/01/17 / Frequency Based Study Decks

This is a Japanese vocabulary study deck for Anki, optimized for words that appear in Tales of Xillia 2. Anki implements a smart Spaced Repetition approach that tracks performance over multiple days and paces introduction of new cards.

Words in this deck are scheduled based on usage frequency in the games and contain sample usages drawn from the script (please don't sue me).

The idea is to provide study material that is immediately useful for something you (well, I ...) actually care about, rather than typical useless vocabulary about business and travel. The sample sentences provide an opportunity to recall in context, which I find accelerates learning.

I'm interested in feedback; let me know if you try this. I plan to produce more decks in the future, but may not clean them up for release unless it seems people are finding it useful.

Update 2012/01/19: see the EDICT documentation for details about markers in the definitions. For example, the (P) marker indicates more common usages. (Tales of Xillia 2 frequency deck)

Technical details...
This deck was produced using both Tales of Xillia 1 & 2. I wrote tools to extract game data and convert the scripts. Then I used mecab to analyze the sentence structure and extract root words. With that, I counted the frequency of each word to prioritize them. Definitions were extracted from the excellent EDICT.

Selecting sample sentences was a little complicated. I wanted to pick sentences long enough to mean something, but not be full of unknown words. The priority policy I settled on was to sum the frequency of all words and divide by the word count. i.e., try to bias towards sentences with common words. This works reasonably well, but I'm not extremely happy with the results. There's room to improve in this area.

While mostly automatic, the results were not completely perfect. I manually deleted some junk which got included due to various parsing quirks. I have also been cleaning up problems with individual cards as I see them. The most common complaint I have is with made-up game words which were parsed into individual kanji. Overall, I'm pretty happy with it though. I plan to publish revisions with further cleanup in the future.

2012/12/29 / toxtweak

The giant minimap in Tales of Xillia 2 drives me crazy; I can't stop staring at it all the time. So finally I had to do something about it ...

This bit of junk patches the game to disable various overlays. I tested with ToX2, but I think it will also work for ToX1. Let me know if you try it.

disable_minimap.txt: Disable the annoying minimap!
disable_chapter_label.txt: Disable the annoying Main Chapter / Character Episode label.
disable_bonus_label.txt: Disable the annoying Bonus Scene label during event scenes. (Haven't tested this yet...)
disable_all.txt: All of the above.
enable_all.txt: Enables everything (back to default).

If the game is already installed, remember to replace TLFILE.TLDAT in /dev_hdd0/game/BLJS10188_INSTALL/USRDIR.

// toxtweak.cpp, v1.0 2012/12/29
// This tool tweaks data in Tales of Xillia & Tales of Xillia 2 to disable
// the annoying minimap and other overlays.
Known to work with:

2012/12/29   Namco Bandai Games   「Tales of Xillia 2 (PS3)」


2012/12/26 / exchpac updated

2012/12/24 / new runtime and windows xp support

Recent tools have been rebuilt supporting Windows XP; the Visual Studio 2012 Update1 x86 runtime (JP) is required.

2012/12/23 / exmaotarc updated

2012/12/22 / exescarc updated / exef2paz updated

2012/12/02 / exkifint updated

2012/11/04 / expdfpk updated

2012/10/28 / misceri

Convert to PNG with erisacvt or whatever first, then use mergeeri to merge deltas.

// mergeeri.cpp, v1.0 2012/10/26
// This tool merges Entis Rasterized Image (*.eri) deltas.
Known to work with:

2012/10/26   ま〜まれぇど   「恋色マリアージュ」
2012/10/26   SYRUP-Honey Sweet-   「Chuしてあげちゃう〜押しかけお姉さんの性交恥療〜」

*.eri (sig=Entis Rasterized Image)

2012/10/24 / expf2

// expf2.cpp, v1.0 2012/10/24
// This tool extracts PF2 (*.pfs) archives.
Known to work with:

2012/08/31   D:drive.   「ツゴウノイイ彼女 〜Hカップいいなり服従委員長『遥』〜」

*.pfs (sig=PF2)

2012/10/13 / exbelldat updated / exdieslib updated

2012/10/01 / exwhaledat updated

2012/09/30 / exnllpk updated

2012/09/28 / exchpac updated

2012/09/14 / exmed updated

2012/09/04 / exfavbin

Old tools for this format but they discard the delta offsets...

I'm not sure how many older games this will work with; let me know results if you try anything.

// exfavbin.cpp, v1.0 2012/09/04
// This tool extracts *.bin archives used by FAVORITE and others.
Known to work with:

2012/08/31   FAVORITE   「いろとりどりのヒカリ」

*.bin (sig=none; hzc1, NVSG)

2012/09/03 / exdpk updated

2012/08/31 / decrddns2 updated

2012/08/28 / Visual Memory Add-in for Visual Studio updated

2012/08/20 / exyatpkg updated

2012/08/19 / junk updated

2012/08/14 / exnpa updated (okay, okay!)

2012/07/28 / exdosnpac updated / exmaotarc updated

2012/07/26 / exah3pac

I've been sitting on this for a while ... seems it supports more games than I realized. There's some nice character art in Persona 4 Arena at least.

Use xbdecompress from the XDK to decompress the data first. Unbundler from the XDK can unpack the the XPR2 (*.xpr) files. The sprites have a dummy palette by default; use hpal2bmp to insert the color variation of your choice.

// exah3pac.cpp, v1.01 2012/07/26
// This tool extracts images from FPAC (*.pac) archives used 
// by Arcana Heart 3 (XBOX360) and Persona 4 Arena (XBOX360).

// hpal2bmp.cpp, v1.0 2012/07/26
// This tool inserts (replaces) an HPAL (*.hpl) palette into a bitmap.
Known to work with:

2011/01/13   アークシステムワークス   「アルカナハート3 (XBOX360)」
2011/12/17   アークシステムワークス   「BLAZBLUE CONTINUUM SHIFT EXTEND (XBOX360)」
2012/07/26   アークシステムワークス   「ペルソナ4 ジ・アルティメット イン マヨナカアリーナ (XBOX360)」

*.pac; *.hip, *.hpl (sig=FPAC; HIP, HPAL)

2012/07/22 / exbelldat updated

2012/07/14 / exmhpac

// exmhpac.cpp, v1.0 2012/07/14
// This tool extracts *.pac archives used by マインドハッカー -お前の心は俺のモノ-.
Known to work with:

2012/07/13   ルナソフト   「マインドハッカー -お前の心は俺のモノ-」

*.pac (sig=none)

2012/07/03 / exkifint updated

2012/07/03 / exmaotarc

I thought the TOC was using some kind of strong encryption until I realized it's just spread all over the file...

// exmaotarc.cpp, v1.0 2012/07/03
// This tool extracts TACTICS_ARC_FILE (*.arc) archives used
// by 魔王のくせに生イキだっ!.
Known to work with:

2012/06/29   Luxury   「魔王のくせに生イキだっ!」

*.arc (sig=TACTICS_ARC_FILE)

2012/07/02 / exfp3 updated

2012/06/16 / excrxb updated

2012/06/10 / excrxb updated

2012/06/09 / excrxb

This works with various older CIRCUS games, but does not support one of the funky color formats.

// excrxb.cpp, v1.0 2012/06/08
// This tool extracts CRXB (*.crm) archives.

// crx2bmp.cpp, v1.03 2012/06/08
// This tool converts CRXG (*.crx) graphics to bitmaps.
Known to work with:

2012/04/27   CIRCUS   「D.C.III〜ダ・カーポIII〜」

*.crm; *.crx (sig=CRXB; CRXG, CRXD, CRXJ)

2012/06/08 / d3dslide updated

2012/05/31 / expcf updated

2012/05/30 / exbkarc updated

2012/05/29 / expdfpk updated / exszs updated

2012/05/26 / exkifint updated

2012/05/25 / exoozoarc

// exoozoarc.cpp, v1.0 2012/05/25
// This tool extracts *.arc archives used by この大空に、翼をひろげて.
Known to work with:

2012/05/25   PULLTOP   「この大空に、翼をひろげて」

*.arc (sig=none; PNAP)

2012/05/21 / expdfpk updated / miscmja updated / exbelldat updated / exef2paz updated

2012/04/27 / exgxp updated / exbelldat updated / exmed updated

2012/04/14 / exnpa updated

2012/04/01 / exdosnpac updated / miscmja updated

2012/03/31 / exmed updated

2012/03/30 / expimg

I didn't expect to see this garbage again so soon.

// expimg.cpp, v1.0 2012/03/30
// This tool extracts PSB (*.pimg) image composites used by DRACU-RIOT.

#, v1.0 2012/03/30
# This script merges layers extracted from PSB (*.pimg) composites used in DRACU-RIOT.
# Extract the composites and convert to PNG before using this.
Known to work with:

2012/03/30   ゆずソフト   「DRACU-RIOT!」

*.pimg (sig=PSB)

2012/03/29 / decrddns2 updated

2012/03/06 / exnllpk updated

2012/03/01 / exdpk updated

2012/02/26 / exmed updated / exdieslib updated / exfp3 updated

2012/02/22 / exdxa updated

2012/02/04 / exwhaledat updated

2012/01/27 / exchpac updated

2012/01/23 / exbelldat updated

2012/01/09 / exsui2rom

A lot of unnecessary convolution here...

There's a TOC with filenames but I didn't feel like looking at it.

// exsui2rom.cpp, v1.0 2012/01/09
// This tool extracts *.dat archives used by 水月 弐.
Known to work with:

2011/11/22   ピアッチ   「水月 弐 (PS3)」

rom/*.dat (sig=none)

2011/12/30 / exfp3 updated

2011/12/27 / exkifint updated

2011/12/24 / exfp3 updated / miscmja updated / exifdypf updated / exatuworks updated

2011/12/22 / exkizpak updated

2011/12/17 / exfp3 updated

2011/11/27 / exnpa updated / exdpk updated

2011/10/30 / decrddns2

I wish they'd at least use MD5 properly... Well, whatever. Use exns2 to extract after decrypting.

Updated 1.01: now supports 姦獄島.

// decrddns2.cpp, v1.01 2011/10/30
// This tool decrypts various *.ns2 archives; use exns2 to extract them
// afterwards.
Known to work with:

2011/10/25   Liquid-Shine   「姦獄島」
2011/10/28   TOUCHABLE   「妄想具現化AVG デイドリーム・ビリーバー」

*.ns2 (sig=none)

2011/10/29 / expdfpk updated

2011/10/28 / exfp3 updated

2011/10/21 / exbelldat updated / exfp3 updated / exanepak updated

2011/10/07 / miscmja updated

2011/10/02 / exdosnpac updated

2011/09/30 / exdieslib updated

2011/09/27 / exm2lib

This system uses a variety of convoluted data structures and serialization methods. I'm not sure why, since the basic data access and layers of function calls surely make this much less efficient than simpler formats...

I have to admit, though, I've never seen anybody encode blocks within an image in different pixel formats.

Updated 1.01: fixed a bug extracting scenario_info.psb.m.
Updated 1.02: fixed a bug extracting config_info.psb.m.

// exm2lib.cpp, v1.02 2011/09/29
// This tool extracts mxb (*_info.psb.m + *_body.bin) archives.
Known to work with:

2011/09/15   5pb.   「DUNAMIS15 (XBOX360)」

*.psb.m (sig=mxb, PSB)

2011/09/11 / exafa updated

2011/09/09 / exfp3 updated

2011/09/01 / expdfpk updated

2011/08/30 / gax2png

// gax2png.cpp, v1.01 2011/08/30
// This tool decrypts various data used by 虐襲4.
Known to work with:

2011/08/26   ANIM   「虐襲4」

*.gax (sig=none)

2011/08/28 / exfp3 updated

2011/08/27 / exwhaledat updated / exnllpk updated

2011/08/06 / exnllpk updated / exbsa updated

2011/08/02 / miscmja updated

2011/07/31 / exshikidat

Seems like there should be old tools supporting this format... but it was easier to rewrite than try to find something.

// exshikidat.cpp, v1.0 2011/07/31
// This tool extracts *.dat archives used by シキガミ. (YaneSDK?)
Known to work with:

2011/07/29   あかべぇそふとつぅTRY   「シキガミ」

*.dat (sig=none)

2011/07/30 / expdfpk updated

2011/07/22 / exbelldat updated

2011/06/29 / exdieslib updated

2011/06/28 / exdieslib updated

2011/06/26 / exfp3 updated

2011/06/26 / exgxp

// exgxp.cpp, v1.0 2011/06/26
// This tool extracts GXP (*.gxp) archives.
Known to work with:

2011/06/24   Chariot   「処女と魔王とタクティクス」

*.gxp (sig=GXP)

2011/06/23 / miscmja updated

2011/06/10 / exedendp5

I approve of the migration to using PNG instead of LZSS bitmaps.

// exedendp5.cpp, v1.0 2011/06/10
// This tool extracts DataPack5 (*.dat) archives used by キミとボクとエデンの林檎
// and possibly others.
Known to work with:

2011/06/10   ALMA   「キミとボクとエデンの林檎」

*.dat (sig=DataPack5)

2011/06/04 / exdpk updated

2011/06/03 / exmed updated

2011/06/01 / exbelldat updated

2011/05/29 / exnpa updated

2011/05/28 / miscmja updated

2011/05/27 / exkifint updated

2011/05/20 / exiga

It seems pretty silly to "compress" the filename table with an algorithm that never outputs less than a whole byte...

// exiga.cpp, v1.0 2011/05/20
// This tool extracts IGA0 (*.iga) archives.
Known to work with:

2011/05/20   Noesis   「CURE GIRL」

*.iga (sig=IGA0)

2011/05/18 / expdfpk updated

2011/05/01 / miscmja updated

2011/04/30 / exnllpk updated

2011/04/28 / exisa updated

2011/04/23 / exl6ren

All the different animation and delta formats are really annoying.

// exl5enj.cpp, v1.2 2011/04/23
// This tool extracts data from LINK5, LINK6 (*.arc) archives used by Atelier
// Kaguya's 艶女医 and others.  Animations can be extracted raw or as frames.
Known to work with:

2011/04/22   アトリエかぐやHonky-Tonk Pumpkin   「いじらレンタル〜エロあまおねえさんに貸し出されちゃった!!〜」

*.arc; *.alp, *.anm, *.plt (sig=LINK6; AP, AP-2, AP-3, AN00, AN20, AN21, PL10, BMR)

2011/04/23 / expdfpk updated

2011/04/22 / miscmja updated

2011/04/16 / exfp3 updated

2011/04/12 / exwhaledat updated

2011/04/08 / miscmja updated

2011/04/04 / exkifint updated

2011/04/01 / exdosnpac updated

2011/03/31 / exmed updated

2011/03/14 / exnnkarc

// exnnkarc.cpp, v1.0 2011/03/14
// This tool extracts SCXA (*.arc) archives used by Piaキャロットへようこそ!!4 -夏の恋活- (XBOX360).
Known to work with:

2011/02/24   カクテル・ソフト/PIACCI   「Piaキャロットへようこそ!!4 -夏の恋活- (XBOX360)」

*.arc (sig=SCXA)

2011/03/04 / exfp3 updated / exmed updated

2011/03/02 / exbsa updated

2011/03/01 / exmed updated

2011/02/28 / exmed

Updated: added merge_puregoddess for the delta fragments. Use it with _BGSET and _SPRSET extracted from
Updated 1.01: Fixed a bug. Now supports それでも妻を愛してる (体験版).

Note that md_cv*.med and may be a different archive type supported by exdxa.

// exmed.cpp, v1.01 2011/03/04
// This tool extract MD (*.med) archives.

// merge_puregoddess.cpp, v1.0 2011/03/01
// This tool merges delta images from 純潔★女神さまっ!.
Known to work with:

2011/02/25   ルネ   「純潔★女神さまっ!」
2011/03/04   ルネ Team Bitters   「それでも妻を愛してる (体験版)」

*.med; * (sig=MD; YB)

2011/02/26 / exnllpk updated

2011/02/25 / exkifint updated

2011/02/21 / exbelldat updated

2011/02/16 / exmwpak updated

2011/01/31 / exdieslib updated

2011/01/29 / expdfpk updated

2011/01/10 / exwhaledat updated

2010/12/28 / extricgf updated / exescarc updated

2010/12/26 / exwhaledat

Convert the TLG to bitmaps with common old tools then use mergewhaletlg to merge the deltas. Note that the game data seems to have some bugs in the delta positions. Suspicious merged output is marked as +checkme (most of them are ok though).

// exwhaledat.cpp, v1.0 2010/12/26
// This tool extracts Whale's *.dat archives.

// mergewhaletlg.cpp, v1.0 2010/12/26
// This tool merges images used by Whale.  Images should already be converted
// to raw bitmaps prior to using this.
Known to work with:

2010/12/24   ホエ〜ル   「俺の彼女はヒトでなし」

script.dat arc0.dat arc1.dat (sig=none)

2010/12/22 / exfp3 updated

2010/12/17 / exnpa updated

2010/12/17 / extarc

// extac.cpp, v1.0 2010/12/17
// This tool extracts TArc1.00 (*.tac) archives.
Known to work with:

2010/12/17   たぬきそふと   「少交女」

*.tac (sig=TArc1.00)

2010/12/05 / exk5

// exk5.cpp, v1.0 2010/12/05
// This tool extracts K5 (*.K5) archives.
Known to work with:

2010/04/16   美蕾   「ツンデレ★S乙女 -sweet sweet sweet-」

*.K5; *.k4 (sig=K5; K4)

2010/11/28 / exbelldat updated

2010/11/26 / exafa

Use Kouji's old Alice Soft plugin for the QNT images.

// exafa.cpp, v1.0 2010/11/26
// This tool extracts AFAH (*.afa) archives.
Known to work with:

2010/11/26   アリスソフト   「しゃーまんず・さんくちゅあり -巫女の聖域-」

*.afa (sig=AFAH)

2010/11/24 / exsec updated

2010/11/19 / extttdpk

Note that datadkh.sdat and datadkb.dat from Tears to Tiara Gaiden are encrypted; to extract them you must first build and run decrsdat on a DEV/JB PS3.

// extttdpk.cpp, v1.0 2010/11/19
// This tool extracts archives used by Tears To Tiara (PS3) & Tears to Tiara 
// Gaiden (PS3).

// decrsdat.cpp, v1.0 2010/11/19
// This tool decrypts PS3 SDAT data.  It must be run on a PS3; the list of source
// and destination files is sepcified in decrsdat.lst.

// Be aware that this is slow and you may be looking at a blank screen with the hdd
// activity light blinking for a while when decrypting large fles.
Known to work with:

2008/07/17   AQUAPLUS   「ティアーズ・トゥ・ティアラ 花冠の大地 (PS3)」
2009/09/17   AQUAPLUS   「ティアーズ・トゥ・ティアラ 外伝 アヴァロンの謎 (PS3)」

data.dkh+*.dpk (sig=HKS@,KPS@)
datadkh.sdat+datadkb.sdat (sig=HKS@,BKD@)

2010/11/02 / exuni2

// exuni2.cpp, v1.0 2010/11/01
// This tool extracts UNI2 (*.uni) archives.
Known to work with:

2010/10/28   アイディアファクトリー   「俺の嫁 -あなただけの花嫁- (XBOX360)」

*.uni (sig=UNI2)

2010/11/01 / miscmja updated

2010/10/31 / excandydat updated

2010/10/30 / exkifint updated

2010/10/20 / exfp3 updated

2010/10/15 / exykc updated

2010/10/15 / exarc2

The old tool I used for this format was croaking on one of 萌恋維新's archives so I had to write my own.

// exarc2.cpp, v1.0 2010/10/15
// This tool extracts ARC2 archives.
Known to work with:

2010/09/30   アーベルソフトウェア   「萌恋維新!〜アタシら、じぇいけー、新閃組!〜」

* (sig=ARC2)

2010/10/14 / extapak

After just seeing the fancy MotionPortrait stuff in another game, it's especially pathetic to see this one storing character graphics pre-composed with the backgrounds... Hello? Alpha-blending? It's 2010 now people.

// extapak.cpp, v1.0 2010/10/14
// This tool extracts *.pak archives used by 智代アフター 〜It's a Wonderful Life〜 (XBOX360).
Known to work with:

2010/09/22   プロトタイプ/Key   「智代アフター 〜It's a Wonderful Life〜 (XBOX360)」

*.pak (sig=none)

2010/10/14 / exwatfopck

The character portraits use MotionPortrait's technology. The textures are a mess of garbage I don't understand yet, so this tool does not extract them for now.

// exwatfopck.cpp, v1.0 2010/10/14
// This tool extracts *.pck archives used by WHITE ALBUM−綴られる冬の想い出− (PS3).
Known to work with:

2010/06/24   アクアプラス   「WHITE ALBUM−綴られる冬の想い出− (PS3)」

*.pck (sig=FileName)

2010/10/03 / exakbdat

Mostly junk, but the screensavers actually have some decent resolution art in them.

// exakbdat.cpp, v1.0 2010/10/03
// This tool extracts *.dat archives used by あかべぇそふとつぅ's desktop
// accessories.
Known to work with:

2010/09/23   あかべぇそふとつぅ   「赤箱2 デスクトップアクセサリー集」

*.dat (sig=none)

2010/10/02 / decrkansa updated

2010/09/28 / exyatpkg

I couldn't find the fragment offsets at first, so I actually converted the SLDT to something I could visualize and see if it described the offsets... That turned out to be a waste of time and I eventually found the offsets somewhere much more obvious. :P

Anyway, you can use to parse the scripts (*.evt) and generate various combinations. Where the scripts contains variables, it generates all possible combinations; pick the ones you like and delete the rest. And don't ask me about this, I didn't really care enough to waste as much time as I already have.

// exyatpkg.cpp, v1.0 2010/09/28
// This tool extracts *.pkg archives used by Yatagarasu.

#, v1.0 2010/09/28
# This tool merges event images used by Yatagarasu in ObsceneGuild.
# Extract images and scripts into the directory where you run this.
Known to work with:

2010/09/24   Yatagarasu   「ObsceneGuild -片翼の堕天使-」

*.pkg (sig=none)

2010/09/26 / exbelldat updated

2010/09/24 / miscmja updated / exl5enj updated

2010/09/23 / expdfpk updated

2010/09/20 / exef2paz updated

2010/08/30 / exnpa updated

2010/08/29 / exifdypf updated / exbsa updated / miscmja updated

2010/08/28 / exsgnpa

// exsgnpa.cpp, v1.0 2010/08/28
// This tool extracts *.npa archives used by STEINS;GATE PC.
Known to work with:

2010/08/26   ニトロプラス   「STEINS;GATE」

*.npa (sig=none)

2010/08/27 / exfp3 updated / miscmja updated / exanepak updated / extcd3 updated / exdieslib updated

2010/08/18 / exdosnpac

Old tools for this format don't work for >2gb archives so I wrote something new.

// exdosnpac.cpp, v1.0 2010/08/18
// This tool extracts *.pac archives used by ドSなお姉さんは好きですか? and others.
Known to work with:

2004/09/24   smart   「フォーチュンクッキー セレクト」
2005/06/24   smart   「ぱいめが」
2005/07/01   Catarite   「色紙 -シキガミ-」
2006/10/27   ルネ   「妹巫女・萌」
2007/12/21   マリン   「人妻搾乳百貨店」
2009/08/28   COIN-SOFTWARE   「こすぶろ・はじめました!!」
2009/10/23   Tiaramode   「クレイジー★ラビッツ 別れさせ業の兎桐事務所」
2010/07/30   ピンヒール from lune   「ドSなお姉さんは好きですか?」

grd.pac (sig=none; none)

2010/08/10 / exsec updated

2010/08/10 / exnfcel

// exnfcel.cpp, v1.0 2010/08/10
// This tool extracts CP10 (*.cel) image composites.

// exafs.cpp, v1.0 2007/01/18
// This tool extracts files from CRI's AFS (*.AFS) archives.
Known to work with:

2010/02/25   アルケミスト   「のーふぇいと! -only the power of will- (XBOX360)」

*.afs, *.cel; *.tid (sig=AFS, CP10; TID)

2010/08/09 / exfp3 updated

2010/08/06 / miscmja updated

2010/08/01 / extcd3 updated

2010/07/31 / exmaspaz updated

2010/07/30 / exnllpk updated

2010/07/30 / exvfs

// exvfs.cpp, v1.0 2010/07/30
// This tool extracts VF (*.vfs) archives.
Known to work with:

2010/07/30   ソフトハウスキャラ   「BUNNYBLACK」

*.vfs; *.agf (sig=VF; AGF)

2010/07/24 / exrlarc updated / exbelldat updated

2010/07/06 / extricgf updated

2010/07/04 / exmoepack

// exmoepack.cpp, v1.0 2010/07/04
// This tool extracts MoePack (*.pac) archives.
Known to work with:

2010/06/24   システムソフト・アルファー   「戦極姫2 -葉隠の乙女、風雲に乗ず- (XBOX360)」

*.pac (sig=MoePack)

2010/07/01 / exdieslib updated

2010/06/28 / exhxp updated

2010/06/27 / exdpk

// exdpk.cpp, v1.0 2010/06/27
// This tool extracts DPK (*.dpk) archives.
Known to work with:

2010/06/25   工画堂スタジオ   「白銀のカルと蒼空の女王」

*.dpk (sig=DPK)

2010/06/27 / exfp3 updated

2010/06/25 / gyu2bmp updated

2010/06/19 / exfp3 updated

2010/06/18 / expdfpk updated

2010/06/03 / Visual Memory Add-In for Visual Studio

This is an Add-In for Visual Studio. It adds dockable windows which allow the user to visually inspect memory of the process being debugged.

After loading this Add-In the Visual Memory windows can be accessed via a new menu added under Debug->Windows->Visual Memory. Up to four windows are supported.

See the included readme.txt for more information.


2010/05/30 / exbkarc updated / exnllpk updated

2010/05/29 / miscmja updated

2010/05/28 / exkifint updated

2010/05/04 / exkifint updated

2010/05/03 / miscmja updated

2010/05/03 / exsec

This tool decompresses most image data but I couldn't get the LZX data decoded properly. I think the XDK guys tweak this algorithm occasionally and it becomes incompatible. Anyway, it seems most of the interesting graphics data is ok. Maybe I'll take another look at the LZX data some day, but for now my eyes are tired from the nasty PowerPC assembly. So many registers and obscure instructions to keep track of...

// exsec.cpp, v1.0 2010/05/03
// This tool extracts secB (*.sec) archives.
Known to work with:

2008/11/27   Compile Heart   「Record of Agarest War アガレスト戦記 リアピアランス (XBOX360)」
2009/10/01   Compile Heart   「X-edge Dash クロスエッジダッシュ (XBOX360)」

*.sec; *.tid (sig=secB; TID)

2010/05/01 / exbelldat updated

2010/04/30 / exifdypf updated

2010/04/24 / miscmja updated

2010/04/23 / exdxa

... 640x480 in 2010? What a waste of time.

// exdxa.cpp, v1.0 2010/04/23
// This tool extracts *.dxa archives.
Known to work with:

2010/04/23   牛乳戦車   「最強御主人様!−Mighty My Master−」

*.dxa (sig=none)

2010/03/30 / exmaspaz updated

2010/03/28 / exkizpak updated

2010/03/28 / excandydat

Wow, .NET assemblies, embedded Python scripting and SQL databases! Talk about bloated. :)

// excandydat.cpp, v1.0 2010/03/28
// This tool extracts filelist.db+*.dat archives used in Candy Doll.
Known to work with:

2010/03/26   ALL-TiME   「Candy Doll」

filelist.db+*.dat (sig=none)

2010/03/27 / exiar updated

2010/03/04 / exhecdat

This was a little bit interesting since I had not looked at .NET assemblies before.

// exhecdat.cpp, v1.0 2010/03/04
// This tool extracts *.lib+*.dat archives used by Hecate.
Known to work with:

2010/02/26   Hecate   「お姫様は、ぱんてられお」

*.lib+*.dat (sig=none)

2010/02/27 / extk2fpk updated

2010/02/26 / miscmja updated

2010/02/12 / exbelldat updated

2010/02/12 / exkifint updated

2010/02/01 / miscmja updated / exdebopak updated

2010/01/31 / exrlarc

Maybe somebody felt things were too obvious last time, since they switched to using an ISAAC PRNG. Try harder guys. :)

// exscharc.cpp, v1.1 2010/01/31
// This tool extracts data from ARC archives used by Trample on Schatten!!
// and other games.  Compile with -DRUNELORD for Rune Lord variation.

// cpb2bmp_rl.cpp, v1.0 2010/01/31
// This tool converts TYP1 (*.cpb) images used by Rune Lord.
Known to work with:

2010/01/29   CLOCKUP team DYO   「ルーンロオド」

*.arc (sig=none)

2010/01/30 / exmpf2

// exmpf2.cpp, v1.0 2010/01/30
// This tool extracts MPF2 (*.dat+*.a01 etc) archives.
Known to work with:

2010/01/29   APRICOT   「ゆにばる! PARANORMAL GIRLS STRIKE!!」

*.dat+*.a01 (sig=MPF2)

2010/01/29 / decrbrads updated

2010/01/24 / miscmja updated

2009/12/30 / exdieslib updated

2009/12/26 / exihkcap updated

2009/12/26 / exns2

Use decrkansa to decrypt 00.ns2 before extracting with this tool.

// exns2.cpp, v1.0 2009/12/26
// This tool extracts *.ns2 archives.  Use decrkansa first for encrypted
// archives.
Known to work with:

2009/12/25   Liquid-Touchable   「秘蹟神姫アルカナセイバー」

*.ns2 (sig=none)

2009/12/26 / decrkansa updated

2009/12/24 / exszs

// exszs.cpp, v1.0 2009/12/24
// This tool extracts SZS100 (*.szs) archives.
Known to work with:

2009/12/18   げーせん18   「出撃!!乙女たちの戦場 〜闇を切り裂く、にび色の徹甲弾〜」

*.szs (sig=SZS100)

2009/12/21 / exmnvdat updated

2009/12/20 / exlfa

This might work with some older Leaf games, but I haven't tried it. Let me know?

// exlfa.cpp, v1.0 2009/12/20
// This tool extracts Leaf's *.a archives.
Known to work with:

2009/12/18   Leaf   「Princess Collection」

*.a (sig=0x1EAF)

2009/12/20 / exlac updated

2009/12/19 / exlfar21

I'm already tired of having to reassemble chopped up textures like this ... but at least the game has very nice character art so it was worth the trouble.

// exlfar21.cpp, v1.0 2009/12/19
// This tool extracts ar21 (*.ar2) archives.

// fixlfpng.cpp, v1.0 2009/12/19
// This tool reassembles two types of fragmented image textures used by Leaf.

// exlfpim.cpp, v1.0 2009/12/19
// This tool extracts *.pim archives.
Known to work with:

2009/12/18   Leaf   「Final Dragon Chronicle -Guilty Requiem-」

*.ar2 (sig=ar21)

2009/12/18 / gyu2bmp updated / miscmja updated

2009/12/12 / exbelarc

Maybe next time they'll use 32-bit PNGs instead of junky masks.

Note that v2 is for しろくまベルスターズ♪. I expect v1 to work on a lot of older games but I haven't tried it.

// exbelarc.cpp, v1.0 2009/12/12
// This tool extracts data from *.arc archives used by しろくまベルスターズ♪.
// Compile with -DARC_VERSION=1 for older games.
Known to work with:

2009/12/11   PULLTOP   「しろくまベルスターズ♪」

*.arc; none (sig=none; WIPF)

2009/12/05 / exdpmx

// exdpmx.cpp, v1.1 2009/12/05
// This tool extracts data from DPMX (*.dpm) archives.
Known to work with:

2006/12/22   inspire   「femme fatale」
2009/12/04   PHAM!   「えろドラ!」

*.bin (sig=DPMX)
*.dpm (sig=DPMX)

2009/12/04 / expdfpk

// expdfpk.cpp, v1.0 2009/12/04
// This tool extracts data from FPK 0100 (*.fpk) archives used in Pretty Devil.
Known to work with:

2009/08/28   祭企画   「女子○2」
2009/11/27   ビタミン   「PrettyDevilパラダイス〜ミリオム魔界奪還指令!〜」
2009/11/27   ビタミン   「PrettyDevilミリオムおまけ劇場」

*.fpk; *.fbx (sig=FPK 0100; FBX)

2009/11/30 / miscmja updated

2009/11/29 / exkiss6dat

// exkiss6dat.cpp, v1.0 2009/11/29
// This tool extracts CAPYBARA DAT 001 (*.DAT) archives.
Known to work with:

2009/11/27   WINTERS   「KISS×600 管理人さんのポニーテール」

*.DAT (sig=CAPYBARA DAT 001)

2009/11/28 / exgr2

This is a really old archive format ... now with some basic RLE compression.

// exgr2.cpp, v1.0 2009/11/28
// This tool extracts PACK (*.GR2) archvies.
Known to work with:

2000/08/04   U・Me SOFT   「微笑みをもういちど」
2003/07/04   GLOBE   「さよならまゆみちゃん〜藤ノ森病院物語〜」
2004/03/05   青梅製作所   「狂乱〜狂った性活〜」
2009/11/27   CROSSOVER   「美乳淫妹 遥」

*.GR2; *.GR2 (sig=PACK; GR2_)

2009/11/28 / exbelldat updated

2009/11/27 / extcd3 updated / exkifint updated / exchpac updated

2009/11/20 / exkoigdat

This may be the the most retarded data obfuscation I've seen. It copies data from the end of the movies to the front, actually modifying them on disk temporarily to play them back...

// exkoigdat.cpp, v1.0 2009/11/20
// This tool extracts data from 恋衣 〜まずはコレ着て!〜
Known to work with:

2009/11/20   Catear   「恋衣 〜まずはコレ着て!〜」

*.DAT (sig=none)

2009/11/18 / exkkesui

Low resolution 640x480 PS2 graphics are pretty lame these days but since somebody asked me to look at this...

// exkkesui.cpp, v1.0 2009/11/18
// This tool extracts data from かのこん えすいー.
Known to work with:

2008/07/31   5pb.   「かのこん えすいー (PS2)」

*.DAT (sig=none)

2009/11/17 / exlnk4

This was irritating dealing with the block/delta image format, especially having to do so three different ways. Still, it's something I haven't seen before and was a bit interesting. The floating-point version I suspect is reassembled on the GPU, maybe in a pixel shader?

Usage of the merge tools is unusually complicated. The first parameter is the bitmap and the next is the delta data file (no extension). Passing auto where supported will guess paired filenames; it's usually right.

- merge_5bpfrag works with STEINS;GATE.

- merge_11ecfrag works with deltas in 11eyes CrossOver's chara.dat. Extracting everything will consume a *lot* of space.

- merge_11ecfrag2 works with deltas in 11eyes CrossOver's bg.dat. Note there are two bitmaps each for this one.

// exlnk4.cpp, v1.0 2009/04/09
// This tool extracts LNK4 (*.dat) archives.

// merge_5pbfrag.cpp, v1.0 2009/11/14
// This tool merges tiled fragments used by 5pb on the Xbox 360.

// merge_11ecfrag.cpp, v1.0 2009/11/15
// This tool merges tiled fragments used by 11eyes CrossOver (chara)

// merge_11ecfrag2.cpp, v1.0 2009/11/16
// This tool merges tiled fragments used by 11eyes CrossOver (bg).
// Input is two bitmaps and a descriptor file.
Known to work with:

2009/04/02   5pb./Lass   「11eyes CrossOver (XBOX360)」
2009/10/15   5pb./Nitro+   「STEINS;GATE (XBOX360)」

*.dat; * (sig=LNK4; none)

2009/10/31 / exanepak

The TOC changed to using 64-bit offsets; apparently 2GB is not enough for these guys. :)

The 32-bit offset version (v1) probably works with a lot of old games but I haven't tried it.

// exanepak.cpp, v1.0 2009/10/31
// This tool extracts obfuscated CGPACK.idx/pak archives from OLE-M.
Known to work with:

2009/10/30   OLE-M   「このままじゃ姉とSEXしてしまう!? あれ、弟よ、いま中でださなかった?」

CGPACK.idx+CGPACK.pak; *.gr (sig=none; none)

2009/10/31 / exmaspaz

The *.dat archives in ましろ色シンフォニー are standard paz archives despite the clever(?) disguise.

Note that this tool can also rebuild archives for anybody who might care.

// exmaspaz.cpp, v1.24 2009/10/31
// This tool extracts and rebuilds data from *.paz archives
Known to work with:

2009/10/30   ぱれっと   「ましろ色シンフォニー」

*.dat (sig=none)

2009/10/30 / exnllpk updated / exyox updated / exnpa updated

2009/10/23 / exnllpk updated / miscmja updated / excdt updated

2009/10/09 / extricgf updated

2009/09/30 / exdieslib updated

2009/09/25 / extropak

The version I posted earlier didn't deal with obfuscated data since I only looked at the character art. :)

Updated 1.02: now unobfuscates *.hse data.

// extropak.cpp, v1.02 2009/09/25
// This tool extracts PACK (*.pak) archives used by トロピカルKISS.
Known to work with:

2006/10/27   BLACKRAINBOW   「相姦遊戯」
2009/09/25   Twinkle   「トロピカルKISS」

*.pak; *.hse (sig=PACK; none)

2009/09/25 / exfp3 updated

2009/09/20 / exef2paz updated

2009/09/18 / miscmja updated

2009/08/14 / exmespac updated

2009/08/12 / exddp

I was surprised to find the home-grown looking compression algorithm is identical to one found in exhxp a while back. The archives share other similarities so maybe some coder has been moving around...

// exddp.cpp, v1.0 2009/08/12
// This tool extracts DDP2/DDP3 (*.dat) archives.
Known to work with:

2009/07/10   PIL   「仏蘭西少女」

*.dat (sig=DDP2, DDP3)

2009/08/08 / exdebopak

Long ago, I wrote a tool that automatically merges image-delta-fragments like those found here. I've been using it for years ... maybe I should do a little cleanup and release it some day.

// exdebopak.cpp, v1.0 2009/08/08
// This tool extracts PAK (*.pak) archives used by でぼの巣製作所 in 神楽道中記.
Known to work with:

2009/07/24   でぼの巣製作所   「神楽道中記」

*.pak (sig=PAK)

2009/08/08 / exbelldat updated

2009/08/07 / exl5enj updated

2009/08/04 / exhud

Simple is nice sometimes.

// exhud.cpp, v1.0 2009/08/04
// This tool extracts data from *.hud archives.
Known to work with:

2009/07/31   HUG   「明日はきっと、晴れますように」

*.hud (sig=none)

2009/08/04 / exifdypf updated

2009/08/04 / expcf

Apparently somebody is a fan of exotic algorithms. This format uses multiple block ciphers (AES, RC6, etc) and a tweaked implementation of SHA-256 for encryption. For data compression, it's using fancy Move-To-Front and Burrows-Wheeler transformations followed by custom RLE/LZ77 or Range Encoding. Finally, some images are compressed with a custom block algorithm that seems similar to JPEG without the DCTs.

Updated 1.01: Now supports Tiara予約特典 りゃぼディスク.
Updated 1.02: Now handles multi-block compression (fixes voice.pcf).

// expcf.cpp, v1.02 2009/08/05
// This tool extracts data from encrypted PackCode (*.pcf) archives.
Known to work with:

2009/07/31   Symphony   「Tiara」
2009/07/31   Symphony   「Tiara予約特典 りゃぼディスク」

*.pcf; *.gbc (sig=PackCode; GBCF)

2009/06/07 / d3dslide

I've been looking for a simple program to idle displaying images on my HTPC but nothing really did what I wanted. At least it was kindof fun learning Direct3D to write one myself.

This application displays an animated slideshow using a handful of effects smoothly animated using 3D hardware. The methods are optimized to always fill the screen (no black bars) and it tries to select methods appropriate to the aspect ratio of each image. In particular this does well against very tall images like magazine and stickposter scans.

A modern GPU with vertex shader 1.1 and pixel shader 2.0 is needed. More video RAM may allow you to use higher resolution textures. If you notice slight animation stutters sometimes during image transitions, try tweaking the MAX_TEXTURE_PIXELS values in d3dslide.ini. That can also be used to improve quality if you're feeling adventurous. :)

I haven't tested this on very much different hardware, so let me know how it goes. I am particularly interested in performance with very high resolution images (7000x3400 etc).

Updated 1.02
- Fixed a bug configuring the presentation method weights.
- Added a few new configuration options.
- Improved performance with large textures a little bit.
- Changed animation timing to be based on frames instead of real time; this makes it smoother particularly when dropping occasional frames.

// d3dslide v1.02 by asmodean

2009/06/30 / exsteldat

I'm surprised the obfuscation here got so much simpler.

// exsteldat.cpp, v1.0 2009/06/30
// This tool extracts data from Rosebleu's NEKOPACK (*.dat) archives.
Known to work with:

2009/06/26   Rosebleu   「Stellar☆Theater」

*.dat (sig=NEKOPACK)

2009/06/29 / gyu2bmp updated

2009/06/27 / exkizpak

Only supports the new versions; I don't care about ancient games.

// exkizpak.cpp, v1.0 2009/06/27
// Extracts KCAP (*.PACK) archives used by 痕−きずあと−.
Known to work with:

2009/06/26   Leaf   「痕−きずあと−」

*.pak; *.bjr (sig=KCAP; BM)

2009/06/23 / exnllpk updated / exdieslib updated

2009/06/02 / exvcpak

I kept looking at the scramble algorithm trying to figure out why it does several operations that result in constant values ... finally I concluded that whoever wrote the code is just an idiot.

// exvcpak.cpp, v1.0 2009/06/02
// This tool extracts data from Valkyrie Complex's *.PAK archives.
Known to work with:

2009/05/29   CIRCUS   「ヴァルキリーコンプレックス」

*.pak (sig=none)

2009/05/31 / exs4alf updated

2009/05/31 / exscharc

Thanks for the readme.txt informing that your obfuscation was based on the Mersenne Twister PRNG. ;)

// exscharc.cpp, v1.0 2009/05/31
// This tool extracts data from ARC archives used by Trample on Schatten!!.

// cpb2bmp.cpp, v1.02 2007/09/01
// This tool converts CPB (*.cpb) images to bitmaps. 
Known to work with:

2009/05/29   TAIL WIND   「Trample on Schatten!!〜かげふみのうた〜」

*.arc (sig=none)

2009/04/03 / exchpac updated

2009/03/31 / extricgf updated / exchpac updated / miscmja updated

2009/03/17 / exnpa updated

2009/03/08 / excfarc updated

2009/03/03 / exdieslib updated

2009/03/02 / miscmja updated

2009/02/08 / extcd3 updated

2009/02/02 / miscmja updated

2009/02/01 / miscmja updated / exkifint updated / exnllpk updated

2009/01/31 / decrbrads

I should have recognized more quickly that the encryption being used here is identical to decrkansa, but that seemed so unlikely that I ended up reversing it all over again. I guess some game makers have been cut&pasting crypto code.

This tool only decrypts the archives; use exbrdat to extract them.

// decrbrads.cpp, v1.0 2009/01/31
// This tool decrypt's BLACKRAINBOW's encrypted *.ads archives.
// Use exbrdat to extract afterwards.
Known to work with:

2009/01/30   BLACKRAINBOW   「相姦遊戯2」

*.ads (sig=none)

2009/01/31 / ex4ag updated

2009/01/29 / ar2bugfix

This tool fixes a crash, which many people have been wailing about, encountered when fighting Raki in the USA version of Ar Tonelico 2. NIS really made a mess out of the localization of this game ... there are other less deadly bugs, like the IPD contact text, that I might also clean up later.

Note that this tool is implemented as a scanner-patcher so that it will work with any target; run it against the game executable or any uncompressed disc image of the game.

Updated 1.01: This is a command line tool but I added a small delay so that novice users can drag&drop an ISO to it and have enough time to read the confirmation message.

// ar2bugfix.cpp, v1.01 2009/01/30
// This tool fixes a crashing bug encountered when fighting Raki in the
// USA release of Ar Tonelico 2 (SLUS_217.88).
Known to work with:

2009/01/20   Banpresto/GUST   「Ar Tonelico 2: Melody of Metafalica (PS2)」

SLUS_217.88, *.ISO (sig=none)

2009/01/25 / exar2

This can extract/rebuild RPK.BIN from Ar Tonelico 2 and also extract/rebuild the scripts (*.evd).

Script editting isn't terribly useful because text data is stored in several other places (including the *.ERX which seem to be executable overlays or something). But since I wasted some time looking at this I may as well release the tools and let people pretend they're going to redo the pathetic translation. Note that the scripts are SJIS text using wide-ascii(?) characters.

I suggest uema's iftm2 Susie plugin for the TIM2 (*.tm2) graphics since XnView screws up the color. Use bmp8to32 -fixalpha for correct transparency.

Updated: Added unlzr to decompress the LZR compressed data.

Updated: Added exar2fp to extract the *.fp archives (no rebuilding since I feel lazy). Also fixed a bug in unlzr.

// exar2rpk.cpp, v1.0 2009/01/22
// Extracts/rebuilds RPK archives used by Ar Tonelico 2.

// exar2fp.cpp, v1.0 2009/01/28
// Extracts multiple *.fp archives used by Ar Tonelico 2.

// unlzr.cpp, v1.01 2009/01/28
// Uncompresses LZR data (mostly TIM2 graphics) used by GUST.

// exar2evd.cpp, v1.0 2009/01/22
// Extracts/rebuilds EVD scripts used by Ar Tonelico 2.
Known to work with:

2009/01/20   Banpresto/GUST   「Ar Tonelico 2: Melody of Metafalica (PS2)」

RPK.BIN, *.fp; *.lzr (sig=none; LZR)

2009/01/02 / exnllpk updated

2009/01/02 / exald

I've been wondering what the AJP are so I wrote a tool to convert them... if I had realized they are mostly animation junk I would not have bothered. This only converts the AJP/masks, so use Kouji's susie plugin or something else for the QNT images.

// exald.cpp, v1.0 2009/01/02
// Extracts ALD archives used by AliceSoft.  AJP are converted to jpeg/bitmaps.
Known to work with:

2008/09/26   ALICESOFT   「AliveZ」

*.ald; *.ajp (sig=none; AJP)

2008/12/29 / message board online

I missed having an easy way for people to comment and report problems etc, so I put up an experimental message board; feel free to post so it seems worth while...

2008/12/28 / exnpa updated

2008/12/28 / exmespac

For some reason they changed the graphic formats drastically, using different compression and muliple filtering algorithms. The delta filter mode is reasonable but the type2 one is ... extremely obtuse. If anybody knows the name of the technique, please let me know.

Updated: Apparently the strange algorithm is converting a YUV colorspace to RGB. The weights aren't quite the same though.

// ge2bmp2.cpp, v1.0 2008/12/28
// This tool converts GE and PGD3 (*.pgd) images from M.E.s.  Use ge2bmp for
// other varieties of this format.

// exmarupac.cpp, v1.01 2008/06/27
// This tool extracts files from *.PAC archives used by STRIKE's マル秘人事部凌辱課.
// Use pgd2tga for the graphics.
Known to work with:

2008/12/19   セレス   「M.E.s. −同級生メイド調教−」

*.pac; *.pgd (sig=none; GE)

2008/12/27 / exihkcap

// exihkcap.cpp, v1.0 2008/12/27
// Extracts KCAP (*.PACK) archives used by Interheart.
Known to work with:

2008/12/26   INTERHEART   「悪戯麻雀」

data.pack (sig=KCAP)

2008/12/27 / exlac

It seems like I've seen extractors for these archives before but it was easier to rewrite than find an old tool.

DDS Converter has problems with most of the graphics, so I suggest using XnView to convert instead. I hope ugly 3D junk like this doesn't become common...

// exlac.cpp, v1.0 2008/12/27
// Extracts LAC (*.PAK) archives used by Leaf.

// extexpack.cpp, v1.0 2008/12/27
// Extracts TEX PACK0.02 (*.TEX) archives used by Leaf.
Known to work with:

2008/12/26   Leaf   「君が呼ぶ、メギドの丘で」

*.pak, *.tex; *.lgf (sig=LAC, TEX PACK0.02; lgf)

2008/12/27 / exdaf2 updated

2008/12/26 / extafarc updated

2008/12/23 / exbkarc updated

2008/12/22 / extskfdat

// extskfdat, v1.0 2008/12/22
// This tool extracts tskforce (*.dat) archives.
Known to work with:

2008/12/19   Digital+Cute   「むすめーかー」

*.dat (sig=tskforce)

2008/09/29 / miscmja updated

2008/09/12 / extvkarc updated

2008/09/12 / don't send flowers yet

Since people have been emailing me, yes, I am still alive.  It seems a lot of time has leaked away while I've been addicted to Soul Calibur 4; it's way too easy to spend all night playing online. :)  Now if only the Xbox360's d-pad worked correctly...

2008/07/27 / exbsa

An old tool for this format wasn't working very well, so I finally got around to writing something myself. For some reason I thought it was a lot more complicated than this ...

I'm not sure if this will work for older games.

// exbsa, v1.0 2008/07/27
// This tool extracts data from newer BSS-Arc (*.bsa) archives.
Known to work with:

2008/07/25   BISHOP   「毎日けだものっ!! らぶえろ☆ももいろ☆すくーるらいふ♪」

*.bsa (sig=BSS-Arc; BSS-Graphic, BSS-Composition)

2008/07/27 / exarc4 updated / miscmja updated

2008/07/26 / exdieslib updated

2008/07/26 / exwlcs

I was just thinking about how they never change this format ... and then they changed it. :)

// exwlcs, v1.0 2008/07/26
// This tool extracts data lcsebody+lcsebody.lst used by W触区〜新・学園妖触譚〜.
Known to work with:

2008/07/25   Lusterise   「W触区〜新・学園妖触譚〜」

lcsebody.lst+lcsebody (sig=none)

2008/07/25 / exbelldat updated

2008/07/19 / exkifint updated

2008/07/16 / temporary page online

Seems like asmodean's reverse engineering page at Rakuten has become unavailable. Their site had become annoyingly cluttered with ads and other junk, so it's nice to have some motivation to move ... but since I am lazy now and want to play Persona 4 instead, this ghetto temporary page will have to suffice for now. :)

No comments or BBS yet. Send email to asmodean [at] or find me on efnet IRC.

All source © 2006-2014, asmodean. Don't copy, learn.