Tag Archives: iPhone

MotionX Poker: Fun with great touches

Heading to dinner tonight with Torrey, he mentioned how much he’s been enjoying the MotionX Poker (dice) game for his iPhone. It was also getting favorable reviews on the App Store (4 1/2 stars) so when I got home I went online and bought a copy.

Go buy this game!

I found myself saying “just one more roll!” more times than I’d like to count. The animation is fantastic, with dice bouncing around the table and colliding with each other; the sound of the dice hitting the table and the sound track are cool; shaking the iPhone to roll the dice is fun; and the overall game play and style is just darn neat. 

What really got me though were the little flourishes the developer added. Sometimes the dice come to rest sort of on their edges against each other. If you shake gently or violently, the dice get thrown the same way, and if you shake and keep shaking, the dice keep bouncing around until you stop.

But my favorite touch is the shadows beneath the dice: they shift as you move your iPhone, as if lit from an actual light source. This was so cool that at first I thought I was imagining it, but no, here are screenshots proving it (the first one is straight up vertical; the second rotated 90º counter-clockwise; the third is upside down; click on each to see it full-sized):

With 39 dice designs, 14 collectable gems, and five table designs, all of which require you to achieve certain goals and milestones to unlock, I don’t see this game getting dull anytime soon. And at just $5, it’s priced right.

Now if you’ll excuse me, I think I’ll just give it one more roll….

Getting ringtones on your iPhone for free

Update: Now that Apple’s updated GarageBand, you can make your own iPhone ringtones without any of the hackery below! Don’t have GarageBand? It’s part of iLife ’08. It also comes for free with any new Mac, like the all-in-one 20″ iMac.


First of all, I didn’t figure this out. I’m simply putting a few pieces together from other people. That said, here’s how I was able to get ringtones on my iPhone from my MacBook, completely free.

Clue Number 1: You can mount your iPhone as a hard drive. I don’t remember where I first learned about this, but MacFuse and iPhoneDisk makes this trivial. This allowed me to mount my iPhone and copy files directly to it.

Clue Number 2: Ringtones are stored in a user-accessible location. One place I learned about this is Erica Sadun’s article on the O’Reilly Network. Erica’s article says to put the music files in /var/root/Library/Ringtones (which, when you mount your iPhone via iPhoneDisk translates to /Volumes/Library/Ringtones); this location didn’t work for me, though.

Clue Number 3: Ringtones need a special file to point to them. I got this from a post on pastebin.com, where the author Keldegar points out that you need a specially-formatted file called a “plist” (short for “property list”, which store preferences and so on). The author also pointed to a different location from what Erica at O’Reilly pointed to; this new location (/Volumes/Media/iTunes_Control/Ringtones) worked for me.

Putting these three clues together, I’m now able to use any audio files iPhone can play as a ringtone! Here’s the step-by-step; it’s more complicated to write it out than to actually do it.

1. Download and install MacFuse. You need at least MacFuse Core 0.4.0.

2. Download and install iPhoneDisk. The latest version as of this writing is iPhoneDisk-20070826.

3. Double-click iPhoneDisk; it shows an icon iPhoneDisk menu item icon in the menubar to show it’s running.

4. Connect your iPhone. A hard-drive icon named “Media” iPhone Media hard drive icon should show up in Finder. iTunes will launch and sync if it’s set to automatically do that.

5. In Finder, open the Media drive and then the iTunes_Control folder.

7. Create a new folder inside iTunes_Control named Ringtones.

8. Copy the music you want to use as a ringtone into the Ringtones folder.

Now comes the slightly tricky part. You’ll need a text editor (not a word processor!). I’ll assume you’ll use TextEdit, but you can use BBEdit/TextWranger, TextMate, Coda, etc.

9. In TextEdit, make a new file (File > New) and convert it to plain text (Format > Make Plain Text).

10. Copy and paste the following code. You will need to change it in a couple of places to match your songs (see the next step).

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Ringtones</key>
    <dict>
       <key>SongFileName.mp3</key>
        <dict>
            <key>GUID</key>
            <string>1</string>
            <key>Name</key>
            <string>A Song Name</string>
        </dict>
   </dict>
</dict>
</plist>

11. You want to change the following sections to match your songs:

  • SongFileName.mp3 is the filename of the song (as saved in Finder).
  • A Song Name is the name you want iPhone to display.
  • The number 1 can be any number, as long as it’s unique in this file (that is, if you add a second song, that song gets 2, a third song gets 3, etc.)

This file, as is, will give you one song. Here’s an example of a file with two songs:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Ringtones</key>
    <dict>
       <key>SongFileName.mp3></key>
        <dict>
            <key>GUID</key>
            <string>1</string>
            <key>Name</key>
            <string>A Song Name</string>
        </dict>

        <key>AnotherSongFileName.mp3</key>
        <dict>
            <key>GUID</key>
            <string>2</string>
            <key>Name</key>
            <string>Another Song Name</string>
        </dict>

    </dict>
</dict>
</plist>

Hopefully it’s clear what to copy and where to paste it. Download this Ringtones.plist file as a starting point. (As an aside, if you’re a Mac developer with the Xcode tools installed, you can use /Developer/Applications/Utilties/Property List Editor to make short work of editing this file.)

12. Save this file as Ringtones.plist to /Volumes/Media/iTunes_Control/iTunes/Ringtones.plist.

Now navigate on your iPhone to Home > Settings > Sounds > Ringtones and you should see your list of ringtones!

Troubleshooting

Things don’t always go perfectly. Here are a few items that might cause some issues (usually your songs don’t show up in the Ringtones list).

The plist file is misnamed, malformed, or not in the right location.

The file is /Volumes/Media/iTunes_Control/iTunes/Ringtones.plist.

Try creating the Ringtones.plist file with only a single song to be sure that works before adding additional songs.

The Ringtones folder is in the wrong location.

I got this working by putting the Ringtones folder inside /Volumes/Media/iTunes_Control; this puts it at the same level as the Artwork, iTunes and Music folders.