1

Bonjour,

Je voulais vous faire partager quelques informations sur mes explorations de Quake 2 sur l'Atari Jaguar.
J'alterne entre le code source de Quake 2, des tools et les modifications de l'emulateur.

Globalement, ca donne ca visuellement.
yxbc
7UU2
hDZZ
0vCg

C'est non jouable bien sur, largement sous la barre du 1fps. Code du jeu en C uniquement, compile avec des optimisations gcc, de l'ASM pour certaines fonctions externes, et pas de GPU/DSP/Blitter.
J'utilises aussi mon port de microwindows pour garder une relative compatibilite avec les sources du jeu.
La resolution est de 320x240 en 8 bits, avec le software renderer.
Il y a des calculs maths et du float en pagaille, il faut utliser des maps de petite tailles, triturer les assets/datas, et la ram explose joyeusement de toutes facons.

Avec du recul, c'est miraculeux que ca "tourne" quand meme.

2

Impressionnant wink

3

Amusant ^^

Tu devrais le poster sur AtariAge smile
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

4

Wow, je serai top chaud pour jouer à une version PC qui ressemble au dernier screenshot ! ça me fait penser à Warsow un peu
avatar
"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."

Benj Edwards - Why History Needs Software Piracy

- - -
Achat ou échange: topic de mes recherches Meilleur smiley = #helico# Obligatory XKCD

5

Jonas (./4) :
Wow, je serai top chaud pour jouer à une version PC qui ressemble au dernier screenshot ! ça me fait penser à Warsow un peu
Dans config.cfg, rajouter ou modifier la ligne:
set sw_drawflat "1"
Cela ne fonctionne qu'en mode paletized avec le software render; l'index sur la palette est base sur le lowest byte du pointeur sur la texture. Par exemple, si le pointeur sur la texture se termine par $54, alors le poly sera rempli par cette valeur.
Donc, aucun controle et aucune garantie d'avoir toujours le meme visuel. A l'origine, ce setting est pour aider au debug.

Zerosquare (./3) :
Amusant ^^

Tu devrais le poster sur AtariAge smile
Je preferes poster ici, cela semble plus calme et sereins. Et je penses que les gens comprendront que ca peut tres bien finir en vaporware.

6

Merci pour l'info ! Je viens justement de me choper les 4 Quake sur GOG du coup je vais tester ça ce weekend helico
avatar
"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."

Benj Edwards - Why History Needs Software Piracy

- - -
Achat ou échange: topic de mes recherches Meilleur smiley = #helico# Obligatory XKCD

7

@dilinger, c'est justement un des seuls truc que j'avais laissé dans ma todolist grin
J'allais attaquer ça après les améliorations en cours sur la JagFPGA. smile


Si tu as des questions Jag (config, archi, optimisations, etc) n’hésite pas, on est plusieurs sur le forum à bien connaître la Jag.
avatar

8

SCPCD (./7) :
Si tu as des questions Jag (config, archi, optimisations, etc) n’hésite pas, on est plusieurs sur le forum à bien connaître la Jag.
Oui, j'ai cru comprendre que vous maitrisez cette machine et vous etes aimable en plus.

9

ouhaou quand meme! bravo
gt turbo lui il connait bien la jag, d'ailleur d'après ses dires à l'ADN de cette année, la jaguar est bien plus facile à programmer qu'il n'y parait!
Atari et musique Métal www.clandestine-association.fr

10

SCPCD (./7) :
J'allais attaquer ça après les améliorations en cours sur la JagFPGA. smile
JagFPGA? Tres impressionant. Ca pourrait servir de dev. kit avec des tools adaptes?

vicomte (./9) :
gt turbo lui il connait bien la jag, d'ailleur d'après ses dires à l'ADN de cette année, la jaguar est bien plus facile à programmer qu'il n'y parait!
l'ADN de cette année? Qu'est ce que c'est? Un evenement?

Je suis encore au niveau 68000, je vais tater le Blitter et tenter des modifications dans l'emulateur pour integrer un profiler et rajouter un viewer partiel des registres HW.
J'alterne entre Quake 2, les tools et l'emulateur. L'ensemble ayant le meme but de toute facon, essayer de faire avancer le shmblik.

