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:

Post a Comment

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.