Gamoover

Vous êtes nostalgiques des jeux vidéos de votre enfance ? Vous désirez acquérir, ou construire une borne d'arcade ? Vous trouverez ici les réponses a vos questions et une communauté de joueurs passionnés.

[TUTO] Utilisation de switchres pour des résolutions "pixel perfect" sous mame

Démarré par dapsaille, Dimanche 30 Janvier 2011, 09:39:32 AM

dapsaille

Salut à tous.

Cela fait un petit moment que je suis un projet qui semble très prometteur et dont les résultats sont déja bluffants, il s'agit de switchres, une sorte de launcher pour mame sous windows et linux.

Avec ce soft, dont le créateur bitbytebit est plus que sympathique, les résolutions/fréquences sont extraites directement de mame avant chaque lancement de rom et injectées à la volée dans soft15khz ou dans un driver ATI modifié créé par Calamity.

Le driver ATI de Calamity est d'office en 15khz, soft15khz n'est plus obligatoire.

Une distribution/LiveCd Linux est déja présente, basée sur Gentoo, et même si elle est encore perfectible, que ce soit sous windows ou sous linux, j'ai adopté  ^-

BitBytebit a aussi intégré un patch "no-lag" dans un build de mame perso et les résultats sont plus que concluants...

Je ne peux que vous inviter à tester ce nouveau joujou qui est vraiment le nirvana de la mamecab du moment.


---------------------------------------------

Périmètre de ce document = obtenir des résolutions/fréquences natives avec l'émulateur Mame(tm) sous Windows XP grâce à un pilote ati modifié et switchres.

Ce document ne traite pas de la partie matérielle nécessaire à l'utilisation d'un pc avec un écran d'arcade ou d'une tv, voir le document créé par Crisis (s'arrêter à l'étape 4 du tuto de Crisis pour utiliser ce tutoriel):

http://www.gamoover.net/Forums/index.php?topic=23061.0

Le principal problème rencontré lors de l'intégration d'un ordinateur dans une borne d'arcade vient du fait que les écrans d'arcade fonctionnent en général aux environs de 15khz, hors le signal vga sortant d'une carte vidéo est à 31khz, ce qui rend impossible la visualisation de l'image sans traitement préalable du signal de sortie.

Différentes solution existent pour afficher une image sur un moniteur 15khz.

Les solutions matérielles :

A compléter.

Les solutions logicielles :

-Soft15khz avec Windows
-Powerstrip avec Windows
-Driver ATI modifié avec Windows
-Driver arcmon.sys avec Dos
-Driver Xorg et modelines spécifiques sous certaines conditions sur les systèmes GNU/Linux
-Framebuffer modifié sur les systèmes GNU/Linux
-et pas mal d'autres dont je ne dois pas avoir connaissance...


Le second problème est qu'une fois notre signal de sortie modifiée pour être en 15khz de façon logicielle ou matérielle, le résultat lors de l'utilisation de Mame est loin d'être fidèle à l'original.

En effet, le signal 15khz ne fait pas tout, la résolution en elle même est très importante ainsi que la fréquence de rafraichissement, la résolution permettra d'afficher une image composée de pixels identiques à l'original tandis que la fréquence permettra de respecter la vitesse d'animation d'origine et évitera saccades et autres effets de désynchronisations visibles notamment lors des «scrollings».

Mais comment utiliser ces possibilités ?

La solution utilisée dans ce tutoriel est l'utilisation d'un pilote pour carte ATI modifié par Calamity,
ces pilotes étant en constant développement, des modifications peuvent être apportées, nous nous basons sur les pilotes en date du 01/20/2011 pour la rédaction de ce document.

Un des avantages de ces pilotes est qu'ils ont été modifiés pour être en 15khz, ce qui permet de se passer de soft15khz ou d'autres solutions comme celles évoquées plus haut.

Un autre avantage est qu'ils contiennent d'office une liste des résolutions/fréquences les plus courrament utilisées en arcade, mais nous verrons que cela ne nous intéresse pas dans le cadre de ce tutorial.


Prérequis à l'installation des pilotes :

Il est recommandé de procéder à un nettoyage des drivers ATI ayant pu être installés sur le système à l'aide d'un outil type ccleaner ou INFOS afin d'être sur qu'aucun reliquat de pilotes ATI ne soit présent sur le système (très souvent c'est le cas et l'on peut perdre pas mal de temps à le comprendre).

