Nunuhara Cabbage e00501346b Fix LI_* instructions
The 'lint' type in system 4 is NOT a 64-bit integer type. It is actually
a signed 32-bit integer type that is clamped between 0 and INT32_MAX.

Negative numbers can be assigned to a lint using SH_LOCALASSIGN (or at
least, the unofficial compiler emits such code) but LI_* instructions
always produce a positive result.

I'm guessing System40.exe converts lints to 64-bit integers for doing
arithmetic, and then clamps the result to the 32-bit integer range
before writing back to a variable.

This fixes a bug in Sengoku Rance where units would become invincible in
commander battles after their HP fell below zero.
2020-01-08 19:14:08 -08:00
2020-01-08 19:14:08 -08:00
2020-01-08 19:14:08 -08:00
2019-12-01 22:04:09 -08:00
2019-12-31 17:50:40 -08:00
2019-10-06 19:35:36 -07:00
2020-01-07 22:48:29 -08:00
2020-01-07 22:48:29 -08:00
2019-10-20 21:26:51 -07:00

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.

S
Description
No description provided
Readme
23 MiB
Languages
C 96.5%
GLSL 2.7%
Meson 0.3%
CMake 0.2%
Scheme 0.2%