The SDK “Power Mac G5” for the Xbox 360

Many years ago (in 2015), I told you about my Xbox 360 development kit, based on a Power Mac G5. And I finally managed to make it work.

Let’s summarize the story. We are in 2003 and Microsoft plans to release its Xbox 360 console in 2005. It is based on a new PowerPC processor (the Xenon, derived from the Cell but that’s another story) and an AMD graphics card. And initially, to provide test machines to the developers, Microsoft has an issue: the processor does not exist yet. The solution, quite pragmatic, to solve the problem while waiting for the first prototypes of consoles consists in using the most common mainstream PowerPC platform: a Macintosh.

My kit


My kit

Then, Microsoft buys many Power Mac G5 and installs a dedicated operating system on it for the devs. Before the arrival of the real console, the brand provides two variants to the developers: the Alpha 1 and the Alpha 2 kits. As we will see, they differ essentially by the graphics card used. The development kits are used during a few years, at least until the E3 2005: the demonstrations of the Xbox 360 at the time are on Mac. Then, Microsoft downgraded the machines, which were eventually sold to employees for $ 300, with obviously a completely erased hard drive. From time to time, those machines reappear on eBay or at private homes – I have one – but obviously without the Microsoft OS (and with Mac OS X).

The material part

Microsoft has used two versions of the Power Mac G5: the original 2003 one in its “dual 2 GHz” version, or the June 2004 variant, still with two G5 at 2 GHz (but in 970fx version, in 90 nm). Other variants do not work with the Microsoft OS. The kits had 512MB of RAM, a 160GB hard drive (Seagate ST3160023AS) and an ATi graphics card. The first kit (Alpha 1) had an ATi Radeon 9800 Pro 128 MB (R3xx), the second a Radeon X800 XT 256 MB (R420). The other GPUs did not work, and my kit, which came with a Radeon 9600 Pro, had therefore been modified. Finally, the kits include an Intel Pro100+ network card in PCI, because the Microsoft OS does not support the internal card of Power Mac G5s. The Alpha 1 kits disappear quite quickly, turning obsolete in February 2005 when the OS does not support GPU anymore. You may find more information on Alpha kits at this address.

The network card is not used for DRM

For a long time, the available information indicated that the Microsoft OS was checking the Mac on its serial number or that the network card was used as a pseudo-DRM, but actually… Nope. With the right OS and the right components, it is possible to install the operating system on a standard Power Mac G5.

We can install the OS

The interesting part is that in late 2018, a group broadcasted on the Net a copy (a disk image) of a Xenon system (the name of the OS). This is the 1529 version, which only supports Radeon X800 XT. With the right equipment, it becomes possible to launch the OS on a development kit of the time (like mine) but also on what they called a FrankenXenon. There are not really any differences between the two, apart from some “Property of Microsoft” stickers, even though it’s obviously classier with it.

The necessary equipment is quite accurate.

• A Power Mac G5 with two 2 GHz CPUs (only this frequency). You need a 2003 or 2004 version, but not a 2005 model, nor a PCI-Express model (with a dual core processor). If your Mac has four slots for RAM (not eight), it’s not good.
• At least 512 MB of RAM. Normally, it is not a problem.
• A hard disk of 160 GB, a priori necessarily a Seagate ST3160023AS. This is the original model. I tried with an SSD without success, and my Mac no longer had the original hard drive. It is easily found on eBay for a few euros with the right reference. It may work with others, but I did not succeed.
• An IDE optical drive, mandatory. This should not be a problem: Power Macs have one.
• An Intel network card if you want to connect the machine. It requires an Intel Pro100+ PCI, reference 741462-010 (the one provided by Microsoft) or 741462-010. It’s easy to find it on eBay.
• An Xbox controller (original) with a USB adapter or a wired Xbox 360 controller. Careful, not a “Play & Charge” version.
• An ATi Radeon X800 XT 256 MB with two DVI outputs (that’s important) and a Mac BIOS. This is the complicated part, let’s detail it.

The right hard drive


A compatible graphics card

You will also need time, a screen with DVI and a SATA to USB adapter or a machine on which you can connect a hard drive internally.

The case of the graphics card