11

dilinger (./10) :
JagFPGA? Tres impressionant. Ca pourrait servir de dev. kit avec des tools adaptes?
Avec la JagFPGA, j'ai fait un remote debugger avec lequel j'ai accès à tous les registres et au step-by-step, ainsi que d'autres features qui ne sont pas possibles avec une vrai jag.
ils sont intercomptatible moyen quelques deltas (corrections de bugs entre autres)
http://scpcd.free.fr/fpga/Jaguar/Compatibility.htm (en 2015)


l'ADN de cette année? Qu'est ce que c'est? Un evenement?
C'est effectivement un évenement : topics/190961-adn-2019#post-13
avatar

12

J'ai relu les specs de la JagCFv3, c'est vraiment cool entre la ram supplementaire et les I/O. Ca peut faire une belle difference par rapport a la Skunkboard (que je respectes beaucoup d'ailleurs).
Rien que le support keyboard peut ammener un confort dans le controle du developement - la ligne de commande de Quake 2 par exemple.
TaWG

13

Pas grands choses à dire sur les progrès du "port". J’arrive à afficher autres choses que du décor, et l'ensemble reste toujours en 68000. Du debug qui a permis de régler des soucis lors des initialisations.
J’ai essayé de tâter du Blitter; avec l’impression de l’entendre ricaner quand je faisais mes tests.

Voici à quoi ressemble un des protagonistes du jeu; oui, il tourne le dos, mais faut lui pardonner, car il est timide…
MERu

Mais après de la patience, il daigne se montrer… Enfin, "l’engine" finit par lentement le faire tourner dans le bon angle.
ITRy

Il est grand temps de se débarrasser de tous ces floating points, ça consomme des cycles de malade comme d’autres du beaujolais nouveau.

14

C'est prometteur.

15

passer en fixed point devrait accélérer les choses

par contre ca doit demander des millions de modifs du code grin

16

Wouaw, impressionnant ! Merci pour le partage, c'est très intéressant smile
avatar
https://steamcommunity.com/id/Chevels/ , mon profil Steam pour celles et ceux désirant se taper quelques parties à l'occasion :)

Mon serveur Minecraft: https://heavycraft-reloaded.fr/

17

Si jamais t'as un binaire, je suis intéressé de le tester sur la JagFPGA pour voir ce que ça donne dessus smile
avatar

18

SCPCD (./17) :
Si jamais t'as un binaire, je suis intéressé de le tester sur la JagFPGA pour voir ce que ça donne dessus smile
J'ai des executables au format ELF. Mais meme si je le transformerais en ROM, il ne fonctionnerait pas sur la console.

Comme brievement expliquez dans mes posts, il y a des debordements de memoire ici et la. J'utilises ma version modifie de l'emulateur qui rajoute la RAM au dela des 2Mo.
Les performances ne sont pas la non plus.
J'ai rajoute un mode wire frame pour voir et aider au debug, et meme comme ca, le 68000 a les 2 genoux a terre...
LpXx

L'adaptation du code pour exploiter les autres processeurs sera fait tranquilement pas vite, faut d'abord finir le profiling et jouer a tourner on/off les feature du jeu (particles, lightings, etc.), et avec les optims de gcc.

Je preferes poster ici de temps en temps les progres et si ca finit en vaporware, on aura quand meme bien ri sur la demarche completement loufoque et je penses que personne ne m'en voudra.
Et si un jour, c'est jouable, je le presenterais dans les expos pour le fun.

19

20

Ce projet est et restera expérimental.

Je n'ai pas beaucoup progressé, a part passer du temps sur les tools et retirer le support de mon port de Microwindows, ce qui fait gagner un peu de speed et de la mémoire mine de rien.
J'ai aussi essayé d'autres versions du gcc pour faire du benchmark, jouer avec les optimisations du compilateur; et aussi essayé une autre library mathématique, pour revenir a celle d'avant illico-presto.
Les inits tournent un peu plus vite aussi mais les textures sur les modèles sont en mode psychédélique maintenant, faut que je remettes tout ce beau monde en état.
Pas encore foutu d'utiliser le blitter.
C'est toujours en 68000, en C avec un peu de ASM, et tourne toujours gentiment en deçà du 1fps.

21

C'est déjà bien que tu insistes malgré les tonnes de difficultés ! Honnêtement je suis admiratif !
Bravo à toi pour ta persévérance ! Cependant peut-on parler d'une forme de masochisme ? wink
Atari Jaguar :
http://perso.orange.fr/jaguar-64bit/

! Jagware !

22

Faut déjà être un peu maso pour coder sur Jaguar à la base, alors bon... grin
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

23

Ce projet est le reflet d'un mélange de cause perdue d'avance, jusqu'au boutisme aiguë, et autres bouffée délirante.
J'ai souvenir de soirées, dans un cigare Lounge avec un whisky bien tassé, examinant le code de Quake 2; la grande classe quand même.

Mais souvenons nous de Félix Houphouët-Boigny, “Nous étions au bord d'un gouffre, nous avons fait un grand pas en avant.”

24

grin
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

25

Salutations de l'asile psychiatrique.

Plus serieusement, entre 2 séances de yoga et de coma éthylique, je n'abandonnes toujours pas mais je dois avouer que je n'ai pas beaucoup avancer. En fait, si quand même mais plus au niveau expérimentation de code.

J'ai passer du data de RAM a la ROM et je comprends que ce n'était pas très fin pour l'OP et le Blitter. Je vais refaire le point la dessus, notamment sur mon optimisme.
Je vais tater le scaling du Blitter separement, je comptes l'utiliser pour le Mip Mapping. Ca devrait me sauver de la RAM.

J'ai exploré le fixed point vs. float en utilisant du code qui en bouffe aussi pas mal.
1) TinyGL: je l'avais déjà porté sur la console en 68K seulement. Ca roule en float. C'était plus pour l'exercice qu'autres choses, ca m'a permi de tester mes library.
2) PicoGL: Un port de TinyGL en fixed point, en voilà une bonne idée. Je l'ai donc porté sur la console en 68K seulement avec la même toolchain que celle que j'ai utilisé pour TinyGL.
3) Utilisation du même exemple d'une belle boîte rectangulaire, en wire frame.
4) Benchmarks purement visuel entre les 2.
5) TinyGL en float est plus rapide que PicoGL en fixed point.
6) ...

