コンテンツにスキップ

コマンドラインオプション

コマンドラインオプション

吉里吉里のコマンドラインオプションは通常のコマンドラインから指定するほかに、

( krkrrel.exe ) または

( -userconf ) で設定ファイルに保存することができます。

オプションが読み込まれる順序は

  1. 吉里吉里本体に埋め込まれたオプション
  2. 吉里吉里コアと同じディレクトリにある .cf ファイル
  3. 「エンジン設定」(-userconf)が出力した、データ保存場所にある .cfu ファイル
  4. コマンドラインに指定されたオプション

となります。.cf ファイルや .cfu ファイルについては、存在しない場合は単に無視されます。後に読み込んだ指定ほど優先されます。

設定ファイルの名前と場所

Windows ネイティブ版 SDL3 版 (デスクトップ) SDL3 版 (その他)
exe と同じ場所 <exe名>.cf <exe名>.cfconfig.cf config.cf
データ保存場所 <exe名>.cfu <exe名>.cfu ( 読まない )

<exe名>.cf は実行ファイルの拡張子を .cf に変えたものです ( krkrz64.exe なら krkrz64.cf )。SDL3 版のデスクトップ ( Windows / macOS / Linux ) は Windows ネイティブ版と同じ規約で読みます。従来からある固定名 config.cf も引き続き 読まれますが、両方ある場合は <exe名>.cf が優先 されます。

Android / iOS / ブラウザ ( wasm ) / 組み込み機では「実行ファイルの隣」やデータ 保存場所がローカルパスとは限らないため、従来どおり config.cf のみを読みます。

実行ファイルへ埋め込む設定ファイル

このほかに、実行ファイルへ埋め込むリソース内の設定ファイルがあります ( SDL3 系ビルド。Windows ネイティブ版の埋め込みオプションは実行ファイルの リソースとして持ちます )。

  • resource/config.cf … 全プラットフォーム共通
  • resource/config_<タグ>.cf … プラットフォーム別 ( タグ = System.platformTag )

同じリソース資材を複数のプラットフォームで共用しつつ、機種ごとの設定だけを分けたい 場合に使います。読み込みは「具体的なタグ → 一般的なタグ → 共通 config.cf」の順で、 先に読まれたものが優先 されます ( 存在しないファイルは単に読み飛ばされます )。

設定ファイルの書式

1 行に 1 オプションを、先頭の - を除いた形 で書きます。

; 行頭が ';' の行はコメント
datapath="$(exepath)\savedata"
readencoding=UTF-8
lowpri
  • 名前=値 の形式です。= 以降を省略すると値は yes になります ( 上の lowpri )。
  • 値を " または ' で囲むと、TJS の文字列リテラルとして解釈されます ( エスケープが使えます )。-userconf が出力する .cfu はこの形式です。
  • 行末の改行・前後の空白・先頭の BOM は自動的に取り除かれます。改行コードは CRLF / LF どちらでも構いません。

Note: 行末の除去は 2026-08 以降のビルドの動作です。それ以前は行末の改行が値に含まれて しまい、クォートで囲んでいない値や、値を省略した行が正しく効きませんでした。

コマンドラインのオプションは基本的に '-' (ハイフン) に引き続き、オプションの名前が来ます。そのあとそれに引き続き '=' を書き、オプションの値を書きます。

たとえば -cdvol というオプションの値が direct ならば、-cdvol=direct と指定します。

「起動オプション」や「デバッグ関連のオプション」や「システム互換性関連のオプション」を除けば、ほとんどは環境依存の問題を解決するための微調整を行うオプションです。

環境依存の問題の解決については

も参照してください。

Note: Releaser や -userconf では、吉里吉里の実行可能ファイルや外部の設定ファイルを書き換えてこれらのオプションを変更できますが、通常はデフォルトのままで問題ありません。作品を制作する側固有の環境で問題があるということで、これらのオプションをデフォルトの物でないものに変えたままの実行可能ファイルや設定ファイルを一般に配布することはおすすめできません (もちろん -datapath のように配布形態や使用形態にしたがって設定すべきオプションもあります)。

下のリストの中で「動的に変更可能」という表記がある物は、System.setArgument メソッドで変更が可能な物です。それ以外のオプションは動的に変更を行うことは出来ません。

起動オプション

吉里吉里の特定の機能のみを呼び出して使うために以下のオプションがあります。

  • -userconf (エンドユーザ向け設定ツールの起動)
    本体に内蔵されているエンドユーザ向け設定ツールを起動します。
  • -about (著作権情報ダイアログボックスの表示)
    「バージョン・著作権・環境情報」のダイアログボックスを表示します。同梱コンポーネントのライセンス一覧も併せて表示されます ( 全文は -license=<名前> で取り出せます )。
  • -sel (「フォルダ/アーカイブの選択」ダイアログボックスの表示)
    「フォルダ/アーカイブの選択」ダイアログボックスを表示します。data.xp3 などのデータは自動検出されません。

コマンドラインパラメータとして(先頭にハイフンをつけずに)フォルダを指定すると、そのフォルダが初期状態で選択された状態で「フォルダ/アーカイブの選択」ダイアログボックスを開くことができます。 - -nosel (「フォルダ/アーカイブの選択」ダイアログボックスの抑止 / Windows ネイティブ (WINVER) ビルド限定)
データフォルダが特定できないときに表示される「フォルダ/アーカイブの選択」ダイアログボックスを表示せず、そのまま起動処理を続行します。値は不要です。

-about / -license のように情報を出力して終了する場合や、データを与えずに起動して REPL 側から処理を始める場合など、ダイアログが出て停止すると困る用途で指定します。 - -printdatapath (データ保存場所の出力)
データ保存場所 (-datapathオプション) の設定内容と改行を標準出力に出力し、終了します。このオプションは、吉里吉里本体と連携してセーブデータの管理を行う外部アプリケーションなどが利用するためにあります。

データ保存場所のうち、$(exepath) などの特殊な文字列は、置き換えられた後の状態で出力されます。

吉里吉里本体は GUI アプリケーションのため、コマンドプロンプトから単に吉里吉里実行可能ファイルに -printdatapath オプションを指定して起動しても何も表示されません。出力内容を取り込むにはパイプやリダイレクトを用いてください。 - -license (同梱ライセンスの出力)
本体・プラグイン・プロジェクトデータが持つライセンス情報を標準出力に出力し、終了します。

指定 出力
-license 一覧 ( 名前 / 分類 / 供給元 )
-license=<名前> その 1 件のライセンス全文
-license=all 全件のライセンス全文

