2 points par GN⁺ 2025-01-01 | 1 commentaires | Partager sur WhatsApp
  • dca3-game est un portage de GTA III/VC pour Dreamcast réalisé par The Gang, un projet visant à faire tourner les jeux open world de Rockstar sur une ancienne console
  • Le portage repose sur re3, le code source entièrement rétro-ingénieré de GTA III/VC, et utilise KallistiOS comme environnement de développement Dreamcast
  • Pour créer un CDI, il faut disposer d’une installation de Grand Theft Auto III ou de Grand Theft Auto: Vice City ; la version testée est Grand Theft Auto: The Trilogy
  • La méthode recommandée passe par Google Notebook ; la méthode manuelle nécessite DreamSDK r3 et git-scm, et n’est pas adaptée aux utilisateurs occasionnels
  • Dans les émulateurs, il faut désactiver l’option trails pour éviter une surcouche blanche ; le 24 bpp et l’Anti Aliasing restent des réglages expérimentaux

Nature de dca3-game

  • dca3 est un portage de GTA III/VC pour Dreamcast
  • Il a été créé par The Gang et repose sur re3
  • re3 est le code source entièrement rétro-ingénieré de GTA III/VC
  • Le projet a été lancé par Stefanos Kornilios Mitsis Poiitidis et utilise KallistiOS

Création du CDI : Google Notebook recommandé

  • La création du CDI via Google Notebook est la méthode recommandée
  • Une installation de Grand Theft Auto III ou de Grand Theft Auto: Vice City est nécessaire
  • La version testée et fonctionnelle est Grand Theft Auto: The Trilogy
  • Pour GTA III, suivez les instructions du notebook Google Colab
  • Pour GTA:VC, suivez les instructions du notebook Google Colab

Création du CDI : méthode manuelle

  • La méthode manuelle n’est pas recommandée aux utilisateurs occasionnels
  • Une installation de Grand Theft Auto III ou de Grand Theft Auto: Vice City est nécessaire
  • Certaines versions peuvent ne pas fonctionner, et des cas de fichier d4_gta.mp3 corrompu ont été constatés
  • Une copie authentique sans fichiers corrompus est nécessaire, sans quoi le processus ne fonctionnera pas
  • Outils nécessaires :
  • Clonez le dépôt depuis le shell DreamSDK avec git clone --branch beta https://gitlab.com/skmp/dca3-game.git

Build de GTA III : liberty

  • Créez un dossier liberty et copiez-y les fichiers de GTA III
    • Si vous utilisez la version sur 2 CD-ROM, il faut aussi copier le contenu du play disc dans le même dossier
  • Téléchargez le liberty prebuilt elf depuis la version bêta et extrayez dca-liberty.elf dans le dossier dreamcast
  • Le CDI pour GD-EMU se génère avec make cdi-prebuilt
    • L’opération prend environ 5 à 15 minutes
    • En raison d’un problème avec DreamSDK, la première exécution peut ne pas aller jusqu’au bout ; il faut alors relancer la même commande
    • Une fois terminé, dca-liberty.cdi est généré et sa taille est d’environ 900 Mo
  • Le CDI destiné à la gravure sur CD-ROM se génère avec make FOR_DISC=1 cdi-prebuilt
    • Le message de fin est *** CDI Baked Successfully***
    • Le fichier obtenu doit faire environ 700 Mo ou 260 Mo
    • Si la taille ne correspond pas, exécutez rm -rf repack-data, puis recommencez cette étape depuis le début

Build de GTA Vice City : miami

  • Créez un dossier miami et copiez-y les fichiers de GTA:VC
  • Téléchargez le miami prebuilt elf depuis la version bêta et extrayez dca-miami.elf dans le dossier dreamcast
  • Le CDI pour GD-EMU se génère avec FOR_DISC=2 make cdi-prebuilt
    • L’opération prend environ 5 à 15 minutes
    • En raison d’un problème avec DreamSDK, la première exécution peut ne pas aller jusqu’au bout
    • Il peut être nécessaire de fermer plusieurs fois la fenêtre DreamShell et de recommencer la procédure
    • Une fois terminé, dca-miami.cdi est généré et sa taille est d’environ 1,5 Go
  • Le CDI destiné à la gravure sur CD-ROM se génère avec make FOR_DISC=1 cdi-prebuilt
    • Le message de fin est *** Repack Completed Successfully***
    • Le fichier obtenu fait environ 700 Mo ou 550 Mo

