[Résolu] Emul Megadrive en 15khz / RetroArch ne switche pas de résolution avec le bureau de Windows (10) en 640x480i

Pour parler librement d'émulation arcade et consoles.
Message
Auteur
Blaw
stick de platine
Messages : 1982
Inscription : 04 oct. 2020, 13:33
A remercié : 464 fois
A été remercié : 139 fois

[Résolu] Emul Megadrive en 15khz / RetroArch ne switche pas de résolution avec le bureau de Windows (10) en 640x480i

#1 Message par Blaw »

Je voulais mettre quelques jeux Megadrive que j'affectionne sur ma borne en 15khz (pour profiter de l'écran), essentiellement des shoot'em up exclusifs genre Gynoug.

Quelle est la solution la plus simple ?

J'ai vu qu'on peut utiliser Kega Fusion 3.64 mais le fichier fusion.ini m'intrigue un peu.

J'ai trouvé cette documentation : https://wiki.hfsplay.fr/doku.php?id=emu ... ega_fusion

qui indique que :
Utiliser Fusion, Configuration Avancée - Expert Options
Voici le chapitre qui va présenter quelques options supplémentaires pour les utilisateurs un peu plus pointilleux et qui aiment bidouiller pour tirer le maximum de leurs émulateurs.
Ces paramètres ne sont accessibles qu’en éditant le fichier Fusion.ini à la main. Ces options sont en grande partie présentes pour les utilisateurs de solutions 15Khz, qu’elles soient logicielles (Calamity Drivers, Soft15Khz…) ou matérielles (ArcadeVGA), mais peut tout à fait servir à tout le monde.

Les voici tirés du fichier Fusion.ini :

;———————————
; Expert Options [DANGER! RTFM!]
;———————————
RefreshRate60Hz=60
RefreshRate50Hz=100
UseExpertModes=0
UseAutoSwitching=0
MinSwitchDelay=100
Mode256x240=640,480,60,100,640,480
Mode256x480=640,480,60,100,640,480
Mode320x240=640,480,60,100,640,480
Mode320x480=640,480,60,100,640,480
2 réglages de fréquence de rafraichissement sont disponible, le 60Hz (NTSC) et le 50Hz (PAL). Dans l’idéal, l’option 60Hz devra être éditée avec un multiple (60, 120) tout comme le 50Hz (50,100). Ces valeurs seront celles que Fusion essaiera d’utiliser pour l’affichage en plein écran avec la VSync d’activé. \\Si vous n’êtes pas sur de ce que vous faites ou de ce que vous voulez, ne touchez pas à ces valeurs !

Les autres paramètres seront utiles avec « UseExpertModes » et Auto Mode Switching, que nous verront plus bas, édités sur 1.

Fusion utilise couramment 4 modes vidéos (ou modelines) différents qui sont : 256*240, 256*480, 320*240 et 320*480. Vous pouvez spécifier vous-même la résolution, la fréquence de rafraichissement et le taille de l’affichage pour chacun de ces modes, et Fusion switchera automatiquement sur le bon mode en fonction des jeux et de son utilisation.

Traduisons maintenant une ligne de mode et comment il fonctionne :

Mode256x240=640,480,60,100,320,240

Cette première modeline signifie que quand le mode 256*240 est utilisé, Fusion switchera sur une résolution de 640*480, à 60Hz pour les jeux NTSC et à 100Hz pour les jeux PAL, et la dimension d’affichage sera de320*240, donc seulement une partie de la taille de votre écran qui sera placé en son centre.

Mode320x240=1280,1024,120,100,1344,960

Cette seconde modeline signifie que quand le mode 320*240 est utilisé, Fusion switchera sur une résolution de 1280*1024, à 120Hz pour les jeux NTSC et 100Hz pour les jeux PAL, et la dimension d’affichage sera de 1344*960, ce qui donnera 32 pixels coupés à gauche et à droite avec des bandes noirs en haut et en bas.

IMPORTANT : Vous devez vous assurer avant toute modification de ces modelines que les valeurs de résolutions et de fréquences de rafraichissements soient compatibles avec votre configuration. Fusion basculera « normalement » en 640*480 s’il ne peut pas afficher votre modeline, mais l’auteur du soft ne garantie pas que votre écran de borne ou moniteur PC n’en prendra pas un coup ! UTILISEZ CES OPTIONS A VOS RISQUES ET PERILS !

MineSwitchDelay est une valeur en cinquantième de seconde qui fixe le temps minimum attribué pour un switch de mode vidéo.
Certain jeux change de mode vidéo très rapidement, ce qui est plutôt indésirable dans nos cas et potentiellement dangereux. L’auteur recommande de ne pas descendre en dessous de 50 (1 seconde donc) et plutôt de l’augmenter, cela va dépendre du temps que votre écran a en général besoin pour switcher de résolution et de mode vidéo.
Si vous savez que votre écran n’est pas sensible aux changements de résolution, où que vous avez configuré la même résolution pour les 4 modes vidéos différents de Fusion, alors seulement vous pouvez mettre cette valeur à 0.
Plus particulièrement ce passage :
Traduisons maintenant une ligne de mode et comment il fonctionne :

