Last modified 3 years ago Last modified on 2015/07/26 10:18:35

Trunk/hsp3dish/emscriptenディレクトリ

HSP3DishのEmscripten版ランタイム(実行部分)ソースが格納されています。(リポジトリを参照)

HSP3Dishの中間コードを実行するJavaScriptを作成することができきます。

動作環境

WebGL対応のブラウザが必要です

以下の環境での動作を確認しています。

  • Chrome
  • Firefox
  • Internet Explorer 11
  • Firefox モバイルブラウザ(Android)

hsp3dish.htmlの使い方

(例) block3.axファイルを実行する

右下の点線の領域にblock3.axをドラッグアンドドロップする。

カスタム実行

サーバー上のaxファイルや画像ファイルなどをダウンロードして実行することも可能です。

Module.noInitialRun=true;に設定し、自動起動をやめます。

var Module = {
~~
	noInitialRun: true
};

必要なファイルをXHRやデータURIスキームなどで取得しEmscriptenのFileSystem APIで仮想ファイルとして保存します。

var data = new Uint8Array(xhr.response);
var stream = FS.open("test.ax", 'w');
FS.write(stream, data, 0, data.length, 0);
FS.close(stream);

その後、Module.callMainを起動パラメーターを引数に呼び出します。

Module.callMain(["test.ax"]);

パラメーター

  • Module.TOTAL_MEMORY : number
    • 最大メモリ
  • Module.print : string => void
    • コンソール出力の指定

ソースのビルド方法

Emscripten SDKが必要です。 Emscripten-SDK

    cd hsp3dish
    emmake make -f makefile.emscripten

現在確認しているSDKのバージョンは、以下の通りです。

  • sdk-1.22.0-64bit

sdk-1.21.0ではthrowされたHSPERRORがtry-catchで扱えず例外発生時にエラー処理が出来ません。

制限事項

HSP3Dish Emscripten版は以下の部分が未実装です。

  • ASCII範囲外の文字列処理
    • hspcmpのUTF-8出力で対応
  • OBAQのサポート
  • gameplayのサポート
  • マルチタッチ
  • 暗号化されたDPMファイルからの読み込み

これ以外の機能は、基本的にHSP3Dishと同等の動作となります。

既知の問題点

  • IE11でcircle命令が動作しない
    • 11.0.9600で修正
  • マルチメディア命令はブラウザの実装状況に依存します
    • IE11で動作しない

Attachments

more
Tools