Doom + iControlPad?

I've been looking into the iControlPad for quite a while, and I'm really hoping to get a developer kit so I can start adding control pad support to Doom and other projects. If you haven't seen this yet - they're working on a frame that you set your iPhone/iPod into and it provides the standard gaming controls: a D Pad, shoulder buttons, start/select, and A, B, X, Y buttons. For serious gaming on the iPhone such controls are going to be truly awesome as we go forward, and I encourage everyone to support the iControlPad effort. The prototypes are coming along very nicely, and the renderings show a quality product. I honestly can't wait to get my coding on!


I'm unpredictable when I'm bored. Last night I spent diving around the depths of a jailbroken iPod and getting the iPod's hardware crypto engine to spit me out decrypt keys so I could investigate the iPhone OS 2.x RAM disks and firmware. Bold, perhaps. But useful as a developer as you can see exactly where everything is in the system and what it can do or not, and class-dump is a useful ally if you're making yourself some internal applications that don't adhere to the SDK license. So don't kill me for being curious =) That led me to this simple little project : It does nothing except decrypt a given encrypted img3 file with an IV and a Key you pass into it. You have to know the IV and Key for each img3 file, which is something I can't help you with. I did also create a version of the tool that works against unencrypted img3 files (i.e. the 2.0 betas), but there's no need for me to release it. Was just a one line change in the source. img3decrypt is based upon 'imagetool.c' in the xpwn source code, and is literally a drop-in replacement (it won't compile by itself, you need the xpwn source). Today I took the time to investigate the MobileTerminal source code, and with some clevery hackery I managed to port it to the iPhone SDK / Simulator, as seen below. Not very useful, I admit. But it's still sweet to see running =)

All In A Day's Work

Today I worked pretty hard on getting Stack running as it should, and I'm pretty happy with the results. You can drag icons from SpringBoard onto the Stack, you can launch applications from Stack, and you can drag items out of Stack to remove them from it, complete with the 'poof' animation familiar to Mac users. Stack also supports WinterBoard theming, so it will pick up your current theme's icons with no extra hassle. The rest of my day was spent poking around other iPhone projects. I managed to get Zodttd's iPhoneSNES emulator up and running through the SDK, before I found out that it has no input support yet, so all I can do is watch the intro movie of Final Fantasy 6 (that's III for you American folks). A quick bitching session at Jonathan Zdziarski (NerveGas) in IRC about the blurriness of graphics in his NES emulator sent me into code fixing mode - luckily the first and single line I added: A - removed the interpolation (blurriness), and B - massively sped up the emulation! (For those of you wondering, it was a simple [CALayer setMagnificationFilter:0] call I added, after [rightly] assuming it sounded like it would work) The updated version is available now from Cydia from what I can tell. For now, boredom sets in…

Stack for 2.0

Looks like Stack will be coming to 2.0 [jailbroken] after all =) Consider this a teaser…

Android Nuker

With the release of the new Android SDK I decided to test it out, and port my Nuker application to it just to see if I could manage it. Developer wise, the SDK has a long way to go before it's anywhere near as graceful as the iPhone SDK, and of course you can't reuse any C code you might have in your other projects, only Java. That makes things awkward, but not insurmountable. So after a brief session in IRC this is what I came up with: When you compare to the iPhone version, the major difference is the lack of on-screen keyboard in Android; a hardware keyboard seems to be required.

"An interview with the creators of of Doom for iPhone"

