GTA Vice City sur Dreamcast - L'exploit impossible des fans
Si vous pensez que ressusciter votre vieux Tamagotchi était impressionnant, préparez-vous à ramasser votre mâchoire au sol puisque des développeurs fous viennent de faire tourner GTA Vice City sur Dreamcast, avec un framerate qui ferait pleurer la PS2 d’origine. Oui, cette même Dreamcast que Sega a enterrée en 2001, pendant que vous dansiez encore sur ‘Lady Marmalade’ de Christina Aguilera.
Avant tout, il faut savoir que Rockstar avait initialement prévu GTA3 sur Dreamcast avant d’annuler le projet. Donc pour rétablir l’équilibre de l’univers, Falco Girgis et son équipe ont décidé de porter tout d’abord GTA3 puis Vice City sur Dreamcast. Faire tourner un monde ouvert massif sur une console avec seulement 16 Mo de RAM (oui, vous avez bien lu, MÉGA-octets), est-ce possible ?
Et bien ils y sont parvenus !! D’abord en utilisant GCC 14.2.0, le dernier compilateur en date, avec support de C++20… mais le coup de génie, c’est leur stratégie d’optimisation hybride. Ils ont compilé la majorité du code avec l’option -Os
(qui privilégie la taille réduite) et seulement les parties critiques comme le rendu 3D ou la physique avec -O3
(qui optimise la vitesse). Comme ça, ils gagnent plus d’un méga-octet d’espace tout en gardant les performances d’une optimisation complète.
La Dreamcast cache aussi des trésors dans son processeur SH4 que l’équipe a su exploiter à fond. Ils utilisent des flags comme -mfsra/-mfsca
et -ffast-math
pour activer des instructions spéciales pour les calculs de sinus, cosinus et racines carrées inversées – des trucs dont un moteur 3D raffole. Ces instructions font des approximations qui sacrifient un poil de précision pour un ÉNORME gain de vitesse. C’est comme dire “3,14” au lieu de “3,14159265359” – aucun joueur ne verra la différence, mais votre CPU vous remerciera.
Et le truc qui m’a fait tomber de ma chaise, c’est qu’ils ont implémenté un anti-aliasing 2x horizontal en plein écran ! En gros, ils doublent la résolution horizontale pour lisser les bords des objets. Et comme le jeu est limité par le CPU et non par le GPU, cet anti-aliasing est quasiment “gratuit” en termes de performances. Ils ont juste dû réduire légèrement les effets de pluie et rendre le flou de mouvement optionnel.
Résultat : Vice City sur Dreamcast a souvent l’air MIEUX que sur PS2. Prends ça dans les dents, Sony !
Et ils n’ont pas oublié les petits détails qui font plaisir aux fans de la Dreamcast : le VMU (cette petite carte mémoire avec écran) affiche également des infos utiles comme la santé, les armes ou même le FPS en temps réel. Un développeur a même créé des animations pixel art personnalisées pour les icônes de sauvegarde. A ce tarif, ce n’est pas un simple portage mais déclaration d’amour à la console.
Maintenant, si vous avez une Dreamcast qui prend la poussière et l’envie soudaine de parcourir Vice City comme en 2002 mais en mieux, c’est plutôt simple : procurez-vous une copie du jeu (en alpha pour l’instant) sur les forums dédiés, gravez l’image sur un CD-R à basse vitesse (4x idéalement), et c’est parti ! Les possesseurs de GDEmu ont la vie encore plus facile puisqu’il leur suffit de copier juste le fichier .GDI sur leur carte SD. Et pour une expérience optimale, désactivez le flou si vous activez l’anti-aliasing 2x, et branchez votre console en VGA pour la meilleure qualité d’image.
La version actuelle est déjà tellement stable qu’au moins un testeur a terminé le jeu complet jusqu’aux crédits de fin ! Bref, l’équipe continue de peaufiner le portage, alors suivez Falco Girgis sur Twitter (@falco_girgis) pour les dernières updates ou mieux, si vous êtes développeur, pourquoi ne pas contribuer au projet ? C’est open source après tout.
Bref, vous l’aurez compris, les portages de GTA3 et Vice City sur Dreamcast ne sont pas seulement des prouesses techniques, mais aussi un exemple parfait de ce qui peut être fait quand la passion et l’expertise technique unissent leurs forces !! La Dreamcast continue ainsi de prouver, 25 ans après sa sortie, qu’elle avait encore beaucoup à offrir.