Halo 3’s Fixed IP Problem

Ever since opening Halo 3 and hopping on Xbox Live with it, it’s been complaining about my router’s NAT settings. Apparently, it needs certain ports open to connect to other gamers. Tonight, I finally set out to get it working properly, but came up short.

After first doing a little research and discovering that Xbox Live uses TCP and UDP port 3074 and UDP port 88 (largely UDP port 3047, as indicated by my Ethereal packet dumps), I thought I could get away with forwarding those ports straight to my Xbox 360. Since my console was set to automatically lease an IP address from my router, it would quite probably get a different IP each time it boots up, thus “breaking” my carefully forwarded ports. The obvious solution is to choose a fixed IP address in the Xbox Dashboard. Once the IP is set statically and the appropriate ports are forwarded, all seems to be well, except for one minor hangup…

If you boot directly to the Halo 3 disc with with a fixed IP address, the network connection never links up before executing the game. Halo 3 runs, then refuses to connect to Xbox Live. I have to exit the game, go back to the Xbox Dashboard, Sign In to Xbox Live, then re-launch Halo to get it to go online. It couldn’t be a more roundabout way, but it seems that’s the only answer aside from enabling uPNP on the router, which I’ll never do for security reasons. I doubt my DD-WRT powered WRT54GL router is “Microsoft Certified,” but the problem seems to lie with the Xbox 360 or Halo 3, as it won’t even acknowledge the presence of an Ethernet cable until the Xbox Dashboard launches. Weird.

Update: Here’s one solution: Open the DD-WRT settings, go to Administration, Services, then the DHCP Server grouping and set a static lease for the Xbox 360’s MAC address. Set the Xbox 360 back to Automatic IP address leasing, and the router will assign a fixed IP based on the console’s MAC, ensuring it’s the same every time, without the Xbox having to be set to static.

Halo 3’s Fixed IP Problem

Xbox 360 HDMI+Audio Output

After purchasing my new HDMI-equipped Xbox 360, I decided to hook the console up to my LCD computer monitor to check out the video quality the system can produce. As I wrote about earlier, Best Buy pestered me throughout my visit with offers of pricey cables, including a $40 HDMI to DVI adapter, an $80 HDMI cable, and more. Not wanting to pay those ridiculously marked-up prices, I found a much cheaper solution.

Getting high quality video out of the Xbox 360 is quite easy with the help of a $15 (shipped) HDMI to DVI cable from NewEgg. Connecting the console and the display is a snap, and the video settings are easily adjusted to match the native resolution of the LCD panel.

Audio, on the other hand, is another matter. The placement of the HDMI port on the Xbox 360 is quite poor. It resides directly below the standard A/V output, and the component+composite cable that ships with the premium console is too bulky to plug in above the HDMI cable. It’s only possible to plug in one at a time, as one connector blocks the other. Frustrated, I turned to Google to see if anyone else had run into this design oversight. As it turns out, the Xbox 360 Elite package comes with an HDMI cable and an audio adapter cable with a much thinner plug. Unfortunately, the audio adapter cable is not available as a separate purchase, and can only be bought from Microsoft as a $50 HDMI+audio adapter cable kit (or on eBay for $30 and higher). Clearly a better answer was needed.

I took a trip to my local GameStop store to see what kind of cabling they had in stock, and I managed to score quite a deal that easily solved my audio problem. A standard composite+stereo audio cable, presumably from a now-discontinued Xbox 360 Core package, was available for $5, and it had a thin plug attached.

Using the HDMI to DVI cable and the regular video/audio cable, I can get crystal clear video and stereo audio out of the Xbox 360 for a combined total of $20, which trumps Microsoft’s kit by a great margin. After digging up some additional stereo adapters of my own, I now have a pair of headphones connected, ready to play Halo 3 in crisp 1280×1024 video without waking the neighbors.

Xbox 360 HDMI+Audio Output

Xbox 360 First Impressions

