MilkyTrackerをNaCLに移植してみた(まだ途中)

October 17th, 2011

週末にNaClを遂に触ってみた。三年前に論文が出たときからコードは読んでいたんだけど、ハマりどころが多そうで実際にNaCl上で動くコードを書く気にはなかなかなれなかった。今ではChromeに標準搭載されていたりと、大分落ち着いてきたっぽいので手遅れにならないうちにと思ってやってみた。

やるからにはビジュアル的にいけてて音も出る派手な奴がいいと思ったけど、QuakeDosboxという先行者たちがいたのでゲームはやめてMilkyTrackerにした。DemoScene好きなら誰もが知っているModトラッカーFastTrackerのクローンだ。MilkyTrackerはマルチプラットフォーム対応のオープンソースなので移植しやすいように綺麗にコードも整理されている。

やってみたのがこれ → SaltyTracker

ファイル回りは当然そのままでは動かないのでオンメモリの簡単なファイルシステムをやっつけで実装して、[Load]ボタンを押したら決め打ちでデモの曲が読み込まれるようになっている。Enterキーで再生が始まる。

Linuxで開発したが、この件でLinux版のChromeはNaClが標準で無効になっている。ここの手順で有効にしないといけない。UbuntuとChromeOSとMacOSXでは動いた。動かせなかった人のために一応スクリーンキャストも。

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player

コードを綺麗にしたら作者にパッチを送る予定。( patch will be released as soon as it’s polished )

NaClはあらゆる面で素晴らしい。以前は仕事でよくActiveXのオブジェクトを作ったりもしたけど、同じブラウザ上で動くプログラムといってもこれは全く別物だわ。あえて言うと既存のアプリを移植するという観点ではネットワーク回りが無いのが厳しいかな。パケットをカプセル化してWebSocket経由でプロキシさせるsocketレイヤでも書いたらみんな使ってくれるだろうか。サーバーを立てないといけないのとセキュリティが課題だな。

Leave a Reply

*