kichikuouandClaude Opus 4.8 dac0345e02 [NOT FOR MERGE] Add opt-in virtual mouse pointer for touch devices
Provide a trackpad-style on-screen cursor for touch environments (mainly
Android), where touching the screen previously jumped the pointer to the
touched location (absolute) and SDL hardware cursors are invisible.

When enabled, a finger drag moves an arrow cursor relatively, a tap
left-clicks (held briefly so polling games detect it), two fingers
right-click, and a stationary long press starts a left-button drag. Real
mouse motion is ignored (including the spurious startup (0,0) event), and
program-driven cursor moves are followed via the internal pointer location
instead of warping the OS cursor.

The feature is disabled by default and enabled via the -virtualpointer
command-line option, the virtualpointer profile setting, or the "Virtual
mouse pointer" toggle in the Android launcher (persisted in
SharedPreferences and passed to the engine as -virtualpointer).

The gesture handling lives in event.c and the cursor rendering in the new
platform-independent virtual_pointer module, so it works on any touch
target.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 20:29:45 +09:00
2026-04-12 22:43:27 +09:00
2025-11-09 11:47:13 +09:00
2025-11-09 22:26:15 +09:00
2025-02-11 12:36:18 +09:00
2024-01-20 11:04:43 +09:00
2024-05-24 21:31:49 +09:00
2026-06-23 19:18:38 +09:00
2026-06-23 19:18:38 +09:00
2014-04-26 18:40:24 +09:00

xsytem35-sdl2

This is a multi-platform port of xsystem35, a free implementation of AliceSoft's System 3.x game engine.

Compatibility

See the game compatibility table for a list of games that can be played with xsystem35-sdl2.

Unique Features

In addition to the original System 3.x functionalities, xsystem35-sdl2 offers the following features:

Playing Audio Files as Virtual CD Music

Many System 3.x games feature music as audio tracks on the CD-ROM. xsystem35 can play music from audio files, eliminating the need to insert CDs. Supported audio file formats are MP3 and Ogg. To use ripped audio files, create a file named playlist.txt in the game directory and list the paths to your tracks, one per line. For example:

# The first line is not used
BGM/track02.mp3
BGM/track03.mp3
...

The first line is not used because the first track on a game CD is typically a data track.

Some games have integrated music as MIDI. In such cases, the music won't play using the virtual CD feature. If you encounter a Cannot load MIDI error message, you might need to set the SDL_SOUNDFONTS environment variable to point to an .sf2 file. For example:

SDL_SOUNDFONTS=/usr/share/soundfonts/GeneralUser.sf2 xsystem35

Unicode Translation Support

While the original System 3.x only supported Shift_JIS (a Japanese character encoding), xsystem35 supports Unicode and can run games translated into languages other than Japanese and English.

For instructions on how to build a game with Unicode support, see the xsys35c documentation.

Debugging

xsystem35 features a built-in debugger that allows you to step through the game and examine or modify game variables. There are two ways to use the debugger:

  • Through Visual Studio Code (recommended): The vscode-system3x extension provides a graphical debugging interface for System 3.x.
  • Using the CLI Debugger: Running xsystem35 with the -debug option will launch the debugger with a console interface. Type help to see a list of available commands.

Streamer Mode

xsystem35 introduces a "Streamer Mode" to make playing games with NSFW content safer for streaming or public viewing. When enabled with the -censor <file> option, images specified in the provided file will be automatically mosaiced.

The misc/censor/ directory contains example censor list files for some games.

Installation

Prebuilt packages for Windows and Android can be downloaded from the Releases page.

Note for Windows:

  • The 64-bit version supports Windows 10 or later. For older versions of Windows, please use the 32-bit version.
  • Debugging is supported only in the 64-bit version.

For other platforms, refer to the Building section.

Running

Windows

Copy xsystem35.exe to the game folder and run it.

Android

See android/README.md.

Other Platforms

Run xsystem35 from within the game directory.

$ cd /path/to/game_directory
$ xsystem35

See xsystem35 command manual for detailed usage.

Building

Linux (Debian / Ubuntu)

$ sudo apt install build-essential cmake libgtk-3-dev libsdl2-dev libsdl2-ttf-dev libsdl2-mixer-dev libwebp-dev libportmidi-dev libcjson-dev asciidoctor
$ mkdir -p out/debug
$ cd out/debug
$ cmake -DCMAKE_BUILD_TYPE=Debug ../../
$ make && make install

MacOS

Homebrew is required.

$ brew install cmake pkg-config sdl2 sdl2_mixer sdl2_ttf webp portmidi cjson asciidoctor
$ mkdir -p out/debug
$ cd out/debug
$ cmake -DCMAKE_BUILD_TYPE=Debug ../../
$ make && make install

Windows

MSYS2 is required.

$ pacman -S cmake mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-SDL2 mingw-w64-ucrt-x86_64-SDL2_ttf mingw-w64-ucrt-x86_64-SDL2_mixer mingw-w64-ucrt-x86_64-libwebp mingw-w64-ucrt-x86_64-portmidi mingw-w64-ucrt-x86_64-cjson
$ mkdir -p out/debug
$ cd out/debug
$ cmake -G"MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug ../../
$ make

Emscripten

$ mkdir -p out/wasm
$ cd out/wasm
$ emcmake cmake -DCMAKE_BUILD_TYPE=MinSizeRel ../../
$ make

To use the generated binary, check out Kichikuou on Web and copy out/xsystem35.* into its docs directory.

Android

See android/README.md.

S
Description
No description provided
Readme
18 MiB
Languages
C 83.2%
Java 10.6%
Kotlin 5%
CMake 1.1%