diff --git a/README.md b/README.md index 7a5d390..aecc4b1 100644 --- a/README.md +++ b/README.md @@ -3,22 +3,22 @@ This is a multi-platform port of `xsystem35`, a free implementation of AliceSoft's System 3.x game engine. -## Compatiblity +## Compatibility See the [game compatibility table](game_compatibility.md) for a list of games -that can be played on xsystem35-sdl2. +that can be played with xsystem35-sdl2. ## Unique Features -In addition to the original System 3.x's functionalities, xsystem35-sdl2 has -the following features. +In addition to the original System 3.x functionalities, xsystem35-sdl2 offers +the following features: -### Playing audio files as fake CD music +### Playing Audio Files as Virtual CD Music -Many System 3.x games had music as audio tracks on the CD-ROM. Xsystem35 can -play music from audio files instead, to avoid the hassle of inserting CDs. To -use ripped audio files, create a file named `playlist.txt` in the game -directory, and enter the paths to your tracks, one per line. For example: +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. 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 @@ -27,98 +27,109 @@ BGM/track03.mp3 ... ``` -The first line is not used, because track 1 of game CD is usually a data track. +The first line is not used because the first track on a game CD is typically a +data track. -Some games have the music integrated as MIDI, if this is the case the music -won't play using the fake CD. If you get `Cannot load MIDI` error message, SDL -might need to use the `SDL_SOUNDFONTS` environment variable, set -`SDL_SOUNDFONTS` to point to a sf2 file. For example: +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 +### Unicode Translation Support -The original System 3.x only supported Shift_JIS (a Japanese character -encoding), but xsystem35 supports Unicode and is able to run games translated -into languages other than Japanese and English. +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. -See [xsys35c](https://github.com/kichikuou/xsys35c)'s document for how to -build a game with Unicode mode. +For instructions on how to build a game with Unicode support, see the +[xsys35c](https://github.com/kichikuou/xsys35c) documentation. ### Debugging -Xsystem35 has a built-in debugger that allows you to step through the game and -examine / modify variables in the game. There are two ways to use the debugger: +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](https://code.visualstudio.com/) (recommended): The [vscode-system3x](https://github.com/kichikuou/vscode-system3x) extension - provides graphical debugging interface for System 3.x. -- Using CUI debugger: Running xsystem35 with `-debug` option will start the - debugger with console interface. Type `help` to see a list of available - commands. + 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. -## Installing +## Installation Prebuilt packages for Windows and Android can be downloaded from the [Releases](https://github.com/kichikuou/xsystem35-sdl2/releases) page. For -other platforms, see the [Building](#building) section. +other platforms, refer to the [Building](#building) section. ## Running ### Windows -Execute `xsytem35`, and it will show a dialog to select a folder. Select the -game folder (where the ALD files are located). +Execute `xsystem35`, and a dialog will appear for you to select a folder. +Choose the game folder (where the ALD files are located). ### Android -See [android/README.md](https://github.com/kichikuou/xsystem35-sdl2/blob/master/android/README.md#use). +See [android/README.md](android/README.md#use). ### Other Platforms Run xsystem35 from within the game directory. - cd /path/to/game_directory - xsystem35 +```bash +$ cd /path/to/game_directory +$ xsystem35 +``` ## Building ### Linux (Debian / Ubuntu) - $ sudo apt install build-essential cmake libgtk-3-dev libsdl2-dev libsdl2-ttf-dev libsdl2-mixer-dev libwebp-dev libcjson-dev - $ mkdir -p out/debug - $ cd out/debug - $ cmake -DCMAKE_BUILD_TYPE=Debug ../../ - $ make && make install +```bash +$ sudo apt install build-essential cmake libgtk-3-dev libsdl2-dev libsdl2-ttf-dev libsdl2-mixer-dev libwebp-dev libcjson-dev +$ mkdir -p out/debug +$ cd out/debug +$ cmake -DCMAKE_BUILD_TYPE=Debug ../../ +$ make && make install +``` ### MacOS -[Homebrew](https://brew.sh/index_ja) is needed. +[Homebrew](https://brew.sh/) is required. - $ brew install cmake pkg-config sdl2 sdl2_mixer sdl2_ttf webp cjson - $ mkdir -p out/debug - $ cd out/debug - $ cmake -DCMAKE_BUILD_TYPE=Debug ../../ - $ make && make install +```bash +$ brew install cmake pkg-config sdl2 sdl2_mixer sdl2_ttf webp cjson +$ mkdir -p out/debug +$ cd out/debug +$ cmake -DCMAKE_BUILD_TYPE=Debug ../../ +$ make && make install +``` ### Windows -[MSYS2](https://www.msys2.org) is needed. +[MSYS2](https://www.msys2.org) is required. - $ pacman -S cmake mingw-w64-x86_64-cmake mingw-w64-x86_64-SDL2 mingw-w64-x86_64-SDL2_ttf mingw-w64-x86_64-SDL2_mixer mingw-w64-x86_64-libwebp mingw-w64-x86_64-cjson - $ mkdir -p out/debug - $ cd out/debug - $ cmake -G"MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug ../../ - $ make +```bash +$ pacman -S cmake mingw-w64-x86_64-cmake mingw-w64-x86_64-SDL2 mingw-w64-x86_64-SDL2_ttf mingw-w64-x86_64-SDL2_mixer mingw-w64-x86_64-libwebp mingw-w64-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 +```bash +$ mkdir -p out/wasm +$ cd out/wasm +$ emcmake cmake -DCMAKE_BUILD_TYPE=MinSizeRel ../../ +$ make +``` -To use the generated binary, checkout +To use the generated binary, check out [Kichikuou on Web](https://github.com/kichikuou/web) and copy `out/xsystem35.*` into its `docs` directory. diff --git a/android/README.md b/android/README.md index 5a4a316..6a73ca2 100644 --- a/android/README.md +++ b/android/README.md @@ -1,7 +1,8 @@ # xsystem35 for Android ## Download -Prebuilt APKs are [here](https://github.com/kichikuou/xsystem35-sdl2/releases). +You can download prebuilt APKs +[here](https://github.com/kichikuou/xsystem35-sdl2/releases). ## Build Prerequisites: @@ -11,8 +12,8 @@ Prerequisites: ### Using Android Studio Open this directory as an Android Studio project. -### Command line build -Configure environment variables and run the `gradlew` script in this folder. +### Command Line Build +Set environment variables and run the `gradlew` script in this directory. Example build instructions (for Debian bookworm): ```sh @@ -25,35 +26,48 @@ mkdir -p $ANDROID_SDK_ROOT/cmdline-tools wget https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip unzip commandlinetools-linux-10406996_latest.zip -d $ANDROID_SDK_ROOT/cmdline-tools mv $ANDROID_SDK_ROOT/cmdline-tools/cmdline-tools $ANDROID_SDK_ROOT/cmdline-tools/tools -yes |$ANDROID_SDK_ROOT/cmdline-tools/tools/bin/sdkmanager --licenses +yes | $ANDROID_SDK_ROOT/cmdline-tools/tools/bin/sdkmanager --licenses $ANDROID_SDK_ROOT/cmdline-tools/tools/bin/sdkmanager ndk-bundle 'cmake;3.22.1' export ANDROID_NDK_HOME=$ANDROID_SDK_ROOT/ndk-bundle -# Check out and build xsystem35 +# Clone and build xsystem35 git clone https://github.com/kichikuou/xsystem35-sdl2.git cd xsystem35-sdl2/android ./gradlew build # or ./gradlew installDebug if you have a connected device ``` -## Use +## Usage ### Basic Usage -1. Create a ZIP file containing all the game files and BGM files (see [below](#preparing-a-zip) for details), and transfer it to your device. -2. Open the app. A list of installed games is displayed. Since nothing has been installed yet, only the "Install from ZIP" button is displayed. Tap it. -3. Select the ZIP file you created in 1. -4. The game starts. To simulate right-click, tap the black bars on the left/right or top/bottom of the screen. +1. Create a ZIP file containing all the game files and BGM files (see + [below](#preparing-a-zip) for details), and transfer it to your device. +2. Open the app. A list of installed games will be displayed. Since no games + have been installed yet, only the "Install from ZIP" button will be visible. + Tap it. +3. Select the ZIP file you created in step 1. +4. The game will start. To simulate a right-click, tap the black bars on either + the left or right, or top or bottom of the screen. ### Preparing a ZIP -- Include all files in the `GAMEDATA` folder (`.ALD` files and others). `.EXE` and `.DLL` are not really needed, but you can include them as well. -- Music files (`.mp3`, `.ogg` or `.wav`) whose file names end with a number are recognized as BGM files. For example: +- Include all files from the `GAMEDATA` folder (such as `.ALD` files and + others). `.EXE` and `.DLL` files are not necessary, but you can include them + if you want. +- Music files (`.mp3`, `.ogg`, or `.wav`) whose filenames end with a number + will be recognized as BGM files. For example: - `Track2.mp3` - `15.ogg` - - `rance4_03.wav` (This shouldn't be `rance403.wav`, because it would be treated as the 403rd track) + - `rance4_03.wav` (Note: The filename shouldn't be `rance403.wav`, as it + would be treated as the 403rd track.) -Note: This form of ZIP can be used in [Kichikuou on Web](http://kichikuou.github.io/web/) as well. +Note: This ZIP format is also compatible with +[Kichikuou on Web](http://kichikuou.github.io/web/). ### Miscellaneous -- You can export / import saved files using the option menu of the game list. -- To uninstall a game, long-tap the title in the game list. +- You can export or import save files via the game list's option menu. +- To uninstall a game, long-tap its title in the game list. ## Known Issues -- Android versions older than 7.0 cannot handle ZIPs containing Shift-JIS file names. This is the case with some ZIPs distributed on [retroc.net](http://retropc.net/alice/). If you get the error "This type of ZIP is not supported.", unzip the ZIP file on your PC and re-archive it with a modern ZIP creation software. +- Android versions older than 7.0 cannot handle ZIP files containing Shift-JIS + filenames. This issue occurs with some ZIP files distributed on + [retroc.net](http://retropc.net/alice/). If you encounter the error message + "This type of ZIP is not supported," unzip the file on your PC and re-archive + it using modern ZIP creation software.