一覧には、本体に内蔵されたぶんに加えて、読み込まれたプラグインが登録したぶんと、プロジェクトの licenses フォルダに置いたテキスト ( licenses/*.txt ) も合流します。実行時に TJS から取得する場合は System.getLicenseList / System.getLicenseText を使ってください。

プロジェクトを指定せずに起動した場合でも、フォルダ選択ダイアログは表示されません ( ライセンス情報を出力して終了します )。プロジェクトを指定して起動すれば、そのプロジェクトの licenses フォルダのぶんも一覧に載ります。

-printdatapath と同様、吉里吉里本体は GUI アプリケーションのため、コマンドプロンプトから単に起動しても何も表示されません。出力内容を取り込むにはパイプやリダイレクトを用いてください。なお起動時の情報ログも同じ標準出力に出るため、機械処理する場合はライセンス情報の部分を切り出してください。 - -startup (起動スクリプトの指定)
最初に実行するスクリプトファイル名を指定します。

指定がない場合は、startup.tjs が実行されます。 - -nostartup (起動スクリプトの自動実行を抑止 / KRKRZ_REPL ビルド向け)
指定すると、startup.tjs ( および -startup で指定された起動スクリプト ) の自動実行を抑止します。-repl / -replfile 系のエージェント駆動で、ウィンドウを開かず静止状態で起動し、REPL から明示的にスクリプトを呼び出して処理を開始したい場合に利用します。

設定可能な値は '1', 'yes', 'true', 'on' ( 有効 ) または値なし ( 有効 )、'0', 'no', 'false', 'off' ( 無効 ) です。指定しないと無効です。

起動スクリプトが無効でも -nostartup が指定されているときはウィンドウが作られなくても即終了しません。

システム全般のオプション

  • -datapath (データ保存場所)
    吉里吉里が様々なデータを保存する場所(フォルダ)の設定です。

設定可能な値は文字列で指定します。

単純にフォルダ名をフルパスで指定することもできますが、通常は以下の特殊な文字列を埋め込んで使います。

  • $(exepath)
    System.exePath(吉里吉里コアのあるフォルダ名)に置き換えられます。
  • $(appdatapath)
    System.appDataPath(ユーザのホームフォルダ)に置き換えられます。このフォルダは通常、隠しフォルダになっています。
  • $(personalpath)
    System.personalPath(マイドキュメントフォルダ)に置き換えられます。
  • $(vistapath)
    OSがVista以降の場合に$(appdatapath)に、Vista未満の場合に$(exepath)に置き置き換えられます。
  • $(savedgamespath)
    System.savedGamesPath(ゲームのセーブデータ用フォルダ)に置き換えられます。(1.1.0以降)

デフォルトでは「$(exepath)\savedata」となっています。この設定は、インストーラなどを特に用いずにプログラムを zip 等で圧縮・アーカイブして配布し、ユーザにそれを展開して頂いてすぐにプログラム実行、という配布形態に適した設定です。

しかし、このデフォルトの設定では、Program Files 以下にプログラムを配置した場合、Program Files 以下に書き込む権限がない、Windows XP 等の「制限ユーザ」等でプログラムを起動した場合に、ファイルを書き込むことができずにエラーになる可能性があります。

「$(appdatapath)\アプリケーション名」や「$(personalpath)\アプリケーション名」のような名称にすれば、ユーザごとのフォルダに書き込まれることになりますのでこういう問題は発生しにくくなりますが、セーブデータ保存場所の見通しが悪くなるのでユーザがとまどうかもしれません。

このオプションで指定されたデータ保存場所は、吉里吉里起動時に、もし存在していなければ作成が試みられます。作成が失敗してもそこで終了とはならずに処理が続行しますので、エラー処理はユーザのスクリプト内で(データが保存できないなどの例外を捕捉することにより)行ってください。

「エンジン設定」で行った設定は、このデータ保存場所で指定したフォルダの中に作成されます。そのほか、各種ログも、標準ではこのフォルダの中に作成されます。 - -contfreq (処理ウェイト)
トランジション時などの処理をウェイトをかけながら指定の周期で呼び出すことにより、CPU使用率を低減させるかどうかの設定です。

設定可能な値は '0' (ウェイトをかけない) あるいは正の整数で、このオプションを指定しないと '0' が指定されたものと見なされます。正の整数を指定した場合は Hz 単位の周期を指定することができます。

このオプションの影響を受けるのはトランジションや System.addContinuousHandler で登録した Continuous ハンドラです。

'0' にすると、トランジションを実行中などにCPUを使い切って処理を行います。

数値を指定すると、その周期で処理を行うようになり、余った時間はCPUを休ませることになります。これにより、他のアプリケーションへの影響や、CPU温度の上昇、コンピュータの消費電力を抑えることができます。低い数値を指定すればするほどこの効果は高まります。ただし、低い数値を指定するとトランジションなどがなめらかでなくなる可能性があります。

waitvsync オプションで垂直同期待ちを行うと、Continuous ハンドラが垂直同期のタイミングに合わせて駆動されるようになり、contfreq オプションの設定内容は無視されます。

このオプションは動的に変更することが可能ですが、変更が反映されるのは次にトランジションや Continuous ハンドラの動作がとぎれた時です。 - -eventexceptionlimit (毎フレーム系イベントの連続例外上限)
onDraw や Timer のハンドラなど、毎フレーム繰り返し発火するイベントが例外を投げ続けたときのガードです。発火元ごとに連続例外回数を数え、上限に達するとその発火元を自動停止して WARNING ログを出します。

設定可能な値は正の整数で、このオプションを指定しないと '10' が指定されたものと見なされます。'0' を指定するとガードは無効になります。

主に REPL 駆動など「例外で終了しない」構成で、同じ例外が毎フレーム延々と発生し続けるのを防ぐためのものです。 - -memusage (メモリ使用量)
メモリ使用量の設定です。

設定可能な値は 'normal' (通常) あるいは 'low' (低い) で、このオプションを指定しないと 'normal' が指定されたものと見なされます。

「低い」を選択すると「通常」を選択したときよりもメモリを節約して使用するようになります。しかし「低い」を選択すると、吉里吉里内部の様々なキャッシュ機構が制限されたり、 TJS2 のハッシュ表のサイズが制限されるため、パフォーマンスは低下します。また、「低い」を選択すると、「グラフィック-画像キャッシュ制限」は強制的に「キャッシュを行わない」の設定であると見なされます。 - -laxtimer (タイマイベント許容量制限)
一度にシステムに蓄えられるタイマイベントの数 ( 最大発生許容量 ) を制限し、タイマイベントが溜まりすぎて処理できなくなる状況を回避するかどうかの設定です。

設定可能な値は 'no' (しない) あるいは 'yes' (する) で、このオプションを指定しないと 'no' が指定されたものと見なされます。

処理の非常に遅いコンピュータや、非常に重たい処理をタイマで駆動するような場面などでは、タイマによって発生したイベントに対応しきれず、操作などに吉里吉里が応答しづらくなる場合があります。このオプションで 'yes' を指定すると、システムに蓄えられるタイマイベントの最大発生許容量を常に 1 ( Timer クラスの capacity プロパティが 1 の状態 ) に固定します。これによりシステムが処理しきれないようなタイマイベントの発生を抑えることができますが、通常、タイマの精度や正確性は失われます。 - -lowpri (低優先度)
優先度を、トランジション時などに低くするかどうかの設定です。

設定可能な値は 'no' (しない) あるいは 'yes' (する) で、このオプションを指定しないと 'no' が指定されたものと見なされます。

'yes' にすると、トランジションを実行中など、吉里吉里のメインスレッドが連続して CPU を使用する場面になると、メインスレッドの実行優先度を下げるようになります。これにより、トランジション中の音飛びや、トランジション中に他のアプリケーションが操作しづらくなるなどの症状が改善される場合があります。 - -language (メッセージ言語 / 表示言語の明示指定)
エンジンのメッセージ ( エラー文言等 ) とオプション解説 ( -userconf の設定 UI ) の言語を明示指定します。

設定可能な値は BCP-47 形式 ( 'ja-JP', 'en-US', 'zh-Hans' など ) または短縮形 ( 'ja', 'en', 'chs', 'cht' ) です。指定しない場合は OS の言語設定 ( System.systemLanguage ) に追従します。対応言語は ja / en / chs / cht で、対応する資材がない言語は英語 ( それも無ければ日本語 ) へフォールバックします。

Windows ネイティブ ( WINVER ) ビルドでは PE リソースの言語解決 ( メッセージ文字列・設定ダイアログ ) に、SDL3 ビルドでは messages*.json / optiondesc*.json の選択に反映されます。メッセージ文字列への反映はコマンドラインで直接指定した場合のみです ( 設定ファイル内の指定はオプション解説の言語にのみ反映されます )。 - -exceptionexe (例外時起動エディタ)
例外発生時に起動するエディタを指定します。 - -exceptionarg (例外時起動エディタオプション)
例外発生時にエディタを起動する時に指定するオプションを指定します。

単純に引数を指定することもできますが、通常は以下の特殊な文字列を埋め込んで使います。

  • %filepath%
    例外の発生したスクリプトのファイルパスに置き換えられます。
  • %line%
    例外の発生した行番号に置き換えられます。
  • -appname (アプリケーション名 / SDL3 ビルド限定)
    ユーザデータの保存場所 ( user:// ) を決めるときに使うアプリケーション名を指定します。指定しないと 'krkrz' が使われます。

保存場所は OS ごとの規約 ( Windows なら %APPDATA% 配下の 組織名/アプリケーション名 ) に従って決まります。同じエンジンで複数のアプリケーションのデータを分けたい場合に -orgname と併せて指定します。 - -orgname (組織名 / SDL3 ビルド限定)
ユーザデータの保存場所 ( user:// ) を決めるときに使う組織名を指定します。指定しないと 'wamsoft' が使われます。 - -uselfh (LFH を使用する / Windows ネイティブ (WINVER) ビルド限定)
設定可能な値は 'yes', 'true' ( 使用する ) で、それ以外を指定した場合と指定しない場合は使用しません。

メモリの断片化を抑止する LFH ( Low Fragmentation Heap ) を有効化します。Windows Vista 以降は OS 側で既定で有効になるため、通常は指定する必要はありません。

メモリプールのサイズ

エンジンは用途別のアロケータごとに TLSF プールを起動時にまとめて確保します ( 内訳の見かたは メモリ使用量の観測 を参照 )。

以下のオプションはいずれも MB 単位の整数 を取ります。'none' / 'off' / '0' を指定するとそのプールを作らず、従来どおり malloc を使います。

オプション 対象 既定
-bitmappoolsize BitmapAllocator ( Bitmap の画像領域。画像キャッシュの上限もこれに追従 ) 512MB ( 32bit プロセスは 128MB )
-filepoolsize FileAllocator ( ファイル層のキャッシュ。キャッシュ予算もこれに追従 ) 256MB ( 32bit プロセスは 64MB )
-krkrzpoolsize GlobalAlloc[Krkrz] ( operator new / TJS_malloc 経由の確保 ) 256MB ( 32bit プロセスは 64MB )
-soundpoolsize SoundAllocator ( PCM / リングバッファ / DSP の作業領域 ) 16MB
-sdlpoolsize GlobalAlloc[SDL] ( KRKRZ_SDLMEMORY_STAT=ON でビルドした SDL3 系ビルドのみ ) 64MB

プールは起動時に丸ごと確保されるため、大きくするとそのぶん汎用ヒープ ( GL / TJS / 画像デコード等 ) に回せるメモリが減ります。アプリケーションに割り当てられるメモリが固定の環境では特に、既定で不足したものだけを増やす向きで調整してください。プールが足りなくなった場合は malloc へフォールバックするだけで、動作しなくなるわけではありません。

web:// によるオンデマンド配信 ( ブラウザ (wasm) ビルド限定 )

データを xp3 に固めず、サーバ上にバラのファイルとして置いて web://./<パス> で逐次取得するための設定です。

  • -webbase (web:// の基点 URL)
    web:// のパスを解決するときの基点となる URL を指定します。
  • -webmanifest (ファイル一覧マニフェストの名前)
    基点 URL の直下に置くファイル一覧マニフェスト ( JSON ) の名前を指定します。指定しないと 'krkrz_files.json' が使われます。

サーバ上のバラファイルはフォルダ内容を列挙できないため、Storages.addAutoPath の検索テーブルはこのマニフェストから構築されます。

入力関連のオプション

  • -wheel (マウスホイール回転検出方法)
    マウスホイールの回転をどのように検出するかの設定です。

設定可能な値は 'no' (使わない) あるいは 'message' (ウィンドウメッセージ) で、このオプションを指定しないと 'message' が指定されたものと見なされます。「使わない」を選択するとマウスホイールは使用不可能になります。

※ 以前あった 'dinput' (DirectInput) は廃止されました。DirectInput は 排他フルスクリーン時に WM_MOUSEWHEEL が届かない旧環境向けの回避策でしたが、 現在は D3D11 (ボーダーレスウィンドウ) のためウィンドウメッセージで常に検出でき、 DirectInput 依存を撤去しています。互換のため 'dinput' 指定は 'message' として 扱われます。 - -joypad (パッド使用可否)
ゲームパッド(ジョイスティック)を使用するかどうかの設定です。

設定可能な値は 'no' (使わない) で、指定するとゲームパッド機能が完全に 無効化されます(状態取得・キーイベント生成をいずれも行いません)。指定しない 場合はパッドは有効で、接続が無ければ自動的に無効になります。

※ ゲームパッドの実装は XInput (WINVER) / SDL_Gamepad (その他) ベースに 再設計されています(旧 'dinput' 値は廃止)。他デバイスが誤ってパッドとして 認識され誤動作するようなまれなケースで、サポート用に 'no' を使ってください (パッド仕様は Gamepad の項を参照)。 - -paddelay (パッドキーリピートディレイ)
ゲームパッド(ジョイスティック)のキーリピートまでの時間をミリ秒単位で指定します。

設定可能な値は正の数あるいは-1で、-1を指定するとキーリピートを行わなくなります。このオプションを指定しないと 500 が指定されたものと見なされます。

このオプションは動的に変更可能です。

Elements の画面ナビへの波及: このオプションを明示指定した場合に限り、Elements ダイアログのフォーカス送り ( パッド十字 / スティックの長押し ) の既定にも同じ値が使われます。指定しなければ従来どおり Elements 側の既定( 400ms / 押し込み量連動 ) のままです。画面 JSON の "input": { "repeat_delay_ms", "repeat_rate_ms" } が書かれていればそちらが優先されます ( 優先順 = 画面 JSON > このオプション > input_defaults.jsonc > 組込既定 )。 - -padinterval (パッドキーリピート間隔)
パッド(ジョイスティック)のキーリピートの間隔をミリ秒単位で指定します。値が小さいほどリピートが高速になります。

設定可能な値は正の数で、このオプションを指定しないと 30 が指定されたものと見なされます

このオプションは動的に変更可能です。

Elements の画面ナビへの波及: このオプションを明示指定した場合に限り、Elements ダイアログのフォーカス送り ( パッド十字 / スティックの長押し ) の既定にも同じ値が使われます。指定しなければ従来どおり Elements 側の既定( 400ms / 押し込み量連動 ) のままです。画面 JSON の "input": { "repeat_delay_ms", "repeat_rate_ms" } が書かれていればそちらが優先されます ( 優先順 = 画面 JSON > このオプション > input_defaults.jsonc > 組込既定 )。 - -padbuttons (パッドのボタン割り当て方式 / SDL3・汎用ビルド限定)
ゲームパッドの物理ボタンを VK_PAD1VK_PAD4 へどう割り当てるかの設定です。

設定可能な値は 'label' (ボタンの刻印で割り当てる) あるいは 'position' (ボタンの位置で割り当てる) のいずれかで、このオプションを指定しないと 'label' が指定されたものと見なされます。

'label' では VK_PAD1 が刻印 A ( PlayStation では ✕ )、VK_PAD2 が B ( ○ )、VK_PAD3 が X ( □ )、VK_PAD4 が Y ( △ ) のボタンに割り当てられます。任天堂系のように A/B・X/Y の位置が入れ替わっているコントローラでも、画面表示と実際に押すボタンが一致します。

'position' は従来の割り当てで、下 = VK_PAD1、右 = VK_PAD2、左 = VK_PAD3、上 = VK_PAD4 になります。刻印が判定できないコントローラでは 'label' 指定時も自動的にこちらへフォールバックします。PlayStation / Xbox 系はどちらの方式でも結果が同じです。

実行中の変更は System.padButtonMapping で行えます。

このオプションは SDL3 / 汎用ビルドでのみ有効です。Windows ネイティブ ( WINVER ) ビルドのパッド入力は XInput ベースで、ボタンの刻印が Xbox 系に固定されているため位置と刻印が食い違いません。 - -controlime (IME状態制御)
IME(日本語などの変換入力ソフト)の状態制御(有効か無効かなどの制御)を行うかどうかの設定です。

設定可能な値は 'yes' (行う) あるいは 'no' (行わない) で、このオプションを指定しないと 'yes' が指定されたものと見なされます。

「行わない」を選択すると、「IMEを通じて入力を行う日本語などの言語の入力ができない」といった不具合を回避できる可能性があります。

サウンド関連のオプション

  • -wsfreq (サウンド出力周波数)
    サウンド出力(ミキサ)のサンプリング周波数の設定です。

設定可能な値は 正の自然数で周波数を Hz 単位で表し、このオプションを指定しないと '44100' が指定されたものと見なされます。

とくに WDM 系サウンドドライバを用いる環境 (Windows2000, XP以降 など) では、設定を変更しても再生状態に変化がない場合もあります。 - -wspreinit (オーディオデバイス先行初期化)
設定可能な値は 'yes' (する) または 'no' (しない) で、このオプションを指定しないと 'yes' が指定されたものと見なされます。

'yes' の場合、起動時にオーディオデバイス (miniaudio エンジン) を先行して初期化します。'no' の場合は従来通り、最初のサウンド再生時に初めて初期化します。

従来のように最初のサウンド再生時に初めてデバイスを開くと、デバイスオープンにかかる時間の分だけ再生開始が遅れ、音の先頭が欠けてしまうことがあります。'yes' (既定) にしておくと起動時に初期化を済ませておくため、この頭切れを防げます。

何らかの理由で起動時のデバイスオープンを避けたい場合 (不安定なサウンドドライバなど) は 'no' を指定してください。 - -opus_pcm_format / -ogg_pcm_format (デコード出力形式)
'f32'** を指定すると、そのコーデックのデコード出力を IEEE 32bit float にします。指定しないと 16bit 整数で出力します ( -opus_pcm_format が opus、-ogg_pcm_format が ogg ( Vorbis ) に対応します )。

ゲイン ( 下記 -opus_gain / -ogg_gain / ReplayGain ) を大きく加算する場合など、16bit でのクリップを避けたいときに使います。1 サンプルが 2 バイトから 4 バイトになるので、そのぶんメモリと帯域を使います。

サウンドのゲイン

圧縮音声のデコード時にゲイン (音量) を dB 単位で加算する仕組みです。旧 wuvorbis / wuopus プラグインのゲイン拡張を本体内蔵デコーダへ統合したものです。全体ゲイン ( 下記オプション )、ReplayGain タグ、曲別コールバック ( WaveSoundBuffer.setGainQueryCallback ) の合算が適用されます。

  • -opus_gain (opus 全体ゲイン)
    opus 再生全体に適用するゲインを dB で指定します。opus はヘッダの出力ゲイン (R128) をデコーダ内部で適用するため、この値はそれに加算されます。
  • -ogg_gain / -vorbis_gain (ogg/Vorbis 全体ゲイン)**
    ogg ( Vorbis ) 再生全体に適用するゲインを dB で指定します ( 両名は同義。-vorbis_gain は旧プラグイン互換 )。Vorbis はフォーマットにゲイン概念が無いため、出力 PCM を float 域でスケールして適用します。
  • -ogg_rg / -vorbis_rg (ogg/Vorbis ReplayGain)
    設定可能な値は
    'none' (使わない), 'track' (トラックゲイン), 'album' (アルバムゲイン)** で、既定は 'none' です。ファイルの replaygain_track_gain / replaygain_album_gain タグを読み、その dB を加算します ( 既存再生を変えないよう既定は無効 )。

推奨: opus は仕様上ヘッダに出力ゲイン (R128) を持ち、デコーダ内部で正確・低コストにゲインを適用できます。ゲインやラウドネスを積極的に扱う場合は opus の利用を推奨します

廃止されたサウンドオプション

  • -wsdecpri (PCM デコードスレッド優先順位)
    サウンド基盤が miniaudio へ移行した際になくなりました。指定しても単に無視されます。

グラフィック関連のオプション

  • -display (起動するディスプレイの指定)
    マルチディスプレイ環境で、ウィンドウを最初に表示するディスプレイ (モニタ) を指定します。WINVER ビルド / SDL3 ビルドの両方で使えます。

設定可能な値は次のいずれかです。

  • 番号
    1 から始まるディスプレイ番号です。Windows では \\.\DISPLAY1 … の番号 (「設定」→「システム」→「ディスプレイ」に表示される番号) に対応します。例: -display=2
  • 名前
    モニタ名の一部 (大文字小文字は無視) です。例: -display=DELL
    複数のディスプレイに一致する場合は、番号の小さいものが選ばれます。
  • primary
    プライマリディスプレイを指定します。
  • list
    ディスプレイの一覧をログへ出力するだけで、ディスプレイの指定は行いません (? / help も同じ)。番号や名前を調べるのに使います。

指定に一致するディスプレイがない場合は、警告と一覧をログに出したうえで、指定が無かったときと同じ動作になります。

ウィンドウは、生成時と最初の表示直前に、指定したディスプレイの作業領域 (タスクバー等を除いた範囲) 内へ移動されます。スクリプトがウィンドウ位置を指定している場合は、そのディスプレイの作業領域原点からの相対位置が保たれます。移動は起動時の一度きりなので、その後ユーザがウィンドウを別のディスプレイへ動かすことは妨げません。

フルスクリーンはウィンドウが乗っているディスプレイに対して行われるため、このオプションで指定したディスプレイでフルスクリーンになります。

主にテスト用途 (メインディスプレイの作業を邪魔せずに動作確認する) を想定したオプションです。 - -maximizebox (ウィンドウ最大化ボタンの有効/無効 / SDL3 ビルドの Windows 限定)
タイトルバーの最大化ボタンを表示するかどうかの設定です。

設定可能な値は 'yes' (有効) または 'no' (無効) です。このオプションを指定しないと 'yes' が指定されたものと見なされます。

'no' を指定すると最大化ボタンが消え、タイトルバーのダブルクリックや Win+↑ による最大化もできなくなります。ウィンドウ枠のドラッグによるリサイズと Alt+Enter のフルスクリーン切替は従来どおり使えます。画面比率を固定した構成 ( Window.aspectLock ) で、作業領域いっぱいへ広がる最大化だけを封じたい場合に使います。

SDL3 ビルドの Windows でのみ有効です ( 他のプラットフォームと WINVER ビルドでは何もしません )。 - -gclim (画像キャッシュ制限)
画像キャッシュに使用するメモリの最大値の設定です。

設定可能な値は 'auto' (自動) または整数の値で、整数の値を指定する場合は画像キャッシュに使用するメモリを MB 単位で指定します。このオプションを指定しないと 'auto' が指定されたものと見なされます。

吉里吉里はいったん読み込んだ画像を素早くアクセスできるように画像をキャッシュする機構を持っています。それに使用するメモリの制限値を指定します。

'auto' を指定すると、コンピュータに実装されている物理メモリの量によって自動的に値が決定されます。

'0' を指定するとキャッシュは行いません。

吉里吉里実行中にスワップが頻繁に発生するようであれば、この値を小さく指定するか、'0' を指定すると改善される可能性があります。 - -fsres (フルスクリーン時の画面解像度)
フルスクリーン時の画面解像度の設定です。

設定可能な値は 'auto' (自動), 'proportional' (縦横比が同じ解像度) , 'nearest' (最も近い解像度) , 'nochange' (解像度を変えない) のいずれかで、このオプションを指定しないと 'nochange' が指定されたものと見なされます。

※ Windows ネイティブ ( WINVER ) ビルドのみ有効です ( -fszoom も同様 )。SDL3 ビルドのフルスクリーンは解像度を変更しないボーダーレス方式で、表示倍率は Window のジオメトリ設定に従います。

'auto' を選択すると、最も適している画面解像度を自動的に選択して使用します。この場合は、縦横比が同じ解像度のうち、プログラム内で指定されている解像度にフィットする解像度があればそれを選択しますが、そのような解像度がない場合は解像度を変えずにエンジン側で拡大表示をします。この設定の場合は、-fszoom (フルスクリーン時のエンジンによる拡大表示) オプションに 'no' (しない) が指定されていても、常に 'outer' (モニタ内にフィットさせる) であるとみなされます。

'proportional' を選択すると、画面の縦横比が非フルスクリーン時と同じ解像度のうち、プログラム内で指定されている解像度と同じかそれよりも大きく、もっとも近い解像度が選択されます。

'nearest' を選択すると、プログラム内で指定されている解像度と同じかそれよりも大きく、最も近い解像度が選択されますが、非フルスクリーン時と同じ縦横比の解像度が選択される保証はありません。ブラウン管モニタや、画面のアスペクト比を保ったままでの拡大表示に対応している液晶モニタなどでは、この設定が適している場合があります。

'nochange' を選択すると、非フルスクリーン時の解像度のまま、解像度を変更しなくなります。

このオプションは動的に変更することが可能ですが、値が反映されるのは次回フルスクリーンにしようとしたときです。 - -fszoom (フルスクリーン時のエンジンによる拡大表示)
フルスクリーン時に、エンジンによる画面の拡大をどのように行うかどうかを指定します。

設定可能な値は 'inner' (モニタ内にフィットさせる), 'outer' (モニタいっぱいに拡大する), 'no' (しない) のいずれかで、このオプションを指定しないと 'inner' が指定されたものと見なされます。

'inner' を選択すると、必要であれば、エンジンによる拡大を行います。必要な場合とは、画面解像度がプログラム内で指定された解像度と異なる場合です (もし画面解像度がプログラム内で指定された解像度よりも低い場合は縮小処理になります)。この際、プログラム内で指定されている解像度の縦横比を維持した状態での拡大を行いますが、モニタの縦横比とこの縦横比が異なる場合、上下、または左右に隙間ができる可能性があります。この隙間は常に真っ黒な状態で表示されます。

'outer' を指定すると、'inner' を指定したときと同じく、必要であればエンジンによる拡大を行います。しかし、'inner' と違い、モニタの縦横比とプログラム内で指定されている縦横比が異なる場合、上下や左右の隙間ができないようにめいいっぱいまで拡大を行います。このため、隙間はできませんが、モニタ外に画面がはみ出す可能性があります。この設定では、たとえば 16:10 のモニタに 16:9 のコンテンツを表示する際などに、隙間をださずに、めいいっぱいまで拡大させて表示することが可能になります。もちろんこれにより、左右にはみ出す領域が発生しますので、このような表示を想定したコンテンツを制作するのならば、はみ出す部分には重要な UI や文字を表示しない、といった対策が必要になります。

'no' を選択すると、必要であっても、エンジンによる拡大は行いません。この場合は、画面解像度がプログラム内で指定された解像度と異なっていても、エンジン側による拡大は行われません (その結果、画面中央に画像が小さく表示される可能性があります)。

モニタの本来の解像度とグラフィックカードの出力する信号の解像度が異なる場合、液晶モニタなどではモニタ側で拡大表示を行う場合がありますが、モニタ側で拡大処理をした上で、さらにエンジン側でも拡大表示を行うと二重に拡大が行われることになり、画像が汚くなる場合がありますので注意してください (-fsres の「自動」オプションは、このような二重の拡大表示を防ぐ組み合わせを自動的に選択します)。

このオプションは動的に変更することが可能ですが、値が反映されるのは次回フルスクリーンにしようとしたときです。 - -fsmethod (フルスクリーンの切り替え方式)
かつて Direct3D 9 のフルスクリーンモードと ChangeDisplaySettings による解像度変更を切り替えるためのオプションでしたが、Direct3D 9 経路の撤去にともない指定は無視されます ( 常に ChangeDisplaySettings 経路です )。 - -gsplit (画像演算の分割処理)
画像演算を細かく分割して行うかどうかの設定です。

設定可能な値は 'yes' (行う), 'int' (インターレース分割), 'bidi' (双方向分割), 'no' (行わない) のいずれかです。WINVER ビルドでは指定しないと 'yes' が指定されたものと見なされますが、SDL3 ビルドでは指定しないと 'no' が指定されたものと見なされます ( GDI 単一スレッド時代の CPU キャッシュ局所性最適化が SDL3 / OpenGL 環境ではドライバ同期 / dispatch オーバーヘッドの方が支配的になり、特に全面動画再生で大幅に低速化するため )。

吉里吉里は CPU のメモリキャッシュを有効的に使用するために、画像を描画するときに細かい領域に分割しながら演算を行います。環境によってはこれが画面のちらつきにつながるようです。そのような環境では 'no' を指定することによりちらつきを抑えることができる可能性がありますが、描画のパフォーマンスが低下する可能性もあります。ダブルバッファリングを有効にした場合は、分割処理を行わないことの意味が薄いため、分割処理を行う設定にすることをお勧めします。

'int' を指定すると画像の演算の単位を一つおきに処理しますが、画面更新時に縞模様が見える事があります。'bidi' を選択すると画像の演算の順番において、上→下、下→上 を繰り返すようになります ( 'yes' の場合はつねに上→下 )。 - -smoothzoom (拡大表示時のスムージング)
Window.setZoom などで表示内容の拡大表示を行う場合や、-fsres オプションで吉里吉里が画面の拡大(縮小)表示を行う場合に、スムージング(拡大時の補間)を行うかどうかの設定です (Layer.affineCopy 等での拡大縮小とは関係ありません )。

設定可能な値は 'no' (行わない), 'yes' (行う) のいずれかで、このオプションを指定しないと 'yes' が指定されたものと見なされます。

スムージングを行うと、画像がなめらかになりますが、若干ぼけた感じになります。スムージングを行わないと、画像はシャープになりますが、ギザギザが目立つようになります。

環境によっては、スムージングを行わない方がパフォーマンスが低下する可能性があります。また、スムージングが効かない環境がある可能性があります。

サードパーティー製の描画デバイス ( Window.drawDevice プロパティで設定するデバイス ) によってはこのオプションの影響を受けない物もあるかもしれません。

このオプションは動的に変更することが可能ですが、すぐに値が反映される保証はありません。 - -deffont (既定のフォント)
フォント名が指定されていないときに使う既定フォントのフェイス名を指定します。

指定しないと、実行環境の言語設定に応じて同梱フォントやシステムフォントから選ばれます。Windows ネイティブ (WINVER) ビルドでは DEFAULT_GUI_FONT などのストックフォント名も指定できます。 - -aamethod (アンチエイリアス文字描画方式)
アンチエイリアス文字描画方法の設定です。

設定可能な値は 'auto' (自動), 'res4' (リサンプリング4×4), 'res8' (リサンプリング8×8), 'api' (Windows API) のいずれかで、このオプションを指定しないと 'auto' が指定されたものと見なされます。

'auto' の場合は現バージョンでは 'api' を自動的に選択します。

'res4' または 'res8' では、数倍の大きさ (4×4 または 8×8) で文字を描画し、それを縮小することでアンチエイリアスを実現します。res4 の方が res8 よりも高速ですが、精度は低くなります。

'api' では GetGlyphOutline API を用いてアンチエイリアス文字を描画しますが、いろいろと不都合の多い API のようで環境によっては正常に描画できない可能性があります。 - -jpegdec (JPEG画像デコード精度)
JPEG画像のデコード(展開)の精度の設定です。

設定可能な値は 'high' (高い), 'normal' (標準), 'low' (低い) のいずれかで、このオプションを指定しないと 'normal' が指定されたものと見なされます。

'high' を指定するとデコードは低速になりますが、画質は高くなります。'low' を指定するとデコードは高速になりますが画質は低くなります。しかし、見た目ではほとんど違いはありません。 - -drawthread (描画スレッド数)
描画処理時に、使用するスレッドの数の設定です。

設定可能な値は任意の数値もしくは'auto' (自動)のいずれかで、このオプションを指定しないと '1'が指定されたものと見なされます。

'auto'を指定すると、OSの認識するプロセッサ数と同数のスレッドが自動的に割り当てられます。

描画スレッドを複数設定することで、マルチコア環境での描画パフォーマンスを向上させられる可能性がありますが、逆にパフォーマンスが低下する場合もあります。

描画面積が大きい処理、Affine系の高負荷な処理、演算の重いレイヤ合成処理などに適用することで、良好な結果を得られる可能性があります。

マルチスレッドを使用するように設定しても、描画処理の負荷が軽くマルチスレッド化の効果が得られないとシステムが判断した場合は、マルチスレッドで実行されない場合があります。 - -bitmapallocator (ビットマップメモリ確保方式 Ver 1.1 以降)
ビットマップ用のメモリをどのようにして確保するかを指定します。

設定可能な値は 'globalalloc' (GlobalAllocで確保), 'separateheap' (分割ヒープを使用), 'malloc' (mallocを使用)のいずれかで、このオプションを指定しないと 'globalalloc' が指定されたものと見なされます。

separateheap を使用することでメモリのフラグメンテーションを軽減し、メモリ不足エラーの問題を回避できる可能性があります。 - -bitmapheapsize (初期分割ヒープサイズ Ver 1.1 以降)
ビットマップメモリ確保方式で分割ヒープを使用を選んだ場合の初期サイズを指定します。

設定可能な値は 'auto' (自動(推奨)), '0' (自動的に拡大), '64' (64MB), '128' (128MB), '256' (256MB), '512' (512MB), '1024' (1024MB), '2048' (2048MB)のいずれかで、このオプションを指定しないと 'auto' が指定されたものと見なされます。

通常 auto で問題ありませんが、初期値を調整することでメモリのフラグメンテーションを軽減し、メモリ不足エラーの問題を回避できる可能性があります。 - -drawdevice (起動時の DrawDevice 選択)
起動時に使用する既定の DrawDevice を選択します。選べる値はビルドによって異なります。

SDL3 ビルド:

- **'sdl'**: SDL_Renderer 経由の [SDLDrawDevice](../reference/SDLDrawDevice.md) ( backend 自動選択 )
- **'sdlogl'**: OpenGL ES 直接版 ( PBO 経由・Canvas 非対応の純粋版 ) ( `TVP_USE_OPENGL=ON` 時のみ )
- **'ogl'**: OpenGL ES + Canvas / Texture / Shader / Offscreen を含むフル機能版 [OGLDrawDevice](../reference/OGLDrawDevice.md) ( `TVP_USE_OPENGL=ON` 時のみ )

指定しなかった場合、TVP_USE_OPENGL=ON ビルドでは sdlogl、それ以外では sdl が選択されます。

Windows ネイティブ ( WINVER ) ビルド:

- **'basic'**: Direct3D 11 の [BasicDrawDevice](../reference/Window.BasicDrawDevice.md) ( 既定 )
- **'ogl'**: [OGLDrawDevice](../reference/OGLDrawDevice.md) ( `TVP_USE_OPENGL=ON` 時のみ )
- **'null'**: 描画を行わない NullDrawDevice ( 検証用 )

指定しなかった場合は basic です。どちらのビルドでも、未知の値を指定すると警告を出して既定値へフォールバックします。

これは起動時の既定の指定で、実行中に Window.drawDevice へ代入して切り替えるのは従来どおり可能です。ただし SDL3 ビルドを 'sdl' で起動した場合、実行中に OpenGL 系 ( sdlogl / ogl ) へ切り替えることはできません ( OpenGL の初期化が通りません )。OpenGL 機能 ( Canvas 等 ) を使う場合は最初から 'sdlogl' / 'ogl' で起動してください。

OpenGL 系の DrawDevice を使うには OpenGL ES が利用できる環境が必要です。WINVER は常に EGL ( ANGLE の libEGL.dll / libGLESv2.dll ) 経由なので DLL の同梱が必須、SDL3 の Windows では OS の OpenGL ドライバの ES プロファイルが優先され、使えない場合に同じ ANGLE DLL へフォールバックします ( 下記 -forceegl も参照 )。 - -renderer (SDL3 backend の明示指定 / SDL3 ビルド限定)
SDLDrawDevice が利用する SDL_Renderer の backend 名を明示します。 ( 例: direct3d11, vulkan, opengl, software 等 )。

指定しなかった場合は SDL3 の自動選択に任されます。

SDL3 ビルド + SDLDrawDevice ( = -drawdevice=sdl 指定時 ) 使用時のみ意味を持ちます。 - -forceegl (OpenGL ES コンテキストの EGL 強制 / SDL3 ビルド限定)
OpenGL ES コンテキストを、最初から EGL ( Windows では ANGLE の libEGL.dll / libGLESv2.dll ) で作成させます。

設定可能な値は 'no' (既定, 強制しない) または 'yes' (EGL を強制する) です。

SDL3 ビルドは既定で、グラフィックドライバの OpenGL 実装が ES プロファイル ( WGL_EXT_create_context_es2_profile ) に対応していればそちらを優先し、対応していない場合のみ EGL へフォールバックします。ドライバの ES プロファイル実装に問題があり描画が乱れる・初期化に失敗するような環境では、'yes' を指定すると EGL ( ANGLE ) 経由に固定して切り分け・回避ができます ( 内部的には SDL のヒント SDL_OPENGL_ES_DRIVER=1 を設定します。同名の環境変数でも同じ効果が得られます )。

コンテキストの要求バージョンは ES 3.2 で、作れない場合は 3.1 → 3.0 → 2.0 と自動的に下げて再試行します ( ANGLE の D3D11 バックエンドは ES 3.0/3.1 までのため、EGL 経由ではこの再試行で成立します )。実際に得られたバージョンは起動ログの Loaded GLES x.y で確認できます。

WINVER ビルドの OpenGL は常に EGL ( ANGLE ) 経由のため、このオプションは SDL3 ビルドでのみ意味を持ちます。 - -mediaengine (動画のハードウェアデコード / Windows 限定)
VideoOverlay のオーバーレイ再生 ( vomOverlay ) で、 mp4/H.264/HEVC/wmv/asf などの MF-native 形式を Media Foundation ( IMFMediaEngine ) で ハードウェアデコードするかどうかを指定します。

設定可能な値は 'yes' (既定, ハードウェアデコードを使う) または 'no' / 'off' / 'false' / '0' (使わない) です。'no' を指定すると全形式が ソフトウェアデコード ( MF SourceReader / pl_mpeg / movie-player ) になります。

webm ( VP8/VP9 ) と mpeg ( MPEG-1 ) は Media Foundation にデコーダが無いため、この 設定に関わらず常にソフトウェアデコードです。また vomMixer モード ( 追加画像合成 ) は 常にソフトウェア合成経路になります ( VideoOverlaymode プロパティ参照 )。

CPU 機能関連のオプション

以下のオプションはすべて設定可能な値は 'yes' (使用可能であれば使用する), 'no' (使用可能であっても使用しない), 'force' (強制的に使用する) のいずれかで、オプションを指定しないと 'yes' が指定されたものと見なされます。

CPU の認識トラブルが起こった場合に 'no' に設定するとその機能を用いません。

'force' は、その CPU 機能を検出しなくても強制的に使用するようになりますが、CPU にその機能がついていない場合はもちろん正常に動作しません。

このほか -cpusimd'no' を指定すると、検出済みの SIMD 機能をすべて無効化し、C 実装のみで動作します ( このオプションで指定できるのは 'no' だけです )。SIMD 実装と C 実装の差分を切り分けるときに使います。

吉里吉里本体は画像演算などで MMX / SSE 〜 SSE4.2 / AVX / AVX2 / FMA3 ( x86 系 ) と NEON / ASIMD ( ARM 系 ) を実行時に判定して使い分けるため、対応するオプションがそれぞれ影響します。OggVorbis / opus のデコーダは本体内蔵になったため、旧 wuvorbis.dll のような外部デコーダ向けの指定は不要です。そのほかの(サードパーティーの)プラグインの中にも CPU 機能の設定の影響を受けるものがあるかも知れません。

  • -cpummx (MMX)
  • -cpu3dn (3DNow!)
  • -cpusse (SSE)
  • -cpucmov (CMOVcc)
  • -cpue3dn (Enhanced 3DNow!)
  • -cpuemmx (EMMX (MMX2))
  • -cpusse2 (SSE2)
  • -cpusse3 (SSE3)
  • -cpussse3 (SSSE3)
  • -cpusse41 (SSE4.1)
  • -cpusse42 (SSE4.2)
  • -cpusse4a (SSE4a)
  • -cpuavx (AVX)
  • -cpuavx2 (AVX2)
  • -cpufma3 (FMA3)
  • -cpuaes (AES)
  • -cpuneon (NEON / ARM ビルド限定)
  • -cpuasimd (ASIMD / ARM64 ビルド限定)

デバッグ関連のオプション

  • -debug (デバッグモード)
    吉里吉里をデバッグモード ( → Debug ) で動作させるかどうかの設定です。

設定可能な値は 'no' (無効), 'yes' (有効)のいずれかで、このオプションを指定しないと 'no' が指定されたものと見なされます。

有効にすると、吉里吉里はデバッグモードで動作し、いくつかのデバッグ支援機能が有効になりますが、通常のモードよりも実行速度は低下します。 - -forcelog (ファイルへのログ)
コンソールのログをファイルに出力するかどうかの設定です。

設定可能な値は 'no' (出力しない), 'yes' (既存のファイルに追加して出力する), 'clear' (既存のファイルをクリアしてから出力する) のいずれかで、このオプションを指定しないと 'no' が指定されたものと見なされます。 - -logerror (エラー時のファイルへのログ)
エラー時にコンソールのログをファイルに出力するかどうかの設定です。

設定可能な値は 'no' (出力しない), 'yes' (既存のファイルに追加して出力する), 'clear' (既存のファイルをクリアしてから出力する) のいずれかで、このオプションを指定しないと 'yes' が指定されたものと見なされます。 - -loglevel (ログ出力レベル)
起動時のログ出力レベルをオーバライドします。

設定可能な値は 'debug', 'info', 'warning', 'error', 'off' のいずれかです ( 大文字小文字を区別しません )。指定したレベル以上のログのみが出力されます。

指定しない場合のデフォルトは、MASTER ビルドで warning、それ以外の Release ビルドで info、Debug ビルドで debug です。配布バイナリで一時的に詳細ログを採取したい場合に使用します。 - -repl (対話型 TJS シェルの有効化 / KRKRZ_REPL ビルド向け)
起動時に対話型の TJS REPL ( Read-Eval-Print Loop ) を有効化します。

設定可能な値は 'yes', '1', 'on', 'true' ( 有効 ) または値なし ( 有効 )、'no', '0', 'off', 'false' ( 無効 ) です。指定しないと無効です。

さらに次の値を指定すると、コンソールの開き方や表示形態を切り替えます ( いずれも有効化を兼ねます )。

  • 'new' ( 別名 'window' / 'separate' ) : 親や継承したコンソールに attach せず、必ず新規コンソールウィンドウで開きます。ターミナルや別アプリから起動しても起動元のコンソールに食い込みません。

なお本 exe は GUI ( windowed ) subsystem のため、実行中に確保するコンソールは「既定のターミナル アプリ」設定に関わらず conhost になります ( Windows Terminal には載せられません )。端末の制約を受けずに操作したい場合は下記 -replweb ( ブラウザビューワー ) が便利です。

REPL の操作方法や .help 等の特殊コマンドの詳細は REPL ガイド を参照してください。KRKRZ_REPL=OFF でビルドされた exe では無視されます。 - -replfile (REPL ファイルチャネルの有効化 / KRKRZ_REPL ビルド向け)
外部エージェント / 自動テスト向けに、コンソール経由ではなくファイル経由で REPL コマンドを受け付けるチャネルを有効化します。指定したディレクトリ内の入出力ファイルを介して TJS 式を実行できます。

設定可能な値は通信用ディレクトリパスを文字列で指定します。'no', '0', 'off', 'false', 空文字 を指定すると無効になります ( 既定 )。

-repl ( コンソール版 ) と独立して起動でき、両方同時に利用することもできます。詳細は REPL ガイド を参照してください。 - -replsocket (REPL ソケットチャネルの有効化 / KRKRZ_REPL ビルド + Linux 系限定)
abstract namespace の Unix ドメインソケット経由で REPL コマンドを受け付けるチャネルを有効化します。1 行 = 1 コマンド ( TJS 式 ) を受け取り、1 行 JSON で応答します。

設定可能な値はソケット名を文字列で指定します。環境変数 KRKRZ_REPL_SOCKET でも指定できます。

-repl / -replfile と独立して起動でき、同時に利用することもできます。Linux 系以外のビルドでは無視されます。詳細は REPL ガイド を参照してください。 - -replweb (ブラウザ REPL ビューワーの有効化 / KRKRZ_REPL_WEB ビルド向け)
軽量な HTTP + SSE サーバを立て、ブラウザから 上=ログ / 下=入力 で REPL を操作できるようにします。端末 ( conhost ) の制約を受けず、テキスト選択・コピー・貼り付け・スクロール・検索がブラウザネイティブに効きます。

設定可能な値は [ホスト:]ポート です。例: -replweb=8899 ( http://127.0.0.1:8899/ )。既定バインドは 127.0.0.1 ( ローカル専用 )-replweb=0.0.0.0:8899 のように指定すると全インタフェースにバインドし、別マシンのブラウザから接続できます ( devkit / LAN 用途。ネットワークに露出するため信頼できる環境でのみ使用 )。no / 0 / off / false で無効。

実装は WIN32 ( Winsock ) / POSIX ソケット両対応で、-repl / -replfile / -replsocket と独立・同時起動できます。詳細は コンソール を参照してください。 - -replwebidle (ブラウザが閉じたらアプリも終了するまでの秒数)
-replweb の SSE 購読が 1 本も無い状態が指定秒数続いたらアプリを終了します。ブラウザを UI にした構成で、ウィンドウを閉じたのに本体だけ残り続けるのを防ぎます。

既定は有効 ( 5 秒 )-replwebidle=no / off / 0 で無効、-replwebidle=<秒> で秒数を変更できます。

一度でも購読が来てから武装するので、ブラウザを開かないエージェント駆動や、-replweb を単なる API 面として使う構成は購読ゼロのままとなり、既定が有効でも終了しません。複数タブを開いている場合は最後の 1 枚を閉じるまで終了しません。

ページを閉じるときはブラウザから閉じる合図 ( POST /bye ) が飛ぶので通常は 2 秒ほどで終了します。合図が届かない場合 ( クラッシュ等 ) は切断の検知に SSE ハートビートぶんかかるため、指定秒数の最大 2 倍ほど遅れます。 - -replwatchfile (監視式リストの保存先)
REPL の監視式 ( .watch / ブラウザ UI の Watch タブ ) は、式の一覧と自動更新間隔をカレントディレクトリの .krkrz_watch に保存し、次回起動で読み戻します ( REPL 履歴 .krkrz_history と同じ流儀 )。書き戻すのは式の追加 / 削除 / 編集 / 間隔変更のときだけです。

-replwatchfile=<path> で保存先を変更、-replwatchfile=no / off / 0 で永続化を無効にできます。書けない場所では黙って諦めます ( 保存できないことでアプリを止めません )。 - -replwebpad (ブラウザ Pad からの保存を許すディレクトリ)
-replweb のブラウザ UI「Pad」タブ ( スクリプトエディタ ) の [保存] を許可するストレージパスの接頭辞です。例: -replwebpad=work なら work/ 配下にだけ書けます。

既定は書込禁止 ( 保存すると 403 )。読込はいつでもできます。接頭辞比較の際に末尾 / を内部で補うため、-replwebpad=workwork_other/... に当たることはありません。

これはセキュリティ境界ではありません-replweb を開いた時点でブラウザから任意の TJS が実行でき、プロセスの全権限が開いています。「UI の [保存] をうっかり押して資材を上書きしない」ための柵と考えてください。ネットワークへ開く ( -replweb=0.0.0.0:... ) 場合は信頼できる環境でのみ使用してください。 - -replwebopen (-replweb と一緒にブラウザを開く)
既定では「ループバック束縛 かつ コンソール無し ( GUI 起動 )」のときだけブラウザをアプリモードで自動オープンします。端末から起動したときは開きません ( 端末があるなら自分で開けますし、CI / エージェント駆動を邪魔しないため )。この既定を明示的に上書きします。

動作
app ( 値省略時も同じ ) アプリモード ( Edge / Chrome の --app。枠なしウィンドウ )
tab / yes 既定ブラウザの通常ウィンドウ
no / off 開かない ( 自動オープンも抑止 )

端末から起動しつつブラウザも開きたいときに -replwebopen=app を使います。TJS からは WebServer.openBrowser(url, appMode) でも開けます。 - -replmodaltimeout (REPL モーダル応答待ちのタイムアウト秒数)
REPL 稼働中は System.inputString / System.confirm / ファイル選択などのモーダルが、ネイティブダイアログではなく modal 応答チャネル ( エージェント応答 ) 待ちになります。応答が来ないまま指定秒数を過ぎると、catch 可能な例外を投げて呼び出し元へ伝播し、無限待ちを防ぎます。

既定は 30 ( 秒 )。0 を指定すると無限待ち ( 従来動作 ) になります。 - -memoverlay (メモリ状態オーバレイ表示)
起動時から画面右上にエンジンのメモリ状態 ( File / Bitmap / Sound / Krkrz / SDL 各アロケータの使用量とプロセス RSS / VSize 等 ) をリアルタイム表示するオーバレイを有効にします。

設定可能な値は '1' (有効), '0' (無効) のいずれかで、このオプションを指定しないと '0' が指定されたものと見なされます。

実行中の動的切替は System.setMemoryOverlay または REPL の .memoverlay で行えます。オプション自体は全ビルドで有効ですが、描画するのは OGL 系 DrawDevice ( OGLDrawDevice / SDLOGLDrawDevice ) と SDL の SDLDrawDevice です。 WINVER 既定の BasicDrawDevice (D3D11) には 描画フックが無いため表示されませんが、 WINVER でも drawDevice を OGL 系へ 切り替えれば表示されます。 - -padoverlay (ゲームパッド状態オーバレイ表示)
起動時から画面左上にゲームパッドの 16 ボタンマトリクスと 6 軸アナログ値をリアルタイム表示するオーバレイを有効にします。

設定可能な値は '1' (有効), '0' (無効) のいずれかで、このオプションを指定しないと '0' が指定されたものと見なされます。

実行中の動的切替は System.setPadOverlay または REPL の .padoverlay で行えます。オプション自体は全ビルドで有効ですが、描画するのは OGL 系 DrawDevice ( OGLDrawDevice / SDLOGLDrawDevice ) と SDL の SDLDrawDevice です。 WINVER 既定の BasicDrawDevice (D3D11) には 描画フックが無いため表示されませんが、 WINVER でも drawDevice を OGL 系へ 切り替えれば表示されます。 - -drawstatslog (DrawStats の周期ログ出力 / SDL3・LIB ビルド限定)
KRKRZ_DRAW_STATS=ON ビルドかつ MemoryOverlay 表示中、500ms ごとに DrawThreadPool 利用統計をログに出力します ( 実機などで画面表示が速く流れて読めない場合に利用 )。

設定可能な値は '1' (有効), '0' (無効) のいずれかで、このオプションを指定しないと '0' が指定されたものと見なされます。実行中の動的切替は System.setDrawStatsLog からも行えます。

KRKRZ_DRAW_STATS=OFF ビルドではフラグが立つだけで何も起きません。 - -memstatinterval (メモリ統計の周期ダンプ)
正の整数を指定すると、その秒数ごとに System.dumpHeap 相当のメモリ統計をログに出力します。

既定値は 0 ( 無効 )。短い周期 ( 1〜数秒 ) の指定はログ量と性能への影響が大きいので、調査時のみ使用します。KRKRZ_ENABLE_PERIODIC_DUMP=OFF でビルドした場合は無視されます。 - -memstatonexit (終了時のメモリ統計ダンプ)
設定可能な値は '1' (有効), '0' (無効) のいずれかで、有効指定時はエンジン終了時にメモリ統計を 1 回ダンプします。既定値は '0'。

KRKRZ_ENABLE_PERIODIC_DUMP=OFF でビルドした場合は無視されます。 - -cachelistonexit (終了時のキャッシュ一覧ダンプ)
エンジン終了時に Storages の file 層 / decode 層キャッシュエントリ一覧をログにダンプします。終了直前に何が cache に残っていたかを調査する用途に使います。

設定可能な値は次のいずれか:

- **'1' / 'all'**: file 層 + decode 層の両方
- **'file'**: file 層のみ
- **'image'**: decode 層のみ
- **'0' / 'none'**: 無効 ( 既定 )

実行中に一覧を見たい場合は Storages.dumpFileCacheList / Storages.dumpImageCacheList を利用してください。 - -textencodingwarn (テキストエンコーディング自動フォールバックの警告表示)
BOM のないテキストファイルを既定のエンコーディング ( 通常 UTF-8、KRKRZ_USE_SJIS ビルドでは Shift_JIS ) として解釈できなかった場合、エンジンはもう一方のエンコーディングでの再解釈を試みます ( 自動フォールバック )。このオプションは、そのフォールバックが発生したときに対象ファイル名を warning ログに出力するかどうかの設定です。

設定可能な値は '1' (出力する), '0' (出力しない) のいずれかで、このオプションを指定しないと '0' が指定されたものと見なされます。

エンコーディングが混在したプロジェクトではログが埋まるため既定では出力しません。文字化けの原因調査時に有効にしてください。 - -navlog (Elements ダイアログのナビ診断ログ)
Elements ダイアログ ( → ElementsDialog ) のフォーカス移動、cursor-warp ( カーソルをフォーカス先へ飛ばす処理 )、パッド方向キーの到着を、起動からの経過ミリ秒付きでログへ出力します。方向キーの長押し中に説明文とハイライトがずれる、といった入力とナビゲーションのタイミングのずれを切り分けるためのものです。

このオプションは指定するだけで有効になり、値は見ません ( 指定しなければ無効 )。エンジン側と elements_modal 側のログが同時に有効になります。

有効時は、提示に 100ms 以上かかったフレームについて slow frame 行も出力します。内訳の段は ElementsDialog.renderStats と同じ update / raster / acquire / upload / present で、どの段で止まっているかの切り分けに使えます。

ログ量が多く、出力そのものが処理時間に影響するため、調査時のみ使用してください。

  • -ignoremouse (実マウス入力を捨てる / 動作テスト用)
    真にすると実マウスの入力をすべて捨てAgent から注入された入力だけを通します。自動テストで「入力は全部 Agent が出す」前提を作るためのものです。人がうっかりポインタを動かしても測定が汚れません。

設定可能な値は 'yes' (有効), 'no' (無効) のいずれかで、このオプションを指定しないと無効です。実行中の切り替えは Agent.ignoreRealMouse で行えます。

hover 判定やカーソル参照は仮想カーソル位置を見るようになっており、Agent の注入でその位置が更新されるので、有効にしてもホバーやフォーカスは従来どおり動きます ( 設計は src/core/doc/VirtualCursor.md )。

⚠ 有効にすると人の手ではマウス操作できなくなりますAgent を持たないビルド ( MASTER 等 ) では無視されます。

システム互換性関連のオプション

  • -arcdelim (アーカイブデリミタ)
    アーカイブデリミタ (アーカイブストレージ名と、アーカイブ内ストレージ名の間を区切る文字) を指定します。

設定可能な値は '>' ('>'を使う), '#' ('#'を使う) のいずれかで、このオプションを指定しないと '>' が指定されたものと見なされます。

アーカイブデリミタは、吉里吉里2 2.19 beta 14 で、従来の '#' から '>' に変更されました。

2.19 beta 14 未満で動作していたアプリケーションはこの変更のため動作しなくなる可能性がありますが、このオプションでデリミタを '#' に変更することで動作させることができます。 - -evalcontext (後置'!'演算子の動作)
TJS2の後置'!'演算子の動作を指定します。

設定可能な値は 'this' (this上で式を評価), 'global' (global上で式を評価) のいずれかで、このオプションを指定しないと 'this' が指定されたものと見なされます。

TJS2の後置'!'演算子は式をglobalコンテキスト上で実行していましたが、2.21 beta 9 より、this コンテキスト上で実行するようになりました。

2.21 beta 9 未満を想定しているアプリケーションでは、この設定を「global上で式を評価」にしないと動作しない可能性があります。 - -holdalpha (Layer.holdAlpha プロパティのデフォルトの値)
Layer.holdAlpha プロパティのデフォルト値を指定します。

設定可能な値は 'false' (偽), 'true' (真) のいずれかで、このオプションを指定しないと 'false' が指定されたものと見なされます。

吉里吉里2 2.23 beta 4 で、各種演算関数に指定していた hda (アルファチャンネルを保護するか) オプションがなくなり、代わりに Layer.holdAlpha プロパティが作られました。この時点では Layer.holdAlpha のデフォルト値は真でした。Layer.holdAlpha が真の場合は過去のアプリケーションの動作に影響を与えません。

吉里吉里2 2.23 beta 5 で、このデフォルト値が偽になりました。吉里吉里2 2.23 beta 5 未満を想定しているアプリケーションを動作させたい場合は、このオプションに「真」を指定しないと正常に動作しない可能性があります。 - -unaryaster (前置'*'演算子の動作)
TJS2の前置'*'演算子の動作を指定します。

設定可能な値は 'default' (2.25以降の動作), 'compat' (2.25未満の動作) のいずれかで、このオプションを指定しないと 'default' が指定されたものと見なされます。

TJS2の前置''演算子は、プロパティオブジェクトそのものを、プロパティハンドラを介さずに取り出す演算子でしたが、2.25 beta 1 より、この機能を持つ演算子は前置の'&'となり、前置''演算子はプロパティオブジェクトのプロパティハンドラを動作させるための演算子となりました。2.25 beta 1 未満を想定しているアプリケーションでは、この設定を「2.25未満と互換」にしないと正常に動作しない可能性があります。 - -wsvolfactor (ボリュームカーブ)
設定可能な値は '3322' (2.31 2011/6/14以降の動作), '5000' (2.31 2011/6/14未満の動作) のいずれかで、このオプションを指定しないと '3322' が指定されたものと見なされます。

音量のボリュームカーブは、2.31 2011/6/14 より、より直感的なカーブになりました。 - -readencoding (スクリプト読込み文字コード)
設定可能な値は 'Shift_JIS' (吉里吉里2互換の動作), 'UTF-8' (吉里吉里Zの動作) のいずれかで、このオプションを指定しないと 'UTF-8' が指定されたものと見なされます。

スクリプトを読み込むのに使用する文字コードです。 - -ignoretouch (タッチイベントの無効化 1.3.0以降)
設定可能な値は 'false' (偽), 'true' (真) のいずれかで、このオプションを指定しないと 'false' が指定されたものと見なされます。

'true'を指定するとタッチイベントを無効化して、代わりにマウスイベントを発生させます。