Exécution et réglages graphiques

  • Lors de l’exécution dans un émulateur, il faut désactiver l’option trails dans les réglages graphiques
    • Si trails est activé, une surcouche blanche peut apparaître au-dessus du rendu 3D
  • Les réglages graphiques comportent deux modes expérimentaux
    • 24 bpp : 640x480x24
    • Anti Aliasing
  • Sur sortie HDMI ou VGA, il est recommandé d’activer le mode 24 bpp
    • Même dans ce cas, l’effet trails doit être désactivé
  • L’Anti Aliasing fonctionne avec ou sans trails
    • Lorsque trails est activé, l’impact sur les performances est plus important
  • Si le 24 bpp ou l’Anti Aliasing est activé, certaines géométries peuvent manquer dans les scènes lourdes
    • C’est plus probable en mode AA
    • Les deux modes peuvent être utilisés ensemble

Signalement des problèmes et licence

  • Pour signaler un problème, prenez des photos du téléviseur/moniteur et du VMU, puis ouvrez un nouveau ticket pour décrire le problème
  • Le code ne doit être utilisé qu’à des fins éducatives, de documentation et de modding
  • L’utilisation de copies pirates ou l’usage commercial ne sont pas recommandés
  • Les travaux dérivés doivent rester open source et attribuer les crédits appropriés