In preparation for the impending release of Halo 3, I finally got around to picking up an Xbox 360 yesterday, after nearly two years of waiting. Best Buy has stock of some of the newer consoles with a built-in HDMI port, so I opted to get one of those, so I could hook it up to a DVI computer LCD if need be. After being bombarded with offers of expensive extended warranties, unnecessary accessories, and “nitrogen injected cables”, I got out of there with just the new console and a game. After unboxing it and playing for a while, these were some of my impressions:

Power

The power brick for this console is huge. It’s quite literally the size of a standard red masonry brick, only a little longer. Taking a slightly modified computer power cord for AC input, the adapter consumes just over 200 Watts of electricity when fully active. It has a big indicator LED to let you know when it’s working or failing (yikes), and at least one fan for cooling. This is one power-hungry system.

Cables & Wireless

Xbox 360 came with everything I needed to get it up and running, including a few extras like a wired headset and RF controller. Noting that the headphone jack on the controller is the same mini port on the audio unit from the original Xbox, I was pleased to discover that my Halo 2 headset attached and worked with no trouble (sans the volume control and mute button). Being able to remotely boot up the console from the couch with the Xbox button is the ultimate in advanced laziness technology. Count me in!

Performance and Games

The system is louder than an off-the-shelf original Xbox, but no louder than my modified version, so the noise isn’t too much of an issue, thankfully. Graphics performance is quite good from what I’ve seen: high polygon models, textures heaping with detail, and plenty of processing power to sustain high framerates will serve the 360 well for years to come. I was decidedly unimpressed with gameplay in Gears of War, and felt thrown into action with little instruction. Normally, I enjoy first-person-shooter games, but the lack of a constant targeting reticle, somewhat confusing controls, and weak plot will send me back to the store hoping to swap for BioShock or another title.

Overall, the Xbox 360 seems to be a fine console with plenty of horsepower and extras, but my (admittedly short) gameplay has not impressed me so far, save for the graphics. Here’s hoping Halo 3 will make it all come together… Only 16 days to go.

Xbox 360 First Impressions

Mac Meet Xbox: Part 3.1

Mac Meet Xbox

3.1? What?

Networking a Mac and an Xbox can sometimes be troublesome, occasionally involving unusual network setups, so I decided to publish this little Mac Meet Xbox addition to better cover the subject. Having in-depth, detailed knowledge of networking isn’t necessary, but some basic concepts are key in keeping Xbox Media Center updated with new builds and fresh content.

For most, there are two main ways of attaching your devices: using a router as a central network hub, and wired Ethernet using a “crossover cable.” Both ways work, and the choice is up to you depending on your existing network setup or personal preferences.

Key Networking Technologies

Before you can begin learning about the details of the specific scenarios, a little foundation knowledge will go a long way towards helping you understand how each setup works.

The most common method of getting your Xbox and Mac talking to each other is with the use of a home internet router, be it wired or wireless. To be a router, your networking hub must have some core functionality that’s found in all routers, which includes IP distribution, internet splitting, and switching. Every router or internet gateway you can find on store shelves today will offer these features and more, so you generally don’t need to worry whether or not your particular router does these things.

IP distribution, the fancy-sounding Dynamic Host Configuration Protocol, or more commonly called “DHCP” is the core of the router’s functionality, automatically providing IP addresses to connected computers. When a computer is connected and set to automatically find an IP address, it talks to the router and negotiates assignment of an IP address. When accepted, the computer can talk to others on the same network. Apple likes to call DHCP “Automatic” in many cases, and static “Manual.” They’re just friendlier-sounding words compared to the alphabet soup that is most computer terminology.

Usually, the main goal in purchasing a router is to “split” a single broadband internet connection into many connections, allowing multiple computers and devices access to the internet. The router achieves this using a technology called Network Address Translation (NAT), in which it modifies all packets destined for the internet to have the address of your cable or DSL modem, not the internal IP address of your computer assigned by its DHCP server. Outbound packets have a note made of them in its memory, so when the response packet comes back from the internet, the router looks up which computer it should go to. It’s a clever technology that allows multiple devices to masquerade as one, and your ISP is none the wiser.