Mode256x240=640,480,60,100,320,240

Cette première modeline signifie que quand le mode 256*240 est utilisé, Fusion switchera sur une résolution de 640*480, à 60Hz pour les jeux NTSC et à 100Hz pour les jeux PAL, et la dimension d’affichage sera de320*240, donc seulement une partie de la taille de votre écran qui sera placé en son centre.

Mode320x240=1280,1024,120,100,1344,960

Cette seconde modeline signifie que quand le mode 320*240 est utilisé, Fusion switchera sur une résolution de 1280*1024, à 120Hz pour les jeux NTSC et 100Hz pour les jeux PAL, et la dimension d’affichage sera de 1344*960, ce qui donnera 32 pixels coupés à gauche et à droite avec des bandes noirs en haut et en bas.
Pourquoi préciser du 640x480 dans une modeline censée être pour du 15Khz ?

Et même pourquoi faire afficher en 320x240 alors qu'un écran 15Khz peut afficher du 256x240 ?

L'autre solution serait, je pense, d'utiliser Retroarch.

Cependant, ce dernier a plutôt l'air de fonctionner avec les super resolutions alors que j'utilise personnellement les résolutions natives (j'ai installé 50 modelines pour supporter l'intégralité de mes jeux Arcade, en testant la résolution de chaque jeu). Est-ce qu'il peut fonctionner avec des résolutions natives ? J'ai vu une option à activer pour les résolutions CRT mais il s'agit simplement de l'activer ou de la désactiver, il n'y a pas de choix de résolution ou autre ? (à moins qu'il faille lancer un jeu avant pour avoir plus d'options ?)

En ce qui concerne l'intégration à BigBox, je pense que le mieux serait un émulateur standalone donc s'il y en a d'autres d'utilisables, c'est ok également, je ne suis pas spécialement fixé sur Kega Fusion.

Merci d'avance si quelqu'un a des infos à ce sujet.
Dernière modification par Blaw le 25 août 2021, 23:11, modifié 1 fois.

Blaw
stick de platine
Messages : 1982
Inscription : 04 oct. 2020, 13:33
A remercié : 464 fois
A été remercié : 139 fois

Re: Emulateur Megadrive sur écran 15khz

#2 Message par Blaw »

Après avoir continué à chercher/lire divers tutos, j'en suis arrivé à tester ça :
;---------------------------------
; Expert Options [DANGER! RTFM!]
;---------------------------------

RefreshRate60Hz=60
RefreshRate50Hz=50
UseExpertModes=1
UseAutoSwitching=1
MinSwitchDelay=50
Mode256x240=256,240,60,50,256,240
Mode256x480=256,240,60,50,256,240
Mode320x240=320,240,60,50,320,240
Mode320x480=320,240,60,50,320,240
Une fois l'émulateur lancé, je peux choisir dans les menus de l'émulateur entre 320x240 et 640x480 pour le full screen.