1 commentaires

 
GN⁺ 2025-01-01
Avis sur Hacker News
  • Il vaudrait mieux conserver quelque part une copie du code source avant que le service juridique de Rockstar ne le fasse retirer, comme à l’époque de re3
    https://news.ycombinator.com/item?id=28402640
    https://news.ycombinator.com/item?id=26199879

    • Au moins, re3 est de nouveau en ligne sous une forme ou une autre
      https://github.com/halpz/re3/
    • Le moteur de re3 exige une copie du jeu pour fonctionner, donc je ne vois pas bien pourquoi ils iraient jusqu’à le faire retirer
    • RE3 est le résultat d’une ingénierie inverse : une implémentation compatible ABI dérivée du code et de la logique d’origine
      Ce domaine a toujours été une zone grise, voire franchement proche de l’illégalité, et c’est précisément pour cela que Compaq disait avoir recréé le BIOS en clean room en 1982
      À chaque fois que j’entends ce genre de plainte, je lève les yeux au ciel. Si l’on fait une implémentation clean room comme OpenRA, on est juridiquement assez protégé, mais si l’on utilise la propriété intellectuelle d’autrui, il suffit d’attirer un peu trop l’attention pour se faire couper rapidement
  • J’aurais aimé que la Dreamcast dure plus longtemps. Beaucoup de gens ont sous-estimé à quel point cette console était excellente
    Cela dit, je pense que Sega est largement responsable de ne pas avoir assez poussé le système. À mon avis, le hardware était bien supérieur à celui de la PS2 sortie la même année, et Sega semble ne pas avoir suffisamment pris en compte le prix de la Dreamcast par rapport aux machines concurrentes
    Bien sûr, la Xbox a fini par sceller son destin

    • La PS2 est sortie plus d’un an plus tard au Japon, et quelques mois après la DC en Amérique du Nord, mais comme elle est arrivée pendant les fêtes, c’était en pratique une sortie de l’année suivante. Malgré tout, sa seule annonce a déjà fortement affaibli le lancement de la DC
      J’adore la Dreamcast, j’en ai plusieurs, j’ai même bricolé dessus avec KallistiOS à l’époque, et elle compte pour moi bien plus que la PS2, mais il n’est pas vrai que son hardware était massivement supérieur
      Le GPU avait des fonctions intéressantes, et la VRAM ainsi que la compression de textures matérielle étaient appréciables, donc l’image était meilleure, mais sur la plupart des indicateurs plus importants — traitement géométrique, éclairage, fill rate — elle était en retrait, et à l’époque la majorité des gens n’utilisaient même pas la sortie VGA
      L’“Emotion Engine” était clairement plus encombrant que l’architecture élégante où le SH-4 était simplement relié au PowerVR et à l’AICA, mais il permettait d’extraire davantage de performances en géométrie SIMD/virgule flottante brute et en DMA. La simplicité de l’architecture n’avait pas grande importance pour la majorité des joueurs
      Certains titres du début semblaient médiocres parce que le hardware était difficile à exploiter, mais quand on regarde la durée de vie de la PS2 et ses jeux de fin de génération, en particulier ceux de Konami, elle a largement dépassé ce que la DC pouvait faire. Le DVD était aussi objectivement supérieur au GD-ROM et faisait un bon lecteur de films
      La Xbox est sortie après que Sega avait déjà abandonné la Dreamcast, donc son sort était déjà réglé avant cela
      Sony a certes exagéré les performances de la PS2, mais elle avait un lecteur DVD, les graphismes sont devenus meilleurs une fois que les développeurs se sont familiarisés avec la machine, et elle disposait de franchises fortes ainsi que de davantage de titres de tout premier plan. La Dreamcast dépendait beaucoup trop des portages d’arcade
      Dans un marché où le gagnant rafle tout, la Dreamcast en a simplement fait les frais, et si elle était sortie en 1998 avec une ludothèque plus fournie, elle aurait peut-être eu plus de marge pour tenir
    • La PS2 avait la lecture DVD, le soutien d’énormes franchises populaires et l’élan très positif de la PS1
      Je ne sais pas exactement comment elle se comparait à la Dreamcast en performances pures, mais face à la GameCube et à la Xbox, la PS2 était clairement la moins bonne sur ce plan. Au final, cela n’a pas eu d’importance grâce aux jeux et à la lecture DVD
    • La Xbox est sortie bien après l’arrêt de la DC. En plus, certaines personnes impliquées dans la DC ont aussi participé à la Xbox
      D’une certaine manière, on pourrait voir la Xbox comme une Dreamcast 2
    • Je me demande sur quels aspects on considère le hardware de la Dreamcast comme si massivement supérieur. Dans mon souvenir, le CPU était plus lent, le GPU aussi, et il y avait moins de mémoire
    • Le prix de lancement de la Dreamcast en septembre 1999 était de 199 dollars sur le marché américain
      Le prix de lancement de la PlayStation 2 en mars 2000 était de 299 dollars sur le marché américain
      https://en.wikipedia.org/wiki/Dreamcast
      https://en.wikipedia.org/wiki/PlayStation_2
      Donc la Dreamcast était bien moins chère que la PlayStation 2. Je ne sais pas si tu voulais dire qu’elle était moins chère plutôt que plus chère, ou s’il y a un détail que j’ai raté
  • Lecture intéressante : l’histoire du développement de la trilogie GTA et de GTA IV [0]

    le premier prototype de gta3 tournait sur Dreamcast. Nous avions tous une Dreamcast et jouions à Phantasy Star Online. Mais la Dreamcast n’a pas tenu longtemps face à la Playstation 2, alors nous avons changé de cap.
    [0] https://web.archive.org/web/20231120194646/https://insideroc...

  • Des captures d’écran sont disponibles ici
    https://dca3.net/screenshots/

    • Oui, ça ressemble exactement à des captures d’écran de GTA3
  • À part ça, un chouette jeu Sonic 3D pour Sega 32X vient tout juste de sortir. C’est un portage de “Sonic Robo Blast 2”, basé sur Doom

    • Ça faisait vraiment longtemps que je n’avais pas entendu ce nom. Ça doit bien remonter à une vingtaine d’années
  • Modern Vintage Gamer a publié une excellente vidéo sur cette sortie, la qualifiant pratiquement de portage le plus impressionnant qu’il ait jamais vu
    https://www.youtube.com/watch?v=6MFN7QiF83M

  • Le retrogaming informatique est vraiment formidable. Ça renverse complètement l’idée même de « vieille console »
    Au lieu de perdre de la valeur parce qu’il existe de meilleures options, cela devient en quelque sorte un ordinateur immuable que les développeurs peuvent cibler pour toujours
    Les consoles déjà produites continueront à survivre bien plus longtemps. Ma N64 fonctionne encore très bien, et je lance de nouveaux ROM hacks avec un Everdrive
    Et même si tout le matériel finit par tomber en panne, les émulateurs continueront d’exister en préservant cette architecture dans un état immuable
    Avant, je me demandais « pourquoi créer de nouveaux logiciels pour de vieilles consoles », mais vu sous cet angle, ça me paraît aussi intéressant, voire plus, que de développer pour du matériel moderne

    • Tout à fait d’accord, et j’irais même plus loin : les anciennes consoles et les vieux ordinateurs sont à mes yeux les seules machines virtuelles susceptibles de survivre longtemps
      Si nous existons encore dans 500 ans, je crois qu’un code ciblant la NES aura plus de chances de pouvoir être exécuté qu’un code visant les navigateurs, .NET ou la JVM d’aujourd’hui
      Les machines virtuelles concurrentes sont bien documentées, mais extrêmement complexes, et le code qui tourne dessus tend à dépendre du comportement particulier des systèmes d’exploitation, des navigateurs, voire du matériel actuel
      De plus, le matériel rétro lui-même constitue la documentation ultime. Aujourd’hui, avec des équipements accessibles, on peut inspecter toutes les puces et en faire des répliques parfaites en logiciel ou sur FPGA. À l’inverse, la documentation d’une machine virtuelle peut contenir des imprécisions
      Ma prédiction de science-fiction du jour, c’est que seuls les logiciels visant des architectures relativement simples résisteront à l’épreuve du temps
    • Le matériel finit par tomber en panne avec le temps, probablement à cause de choses comme les condensateurs qui fuient
      Des passionnés et des ateliers de réparation pourront en maintenir une partie en vie pendant un moment, et des entreprises comme PCBWay pourront peut-être fabriquer des pièces de rechange
      Cela dit, je suis tout à fait d’accord sur l’importance des émulateurs. Ils permettent de continuer à découvrir ce genre de choses même quand le matériel n’est plus pratique à utiliser
      Et ils permettent aussi d’essayer une énorme variété de jeux sans avoir à se déplacer ni à expédier quoi que ce soit. J’aimerais aussi tester une solution FPGA un jour, surtout si elle peut gérer les save states
    • La Dreamcast survivra probablement longtemps, mais l’époque où l’on joue à des jeux sur disque optique ne durera pas éternellement
      La Dreamcast utilisait un format à double densité du standard Yellow Book, et quand mon lecteur est tombé en panne, il m’a coûté bien moins cher de passer à une option basée sur de la mémoire flash que d’acheter un lecteur de remplacement
    • D’après ce que j’en comprends, la Dreamcast avait l’une des architectures les plus simples de sa génération. Sega avait appris de l’architecture monstrueuse de la Saturn, donc elle devait être un bon terrain pour le homebrew
      Le GPU reposait aussi sur une première conception PowerVR, donc il y a peut-être moyen de réutiliser des connaissances modernes sur les GPU mobiles au lieu de viser les architectures propriétaires de la GameCube ou de la PS2
      Bien sûr, la première Xbox était en pratique un PC, donc porter des jeux PC dessus devait être plus simple, ce qui la rend moins pertinente dans cette discussion
    • Les gens qui modifient des machines rétro pour leur donner une forme plus « moderne » sont aussi assez incroyables côté hardware
      Ce fou a fabriqué une PS4 portable : https://youtu.be/bJSLscnFd_M
  • Je me demande si GTA III avait été codé à l’origine de manière compatible avec la Dreamcast, au point qu’il ne restait plus qu’à remettre en ordre les connexions restantes, ou si quelqu’un a réécrit d’énormes portions du moteur, voire la totalité, pour le rendre compatible Dreamcast

    • C’est plus proche du second cas. J’ai suivi le développement, et l’un des trucs utilisés a été de convertir la géométrie des modèles de listes de triangles en triangle strips, plus adaptés au PowerVR
      Cela a permis d’envoyer les triangles plus rapidement au matériel, et le framerate a augmenté en conséquence
      https://x.com/falco_girgis/status/1821266502412075174?lang=e...
      Au passage, Falco est assez drôle. Il écrit souvent sur la Dreamcast comme si les guerres de consoles de cette génération se déroulaient en ce moment même
    • C’est un portage du moteur issu du projet de décompilation RE3. Il a fallu modifier énormément de choses pour le faire tourner
    • Le fait que GTA III ait été développé avec RenderWare, un moteur de jeu bien connu, a aussi aidé
  • Voici une vidéo tournant sur du matériel Dreamcast
    https://youtu.be/6MFN7QiF83M?si=kYSxVa0N2GDsrAfP

  • Y a-t-il une capture de gameplay enregistrée sur le matériel réel ?