An App Store favorite of our readers who relish the retro is surely Manomio‘s Commodore 64 [link], the C64 emulation system / game store that does a great job of putting an expanding list of 8-bit classics right in our pockets. We first got wind of Manomio’s emulation effort in June of last year, when it was submitted to Apple and rejected, as it was determined to be in violation of the iPhone SDK agreement.
Then said Apple,
Thank you for submitting C64 1.0 to the App Store. We’ve reviewed C64 1.0 and determined that we cannot post this version of your iPhone application to the App Store because it violates the iPhone SDK Agreement; “3.3.2 An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise. No interpreted code may be downloaded and used in an Application except for code that is interpreted and run by Apple’s Published APIs and built-in interpreter(s)."
It was the system’s included BASIC interpreter that was the sticking point for Apple, it turned out. Manomio disabled (and then removed, as it was deemed necessary) the BASIC interpreter and the app finally found its place in the store, and in Apple’s good graces.
Last Thursday, Apple made significant changes to the iOS SDK agreement, relaxing restrictions on development tools used to create iOS applications. One of the areas of the SDK agreement affected was section 3.3.2, the specific part of the agreement that Apple determined Manomio had violated with the initial releases of C64. Upon hearing this news, Manomio CTO Stuart Carnie was quick to read over the new Apple document and found the following, updated section 3.3.2.
3.3.2 An Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded. The only exception to the foregoing is scripts and code downloaded and run by Apple’s built-in WebKit framework.
As can be seen in the new language, interpreted code is now acceptable under certain circumstances. In light of this fortunate turn of events, the developer has put together an updated version of C64 (v2.0) with BASIC enabled. Wanting Apple to be fully aware of his re-inclusion of the BASIC interpreter, Carnie extensively underscored his changes in the Reviewer Notes section of the submission form and additionally sent a courtesy e-mail to Apple on the issue. Since then, the developer and Apple have had further correspondence regarding the update and the response so far is positive. Apple will, understandably, spend additional time reviewing the application, but Carnie says he remains cautiously optimistic.
If Apple does end up rejecting the update, Manomio’s plans are to remove the BASIC interpreter, but leave in place the other enhancement that this update brings, Carnie tells us. Those other enhancements include:
- FIX – fix crash when attempting to use the “Download All" feature and many games are queue
- FIX – Add additional controls to Hunter’s Moon
- FIX – iPad landscape view is no longer partially off the screen
- NEW – Upgraded to OpenFeint 2.6.1 (includes time-scoped leader boards)
- NEW – iOS 4.1 tested
- NEW – New “Always use keyboard" option to access additional in-game features
Apple’s recent update to the SDK agreement gives developers of all manner of apps more flexibility, but is a particular boon to developers of retro system emulators and games. We’ve got our fingers crossed that C64 with BASIC enabled is given the nod by Apple and that other developers are inspired to bring others classic systems and games to our favorite mobile device family.