Finally, the last major feature that routers inherently provide is switching. Switching is nothing more than intelligent data moving, which has the side effect of making things more secure. Networking technologies of several years ago relied on hubs, which are actual devices, compared to the more general “central location” hub referred to above. A hub was just a device that allowed multiple computers to talk to each other by means of simply shouting at everything connected. When data was sent into a hub, it went out every other port in an attempt to reach the destination computer. If the destination was within reach, it, too, would shout back, keeping all the other attached computers within “earshot.” Any computer attached but not involved in the shouting match as it were, could keep a record of both sides of the conversation, which is bad for security. Switching avoids this problem by keeping track of the port through which each computer is reachable. If necessary, more than one switch can be involved, yet each knows its role in getting the data to the destination without involving other computers. This not only cuts down on potential eavesdropping, but reduces overall network congestion — computers no longer have to wait for the shouting to stop to get their packets on the network.

Why Use a Router with XBMC?

With all the fancy features provided by a router, what applies to getting Xbox Media Center off the ground? At the very least, it gets you and your Xbox an internet connection. For your computer, the internet use is obvious, but Xbox Media Center also uses the internet to get weather, RSS news feeds, IMDB movie information, and more. Simply plugging in your Xbox and computer will get you that much by relying on the DHCP capabilities of the router.

The Router Setup

Most home routers are very straightforward — plug the device into wall power, run Ethernet from your cable or DSL modem the the Internet/WAN port, and run Ethernet to your Mac and Xbox. If your Mac has an AirPort, AirPort Extreme, or other wireless card installed and your router has antennae, you’ll also have the option of just linking up your Mac wirelessly. Both Ethernet and wireless work, and the only noticeable difference is data transfer speed. When copying a 700 MB movie to your Xbox, Ethernet speeds will blow away wireless (at least until 802.11n becomes more popular). After all the devices are connected and powered up, the router will assign them IP addresses, and everything will have internet access and the ability to communicate with each other.

You can view your Mac’s IP address by opening your Mac’s System Preferences, Network, Built-in Ethernet, TCP/IP tab, shown here:

And just like you’d expect from the Mac, that’s it! No other setup is needed. To connect to your Xbox, you’ll need to find out its IP address, which you’ll FTP into to transfer movies, music, games, or whatever media you choose to play. Boot your Xbox and simply scroll down the main list and highlight the Settings tab. On the right, the assigned IP address will be displayed:

As you can see, the IP 192.168.1.11 is given, which is the same address you would use to connect using Transmit or other preferred FTP client. Using a router makes networking your hardware very easy, especially with the DHCP capabilities that do all the legwork for you.

Why Use a Crossover Cable with XBMC?

A router is usually the most universal way to use XBMC, however there are times and setups where you may not have 24/7 internet access, a router is too far away, or you’re simply in a rush to copy a file over. A crossover cable is a relatively common piece of network cabling, which “crosses over” the “talk” and “listen” wires, making one device talk directly into the other’s listen connection, and vice versa. In doing so, the need for a router or wired switch is made unnecessary. This setup will yield the fastest overall transfer speeds, however a router really doesn’t introduce a noticeable delay.

Crossover Cable Setup

Hooking up your Mac and Xbox via a crossover cable is as simple as plugging it into the Ethernet ports on both machines. Unlike the router setup, though, they can’t immediately communicate. Both the Mac and the Xbox are normally set to use DHCP to get an IP address. As you recall, the router provides this service, but it’s no longer in the picture, so the devices therefore can’t receive IP addresses without some additional setup. To make the configuration as easy as possible, you can set both devices to have static/manual IP addresses, as opposed to automatic.

Once connected, visit the Mac’s Network settings (again, System Preferences, Network, Built-in Ethernet, TCP/IP tab). Change the “Configure IPv4” popup menu to Manually, and a number of fields will become editable. Fill in an IP address such as 192.168.1.10, and a Subnet Mask of 255.255.255.0. A router isn’t used in this setup, so the Router and DNS Servers fields can be left blank. Here’s a screenshot of a properly configured Ethernet interface on the Mac side of the network:

