mirror of
https://github.com/nunuhara/xsystem4.git
synced 2026-09-30 02:48:14 +03:00
e49a666eaaa92553248a57875dea8da227c5d8bd
Remove the --inline-strings option and implement this behavior as the default (removing the old behavior). This is done for string only; messages are still given as integers. This implementation is a bit different than the broken implementation it replaces: instead of trying to completely rebuild the string table from scratch, we simply leave the string table as-is and do a hash-table lookup to get the corresponding index for all string arguments. If the string cannot be found, then it is added at the end of the table. This is NOT implemented for messages because the message table can contain many duplicate strings and the message index actually matters for the purpose of tracking previously read messages. This is a breaking change.
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]
- bison (bison)
- flex (flex)
- meson (meson)
- libffi (libffi-dev)
- libturbojpeg (libturbojpeg0-dev)
- libwebp (libwebp-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%