DX Archive

From XentaxWiki
Revision as of 13:07, 4 August 2021 by imported>Ikskoks (→‎Keys)
Jump to navigation Jump to search

Back to index | Edit this page

DAT, WOLF, BIN, DXA, TEC, PAK, ARC, LED


Format Specifications

// DX Archive (v6) file format

// little endian

// Note: Whole archive is encrypted and compressed in most cases.
//       Custom key is required to parse data.

// header (48 bytes)
2 bytes (char) - signature  // "DX"
2 bytes (uint16) - version  // 6
4 bytes (uint32) - archive tail size (filename table + file table + directory table)
8 bytes (uint64) - data start address  // 48
8 bytes (uint64) - filename table start address (also tail start offset)
8 bytes (uint64) - file table start address  // relative to tail start
8 bytes (uint64) - directory table start address // relative to tail start
8 bytes (uint64) - code page // e.g. 1252

// data
num_of_files *
{
   x bytes - file data
}

// tail
{
   // filename table
   num_of_files *
   {
      2 bytes (uint16) - number of "packs"   // It can be calculated like this:
                                             // num_of_packs = (filename_length + 3) / 4
      2 bytes (uint16) - Parity?
      x bytes (char) - filename in uppercase + padding // e.g. "WHITE_BACK.JPG"
      x bytes (char) - filename + padding // e.g. "white_back.jpg"
   } 

   // file table (64 bytes per entry)
   // It contain headers for all files in archive
   // Note: There is one additional entry at the beginning (e.g. we have 32 files, but 33 entries)
   num_of_files+1 *
   {
       8 bytes (uint64) - filename offset  // relative to tail start
       8 bytes (uint64) - file attributes
       8 bytes (uint64) - file create time
       8 bytes (uint64) - file last acces time
       8 bytes (uint64) - file last write time
       8 bytes (uint64) - file data offset  // relative to header end?
       8 bytes (uint64) - file data size
       8 bytes (uint64) - file press data size
   }

   // directory table
   // Note: There is at least one entry in this table (for main dir)
   num_of_directories *
   {
      8 bytes (uint64) - directory offset // relative?
      8 bytes (uint64) - parent directory offset  // "-1" if there is no parent
      8 bytes (uint64) - number of files in directory
      8 bytes (uint64) - first file header offset for this dir  // relative to end of filename table
   }
}

MultiEx BMS Script

Not written yet.

QuickBMS Script

Notes and Comments

  • This file format occurs in games made in Wolf RPG Editor and in games using DxLibrary.
  • Archives using this file format are encrypted with custom XOR algorithm.
  • Files inside archive may be compressed with Huffman compression.
  • There are several versions of this file format and there are some differences in maximum key length:
v1-6 max key length = 12
v7 max key length = 32
v8 max key length = 56

Games

List of games using this file format:

  • Artemis Pearl Omake
  • Castle Evil
  • Dungeon Town
  • Gensokyo Shiki
  • I was Reborn as an Angel so I Decided to Conquer the World
  • Labyrinth of Touhou
  • Labyrinth of Touhou ~ Special Disc
  • Labyrinth of Touhou 2
  • Mad Father
  • Magic Castle RePure Aria
  • Prelude
  • Rosenkreuzstilette
  • Rosenkreuzstilette Freudenstachel
  • The Imperial Gatekeeper
  • Viocide Vore Side Action RPG
  • Many more...

Keys

