COMPTOIR
  
register

Quake sur GameBoy Advance : quand on veut, on peut !

Amis Comptoiresque nostalgiques bonjour ! Les plus de 30 ans de nos lecteurs se souviendront peut-être d’une époque révolue, à savoir l’année 1996 qui — outre la naissance de votre humble serviteur — a également assisté à la sortie de Quake, une référence en matière de FPS en ligne (série également responsable du fast inverse square root, pour les connaisseurs). Du fait du succès du titre, le bousin a été porté sur un sacré tas de consoles de l’époque, incluant la Nintendo 64 et la Sega Saturn — une version PS1 ayant été finalisée, mais jamais publiée faute d’éditeur. Hé bien, une version GameBoy Advance a également été concoctée, œuvre d’un unique développeur, Randy Linden ; déjà réputé pour son adaptation de Doom sur SNES.

 

Présenté en 2002 (année de son développement) à l’éditeur originel du titre, Id Software, le portage a été rejeté, soit pour cause de manque d’intérêt de la console dépourvue de fonctionnalités réseau compatibles ou d’absence d’intérêt de la firme à ressortir un jeu vieux de 6 ans à l’époque, surtout vu la vitesse galopante d’évolution des titres vidéoludiques au début des années 2000.

 

 

Pour autant, techniquement, ce portage est tout bonnement impressionnant : le moteur a été entièrement réalisé sur mesure, qui sera plus tard réutilisé par le titre Cyboid du monsieur. Notez qu’aucune ressource du Quake original n’a été réutilisée pour ce portage, bien qu’une version (encore non retrouvée) en faisant usage existerait également. Entre le support de la course, de la nage, des animations et le rendu fluide en 3D, la prouesse est impressionnante — la GBA n’ayant qu’un minuscule CPU Arm à 16,78 MHz sans accélérateur graphique, et 128 + 256 Kio de RAM divisés entre vidéo et système : à peine plus qu’une SNES ! Bref, une prouesse technique de taille, qui retrouve enfin — en partie — ses lettres de noblesse 20 ans plus tard… sacrée histoire. (Source : NotebookCheck)

Un poil avant ?

Kioxia en tient toujours une couche et expérimente avec de la NAND Hepta-Level Cell...

Un peu plus tard ...

La tour blanche a besoin d'une RX 6650 XT assortie ? Powercolor est là !

Les 11 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par Helba, le Lundi 20 Juin 2022 à 06h23  
par Jemporte, le Lundi 20 Juin 2022 à 00h28
La SuperNES avait le CPU d'un Apple IIgs, un 16 bits Fairchild, donc pas tout à fait un Macintosh. Le Macintosh avec un 16/32 bits Motorola 68000 à se débuts (ses déclinaisons supérieures par la suite). La Megadrive avait aussi un 68000.
Tout ça c'est du CISC de base !
ARM7 de la GBA c'est du RISC pur de 32bits. Y'a pas photo avec le 16 bits de la SuperNes, même pas terrible pour du 16 bits.
Ce que tu dis n'a aucune importance sur la comparaison de ces proc niveau perf,tu nous refait le même marketing que l'époque : 64 bits, c'est mieux que 32 bits , et qui est meilleurs que le 16 bits en performance..

Ce qui est totalement faux en passant (en partie),surtout que la plupart des jeux de l'époque utilisait les opérations sur 16 bits , même la PS1 faisait de la 3D sur 16 bits (même si son CPU est 32 bits).
Si les jeux en 2D (ou même en 3D) ne pouvait pas se faire en 16 bits et utilisait obligatoirement du 32 bits alors oui la différence serait là.
Mais comme ce n'est pas le cas
Et c'est pareil pour du 64 vs 32 bits , le 64 bits n'apporte aucun réel gain niveau perf, parce que sur ce coup les opérations 64 bits sont vraiment rare.

 

