Review of Zelda: Phantom Hourglass

Christmas is over. Everything’s back to business. I know I said that this month would be Nintendo DS homebrew month, but with family and friends and all the holiday jazz going on, yeah…that’s not really going to happen. As gung ho as I want to be about DS homebrew, I didn’t spend the money and time to come back east to sit in front of my computer to code. I’ve been spending quality time with the folks — this is the first time in a year and a half where the entire family has been back together again. We’ve watched movies together and caught up on each other’s lives. I had a lot of good homecooked meals including some succulent duck, ox-tail soup, and steaks.

And in-between those moment with my family, I’ve also been spending time playing Legend of Zelda: Phantom Hourglass.

Hourglass is an excellent game. I enjoy everything about it and it’s my favorite game since Link to the Past — mainly because I missed the N64 generation of Zeldas and never got into the yiffie-brownish-bloom known as Twilight Princess. I played Windwaker and enjoyed it, but being all 3D made it a pain in the ass to move around and do things with some amount of fluidity. I like my top down Zelda and that’s what Hourglass gave me with all of the advantages of the DS implemented for good measure. The slideshow cutscene at the beginning outlining the Windwaker story is cute and funny. The stylus controls are superb — I caught on to them quickly and it makes doing everything in Zelda that much more fun and fluid. You point to have Link move where you want him. You click on enemies to fight them. You can even roll — though it’s a bit more difficult because of the touch screen, but I never found it totally useful — unless you enjoy ramming every tree in the game world to see what surprise it hides. But…Want to throw your boomerang? Draw a path for it to travel on. No, it’s not terribly realistic to have your boomerang do figure-eights or fly in an obscenely long twisting and turning curvy path, but it’s damn fun. The map annotating feature was awesome. I’ve wanted RPGs to have some kind of map notation system for a long time and with the stylus controls on the DS it makes that whole thing a snap. Some people complained about going through the Temple of the Ocean King over and over. Yes, when you go through the temple you have to actually go down the temple level by level trying to act stealthy. You can’t kill most of the enemies on any of the levels. Oh and there’s a time limit (the phantom hourglass). Does that sound extremely annoying?

Not if you took notes on your map. I hate shit like backtreading through levels or repeating the same shit over and over again — hence why I dislike most japanese RPGs and the grind-a-thons we call MMOs. The temple wasn’t terrible and I actually enjoyed going through it again and again and didn’t have an issue with it getting boring or repetitive — and once you get beyond six levels you get a warp to the midway point in the temple. I used the note taking ability to guide me back through all the solutions to the puzzles and annotate anything new I came across. So every time I ventured into the bowels of the temple it was like the end of Indiana Jones and the Last Crusade — I followed the cryptic shorthand scribbles I left on each level map and it guided me to the solution. Fun, I daresay, and I like that this is a feature that isn’t forced upon you in the game — that is the game doesn’t judge you on how you do your note taking. It reminds you a great deal too through the NPC dialogue, but otherwise you’re left to decide how you will use the maps.

The multiplayer is a fun little diversion too. You play as Link or a set of Phantoms (they’re huge knights, or think of genome soldiers from Metal Gear Solid). As Link you try and get “force gems” ( i.e. triangle things that come in small, medium, and large and have increasing point values based on their size) and return them to your base and when you do, you get points. As the Phantoms the player uses the stylus to draw the path in which the knight should go. It becomes a small real-time strategy game where you try and corner Link and slice and dice him. Link can enter safe zones placed throughout the level to hide from the Phantoms. It’s a very fun, little strategic game. You can play with friends via the friend code system or just play anyone worldwide, which is what I usually opt to do. I particularly enjoyed griefing players. See, after they get points by collecting force gems, you can, when it’s your turn, go and steal those points. Being the jerk that I am, I liked to rob them blind and then chuck the force gems all over the place. Not only do they lose all their points but it’s a bitch for them to safely get gems since they’re scattered everywhere.

Oh, one issue about multiplayer that I wish Nintendo would address. Sometimes players find themselves on the losing end of a battle and suddenly the game gets slow and lo-and-behold your opponent has opted to leave the game. They don’t get penalized for that. So a message to all you quitters — and I don’t care if you’re 8 or 80 — you’re a quitting douchebag. Since there’s no way to call out the r-tards that play this game, I changed my user name from “albino” to “uraquittr.” I thought that was more appropriate without getting profane. I suppose this means that no one wil play with me anymore, since as soon as they see that name, they just quit, like the quiting douches they are.

