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

0.5

Compare
Choose a tag to compare
@rr- rr- released this 10 Aug 17:28
· 1670 commits to master since this release

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, xp3krkr/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 with bstr
    • Removed BufferedIO.buffer() in favor of bstr
  • Introduced util::range iterator
    • Replaced most of for (int i = 0; i < ...; i++) loops with util::range
  • Introduced util::format for string formatting
    • Removed util::itos in favor of util::format
  • 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 and wscript management.
  • Added i8, i16, i32 and i64 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.
  • 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/ to fmt/
  • Renamed IO::read_until_end to IO::read_to_eof
  • Renamed IO::read_until_zero to IO::read_to_zero
  • Replaced length with size 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