mirror of
https://github.com/nunuhara/xsystem4.git
synced 2026-09-30 10:58:15 +03:00
dab8deca423fead72fa6c7385700dda1f65d160d
The ainedit utility is a tool capable of modifying AIN files up to
version 12 (Rance X). As far as I know, this is the first publicly
released tool that can handle AIN files above version 7.
The basic mode of operation is as follows:
* dump the CODE section with aindump
* edit the disassembled bytecode
* assemble & insert the edited bytebode back into the original AIN file
using ainedit
E.g.
aindump -c -o out.jam /path/to/Rance10.ain
$EDITOR out.jam
ainedit -c out.jam -o out.ain /path/to/Rance10.ain
mv /path/to/Rance10.ain /path/to/Rance10.ain.backup
mv out.ain /path/to/Rance10.ain
ainedit is also capable of editing declarations (structures, functions,
etc.) using the JSON (-j) output from aindump.
There is currently one major deficiency in this tool: it does not
rebuild the AIN file's switch table (SWI0 section). This means that you
can't insert or delete instructions, as it would render the addresses
stored in the switch table invalid. I hope to fix this soon.
A number of changes have also been made to the aindump utility, since
these tools need to work together.
xsystem4
xsystem4 is an implementation of AliceSoft's System 4 game engine for unix-like operating systems.
NOTE: This is a work in progress. Some simple ADV games run more or less okay, but most games are not fully working or have game-breaking bug when run with xsystem4.
Building
First install the dependencies (corresponding Debian package in parentheses):
- chibi-scheme [optional, for debugger]
- meson (meson)
- libffi (libffi-dev)
- SDL2 (libsdl2-dev)
- SDL2_mixer (libsdl2-mixer-dev)
- SDL2_ttf (libsdl2-ttf-dev)
- zlib (zlib1g-dev)
Then build the xsystem4 executable with meson,
mkdir build
meson build
ninja -C build
Running
You can run a game by passing the path to its "System40.ini" to the xsystem4 executable.
build/src/xsystem4 /path/to/System40.ini
For now, xsystem4 needs to be run in the top-level project directory (i.e. the directory that contains this README file). This will change in the future.
Languages
C
96.5%
GLSL
2.7%
Meson
0.3%
CMake
0.2%
Scheme
0.2%