Playing with ipodlinux, podfather and mikmodpodzilla

ipod linux's penguin

Yesterday I decided to have a look at ipodlinux; in fact I already had looked at it one year ago but it was so scary that I opted for waiting a bit more until they advanced it a bit.


podfather screenshot

The main thing I wanted to do with ipodlinux was to run podfather, but it has to be recompiled because the ipod mini has less resolution than the "big ones" (see the resolution chart) and the demo was compiled to use more pixels which are really available. Given that gasman had released the demo sources and they are available for anyone which wanted to join the porting madness, I only had to install ipodlinux and then find out an arm compiler for generating code for my little ipod. How optimistic I was...

So I got the Mac OS X installer and ran it. It scared me a bit when it shows the different steps and there are such things as "making a copy of the firmware", "replacing firmware", etc... I know that the ipod is programmable and updatable and that's how apple's updates work for adding new features but I couldn't help feeling this chilly sensation :-o In any case that part is absolutely needed, otherwise there's no way of allowing a different operating system to be loaded when booting the ipod.

Once it is installed successfully (and it did!), you can choose between ipodlinux or the normal interface by pressing rewind when the usual "loading apple" appears on the display. If you press rewind, the ipodlinux penguin with headphones will appear and after that you get a weird linux-style booting sequence: a series of rapidly scrolling text with cryptic appearance and unknown meaning.

So it was ok, my ipod was able to run ipodlinux, I wandered a bit around the new interface, testing the new available games (there's even a chess!), and then went for trying to run podfather. I followed the instructions, which basically consist in copying the podfather folder to the ipod root, and then edit the start script for forcing it to execute the demo instead of podzilla, which is the interface program which is ran by default. Another reboot and ... there was music but the screen appeared such as if it was a minimalanimal version of the demo, with random pixels everywhere, all kind of displaced because the display size problems I commented before.

Then I went for an arm compiler for os x powerpc. I found a suitable link to a binary on this page dedicated to install ipodlinux in ipod Nano's. After installing the arm compiler (it gets installed in /usr/local/arm-elf/ just in case you feel curious), I went to podfather's source folder from a terminal and wrote make IPOD=1. Surprisingly, given my previous disastrous experience compiling other people's sources, it compiled and I had a new podfather exe waiting to be copied to the ipod. But it didn't work either - it kept outputting pixels at random locations. Seems like it needs more work than simply changing the maximum framebuffer size as gasman suggested in pouet's comments:

You can *probably* get a working ipod mini build just by changing the two lines in podfather.h that it tells you to change. Unfortunately this screws up the SDL version of the framebuffer code (because it naughtily assumes that the horizontal resolution is a multiple of 4, I think) so without a real mini to test on, I can't say how crap (or not) it will look.
I did a make clean and changed the framebuffer horizontal size to be multiple of 4, just in case it could be the solution, and compiled again, rebooted, etc, but no luck :-(

So that's why the screenshots are from the mac port and not from a working ipod mini version. Although they would have looked quite crappy I suppose :D


After my main goal had failed, I tried to get a module player for the ipod before I felt too miserable and depressed :D. Rumour has that ipod mini can just play mods with 12 channels without getting a too crappy sound quality, but it could be fun anyway to have a module player here. There is supposedly a modified version of podzilla which included mikmod capabilities, called mikmodpodzilla, so I went for it too. But guess what? it didn't work :((

Remembering the already existing (and working) mikmod implementations on gp32, and envying gp32 owners who can play rohformat modules on their gp32, I even decided that I had to create a new module player for podzilla! Behold me! But then my euphoria left as soon as it came, and I thought that I would just leave ipodlinux here on my mini for the time being and will enjoy the new games and all of that until I get bored. And then... only then... maybe I'll consider again that Sole's modplayer for ipod, also known assmpi in command line flavours, to follow the general acronyms style ;-)

In any case, it was quite interesting to see how it works anyway. We should keep an eye on the project as it can surprise us in the future, and because it's always good to know what can you do with your hardware devices even if it's outside the mainstream way :-)