This is the really bothering part. The ideal solution is a Radeon X800 XT for Mac: it has a DVI output and an ADC output and is powered through the AGP port through an Apple non standard connector. The problem is that it is overpriced (at least $ 150 to $ 200). Otherwise, you can flash a PC card. I explained the method in this post (in french) and it works perfectly. But be careful: do not use the same card as in my old example: the card must have two DVI outputs and not a DVI output plus a VGA output. And of course, you need an AGP version, not a PCI-Express.

For the alternative solution you will need an ATi FireGL X3. This is the professional version of the card, and it is possible to flash it with a Radeon X800 XT BIOS for Mac. The BIOS can be found on this site and the cards are at a fair price on eBay (well, less than 30 €), but with a default: the memory. There are cards with Samsung memory and others with Infineon memory. The Infineon does not seem to work at its standard frequency or has a bug with the Mac BIOS. If you have a card with Infineon memory and that artifacts appear at startup (this was my case), you should also flash the frequency down. I will not detail it here (unless someone really wants to try) but the method goes through the same softwares as the ones used to flash BIOS. Basically, you just have to get the frequency lower until you get a clean image. Or find a card with Samsung memory.

The molex plug


Integration of the power supply


The nasty memory Infineon


Once the memory is slowed down

Then, the integration of a PC card or a FireGL requires to recover the power. The cards for Mac are powered by the connector originally intended for the ADC, the PC cards go through a Molex plug. This requires a double Molex socket, which will allow to recover the power on the optical drive. Normally, the cables are long enough to put the adapter at the back of the optical drive. Be careful, the optical drive still needs power to make the Microsoft OS work.

Last step before installation, you need a DVI screen. In my case, the kit did not start properly with a VGA screen, even with a DVI to VGA adapter.

The OS

The download file is quite compact, less than 300 MB, but it contains a compressed disk image. Beware: it requires 160 GB of disk space and the decompression can take some time. In theory, it can be restored on any hard drive over 160 GB, but in practice I have managed to run it only on a Seagate ST3160023AS (7200.7) from Apple. It may work on a version that does not come from Apple, I did not test. On the other hand, on two different SSDs and on a 2.5-inch hard disk, it does not.

The restore goes through the dd command under macOS (there are equivalents under Linux and Windows). It is necessary to determine the logical name of the disk with the command diskutil list (for example /dev/disk8), then unmount the potential partition on the disk (sudo diskutil unmount /dev/disk8s1) and then restore the image.

Beware, the command will erase all the disk, and if you don’t pick the right disk, you will erase all your data. Be careful. The value after the if= is the path to the disk image (you can drag the file into the Terminal), the value after of= is the disk name and bs=1m indicates the size of the blocks. I had some problems fixing bs at 8 MB, but I do not know if it’s normal or not. I ran my last test without indicating it but it was extremely slow (not far from 20 hours). It may work with this value. If you try with an SSD, you can specify a higher value, which will speed up transfers.

sudo dd if=/Users/you/Downloads/imagedisque.img of=/dev/disk8 bs=1m

Once the image is restored, macOS will display a XeBoot partition of a few MB and that’s it. But that’s it: Apple’s OS does not support the Xbox’s FATX file system and so does not spot it.

The first boot

Now, let’s test. If you have the right components, it should work. The hard drive must be plugged into the SATA “A” slot (the top one), and I advise you to perform a complete reset of the Mac. Either with the classic command (command + option + P + R at startup) or by entering the Open Firmware (command + option + O + F at startup) with the following commands:

reset-nvram
reset-all
set-defaults

Then … it should start under Xenon OS. If that does not work, this forum topic can help you. If the machine crashes with a lot of noise, you may have not put back the transparent cover correctly. If you have a grey image then nothing, try changing the screen and plugs. And also check that the controller reacts: with a Xbox 360 model, the central LED should be activated and passing on the player 1 (top left). If not, come ask here.

The OS

The Xenon Launcher

The basic interface just shows the installed executables, with some options. It is controlled by the controller, either with an Xbox 360 controller or with an original Xbox controller (and a USB adapter). Settings are reduced to a minimum: definition (480p, 720p, 1080i), output type, network settings, etc. The disk image contains a few programs, like the Dolphin demo. It exists for Xbox 360 (.exe) and Xbox emulation (.xeb). There are also some other demos.

The options


The options


The Dolphin demo for Xbox 360 (.exe)


