Test du SDK “Power Mac G5” de la Xbox 360

Il y a de nombreuses années (en 2015), je vous parlais de mon kit de développement pour Xbox 360, basé sur un Power Mac G5. Et j’ai enfin réussi à le faire fonctionner.

Pour le test, je vais résumer un peu l’histoire. Nous sommes en 2003 et Microsoft compte sortir sa console Xbox 360 en 2005. Elle est basée sur un nouveau processeur PowerPC (le Xenon, dérivé du Cell mais c’est une autre histoire) et une carte graphique AMD. Et au départ, pour fournir des machines de test aux développeurs, Microsoft tombe sur un os : le processeur n’existe pas encore. La solution, assez pragmatique, pour régler le souci en attendant les premiers prototypes de consoles consiste à passer par la plateforme PowerPC grand public la plus courante : un Macintosh.

Mon kit


Mon kit

Microsoft achète donc en masse des Power Mac G5 et installe un système d’exploitation dédié dessus pour les développeurs. Avant l’arrivée de la vraie console, la marque fournit deux variantes aux développeurs : le kit Alpha 1 et le kit Alpha 2. Nous allons le voir, ils diffèrent essentiellement par la carte graphique utilisée. Les kits de développement servent quelques années, au moins jusqu’à l’E3 2005 : les démonstrations de la Xbox 360 à l’époque tournent sur des Mac. Ensuite, Microsoft a déclassé les machines, qui sont vendues éventuellement aux employés pour 300 $, avec évidemment un disque dur totalement effacé. De temps en temps, elles ressurgissent sur eBay ou chez des particuliers – j’en possède un -, mais évidemment sans l’OS Microsoft (et avec Mac OS X).

La partie matérielle

Microsoft a utilisé deux versions du Power Mac G5 : soit la version originale de 2003 dans sa version « dual 2 GHz », soit la variante juin 2004, toujours avec deux G5 à 2 GHz (mais en version 970fx, gravés en 90 nm). Les autres variantes de Power Mac G5 ne fonctionnent pas avec l’OS de Microsoft. Les kits disposaient de 512 Mo de RAM, d’un disque dur de 160 Go (Seagate ST3160023AS) et d’une carte graphique ATi. La première version (Alpha 1) possédait une ATi Radeon 9800 Pro 128 Mo (R3xx), la seconde une Radeon X800 XT 256 Mo (R420). Les autres GPU ne fonctionnent pas, et mon kit, qui était arrivé avec une Radeon 9600 Pro, avait donc été a priori modifié. Enfin, les kits intègrent une carte réseau Intel Pro100+ en PCI, car l’OS de Microsoft ne prend pas en charge la carte interne des Power Mac G5. Les kits Alpha 1 disparaissent assez rapidement, ils deviennent obsolète en février 2005 quand l’OS arrête la prise en charge du GPU. Vous trouverez plus d’informations sur les kits Alpha à cette adresse.

La carte réseau ne sert pas de DRM

Pendant longtemps, les informations disponibles indiquaient que l’OS de Microsoft vérifiait le Mac sur son numéro de série ou que la carte réseau servait de pseudo-DRM, mais en réalité… ce n’est pas le cas. Avec le bon OS et les bons composants, il est possible d’installer le système d’exploitation sur un Power Mac G5 classique.

On peut installer l’OS

La partie intéressante : fin 2018, un groupe a diffusé sur le Net une copie (une image disque) d’un système Xenon (le nom de l’OS). Il s’agit de la version 1529, qui ne supporte que les Radeon X800 XT. Avec le bon matériel, il devient possible de lancer l’OS sur un kit de développement de l’époque (comme le mien) mais aussi sur ce qu’ils ont appelé un FrankenXenon. Il n’y a pas vraiment de différences entre les deux, en dehors de quelques stickers « Property of Microsoft », même si c’est évidemment plus classe avec.

Le matériel nécessaire est assez précis.

• Un Power Mac G5 avec deux CPU à 2 GHz (uniquement cette fréquence). Il faut une version 2003 ou 2004, mais pas un modèle de 2005, ni un modèle PCI-Express (doté d’un processeur dual core). Si votre Mac dispose de quatre emplacements pour la RAM (et pas huit), ce n’est pas bon.
• 512 Mo de RAM au moins. Normalement, ce n’est pas un problème.
• Un disque dur de 160 Go, a priori obligatoirement un Seagate ST3160023AS. Il s’agit du modèle d’origine. J’ai tenté avec un SSD sans succès, et mon Mac n’avait plus le disque dur d’origine. Ça se trouve assez facilement sur eBay pour quelques euros avec la bonne référence. Ça fonctionne peut-être avec d’autres, mais je n’ai pas réussi.
• Un lecteur optique IDE, obligatoire. Normalement, ce n’est pas un problème : les Power Mac en ont un.
• Une carte réseau Intel si vous voulez connecter la machine. Il faut une Intel Pro100+ en PCI, référence 741462-010 (celle fournie par Microsoft) ou 741462-010. Ça se trouve facilement sur eBay.
• Une manette de Xbox (l’originale) avec un adaptateur USB ou une manette de Xbox 360 filaire. Attention, pas une version « Play & Charge ».
• Une ATi Radeon X800 XT 256 Mo avec deux sorties DVI (important) et un BIOS Mac. C’est la partie compliquée, que je vais détailler.

