プログラミング
W4ME Station – Java ME搭載携帯電話向けのWASM-4ランタイム
W4ME Station – a WASM-4 runtime for Java ME phones (github.com)
要約
W4ME Stationは、2000年代中盤のフィーチャーフォンを含むCLDC 1.1 / MIDP 2.0デバイスで、未変更のWebAssemblyカートリッジを実行できるJava ME向けのWASM-4ランタイムです。275KBのJARファイルに13個のカートリッジがバンドルされており、JITやネットワーク接続なしで動作します。開発にはLinuxと特定のツールが必要です。
全文翻訳
W4ME Station
Java ME搭載携帯電話でWASM-4ゲームを実行する。
W4ME Stationは、2000年代中盤のフィーチャーフォンを含むCLDC 1.1 / MIDP 2.0デバイスに、未変更のWebAssemblyカートリッジをもたらします。13個のバンドルされたカートリッジは275KBのJARに収められています。ランタイムはJITを使用せず、バンドルされたライブラリはネットワーク接続を必要としません。両方のリリースバリアントは300KB未満に収まります。
ダウンロード
Variant
Application Descriptor
Full, with optional JSR-75 file browsing
w4me-station.jar
w4me-station.jad
Base, without JSR-75 classes
w4me-station-base.jar
w4me-station-base.jad
SHA-256チェックサムはバージョン1.0.0の成果物の隣に保存されています。
W4ME StationはCLDC 1.1 / MIDP 2.0デバイスを対象としています。WASM-4メンテナーとは独立しており、承認されていません。
Cartridge library
Cartridge 1 Sokoban
2 Wasm Wars
3 Annoying Robots
4 Waternet
5 Dragon Poker Draw
6 Tic Tac Toe
7 Watris
8 Glowfish Chess
9 Duck Maze
10 Rubido
11 Untangle
12 Sound Demo
13 Plasma Cube
さらに.wasmファイルはデバイスからインストールできます。
機能
永続的な固定幅W4IRキャッシュを備えた検証済みのWebAssembly実行。
WASM-4グラフィックス、入力、オーディオ、ディスク、テキスト、トレーシングホストAPI。
13個のバンドルされたカートリッジに加えて、HTTP(S)、RMS、URL、およびオプションのJSR-75ローディング。
電話キー、キーボードコントロール、ポインター入力、およびオンスクリーンタッチパッド。
チェックサム付きRMS世代を備えた、カートリッジごとの永続的なディスクストレージ。
サンプリングされたMMAPIオーディオ(ストリーミングMIDI、playTone、およびサイレントフォールバック付き)。
グローバルRMSベースのサウンドオン/オフおよびマスターボリュームコントロール。
決定論的なホスト、KEmulator、およびオプションのphoneME検証。
リリースバージョンは1.0.0です。
検証された範囲と残りの制限はCompatibilityに文書化されています。
Requirements
開発には、just、Podman、およびDistroboxがインストールされたLinuxが必要です。プロジェクトツールチェーンにはJDK 8、ProGuard、KEmulator、WABT、およびサポートユーティリティが含まれています。バージョンに依存するコンポーネントはコンテナ定義によって固定されています。
just setup
just doctor
JavaソースとクラスファイルはJava 1.3に固定されたままです。
Build
just build
成果物はdist/に書き込まれます。
Artifact
Purpose
w4me-station.jar / .jad
フルビルド(オプションのJSR-75ファイルブラウジング付き)
w4me-station-base.jar / .jad
JSR-75クラスなしのビルド
両方のバリアントには同じ13個のカートリッジが含まれています。ベースビルドは、オプションのFileConnection APIを実装していないMIDP 2.0デバイスで動作します。
Installing on a phone
上記のテーブルから一致する.jad/.jarペアを1つダウンロードし、両方のファイルを同じディレクトリに保持してください。JSR-75 FileConnectionサポートを備えたデバイスにはフルビルドを使用してください。フルビルドが拒否された場合、またはデバイスにそのオプションAPIがない場合はベースビルドを使用してください。電話機から.jadを開くか、デバイスがJADインストールを受け付けない場合は、一致する.jarを直接転送して開いてください。インストールに関する詳細とトラブルシューティングはInstallationでカバーされています。
Controls
Input
Player 1
Player 2
Movement
Arrow or directional phone keys
E, S, D, F
Button 1
X, Fire, or 5
Tab
Button 2
Z or 0
Q
タッチスクリーンデバイスには、オンスクリーン方向パッドとアクションボタンが表示されます。画面が十分に大きい場合、コントロールは160x160フレームバッファの外側に配置されます。
サウンド設定は、カートリッジライブラリおよびゲーム内コマンドメニューから利用できます。これには、自動/互換オーディオモード、ハードグローバルサウンドオン/オフミュート、およびバックエンドがサポートしている場合のマスターボリュームが含まれます。確認された設定はMIDletの再起動後も保持されます。
Loading cartridges
ランチャーには、上記のリストにある13個のカートリッジがその順序で含まれています。追加の.wasmファイルは、HTTP(S)からインストールするか、file:// URLとして入力するか、サポートされているデバイスでJSR-75ブラウザを使用して選択できます。インストールされたカートリッジはRMSにコピーされ、元のファイルまたはネットワークソースなしで再起動できます。カートリッジはサードパーティの作品です。それらの作者、アップストリームソース、ハッシュ、およびライセンスはThird-party noticesにリストされています。
Verification
just test
just verify
just run
安定したコマンドはjust --listでリストされます。専門的なKEmulator、phoneME、およびプロファイリングコマンドについてはDevelopmentで説明されています。生成されたログ、スクリーンショット、およびベンチマークレシートはbuild/reports/の下に書き込まれます。
Documentation
Compatibility and limitations
Installing on a phone
1.0.0 release notes
Development and testing
Performance methodology
Release checklist
OpenSpec changes
License
W4ME StationソースコードはMITライセンスの下で利用可能です。バンドルされたカートリッジは独自のライセンスを保持しており、MITライセンスの対象ではありません。オプションのローカルphoneMEリグはGPL-2.0-onlyであり、プロジェクトに含まれていません。その変更された対応するソースはまだ公開されていないため、そのバイナリはローカルに保持され、無視されなければなりません。Performanceを参照してください。