Releases: vn-tools/arc_unpacker
0.11
Finally here
New games
[130cm][030926]Princess Bride
[130cm][040924]Princess Brave! ~Jantaku no Kishi~
[130cm][050428]Boku wa Tenshi Janai yo
[130cm][060623]Kanojo-tachi no Ryuugi
[130cm][080829]Furifuri
[130cm][090626]Oni Uta
[130cm][100129]Onimari
[130cm][110624]Nemureru Hana wa Haru o Matsu. -spring come-
[5pb.][120525]Kono Oozora ni, Tsubasa o Hirogete
[5pb.][160428]Chaos;Child
[Akabei Soft2][100624]Kourin no Machi, Lavender no Shoujo
[AliceSoft][160129]Tsumamigui 3
[Ameno Murakumo][120218]Oyako Saiin Chiiku ~ Konna Ore ni Uzuite Modaero!
[Atelier Kaguya][010223]Mamotte Agetai. ~Dear My Master~
[Atelier Kaguya][010601]Ochiyuku Kyoushitsu
[Atelier Kaguya][010622]Shoukoujo ~Watashi o Wasurenaide~
- `[Atelier Kaguya][021025]Ningyou no### New games
[130cm][030926]Princess Bride
[130cm][040924]Princess Brave! ~Jantaku no Kishi~
[130cm][050428]Boku wa Tenshi Janai yo
[130cm][060623]Kanojo-tachi no Ryuugi
[130cm][080829]Furifuri
[130cm][090626]Oni Uta
[130cm][100129]Onimari
[130cm][110624]Nemureru Hana wa Haru o Matsu. -spring come-
[5pb.][120525]Kono Oozora ni, Tsubasa o Hirogete
[5pb.][160428]Chaos;Child
[Akabei Soft2][100624]Kourin no Machi, Lavender no Shoujo
[AliceSoft][160129]Tsumamigui 3
[Ameno Murakumo][120218]Oyako Saiin Chiiku ~ Konna Ore ni Uzuite Modaero!
[Atelier Kaguya][010223]Mamotte Agetai. ~Dear My Master~
[Atelier Kaguya][010601]Ochiyuku Kyoushitsu
[Atelier Kaguya][010622]Shoukoujo ~Watashi o Wasurenaide~
[Atelier Kaguya][021025]Ningyou no Yakata ~Inmu ni Dakereta Maid-tachi~
[Atelier Kaguya][030530]Hitozuma Cosplay Kissa
[Atelier Kaguya][031219]Saishuu Chikan Densha 2
[Atelier Kaguya][040227]Mahokoi ~Ecchi na Mahou de Koi x Koi Shichau~
[Atelier Kaguya][040326]Saishuu Chikan Densha
[Atelier Kaguya][040528]Chijoku Shinsatsushitsu
[Atelier Kaguya][040528]Kyouin Gakuen
[Atelier Kaguya][050729]Onna Kyoushi
[Atelier Kaguya][060428]Hitozuma Cosplay Kissa 2
[Atelier Kaguya][060629]Inkou Haden Amatsu ~Hakudaku no Juin~
[Atelier Kaguya][061215]Dungeon Crusaderz ~Tales of Demon Eater~
[Atelier Kaguya][070427]Delta! ~Onedari Tenshi to Hitotsu Yane no Shita~
[Atelier Kaguya][071130]Ore to Kanojo wa Shuju na Kankei
[Atelier Kaguya][080125]Serina
[Atelier Kaguya][080530]Imouto Jiru
[Atelier Kaguya][080829]Dokidoki Onee-san
[Atelier Kaguya][081227]Dungeon Crusaderz 2 ~Eigou no Rakudo~
[Atelier Kaguya][090123]Natsukami
[Atelier Kaguya][090227]Osananajimi to Ama~ku Ecchi ni Sugosu Houhou
[Atelier Kaguya][090227]Sara Sara Sasara
[Atelier Kaguya][090424]Magical Witch Academy ~Boku to Sensei no Magical Lesson~
[Atelier Kaguya][090725]Chupa Shite Ageru ~Sports Club no Onee-san~
[Atelier Kaguya][091002]Pri ☆ Sara - Dokidoki x Love Love W Fandisk
[Atelier Kaguya][091218]Nurse ni Omakase
[Atelier Kaguya][096026]Magical Witch Concerto
[Atelier Kaguya][100226]AneDeath. ~Anejini Kakugo no 「Otouto Shibori」 na Natsu ga Kuru!~
[Atelier Kaguya][100528]Kiriya Hakushakuke no Roku Shimai
[Atelier Kaguya][100723]Classy ☆ Cranberry's
[Atelier Kaguya][100730]Splash!
[Atelier Kaguya][101210]Niizuma Ikasete Milk! Danchizuma, Hirusagari no Kahanshin Jijou
[Atelier Kaguya][101217]Saishuu Chikan Densha 3
[Atelier Kaguya][110408]Sakura Iro Quartet
[Atelier Kaguya][110422]Ijira Rental ~Eroama Onee-san ni Kashidasarechatta!!~
[Atelier Kaguya][110617]Anejiru ~Shirakawa San Shimai no Omakase~
[Atelier Kaguya][110617]Katei Kyoushi no Onee-san ~H no Hensachi Agechaimasu~
[Atelier Kaguya][110617]School Project ☆
[Atelier Kaguya][110624]Harahara Shichau! ~Oya ni wa Naisho no Kozukuri Seikatsu~ -Asagari Shimai Hen-
[Atelier Kaguya][110624]Osakon ~Osananajimi to Icha Love Kekkon Katsudou~
[Atelier Kaguya][110722]Medorei ~Okasareta Houkago~
[Atelier Kaguya][110722]Toriko no Hime ~Inma no Chouritsu~
[Atelier Kaguya][110729]Kindan no Byoutou Tokushu Seishinkai Yusa Sousuke no Shinsatsu Kiroku
[Atelier Kaguya][110930]Ane wa Kanojo de Senzoku Maid
[Atelier Kaguya][110930]Harahara Shichau!! ~Oya ni wa Naisho no Kozukuri Seikatsu~ -Amahara Izumo Hen-
[Atelier Kaguya][110930]Hatsujou Season
[Atelier Kaguya][111125]Arubaito no Senpai no Onna no Ko ni Shigoto o Osowatteitara Hajimacchau H na Kankei
[Atelier Kaguya][111216]Hakudaku no Aoki Erena ~Shaseishitara Fuuin ga Tokeru Nante Mushiro Gohoubi Desu~
[Atelier Kaguya][120224]Ura Nyuugaku ~Ineki ni Nureta Kyoukasho~
[Atelier Kaguya][120427]Kirari☆Nangoku Komugiiro ~Shiofuki Paradise e Youkoso!~
[Atelier Kaguya][120525]Shiro Koki Kuro Koki ~Kuro Tights ni Semerareru ga Sore Gurai de wa Shiro Knee Socks o Akiramenai Ore~
[Atelier Kaguya][120629]Erotica Yuuwaku Kenshuu Hajimaruyo~ Shigoichau Kara Kakugonasai!
[Atelier Kaguya][120629]Prima ☆ Stella
[Atelier Kaguya][120928]Bus Chiku ~Kakusareta Seiheki o Abake~
[Atelier Kaguya][121026]Ane Oyako de Iku!
[Atelier Kaguya][121130]Sperman ~Sono Fukushuu no Maku o Yabure!!~
[Atelier Kaguya][130125]Enjoy ~Futari no Ecchi na Joi to Eroero Kenshuu Taiken~
[Atelier Kaguya][130222]Wagamama Milk DE Shite Ageru
[Atelier Kagyua][101210]Mainichi ga M!
[Bishop][110225]Sansha Mendan ~Rensa Suru Chijoku Choukyou no Gakuen~
[Black Lilith][060331]Soukou Kijo Iris
[calme][160628]Karakara
[Complet's][080229]Mama Shibori 2 (Mama Shibori no Jijou)
[Complet's][110527]Mama Mahjong
[Devil-seal & Softhouse-Seal][120224]Seeeki! Bukkake Bokujou! ~Oshiru Ippai, Seirei-tachi o H ni Shiiku!~
[Devil-seal & Softhouse-Seal][120525]Touma Kojirou no Tantei File ~Opera Za no Kaijin Satsujin Jiken~
[Dieselmine][100814]Omoikkiri! Seieki Tairyou Chuunyuu! ~Takabisha Onna o Aherasero!~
[Dieselmine][110428]Seieki Tairyou Chuunyuu! 5 ~Ore no Takabisha na Bishoujo Goshujin-sama ga Konna ni Seidai ni Aheru Wake ga Nai
[Dieselmine][111230]Itsu de mo Onna no Ko ni Seieki Tairyou Chuunyuu! Shite Homerareru Sekai
[Dieselmine][150807]Me ga Sametara Seieki ga 100 Bai Tamaru Karada ni Natteta -> Tairyou Chuunyuu!
[Escude][000407]Miracle Temptation!!
[Escude][000721]Ryuusei Tenshi Primaveil
[Escude][001222]Tobikkiri Ruin
[Escude][011122]Metamor Fantasy
[Escude][020802]Lovely Lovedoll
[Escude][021213]Ryuusei Tenshi Primaveil V
[G.J?][060428]Tsuma to Mama to Boin
[Harukaze][160226]Nora to Oujo to Noraneko Heart
[HEAT-SOFT][130906]Onee-chan Saimin Before After
[Leaf & Aquaplus & Sting][051222]To Heart 2 Xrated
[light][120831]Dies irae ~Amantes amentes~
[light][120831]Paradise Lost
[light][130628]Kajiri Kamui Kagura Akebono no Hikari
[Luxury][140829]Maou no Kuse ni Namaiki da! Torotoro Tropical!
[Luxury][150828]Oh Yuusha yo, Itte Shimau to wa Nasakenai!
[May-Be Soft][050318]Henshin! 2
[Miel][141219]Ure Chichi Shibori ~Bakunyuu Miboujin ga Otonari no Gakusei ni Oppai o Seiki ni Shitsukerare Haramase Sex Tsuke ni~
[Minato Soft][070525]Kimi ga Aruji de Shitsuji ga Ore de
[Minato Soft][120323]Maji de Watashi ni Koishinasai! S
[Minato Soft][130118]Maji de Watashi ni Koishinasai! A-1
[Minato Soft][130712]Maji de Watashi ni Koishinasai! A-2
[Minato Soft][140228]Maji de Watashi ni Koishinasai! A-3
[Minato Soft][141121]Maji de Watashi ni Koishinasai! A-4
[Muscadet][091030]Sweetest Maman!
[Nekomarudow][070817]Yandere
[Nitroplus][160129]Tokyo Necro (#29)
[Nitroplus][160630]Sonicomi - Communication with Sonico
[Noir][091225]Imouto Ijime
[Orcsoft][121207]Oku-sama wa Moto Yariman -Besluted- (#27)
[Orcsoft][130809]Aniki No Yome-san nara, Ore ni Hamerarete Hiihii Itteru Tokoro Da yo (#27)
[Rapapuru][081031]Mama Mama Mama
[Rapapuru][110826]Chichi Miko!!
[Rapapuru][120427]Chichi Miko!! Plus 1 ~Sobo to Musume no Sakunyuu Harem~
[Rapapuru][130222]Mama Mama Mama 2
[Studio Mebius][000408]Zetsubou 2000 ~Aoi Kajitsu no Sanka~ DVD-ROM Edition
[Studio Mebius][040423]Mebinya! Mebius Fandisc
[Studio Mebius][040924]Snow
[Studio Mebius][040924]Tomodachi Ijou Koibito Miman
[Studio Mebius][050729]The God of Death
[Studio Mebius][060929]Snow
[Studio Mebius][081128]Sin Kurotoki Iro no Shoujo
[Studio Mebius][090424]Akumu Zetsubou ~Aoi Kajitsu no Sanka~ Twin Pack Edition
[Studio Mebius][970328]Akumu - Aoi Kajitsu no Sanka
[Studio Pork][120413]Bajunyuu! Dekajiri! Ama Oba-san
[Studio Ring][070629]Oyatsu no Jikan
[Swan][110422]Hara ☆ Para!! ~Swan Nakadashi Paradise~
[Swaneye][081024]Hara Kano!! ~Ano Ko To Lovelove Harabote Seikatsu~
[Swanmania & Swaneye][130726]Sakigake! Metamorfuck Gakuen! ~Kogane no Chikyuu to Pantsu no Hihou~
[Triangle][150626]Sacred Lineage
[Tryset][070928]Yogatte! Oku-sama ~Yokyuu Fuman na Mucchiri Tsuma-tachi~
[Tsurumiku][091218]Yume Kui -Tsurumiku Shiki Game Seisaku-
[Yuzusoft][060728]Bra-ban!
[Yuzusoft][080523]Natsuzora Kanata
[Yuzusoft][090529]Tenshin Ranman - Lucky or Unlucky!?
[Yuzusoft][101224]Noble☆Works
[Yuzusoft][120330]Dracu-Riot!
New formats
5pb/arc
will/pnap
abstraction/wad
alice-soft/dcf
bishop/bsa
bishop/bsc
bishop/bsg
dxlib/dx
escude/acp
escude/bin
kaguya/an00
kaguya/an10
kaguya/an20
kaguya/an21
kaguya/ao
kaguya/ap
kaguya/ap0
kaguya/ap2
kaguya/ap3
kaguya/aps3
kaguya/bmr
kaguya/compressed-bmp
kaguya/link2
kaguya/link3
kaguya/link4
kaguya/link5
kaguya/link6
kaguya/link
kaguya/pl00
kaguya/pl10
kaguya/raw-mask
kaguya/wfl
mages/mpk
malie/libp
malie/libu
malie/mgf
mebius/koe
mebius/mcg
nitroplus/npk2
real-live/koepac
real-live/nwk
real-live/pdt10
real-live/pdt9
triangle/med
triangle/wady
triangle/yb
unity/assets
- `...
0.10
What? You expected some cute 1.0? Too bad! It's just me, modern versioning.
New games
[Applique][120928]Re:birth colony -Lost azurite-
[Authoring Heaven][030530]Mama Shibori
[Authoring Heaven][031010]The Guts! 5
[Authoring Heaven][031226]SayYah! 2003
[Authoring Heaven][060721]Onegai Iinchou!!
[Complet's][011026]Boku No Himitsu Taiken
[Complet's][020412]Koi Suru Science
[Complet's][030314]Motto! Himitsu Taiken
[Complet's][030606]Mama Club
[Complet's][031219]Matty
[Complet's][040528]Mama Club 2
[Complet's][041222]Boku No Natsuyasumi Himitsu Taiken
[Complet's][050702]Yagai Gakushuu
[Complet's][060224]Mama! Tsuma?
[Complet's][070428]Boy Meets Wives
[Crowd][971024]X-Change
[Crowd][990827]X-Change 2
[Crowd][040625]X-Change 3
[Fizz][070323]Mashiro Botan
[Front Wing][151127]Hatsuru Koto Naki Mirai Yori
[Front Wing][130524]Grisaia no Kajitsu
[Galette][130628]Santaful Summer
[Galette][150626]Lollipop Factory
[Hulotte][151127]Yome Sagashi ga Hakadori Sugite Yabai.
[Jellyfish][110428]Green ~Akizora No Screen~
[Lump of Sugar][051125]Nursery Rhyme
[May-Be SOFT][051125]Mono Gokoro, Mono Musume
[Mu][040423]Aoiro Rinne
[Ricotta][131025]Walkure Romanze More&More
[Silky's Sakura][150227]Ochite Iku Niizuma ~Gomennasai Anata... Watashi Mou... demo, Aishiteru~
[SofthouseChara][000225]Aoiya Masshigura
[SofthouseChara][000922]Wafers ~Ohime-sama wa Kyou mo Kiken deshita~
[SofthouseChara][010420]Kaizoku Oukan
[SofthouseChara][011026]Mahiru ni Odoru Hanzaisha
[SofthouseChara][020712]Alfred Gakuen Mamono Daitai
[SofthouseChara][030328]Brown Doori Sanbanme
[SofthouseChara][031212]Level Justice
[SofthouseChara][040625]Suzukuri Dragon
[SofthouseChara][050218]Nangoku Dominion
[SofthouseChara][050930]Dancing Crazies
[SofthouseChara][060616]Greensvale no Mori no Naka ~Seichou Suru Gakuen~
[SofthouseChara][070629]Ouzoku
[SofthouseChara][080530]Wizard's Climber
[SofthouseChara][090327]Daisounan
[SofthouseChara][091218]Shinobi Ryuu
[SofthouseChara][100730]Bunny Black
[SofthouseChara][110624]Yukioni-ya Onsen-ki
[SofthouseChara][120127]Bunny Black 2
[SofthouseChara][120928]Mon o Mamoru Oshigoto
[SQUEEZ][040730]Nyuujoku Hitozuma Jogakuen ~Ingoku no Yakan Hitozuma Choukyou Gakka (Nibu)
[Syrup -Many Milk-][140131]Machi Gurumi no Wana ~Hakudaku ni Mamireta Yuuri~
[Syrup -Many Milk-][140131]Nerawareta Megami Tenshi Angeltia ~Mamotta Ningentachi ni Uragirarete~
[Whitesoft][150227]Sakura Synchronicity
New formats
aoi/agf
aoi/aog
aoi/iph
aoi/vfs
borland/tpf0
(internal)cat-system/hg3
complets/gd
complets/vmd
cri/afs
cri/cpk
crowd/cwd
crowd/cwl
crowd/cwp
crowd/eog
crowd/pck
crowd/pkwv
crowd/zbm
gpk2/gfb
gpk2/gpk2
gsd/bmz
gsd/gsp
ism/isa
ism/isg
lucifen/elg
lucifen/lpk
playstation/gtf
playstation/gxt
scene-player/pmp
scene-player/pmw
silky/akb
silky/arc
system_epsilon/packdat
Improved support for existing formats
cri/hca
: fixed sound distortionscri/hca
: added support for type 3 and type 4 decoderentis/eri
: added support for base imagesentis/eri
: added support for falsified bit depthsentis/mio
: fixed audio clippingentis/mio
: relaxed magic requirementsentis/noa
: added checksum verificationentis/noa
: added requirement for--noa-key
, if it's encryptedentis/noa
: added support for BSHF encryptionentis/noa
: added support for ErisaN compressionmajiro/rct
: added support for external alpha masksmicrosfot/bmp
: added support for faux alpha masksqlie/pack
: added automatic searching for game keysqlie/pack
: improved.exe
key retrievaltwilight-frontier/tfpk
: improved unknown file naming
Other visible changes
- Added parallel processing
- Redesigned game list (thanks, @Tehoko)
- Improved readablity
- Added search
- Added Japanese titles
- Added VNDB links
- Redesigned README
- Collected important links from sections and moved them right at the top
- Removed useless clutter
- Improved contact information
- Changed
--verbosity
switch to support multiple levels, removed--quiet
- Added
--version
switch - Added
--threads
switch - Added
--numeric-file-names
switch (for generic archives with broken file names) - Added basic stats at the end of unpacking
- Readded loop support in output WAV files
- Added
CriPakTools
toTHANKS
- Improved naming convention for nameless files
Internal changes
- Added parallel processing: introduced
flow
namespace, drastically changed
program control flow - Added support for Microsoft Visual Studio
- Added support for Clang
- Changed build system to cmake, ditched waf
- Changed OpenSSL to be mandatory, removed OpenSSL dummy plugs
- Removed version macros in favor of autogenerated header
- Removed preprocessing from archives in favor of
VirtualFileSystem
- Removed
util
namespace, introducedalgo
namespace - Removed
fmt
namespace, introduceddec
namespace - Removed
file_from_*
, introducedenc
namespace - Reorganized everything in
io
namespace - Replaced
read_u8
,read_u16_le
etc. withread<T>
,read_le<T>
and
read_be<T>
- Added ability to copy
File
s andStream
s - Files using Unicode now use BOM (MSVC)
- Removed Log singleton, changed to manual dependency injection
- Added
algo::any
- Added
algo::cyclic_ptr
, removedCyclicBuffer
- Reorganized plugin manager
- Changed tests philosophy (rather than adding immutable files for each
decoder, started writing tests by hand that are prone to refactors, but
dramatically reduce repository size) - Fixed a few bugs that have manifested themselves after testing new compilers
- Many more refactors and new overloads/functions
0.9
Visible changes
- Support for new games:
- [Ammolite] Sweet Switch
- [Appetite] Mama no Okugai Shuuchi Lesson
- [Astronauts] Demonion
- [Atelier Sakura] Shin Hoka no Otoko no Seieki de Harande mo Ii Desu ka...? 2
- [August] Daitoshokan no Hitsujikai
- [Bandai] Oreimo
- [CLOCKUP] Eroge!
- [CLOCKUP] Please R*pe Me!
- [Cattleya] Bijukubo
- [Cattleya] Chijoku Sister
- [Cattleya] Kyouiku Mama to Oba to Oba
- [Cattleya] Miboujin Sanae
- [Cattleya] Okami Misao
- [Cattleya] Onna Zakari
- [Cattleya] Shin Onna Kyoushi Yuuwaki Shinro Shidoushitsu
- [Cattleya] Tsuma no Haha Sayuri
- [Empress] Starless (English ver.)
- [FC01] White Breath
- [Herencia] Kangoku Hime
- [Hot Pink] Gohoushi Nurse
- [Kiss Custom Reido]
- [Kiss Custom Reido] 2
- [Kiss Custom Reido] 3
- [Kiss Custom Reido] 4
- [Kiss Custom Reido] F
- [Kiss Custom Reido] V
- [Leaf] Comic Party
- [Leaf] Inagawa de Ikou!!
- [Leaf] Magical Antique
- [Leaf] Routes
- [Leaf] Saorin to Issho!!
- [Leaf] To Heart
- [Leaf] White Album
- [Lose] Monobeno
- [Purple Software] Chrono Clock
- [Purple Software] Hapymaher
- [Purple Software] Hapymaher W & FD
- [Purple Software] Haruiro Ouse
- [Shangri-La] Akatsuki no Goei
- [Shangri-La] Akatsuki no Goei 2
- [Shangri-La] Akatsuki no Goei 3
- [Studio Ring] Nanami to Konomi
- [Studio Triumph] Netorare Nurse 3
- [Whirlpool] 77
- [Whirlpool] InaKoi
- [Whirlpool] InaKoi Fandisc
- [Whirlpool] JustyNasty
- [Whirlpool] Lunaris Filia
- [Whirlpool] Magus Tale
- [Whirlpool] Magus Tale Infinity
- [Whirlpool] Maikaze no Melt
- [Whirlpool] Meri?Chri
- [Whirlpool] NekoKoi
- [Whirlpool] Ryuuyoku no Melodia
- [Whirlpool] Suzukaze no Melt
- Support for new formats:
- AVGEngine's GXP archives
- CRI AFS2 audio archives
- CatSystem's INT v3 archives
- English patches for Touhou
- FC01's v2.00 MCG images
- Kiss ARC archives
- Kiss PLG archives
- Kiss custom PNG images
- Leaf's .a archives
- Leaf's AR10 archives
- Leaf's CZ10 image archives
- Leaf's GRP masked images
- Leaf's GRP variant that starts with 0
- Leaf's LC3 images
- Leaf's LF3 images
- Leaf's LFB images
- Leaf's LFG images
- Leaf's P16 audio
- Another variant of Leaf's PAK archives + renamed PAK to PAK1
- Leaf's PAK2 archives
- Leaf's PAK2 audio
- Leaf's PAK2 compressed files
- Leaf's PAK2 images
- Leaf's PX images
- Leaf's W audio
- Majiro v2 archives
- Microsoft WAV decoding
- Playstation's GIM images
- Purple Software's CPZ5 archives (two variants)
- Purple Software's CPZ6 archives
- Purple Software's PB3 v1 images
- Purple Software's PB3 v2 images
- Purple Software's PB3 v3 images
- Purple Software's PB3 v5 images
- Purple Software's PB3 v6 images
- Purple Software's PS2 scripts
- XP3 archives with shuffled chunks
- YuRis YPF archives
- Yumemiru Game Maker's DAT archives
- Yumemiru Game Maker's EPF images
- Fixed NWA audio decoder
- Fixed Will ARC preprocessing
- Fixed LEAFPACK file naming
- Fixed Touhou's PAK2 preprocessing
- Added support for manual LEAFPACK keys
- Added support for base images in Majiro RCT images
- Added basic XOR encryption plugin for XP3 archives
- Added support for extra chunks in PNG (previously au refused to decode such images altogether)
- Added support for
time
chunk in XP3 archives - Ignored support for unknown chunks in XP3 archives (previously au refused to decode such archives altogether)
- Corrected AliceSoft
--fmt
switches in GAMELIST - Renamed 'extra/' directory to 'etc/'
Internal changes
- Important renames
- Split
util::
intoutil::
andalgo::
, most of stuff was moved intoalgo::
- Removed
pix::
- Moved everything from
pix::
tores::
- Renamed
Grid
toImage
- Renamed
.hh
to.h
- Split
- Refactors to
io
namespace- Renamed
IO
toStream
- Renamed
BufferedIO
toMemoryStream
- Renamed
FileIO
toFileStream
- Moved
File
class toio
namespace - Added support for method chaining in
Streams
- Introduced
io::path
andio::filesystem
- Changed
File::name
fromstd::string
toio::path
- Changed
ArchiveEntry::name
fromstd::string
toio::path
- Renamed
File::name
toFile::path
- Replaced now useless proxy methods from
File
with calls on itspath
- Changed
- Improved performance of
Stream
reading and writing - Hidden
write
/read()
methods that receive out params withprotected
, added_impl
suffix - Removed
Stream::write_from_io()
- Fixed
FileStream::seek()
not throwingEofError
- Renamed
- Formalized audio support
- Introduced
Audio
class - Introduced
AudioDecoder
class - Introduce
compare_audio()
- Removed
util::file_from_wave(many parameters)
- Added
util::file_from_audio(const Audio &)
- Remove --loops support from THBGM decoder (TODO: offer proper loop support for everyone)
- Introduced
- Added Huffman decompression routines
- Added MD5 routines
- Added
Image::paste()
method for merging images - Added
VirtualFileSystem
(it's super slow for now but makes many things convenient) - Added
algo::binary
andalgo::str
for various popular operations - Added
f32
andf64
aliases - Added
ptr
class - Added argument forwarding to
register_fmt
- Added fallback archive entry names
- Added more comparison operators to
bstr
- Added support for negative offsets in
bstr::substr()
- Changed to absolute paths for input files (this gets around an exotic problem)
- Fixed memory leaks in text encoding conversions and JPEG decoder
- Fixed unnecessary executable relinking
- Fixed valgrind warnings
- Fixes for Cygwin
- Greatly simplified naming strategies
- Implemented PNG error handling
- Implemented older MersenneTwisters
- Improved
CallStackKeeper
design - Improved
CyclicBuffer
performance - Improved
Image
pixel access performance - Introduced dummy
BaseDecoder
with empty methods to reduce code duplication - Reduced Boost dependencies across code
- Reduced code duplication in base decoders
- Reimplemented
checkstyle
script in Python, added new checks - Removed
VersionRecognizer
(bloatware) - Removed
compat/
dir - Renamed
etc_dir
toassets_dir
- Reworked tests
- Significantly improved
Image
comparison performance - Simplified ShiinaRio plugin creation
- Updated waf and catch to newer versions
- Many other refactors + tests
0.8
Visible changes
- Support for new games:
- [3rd Eye] Sorcery Jokers
- [Erectlip] Kyonyuu seido kaichou
- [Erectlip] Mahou Shoujo Iris
- [Erectlip] Mahou Shoujo Ixia
- [Erectlip] Sensei Ano ne...
Netorare Shoujo to Houkago no Taiiku Souko - [Erectlip] Little†B☆☆☆h
- [Hakudakukei] Jugyou de Ecchi
- [Innocent Grey] Kara no Shoujo
- [Innocent Grey] Kara no Shoujo 2
- [Leaf] Hatsune No Naisho!!
- [Leaf] Kizuato
- [Leaf] Shizuku (renewal DVD)
- [Leaf] Tasogare
- [Leaf] Tears to Tiara
- [Liar-soft] Kusarihime
- [Lilim Darkness] Angels Blue
- [Lilim Darkness] Dark Blue
- [Lilim Darkness] Hunting Blue
- [Lilim Darkness] Innocent Blue
- [Lilim Darkness] True Blue
- [Lilim Darkness] Wedding Blue
- [Meteor] Chokotto Vampire
- [Momojiro Gekijou] Shojo Mama
- [Nitroplus] Muramasa
- [Parfum Soft] Isshoni chapuchapu time
- [PeasSoft] Iinazuke wa Imouto-sama!
- [Propeller] Tekoire Princess
- [silica-gel] Majime to Sasayakareru Ore wo Osananajimi no Risa ga Seiteki
na Imi mo Komete Kanraku Shite Iku Hanashi - [Tarte] Hinatabokko
- [Team Shanghai Alice] Upcoming TH145 English patch
- [Unison Soft] "The idol is a vampire?!"
- Support for new formats:
- Unencrypted TFPK archives
- (partial) CRI's HCA audio
- 8-bit JPEG images
- ast ARC1 and ARC2 archives
- ActiveSoft's ADPACK32 archives
- ActiveSoft's ED8 images
- ActiveSoft's EDT images
- Amuse Craft (Softpal)'s PAC archives (two kinds)
- Amuse Craft's BGM files
- Amuse Craft's PGD GE v2 and v3 images
- Amuse Craft's TGA-based PGD images
- GNU's gzip archives
- Innocent Grey's IGA archives
- Innocent Grey's PACKDAT archives
- Leaf's BBM images
- Leaf's BJR images
- Leaf's GRP images
- Leaf's KCAP archives
- Leaf's LAC archives
- Leaf's LEAFPACK archives
- Leaf's PAK archives
- Leaf's LF2 images
- Leaf's older KCAP archives
- LiarSoft's LIM 16-bit images
- Lilim's 32-bit ABM images
- Lilim's 8-bit ABM images
- Lilim's AOS archives
- Lilim's DBM images
- Lilim's DOJ scripts
- Lilim's DPK archives
- Lilim's DWV audio files
- Lilim's older AOS archives
- Lilim's script files
- PSP GPDA archives
- (partial) Shiina Rio WARC archives
- Shiina Rio's OGV audio files
- Shiina Rio's S25 images
- Touhou's BGM files
- TrueVision's TGA images
- adv dat archives
- encryption support in Majiro's RCT images
- Changed GAMELIST
- Reduced font size
- Centered the table
- Changed colors
- Changed release dates to use full year
- Corrected company for TH12.3
- Fixed sort order
- Fixed invalid --fmt switches
- Fixed Touhou audio marked as not supported (it is)
- Enhanced CLI output
- Added ASCII logo!
- Added Github and IRC links
- Added showing possible values if user supplies bad --switch value
- Added
-l
alias for--list-fmt
- Reworded help
- Fixed
--fmt
enumeration not being hidden from regular CLI help
- Change archive unpacking to continue unpacking even if one of files fails
- Changed
--fmt
naming to namespaces - Removed excessive blank lines
Internal changes
- Split
ArchiveDecoders
unpacking into two phases:read_meta()
and
unpack_file()
(so that callers can select what to unpack) - Simplified registering linked decoders
- Rename
_internal
to_impl
- Added
GeneralError
as a base class for all exceptions - Added
Grid::apply_palette()
- Added
Grid::flip_horizontally()
(renamedflip
topflip_vertically
) - Added
Palette::at()
- Added
bstr::at()
- Added
bstr::capacity()
- Added
bstr::empty()
- Added
util::CyclicBuffer
(for LZSS and the like) - Added
util::VersionRecognizer
(not sure if want) - Added
util::Benchmark
- Added
util::pack::zlib_inflate(io::IO)
- Added copy constructor for
Palette
- Added data constructor to
File()
- Added new
pix::Format
s - Added separate exception for EOF problems
- Added support for raw deflate and gzip along zlib
- Added few useful general tests
- Changed
bstr
to useu8
- Changed
Registry
so that it is usable in tests - Changed style to use more
const
s - Changed postprocessing to respect
--no-recurse
flag - Changed
std::unique_ptr<T>(new T)
tostd::make_unique<T>(...)
- Changed
std::shared_ptr<T>(new T)
tostd::make_shared<T>(...)
- Changed
util::file_from_samples()
to accept bits per sample rather than
bytes per sample - Fixed
Grid
referring to unknown palette colors - Fixed
bstr.substr()
in corner cases - Fixed
.gitignore
- Fixed
virtual
methods that shouldn't be virtual - Fixed word wrapping in
ArgParser
- Fixed
seek()
onFileIO
failing silently - Fixed variadic functions no longer use references, which apparently is UB
- Removed
bool recurse
parameter fromunpack()
- Improved performance of
BitReader
a little bit - Improved performance of creating
Grid
s fromBGRA8888
data - Improved pixel reading in
Grid
andPalette
- Improved PNG saving performance
- Simplified collecting input file paths
- Refactored / fixed / improved performance of a few decoders
- Split
fmt::touhou
namespace intofmt::twilight_frontier
and
fmt::team_shanghai_alice
- Moved recursion limiter to
util
0.7
Visible changes
- Support for new games:
- [Alice Soft] Kichikuou Rance
- [Alice Soft] Atlach-nacha
- [Alice Soft] Dr. Stop!
- [Alice Soft] Ningen Gari
- [Alice Soft] Toushin Toshi
- [Alice Soft] Zero
- [Alice Soft] Rance 1 - Hikari o Motomete
- [Alice Soft] Rance 2 - Hangyaku no Shoujo-tachi
- [Alice Soft] Rance 3 - Leazas Kanraku
- [Alice Soft] Rance 4 - Kyoudan no Isan
- [Alice Soft] Rance 4.1 - Okusuri Koujo o Sukue!
- [Alice Soft] Rance 4.2 - Angelgumi
- [Alice Soft] Rance 5D
- [Alice Soft] Rance 6 - Zeth Houkai
- [Alice Soft] Tsuma Shibori
- [Alice Soft] Sengoku Rance
- [Alice Soft] Alice 2010 (+ all games from that release)
- [Black Lilith] Ore to Saeko-san to Netorare Mail
- [Cherry Soft] Heroine
- [Cronus] Caliz
- [Cronus] Fruit Punch
- [Cronus] Kaikan Senshi Busty
- [Cronus] Nursery Song
- [Cronus] Sweet Pleasure
- [Cuffs] Sakura Musubi
- [Empress] Closed Game
- [FC01] Suigetsu
- [FC01] Mizukabe
- [Fuguriya] Sonohana 17
- [Latte] Imouto Senbatsu Sousenkyo
- [Latte] Dainikai Imouto Senbatsu Sousenkyo
366ninme no Imouto Icha Love Nijitsudan - [Libido] Girl Friends
- [Libido] Fifteen
School Girls Digital Tokuhon - [Libido] Libido 7
- [Libido] Houkago Mania Club
- [Lump of Sugar] Itsusora
- [Parasol] Yumekoi
Yume Miru Mahou Shoujo to Koi no Jumon - [Pita Fetish] Gokkun! Onii-chan Milk
Punipuni Oppai na Imouto to - [Root] PARA-SOL
- [Sei Mikaeru Joshi Gakuen] Sonohana 18
- [Tanuki Soft] Bishoujo
- [Tanuki Soft] Shoujo Kyouiku
- [Tanuki Soft] Shoujo Ramune
- [Tanuki Soft] Tonari no Puu-san
- [Tryset] Shin Yarasete! Teacher
- [Waffle] Tsugou no You Sexfriend?
- [Waffle] Gakuen de Jikan yo Tomare
- [West Vision] OL Gari
Nureta Office - [West Vision] Innyuu Kazoku
Boku to Haha to Ane to Imouto to - [West Vision] Kyonyuu Gokuraku Seminar
- [West Vision] Nyuuki Saisai
- [West Vision] Futago Reijou
- [Will] Tsuma Youji 1
- [Will] Tsuma Youji 2
- [Yurin Yurin] Sonohana 14
- [Yurin Yurin] Sonohana 15
- [Yurin Yurin] Sonohana 16
- Support for new formats:
- Libido unencrypted ARC archives
- Libido EGR image archives
- Libido MNC images
- Libido BID archives
- Cronus PAK archives
- TACTICS ARC archives
- XP3 mixed XOR encryption
- Cherry Soft MYK archives
- Alice Soft 16-bit PMS images
- Alice Soft VSP images
- Alice Soft DAT archives
- Alice Soft alpha-onlY QNT images
- FC01 MRG archives
- FC01 ACD masks
- FC01 MCG images
- FC01 MCA image archives
- Majiro v3 archives
- Majiro RC8 images
- Majiro RCT images
- ENTIS lossless Huffman images
- ENTIS lossless gamma images
- ENTIS lossless Nemesis images
- ENTIS lossless PCM16 audio
- ENTIS lossy DCT audio
- ENTIS lossy DCT LOT audio
- ENTIS unencrypted NOA archives
- GS DAT archives
- GS PAK archives
- GS images
- Will WIPF images
- Will ARC archives
- GLib2 another encryption
- GLib2 JPEG-wrapped PGX images
- Wild Bug WBP archives
- Wild Bug WBM images
- Wild Bug WWA audio
- Wild Bug WBI script files
- Nekopack4A archives
- West Vision SYG images
- Microsoft uncompressed BMP images (this one doesn't concern end users too much)
- Fixed iterating over directories
- Fixed missing CLI switches from GAMELIST
- Added
--quiet
option - Added company and release info to GAMELIST
- Sorted GAMELIST by company and release date
- Added encoding
<meta/>
to GAMELIST (should fix misrendering of some characters in hipster web browsers) - Moved
--fmt
listing to new switch,--list-fmt
(I believe this list to be marginal to the end users. If file requires additional switches to unpack, au will tell which--fmt
to pass at runtime anyway.) - Improved Fortune Summoners unpacking (no more guesswork)
Internal changes
- Reorganized core fmt classes
- Removed
Archive
,Converter
andTransformer
- Introduced
IDecoder
interface- Implemented by new base classes:
ImageDecoder
,AudioDecoder
,FileDecoder
,ArchiveDecoder
ImageConverter
s produce plainpix::Grid
s,AudioDecoder
for time being produceFile
s
- Implemented by new base classes:
- Removed
- Fixed bytewise LZSS decompression sometimes truncating a few bytes
- Fixed
BitReader
not working for 32 bit integers - Fixed floating point gcc ↔ MinGW mismatches
- Fixed crash when reporting unknown zlib errors
- Fixed malformed error reporting in EXE unpacker
- Fixed trying to create images with 0 width or height causing segfault from libpng
- Fixed a few functions not using
static
when they should - Introduced proper exceptions (centralized in
err.h
) rather than abusingstd::runtime_error
- Introduced proper test naming and tagging system (7ac574e, ea7ac17)
- Introduced
Log.debug()
for development purposes (no morestd::cerr << "herp" << "derp"
) - Changed
File.has_extension()
to work case-insensitively - Changed
struct
s andclass
es to usefinal
where possible - Changed
checkstyle
to log all errors at once - Changed comments to always include one spaces after
//
- Renamed
i8
,i16
,i32
,i64
tos8
,s16
,s32
,s64
(68ed908) - Renamed
sound
toaudio
- Moved methods before fields
- Moved different
FileSaver
implementations to separate files - Moved
.cc
relevant.h
#include
s to the top (19dc0be) - Added position-related methods to
BitReader
(size()
,tell()
,seek()
,skip()
) - Added support for iterating over
bstr
- Added support for iterating over
pix::Grid
andpix::Palette
- Added fill constructor to
bstr
(bstr x; x.resize(y);
→bstr x(y);
) + used it where possible - Added copy constructor to
pix::Grid
- Added ability to mute specific
Logger
levels - Added ability to log stuff like in
util::format
- Added ability to strip
File
extension - Added convenient mask applying for
pix::Grid
- Added information which file fails the test for batch archive tests
- Removed headers from
.cc
implementations (for rationale, see a444d13) - Removed
util::require
andutil::fail
(for rationale, see bbab752) - Removed obsolete CXDEC notes
- Removed
BitReader.try_get()
- Removed
util::Image
in favor of newImageDecoder
pattern +util::file_fromg_grid()
- Removed
util::Sound
in favor ofutil::file_from_samples()
- Collapsed CSS in GAMELIST
- Simplified XP3 decoders
- Simplified G00 decoders
- Simplified
BufferedIO
(usesbstr
rather thanrealloc
)
0.6
Visible changes
-
Support for new games:
- Brightia
- Candy Toys
- Cherry Boy, Innocent Girl
- Cherry Tree High I! My! Girls!
- Doki Doki Princess
- G-senjou no Maou
- Go! Go! Nippon!
My First Trip to Japan - Honoo no Haramase Tenkousei
- Imouto ni! Sukumizu Kisetara Nugasanai!
- Magical Charming! (thanks Nathanael)
- Moshimo Ashita ga Harenaraba
- Touhou 15 - Legacy of Lunatic Kingdom (full version)
- Tsujidou-san no Virgin Road
-
Support for new formats:
- BGI's CBG v2 image decoding
- BGI's DSC format
- Cronus's PAK archives
- Cronus's images
- EAGLS's GR images
- EAGLS's PAK script files
- EAGLS's PAK/IDX archives
- Ivory's MBL dialog file encryption
- Ivory's WADY music files
- LiarSoft's packed OGG sound files
- Libido's ARC archives
- MinatoSoft's FIL image masks
- RealLive's NWA sound files
- RealLive's OVK voice archives
- Riddle Soft's CMP images
- Riddle Soft's PAC archives
- sysadv's PAK archives
- sysadv's PGA images
A few formats mistakenly reported to fully supply game audio. All of these
were fixed by introducing new formats above. -
Changed the way things are logged
- Newlines here and there
- Reduced clutter
- Removed output during recognition phase except required minimum
- Added logging of output path of currently processed files
-
Added colored logs
-
Added
--no-color
to disable colors (useful for piping output) -
Added
--no-recurse
option (useful for testing stuff or salvaging broken
archives) -
Added checksum tests to BGI's CBG decoder
-
Improved Touhou's PAK1 image and sound recognition
-
Fixed fkey-based decryption of QLiE's PACK archives
-
Fixed QLiE's ABMP10 archive unpacking
-
Fixed
WAV
decoded files producing malformedRIFF
header -
Fixed small mistake in README (
--fmt=xp3
→--fmt=krkr/xp3
) -
Added more file names to Tsujidou-san Jun'ai Road (from ~170 unextractable
files we went down to just 1) -
Removed need to supply
--game-title
in Whale's DAT archive - until now, it
required people to type/paste game title in kanji, which could cause a lot of
stress for all those poor souls usingcmd.exe
; now it's placed at the top
of the--file-names
file (thanks fri) -
Added
--dump
to Whale's DAT archive, which should help in reverse
engineering file names in future games -
Renamed
key
toreal_live
(turns out not only Key uses this engine)
Internal changes
- Switched to C++14
- Replaced
TransformerFactory
withRegistry
- Rather than keeping one huge file that
#include
s every decoder in
existence, decoders now register themselves usingauto dummy = Registry::add<Blabla>("bla/bla")
idiom.
- Rather than keeping one huge file that
- Replaced
#include
guards with#pragma once
(thanks fri) - Introduced
pix::
namespace which replaces most of clutter inutil/Image.h
pix::Grid
for image pixel array manipulationpix::Pixel
for channel manipulationpix::PixelFormat
for creatingpix::Grid
frombstr
using given formatpix::Palette
for creatingpix::Grid
frombstr
using given palette- Completely removed
util::colors
util::Image
serves only for PNG/JPEG ↔pix::Grid
decoding/encoding
- Rewritten CLI argument handling
- Now everything that uses
ArgParser
, rather than adding help that could
be any string, register switch/flags in orderly fashion. - Retrieving switches and flags was improved too.
- Now everything that uses
- Refactored the CLI facade (everything put into
Priv
in order to declutter
header file from methods that should be private). - Fixed changing
.h
headers not recompiling tests - Added
Log
that replaces#include <iostream>
in most random places - Added
util::require()
andutil::fail()
which replace assertions - Added
T *bstr::end<T>()
- Added
bstr::bstr(const u8*, size_t)
- Removed
bstr::get<T>(n)
(it wasn't clear what it should do) - Added add ability to trim
bstr::str()
at zero byte - Added
bool File::has_extension(...)
- Fixed memory leak in
io::BitReader
- Improve
io::BitReader
's performance a little bit - Added LCG (Linear Congruential Generators)
- Introduced
PluginManager
to handle--plugin
option for various formats - Added
scripts/pyutil
, whose purpose is to speed up unit test development - Added a bunch of tests for old untested formats (we're still far from 100%
coverage, but things progress; all formats introduced in this version were
covered) - Reorganized file tree for tests
- Moved acknowledgments from
LICENSE.md
toTHANKS.md
(au doesn't use
anyone's code and I learned it's inappropriate to put acknowledgments in
LICENSE.md
) - Reorganized
README.md
- Added byte-wise LZSS unpacker (like the one used by Allegro library)
- Refactored a few old decoders to use Table idiom
- Refactored test support, improved performance
- Added
scripts/inflate
andscripts/deflate
for quick compression of unit
test assets - Improved dependency management in
wscript
- Renamed
_guardian
to_end
- Renamed
catch.hpp
tocatch.hh
(to match.cc
) - A bunch of other small changes
0.5
Visible changes
- Added nightly builds!
- Support for new games:
- "ElEMENTS"
- "Daiakuji"
- "Ever 17"
- "Hanahira"
- "Hare Nochi Kitto Nanohana Biyori"
- "Koiimo SWEET☆DAYS"
- "Mahou Tsukai no Yoru"
- "Mebae"
- "Shoukoujo"
- "Pure My Imouto Milk Purin"
- "Sekien no Inganock - What a Beautiful People"
- "Shikkoku no Sharnoth - What a Beautiful Tomorrow"
- "Touhou 15 - Legacy of Lunatic Kingdom" (trial version)
- Support for new formats:
- TanukiSoft's .TAC 1.10 archives
- AliceSoft's AFA format
- AliceSoft's AFF format
- AliceSoft's ALD format
- AliceSoft's ALK archives
- AliceSoft's PM masks
- AliceSoft's QNT images
- KID's CPS images
- KID's PRT images
- KID's WAF sound files
- KID's LNK archives
- RpgMaker's RGSS3A archives
- Reorganized docs:
- Moved build instructions to separate document
- Moved supported game list to separate document
- Removed synopsis from README
- Added link to LICENSE in README
- Credited ALD Explorer 2 in LICENSE
- Changed icons in the supported game list
- Merged "archive" and "file" tables
- Expanded game titles to full form (Sonohana, Touhou, ...)
- Added prefixes to
--fmt
strings (for example,xp3
→krkr/xp3
) to avoid name clashes - Reformatted format table in
--help
- Fixed BGI unpacking (Higurashi no Naku Koro Ni)
- Fixed segfault for certain G00 files
- Fixed EXE reader sometimes picking wrong section
- Improved Touhou PAK1&2 recognition performance
- Enhanced support for malformed EXE files
- Revoked full support for Higurashi no Naku Koro Ni images (I overlooked DSC, I'll include it in the next version)
- Revoked full support for Wanko to Kurasou sound files (I overlooked WAD, I'll try to include it in the next version)
Internal changes
- Added support for regular MinGW (yay, vanilla Cygwin!)
- Organized namespaces
- Wrapped everything with namespaces relevant to filesystem hierarchy
- Wrapped everything with global
au
namespace
- Introduced
bstr
(binary strings)- Replaced most of pointer/
str::string
/BufferedIO
busywork withbstr
- Removed
BufferedIO.buffer()
in favor ofbstr
- Replaced most of pointer/
- Introduced
util::range
iterator- Replaced most of
for (int i = 0; i < ...; i++)
loops withutil::range
- Replaced most of
- Introduced
util::format
for string formatting- Removed
util::itos
in favor ofutil::format
- Removed
- Simplified OpenSSL dependency management
- Created new classes in
util::crypt
, including dummy plugs that throw
runtime errors if OpenSSL was missing at compile time. This simplifies
TransformerFactory
andwscript
management.
- Created new classes in
- Added
i8
,i16
,i32
andi64
aliases for signed integers - Added checkstyle script
- Added extended debugging flags for gdb
- Added missing underscores to directory names
- Added printing mismatched pixel positions for failed tests
- Added support for reading JPEG images
- Fixed changes to headers not recompiling dependencies
- Fixed
distbin
build target so that external tools are optional - Fixed recompiling the whole project after every change
- Fixed stack overflow when a file became stuck in recognition loop
- This is tough to explain, but shouldn't happen in practice anyway.
- Fixed crash for corrupt ZLIB streams
- Improved raw file comparing performance in tests
- Improved readability of
Archive
's proxies - Reduced UPX compression aggressiveness
- This results in improved performance of
distbin
target at expense of
about +0.3MB to.zip
size.
- This results in improved performance of
- Removed mild profanities (namely, "crap" and "crappy") from comments
- Removed use of "typedef" keyword altogether
- Removed C-like casts + added build warning
- Switched to uppercase hex constants to uppercase
- Switched letter case to PascalCase for enum values
- Switched to user string literals (
_b
) - Renamed
formats/
tofmt/
- Renamed
IO::read_until_end
toIO::read_to_eof
- Renamed
IO::read_until_zero
toIO::read_to_zero
- Replaced
length
withsize
in variable names (improves consistency) - Replaced
endian.h
with own implementation that uses much fewer macros - Added CXDEC encryption block autodetection (removes big-ass table constants)
- Other refactors
0.4
Major visible changes
- Added smart file recognition (no more conflicts between file formats)
- Added file extension guessing to .exe unpacker
- Added support for Tsujidou-san no Jun'ai Road
- DAT archives
- Added support for Irotoridori no Sekai:
- FVP archives
- NVSG image decoding
- Added support for Sukimazakura to Uso no Machi
- MPK archives
- MGR image containers
- Further Touhou support:
- Added support for merging sliced ANM image files
- Added support for 16-bit TFBM image files
- Added support for files from TH13.5 English patch
- Added support for TH14.5
- Added support for CSV decoding
- Added support for TFWA sound files
- Added support for DDS decoding
- Refactored TFPK decoder
- Added more entries to TFPK file name lists
- Changed TFPK fallback file name
- One
.exe
instead of multiple.dll
s
Minor visible changes
- Added automatic recognition of MSK in XFL archives
- Fixed G00 v2 decoding on Linux
- Fixed TLG6 crash on 64-bit Linux
- Fixed encoding for Minato's PAC archives
- Fixed corrupted TLG6 images causing crashes
- Reduced SOTES image false positives
- Reduced SPB false positives
- Added
--rename
flag - Improved supported game list in README
- Fixed bits and pieces in README
- Simplified build instructions for Windows
- Changed OpenSSL to be non-mandatory
- Fixed search by folder chopping 1 char from names
- Opened IRC channel! :3 (details in the README)
Internal changes
- Switched from make to waf
- Ported unit tests to Catch framework
- Added aliases for common encoding conversions
- Added experimental binary string support
- Improved
Transformer
design - Improved color assertions in tests
- Improved code aesthetics (whitespace etc.)
- Reduced line lengths to 80 characters
- Fixed C casts
- Fixed
FileSaver
tests polluting standard output - Fixed inline namespace traversal for VS10
- Fixed pointer types
- Fixed wrong
reinterpret_cast
usage - Simplified UTF8 file name handling in tests
- Suppressed output from
FileSaver
in tests - Removed unused functions and includes
- Removed file extension from bootstrap executable
- Reduced anonymous namespaces usage
- Added shorter type aliases
- Improved image comparison performance in tests
0.3
Visible changes
- Added initial basic support for TH13.5.
- Improved Touhou palette detection for TH7.5, TH10.5 and TH12.3.
- The project has just one binary now:
arc_unpacker
. - Output files appear in the current working directory instead near target files. (For drag'n'drop this doesn't make difference.)
- Instead of
archive.dat
→archive.dat~/*
, program now producesarchive~.dat/*
.
Major changes to project structure
-
Merged
Converter
andArchive
into common interface,Transformer
. -
Improved format-to-format integration:
- Removed
run_converters()
- it's now called behind the scenes. - Removed need for manual internal unpacking thanks to
Transformer::add_transformer(Archive *)
. - Generalized
Transformer
registration (Transformer::add_transformer(Transformer *)
).
- Removed
-
Changed
Converter
,Image
andSound
so that instead of updatingFile&
s, they create newstd::unique_ptr<File>
s from scratch (basing on given file name, so that they know how to change the file extension where applicable.) -
Merged
file_decoder
intoarc_unpacker
. The project has just one binary now:arc_unpacker
. -
Merged archive and converter factories into one
TransformerFactory
. -
Improved file naming management, covered with unit tests.
-
Improved method visibility (
unpack_internal
anddecode_internal
were public 👍). -
Reorganized file structure:
io
→io/io
file_io
→io/file_io
buffered_io
→io/buffered_io
bit_reader
→io/bit_reader
factory/*
→formats/transformer_factory
formats/image
→util/image
formats/sound
→util/sound
endian
→util/endian
Thanks to this change
src/
looks a lot less cluttered now. -
Pulled the internals from
bin/arc_unpacker.cc
into a newmain()
-free class atarc_unpacker.cc
so that it can be tested gracefully in unit tests. -
Added OpenSSL dependency because of TH13.5 and its RSA usage. If any more games use things like AES or whatnot, this should prove beneficial in the future.
0.2.1
Visible changes
- Added support for:
- Touhou: ANM, PBG3, PBG4, PBGZ, THA1 (everything except music and TH13.5)
- QLiE: DPNG images
- QLiE: abmp image archives
- QLiE: new decryption routines (恋剣乙女)
- QLiE: v3 archive support (そして明日の世界より)
- MBL: OGG recognition
- Glib: GML, G2, PGX, STX
- PAC archives (Majikoi)
- EX3 images
- LWG archives
- XFL archives
- WCG images
- BGI: sound and uncompressed bitmaps
- Fixed bugged PRS decoding of some UI images
- Fixed decoding XP3 containing files with multiple SEGM chunks
- Fixed possible division by zero in SOTES decoder
- Reduced P archive detection false positives
- Reduced PAK1 and PAK2 false positives
- Added list of available
FORMAT
s to--help
Major changes to project structure
- Reorganized project structure (
src/formats/arc|gfx|sfx/*
→src/formats/company or engine/*
) - Switched to
boost::filesystem
- Switched to mingw-w64 for non-Cygwin builds
- Renamed
OutputFiles
toFileSaver
andVirtualFile
toFile
Minor changes to project structure
- Added Mersenne Twister
- Added
BufferedIO::reserve()
- Added
IO
-based implementation forBitReader
- Added
bin2hex.rb
- Added generic LZSS decoder
- Archive unpackers accept
VirtualFile
instead ofIO
- Decoupled
VirtualFile
fromBufferedIO
- Fixed minor Makefile bugs
- Improved pixel format constants usages
- Refurbished early C++ code
- Removed
TODO
- Removed superfluous
#include <cassert>
and#include <iostream>
- Removed unused entries in
.gitignore
- Renamed
string/
toutil/
- Extracted common color manipulation routines to
util/
- Replaced file mode strings with an enum
- Simplified converter registration (it broke DRY real hard until now)
- Simplified file writing
- Updated license with new references
- Updated links appearance in license
FileSaver
no longer acquires ownership onFile
s