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