2012-01-01

ChromeのNative ClientにMAMEを移植

Case Study: Porting MAME to Native Client - Native Client — Google Developers

ChromeのNative Clientに、MAMEを移植した事例。MAMEというのは、複数のアーケード基盤のエミュレーターである。今はアーケードすら、中身は普通のPCだったりするが、昔のアーケードには、かなり数多くの特殊な基盤があった。MAMEは、有名な数多くのプラットフォームのエミュレーター集のフロントエンドとでもいうべきソフトウェアである。

MAMEをNative Clientに移植するには、結構な障害がある。なにしろ、Native Clientでは、セキュリティ上許可されていない操作が数多くある。たとえば、シグナルだとかディレクトリ操作はできないし、ファイルの入出力も、Chrome側で用意している特別なAPIを用いる必要がある。pthreadの高度な機能も使えない。手書きのアセンブリも問題だ。メモリの保護フラグの変更もご法度である。

MAMEの移植はだいぶ難しく、4日間かかったとのこと。

No comments: