Case Study: Porting MAME to Native Client
by Robert Muth
This article describes our experience porting Multiple Arcade Machine Emulator (MAME), an emulator for a large number of classic arcade games, to Native Client. We discuss a number of topics in detail, such as our overall porting strategy, how we dealt with newlib incompatibilities, and how we handled binaries that are built and run as part of the build process. We do not discuss topics such as how to load resources in Native Client or how to port SDL games to Native Client (the articles listed in the Links section cover those topics). Our port is based on MAME version 0.143 (zip file).
Note: This document describes how we ported MAME using tools on the Linux platform. The resulting code runs in the Google Chrome browser on all currently supported Native Client platforms (Windows, Mac, and Linux).