Phantom Hourglass

albinoonkasumi Phantom Hourglass zelda phantom hourglass ds

I made it back east. I swear to god, United Airlines’ planes are falling apart on the runway. Everytime I fly with them their planes are always requiring extra maintenance. One day one of those planes will fall apart in the sky and I don’t want to be riding that, not unlike Albino riding Kasumi like a horse. Sorry ladies, but I don’t own that fine statue of Kasumi bent over fixing her stockings with her ginormous rack billowing in the breeze, that belongs to my brother. I do own the big headed rabbit riding her like a horse and he’ll tell you one thing and only one thing: “never bend over around an Albino! High five!”

I picked up Zelda: Phantom Hourglass on my way back. I was stuck in O’Hare for a couple of hours. Thanks to United’s delayed flight out of SFO I missed my flight out of Chicago by mere minutes. My consolation prize was to go on a pirate-y adventure with Link (who I named Albino) and his pirate chums. So far Zelda’s not a bad game. The ability to annotate maps is the next best thing in RPGs since Aeris getting stuffed through the back with a 10 foot long sword. Just like never bending over in the presence of an Albino you apparently don’t just randomly get on your knees and start praying either. Let that be a lesson learned.

I actually do like using the stylus for all of the controls. It’s easy to pick up and it keeps the action where it’s supposed to be: all over the screen. I have to admit though that I end up covering parts of the screen with my big ass hand as I play, but I can get over that. The ability to tap on monsters to attack them or to draw a circle to do a spin attack works really well since you’re already on the screen moving Link (Albino) about. I hear there are some repetitive and annoying parts, which makes me wonder if I’ll continue to enjoy the game, but I’ll find out as I get to them. The game puts all of the DS’s features to nice use. You can use the microphone to blow out candles, or start up windmills, or even call out to someone in one instant — which I didn’t because I would have looked like a big(ger) idiot at the airport for yelling at my DS, but thankfully it’s not really about yelling as much as it is about blowing into the microphone really hard until the event trigger is activated. The 3D is rich and beautiful for a portable game. Sure it’s not a PSP game, but damn it looks nice on the DS. It’s amazing what you can do with the DS hardware. From my homebrew studies I know the DS can support toon shading, fog, and up to 2048 triangles on screen at once, and they’re put to really good use here. You can annotate just about every map — your sea charts, town maps, and dungeon maps. One aspect of the map I enjoy are the geometric line-intersection puzzles that have you physically marking locations on the map and then extrapolating lines to find a hidden treasure. I haven’t done that in a game and it’s a neat little not-coded-within-the-game feature that is a side effect of drawing freely on the map.

So you want to make DS software…

homebrew style. How cool is DS homebrew?

girlonds So you want to make DS software... visual studio setup instructions homebrew ds

It’s this cool!!! I drew that using a DS homebrew program called Colors. I didn’t think a DS had pressure sensitivity, but the homebrew proves me wrong. It’s time to start bringing my DS with me to drawing meats so I can at least claim that I’m drawing…on my DS!

My friend Ricko is helping me get setup and I figured I’d throw the instructions up on my blarg, mainly for my benefit, but for yours too! Here they are…

How to install devkitpro:

1. Go to Devkitpro.org and download the latest version of the software (download link is on the left hand column), devkitProUpdater-1.4.4.exe is the one I got from the site

2. Follow the instructions in the installer. It will download a bunch of stuff to your machine and then extract and install them. Don’t really need devkitPPC or devkitPSP (unless doing NGC or PSP homebrew). Don’t really need Programmer’s Notebook either (IDE)

3. Let the installer download and install everything, and then you’re done with this part of the process

Visual Studio .NET 2003 Setup

I use Visual Studio .NET 2003 at home. If you don’t…well…have fun. icon smile So you want to make DS software... visual studio setup instructions homebrew ds

1. Open up a new solution, make a new project, and create a new “Makefile Project”

2. Name it something like “MyFirstDSProj” or whatever…

3. Before you leave this dialog, go to “Location” and browse to your c:/devkitpro folder, make a new folder so you can store all of your individual DS projects in there — not necessary to do this, but recommended to keep all your homebrewin’ in the same place. NOTE: Do not put any spaces in this new directory you’re making or you’ll run into build time issues later on.