Unless you’re sharing an internet connection under the Sharing system preference pane, static is the only option for a crossover cable setup. And, quite frankly, setting all your networked devices to static IPs is probably a good choice in any arrangement if you intend to be interacting with them regularly. You’ll always know which IP to connect to in order to get to the machine you expect. (On my home network, I personally use a router with DHCP enabled, but have all my computers and Xboxes set with static IP addresses so I know where each is when I need to talk to it. Any other computers, such as my fiancee’s laptop, simply get an IP assigned via DHCP when it connects.) Hit “Apply Now” to invoke the new IP setup, and your Mac will be configured.

Next, boot up your Xbox running XBMC and open its Settings page. Highlight the Network tab if it’s not already selected, and move the selection over the Assignment up and down arrows, and choose “Manual (Static)”, as seen below:

Once “Manual (Static)” is chosen, you can move the selection down to the IP Address field and type in the desired IP address using the little onscreen number pad. Choose something reasonable (an ending number anywhere between .2 and .254), and one that’s not the static IP of your Mac. That last bit is important — the two devices absolutely must have different IPs, or else they’ll be fighting for control and probably both end up disconnected until you change one of them.

Once you’re done typing an IP, press the “E” key onscreen to Enter your settings. Step back out of the Network settings using the Back button on your controller or remote, and head back to the main XBMC menu. For good measure, reboot your Xbox using the red button in the lower-right corner, and it will start up fresh with the static IP set exactly how you typed it. You’re then ready to connect via FTP using that IP, and start loading up content, browsing around the Xbox filesystem, or updating Xbox Media Center!

I hope this networking tutorial shines some light on what seems to be a trouble spot for many a new Xbox modder. If you still have questions, feel free to post a comment using the form below.

Mac Meet Xbox: Navigation

Part 1: Why Xbox + Choosing Chips
Part 2: Cracking the Case + Installing and Flashing
Part 3: Installing XBMC
Part 3.1: Networking in Detail

Mac Meet Xbox: Part 3.1

Xdisc: Mac Xbox ISO Utility

Often when dealing with Xbox content on the Mac, it’s useful to be able to create a bootable DVD, perhaps of a game or Xbox Dashboard program. While Xbox Media Center doesn’t run well from a DVD, games, utilities, and other programs are designed to be playable from a disc.

The Xbox can’t normally read computer formatted CDs like ISO 9660 and Joliet (XBMC can, though), but to make a bootable disc, it must be of the proper format. Microsoft designed a custom disc format for the Xbox in an attempt to stop piracy and secure the system, however it was quickly reverse engineered to allow for all kinds of uses. Xdisc is an Xbox disc image creator/extractor for Mac OS X, built on top of the open-source extract-xiso utility, which can be compiled for most operating systems. It can build an Xbox ISO file (disc image) from a folder on your computer, or can directly FTP into the Xbox and create an image of a folder or DVD, including games. It can also extract the contents of an Xbox ISO, producing the original files that make up the software. FTP is fully integrated into extract-xiso — and thus Xdisc — making for a great solution that can communicate directly with the Xbox to get the job done.

The author, known as “trackfive,” does not have a personal site that I can find and link to, so I’m hosting a copy of Xdisc right here, so you can download away. Also included in the download are several drag-and-drop applets to quickly create and extract XISOs without launching the application and messing with settings.

1/7/2007 Update
Trackfive has also produced some Automator plugins, which allow you to Control-click (right-click) on a folder or file and create or extract the Xbox ISO in one simple step. What could be easier?

Xdisc: Mac Xbox ISO Utility

Mac Meet Xbox: Part 3

Mac Meet Xbox

Welcome back to the “Mac meet Xbox” series, Part 3, where we finally get to the good stuff. With the Xbox opened, modded, and ready to run beautiful, open-source, and decidedly non-Microsoft software, we’re going to format and install Xbox Media Center.

Getting XBMC