ATTENTION = Une fois ces pilotes installés et votre windows redémarré, vous perdrez la possibilité d'utiliser votre écran d'ordinateur, le signal sera automatiquement converti vers du 15khz compatible tv cathodiques/moniteurs d'arcade. EDIT = il semblerait que ce ne soit plus le cas.. à confirmer

Il est donc préférable d'installer avant tout un logiciel de contrôle à distance type VNC afin de pouvoir contrôler votre machine à partir d'un autre ordinateur.

Lien vers TightVNC, un client/serveur sous licence GPL :

http://www.tightvnc.com/download.php


Installation des pilotes :

Lien direct vers les pilotes pour
Ati Radeon 7000, 7200, 7500, 8500, 9000, 9100, 9200, 9250, 9500, 9550, 9600, 9700, 9800, X300, X550, X600, X700, X800, X850, X1300, X1600, X1800, X1900, X1950

http://abadiadelcrimen.com/download/crt_emudriver_6.5_1.2.rar

Lien direct vers les pilotes
Ati Radeon 9500, 9550, 9600, 9700, 9800, X300, X550, X600, X700, X740, X800, X850, X1050, X1200, X1300, X1550, X1600, X1650, X1800, X1900, X1950, HD 2350, HD 2400, HD 2600, HD 2900, HD 3200, HD 3300, HD 3400, HD 3410, HD 3450, HD 3550, HD 3570, HD 3600, HD 3610, HD 3690, HD 3730, HD 3750, HD 3800, HD 3830, HD 3850, HD 3870, HD 4230, HD 4250, HD 4350, HD 4550, HD 4570, HD 4580, HD 4650, HD 4670, HD 4730, HD 4750, HD 4800, HD 4850, HD 4870

http://abadiadelcrimen.com/download/crt_emudriver_9.3_1.2.rar

Lien vers le post concernant les pilotes (en Espagnol) :

http://postback.geedorah.com/foros/viewtopic.php?id=1424

Télécharger l'archive du pilote adapté à votre carte sur votre bureau.

