em-dosbox
10/18 (水)
emscripten & WebAssembly night !! #5
自己紹介
• HN: さい
• Twitter: @sairoutine
• Web のフロント/サーバーサイド
• FaithJS っていうブラウザ向けファミコンエミュレータ作っ
てました
• 現在は Emscripten で PC-98 向けゲームのブラウザ移
植やってますが、うまくいってません。誰か助けて...
DOSBox
DOSBox
• https://www.dosbox.com/
• MS-DOSのエミュレータ
• CPUのエミュレートからやってくれる
• DOS向けの古いゲームを動かせる
• Win3.1 などのソフトも動かせる
em-dosbox
• https://github.com/dreamlayers/em-dosbox
• DOSBox をブラウザに移植したもの
• Emscripten を使って、DOSBox のコードを
JavaScript (asm.js) に変換
• 任意のDOS向けソフトをブラウザで動かせる
• WebAssembly 形式でも出力可
http://jp.techcrunch.com/2015/01/10/20150109internet-archive-brings-oregon-trail-
prince-of-persia-lemmings-and-2200-other-ms-dos-games-to-your-browser/
⇛ em-dosbox を利用して Web 移植してる
em-dosbox を使って
実際にブラウザで動かしてみる
emsdk のセットアップ
git clone git@github.com:juj/emsdk.git
cd emsdk-portable
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh
em-dosbox の コンパイル
# em-dosbox のダウンロード
cd ../
git clone git@github.com:dreamlayers/em-dosbox.git
cd em-dosbox
# configure ファイルの生成
./autogen.sh
# emscripten 用 Makefile の生成
emconfigure ./configure --without-sdl2
# コンパイル
make
DOS向けアプリをパッケージング
# DOS 用実行ファイルを emscripten 向けにパッ
ケージング
./packager.py DataName AppDir BOOT_APP.EXE
# http-server を起動
python -m SimpleHTTPServer 8000
# ブラウザでアクセス
open http://localhost:8000/badapple.html
DEMO
まとめ
• Emscripten を使うと、既存のC/C++ アプリケー
ションをブラウザに移植できる
• エミュレータをブラウザに移植すると、古いOS
/CPUアーキテクチャ向けのアプリケーション
もブラウザに移植できる
• ブラウザで出来ることを増やせる Emscripten
は偉大
技術同人誌出します
・タイトル
Emscriptoon
・説明
Emscripten を浅く広く扱った本
・お値段
1冊 500円
・頒布
10/22 (日) アキバ・スクエアで
開催される技術書典 3 「い08」
にて頒布予定

em-dosbox