Yet again we run into the issue of legality in the Mac meet Xbox series, as Xbox Media Center is compiled from source code using Microsoft’s XDK (Xbox Development Kit). The XDK is a series of Windows programs, drivers, and Xbox software which allows developers to write and debug software for the Xbox. It is supposed to be available only to game publishers, however copies of it have leaked out onto the internet. The source code for Xbox Media Center is freely available and open source, but when you compile it into an Xbox program (an .xbe file, akin to Windows’ .exe files), you’re using copyrighted software, thus the resulting executable contains a portion of copyrighted code. Distributing such a copyrighted work violates the DMCA in the U.S., however laws in your country may vary. For the sake of this tutorial, I’ll leave the legalities up to you, but you should be aware of why the Microsoft XDK is publicly considered “off limits” in most discussion areas. For more details, you can visit the XBMC wiki page regarding the XDK and its involvement with Xbox Media Center.

Building Xbox Media Center from source code with the XDK isn’t a great option, let alone an easy one. Thankfully, a few charitable people build and post copies of XBMC around the net. I’ll have to leave you to your own devices to obtain a copy. As of this writing, the latest version is 2.0.1, and it can be found on popular sites. Like the BIOS files mentioned in the previous Mac meet Xbox part, XBMC is also distributed in RAR format, which must first be decompressed.

Dashboard Swap

With a shiny new build of XBMC on your computer, you’ll need to prepare the Xbox to receive the files. The community that has developed around Xbox modding decided upon one of the best choices for file transfer — FTP. We’re going to run an FTP server on the newly modded Xbox, browse through it’s carefully arranged system files, and replace a bunch of them with Xbox Media Center. First, though, you’ll need an FTP server.

In the early days of Xbox modding, a replacement for Microsoft’s Xbox “dashboard” was created, EvolutionX, and it served a number of needs: launching programs, flashing the Xbox’s onboard BIOS, changing settings, and running an FTP server. While others have since been developed, and even our very own Xbox Media Center is capable, we need something simple and easy to get off the ground. The easiest way to run an FTP server is to boot a prepared EvolutionX disc, which automatically starts the FTP service. Again, you can find discs to do the job all over the web. Burn the disc image to a DVD-R, DVD+RW, or CD-RW, which are three of the most compatible disc types — CD-Rs tend not to work well. Pop in the disc, reboot your Xbox, and marvel at the first non-Microsoft application running on your Xbox. By the time you see the spinning “EvolutionX” text, it’s ready to accept FTP connections at the IP address displayed in the Utilities menu (assuming your network setup is the same as in Part 2).

There are several Mac FTP programs that will work for the next task, however I strongly recommend Panic’s Transmit client, which has proven to work reliably with the built-in FTP servers of the Xbox programs we’ll be dealing with. Launch Transmit, and connect to the IP given by EvolutionX, with the universal Xbox FTP login:
Username: xbox
Password: xbox
Of all your passwords, this should be the easiest to remember.

When connected, you’ll be presented with a list of folders much like that of a Windows “My Computer” view: C:, D:, E:, and a few other drive letters. Not surprisingly, the folders correspond to similarly arranged devices — C: is for the main Xbox system files, D: is the DVD-ROM drive, E: is for extra files like game saves. If you’re curious, you can browse the contents of the optical drive by peeking inside D:, however the real guts of the Xbox’s system lie in the C: folder. Unlike Windows, however, the Xbox system files are stores right inside C:. Opening it will list a number of important files, but the one to note is xboxdash.xbe. This file, along with its associated fonts, sounds, and textures is the heart the Xbox software. It’s the green screen you’re used to browsing through when you have no game inserted in the console or are about to play a DVD movie. At this point, I would advise backing up all the contents of the C: drive to a safe folder on your computer, should you need them in the future. Go “up” a directory where you can see the drive list again, and simply drag C: to your Mac, and wait for it to copy over. (If you’re so inclined, you might also drag over E: to back up your saved games and other data.)

Once the contents of C: are backed up and safely tucked away, promptly delete everything in the C: folder. That’s right. Blow it away. Doing so will rid your Xbox of its Microsoft dashboard and prepare the space for XBMC. Short of re-copying the files you just backed up, you won’t be able to get back to the standard Xbox dashboard any longer. If you’re going to make this machine a media center Xbox, you might as well go all the way and make the media center the default system. With that, highlight everything in C:, and click Transmit’s “Delete” toolbar button.