Décompressez le pilote avec votre outil de décompression préféré
(je vous recommande 7zip, libre et gratuit, intégré au clic-droit http://www.7-zip.org/ )

Dans le dossier fraîchement décompressé nous allons nous intéresser uniquement au dossier Driver, je vous recommande de déplacer le dossier Driver sur le bureau et de supprimer le dossier précédemment décompressé afin de ne pas faire d'erreurs.

Une fois ce dossier sur le bureau et votre solution de contrôle à distance installée et testée (vnc) nous allons pouvoir procéder à l'installation du-dît driver.

Opération complexe s'il en est, double cliquez sur le fichier Setup.exe et suivez les instructions.

(attention, au démarrage votre ordinateur est et restera en 31khz jusqu'à ce que Windows soit démarré et le pilote fonctionnel, ceci peut potentiellement endommager votre écran)


Une fois l'opération effectuée, il vous sera demandé de redémarrer votre machine, pour plus de sécurité éteignez votre ordinateur et débranchez votre moniteur, redémarrez votre ordinateur et une fois que vous aurez entendu le son de démarrage de Windows branchez votre moniteur d'arcade/tv.  

Une fois le démarrage terminé vous devriez avoir un affichage sur votre moniteur d'arcade ou bien sur votre tv, si ce n'est pas le cas, branchez votre moniteur d'ordinateur et si l'affichage est présent, recommencez la procédure de nettoyage/installation du pilote, si rien n'y fait, il se peut que votre carte soit incompatible, n'hésitez pas à poster sur le forum cité précédemment pour plus d'infos.

Maintenant que nous avons un affichage 15khz, il est temps de se pencher sur cette sombre histoire de résolutions, si vous ne vous êtes pas endormis pendant la lecture de ce tutoriel, vous aurez noté que ce pilote intègre la plupart des résolutions d'arcade,

Cependant, Mame étant en constante évolution, si un nouveau système ayant une « nouvelle » résolution est intégré, vous ne pourrez pas en bénéficier car les résolutions sont « statiques » au niveau du pilote modifié (tout comme soft15khz, même si un ajout manuel peut être effectué).

C'est la que commence le moment le plus intéressant de ce tutoriel.....


Switchres


Qu'est ce que switchres ?:


Switchres est un outil assez ingénieux développé par Bitbytebit qui permet littéralement "d'injecter" la bonne résolution au lancement d'un jeu avec Mame.

Son fonctionnement est relativement simple, lors du lancement d'une rom avec Mame, il vas interroger la base interne de mame afin d'extraire la résolution/fréquence directement de l'exécutable Mame et c'est la que toute la puissance de switchres s'exprime, si vous mettez à jour votre exécutable de Mame, switchres sera de toutes façons à même d'en extraire les informations nécessaires  afin d'obtenir un affichage le plus fidèle possible.

Lien vers le site de Bitbytebit, le créateur de Switchres :


http://arcade.groovy.org/

Lien vers le forum hébergeant la partie « support » :

http://forum.arcadecontrols.com/index.php?topic=106405.0

Lien vers le fichier switchres (prendre la version windows) :

http://mario.groovy.org/GroovyArcade/


Je tiens à préciser que ce tutoriel est basé sur la version 1,311 de switchres, ce programme étant en constante évolution les commandes utilisées sont susceptibles d'être changées et d'autres peuvent être ajoutées.

Prérequis à switchres :

Un fichier mame.ini bien configuré (la suite plus bas ... enfin à venir ^^).
Le fichier switchres.exe présent dans le même dossier que mame.exe
Des roms à tester.


Utilisation de switchres :

L'utilisation de switchres est on ne peut plus simple, il suffit de tapper switchres.exe $NOMDUJEU ou $NOMDUJEU peut être sf2 pour street fighter 2, mvsc pour Marvel Vs Capcom, etc etc etc ...

Si vous possédez un moniteur rotatif, utilisez la commande suivante, le cas échéant, les résolutions pour les jeux verticaux ne seront pas fidèles à l'original:
   
   switchres.exe $NOMDUJEU –mo 2

Pour un moniteur positionné en horizontal :

      switchres.exe $NOMDUJEU –mo 0

Pour un moniteur positionné en vertical :

   switchres.exe $NOMDUJEU –mo 1



-----------------------------

Voila pour le moment, je n'ai pas pu faire tout ce que souhaitais faire et l'ensemble est un peu confus, l'on me reprochera le manque de screenshots mais venant du monde Unix les screenshots ....  ::)

Je le reprendrai un peu plus tard afin de l'étoffer .. merci à tous .. n'hésitez pas à me faire remarquer mes différentes fautes / approximations si il y a (ce dont je ne doute pas).

Merci d'avoir pris le temps de lire ce tuto WIP 40% et bon jeux ^^


funkycochise


Eko

Ah voui voui, super intéressant  ^-
Le mini tuto est une excellente idée  ;)
A suivre...
Le RT, le WIP, des drogues dures ça nan ?

-RT Jeutel Mint !          -RT Twin STC          -WIP Twin STC         -RT Mini Jeutel    
-WIP Noami White       -WIP Noami Black    -WIP Gameroom      -WIP Mini Jeutel

imacman

en effet excellent,
j'attends le tuto avec impatience.
@++

mojo

Je vais encore passer pour un idiot mais une fois de plus ou de moins  ;D.

La actuellement je tourne avec soft 15khz et 3 lignes modifié dans mame.ini
" video                   ddraw "
"hwstretch               0"
"switchres               1"

Donc d'après ce que tu dis avec ce programme il n'y aurait plus besoin d'effectuer de modif de ce genre et il n'y aurait plus de "coupure" ou de problème de synchro verticale en jeu.

En tout cas j'attends le tuto histoire de tester et de voir de mes propres yeux  ^-

Crisis

J'attends également un peu plus d'information, voire un petit tuto.
Tout ça me semble assez intéressant.
Générer des résolutions à la volée... je suis curieux de voir.
À suivre.

dapsaille

#6
Citation de: mojo le Mardi 01 Février 2011, 00:48:51 AM
Je vais encore passer pour un idiot mais une fois de plus ou de moins  ;D.

La actuellement je tourne avec soft 15khz et 3 lignes modifié dans mame.ini
" video                   ddraw "
"hwstretch               0"
"switchres               1"

Donc d'après ce que tu dis avec ce programme il n'y aurait plus besoin d'effectuer de modif de ce genre et il n'y aurait plus de "coupure" ou de problème de synchro verticale en jeu.

En tout cas j'attends le tuto histoire de tester et de voir de mes propres yeux  ^-

En fait il faut tout de même bien spécifier ces options dans mame (plus quelques autres) mais en effet, plus d'effet de coupure ou de de-synchro dans le jeu (je suis encore en phase de test et de stabilisation avant de pondre le tuto, mais ça ne saurais tarder)


KodeIn

Justement, ne trouvant pas de distro linux dédiée aux mamecab qui soit encore active,  j'allais me résigner à installer windows XP tipiak edition.
Mon vieux PC étant équipé avec une bonne vieille ATI Radeon (HDD en rade par contre), ça m'arrange d'autant plus.

Je me réjouis de voir ton tuto, histoire de me faire une idée avant d'investir dans un nouveau disque dur.
Atari 2600 | Spectravideo SV-328 :'( | Amiga 500 | NES - SNES - N64 - NGC - Wii - GBA - GBAsp - DSi | PS1 - PS2 - PS3 - PSP 2000 | MD - DC | XBox - 360 | MacBook | OpenPandora GHZ edition \o/
WIP [pause] : Borne Euro générique de chez Jeux COURTET
Tutos LaunchPad MSP430 001 - 002 - 003 - 004 en attente

dapsaille

Pour le moment le tuto vas se concentrer sur l'aspect Windows, pour linux tu peux trouver un livecd sur le site qui est pas mal.

firestorm

Testé et approuvé !!!
Utilitaire indispensable pour les maniaques de l'image...
Encore bravo à bitbytebit pour son boulot.

dapsaille

Ca me rapelle que j'ai une ébauche de tuto pour débutants à terminer et faire valider moi  :o

th_vador

Citation de: dapsaille le Dimanche 30 Janvier 2011, 09:39:32 AM
[...]
une sorte de launcher pour mame sous windows et linux.
[...]
si c'est un launcher pour mame, alors au bout et jusqu'à ce que tu lances un jeu, tu es en 31 kHz, non?
De l'arcade, de la console, des conneries, du Giga Wing 2. TomTom's Lair quoi!
Recherche : Altered Beast (Master System) | Streets of Rage (Megadrive) | Une borne DDR | Un flipper

dapsaille

L'intérèt de cet outil est non pas d'afficher en 15khz à proprement parler mais d'afficher aux bonnes résolutions natives/fréquences.

La partie 15khz peut soit être gérée par Soft15khz, soit pas un driver spécial, au boot tu seras toujours en 31khz quoi qu'il en soit.

th_vador

Citation de: dapsaille le Mercredi 09 Février 2011, 14:46:36 PM
L'intérèt de cet outil est non pas d'afficher en 15khz à proprement parler mais d'afficher aux bonnes résolutions natives/fréquences.

La partie 15khz peut soit être gérée par Soft15khz, soit pas un driver spécial, au boot tu seras toujours en 31khz quoi qu'il en soit.
Au temps pour moi, j'ai fait l'amalgame entre le driver ATI et le logiciel. Mais effectivement, sur le forum d'arcadecontrols on parle bien de piloter soft15kHz grâce à switchres.  :D
De l'arcade, de la console, des conneries, du Giga Wing 2. TomTom's Lair quoi!
Recherche : Altered Beast (Master System) | Streets of Rage (Megadrive) | Une borne DDR | Un flipper

PseudoName

#14
Ça semble intéressant, mais il faudra qd même toujours avoir à  recentrer l'image si l'on a un tas de reso de freq différentes.
c'est un moyen de + pour avoir des réso custom, mais perso je ne vois pas + simple que soft15 + usermodeline aux bonnes freq.

Sinon switchres peut être effectivement une excellente alternative, et un ptit tuto fort sympatique  ;)

dapsaille

Citation de: PseudoName le Mercredi 09 Février 2011, 21:03:45 PM
Ça semble intéressant, mais il faudra qd même toujours avoir à  recentrer l'image si l'on un a tas de reso de freq différentes.
c'est un moyen de + pour avoir des réso custom, mais perso je ne vois pas + simple que soft15 + usermodeline aux bonnes freq.

Sinon swichres peut être effectivement une excellente alternative, et un ptit tuto fort sympatique  ;)



+1 pour le recentrage mais il faut bien avouer que ce n'est pas à la portée de tout le monde de se pallucher un centrage des résos avec les outils adaptés, on retombe plutot sur le feeling des pcb à changer le centrage à chaque jeu ^^

Pour le tuto, je me rend compte que mon ébauche est plutot indigeste, je vais voir avec un de nos chers modos ce qu'il en pense.