Skip to content
This repository has been archived by the owner on Apr 25, 2022. It is now read-only.

0.6

Compare
Choose a tag to compare
@rr- rr- released this 05 Sep 07:55
· 1532 commits to master since this release

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 malformed RIFF 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 using cmd.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 to real_live (turns out not only Key uses this engine)

Internal changes

  • Switched to C++14
  • Replaced TransformerFactory with Registry
    • Rather than keeping one huge file that #includes every decoder in
      existence, decoders now register themselves using auto dummy = Registry::add<Blabla>("bla/bla") idiom.
  • Replaced #include guards with #pragma once (thanks fri)
  • Introduced pix:: namespace which replaces most of clutter in util/Image.h
    • pix::Grid for image pixel array manipulation
    • pix::Pixel for channel manipulation
    • pix::PixelFormat for creating pix::Grid from bstr using given format
    • pix::Palette for creating pix::Grid from bstr 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.
  • 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() and util::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 to THANKS.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 and scripts/deflate for quick compression of unit
    test assets
  • Improved dependency management in wscript
  • Renamed _guardian to _end
  • Renamed catch.hpp to catch.hh (to match .cc)
  • A bunch of other small changes