En observant ce dessin on comprend mieux pourquoi la saturn était réputée pour être difficile à programmer.
En traçant le code de divers jeux j'ai pu constater que rares sont les jeux qui exploitent la totalité du hardware. Certain jeux n'utilisent
par exemple qu'un seul des SH2 (
baku baku animal par exemple).
Le hardware de la console fut décliné en une version arcade, le
ST-V, qui est aussi
émulé par Satourne. Cette machine utilise des cartouches comme support de jeu.
Satourne utilise un système de plugins pour l'émulation de certaine parties de la console:
- les contrôleurs de jeu (joypad, lightgun,etc...)
- la lecture du support de jeu (CDROM)
- le SCSP (l'émulation du 68EC000 est réalisée par Satourne)
- les processeurs graphiques VDP1 et VDP2
L'émulateur comporte un debugger qui permet d'afficher le code exécuté par les SH2, le DSP du SCU et le contenu de la mémoire.
Il manque encore l'affichage du code et des registres du 68EC000.
L'émulateur est écrit en C++. Le noyau de l'émulation a été pensée pour être portable. Pour l'instant il n'existe qu'une version win32 mais je travaille actuellement sur une version linux.
L'interface graphique est implémentée en utilisant le GDI de windows. Aucune libraire C++ n'est employée pour l'utilisation de l'API win32 de windows.
Voici quelques captures de l'interface (
version de développement non encore disponible sur le site officiel de satourne)
Fenêtre principale
Le bas de l'interface affiche la liste des périphériques compatibles avec le jeu. Dans le cas
présent il s'agit de Panzer Dragoon RPG (nommé Panzer Dragoon Saga en Europe), un excellent jeu que je recommande aux fans de RPG.
Ce jeu supporte un contrôleur de jeu analogique, le pad classique, le lecteur de disquette et le clavier.
Debugger
Le debugger est surtout un outil de développement indispensable pour moi mais n'est pas très intéressant pour l'utilisateur
qui veut simplement jouer.
Quelques captures d'écran
Voici quelques captures d'écran réalisée avec quelques jeux. Toutes les captures ont été faites en respectant la
résolution originale du jeu. Plus bas vous trouverez des captures montrant les améliorations que permet l'utilisation de l'opengl.
Le plugin graphique que j'ai développé utilise la librairie opengl pour afficher les images générées par les
processeurs VDP1 et VDP2. Il est interessant de tenter de produire une image le plus fidèle possible à l'original, mais il est aussi
très amusant d'essayer de l'améliorer en exploitant les capacités des cartes graphiques. Les dernières captures d'écran
illustrent différentes améliorations comme l'augmentation de la résolution, le filtrage des textures et même leur remplacement
par une d'autres images. Il est ainsi possible de changer partiellement l'apparence d'un jeu pourvu qu'il utilise des polygones texturés
générés par le VDP1.