mirror of
https://github.com/nunuhara/xsystem4.git
synced 2026-09-26 00:47:54 +03:00
Statically link FFmpeg on Windows. This requires building a slimmed-down version of FFmpeg from source. The build process is documented in the README. Also add ffmpeg dependency to the nix flake.
157 lines
4.0 KiB
Markdown
157 lines
4.0 KiB
Markdown
xsystem4
|
|
========
|
|
|
|
xsystem4 is an implementation of AliceSoft's System 4 game engine for unix-like
|
|
operating systems.
|
|
|
|
Compatiblity
|
|
------------
|
|
|
|
See the [game compatibility table](game_compatibility.md) for a list of games
|
|
that can be played on xsystem4.
|
|
|
|
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)
|
|
* freetype (libfreetype-dev)
|
|
* glew (libglew-dev)
|
|
* meson (meson)
|
|
* libffi (libffi-dev)
|
|
* libpng (libpng-dev)
|
|
* libsndfile (libsndfile-dev)
|
|
* libturbojpeg (libturbojpeg0-dev)
|
|
* libwebp (libwebp-dev)
|
|
* SDL2 (libsdl2-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
|
|
|
|
### Windows
|
|
|
|
xsystem4 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-SDL2 \
|
|
mingw-w64-x86_64-freetype \
|
|
mingw-w64-x86_64-libjpeg-turbo \
|
|
mingw-w64-x86_64-libwebp \
|
|
mingw-w64-x86_64-libsndfile \
|
|
mingw-w64-x86_64-glew
|
|
|
|
To build with FFmpeg support, you must compile FFmpeg as a static library:
|
|
|
|
git clone https://github.com/FFmpeg/FFmpeg.git
|
|
cd FFmpeg
|
|
git checkout n6.0
|
|
./configure --disable-everything \
|
|
--enable-decoder=mpegvideo \
|
|
--enable-decoder=mpeg1video \
|
|
--enable-decoder=mpeg2video \
|
|
--enable-decoder=mp2 \
|
|
--enable-parser=mpegaudio \
|
|
--enable-parser=mpegvideo \
|
|
--enable-demuxer=mpegps \
|
|
--enable-demuxer=mpegts \
|
|
--enable-demuxer=mpegtsraw \
|
|
--enable-demuxer=mpegvideo \
|
|
--enable-decoder=vc1 \
|
|
--enable-decoder=wmapro \
|
|
--enable-parser=vc1 \
|
|
--enable-hwaccel=vc1_d3d11va \
|
|
--enable-hwaccel=vc1_d3d11va2 \
|
|
--enable-hwaccel=vc1_dxva2 \
|
|
--enable-demuxer=asf \
|
|
--enable-protocol=file \
|
|
--enable-filter=scale \
|
|
--enable-static \
|
|
--disable-shared \
|
|
--extra-libs=-static \
|
|
--extra-cflags=--static
|
|
make
|
|
make install
|
|
cd ..
|
|
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
|
|
|
|
Then build the xsystem4 executable with meson,
|
|
|
|
mkdir build
|
|
meson build
|
|
ninja -C build
|
|
|
|
To create a portable executable, it is neccessary to copy some DLLs into the same directory as xsystem4.exe.
|
|
You can determine the required DLLs with the following command,
|
|
|
|
ldd build/src/xsystem4.exe | grep mingw64
|
|
|
|
The `fonts` and `shaders` directories must also be shipped together with xsystem4.exe.
|
|
|
|
Installing
|
|
----------
|
|
|
|
If building from source, run:
|
|
|
|
ninja -C build install
|
|
|
|
to install xsystem4 on your system.
|
|
|
|
### Windows
|
|
|
|
The recommended way to install on Windows is to copy the xsystem4 directory
|
|
into the game directory. E.g. if Sengoku Rance is installed at
|
|
`C:\Games\AliceSoft\Sengoku Rance`, then your filesystem should look something
|
|
like this:
|
|
|
|
C:\
|
|
Games\
|
|
AliceSoft\
|
|
Sengoku Rance\
|
|
System40.ini
|
|
xsystem4\
|
|
xsystem4.exe
|
|
...
|
|
...
|
|
|
|
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
|
|
|
|
### Windows
|
|
|
|
If you've installed xsystem4 into the game directory as described above, simply
|
|
double-click `xsystem4.exe` to run the game.
|