Le bon disque dur


Une carte graphique compatible

En plus, vous aurez aussi besoin de temps, d’un écran avec du DVI et d’un adaptateur SATA vers USB ou d’une machine avec de quoi brancher un disque dur en interne.

Le cas de la carte graphique

C’est la partie vraiment reloue. La solution idéale est une Radeon X800 XT pour Mac : elle dispose d’une prise DVI et d’une prise ADC et s’alimente via le port AGP à travers un connecteur propriétaire Apple. Le problème, c’est qu’elle est hors de prix (comptez au moins 150 à 200 $). Sinon, vous pouvez flashez une carte PC. J’avais expliqué la méthode dans cet article et elle fonctionne parfaitement. Mais attention : il ne faut pas utiliser la même carte que mon ancien exemple : la carte doit disposer de deux sorties DVI et pas d’une sortie DVI et d’une sortie VGA. Et bien évidemment, il faut une version AGP et pas PCI-Express.

La solution alternative passe par une ATi FireGL X3. Il s’agit de la version professionnelle de la carte, et il est possible de la flasher avec un BIOS de Radeon X800 XT pour Mac. On trouve le BIOS sur ce site et les cartes à un prix correct sur eBay (enfin, moins de 30 €), mais avec un défaut : la mémoire. Il existe des cartes avec de la mémoire Samsung et d’autres avec de la mémoire Infineon. Et l’Infineon tient visiblement mal la charge ou a un bug avec le BIOS des Mac. Si vous avez une carte avec de la mémoire Infineon et que des artefacts apparaissent au démarrage (c’était mon cas), il faut flasher aussi la fréquence à la baisse. Je ne vais pas le détailler ici (sauf si quelqu’un veut vraiment tenter) mais la méthode passe par les mêmes logiciels que le flashage de BIOS. En gros, il faut juste descendre la fréquence jusqu’à obtenir une image propre. Ou trouver une carte avec de la mémoire Samsung.

La prise molex


L’intégration de l’alimentation


L’affreuse mémoire Infineon


Une fois la mémoire ralentie

Ensuite, l’intégration d’une carte PC ou d’une FireGL nécessite de récupérer l’énergie. Les cartes pour Mac prennent l’énergie sur le connecteur destiné à l’origine à l’ADC, les cartes PC passent par une prise Molex. Il faut donc un doubleur de prises Molex, qui va permettre de récupérer l’énergie sur le lecteur optique. Normalement, les câbles sont assez longs pour faire passer l’adaptateur à l’arrière du lecteur optique. Attention, il faut continuer à alimenter le lecteur : l’OS de Microsoft en a besoin.

Dernière étape avant l’installation, il faut un écran DVI. Dans mon cas, le kit ne démarrait pas correctement avec un écran VGA, même avec un adaptateur DVI vers VGA.

L’OS

Le fichier en téléchargement est assez compact, moins de 300 Mo, mais il contient une image disque compressée. Méfiez-vous : elle nécessite 160 Go d’espace disque et la décompression peut prendre du temps. En théorie, elle peut être restaurée sur n’importe quel disque dur de plus de 160 Go, mais en pratique je n’ai réussi à la faire fonctionner que sur un Seagate ST3160023AS (7200.7) Apple. Ça fonctionne peut-être sur une version qui ne vient pas de chez Apple, je n’ai pas testé. Par contre, sur deux SSD différents et sur un disque dur 2,5 pouces, impossible.

La restauration passe par la commande dd sous macOS (il existe des équivalents sous Linux et Windows). Il faut déterminer le nom logique du disque avec la commande diskutil list (par exemple /dev/disk8), démonter l’éventuelle partition présente sur le disque (sudo diskutil unmount /dev/disk8s1) et ensuite restaurer l’image.

Attention, la commande va effacer tout le disque, et si vous vous trompez de disque, vous allez effacer vos données. Soyez prudents. La valeur après le if= est le chemin vers l’image disque (vous pouvez flisser le fichier dans le Terminal), la valeur après of= le nom du disque et bs=1m indique la taille des blocs. J’ai eu quelques problèmes en fixant bs à 8 Mo, mais je ne sais pas si c’est normal ou pas. Pour mon dernier essai, je l’ai fait sans l’indiquer mais c’est extrêmement lent (pas loin de 20 heures). Normalement, ça passe avec cette valeur. Si vous tentez avec un SSD, vous pouvez indiquer une valeur plus élevée, qui va accélérer les transferts.

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

Une fois l’image restaurée, macOS va afficher une partition XeBoot de quelques Mo et c’est tout. Mais c’est normal : l’OS d’Apple ne prend pas en charge le système de fichiers FATX de la Xbox et ne voit donc pas sa présence.

Le démarrage

