This is a collection of command-line tools for viewing and editing file formats used in AliceSoft games.
First install the dependencies (corresponding Debian package in parentheses):
- bison (bison)
- flex (flex)
- meson (meson)
- libpng (libpng-dev)
- libturbojpeg (libturbojpeg0-dev)
- libwebp (libwebp-dev)
- zlib (zlib1g-dev)
Then fetch the git submodules,
git submodule init
git submodule update
(Alternatively, pass --recurse-submodules
when cloning this repository)
Then build the tools with meson,
mkdir build
meson build
ninja -C build
alice-tools can be built on Windows using MSYS2.
First install MSYS2, and then open the MINGW64 shell and run the following command,
pacman -S flex bison \
mingw-w64-x86_64-gcc \
mingw-w64-x86_64-meson \
mingw-w64-x86_64-pkg-config \
mingw-w64-x86_64-libpng \
mingw-w64-x86_64-libjpeg-turbo \
mingw-w64-x86_64-libwebp
To build the GUI, you must also install Qt:
pacman -S mingw-w64-x86_64-qt5
Then build the executable(s) with meson,
mkdir build
meson build
ninja -C build
The alice
executable (located at build/src/alice.exe
) should be standalone and portable.
The galice
executable requires some extra files to be shipped with it due to Qt.
Run the following commands to copy the required files for Qt,
mkdir deploy
cp build/src/galice.exe deploy/
windeployqt deploy/galice.exe
At this point, there are still some DLLs missing from the deploy
directory. You can run the
following command to determine the required DLLs,
ldd build/src/galice.exe | grep mingw64
If you've followed the above instructions to build alice-tools from source, run
ninja -C build install
to install it.
alice-tools can be installed via nix with the following command:
nix profile install git+https://github.com/nunuhara/alice-tools.git?submodules=1
You must have flakes enabled (consult the nix documentation for how to enable flakes).
The provided Windows builds are portable, so no installation is required. Simply run the provided executable (alice.exe) from a command prompt.
All of the tools are accessed through the single alice
executable. Running
alice
or any command without arguments will print the relevant usage
instructions. E.g.
alice
alice ain
alice ain dump
The currently implemented commands are:
alice acx build - Build a .acx file from a .csv
alice acx dump - Dump the contents of a .acx file to .csv
alice ain compare - Compare .ain files
alice ain dump - Dump various info fram a .ain file
alice ain edit - Edit a .ain file
alice asd build - Build a save file
alice asd dump - Dump a save file
alice ar extract - Extract an archive file
alice ar list - List the contents of an archive file
alice ar pack - Create an archive file
alice cg convert - Convert a CG file to another format
alice cg thumbnail - Create a thumbnail for a CG file
alice ex build - Build a .ex file
alice ex compare - Compare .ex files
alice ex dump - Dump the contents of a .ex file
alice flat build - Build a .flat file
alice flat extract - Extract the contents of a .flat file
alice project build - Build a .pje project file
See README-ain.md
See README-ex.md
See README-acx.md
See README-flat.md
- aindump only supports dumping to a single file, which can be quite large.
The source code is available on github.
You can report bugs on the issue tracker at github, contact me via email at [email protected], or find me on /haniho/.
- Add
asd dump
andasd build
commands for save file editing - Properly implement packing of afa version 1 archives
- Fix bug when same output directory is listed multiple times in archive manifest
- Allow specifying options in manifest file (e.g.
#BATCHPACK --afa-version=1 --backslash
) - Improve handling of non-ASCII command line inputs
- Fix a bug when using the
--split
option toex dump
- Fix bug affecting Oyako Rankan archive files
- Fix issues with extracting .dcf and .pcf images from Dohna Dohna
- Add option to
ain dump
to dump HLL stubs for xsystem4
- Add GUI viewer ("galice") for archives, ain files, ex files, and more
- Implement support for AAR archives
- Implement proper DCF image support
- Implement PCF image support
- Add
cg thumbnail
command for thumbnailing AliceSoft's image formats - Fix issue that prevented opening Healing Touch ain files
- Various compiler improvements
- Implement file size check for AinInput and PactInput in .pje files
- Implement support for pact archive modding
- Fix issues affecting .flat files
- Add
--function
option toain dump
for dumping a specific function only - Add
ex edit
command for making incremental edits to .ex files - Allow listing .txtex files as part of .pje build process
- Allow specifying archive source directories in .inc files
- Allow (limited) directory wildcard patterns in .inc files
- Allow specifying .jam source files in .inc files
- Implement bytecode injection feature for .pje builds
- Fix encoding issue when using quoted strings in manifest files
- Support extracting DLF and ALK archives
- Fix issues with Japanese file names on Windows
- Allow using quoted strings in archive manifest files
- Various improvements to the .jaf compiler
- Add "BATCHPACK" manifest format for
ar pack
command - Support ain v1 files (Mamanyonyo)
- Add tools for editing .flat files (
flat extract
andflat build
) - Support bytecode function replacement (.jam) via .pje project files
- Support building archives and .ex files via .pje project files
- Add
project build
command for building .pje files (replacesain edit -p
) - Add
cg convert
command for converting between CG types - Various improvements to the (still experimental) .jaf compiler
- Fix encoding issue when using the
ar pack
command on Windows
- Change naming of ain v12+ instructions/types to better reflect their semantics
- Implement ain v14+ versions of various macros
- Automatically dump .ex/.pactex files when extracting archives
- An archive's table-of-contents can now be overridden when extracting
- The ain edit command now processes files in the order given on the command line
- The ain edit command now accepts a --jam option for patching the code section
- Many improvements/fixes to the (experimental) .jaf compiler
- Various bug fixes
- Add
ar pack
command for creating AFAv2 archives - Fix issues with ALD files on Windows
- Support indexing string table by value when using
ain edit -t
command
- Combine all commands into the single binary 'alice'
- Fix issue with the Dohna Dohna trial version .ain file
- Fix issue with unescaped carriage returns characters in output
- Improve error messages
- Add acxdump/acxbuild tools for editing .acx files
- Support extracting .ogg files from afa v3 archives
- Fix crash when extracting CG archive from MangaGamer version of Sengoku Rance
- Support dumping/editing .ain files for Hentai Labyrinth and Evenicle 2 Clinical Trial Edition
- Fixes issue when dumping ain files with ascii-incompatible encodings
- !!! Breaks bytecode compatibility with previous versions !!!
- Removed
--inline-strings
options from aindump and ainedit - Strings are now inlined in
S_PUSH
instructions, etc. - Added a few more bytecode macros
- Added alice-ar tool for extracting archive files
- Now supports ain files up to version 14 (Evenicle 2, Haha Ranman)
- Improved ex file compatibility, now works with Rance 03, Rance IX and Evenicle 2
- aindump now emits macro instructions by default (makes bytecode easier to read)
- Most error messages now include line numbers
- Added
--input-encoding
and--output-encoding
options to control the text encoding of input and output files - Added a
--transcode
option to ainedit to change the text encoding of an ain file - Fixed an issue where the
--split
option to exdump would produce garbled filenames on Windows
- Added exdump and exbuild tools
- Fixed an issue where non-ASCII characters could not be reinserted using
ainedit -t
- Initial release
- Supports dumping/editing .ain files up to version 12 (Rance X)