Arretez de rire, je vous entends d'ici. Il doit bien y avoir une explication logique à tout ceci.

26

Bonjour,

Juste un mot pour donner quelques nouvelles. Je continues a me consacrer au port, ca avance a (très) petit pas, des tonnes de problèmes. Entre l'émulation, les tools, le code Quake 2, la memoire, les libs, la version PC modifiée pour tester des trucs...
Le passage floating point vers le fixed point est cauchemardesque, on trouve des bouts de code ici et la utilisant du floating point comme des entiers et c'est mortel pour du 68000.
J'ai fait une poignée de vidéos pour montrer un peu l'avancement (loading de maps + inits + display, et menu principal avec un icone qui bouge).
Les performances sont bien sur toujours aux fraises dans la sciure.


Main menu

Loading d'une map

Loading d'une autre map (crash durant le load)

Loading d'une autre map

27

Plein de bonnes ondes pour la suite de ce projet wink

28

Beau boulot ! C'est déjà un exploit en soi d’avoir pu aller aussi loin !
avatar
"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."

Benj Edwards - Why History Needs Software Piracy

- - -
Achat ou échange: topic de mes recherches Meilleur smiley = #helico# Obligatory XKCD

29

hello,

sacré projet !

et donc je suppose qu'à un moment tu vas recoder des morceaux de moteurs en assembleur GPU ?
avatar

30

Il faut voir cela comme une expérience personnelle, mais merci pour vos encouragements.
Oui, a un moment donné, je vais devoir passer pas mal de monde vers le GPU/Blitter/DSP/OP.
Mais pour le moment, je me polarise sur le C / 68000 et que ca tienne dans la ram sans que ca explose aussi.