Maintenant, il faut tester. Si vous avez les bons composants, ça devrait fonctionner. Le disque dur doit être branché dans l’emplacement SATA “A” (celui du haut), et je vous conseille d’effectuer un reset complet du Mac. Soit avec la commande classique (command + option + P + R au démarrage) soit en entrant dans l’Open Firmware (command + option + O + F au démarrage) avec les commandes suivantes :

reset-nvram
reset-all
set-defaults

Ensuite… ça devrait démarrer sous Xenon OS. Si ça ne marche pas, ce sujet de forum pourra vous aider. Si la machine se bloque en faisant beaucoup de bruit, vous avez peut-être mal remis la protection transparente. Si vous avez une image grise puis plus rien, tentez de changer d’écran et de prises. Et vérifiez aussi que la manette réagit : avec un modèle de Xbox 360, la LED centrale devrait s’activer et passer sur le joueur 1 (en haut à gauche). Sinon, venez demander ici.

L’OS

Le Xenon Launcher

L’interface de base montre juste les exécutables installés, avec quelques options. Elle se contrôle à la manette, soit avec une manette de Xbox 360, soit avec une manette de Xbox originale (et un adaptateur USB). Les réglages se réduisent au strict minimum : définition (480p, 720p, 1080i), type de sortie, réglages pour le réseau, etc. L’image disque contient quelques programmes, donc la démo Dolphin. Elle existe pour Xbox 360 (.exe) et en émulation de Xbox (.xeb). Il y a aussi quelques autres démos.

Les options


Les options


La démo Dolphin pour Xbox 360 (.exe)


Dolphin


Une scène de test


Le Dashboard de la Xbox 360


Le Dashboard


Le Dashboard


Quitter et revenir au Launcher

En plus de ça, il y a un Dashboard de Xbox 360 (assez ancien) avec quelques options mais surtout beaucoup de fonctions inutilisables. En théorie, il est aussi possible d’utiliser des versions bêta de jeux Xbox 360, mais les rares titres que j’ai trouvé ne se lancent pas. Disons qu’une bêta d’un titre développé à l’époque sur un kit Alpha devrait passer. Je vous mets dans la suite une vidéo avec quelques captures de l’interface.

L’émulateur Xbox

Le SDK comprend un émulateur de Xbox (la première). En théorie, il permet de lancer des images de jeux Xbox (les fameux xbe), en pratique c’est extrêmement aléatoire. Personnellement, pratiquement aucun titre testé ne se lance, en dehors d’une ISO de Dead Or Alive. Vu que des gens indiquent qu’il est possible de lancer Halo (par exemple), je suppose qu’il y a une astuce. Pour le moment, je n’ai pas testé avec un jeu original.

La mise en place nécessite d’abord une carte réseau Intel, et un peu de temps. En effet, la carte Intel est un modèle 100 Mb/s donc les données partent vers le kit de développement au maximum à environ 12 Mo/s. Il faut ensuite trouver un SDK Xbox 360 (le logiciel, je vous laisse chercher) et l’installer sur une machine sous Windows placée sur le même réseau que le kit de développement. Il faut ensuite lancer le Xbox 360 Neighborhood, ajouter le kit en utilisant son adresse IP (affichée sur l’écran d’accueil) et simplement copier les données dans le dossier Game Development Volume (DEVKIT:).

Quand ça ne veut pas


Shenmue II contient des émulateurs de jeux Sega


Space Harrier


Un Dead Or Alive

Une fois que c’est fait, le jeu devrait apparaître sur l’écran d’accueil du kit, avec la possibilité de le lancer. La compatibilité est très aléatoire, donc, et pratiquement aucun de mes essais n’a fonctionné. A noter que Shenmue II ne fonctionne pas, mais que les jeux d’arcade présents dans le jeu (Hang-on, Space Harrier, Outrun et Afterburner) fonctionnent, eux. Ils disposent de leurs propres exécutables. J’ai mis quelques images dans la vidéo.

Vidéos et images

J’ai essayé de capturer quelques images, mais ce n’est pas évident. Le kit démarre en boucle quand il est connecté à la carte d’acquisition, et la seule solution est donc de démarrer avec un écran puis changer la prise. De plus, le changement de définition (du 720p de l’interface au 480p de certains jeux) posent des soucis, donc il y a un peu de montage. Les applications Xbox ne permettent pas (en tout cas je n’ai pas trouvé) de revenir sur l’interface, donc il faut redémarrer périodiquement. Enfin, vous verrez des artefacts dans une des scènes parce que j’ai visiblement mis des fréquences un peu trop élevées pour mon GPU.

Conclusion

Soyons clairs : ça ne sert évidemment à rien de concret en 2019. Il existe des kits de développement plus avancés et cette solution est obsolète. D’un point de vue historique, c’est par contre assez intéressant de voir les choix de Microsoft, assez pragmatiques, lors du développement de la console. Et franchement, avoir un Mac « Property of Microsoft » dans une collection, c’est quand même plutôt fun. Et j’ai clôturé un des plus vieux brouillons de ce blog.