Well here's another fine mess I've gotten myself into:
Tong can now be played on
Wii!
It's fitting. Back in ... 1997? Some friends and I came up with the idea, and imagined it as a multiplayer game on Nintendo64, the party machine of choice at the time. That didn't happen, of course, but years later I did finish a single-player PC version. Years after that, I ported it to the
GP2X/Wiz handhelds. Now, it's come all the way to a home console, and a Nintendo one at that.
...Plus, the line-breaking sound effect is me saying "Wheeee!"
Now before you go off to the Wii Shop Channel looking for Tong, let me save you some time. Nintendo doesn't endorse this kind of open/free homebrew, but unlike
some manufacturers, they don't fight it either. Read up on the
Homebrew Channel, then visit
this site and use its handy packager to get homebrew running on your Wii (they've made it very easy, you won't break anything!) Once you have the Homebrew Channel, you can grab Tong for Wii
here; just unzip it to your SD card.
My favorite bit of feedback about Tong has always been that it's a "bad idea well implemented". Nowhere is that clearer than on Wii, with tilt-controlled paddles. I've gotten pretty good at it, but it's probably the hardest and most insane version yet. Why I would be happy about that is a bit of a mystery.
For anyone interested in the technical details, "devkitPro" and "devkitPPC" are what you're after. Cross-compiling to Wii is mostly painless, and I only ran into a few snags. First, libfat needs to be initialized before doing any file access. That isn't the first thing that occurs to those of us who normally build stuff for OSes instead of raw hardware. Second, the guys who ported SDL to Wii did a pretty good job, but when it came to SDL_mixer, I think they got it working for their own stuff and then moved on. The easiest workaround is to resample your sound data to 32000Hz, which struck me as very odd considering how common 41000 and 20500 are. Also, simultaneously playing a Mix_Music and a Mix_Chunk causes some fascinating interference if they're both using tremor (ogg vorbis decoder). In my case that meant saving the short Mix_Chunk sound effects as raw .wav data instead. Finally, as much as I love to use my own simple-as-possible Makefiles, I had a much easier time working from devkitPro's examples. They're very flexible and general-purpose, I'll give 'em that. Everything's checked in; have at the
CVS repository if you're curious.
To non-geeks who waded through all that, I should reward you with something clever and witty. ...Too bad. Play Tong for a few minutes; your brain will forget all about such small-scale confusion. :^)