Lorsque je choisis 320x240, j'ai un 1/4 de fenêtre, même en plein écran. Si je choisis 640x480, là j'ai bien du full screen mais avec du scintillement (vu que le 640x480 sur du 15kz, c'est entrelacé). D'ailleurs, même en 320x240 en quart de fenêtre, ça scintille aussi (probablement car ça utilise la résolution du bureau, 640x480i).

J'ai pourtant les modelines principales requises dans vmmaker (et installées), les x480 étant visiblement pour les jeux splittés, qui ne m'intéresseront pas :

"256x240_60 15.66KHz 60.00Hz" 5.26 256 272 296 336 240 242 245 261 -hsync -vsync
"320x240_60 15.66KHz 60.00Hz" 6.64 320 336 368 424 240 242 245 261 -hsync -vsync

J'ai aussi tenté ça :
;---------------------------------
; Expert Options [DANGER! RTFM!]
;---------------------------------

RefreshRate60Hz=60
RefreshRate50Hz=50
UseExpertModes=1
UseAutoSwitching=1
MinSwitchDelay=50
Mode256x240=640,480,60,50,256,240
Mode256x480=640,480,60,50,256,240
Mode320x240=640,480,60,50,320,240
Mode320x480=640,480,60,50,320,240
Ca me donne le même résultat que précédemment.

Edit : J'ai testé sous Retroarch, j'arrive à avoir le jeu en pixel perfect et en plein écran, en mettant la résolution, une fois le jeu lancé, en 320x240.

Sauf que lorsque je quitte/relance Retroarch, Retroarch se relance directement en 320x240 (pas gênant) mais, par contre, le fullscreen repasse en 1/4 d'écran (comme Kega Fusion) et je dois repasser manuellement Retroarch en 640x480, relancer un jeu et le repasser en 320x240 pour avoir du fullscreen.

J'ai également tenter de forcer l'enregistrement du 320x240 dans Retroarch, mais même en sauvegardant, il se relance toujours dans la résolution du bureau (640x480i) et c'est visiblement ça le problème. Evidemment, mettre le bureau en 320x240 n'est pas une option car ça rendrait mon frontend illisible.

Mais sinon, j'arrive à activer la bonne résolution sous Retroarch, c'est juste que même en sauvegardant (config principale, config du core, config du jeu), je dois toujours tout réactiver à la main à chaque démarrage.

Blaw
stick de platine
Messages : 1982
Inscription : 04 oct. 2020, 13:33
A remercié : 464 fois
A été remercié : 139 fois

Re: Emulateur Megadrive sur écran 15khz

#3 Message par Blaw »

Au final, pour RetroArch, ce serait un bug qui est présent depuis la version 1.2.3, voir cette source : https://forums.libretro.com/t/crt-emudr ... issue/5197

Ca fonctionne correctement en 1.2.2 mais la version est trop vieille pour encore être utilisable (et à l'époque ne supportait pas encore les CRT nativement).

En attendant de trouver une solution avec Kega Fusion ou de trouver un autre émulateur compatible qui ne se fiera pas à la résolution du bureau, je vais mettre la dernière version de RetroArch et switcher manuellement le bureau en 320x240 lorsque je voudrais jouer à Gynoug et autres, puis reswitcher en 640x480i après.

Dommage que ArcadeOSD ne permette pas d'utiliser de ligne de commande, ça aurait pu s'automatiser.

Pour les anciennes consoles, il faut croire que le plus simple est un raspberry pi. J'en reprendrais peut être un, sachant que j'ai encore mon Pi2Jamma.

Blaw
stick de platine
Messages : 1982
Inscription : 04 oct. 2020, 13:33
A remercié : 464 fois
A été remercié : 139 fois

Re: Emulateur Megadrive sur écran 15khz

#4 Message par Blaw »

Pour conclure le thread... maintenant, ça fonctionne... mais je ne sais pas trop quelle modification aura permis ce miracle. Peut-être le passage en dx11 pour la vidéo, peut être autre chose (j'ai touché à des options CRT qui ne s'affiche qu'en activant la configuration avancée).

Maintenant, lorsque je lance Retroarch, l'écran switche la résolution juste avant et lance bien Retroarch dans la bonne résolution.

Et lorsque je le ferme, l'écran reswitche en 480i.

J'ai donc préparé deux mêmes versions de Retroarch configurées, avec juste une différence de résolution pour ne pas avoir à changer à chaque fois.

Une en 320x224 et une autre en 256x224 (les 256x240 et 320x240 me seront inutiles vu que les quelques rares jeux que je compte mettre seront mis en versions NTSC).

Dans le doute, et si quelqu'un tombe sur ce problème un jour, je mets une copie du fichier Retroarch.cfg ici : http://www.hiei-tf.fr/temp/retroarch.cfg

Il y a juste à changer les deux lignes qui suivent :

Code : Tout sélectionner

video_fullscreen_x = "320"
video_fullscreen_y = "224"
Par la résolution nécessaire (c'est aussi faisable dans le menu).

J'ai également renommé le sujet, histoire que le titre soit plus clair, maintenant qu'il est résolu.

Blaw
stick de platine
Messages : 1982
Inscription : 04 oct. 2020, 13:33
A remercié : 464 fois
A été remercié : 139 fois

Re: [Résolu] Emul Megadrive en 15khz / RetroArch ne switche pas de résolution avec le bureau de Windows (10) en 640x480i

#5 Message par Blaw »

Je remonte ce sujet car Retroarch a un problème de compatibilité (connu) avec BigBox, du moins certains cores.

Lorsqu'ils sont lancés par BigBox, certains cores lagguent, ce qui est le cas des cores Megadrive (alors qu'ils ne lagguent par lorsqu'ils sont lancés par LaunchBox).

Dans mon cas, je me contentais donc de lancer RetroArch manuellement.

Cependant, j'ai trouvé mieux que RetroArch pour ce genre d'utilisations.

Ca s'appelle Emu4crt pour Mednafen et c'est disponible ici : https://github.com/emu4crt/files

Le programme utilise directement les modelines de VmMaker, il suffit d'ajouter quatres résolutions pour la Megadrive.

Perso, j'ai ajouté :

## Mega Drive - Genesis ##

256 x 224 @ 60.000000 megadrive
256 x 240 @ 60.000000 megadrive
320 x 224 @ 60.000000 megadrive
320 x 240 @ 60.000000 megadrive

en considérant que je n'utiliserai que des jeux NTSC.

On peut aussi utiliser les super resolutions, pour ceux qui préfèrent.

Ensuite, dans le fichier mednafen.cfg, il faut choisir l'un de ces trois choix.

video.resolution_switch native -> to use native resolution mode
video.resolution_switch super -> to use super resolution mode
video.resolution_switch 0 -> to disable resolution switch [DEFAULT MODE]

Dans mon cas, j'ai mis "native".

Et j'ai aussi forcé le fullscreen par défaut (sinon, ça s'affichait en fenêtré et donc en entrelacé) :

;Enable fullscreen mode.
video.fs 1

Et ca fonctionne nickel, même avec BigBox, les jeux tournent à la bonne vitesse, et en pixel perfect (ça switche même de résolution à la volée lorsque le jeu en utilise plusieurs, certains utilisant une autre résolution pour l'écran-titre, par exemple).

Le dernier bon point, c'est que ça supporte pas mal de consoles : NES, SNES, SATURN, PS1, PCE, PCFX, MD, SMS.

bekean23
stick de carton
Messages : 2
Inscription : 14 juil. 2023, 05:45
A remercié : 0
A été remercié : 0

Re: [Résolu] Emul Megadrive en 15khz / RetroArch ne switche pas de résolution avec le bureau de Windows (10) en 640x480i

#6 Message par bekean23 »

Blaw a écrit : 29 août 2021, 15:19 Je remonte ce sujet car Retroarch a un problème de compatibilité (connu) avec BigBox, du moins certains cores.

Lorsqu'ils sont lancés par BigBox, certains cores lagguent, ce qui est le cas des cores Megadrive (alors qu'ils ne lagguent par lorsqu'ils sont lancés par LaunchBox).

Dans mon cas, je me contentais donc de lancer RetroArch manuellement.

Cependant, j'ai trouvé mieux que RetroArch pour ce genre d'utilisations.

Ca s'appelle Emu4crt pour Mednafen et c'est disponible ici : https://github.com/emu4crt/files fnf

Le programme utilise directement les modelines de VmMaker, il suffit d'ajouter quatres résolutions pour la Megadrive.

Perso, j'ai ajouté :

## Mega Drive - Genesis ##

256 x 224 @ 60.000000 megadrive
256 x 240 @ 60.000000 megadrive
320 x 224 @ 60.000000 megadrive
320 x 240 @ 60.000000 megadrive

en considérant que je n'utiliserai que des jeux NTSC.

On peut aussi utiliser les super resolutions, pour ceux qui préfèrent.

Ensuite, dans le fichier mednafen.cfg, il faut choisir l'un de ces trois choix.

video.resolution_switch native -> to use native resolution mode
video.resolution_switch super -> to use super resolution mode
video.resolution_switch 0 -> to disable resolution switch [DEFAULT MODE]

Dans mon cas, j'ai mis "native".

Et j'ai aussi forcé le fullscreen par défaut (sinon, ça s'affichait en fenêtré et donc en entrelacé) :

;Enable fullscreen mode.
video.fs 1

Et ca fonctionne nickel, même avec BigBox, les jeux tournent à la bonne vitesse, et en pixel perfect (ça switche même de résolution à la volée lorsque le jeu en utilise plusieurs, certains utilisant une autre résolution pour l'écran-titre, par exemple).

Le dernier bon point, c'est que ça supporte pas mal de consoles : NES, SNES, SATURN, PS1, PCE, PCFX, MD, SMS.
Emu4crt utilise directement les modelines de VmMaker pour créer des résolutions spécifiques à la Mega Drive. Vous avez ajouté quatre résolutions pour la Mega Drive dans le fichier de configuration, en vous assurant d'utiliser des jeux NTSC. Vous avez également choisi le mode de résolution "native" et activé le mode plein écran par défaut dans le fichier mednafen.cfg.
Cette configuration fonctionne parfaitement, même avec BigBox, et les jeux fonctionnent à la bonne vitesse avec une précision des pixels. De plus, Emu4crt prend en charge plusieurs consoles, notamment NES, SNES, Saturn, PS1, PCE, PCFX, MD, et SMS.

Blaw
stick de platine
Messages : 1982
Inscription : 04 oct. 2020, 13:33
A remercié : 464 fois
A été remercié : 139 fois

Re: [Résolu] Emul Megadrive en 15khz / RetroArch ne switche pas de résolution avec le bureau de Windows (10) en 640x480i

#7 Message par Blaw »

Tout à fait.

Par contre, pour Saturn et PlayStation, il est mieux d'utiliser les super resolutions car il y a pas mal de résolutions différentes utilisables par les jeux.

Répondre