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.zip

Contents:
// exkhwag.cpp, v1.0 2014/03/16
// This tool extracts IAF_ (*.wag) archives used by ������C�����̉Ԍ��t.

// exkharc.cpp, v1.0 2014/03/16
// This tool extracts ARCC (*.arc) archives used by ������C�����̉Ԍ��t.
Known to work with:

2014/02/28   HexenHaus   �u������C�����̉Ԍ��t�v

*.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.zip

Contents:
// exfleurdat.cpp, v1.0 2013/12/28
// This tool extracts *.dat archives used in �����V�X�^�[.
Known to work with:

2013/11/29   fleur-soft   �u�����V�X�^�[�v

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.zip

Contents:
// exbszdat.cpp, v1.0 2013/10/22
// This tool extracts GX4Lib (*.dat) archives used by �o���h�X�J�C �[��.

// mergebszvis.cpp, v1.0 2013/10/22
// This tool merges the event images from �o���h�X�J�C �[��.

// merge_spm2.cpp, v1.0 2013//10/22
// This tool merges images specified by serialized SPM VER-2.00 objects
// in �o���h�X�J�C �[��.
Known to work with:

2013/09/27   �Y��   �u�o���h�X�J�C �[���v

*.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.zip

Contents:
// 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   �u���̖�������Ȃɉˆ����킯���Ȃ��B Happy End (PS3)�v

*.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.zip

Contents:
// 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   �C�G�e�B   �u���[�g�_�u�� Before Crime After Days (XBOX360)�v
2012/10/25   �j�g���v���X   �uPhantom PHANTOM OF INFERNO (XBOX360)�v
2013/08/30   �j�g���v���X   �uPhantom PHANTOM OF INFERNO�v

*.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.zip

Contents:
// exbrpak.cpp, v1.0 2013/06/10
// This tool extracts *.pak archives used by �����s�����.
Known to work with:

2013/03/29   BLACKRAINBOW   �u�����s����� �`A Molestertrain Named Desire�`�v

*.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.zip

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

2013/02/22   One-up   �u�f�f���f���I�v

*.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.

tox2deck.zip (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.zip

Contents:
// 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   �uTales of Xillia 2 (PS3)�v

FILEHEADER.TOFHDB, TLFILE.TLDAT (sig=none)


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.

misceri.zip

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

2012/10/26   �܁`�܂ꂥ��   �u���F�}���A�[�W���v
2012/10/26   SYRUP-Honey Sweet-   �uChu���Ă������Ⴄ�`�����������o����̐���p�Á`�v

*.eri (sig=Entis Rasterized Image)


2012/10/24 / expf2

expf2.zip

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

2012/08/31   D�Fdrive.   �u�c�S�E�m�C�C�ޏ� �`H�J�b�v�����Ȃ蕞�]�ψ����w�y�x�`�v

*.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.zip

Contents:
// 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   �u����Ƃ�ǂ�̃q�J���v

*.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.zip

Contents:
// 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   �A�[�N�V�X�e�����[�N�X   �u�A���J�i�n�[�g3 (XBOX360)�v
2011/12/17   �A�[�N�V�X�e�����[�N�X   �uBLAZBLUE CONTINUUM SHIFT EXTEND (XBOX360)�v
2012/07/26   �A�[�N�V�X�e�����[�N�X   �u�y���\�i�S �W�E�A���e�B���b�g �C�� �}���i�J�A���[�i (XBOX360)�v

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


2012/07/22 / exbelldat updated

2012/07/14 / exmhpac

exmhpac.zip

Contents:
// exmhpac.cpp, v1.0 2012/07/14
// This tool extracts *.pac archives used by �}�C���h�n�b�J�[ -���O�̐S�͉��̃��m-.
Known to work with:

2012/07/13   ���i�\�t�g   �u�}�C���h�n�b�J�[ -���O�̐S�͉��̃��m-�v

*.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.zip

Contents:
// exmaotarc.cpp, v1.0 2012/07/03
// This tool extracts TACTICS_ARC_FILE (*.arc) archives used
// by �����̂����ɐ��C�L�����I.
Known to work with:

2012/06/29   Luxury   �u�����̂����ɐ��C�L�����I�v

*.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.zip

Contents:
// 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   �uD.C.III�`�_�E�J�[�|III�`�v

*.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.zip

Contents:
// exoozoarc.cpp, v1.0 2012/05/25
// This tool extracts *.arc archives used by ���̑��ɁA�����Ђ낰��.
Known to work with:

2012/05/25   PULLTOP   �u���̑��ɁA�����Ђ낰�āv

*.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.zip

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

# merge_pimg.pl, 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   �䂸�\�t�g   �uDRACU-RIOT�I�v

*.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.zip

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

2011/11/22   �s�A�b�`   �u���� �� (PS3)�v

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.zip

Contents:
// 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   �u�������v
2011/10/28   TOUCHABLE   �u�ϑz���AVG �f�C�h���[���E�r���[�o�[�v

*.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.zip

Contents:
// 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.   �uDUNAMIS15 (XBOX360)�v

*.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.zip

Contents:
// gax2png.cpp, v1.01 2011/08/30
// This tool decrypts various data used by �s�P�S.
Known to work with:

2011/08/26   ANIM   �u�s�P�S�v

*.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.zip

Contents:
// exshikidat.cpp, v1.0 2011/07/31
// This tool extracts *.dat archives used by �V�L�K�~. (YaneSDK?)
Known to work with:

2011/07/29   �����ׂ����ӂƂ‚�TRY   �u�V�L�K�~�v

*.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.zip

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

2011/06/24   Chariot   �u�����Ɩ����ƃ^�N�e�B�N�X�v

*.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.zip

Contents:
// exedendp5.cpp, v1.0 2011/06/10
// This tool extracts DataPack5 (*.dat) archives used by �L�~�ƃ{�N�ƃG�f���̗ь�
// and possibly others.
Known to work with:

2011/06/10   ALMA   �u�L�~�ƃ{�N�ƃG�f���̗ь�v

*.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.zip

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

2011/05/20   Noesis   �uCURE GIRL�v

*.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.

exl6ren_nosrc.zip

Contents:
// 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   �A�g���G������Honky-Tonk Pumpkin   �u�����烌���^���`�G�����܂��˂�����ɑ݂��o���ꂿ������I�I�`�v

*.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.zip

Contents:
// exnnkarc.cpp, v1.0 2011/03/14
// This tool extracts SCXA (*.arc) archives used by Pia�L�����b�g�ւ悤�����I�I4�@-�Ă̗���- (XBOX360).
Known to work with:

2011/02/24   �J�N�e���E�\�t�g/PIACCI   �uPia�L�����b�g�ւ悤�����I�I4�@-�Ă̗���- (XBOX360)�v

*.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 md_scr.med.
Updated 1.01: Fixed a bug. Now supports ����ł��Ȃ������Ă�@�i�̌��Łj.

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

exmed.zip

Contents:
// 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 ���������_���܂��I.
Known to work with:

2011/02/25   ���l   �u���������_���܂��I�v
2011/03/04   ���l Team Bitters   �u����ł��Ȃ������Ă�@�i�̌��Łj�v

*.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.zip

Contents:
// 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   �z�G�`��   �u���̔ޏ��̓q�g�łȂ��v

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


2010/12/22 / exfp3 updated

2010/12/17 / exnpa updated

2010/12/17 / extarc

extarc.zip

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

2010/12/17   ���ʂ����ӂ�   �u�������v

*.tac (sig=TArc1.00)


2010/12/05 / exk5

exk5.zip

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

2010/04/16   ���Q   �u�c���f����S���� -sweet sweet sweet-�v

*.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.zip

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

2010/11/26   �A���X�\�t�g   �u����[�܂񂸁E���񂭂��゠�� -�ޏ��̐���-�v

*.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.zip

Contents:
// 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   �u�e�B�A�[�Y�E�g�D�E�e�B�A�� �Ԋ��̑�n (PS3)�v
2009/09/17   AQUAPLUS   �u�e�B�A�[�Y�E�g�D�E�e�B�A�� �O�` �A���@�����̓� (PS3)�v

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


2010/11/02 / exuni2

exuni2.zip

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

2010/10/28   �A�C�f�B�A�t�@�N�g���[   �u���̉� -���Ȃ������̉ԉ�- (XBOX360)�v

*.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 �G���ېV's archives so I had to write my own.

exarc2.zip

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

2010/09/30   �A�[�x���\�t�g�E�F�A   �u�G���ېV�I�`�A�^�V��A���������[�A�V�M�g�I�`�v

* (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.zip

Contents:
// extapak.cpp, v1.0 2010/10/14
// This tool extracts *.pak archives used by �q��A�t�^�[ �`It's a Wonderful Life�` (XBOX360).
Known to work with:

2010/09/22   �v���g�^�C�v�^Key   �u�q��A�t�^�[ �`It's a Wonderful Life�` (XBOX360)�v

*.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.zip

Contents:
// exwatfopck.cpp, v1.0 2010/10/14
// This tool extracts *.pck archives used by WHITE ALBUM�|�Ԃ���~�̑z���o�| (PS3).
Known to work with:

2010/06/24   �A�N�A�v���X   �uWHITE ALBUM�|�Ԃ���~�̑z���o�| (PS3)�v

*.pck (sig=FileName)


2010/10/03 / exakbdat

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

exakbdat.zip

Contents:
// exakbdat.cpp, v1.0 2010/10/03
// This tool extracts *.dat archives used by �����ׂ����ӂƂ‚�'s desktop
// accessories.
Known to work with:

2010/09/23   �����ׂ����ӂƂ‚�   �u�Ԕ�2 �f�X�N�g�b�v�A�N�Z�T���[�W�v

*.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 merge_yatevt.pl 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.zip

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

# merge_yatevt.pl, 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   �uObsceneGuild -�З��̑“V�g-�v

*.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.zip

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

2010/08/26   �j�g���v���X   �uSTEINS�GGATE�v

*.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.zip

Contents:
// exdosnpac.cpp, v1.0 2010/08/18
// This tool extracts *.pac archives used by �hS�Ȃ��o����͍D���ł����H and others.
Known to work with:

2004/09/24   smart   �u�t�H�[�`�����N�b�L�[ �Z���N�g�v
2005/06/24   smart   �u�ς��߂��v
2005/07/01   Catarite   �u�F�� -�V�L�K�~-�v
2006/10/27   ���l   �u���ޏ��E�G�v
2007/12/21   �}����   �u�l�ȍ���S�ݓX�v
2009/08/28   COIN-SOFTWARE   �u�����Ԃ�E�͂��߂܂���!!�v
2009/10/23   Tiaramode   �u�N���C�W�[�����r�b�c �ʂꂳ���Ƃ̓e�ˎ������v
2010/07/30   �s���q�[�� from lune   �u�hS�Ȃ��o����͍D���ł����H�v

grd.pac (sig=none; none)


2010/08/10 / exsec updated

2010/08/10 / exnfcel

exnfcel.zip

Contents:
// 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   �A���P�~�X�g   �u�́[�ӂ����ƁI -only the power of will- (XBOX360)�v

*.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.zip

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

2010/07/30   �\�t�g�n�E�X�L����   �uBUNNYBLACK�v

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


2010/07/24 / exrlarc updated / exbelldat updated

2010/07/06 / extricgf updated

2010/07/04 / exmoepack

exmoepack.zip

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

2010/06/24   �V�X�e���\�t�g�E�A���t�@�[   �u��ɕP�Q -�t�B�̉����A���_�ɏ悸- (XBOX360)�v

*.pac (sig=MoePack)


2010/07/01 / exdieslib updated

2010/06/28 / exhxp updated

2010/06/27 / exdpk

exdpk.zip

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

2010/06/25   �H�擰�X�^�W�I   �u����̃J���Ƒ���̏����v

*.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.

VisualMemory
VisualMemory1.0.20120827-screenshot.png.


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.zip

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

2008/11/27   Compile Heart   �uRecord of Agarest War �A�K���X�g��L�@���A�s�A�����X (XBOX360)�v
2009/10/01   Compile Heart   �uX-edge Dash �N���X�G�b�W�_�b�V�� (XBOX360)�v

*.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.zip

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

2010/04/23   �������   �u�ŋ����l�l�I�|Mighty My Master�|�v

*.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.zip

Contents:
// 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   �uCandy Doll�v

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.zip

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

2010/02/26   Hecate   �u���P�l�́A�ς�Ă�ꂨ�v

*.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. :)

exrlarc_nosrc.zip

Contents:
// 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   �u���[�����I�h�v

*.arc (sig=none)


2010/01/30 / exmpf2

exmpf2.zip

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

2010/01/29   APRICOT   �u��ɂ΂�I PARANORMAL GIRLS STRIKE!!�v

*.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.zip

Contents:
// 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   �u��֐_�P�A���J�i�Z�C�o�[�v

*.ns2 (sig=none)


2009/12/26 / decrkansa updated

2009/12/24 / exszs

exszs.zip

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

2009/12/18   ���[����18   �u�o��!!���������̐�� �`�ł�؂�􂭁A�ɂѐF�̓O�b�e�`�v

*.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.zip

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

2009/12/18   Leaf   �uPrincess Collection�v

*.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.zip

Contents:
// 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   �uFinal Dragon Chronicle -Guilty Requiem-�v

*.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 ���낭�܃x���X�^�[�Y��. I expect v1 to work on a lot of older games but I haven't tried it.

exbelarc.zip

Contents:
// exbelarc.cpp, v1.0 2009/12/12
// This tool extracts data from *.arc archives used by ���낭�܃x���X�^�[�Y��.
// Compile with -DARC_VERSION=1 for older games.
Known to work with:

2009/12/11   PULLTOP   �u���낭�܃x���X�^�[�Y��v

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


2009/12/05 / exdpmx

exdpmx.zip

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

2006/12/22   inspire   �ufemme fatale�v
2009/12/04   PHAM!   �u����h���I�v

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


2009/12/04 / expdfpk

expdfpk.zip

Contents:
// 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   �Պ��   �u���q��2�v
2009/11/27   �r�^�~��   �uPrettyDevil�p���_�C�X�`�~���I�����E�D�Ҏw�߁I�`�v
2009/11/27   �r�^�~��   �uPrettyDevil�~���I�����܂�����v

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


2009/11/30 / miscmja updated

2009/11/29 / exkiss6dat

exkiss6dat.zip

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

2009/11/27   WINTERS   �uKISS�~600 �Ǘ��l����̃|�j�[�e�[���v

*.DAT (sig=CAPYBARA DAT 001)


2009/11/28 / exgr2

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

exgr2.zip

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

2000/08/04   U�EMe SOFT   �u���΂݂����������ǁv
2003/07/04   GLOBE   �u����Ȃ�܂�݂����`���m�X�a�@����`�v
2004/03/05   �”~���쏊   �u�����`�����������`�v
2009/11/27   CROSSOVER   �u�������� �y�v

*.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.zip

Contents:
// exkoigdat.cpp, v1.0 2009/11/20
// This tool extracts data from ���� �`�܂��̓R������!�`
Known to work with:

2009/11/20   Catear   �u���� �`�܂��̓R������!�`�v

*.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.zip

Contents:
// exkkesui.cpp, v1.0 2009/11/18
// This tool extracts data from ���̂��� �������[.
Known to work with:

2008/07/31   5pb.   �u���̂��� �������[ (PS2)�v

*.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.zip

Contents:
// 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   �u11eyes CrossOver (XBOX360)�v
2009/10/15   5pb.�^Nitro+   �uSTEINS�GGATE (XBOX360)�v

*.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.zip

Contents:
// 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   �u���̂܂܂���o��SEX���Ă��܂��I�H ����A���A���ܒ��ł����Ȃ������H�v

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


2009/10/31 / exmaspaz

The *.dat archives in �܂���F�V���t�H�j�[ are standard paz archives despite the clever(?) disguise.

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

exmaspaz.zip

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

2009/10/30   �ς����   �u�܂���F�V���t�H�j�[�v

*.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.zip

Contents:
// extropak.cpp, v1.02 2009/09/25
// This tool extracts PACK (*.pak) archives used by �g���s�J��KISS.
Known to work with:

2006/10/27   BLACKRAINBOW   �u�����V�Y�v
2009/09/25   Twinkle   �u�g���s�J��KISS�v

*.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.zip

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

2009/07/10   PIL   �u�����������v

*.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.zip

Contents:
// exdebopak.cpp, v1.0 2009/08/08
// This tool extracts PAK (*.pak) archives used by �łڂ̑����쏊 in �_�y�����L.
Known to work with:

2009/07/24   �łڂ̑����쏊   �u�_�y�����L�v

*.pak (sig=PAK)


2009/08/08 / exbelldat updated

2009/08/07 / exl5enj updated

2009/08/04 / exhud

Simple is nice sometimes.

exhud.zip

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

2009/07/31   HUG   �u�����͂����ƁA����܂��悤�Ɂv

*.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�\����T ���ڃf�B�X�N.
Updated 1.02: Now handles multi-block compression (fixes voice.pcf).

expcf.zip

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

2009/07/31   Symphony   �uTiara�v
2009/07/31   Symphony   �uTiara�\����T ���ڃf�B�X�N�v

*.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.zip

Contents:
// d3dslide v1.02 by asmodean

2009/06/30 / exsteldat

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

exsteldat.zip

Contents:
// 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   �uStellar��Theater�v

*.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.zip

Contents:
// exkizpak.cpp, v1.0 2009/06/27
// Extracts KCAP (*.PACK) archives used by ���|�������Ɓ|.
Known to work with:

2009/06/26   Leaf   �u���|�������Ɓ|�v

*.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.zip

Contents:
// 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   �u���@���L���[�R���v���b�N�X�v

*.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_nosrc.zip

Contents:
// 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. 
// Compile with -DSENTINEL, -DZWEIWORTER or -TVKIETAHI.
Known to work with:

2009/05/29   TAIL WIND   �uTrample on Schatten!!�`�����ӂ݂̂����`�v

*.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.zip

Contents:
// 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   �u�����V�Y2�v

*.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.zip

Contents:
// 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   �uAr Tonelico 2: Melody of Metafalica (PS2)�v

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.

exar2.zip

Contents:
// 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   �uAr Tonelico 2: Melody of Metafalica (PS2)�v

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.zip

Contents:
// 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   �uAliveZ�v

*.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.

exmespac.zip

Contents:
// 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 �}����l�������J��.
// Use pgd2tga for the graphics.
Known to work with:

2008/12/19   �Z���X   �uM.E.s. �|���������C�h�����|�v

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


2008/12/27 / exihkcap

exihkcap.zip

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

2008/12/26   INTERHEART   �u���Y�����v

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.zip

Contents:
// 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   �u�N���ĂԤ���M�h�̋u�Łv

*.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.zip

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

2008/12/19   Digital+Cute   �u�ނ��߁[���[�v

*.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.zip

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

2008/07/25   BISHOP   �u�����������̂��I�I ��Ԃ��끙�������끙�����[��炢�Ӂ�v

*.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.zip

Contents:
// exwlcs, v1.0 2008/07/26
// This tool extracts data lcsebody+lcsebody.lst used by W�G��`�V�E�w���d�G杁`.
Known to work with:

2008/07/25   Lusterise   �uW�G��`�V�E�w���d�G杁`�v

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] hush.com or find me on efnet IRC.

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