4. Click okay and go to the next dialog apart of the wizard setup. Go to application settings. Set up your settings like this:

Build CommandLine: make -r 2>&1 | sed -e ‘s/(.[a-zA-Z]+):([0-9]+):/1(2):/’

Output: DSTest.nds (NOTE: it’s not EXE, NDS is the executable extension)

Clean Commands: make clean

Rebuild command line: make -r 2>&1 | sed -e ‘s/(.[a-zA-Z]+):([0-9]+):/1(2):/’

-r is a redirect from make

“2>&1″ Unix thing to redirect something to stdout.

“| sed -e” – takes stdout and pipes it to stderr. -e is for expression.

What this all does is takes the output from gcc and puts it into stderr and passes it to Visual Studio so you can see your errors and be able to click on them and view the errors along with your code.

That’s a make command with a regular expression.

5. Finish up with the application wizard and you will get into the empty project solution.

6. Now you want to set up your debugger to output to a DS emulator. I’m using one called desmume-0.7.2. There’s a link to it below. IN VS 2003 goto Projects->Properties. For “Configuration Properties” goto “Debugging.” Under the Action subsection goto “Command” and redirect the ($TargetPath) to the desmume executable. I’ve put the Desmume emulator in my c:/devkitpro/emulator path (I made the emulator folder) and linked to it from there.

Change Command Arguments to “$(TargetPath)” (without the commas).

7. Close that dialog and goto Tools->Options. Under the Projects sub menu goto “VC++ Directories,” make sure “Show Directories for” drop down is set to “Executable files” and add this directory: C:\devkitPro\msys\bin. Just go and browse to that directory. This allows you to build from within Visual Studio. Why? The DS homebrew uses a unix shell to build your code and this line gives it access.

Change “Show Directories for” to “Include files” and add this line: C:\devkitPro\libnds\include

Change “Show Directories for” to “Source files” and add this line: C:\devkitPro\libnds\include

Change “Show Directories for” to “Library files” and add this line: C:\devkitPro\libnds\include

Press OK and you’re done with that setup. You should be able to build an NDS project.

Setup a DS Build

If you want to just get up and running goto your c:/devkitPro/examples/nds and you’ll find all the examples you can compile and run. The one I ran is in ../Graphics/3D/nehe/Lesson10/.

Here’s how you run it:

1. Go to the project directory where you created your Visual Studio 2003 work folder (c:/devkitpro/DSProjects for example). and copy and paste the contents of ../Graphics/3D/nehe/Lesson10/ in there.

2. Back in your VS 2003 workspace build the solution. If everything worked out right you’ll get two folders in your DSProject folder called arm7 and arm9, and you’ll have a ton more files in there. The one you want is called an .nds file. This is the executable that you will run in the emulator software or on the R4. Copy it to your R4 and enjoy your work!

Hardware

R4 — this is an NDS card that take a micro-SD card. You don’t get a MicroSD card with the R4. The R4 itself has a bunch of circuitry and software onboard the chip to bootup and run your homebrew games, mp3s, and some other stuff. I’ve seen it running a 3D nehe demo converted for use on NDS. Feel the potential (to your face).

You can get an R4 here: http://www.volumerate.com/details.vr/sku.1202~r.DX

It costs about 33 bucks and will take somewhere around 2 weeks to get to your house. I haven’t gotten mine yet, but I did order it.

Some useful NDS bookmarks:

These first 3 links are the big ones that give you tutorials for working with the NDS

http://www.dev-scene.com/NDS/Tutorials

http://www.double.co.nz/nintendo_ds/

http://www.drunkencoders.com/

These are useful engineering links to Unix shell commands and working with make files which you’ll need.

http://www.eng.hawaii.edu/Tutor/Make/

http://www.geocities.com/TheTropics/1945/index14.htm

http://www.grymoire.com/Unix/Sed.html

http://www.grymoire.com/Unix/Regular.html

http://www.coderjoe.net/

NDS Emulator link (good for testing on your PC, but the emulators aren’t that fully functional, my friend says he had the best results with this — but these are a temporary solution until you can get an R4):

desmume-0.7.2-win.zip

You can find it at this link: http://sourceforge.net/project/showfiles.php?group_id=164579

So this is the super-quick primer on how to get started. I was installing and setting up while I was writing this down so I made sure to include all of the little nuances and such that I had to go through. If you have any issues, feel free to leave a comment and I can try and help you out or find out more.