dimanche 7 juin 2020

ref_soft.dll (Quake2)

La version commerciale de Quake 2 en 2002 disposait d'un mode rendu software, c'est à dire que vous pouviez y jouer sans GPU, donc sans Warp3D, ni même Wazp3D d'ailleurs. Il fallait toutefois disposer obligatoirement d'un écran RTG :

J'avais déjà recompilé en 2016 la version GPU ref_gl.dll avec un petit gain de 2 fps environ en sélectionnant -m68060 sous gcc.

Hyperion avait compilé l'ensemble des fichiers C avec les options 020/030 de StormC4 pour que le jeu utilise alors les lentes 68040/68060.library, ceci afin de ralentir le moteur de Quake2.

Le fichier ref_soft.dll s'occupe donc du rendu 3D sans l'aide d'un quelconque GPU : il contient 8 fcos et 11 fsin, mnémoniques absentes des transistors des 040/060. Il a fallut donc quatre jours pour désassembler 63 300 lignes d'asm, et une petite fin de journée pour remplacer à la main ces 19 instructions trigo par des appels à la mathieeedoubtrans.library... Il est bien sûr très important d'installer la bonne mathieeedoubtrans.library 46.00 dans Sys:Libs/ !

Le speedup sur une Blizzard 1260@50 avec un Mediator et une Banshee 3dfx est très léger hélas, mieux que rien toutefois, de 2.9 fps :

A 3.3 fps seulement :

Je vais coder un petit utilitaire de bench pour voir la différence de vitesse entre un fcos de la 68060.library et son équivalent pour le même angle par la mathieeedoubtrans.library... Pourra être intéressant...
 
Comme d'habitude, tout est disponible ici de façon gratuite...
 

Aucun commentaire:

Publier un commentaire

Posté vos remarques :