Back in May I was approached by Jonny Evans, a reporter for Cnet, who was interested in questioning us on our port of Doom to the original jailbroken iPhones. Stephen White (of iPhoneNES fame, among other things) and I were maintaining the open-source project on Googlecode, with SW being the original porter of Doom, back when there was no control system implemented and it was only a proof of concept. He did the meat of the 'porting', whereas I took over when he got bored. Of course, nearly all of SW's work needed to be rewritten and redesigned for 2.0, and I moved to the latest iDoom code (1.3 as of this writing) which has given our Doom port a solid foundation for the future. The following were our responses to Jonny's questions:
Q: How has the iPhone inspired developers? ST-S: The iPhone runs OS X. It's a full UNIX system in your pocket, with brilliant Objective-C frameworks that make coding beautiful AND powerful applications a dawdle. It takes a lot of the same APIs that developers know and love on Mac OS X and allows them to build applications for a mobile device with minimal re-learning. Not only that but it has the multi-touch technology only a year ago we were watching "futuristic" YouTube videos about (e.g. Jeff Han's demos). A lot of Windows developers I've talked to have either learnt Objective-C and Cocoa Touch, or expressed an interest in doing so, just to see what they can do on iPhone, which also means that those same people are now able to program for Mac OS X without too much effort. SW: It's interesting to me for a couple of reasons. The first is I am forced to throw out a lot of what I already know as it's not applicable on the platform. Where I might've used a menu before, I can't. Where I might've made a window that necessitated a 30" LCD to display everything, I can't. In a lot of respects, it's going back to square one in thinking of how I would design an application -- and that is a nice mental challenge that I appreciate. However despite having to throw out a lot of my knowledge, the iPhone provides so much ease for the developers in terms of it's APIs it's a pleasure to work with. And then there is the input methods. Thinking of how multi touch can be best used, or a way to utilize the accelerometers... It provides great challenges, and great rewards. Q: Tell us about the port - why did you decide to do it? ST-S: Looking at the hardware specs, I knew iPhone would be able to play a simple game like Doom no problem as it was open-source and already ran on the click-wheel iPod running Linux. I knew a very talented developer called SWhite with whom I work on Mac projects, and as he'd just bought himself an iPhone and was working with the unofficial tool-chain I jokingly told him he had one week to port Doom to iPhone, and all it had to do was run; he didn't have to implement controls. One week later, he proudly linked me to his Doom port home page - It remained difficult to work upon due to problems with the unofficial compiler toolchain I had set up (causing non-working versions of the game) but with the release of Apple's SDK it was trivial to get Doom running on iPhone 2.0. Q: How many people have downloaded the port so far? ST-S: The first build of Doom hit near 15,000 downloads on the project site alone, even without a way to control the game. Once controller input had been included (thanks to a contributer on the project wiki) that version received  over 25,000 downloads. For a project so unfinished and barely playable, that's an awful lot of people testing it out. It's quite possible that there are many more downloads than reported, but for now we only concentrate on Google's project stats. Q: What do you see as the future for iPhone development? ST-S: I hope to see Apple opening their SDK a little more than it is currently, allowing a little more access to parts of the system necessary to create specialized applications for enterprises and such. Our current port of Doom would currently be rejected by Apple if we were to submit it to the iTunes App Store because we use certain APIs for accelerated drawing that are marked as "private". Before submission, we will have to rewrite portions of it to only use documented APIs; most probably moving to OpenGL/ES for the video output. SW: I'd imagine a number of people will transition over to the SDK, either to make it easier to reach the masses, or to try and cash in (so to speak, don't mean that in a "you sold out" manner, but just the ability to easily collect money). Q: With the iPhone SDK, can you foresee Jailbroken phones and apps losing importance? ST-S: Yes, certainly, but it will take some time, as Apple only allow access to a handful of the APIs on the iPhone to an official developer through the SDK. Some applications need more direct access to the underlying iPhone OS, for example command-line access to the system (always useful to those who know a UNIX shell), or AppleShare/Samba servers for copying files to/from iPhone over the network from PC or Mac. Until iPhone ships unlocked there will still be people needing to Jailbreak the phone to save themselves from some of the miserable tariffs offered by the official operators. SW: I'd still see jailbroken phones being around, obviously... people are going to want to sim unlock, or run apps that Apple won't distribute through the app store, etc. Q: How popular do you think iPhone will become? ST-S: iPhone marries Apple's popular image and brand excellence with the most powerful and fun to use operating system on mobile devices. The possibility of having Apple's latest iPod also do all your phone and internet in one place is going to be very attractive. Everyone who plays with one wants one, and that alone puts it far ahead of any of the Windows Mobile devices or Nokia smartphones on the market. Here in Ireland, official sales have been slow, merely because anyone who wanted an iPhone had already procured one from the U.S. before the Irish launch. I'm afraid Apple might only see the numbers and assume that the Irish aren't interested - however that is far from the case. The only problem thus far are the tariffs, once we have a fully unlocked iPhone available sales will skyrocket. SW: It's hard for me to say. I live minutes from Apple, I see iPhones all the time =)

My Favourite iPhone Icons

I took a few mins to snap up a list of the only icons on the App Store that I like. Note that for most of these they're getting very high ratings as well, so it stands to reason that a good icon implies you have a good and thoughtful app design which will endear users to your app.

Speed in Six Days

Just a quick update, total downloads are ~36,000. It's going good! And there's yet another update just waiting for Apple to post it =)

Lights Off 2.0 UI Preview

Well, gotta counteract all the buzz from Speed by showcasing what's coming next, so here's a quick snapshot of Lights Off and what to expect. We're keeping the finer points close to our chests, but I hope you like it so far. =) -S

Speed - Day 2: Stats

Starting to lose count… =)

Speed - Day 1: Stats

Just checked the stats for the first day of availability for Speed, huge amount of downloads from the US even though I didn't have MPH support (1.0.1 does, btw). And just for anyone who's interested, I left out MPH in the initial build because I wasn't sure how Apple would receive the application and was just testing the waters =) I have both MPH and rotation in 1.0.1 which I uploaded to the store earlier today.

Speed 1.0 has hit!

Make sure to grab it now while it's free to ensure free upgrades for the rest of eternity! Can't always guarantee it will remain a simple free app =) iTunes Link