Developpez.com - Rubrique 2D-3D-Jeux

Le Club des Développeurs et IT Pro

La MegaDrive peut reproduire le Mode 7 ! Un talentueux programmeur reproduit Mario Kart sur la console de Sega

Le 2015-12-02 11:48:47, par LittleWhite, Responsable 2D/3D/Jeux
gasega68k est un développeur vraiment acharné et sans doute un adorateur de la console de Sega : la MegaDrive. Il est notamment l'auteur de Wolfenstein 3D :
ou encore d'un remake de F-Zero, un jeu emblématique de Super Nintendo :


Comme vous avez pu le remarquer, ce remake propose un graphisme très proche du jeu original. Notamment, la Super Nintendo a toujours eu l'avantage d'être la seule console de l'époque pouvant avoir de tels graphismes grâce à son « Mode 7 ». Le Mode 7 est un mode graphique dans lequel la console peut transformer le fond (rotation et redimensionnement). Grâce à cette technique, il est possible de créer un effet 3D, sans pour autant avoir un matériel spécialisé et couteux. Pour ceux qui se souviennent de la guerre entre Nintendo et Sega, le Mode-7 était le grand avantage de la Super Nintendo (à tel point qu'un certain passage de Castlevania (passage du grappin) n'est là que pour mettre en avant la puissance de la console) :


Toutefois, gasega68k a poussé la MegaDrive jusqu'à ses derniers retranchements et a reproduit un remake de Mario Kart :


Vous pouvez tester ce niveau sur émulateur ou sur le matériel en téléchargeant la ROM ici.

Votre opinion

Pensez-vous qu'avec une telle fonctionnalité, la MegaDrive aurait écrasé la Super Nintendo ?

Source

Retro Video Gamer
Forum de développement
  Discussion forum
