The CPU isn’t emulated on Playbook (though it is on Windows). It works very similarly to how WINE works to run Windows applications on Linux. The app binary is mapped into memory and imports are resolved to point to my own implementation of the various APIs needed.
With iOS already using some open APIs, there were some similarities in the operating systems that made this easier as well:
iOS actually uses a few open APIs already, which Playbook supports just as well (GL ES, and OpenAL). The bulk of the work has been in implementing all of the objective C classes that are required.
The ARM code of the applications run as-is – the armv6/v7 support on PB/iDevices are pretty much identical, and the code is designed to run in USR mode. No SWIs, GPIO accesses or any of that kind of shenanigans.
Of course it still was not an easy task though, taking a few hours to accomplish. Not all apps can be run either; specifically those that require UIWebView and CoreData, which are unable to be properly implemented at the moment. Below is another video of iOS Sketchbook Mobile running on the RIM tablet.
What do you think? Do you own a PlayBook and are now going to run iOS apps on it? Does this make you want to consider a PlayBook? Let us know in the comments.