Nunuhara Cabbage 9fbc9ec5b7 Implement simple command-based debugger interface
Add a new debugger interface using a simple command language. This is
less powerful than the scheme interface (which still exists) but more
ergonomic for interactive debugging.

This debugger has no external dependencies (it will however use readline
if available) and is included in builds by default.

A sample interaction might look like:

    xsystem4 --debug /path/to/game
    dbg(cmd)> breakpoint bar
    Set breakpoint at function 'bar' (0x00001234)
    dbg(cmd)> continue
    Hit breakpoint at function 'bar' (0x00001234)
    dbg(cmd)> backtrace
    #0 0x00001234 in bar
    #1 0x00002222 in foo
    #2 0x00004444 in main
    dbg(cmd)> locals
    [0] i: 2
    [1] s: "baz"
    dbg(cmd)> locals 1
    [0] j: 3
    [1] obj: { m_i = 0; m_s = "" }
    dbg(cmd)> quit
2022-04-01 19:38:55 -07:00
2020-09-04 20:33:47 -07:00
2022-01-08 15:10:38 +09:00
2021-05-01 19:50:09 +09:00
2022-03-20 14:35:49 +09:00
2019-10-06 19:35:36 -07:00
2020-08-10 15:51:33 -07:00
2021-10-01 16:44:26 -07: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. I am focusing primarily on the Japanese version of Sengoku Rance (and by extension, the English fan translation) which is currently more or less playable. Some other games from the same era may also work, but I have not done any significant testing on them so breakage is likely.

Building

First install the dependencies (corresponding Debian package in parentheses):

  • chibi-scheme [optional, for debugger]
  • bison (bison)
  • cglm (libcglm-dev) [optional, fetched by meson if not available]
  • flex (flex)
  • meson (meson)
  • libffi (libffi-dev)
  • libpng (libpng-dev)
  • libsndfile (libsndfile-dev)
  • libturbojpeg (libturbojpeg0-dev)
  • libwebp (libwebp-dev)
  • SDL2 (libsdl2-dev)
  • SDL2_ttf (libsdl2-ttf-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 xsystem4 executable with meson,

mkdir build
meson build
ninja -C build

Finally install it to your system (optional),

ninja -C build install

Running

You can run a game by passing the path to its game directory to the xsystem4 executable,

build/src/xsystem4 /path/to/game_directory

Alternatively, run xsystem4 from within the game directory,

cd /path/to/game_directory
xsystem4
S
Description
No description provided
Readme
23 MiB
Languages
C 96.5%
GLSL 2.7%
Meson 0.3%
CMake 0.2%
Scheme 0.2%