Dolphin


A test scene


The Xbox 360 dashboard


The Dashboard


The Dashboard


Quit and return to Launcher

In addition to that, there is an Xbox 360 Dashboard (quite old) with some options but mostly a lot of unusable functions. In theory, it is also possible to use beta versions of Xbox 360 games, but the few titles I found did not work. Let’s say that a beta of a title developed at the time on an Alpha kit should pass. At the end of the post, there is a video showing some screenshots of the interface.

The Xbox emulator

The SDK includes an Xbox emulator (the first one). In theory, it allows to launch images of Xbox games (the famous xbe), in practice it is extremely random. The emulation of the first Xbox has always been quite problematic, even though many thought it would be emulated easily because of its family air with a PC. In practice, it’s explained there, it’s complicated. Very complicated. The two emulators that work pretty well are those of Microsoft, Fusion (for Xbox 360) and Fission (for Xbox One). Both are actually used for backward compatibility of consoles, and in some cases require downloading data. Quite logically, the Xbox 360 development kit contains a preliminary (and partially functional) version of the emulator that would be used for backward compatibility.

A history of ROMs

Talking about emulation and (especially) games is always a little complicated. From what I could find, making a disk image of an Xbox game is something complicated, which requires a precise optical drive with a modified firmware (some models exist). Basically, I bought original games (at very fair prices) to try … but without the necessary equipment, it is useless. In practice, it is therefore necessary to download an ISO or a folder containing XBE files (the executables of the console) and it is inevitably illegal. If for some reason you get an ISO file, the QWIX program can extract the necessary files. It is also possible to extract the games from a modified Xbox … but I do not have any (and too lazy to use the debug version I have at work).

The launcher

Now, the part that can be quickly annoying: the world of ROMs for Xbox is a little complicated. First, there are several “versions” of games. Under the name Halo 2, I came across four different versions, including a demo and a beta. Then, a lot of downloadable games are patched to work on a modified Xbox console … which breaks the compatibility with the development kit. It is therefore to be hoped that the ISO will not be patched or that the person who made the change has thought of leaving the original executable (this is obviously often the case). Finally, the game must work and it is perhaps the most complicated thing I tested. If the original unpatched file is present, it must be renamed correctly (it is a priori named default.xbe_orig, just rename it default.xbe).

It will not work


Space Harrier


Dead Or Alive

The implementation first requires an Intel network card, and a little time. In fact, the Intel card is a 100 Mb/s model so the data goes to the development kit to a maximum of about 12 MB/s. Then you have to find an Xbox 360 SDK (the software, I’ll let you look for it) and install it on a Windows machine running on the same network as the development kit. Then launch the Xbox 360 Neighborhood, add the kit using its IP address (shown on the home screen) and simply copy the data into the Game Development Volume folder (DEVKIT:).

Halo


Halo 2


Halo 2


The Simpsons

After a few tests, and with the help of this page, I found some software that works. It goes from Halo (the first) to Halo 2 through a Simpsons game. So, I made a short video with some examples. The screenshot is a bit capricious: it’s 480p with the sound recorded from the analog audio output of the Power Mac, with an average quality (the sound cannot be played in digital with my acquisition card). The video shows Halo, a game about the Simpsons, an Xbox Arcade game (I tested an ISO with about thirty titles) and Halo 2. This one is not particularly fluid. It’s a bit arduous because I played without sound and (mostly) because I had never played Halo in my life.

Videos and images

I tried to capture some pictures, but it’s not easy. The kit starts all over again when it is connected to the acquisition card, and the only solution is to start with a screen and then change the plug. In addition, the change of definition (from 720p on the interface to 480p on some games) are issues, so there is a little work to do. Xbox applications apparently do not allow to come back to the interface, so you have to restart periodically. Finally, you will see artifacts in one of the scenes because I have obviously put a bit too high frequencies for my GPU. For the sound, the video card does not manage digital sound on the DVI, so I captured analog from the line output of the Mac.

Conclusion

Let’s be clear: it obviously useless in 2019. There are more advanced development kits and this solution is obsolete. From a historical point of view, it is rather interesting to see the choices of Microsoft, quite pragmatic, when developing the console. And frankly, having a Mac “Property of Microsoft” in a collection is still pretty fun.