Par contre sous PC avec MSDOS il était demandé 8Mo de RAM et là on n'a que 300Ko au maximum... et alors que le x86 est réputé plus économique que l'ARM en instructions pour écrire le même programme (normal quand c'est du CISC vs RISC).

Que l'exécutable soit plus gros en ARM, c'est relativement ridicule comme différence , c'est pas ça qui te fait économisé en RAM.
Surtout que l'ARM de la GBA possède le mode thumb (qui permet d'avoir les opcodes sur 16 bits ).
par Jemporte, le Lundi 20 Juin 2022 à 00h28  
par lorenzolegonzo en Île-de-France, le Samedi 18 Juin 2022 à 20h55
les chiffres que tu donnes ne semblent pas refléter les vraies caractéristiques de fréquence de CPU de ces consoles:
GBA : 16,8 MHz
NEO GEO : 12 MHZ
MEGADRIVE 7.67 MHZ
SUPER NES : 3.58 MHZ nominal (2.68 et 1.79 dans certains modes).
source: wikipedia.
Je ne vois pas d'où tu tiens que la GBA à un processeur 8 fois plus rapide que la neo geo ...

Ce qui est certain c'est que le processeur de la superNES était bien faiblard.
Bon, pour faire plus simple. La SuperNES avait le CPU d'un Apple IIgs, un 16 bits Fairchild, donc pas tout à fait un Macintosh. Le Macintosh avec un 16/32 bits Motorola 68000 à se débuts (ses déclinaisons supérieures par la suite). La Megadrive avait aussi un 68000.
Tout ça c'est du CISC de base !
ARM7 de la GBA c'est du RISC pur de 32bits. Y'a pas photo avec le 16 bits de la SuperNes, même pas terrible pour du 16 bits.
A noter que la VRAM de la GBA, de 96Ko est intégrée. L'écran est de160x240 pixels. Du coup la vitesse d'affichage de la video n'est plus un problème ! Donc pas besoin de GPU spécialisé et d'interface spéciale pour le bitblt.
La performance est dans l'usage de ces moins de 300Ko de RAM utilisable.
Si on compare au PC qui fait tourner de façon fluide sans accélération Quake en 200x320 avec un 486/33, on voit bien que c'est jouable avec un ARM 16Mhz en 160x240.
Par contre sous PC avec MSDOS il était demandé 8Mo de RAM et là on n'a que 300Ko au maximum... et alors que le x86 est réputé plus économique que l'ARM en instructions pour écrire le même programme (normal quand c'est du CISC vs RISC)..
par Helba, le Dimanche 19 Juin 2022 à 09h42  
par lorenzolegonzo en Île-de-France, le Dimanche 19 Juin 2022 à 09h31
Ok, au temps pour moi pour le mauvais raccourci entre fréquence et puissance. Merci pour ces précisions.
Une question que je me pose qd même: Si la GBA est si puissante comparé à SNES, comment expliquer qu'elle propose des graphismes qui me semblent au final très proche du niveau de qualité de qu'on peux trouver sur une SNES ? (même si la GBA gère bien mieux les jeux en 3D ainsi qu'un plus grand nombre de sprites sans ralentir dans les jeux 2D).
Pas de soucis
D'ailleurs je relis l'article qui est assez faux "sans accélérateur graphique" ,pourtant il y'en a bien un !
Si je le précise ,c'est que le PPU (équivalent du GPU ) , de la SNES et GBA sont assez proche.
Celui de la GBA a juste 4 Layers et 2 fois plus de palettes mais le meme nombre de Sprite possible, mais une réso inférieur à la SNES.
D'où le pourquoi ,on a l'impression que c'est à "peine" mieux qu'une SNES.

Pour faire plus simple, si tu regarde une Neo Geo , son CPU est pas incroyablement plus puissant qu'une MD , et bien inférieur à une GBA.
Pourtant la Neo Geo permet bien plus en terme de 2D , parce que justement son GPU permet d'afficher beaucoup de sprite , et à juste 256 palette !

Âpres je pense que la plupart des jeux GBA pour la 2D n'ont pas voulu être "ambitieux" dans le sens en mettre plein la vue.
C'était au final une SNES survitaminé , où on pouvait faire un jeux de qualité SNES ,sans se fouler ^_^
(Parce que les gros jeux de la SNES ça a demandé bien plus d'effort crois moi ).
par lorenzolegonzo en Île-de-France, le Dimanche 19 Juin 2022 à 09h31  
par Helba, le Samedi 18 Juin 2022 à 23h31
La fréquence est différent d'instruction par cycle
Si la fréquence représente a puissance d'une machine , on s'emmerderait pas a améliorer la micro architecture depuis 30 ans

Donc la SNES a une puissance de 1 MIPS (millions instruction par seconde)
la MD de 1,4 MIPS
la Neo Geo de 2 MIPS
La GBA de 16 MIPS

Mais je te trouve assez "hautain" sachant que ta comparaison a pas de sens et fausse,si tu traîne ici , tu saurais que la fréquence n'est pas une comparaison fiable,sinon tu achète juste le processeur qui a le plus de fréquence (genre une Pentium 4 ? ) , pourtant c'est pas ce qu'on fait.

"SUPER NES : 3.58 MHZ nominal (2.68 et 1.79 dans certains modes)."
Alors non , ça dépend pas des "modes" , la SNES tourne pour 90% de ces jeux en full 2.68 MHZ (donc le 3.58 n'est pas nominal), et ne tournera jamais à 3.58 MHz tout le temps !
Je m'explique , la SNES sa fréquence change selon ce qu'elle lit , si le processeur lit le joypad , il tournera à 1.79 MHz.
S'il lit la ROM ou la RAM à 2.68 MHZ.
Si y'a une FastROM , alors quand il lira la ROM il sera à 3.58 MHZ (et 2.68 MHZ quand c'est la RAM)
Ok, au temps pour moi pour le mauvais raccourci entre fréquence et puissance. Merci pour ces précisions.
Une question que je me pose qd même: Si la GBA est si puissante comparé à SNES, comment expliquer qu'elle propose des graphismes qui me semblent au final très proche du niveau de qualité de qu'on peux trouver sur une SNES ? (même si la GBA gère bien mieux les jeux en 3D ainsi qu'un plus grand nombre de sprites sans ralentir dans les jeux 2D).
par Helba, le Samedi 18 Juin 2022 à 23h31  
par lorenzolegonzo en Île-de-France, le Samedi 18 Juin 2022 à 20h55
les chiffres que tu donnes ne semblent pas refléter les vraies caractéristiques de fréquence de CPU de ces consoles:
GBA : 16,8 MHz
NEO GEO : 12 MHZ
MEGADRIVE 7.67 MHZ
SUPER NES : 3.58 MHZ nominal (2.68 et 1.79 dans certains modes).
source: wikipedia.
Je ne vois pas d'où tu tiens que la GBA à un processeur 8 fois plus rapide que la neo geo ...
La fréquence est différent d'instruction par cycle
Si la fréquence représente a puissance d'une machine , on s'emmerderait pas a améliorer la micro architecture depuis 30 ans

Donc la SNES a une puissance de 1 MIPS (millions instruction par seconde)
la MD de 1,4 MIPS
la Neo Geo de 2 MIPS
La GBA de 16 MIPS
par lorenzolegonzo en Île-de-France, le Samedi 18 Juin 2022 à 20h55
Je ne vois pas d'où tu tiens que la GBA à un processeur 8 fois plus rapide que la neo geo ...
Mais je te trouve assez "hautain" sachant que ta comparaison a pas de sens et fausse,si tu traîne ici , tu saurais que la fréquence n'est pas une comparaison fiable,sinon tu achète juste le processeur qui a le plus de fréquence (genre une Pentium 4 ? ) , pourtant c'est pas ce qu'on fait.

"SUPER NES : 3.58 MHZ nominal (2.68 et 1.79 dans certains modes)."
Alors non , ça dépend pas des "modes" , la SNES tourne pour 90% de ces jeux en full 2.68 MHZ (donc le 3.58 n'est pas nominal), et ne tournera jamais à 3.58 MHz tout le temps !
Je m'explique , la SNES sa fréquence change selon ce qu'elle lit , si le processeur lit le joypad , il tournera à 1.79 MHz.
S'il lit la ROM ou la RAM à 2.68 MHZ.
Si y'a une FastROM , alors quand il lira la ROM il sera à 3.58 MHZ (et 2.68 MHZ quand c'est la RAM)
par lorenzolegonzo en Île-de-France, le Samedi 18 Juin 2022 à 20h55  
par Helba, le Samedi 18 Juin 2022 à 07h05
"

Je peux vous assurez que le gaps technique est ultra important entre une SNES et une GBA.
La GBA est est une des machines 2D la plus puissante , son CPU est 16 fois plus rapide que la SNES et 8 fois plus que la Neo Geo. (donc le à "peine" )
les chiffres que tu donnes ne semblent pas refléter les vraies caractéristiques de fréquence de CPU de ces consoles:
GBA : 16,8 MHz
NEO GEO : 12 MHZ
MEGADRIVE 7.67 MHZ
SUPER NES : 3.58 MHZ nominal (2.68 et 1.79 dans certains modes).
source: wikipedia.
Je ne vois pas d'où tu tiens que la GBA à un processeur 8 fois plus rapide que la neo geo ...

Ce qui est certain c'est que le processeur de la superNES était bien faiblard.
par Jemporte, le Samedi 18 Juin 2022 à 09h27  
Il y avait Quake sur mon smartphone Nokia e65 64Mo de RAM avec un CPU ARM un peu plus puissant et toujours pas de GPU intégré. Et je pense que sur la série précédente de Nokia sous Symbian donc autour des années 2004 le faisaient aussi.

Pour info Quake était fluide sur un PC 486 33 Mhz avec 8 Mo de RAM sous MS-DOS une carte graphique non accélérée en affichage 200x320 et c'était jouable avec la même config en VESA 480x640.
par Helba, le Samedi 18 Juin 2022 à 07h05  
" GBA n'ayant qu'un minuscule CPU Arm à 16,78 MHz sans accélérateur graphique, et 128 + 256 Kio de RAM divisés entre vidéo et système : à peine plus qu'une SNES?!"

Je peux vous assurez que le gaps technique est ultra important entre une SNES et une GBA.
La GBA est est une des machines 2D la plus puissante , son CPU est 16 fois plus rapide que la SNES et 8 fois plus que la Neo Geo. (donc le à "peine" )
Elle a 2 fois plus de RAM et de VRAM.
Mais dans les faits la RAM GBA est bien plus importante que la SNES.
La SNES fonctionne avec un 65816 donc les adresses sur 8 et 16 bits sont les plus rapide , Malheureusement elle n'a accès que à 8 ko de RAM en adresses 16 bits.
Si on veut utiliser les 120ko restant , il faut utiliser des adresses longues , qui du coup était gourmand en cycle CPU (surtout que la SNES n'a que 3 registres , donc le CPU passe son temps à lire la RAM) , ces 120ko était plus utilisé comme buffer et stocker les données les moins utilisé.

Donc au final pour dire que les 256 ko de RAM de la GBA peuvent être entièrement utilisé sans perte comparé à la SNES ,même si la GBA à deux fois plus , c'est dans les fait bien plus de RAM disponible.

Autre point important , pour faire ce port , ils ont utilisé le mode bitmap de la GBA (qui en gros utilise la VRAM comme framebuffer) , ce mode n'existe pas sur SNES ,et il est difficile à émuler sur SNES à cause que la SNES utilise un mode planar (comme l'Amiga) , c'est un mode graphique ou les pixels ne sont pas linéaire , donc la galère monstre pour faire de la 3D avec...

Et comme les messages sont limité , je vais m'arrêter là , mais que ça soit en nombre de layer/sprite/palette , limite de sprite par ligne, transfert etc etc , la SNES est loin derrière.
(et que la SNES à une architecture merdique sur certain point )
par Un #vieuxkon en Île-de-France, le Samedi 18 Juin 2022 à 06h49  
Le 1er Avril a changé de date depuis le COVID ?
par Jod, le Vendredi 17 Juin 2022 à 11h52  
Gros big up pour les videos de Modern Vintage Gamer, franchement ultra pointu à charque fois.
par willf4id embusqué, le Vendredi 17 Juin 2022 à 11h46  
c'est fluide et ergonomique idéal pour ce FPS dernière génération !