diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 83f6be4..c18395f 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -15,7 +15,7 @@ jobs: - name: Install Deps run: | sudo apt update - sudo apt install libgtk-3-dev libsdl2-dev libsdl2-ttf-dev libsdl2-mixer-dev libwebp-dev libportmidi-dev libcjson-dev + sudo apt install libgtk-3-dev libsdl2-dev libsdl2-ttf-dev libsdl2-mixer-dev libwebp-dev libportmidi-dev libcjson-dev asciidoctor - name: Build run: | diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 772e6ab..6fe7224 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -44,7 +44,7 @@ jobs: cp fonts/*.license dist/licenses/ - name: Install dev dependencies - run: pacboy --noconfirm -S --needed gcc:p cmake:p ninja:p + run: pacboy --noconfirm -S --needed gcc:p cmake:p ninja:p asciidoctor:p - name: Build run: | @@ -59,7 +59,7 @@ jobs: - name: Package run: | - cp out/release/src/xsystem35.exe *.md COPYING xsys35rc.sample dist/ + cp out/release/src/xsystem35.exe out/release/doc/*.html *.md COPYING xsys35rc.sample dist/ - name: Upload uses: actions/upload-artifact@v4 diff --git a/CMakeLists.txt b/CMakeLists.txt index a990c9d..b703885 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -232,6 +232,9 @@ add_compile_definitions($<$:DEBUG>) add_subdirectory(src) add_subdirectory(tools) add_subdirectory(fonts) +if (NOT ANDROID AND NOT EMSCRIPTEN) + add_subdirectory(doc) +endif() if (ENABLE_NLS) add_subdirectory(po) endif() diff --git a/README.md b/README.md index 8f5aa97..6fa6101 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ Copy `xsystem35.exe` to the game folder and run it. ### Android -See [android/README.md](android/README.md#use). +See [android/README.md](android/README.md#usage). ### Other Platforms @@ -84,11 +84,13 @@ $ cd /path/to/game_directory $ xsystem35 ``` +See [xsystem35 command manual](doc/xsystem35.6.adoc) for detailed usage. + ## Building ### Linux (Debian / Ubuntu) ```bash -$ sudo apt install build-essential cmake libgtk-3-dev libsdl2-dev libsdl2-ttf-dev libsdl2-mixer-dev libwebp-dev libcjson-dev +$ sudo apt install build-essential cmake libgtk-3-dev libsdl2-dev libsdl2-ttf-dev libsdl2-mixer-dev libwebp-dev libcjson-dev asciidoctor $ mkdir -p out/debug $ cd out/debug $ cmake -DCMAKE_BUILD_TYPE=Debug ../../ @@ -100,7 +102,7 @@ $ make && make install [Homebrew](https://brew.sh/) is required. ```bash -$ brew install cmake pkg-config sdl2 sdl2_mixer sdl2_ttf webp cjson +$ brew install cmake pkg-config sdl2 sdl2_mixer sdl2_ttf webp cjson asciidoctor $ mkdir -p out/debug $ cd out/debug $ cmake -DCMAKE_BUILD_TYPE=Debug ../../ diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt new file mode 100644 index 0000000..bf23c78 --- /dev/null +++ b/doc/CMakeLists.txt @@ -0,0 +1,38 @@ +set(SOURCES + xsystem35.6.adoc + xsystem35.gr.5.adoc +) + +find_program(ASCIIDOCTOR asciidoctor) +if (NOT ASCIIDOCTOR) + message(WARNING "asciidoctor not found, manpages will not be generated") +else() + if (WIN32) + set(BACKEND html) + else() + set(BACKEND manpage) + include(GNUInstallDirs) + endif() + + set(MANUALS "") + foreach(SRC ${SOURCES}) + string(REGEX MATCH "^(.*)\\.([0-9])\\.adoc$" _ ${SRC}) + set(NAME ${CMAKE_MATCH_1}) + set(SECTION ${CMAKE_MATCH_2}) + if (WIN32) + set(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.html) + else() + set(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.${SECTION}) + install(FILES ${OUTPUT} DESTINATION ${CMAKE_INSTALL_MANDIR}/man${SECTION}) + endif() + add_custom_command( + OUTPUT ${OUTPUT} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${SRC} + COMMAND ${ASCIIDOCTOR} -b ${BACKEND} -o ${OUTPUT} ${CMAKE_CURRENT_SOURCE_DIR}/${SRC} + ) + list(APPEND MANUALS ${OUTPUT}) + endforeach() + + add_custom_target(manual ALL DEPENDS ${MANUALS}) +endif() + diff --git a/doc/GRFMT.TXT b/doc/GRFMT.TXT deleted file mode 100644 index 7ff16db..0000000 --- a/doc/GRFMT.TXT +++ /dev/null @@ -1,80 +0,0 @@ - ゲームリソースファイル(*.gr)の書き方 - - - xsystem35ではゲームデータの置き場所をテキストファイルに保存しておき、 - それをxsystem35に指定してやる事でデータの置き場所を知らせます。 - -# このファイルのファイル名はxsystem35を起動する時に指定できますので、hoge.gr -# である必要は無く、自由につける事が出来ます。 - - ここでは、このテキストファイル(ゲームリソースファイル)の書式を説明します。 - - - 1つのデータにつき1行で記述します。例を見て下さい。 - - ScenarioA /home/chikama/game/rance4/rance4_sa.ald - - キーワード データのフルパス - - の順に書きます。キーワードは行の先頭から書き、データのフルパスとの間は半角 - スペースです。(セーブデータのみ、ホームディレクトリを表す ~ を評価します。) - - キーワードには次の7つがあります。 - - Scenario : シナリオ - Graphics : グラフィック - Wave : PCMデータ - Midi : MIDIデータ - Data : その他データ - Save : セーブデータ - Resource : リソースファイル(マウスカーソル形状) - Ain : DLL とその関数の情報のかかれた System39.ain - BGM : BGMデータ(エスカレイヤー以降のBGMデータファイル) - WAI : PCMデータの追加情報 (mixer channel 情報等) - BGI : BGMデータの追加情報 (ループ位置等) - SACT01 : SACT.DLL用データ (SACTEFAM.KLD) - ALK : デモ用アーカイブファイル - Init : System39.ini - - 同じ種類のデータが複数ある場合はキーワードの次にA,B,C...をつけます。 - (Ain を除く) - - CD-ROM上のどれがどの種類のファイルかは、ファイル名で判別します。 - *SA.ALD ならシナリオの1番目、*GA.ALDはグラフィック、*WA.ALDはPCM、 - *MA.ALD はMIDI、*DA.ALDはその他データです。 - - Ain は System39.ain へのパスを書きます。例えば - Ain /home/chikama/game/20cKaeru/System39.ain - のように書きます。 - - Init は System39.ini へのパスを書きます。例えば - Init /home/chikama/game/esuka/System39.ini - のように書きます。 - - WAI/BGI は通常1ファイルだけですので - WAIA /home/chikama/game/esuka/DOKI_WA.WAI - BGIA /home/chikama/game/esuka/DOKI_BA.BGI - のように書きます。 - - SACT01 は SACTシステム固有のデータファイル(SACTEFAM.KLD)へのパスを - 指定します。 - SACT01 /home/chikama/game/rance5d/SACTEFAM.KLD - - ALK はデモ用のデータが入ったアーカイブファイルです。 - ALK01 /home/chikama/game/nd/NightDemonDemo1.alk - ALK02 /home/chikama/game/nd/NightDemonDemo2.alk - ALK03 /home/chikama/game/nd/NightDemonDemo3.alk - のように書きます。 - - - また、これらの範疇にはいらないデータ、たとえば、かえるにょぱにょんの - floor_1.mapなどはリソースファイルを介しませんので、ゲームリソース - ファイルには書かず、「セーブデータを置いたディレクトリと同じ場所」に - コピーして下さい。 - - また、Save? のみ、'~' (ホームディレクトリ)を評価しますので、 - SaveA ~/savedata/kichiku/kichiku_sa.ald - のように書く事が出来ます。 - - コメントを書く場合は行頭に # をつけます。また空白行は無視されます。 - diff --git a/doc/README b/doc/README deleted file mode 100644 index 843a99e..0000000 --- a/doc/README +++ /dev/null @@ -1,314 +0,0 @@ - - System 3.5 for X Window System Version 1.7 (開発版) - -0. 目次 - - 1. はじめに - 2. 開発環境と動作確認環境 - 2.a. 開発環境 - 2.b. 動作確認環境 - 2.c. 多分動くと思われる環境 - 3. xystem35の設定ファイル - 4. ゲームの実行と終了 - 4.a. ゲームの実行 - 4.b. ゲームの終了 - 4.c. xsystem35メニュー - 4.d. キーボード操作 - 5. コマンドラインオプション - 6. その他情報 - 6.a. SYSV IPC - 6.b. SharedMemoryの大きさについて - 6.c. locale と X - 7. 著作権とライセンス - 8. サポート - - -1. はじめに - - このソフトは AliceSoft の Syetem3.5/3.6/3.8/3.9 上で動くゲームを - X Window System 上で動かすためのプログラムです。 - - * 動作確認ゲーム - - 鬼畜王ランス - ランス4 (for Win95) - 闘神都市II (for Win95) - 夢幻泡影 (for Win95) - かえるにょぱにょ〜ん (初版、廉価版) - いけないかつみ先生 - 戦巫女 (初版、廉価版) - 零式 (館456版、廉価版) - ATLACH=NACHA (館456版、廉価版) - 人間狩り - 王道勇者 - ディアボリカ (初版、廉価版) - AmbivalenZ(for Win95) - ぱすてるチャイム - ぷろすちゅーでんとGood - 守り神様 - ママトト - - アリスの館456 - DALK - 闘神都市 - DrStop! - ランス1 - ランス2 - ランス3 - - アリスCD Ver 1.02 - メイドのすすめ - ぶろぶろ - 学園漂流戦記 - - Hushaby Baby - Darcrows - PERSIOM - 隠れ月 - SeeIn青 - - 20世紀アリス - これDPS? - かえるにょ国にょアリス - - アリスCD Ver 2.02 - 扉 - 妖精 - - OnlyYou リ・クルス - 王子さま Lv1.5 - - * 動かないゲーム - - 夜が来る! - 王子さま Lv1 - DALK外伝 (System4) - ままにょにょ (System4) - - * 一部動作可能 - - 大悪司 (オープニング不可) - 妻みぐい (オープニング不可) - エスカレイヤー (オープニング不可) - Rance5D - 妻みぐい2 (オープニング不可) - シェル・クレイル - NightDemon (オープニング不可) - - - 各ゲームについての補足事項は doc/GAMES.TXT を御覧ください。 - - また、ネット上で公開されているSYSTEM3.5用のゲームのうち、いくつかは - 動作が確認されています。くわしくは MISCGAME.TXT を御覧下さい。 - - -2. 開発環境と動作確認環境 - - 2.a. 開発環境 - - Kondara-1.2 (Linux/i386) - - 2.b. 動作確認環境 - - DigitalUnix 4.0F (alpha) - SunOS 5.8 (sparc) - - 2.c. 多分動くと思われる環境 - - Linux(!i386) - FreeBSD/NetBSD/OpenBSD (i386 etc) - Irix 6.X - Solaris 2.X 以降 (sparc/i386) - - -3. xystem35の設定ファイル - - xsystem35ではフォントの設定などを、カレントディレクトリとホームディレクトリに - ある .xsys35rcというファイルから読み込みます。カレントディレクトリの .xsys35rc - に書かれた設定のほうが優先されるため、一般的な設定はホームディレクトリの - .xsys35rcに書き、特定のゲームで書き換えたい項目はゲームを置いたディレクトリの - .xsys35rcに書くといいでしょう。 - - サンプルとなるファイルを xsys35rc.sample として用意しました。 - - また、gtk widgetのリソースは ~/.gtk/gtkrc または ~/.gtkrc から読み込みます。 - 読み込み先は .xsys35rc で指定できます。 - - ゲームで使用するフォントは X のフォントの仕組を使う方法と、TrueTypeFontを - 外部ライブラリを使って直接表示する方法の2種類が選べます。 - - ~/.xsys35rc の ttfont_mincho: と ttfont_gothic: の場所にフォントファイルを - 指定し、font_device: ttf と指定してください。詳しくはサンプルファイル - (xsys35rc.sample)を見て下さい。 - - -4. ゲームの実行と終了 - - 4.a. ゲームの実行 - - instgameを使ってゲームデータをインストールすると、インストールした - ディレクトリにの一つ上に ???????.gr というファイル(ゲームリソースファイル) - が自動的に作成されますので - - % xsystem35 -gamefile ~/game/???????.gr - - のように実行します。-gamefile オプションをつけない場合は、カレントディレク - トリの xsystem35.gr を参照します。 - - またいずれも見つからない場合は、カレントディレクトリにあるファイルをゲーム - データとして設定します。例えば testSA.ALD というファイルがカレントディレク - トリにあると、それをシナリオデータとして使います。またセーブデータは適当な - 名前で 10個確保されます。 - - ゲームリソースファイルの書き方については、doc/GRFMT.TXT を御覧下さい。 - - 4.b. ゲームの終了 - - * 起動した端末で Ctrl+C を押すと、すぐに終了します。 - - * ゲーム中にマウスの真中のボタンを押すと、メニューが出て来ますので、 - そこから 'Exit' を選んで終了させて下さい。Window Manager のCloseボタンでも - 同じように動作します。 - - * ESC + SPACE + RET キーを同時に押すと、すぐに終了します。 - - 4.c. xsystem35メニュー - - ゲーム中にマウスの真中ボタンを押すとメニューが出て来ます。 - - メッセージスキップ(MessageSkip): - 次の選択肢までメッセージを飛ばします。マウスの右クリックで - 止まります。シナリオによっては停止しない場合もあります。 - - マウスカーソル移動(MouseAutoMove): - 選択ウィンドなどでマウスが自動的に移動するのを制御します。 - - ボリュームバランス(VolumeValance): - SACTシステムで音声の人物毎に音量を変えることができます。 - (ゲームがそう出来るように対応している場合のみ) - - 情報(About): - このゲームについて。 - - 終了(Exit): - ゲームを終了します。 - - 4.d. キーボード操作 - - アリスソフトのゲームは有史来、基本的に上下左右キーに SPACE, RET, ESC, TAB - キーしか使いません(一部のゲームはそれ以外のキーを使うこともあります)。 - XSystem35 では次のキー割当を特別に使っています。 - - F1: メッセージスキップ - F4: フルスクリーン <-> Window表示の切替え - - また、旧き良き時代の DOS への復帰キー (ESC + SPACE + RET) でゲームを確認なし - で終了出来ます。 - - -5. コマンドラインオプション - - -h : ヘルプを表示します。 - - -gamefile file : ゲームリソースファイルを file から読み込みます。 - - -no-shm : ネットワーク越しに起動する場合に指定します。 - - -devcd name : CD-ROM device名を name にします。 - -devmidi name : MIDI device名を name にします。 - - -M? : MIDI の出力の種類を選択します。 - -Me : External midi player (default) - -Mr : Raw Midi device - -Ms? : Sequencer device (?:device number) - -M0 : disable midi - - -devjoy n : n 番目の joystick のデバイスを使用します。 - - -version : バージョン情報を表示します。 - - -fullscreen : フルスクリーンでゲームを実行します。 - SDL 有効時には Widget にフォーカスが当たらないため Popup - menu 等が使用できません。 - - -antialias : 常に文字にアンチエリアスをかけます。 - - -noantialias : 常に文字にアンチエリアスをかけません。シナリオ上でアンチ - エリアスの指定があっても無視します。 - - -devfont : フォントデバイスを指定します。x11/ft2/sdl のいずれかが - 使えます。 - - -noimagecursor : リソースファイルによるカーソル形状の変更(Darcrows等)を無効 - にしたい場合に指定します。 - - -6. その他情報 - - 6.a. SYSV IPC - - カーネルに SYSV IPC (SharedMemory/MessageQueue/Semaphore)の機能が - 組み込まれている必要があります。 - - 6.b. SharedMemoryの大きさについて - - カーネルのSharedMemoryの大きさが十分大きい場合、MIT-SHMを利用して画面を - 高速に描画する事が出来ます。起動時にエラーが出る場合、カーネルパラメータを - 変更してみて下さい。(BSD 系はデフォルトの SharedMemory の大きさが小さい - ようです) - - 6.b.1. FreeBSDの場合 /usr/src/sys/i386/conf/LINT 中の - - options SHMALL=1025 - options "SHMMAX=(SHMMAXPGS*PAGE_SIZE+1)" - options SHMMAXPGS=1025 - options SHMMIN=2 - options SHMMNI=33 - options SHMSEG=9 - 「SHMMAXPGS」が関連項目です。 - - 24bppで起動する場合は SHMMAXPGS=4096 くらいにするとよいようです。 - もちろん設定後はカーネルの再構築が必要です。 - - 6.c. locale と X - - libc に locale 機構が組み込まれていない環境の場合、libxpg4 などの - ライブラリ(FreeBSD) や X の locale を使うことになります。 - - linux の libc5 な環境では configure 時に --with-locale=ja_JP.ujis として - コンパイルしてください。 - - それ以外のほとんどの環境では考慮する必要はないでしょう。 - - -7. 著作権とライセンス - - プログラムの著作権は作者(chikama)に属しますが、ソースコードはGPLに基づいて - 再配付できます。 - (一部のソースコードは私以外に著作権があります。詳しくは、ソースコードを御覧 - 下さい) - - ゲーム内で使われてるカーソルフォントの一部をqvwm(Windows95そっくりのWindow - Manager)からいただきました。 - - -8. サポート - - 動作報告・バグ報告などは以下のメールアドレスまでお願いします。 - - E-Mail: chikama@nabal.aist-nara.ac.jp (private) - masaki-c@is.aist-nara.ac.jp (official) - - また最新版は以下のURLからダウンロードできます。 - - http://www.aist-nara.ac.jp/~masaki-c/private/unitbase/xsys35/index.html - - バグレポートの際は、お使いの環境を出来るだけくわしく書いて下さい。 - また特定のゲームで動かない場合は、出来るだけセーブデータも添付して下さい。 - - プログラムやシナリオデータのバグで 'sigsegv caught @xxx,xxxxx' といって - 終了する場合は、そのメッセージの部分(xxx,xxxx)も送って下さい。 - - 可能ならば、./configure で --enable-debug を付けてコンパイルしておき、 - デバッガ上で実行して segmentation fault で止まった時に、bt と打って出てくる - メッセージを添付していただけるととても助かります。 diff --git a/doc/xsystem35.6.adoc b/doc/xsystem35.6.adoc new file mode 100644 index 0000000..4bd0fc8 --- /dev/null +++ b/doc/xsystem35.6.adoc @@ -0,0 +1,150 @@ += xsystem35(6) +:doctype: manpage +:manmanual: xsystem35 manual +:mansource: xsystem35 + +== Name + +xsystem35 - play System 3.x games + +== SYNOPSIS + +*xsystem35* [_OPTION_]... + +== DESCRIPTION + +This man page describes *xsystem35-sdl2*, a multi-platform port of the +AliceSoft's System3.5/3.6/3.8/3.9 game engine derived from the original +*xsystem35*. + +`xsystem35` reads the game resource file from the path specified by the +`-gamefile` option, or from `xsystem35.gr` in the current directory if the +option is not specified. If the game resource file is not found, `xsystem35` +finds System 3.x game files (*.ALD) from the current directory. + +== OPTIONS + +*-gamefile* _file_:: + Load game resouce file from _file_. See <> section for details. + +*-game* _game_:: + Enables game-specific hacks. Usually auto-detected, but must be specified for + games with modified / translated titles. Possible values are: `toushin2`, + `rance3_eng`, `rance4_eng`, `rance4_v2`. + +*-savedir* _dir_:: + Directory to save game state files. If _dir_ begins with '~', it is expanded + to the user's home directory (`$HOME`). + +*-saveformat* _fmt_:: + The format when writing save files. Possible values are: `xsystem35`, + `system36`, `system39` (default). + +*-renderer* _name_:: + Use the SDL rendering driver named _name_. + +*-playlist* _file_:: + Load the CD playlist from _file_. The playlist is a text file with one + filename per line, in the order of CD tracks. See <> section for details. + +*-devmidi* _device_:: + Path to the midi device. + +*-Me*:: + Use SDL_mixer for MIDI playback. + +*-Mr*:: + Use raw MIDI device for MIDI playback. + +**-Ms**_device_number_:: + Use sequencer device of the given number for MIDI playback. + +**-Mp**_device_number_:: + Use ALSA (via PortMidi) for MIDI playback. + +*-M0*:: + Disable MIDI playback. + +*-devjoy* _device_index_:: + Use the joystick device with the given index. + +*-ttfont_mincho* _file_:: + Use the given TrueType or OpenType font file for mincho (serif) text. + +*-ttfont_gothic* _file_:: + Use the given TrueType or OpenType font file for gothic (sans-serif) text. + +*-debuglv* _level_:: + Set the debug level to _level_. The higher the level, the more verbose + the debug output. + +*-debug*:: + Start with the debugger enabled. + +*-noantialias*:: + Disable text antialiasing. + +*-fullscreen*:: + Start in fullscreen mode. + +*-integerscale*:: + Use integer scaling for the window. + +*-noimagecursor*:: + Disable custom mouse cursor images. + +*-version*:: + Print the version number and exit. + +*-h, --help*:: + Print a help message and exit. + +== FILES + +*.xsys35rc*:: + `xsystem35` reads its configuration from `${HOME}/.xsys35rc` and `.xsys35rc` + in the game directory. The latter takes precedence over the former, so you + can put general settings in `${HOME}/.xsys35rc` and game-specific settings in + `.xsys35rc` in the game directory. Options specified on the command line + override both. See xsys35rc.sample for the format of the configuration file. + +*playlist.txt*:: + `xsystem35` does not support playing BGM directly from a CD. Instead, it + supports playing BGM from audio files on your filesystem. `xsystem35` reads + the playlist from a file specified by the `-playlist` option, or from + `playlist.txt` in the game directory. The first line is the path to the audio + file for track 1, the second line is the path to the audio file for track 2, + and so on. The first line is usually empty, because track 1 is not an audio + track but a data track. + +*xsystem35.gr*:: + Game resource file which lists the locations of various files needed to run + a game. This is optional; `xsystem35` can automatically find the files it + needs when run inside a game directory. See + xref:xsystem35.gr.adoc[*xsystem35.gr(5)*] for the format of the game resource + file. + +== KEYBOARD SHORTCUTS + +System 3.x games basically only use the UP, DOWN, LEFT, RIGHT, SPACE, RET, ESC, +and TAB keys (some games use other keys). `xsystem35` uses the following +special key assignments: + +*F1*:: + Toggle message skip mode. + +*F4*:: + Toggle fullscreen mode. + +Also, in some platforms, the middle mouse button opens the menu. + +== HISTORY + +*xsystem35* was originally developed by Masaki Chikama (Wren) + between 1998 and 2006. The project was later +forked by Kichikuou as *xsystem35-sdl2* and ported +to SDL2. + +== SEE ALSO + +xsystem35-sdl2 project page: https://github.com/kichikuou/xsystem35-sdl2 diff --git a/doc/xsystem35.gr.5.adoc b/doc/xsystem35.gr.5.adoc new file mode 100644 index 0000000..0885dad --- /dev/null +++ b/doc/xsystem35.gr.5.adoc @@ -0,0 +1,103 @@ += xsystem35.gr(5) +:doctype: manpage +:manmanual: xsystem35 manual +:mansource: xsystem35 + +== Name + +xsystem35.gr - game resource file for xsystem35 + +== DESCRIPTION + +Game resource file is a plain text file that defines the locations of the +various game data files for xsystem35. This file is only needed if you want to +place game data files in a location other than the current directory. + +The path to the game resource file is specified with the `-gamefile` option of +xref:xsystem35.adoc[*xsystem35(6)*]. If it is not specified, xsystem35 reads +`xsystem35.gr` in the current directory. + +Each line of the file specifies a single data file and follows the format: + +_keyword_ _path-to-data_ + +If multiple files of the same type exist, suffixes `A`, `B`, `C`... are +appended to the _keyword_. + +Comments can be added by starting the line with `#`. Blank lines are ignored. + +== KEYWORDS + +*Scenario*:: + Scenario files (`*S?.ALD`). + +*Graphics*:: + Graphic files (`*G?.ALD`). + +*Wave*:: + PCM data files (`*W?.ALD`). + +*Midi*:: + MIDI data files (`*M?.ALD`). + +*Data*:: + Miscellaneous data files (`*D?.ALD`). + +*Resource*:: + Resource files (`*R?.ALD`). + +*BGM*:: + BGM files (`*B?.ALD`). + +*Save*:: + Save files (`*S?.ASD`). If the path begins with '`~`', it is expanded to the + user's home directory (`$HOME`). + +*Ain*:: + The `System39.ain` file. + +*WAI*:: + Additional information for PCM data (`*WA.WAI`) + +*BGI*:: + Additional information for BGM data (`*BA.BGI`) + +*SACT01*:: + Data for SACT.DLL (`SACTEFAM.KLD`) + +*ALK01* - *ALK09*:: + Archive files for demo data (`*1.ALK` - `*9.ALK`) + +*Init*:: + The `System39.ini` file. + +== NOTES + +Data files not categorized under the above keywords (e.g., map files for +Kaeru nyo Panyon) should not be listed in the game resource file, and should be +placed in the same directory as the save files. + +== EXAMPLES + +The following is a game resource file for the English translation of Kichikuou +Rance. + + ScenarioA KICHIKUSA.ALD + GraphicsA KICHIKUGA.ALD + GraphicsB KICHIKUGB.ALD + WaveA KICHIKUWA.ALD + Ain System39.ain + SaveA ~/.xsys35/saves/kichikuou/KICHIKUSA.ASD + SaveB ~/.xsys35/saves/kichikuou/KICHIKUSB.ASD + SaveC ~/.xsys35/saves/kichikuou/KICHIKUSC.ASD + SaveD ~/.xsys35/saves/kichikuou/KICHIKUSD.ASD + SaveE ~/.xsys35/saves/kichikuou/KICHIKUSE.ASD + SaveF ~/.xsys35/saves/kichikuou/KICHIKUSF.ASD + SaveG ~/.xsys35/saves/kichikuou/KICHIKUSG.ASD + SaveH ~/.xsys35/saves/kichikuou/KICHIKUSH.ASD + SaveI ~/.xsys35/saves/kichikuou/KICHIKUSI.ASD + SaveJ ~/.xsys35/saves/kichikuou/KICHIKUSJ.ASD + +== SEE ALSO + +xref:xsystem35.adoc[*xsystem35(6)*]