Game Title Key (hex) Key (ASCII)
Rosenkreuzstilette v2.00a AC36E2889ADE96323B36E18F
9596F8098BDF8A922B1540BE
SchweringIsC
unknown
Rosenkreuzstilette Freudenstachel (v2.02c)
Rosenkreuzstilette Freudenstachel (v1.00a)
AC36E2889ADE96323B36E18F
9637EF2996D59E52AB0C91A8
SchweringIsC
isemiyamustdie
Innkeep Girl: Connie vs The Succubi Within (18+)
Sealed Room Breed (18+)
Sealed Room Breed 2 (18+)
8E57E31998CD9253831E60AF quingamepakc
Wolf RPG Editor v2
Paranoiac
The Holy Grail Of Alharahn v1.12
F0356B1CFB9BED1D0370E32D n/a
Gensokyo Shiki 8607E9B9CE9ECEB9994E41BC ypcd121231
Labyrinth of Touhou - Special Disc 9DF6E8099CC39999914DF0A3 bobocof322
Magic Castle RePure Aria (18+)
The Paradise Fortress of RePure Aria (18+)
The Paradise Fortress of RePure Aria 2 (18+)
Rakuen Iseki no Limulilim (18+)
Hide and seek v0.7
55AA2055550655AA55D57C66 n/a
[Xi] High Priest Adventure (18+) FFFFFFFFFFFFFFFFFFFFFFFF n/a
[Xi] Viocide Vore Side Action RPG (18+) 9DF6E5C88BCE90129B0BF0A3 boost
Labyrinth of Touhou 2 AD14C4698CEBB077923E32A5 RANisGOD
Prelude (18+) 760F1A237D5C730C94124E3C n/a
Wolf RPG Editor v2.0
Wolf RPG Editor v2.02
Wolf RPG Editor v2.10
Misao v3.03
TSMS #4: The Hanged Man - Voiceless version
TSMS #3: The Boogie Man v2 - Voiceless version
TSMS #2: The Sandman v2
TSMS #1: The Crooked Man
Mad Father v2.08
Mad Father v2.01 - English
Midnight Puppeteer v1.08
Alicemare v1.07
Mermaid Swamp
Purgatory 2 v1.70e
One Way Heroics v1.88
B39DA084D737531FF1081880 n/a
Wolf RPG Editor v2.20 beta
Wolf RPG Editor v2.24Z
Lola's World of Wonders
Alternate DiMansion Diary (18+)
Niplheim's Hunter - Branded Azel (18+)
1bitHeart
Treasure Hunter Claire (18+)
LiEat
LiEat 2
LiEat 3
The Imperial Gatekeeper v1.32 (18+)
I was Reborn as an Angel so I Decided to Conquer the World (18+)
Paranoiac (remake)
Artemis Pearl ~Pirate Princess Rubina and the Phantom Treasure~ v1.1.1 (18+)
The Trap of Revil (18+)
The Heroine Proceeds Alone (18+)
Submissive Hero Quest Chapter 1 (18+)
C705CA7D8DE3DEF1D90C85F4 8P@(rO!p;s5
Hentai Eater (18+) 8C57E9C98ACE8A919B0AE0AF succubus
Maidens of a Hollow Dream (18+) CE43C8DC096DA5FECE43BDDC
CE43BDDCCE98C8B9894BA5FE
unknown
1472
Recover the Restarts! v0.11 C857E0789ECFC8F6B90A70B4 7ujxac7H
unknown 4CD92AB7289BAC073E77EC4C unknown
Moekuri: Adorable + Tactical SRPG 92F6E4686FCE9032CA1E00A3
92F6E4689EC19032CB1E00A
92F6E4689EC19032CB1E00A3
unknown
unknown
monya
Touhou Puppet Dance Performance - Shard of Dreams 9B16FE3A98C2A0730B0BB590 dat\gn_dat6\
Touhou Rhythm Carnival! Scarlet 9B16FE0D96C19E132B50E1B5 dat/image/sy
Dungeon Town (18+) 95F6EBA9B9EDBDB70B1980A3 joaeFABBafeo
Castle Evil (18+)
Suicider (18+)
Happy Bird in Patino (18+)
Minerva's Adventure - Slave One - (18+)
Heroine Syndicate: Blessing of Goddess (18+)
A933E2EAA8F4BD55B24C509D V3hQWXBU
Trouble Travel ~Spirit Road~ (18+)
Let's play with Eva (18+)
D5FECEE4F3BEC7 (v8) V3hQWXBU
TouchyAria Mini Game (18+) unknown unknown
Wolf RPG Editor v2.271
Two beasts or Not to Beast!! (18+)
Kanade Rogue-like+ (18+)
56F06CA787CF0E (v8) WLFRPrO!p(;s5((8P@((UFWlu$#5(=
Len'en Mugenri ~ Evanescent Existence v1.20a
Len'en Tasouken ~ Earthen Miraculous Sword v1.20a
Len'en Reiretsuden ~ Reactivate Majestical Imperial v1.21a
Len'en Ten'eisenki ~ Brilliant Pagoda or Haze Castle v1.20f
B496F9E992CDB2D2A31A40BE KisamaMiteir

Compatible Programs

Usage Examples

Here are some examples of using programs listed above:

Guessing the key:

DXArc.exe b "scenario.dat"

Extracting data with hex key:

DXADecode.exe -K:AC36E2889ADE96323B36E18F "script.dat"

Extracting data with ASCII key:

DXADecode.exe -K:RANisGOD img2.dxa

Creating new DX archive with custom ASCII key:

DXAEncode.exe -K:aabb1 in_dir out_file.dxa

Note: There is some bug in the tool that prevents creating proper archives for english users.
To fix this issue, you have to change your Windows locale settings to Japaneese.