27 commentaires
  • I_Pnose
    Membre chevronné
    Sans dévaloriser le travail d'acharné de ces portages (à première vue très réussis), une telle rom a-t-elle la moindre chance de tourner sur le hardware d'origine ? (un émulateur n'est pas toujours le reflet exact du matériel qu'il simule).

    Envoyé par Sodium
    Quel est l'avantage de ce fameux Mode 7 par rapport à la technologie employée sur Virtua Racing ?
    Là il est question d'une puce embarquée dans la cartouche directement, ça permettait d'obtenir les prémices de rendus 3D (Nintendo a fait pareil sur quelques titres dont Starwing par exemple). Le mode 7, quant à lui, faisait partie intégrante de la console, n'importe quel jeu pouvait en bénéficier sans rajouter une puce coûteuse dans la cartouche.
  • LittleWhite
    Responsable 2D/3D/Jeux
    Très très bien vu Sodium et I_Pnose a déjà repondu.
    En réalité, ils « trichent » un peu, ils utilisent une puce supplémentaire dans la cartouche du jeu pour se donner plus de puissance :
    until 1994 when a cartridge design incorporating the Sega Virtua Processor on an extra chip was created to enable a version on the Genesis/Mega Drive. This chip was extremely expensive to manufacture, leading Sega to price the Genesis version of Virtua Racing unusually high: US$100 in the United States[4] and £70 in the United Kingdom.
    Source

    La ROM de Sega Team Racing est compatible MegaDrive (matos de base, en utilisant un EverDriver, par exemple) et émulateur.
  • Kannagi
    Expert éminent sénior
    Envoyé par emotionengine
    Je tiens à préciser que le Mode 7 n'existe pas sur SNES car on s’arrête au Mode 6. Le Mode 7 est une technique pour faire subir une transformation 3d à un background (via plusieurs transformation 2D à chaque scanline).

    C'est expliqué ici comme ça marche sur GBA en C:
    http://www.coranac.com/tonc/text/mode7.htm
    Je suis désolé de te dire que tu as tort.
    Il y a bel et bien 8 Mode graphique (de 0 à 7) et le Mode 7 existe sur SNES : http://jeux.developpez.com/tutoriels...ntendo/#LIII-D
    Et non le Mode 7 ce n'est pas le scanline et encore moins de la 3D , sur la SNES il y a 6 registres pour le mode 7 pour faire le zoom et rotation et sans scanline je le répète ça donne ça comme effet : http://cdn.horriblenight.com/wp-cont...e7-470x411.png
    Le scanline même s'il est souvent utilisé avec le Mode 7 , cela n'a rien a voir avec le Mode 7 vu que le scanline peut être utilisé sur n'importe quel Mode.
  • goldbergg
    Membre averti
    Je ne suis pas un expert technique au niveaux de la snes, mais le "Mode 7" faisait partie des argument marketing de la console (il me semble même que sa à été créé uniquement pour cette console), je me souvient d'un spot publicitaire en français ou la voix off ventait très clairement le "tous nouveaux Mode 7" pendant qu'a l’écran on voyait différente possibilité (notamment sur Super Castlevania IV avec les effet de rotation).

    Il semblerait même que parler de Mode 7 pour autre chose que la Snes est un abus de langage faisant référence a des technique similaire utilisé par le Mode 7 de la Snes.
  • Dr.Wily
    Nouveau membre du Club
    Rien de bien exceptionnel sur cette démo. Le dev a re-pompé le moteur de scaling que l'on trouve dans Sonic 3D Blast sur la même machine (ça se voit a la façon dont c'est animé et au tramage des tiles). Rien d’exceptionnel également dans le sens ou la MD a vue mieux en terme de scaling avec Batman & Robin ou Gunstar Heroes qui utilisent tous 2 ce genre d'effets.
  • Sodium
    Membre extrêmement actif
    Quel est l'avantage de ce fameux Mode 7 par rapport à la technologie employée sur Virtua Racing ?

  • goldbergg
    Membre averti
    Quel est l'avantage de ce fameux Mode 7 par rapport à la technologie employée sur Virtua Racing ?
    Le mode 7 c'est pas de le 3D (donc pas besoin de puce 3D), c'est de la 2D avec un affichage spécial.
    La SNES gérait en natif le mode 7 (donc tous les jeux pouvais en jouir)

    Virtua Racing, tous comme bien d'autre jeux tel que doom par exemple, utilisait une puce 3D qui était intégré dans la cartouche (donc plus chère a produire).
    Du coté de Nintendo la puce était le "Super FX" et chez Sega le "Sega Virtua Processor".
  • neocps1
    Membre à l'essai
    Pas super compliqué, il s'agit de mettre à jour les registres de position des plans de scrolling
    sous interruption par ligne.
  • Kannagi
    Expert éminent sénior
    Envoyé par neocps1
    Pas super compliqué, il s'agit de mettre à jour les registres de position des plans de scrolling
    sous interruption par ligne.
    Je demande a voir
    Et je demande aussi plus de détails sur ta solution , je connais peu la megadrive , mais j'ai deja codé un peu sur Master system donc j'ai a mon avis un aperçu de la megadrive.
    Ensuite cela ne m'étonne pas la Megadrive avait un bon processeur 16/32 bits un 68000 cadencé à 7,6 Mgz , et franchement le 68000 c'est vraiment un bon assembleur.

    Si on le compare a sa concurrente la SNES 2,68 Mgz , c'est vraiment peu avec son processeur 8/16 bits 65816 , et franchement c'est un processeur simple mais franchement il a ce défaut de ne pas être confortable surtout que l’architecture de la SNES n'est pas des plus simple.
    Quoiqu'en dise la SNES avait l'avantage d'avoir 32000 couleur différente contre 512 contre la megadrive et quelque fois on sent cette différence de couleur.
  • neocps1
    Membre à l'essai
    Bon j'ai un peu abusé en disant que ce n'était pas compliqué.

    technique 1 :

    - changer l'adresse des données du plan de scroll par scanline en se basant sur une LUT (LookUp Table) calculée pour simuler un effet de zoom vertical
    - pour chaque scanline par contre, il faut trouver un moyen de changer de façon artificielle le pixel clock pour zoomer horizontalement.

    technique 2 :

    vu que les tiles sont dynamiques (modifiables à volonté par le 68k), simuler un framebuffer via des tiles, et effectuer un rendu traditionnel mode 7 dans ce framebuffer qui est ensuite converti sous forme de tiles.

    Vient le problème du nombre limité de couleurs par tile. Mais en 16 couleurs ca laisse des possibilités.

    Je penche pour la deuxième solution, plus réaliste (la synchronisation par ligne sans interruption reste compliqué et bouffe du temps cpu pour rien, ce qui en laisse encore moins pour l'IA du jeu)