Emulateurs, en tirer toute la quintescence.

Grâce à la puissance des machines actuelles sous OS4, nous avons la possibilité d'utiliser des émulateurs pour rejouer au jeux de notre enfance ou découvrir des jeux auxquels nous n'avions jamais joué.

Penchons-nous sur l'optimisation de trois d'entre eux : RunInUAE, DosBox et ScummVM

Optimiser RunInUAE :

RunInUAE, testé dans AmigaPower n°46 (voir ici), et maintenant à sa version r6, a rendu l'utilisation de jeux Amiga Classic sur AmigaOS 4 très facile : un double clic est c'est parti, vos jeux et démos au formats ADF, DMS et WHDLoad se lancent dans UAE, sans que vous n'ayiez rien à faire. Chris Handley a tout prévu et les configurations fournies de base devraient satisfaire chaque Amigaïste.

Néanmoins, il faut parfois mettre la main dans le cambouis pour vraiment profiter à fond de l'émulateur.


Soyons pratiques dès le début, voici mon fichier .uaerc, celui qui définit la configuration de base d'E-UAE (ces derniers peuvent ensuite avoir une configuration spécifique propre à eux) :

# Chemin vers l'image du kickstart 1.3 (ici la version Amiga Forever)
kickstart_rom_file=kick1.3.rom

# Chemin vers la clef de cryptage de la rom d'Amiga Forever
kickstart_key_file=rom.key

# Chemin vers l'emlacement de vos disquettes ADFS
amiga.floppy_path=ADFS:

#Affichage des LEDs du lecteur de disquettes en surimpression
show_leds=false

# Activation des lecteurs de disquettes 2 & 3
floppy2type=0
floppy3type=0

# Vitesses des lecteurs de disquettes; 100 : normal (le plus compatible), 800 : le plus rapide (le moins compatible)
floppy_speed=100

# Emulation du port joystick : none, mouse, joy0, joy1, kbd1, kbd2, kbd3
joyport0=mouse
#joyport1=kbd1
joyport1=joy1

# type de CPU à émuler
cpu_type=68000
# compatibilité CPU (true est plus lent)
cpu_compatible=false

# Vitesse d'émulation CPU, real = environ la vitesse d'un A500. max = l'émulation CPU emulation va aller aussi vite que possible
cpu_speed=real

# Chipset Amiga à émule : ocs, ecs ou aga
chipset=ecs

#Cette option permet de gagner en temps CPU
immediate_blits=true

# Détection des collisions : none, sprites, playfields, full
collision_level=playfields

# Mémoire chip à émuler en multiple de 512K (donc chipmem=4 donne 2Mo)
chipmem_size=2
bogomem_size=0

# mémoire fast à émuler en Mo
fastmem_size=0

# Sortie son : none, interrupts, normal, exact
sound_output=normal

# Canaux sonores : mono, stereo, mixed
sound_channels=stereo

# Fréquence de la sortie en Hz
sound_frequency=22050

# Tampon sonore en octets, par defaut 8192
sound_max_buff=8192

#Latence du son : plus la latence est élevée, plus le décalage est important. 100 = normal.
sound_latency=100

# Prompt for screen mode to use; public, custom, ask
amiga.screen_type=custom

#amiga.publicscreen=Workbench

#Passer en plein écran au lancement
gfx_fullscreen_amiga=true

# Don't dither
amiga.use_dither=false

# Régler le saut d'image (0=pas de saut d'image, 0=1 image sur 2, 2=1image sur 3, etc)
gfx_framerate=0
 
# Réglages de l'affichage
gfx_width_windowed=720
gfx_height_windowed=568
gfx_lores=no
gfx_linemode=scanlines
gfx_correct_aspect=no
gfx_center_horizontal=smart
gfx_center_vertical=smart

# Divers
use_debugger=no
ppc.use_tbc=false  

RunInUAE se crée de plus un fichier nommé .uaerc_RunInUAE qui lui permet d'ajouter quelques modifications en plus de la configuration basique :

# Utilisation d'un Kickstart 3.1 pour le Workbench mais permet toujours l'utilisation des Roms 1.3 pour les jeux au format ADF de l'Amiga 500. Les jeux avec les lettres AGA ou les jeux WHDLoad qui se lancent du WB utilisent cette configuration.
kickstart_rom_file=kick3.1.rom