Some moments later, your C: folder will be empty, ready to accept new software. At this point, if you were to reboot your Xbox without the EvolutionX disc inserted, you would receive an error stating that your Xbox needs serious repair by trained Microsoft professionals. Slim chance of that happening any time soon, after all, you’re an Xbox modder now. Browse to the contents of the decompressed Xbox Media Center folder and find default.xbe contained within. Upload this file and all of its sibling files and folders, ensuring that the default.xbe is directly inside the C: drive. This may take some time, as XBMC totals over 100 MB and has quite a few small files which can slow down the overall transfer. Upon completion of the upload — and this is important — rename default.xbe to xboxdash.xbe. You’ll note that the original Microsoft dashboard had the same file name, thus we’ve replaced it with Xbox Media Center’s main program. Without an xboxdash.xbe to launch, the Xbox will produce an error screen. Renaming Xbox Media Center’s main program to match what the Xbox expects to find effectively tricks it into launching the new software at startup.

The Final Test

To ensure you’ve properly installed Xbox Media Center, open the DVD drive, remove the EvolutionX disc, and restart your Xbox. If all goes well, you’ll hear a startup tune and be greeted with the Xbox Media Center splash screen, and a brand new menu system. Movies, music, pictures, programs — it’s all here.

If you’ve made it this far, consider yourself an official Xbox modder. You’ve successfully opened the console, modified it to run non-Microsoft software, and installed your own replacement system. Getting this far took countless hours of cracking and coding on the part of some very dedicated hackers, and you’ve managed to follow in their footsteps to assemble your own home media center.

Mac Meet Xbox: Navigation

Part 1: Why Xbox + Choosing Chips
Part 2: Cracking the Case + Installing and Flashing
Part 3: Installing XBMC
Part 3.1: Networking in Detail

Mac Meet Xbox: Part 3

Halo Wars for iPod

If you hadn’t noticed from my many previous posts, the category even, I’m a huge Xbox fan. And what Xbox fan doesn’t appreciate a battle-filled round of Halo, the title that made the Xbox what it is today? While I’m still ever-so-slightly bitter about losing the original Halo to Microsoft Game Studios after the crowd-pleasing MacWorld 1999 demo, I’m quite glad it turned out as successful as it has. What was primed to be a noteworthy Mac game got transformed into an enormous console blockbuster, a milestone in gameplay and attention to detail demonstrating that Bungie simply “gets it” when it comes to games. It was, and still is, one of the top selling Xbox games, and Halo 2 is continually rising back up to top of Xbox Live charts.

I’m certainly excited over the upcoming release of Halo 3 for the Xbox 360, but I recently learned of a new spin on the Halo saga. Halo Wars aims to deliver a real time strategy version of Halo, allowing you to command massive armies of Spartan soldiers and vehicles, defending against Covenant invaders on a global scale — a “bigger picture” interpretation of the first-person action that fills Halo 1 through 3. Normally, I don’t get excited about anything other than first-person shooters; I like having a weapon displayed in the lower third of my TV screen and a straight-ahead view of the oncoming foes. Over the last few weeks, though, I’ve really started enjoying Company of Heroes on the PC, which is a World War II real-time strategy game. It got me thinking: If this game is fun, playing it in the Halo environment must really be impressive. Calling in Banshee air strikes while maneuvering squads of soldiers around in Warthogs makes Company of Heroes seem boring by comparison.

Over at the Halo Wars site, they provide a trailer of what’s in store. Although it doesn’t detail any of the gameplay, it is a great teaser, displaying dozens of UNSC allies and enemies, all with their signature vehicles and weapons ready and poised for battle. Sadly, the trailers are only available in Windows Media format (the obvious choice for a Microsoft affiliated game). I’ve taken the liberty of converting it to a more Mac- and iPod-friendly format, which you can download now.

Halo Wars for iPod