# Emule un A1200 pour les jeux AGA ou les jeux WHDLoad, mais permet toujours l'utilisation des Roms 1.3 pour les jeux au format ADF de l'Amiga 500.
cpu_type=68020
cpu_speed=max
chipmem_size=4

#Chipset à émuler pour les jeux AGA ou les jeux WHDLoad
chipset=aga

# L'émulation donne un A1200 avec 136 Mo de Fast Ram
fastmem_size=8
z3mem_size=128

#Ici, ce sont les disques durs à monter sur le WB émulé (partitions sous OS4 et image HDF). "rw" signifie que l'on peut lire et écrire (à adapter à votre système)
filesystem2=rw,DH0:Workbench:Jeux:Jeux/Emulateurs/WB.31/,1
filesystem2=rw,Données_:Données:Données:,-1
filesystem2=rw,Medias_:Medias:Medias:,-1
filesystem2=rw,Jeux_:Jeux:Jeux:,-1
hardfile2=rw,DH8:save.hdf,32,1,2,512,0,
hardfile=rw,32,1,2,512,save.hdf

Cette configuration permet une utilisation optimale de RunInUAE avec un AmigaOne G4 à 1,26 Ghz (c'est à dire sans ralentissements, sans frameskip et sans saut de son), aussi adaptée à un Pegasos II G4, un AmigaOne X1000 ou un AmigaOne 500/Sam460. Néanmoins, elle va vous obliger à vous passer du mode de reconnaissance automatique de votre écran (le DDC) puisque vous remarquerez une résolution d'écran peu commune : 720x568. En effet, elle a deux but : pallier aux écrans larges LCD incapables d'afficher une résolution d'écran de 320x256 et afficher tous les jeux et démos qui utilisaient le mode Overscan (tout l'écran est utilisé en 360x284). Il vous faudra donc ajouter cette résolution à vos modes d'écran. Enfin, le mode scanlines permet de donner un effet oldschool aux jeux Amiga tout en réduisant l'effet escalier/pixellisé et en soulageant la charge CPU.

Sur des machines moins puissantes (Sam440 à 667/733/800 Mhz ou (µ)AmigaOne G3 à 800 Mhz par exemple) voici la configuration par excellence pour ne pas rencontrer de ralentissements de sons ou de musiques (pensez à désactiver le DDC et créer un mode 360x284 pour l'overscan) :

kickstart_rom_file=kick1.3.rom
kickstart_key_file=rom.key
show_leds=false
floppy2type=0
floppy3type=0
floppy_speed=100
joyport0=mouse
joyport1=joy1
cpu_type=68000
cpu_compatible=false
cpu_speed=real
chipset=ecs
immediate_blits=true
collision_level=none
chipmem_size=2
bogomem_size=0
fastmem_size=0
sound_output=normal
sound_channels=stero
sound_frequency=22050
sound_max_buff=8192
sound_latency=120
amiga.screen_type=custom
gfx_fullscreen_amiga=true
amiga.use_dither=false
gfx_framerate=2
gfx_width_windowed=360
gfx_height_windowed=284
gfx_lores=true
gfx_linemode=false
gfx_correct_aspect=true
gfx_center_horizontal=smart
gfx_center_vertical=smart
use_debugger=no
ppc.use_tbc=true

Encore une fois, vous pouvez parfaitement vous contenter de la configuration de base de RunInUAE fournie par Chris car elle est déjà extrèmement optimisée. Et si tout fonctionne bien dès le départ et que vous êtes satisfait au lancement de RunInUAE, ne modifiez rien. Pour ma part, j'ai dû modifier comme indiqué ci-dessus pour vraiment adapter RunInUAE à ma configuration (écran de 1366*768, G4 puissant ou Sam440 à 667Mhz, partitions à utiliser, etc...).

Encore une astuce : chaque jeu peut avoir sa propre configuration. Très pratique pour les flippers par exemple qui n'utilisent pas le joystick. Une fois le jeu lancé dans RunInUAE, basculez vers AmigaOS4.1 (Amiga-M) après l'avoir lancé et dans le menu de RunInUAE, sélectionnez "Set default joystick to kbd1", cela modifiera le fichier de configuration du jeu uniquement (en ajoutant cette option : joyport1=kbd1, court circuitant la configuration de base). Vous pouvez aussi simplement glisser l'icone du jeu sur la fenêtre de RunInUAE et il vous sera demandé soit de créer un fichier de configuration s'il n'existe pas, soit de le modifier s'il existe déjà et vous pourrez le faire à la main, celui-ci s'ouvrant dans NotePad.

Et voilà, à vous les joies d'un émulateur parfaitement intégré à AmigaOS 4.1. Pour une meilleure expérience, n'hésitez pas à vous procurer un exemplaire d'Amiga Forever, RunInUAE l'utilisant pour son installation et la rendant bien plus aisée (mais cela n'est pas obligatoire puisque depuis AmigaOS 4.1 Update 4, les ROMs et un WB 3.1 préconfiguré sont installés d'office).


Optimiser DosBox :


DosBox, maintenant à sa version 0.74 sur notre système grâce à Mathias Parneaudau, peut lui aussi être optimisé et amélioré à l'usage.

Pour rappel, DosBox est un émulateur de PC sous l'environnement DOS. Pour nous, son but premier sera de faire tourner les applications (les jeux surtout) sur nos machines. Pour en trouver quelques uns et si vous n'avez jamais eu de PC, faites une recherche sur Google avec le mot "abandonware", nous n'en dirons pas plus sur ce sujet car nous en avons déjà assez dit :-)

Le problème d'un émulateur est la puissance requise. Heureusement pour nous, à partir d'une Sam à 667Mhz, le résultat est plus que satisfaisant pour la très grande majorité des jeux. A nous d'optimiser encore plus son utilisation. Pour cela, nous allons modifier le fichier DosBox.conf et l'adapater à nos besoins. Ce simple fichier texte permet de paramétrer simplement le fonctionnement de DosBox.

Première chose à faire est de créer un tiroir nommé C (pour plus de simplicité) dans le tiroir DosBox. Il deviendra votre C: sous DosBox. Ensuite, pour installer un jeu, il vous suffira de copier ses données (avec AmiDisk ou DOpus par exemple) dans un tiroir à son nom. ATTENTION : sous DOS, les noms de fichiers et répertoires sont limités à 8 caractères. Prêtez-y attention car sinon, l'accès à ces répertoires et fichiers devient laborieux. 

Regardons en détails ce dosbox.conf

Pour la partie SDL du programme

fullscreen=true => permet de choisir si on veut démarrer en plein écran ou non (true ou false) 
output=surface => permet de choisir le mode d'affichage utilisé (surface ou overlay, overlay est trop lent pour être utilisable) 
autolock=false => permet de bloquer la souris dans la fenêtre (true pour la bloquer, false pour qu'elle passe de DosBow au WB) 
sensitivity=100 => sensbilité de la souris 
waitonerror=true => Si DoxBox plante, lasse le fenêtre CLI ouverte (peu révélateur sur AmigaOS) 
priority=higher,normal => Définit le niveau de priorité d'utilisation CPU de DosBox (higher utilise toutes les ressources CPU) 
mapperfile=mapper.txt => Ne pas modifier 
usescancodes=false => Peu d'intérêt pour AmigaOS 

Pour la partie émulation :
 
language=francais.lng =>Passe DoxBox en Français (fichier à récupérer sur ce lien et à décompresser dans votre tiroir DosBox) 
machine=svga_s3 =>Machine à émuler 
captures=capture =>Tiroir où seront stockées les captures d'écran à réaliser (créez-le dans votre tiroir DosBox) 
memsize=31 =>Taille de la mémoire allouée à DosBox (s vous avez beaucoup de mémoire, 31 Mo est un bon compromis, ne pas mettre plus que 31 Mo) 

Pour la partie du rendu graphique :

frameskip=1 => nombre d'images non affichées par DosBox avant d'en afficher une (la valeur 1 est un excellent compromis. 0 sur les machines puissantes) 
aspect=false => permet de corriger l'aspect de l'affichage (true pour que cela fonctionne mais il faut choisir le mode overlay dans output) 
scaler=normal2x => Double la taille de l'affichage d'origine (d'autres modes sont disponibles, plus ou moins consommateurs de CPU, normal2x est un très bon compromis) 

Pour la partie CPU

cycles=3000 => nombre d'instructions que DosBox tente d'émuler chaque seconde. Cette valeur est un bon compromis 
core=normal => CPU core utilisé par DosBox (laissez sur "normal", cela fonctionne très bien) 
cycleup=500 => nombre de cycles CPU qui seront ajoutés aux 3000 par appuis successifs sur les touches prévues à cet effet 
cycledown=20 => nombre de cycles CPU qui seront retirées des 3000 par appuis successifs sur les touches prévues à cet effet 

Pour la partie son, la partie la plus intéressante à configurer :

[mixer]

nosound=false => si vous voulez du son, laisser cette valeur 
rate=22050 => taux d'échantillongage. Si machine puissante, passez à 44100 
blocksize=4096 =>permet d'éviter des coupures de son. Cette valeur fonctionne très bien. 
prebuffer=10 => nombre de millisecondes conservées dans le blocksize 

[midi]

Vous désactivez toutes ces options (avec un # devant chaque ligne), AmigaOS n'étant pas pourvu d'un sequenceur MiDi logiciel. Timidity peut faire office de sequenceur logiciel mais la version pour AmigaOS 4.x n'a pas été compilée avec cette option. Cela est bien dommage car les musiques seraient d'une toute autre qualité. 

#mpu401=intelligent 
#device=default 
#config=

L'émulation SoundBlaster

sbtype=sb16 => la carte son à émuler, laissez sb16 puisqu'elle est compatible avec les anciennes cartes SoundBlaster
sbbase=220 => Ne pas toucher 
irq=7 => IRQ utilisée par la SoundBlaster 
dma=1 => Le canal DMA bas utilisée 
hdma=5 => Le canal DMA haut utilisé 
mixer=true => permet au mixeur de la SoundBlaster de modifier le mixeur de DosBox 
oplmode=auto => Ne pas modifier, permet d'émuler le type de carte requis (et permet l'émulation AdLib) 
oplrate=22050 => Permet de choisir le taux d'échantillonage de l'émulation OLP (mettez 44100 si rvous avez de la puissance sous le capot) 

L'émulation Gravis Ultra Sound :

Là, ça devient intéressant car avec quelques petites manipulations, vous allez obtenir de superbes musiques dans les jeux supportant la Gravis Ultra Sound (malheureusement pas si nombreux que cela). Commençons par télécharger les fichiers nécessaires. Récupérer cette cette archive et décompressez-là dans votre tiroir C créé précédemment. 

Ensuite, vous lancez DoxBox et allez dans le répertoire c:Gravis. De là, tapez install et suivez les instructions d'installations de la Gravis Ultra Sound. 

Settlers DOS configuré pour utiliser la Gravis UltraSound

Configurons DosBox pour l'utilisation de la Gravis Ultra Sound

gus=true => active l'émulation Gravis Ultra Sound
gusrate=22050 => Taux d'échantillonage (mettez 44100 si vous avez vraiment une machine surpuissante) 
gusbase=0x240 => Ne pas toucher 
irq1=5 => Ne pas toucher 
irq2=5 => Ne pas toucher 
dma1=3 => Ne pas toucher 
dma2=3 => Ne pas toucher 
ultradir=c:ULTRASND =>Emplacement de la banque de sons (ne pas toucher si vous avez décompressé l'archive dans votre tiroir C) 

Dune 2 DOS configuré pour utiliser la Gravis UltraSound

Au démarrage de DosBox, vous aurez un message d'erreur de Gravis mais pas de panique, l'émulation fonctionnera très bien. Maintenant, à vous de choisir la carte son "Gravis Ultra Sound" dans les options des jeux la supportant.

Installation des pilotes de la Gravis UltraSound

[speaker] 

pcspeaker=true => active le haut parleur interne du PC 
pcrate=22050 => même en 44100, ça ne fera pas trembler les murs :) 
tandy=auto => permet l'émulation Tandy 
tandyrate=22050 => taux d'échantillonage de l'émulation Tandy 
disney=true => active l'émulation de la Disney Sound Source (carte son externe branchée sur le port paralèlle à l'époque, permettait une certaine qualité sonore ainsi que de la synthèse vocale)

Pour la section [Bios]

joysticktype=auto => Détecte automatiquement le joystick à utiliser 
timed=true => ne pas modifier 
autofire=false => Active ou désactive l'autofire 
swap34=false => permet d'intervertir les axes 3 et 4, règle certains problèmes avec quelques manettes 
buttonwrap=false => ne pas toucher 

Pour la partie [sérial] : ne modifiez rien 

Pour la partie Dos :

xms=true => active la mémoire XMS 
ems=true => active la mémoire EMS 
umb=true => active la mémoire UMB 
keyboardlayout=fr => Permet l'utilisation du clavier en Français 

Section [ipx] : ne modifiez rien 

La section [autoexec] permet de lancer des commandes au démarrage de DosBox (il fait office d'autoexec.bat , cela rappelera de bons souvenirs aux premiers utilisateurs de PC sous Dos). 

mount C: dh1:Outils/dosbox/C => A modifier en fonction de votre configuration 
C: => Permet d'arriver directement sur C: 

SET ULTRASND=240,3,3,5,5 
SET ULTRADIR=C:ULTRASND 
SET BLASTER=A240 I5 D1 T1 
C:ULTRASNDULTRINIT.EXE -dj =>commandes exécutées au démarrage de DosBox pour configurer la GUS 

Et voilà, nous sommes arrivés à la fin de la configuration quasi optimale de DosBox avec AmigaOS 4.x. Amusez-vous bien ! 


Optimiser Scummvm :

ScummVM, le plus connu des interpréteurs de moteurs de jeu (ce n'est pas vraiment un émulateur en fait), en est à sa version 1.4.1 sur Amiga, il permet de lancer de très nombreux jeux d'aventures parus durant les années 80/90.

Sa configuration est stockée dans le fichier scummvm.ini. Ce fichier est mis à jour à chaque ajout d'un nouveau jeu et à chaque modification d'une préférence. Vous n'avez normalement pas à le toucher car l'interface permet déjà de modifier toutes les options, indépendemment pour chaque jeu.

Néanmoins, on va modifier un point particulièrement important, surtout si l'on vient du monde Amiga : le son. En effet, l'émulation AdLib est très loin de rendre justice aux différents jeux d'aventure PC de l'époque (en effet, l'AdLib n'est qu'un "simple" synthétiseur FM alors que l'avantage de l'Amiga avec son chipset sonore était l'utilisation d'échantillons sonore pour les sons et les modules). Exemple : King's Quet VI sur Amiga contenait de bien plus belles musiques que la version PC en AdLib (voire SoundBlaster sous DosBox). Mais si vous utilisez l'émulation Roland MT-32, l'avantage change de camp car il faut bien admettre que cette carte son MiDi externe mettait tout le monde d'accord à l'époque grâce à la qualité de sa banque de sons intégrée.

ScummVM configuré pour utiliser l'émulation MT32

Mais pour l'utiliser, il va vous manquer deux fichiers : MT_32CONTROL.ROM et MT32_PCM.ROM que vous trouverez sur ce lien.

Placez ces deux fichiers dans chacun des tiroirs de vos jeux et configurez-les de cette manière :

Dans la partie audio, cochez Utiliser des réglages audio spécifiques à ce jeux (le "x" est d'origine)

Sortie Audio : MT-32 Emulator 
Emulateur AdLib : default 
Fréquence : 48Khz

Si vous ne pouvez pas activer l'émulation MT-32, c'est que le jeu ne le supporte pas (plutôt rare, surtout les vieux jeux).

Relancez votre jeu : vous allez voir le chargement des échantillons sonores en mémoire et vous n'allez pas en croire vos oreilles, cela change complètement l'expérience de tous ces jeux d'aventure. Malheureusement pour les possesseurs de Sam440, le CPU a bien du mal suivre et l'émulation MT32 fait tellement ralentir la machine qu'elle en devient inutilisable (et le jeu injouable). A moins de 800 Mhz, point de salut, à vous d'expérimenter. La Sam460 devrait bien mieux s'en sortir théoriquement. En attendant une optimisation à ce niveau, il faudra se contenter de l'émulation AdLib.

On peut aussi en profiter pour modifier légèrement l'affichage : dans la partie graphique, cochez Utiliser des réglages spécifiques à ce jeux (sic) 

Mode graphique : SuperEagle
Mode de rendu : defaut
Correction du rapport d'aspect : coché
Plein écran : coché

Nous voici arrivés au bout de ces quelques astuces d'optimisations de ces trois logiciels, en espérant que cela vous permettra de vous redonner envie de (re)plonge dans tous ces anciens jeux qui méritent vraiment le détour. Amusez-vous bien !





Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x

L'URL pour cet article est : https://www.amiga-ng.org/sections.php?op=viewarticle&artid=47