Gamoover

[move]Pour vous aussi la chipo ne sera jamais qu'un bootleg de merguez (c)sushy18 ? Alors soyez les bienvenus sur Gamoover ! [/move]

Menu

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.

Voir les contributions Menu

Messages - acepad

#1
PlayRetro (ex Hardcade) / Hardcade devient PlayRetro !
Mercredi 11 Février 2026, 15:28:28 PM
Salut, merci beaucoup pour ta proposition de don,  il y a une nouvelle version en cours que je n'ai jamais sortie , il faut que je me remette dessus , j'ai entre temps développé un fork de MAME ancien 0.168, version adaptée pour CRT, je travailles sur ça actuellement, j'ai déjà réussi à appliquer une auto synchronisation du timing en calculant le réel refresh rate de la résolution au lancement du jeu, et ça fonctionne à merveille même si les modelines sont éloignés du timing, MAME se cale tout seul , je suis aussi en train d'ajouter deux options : Un FRAME_DELAY (déjà connu avec Groovymame) , et un BEAM-POSITIONING (permet de cacher la ligne de tearing sans activer la vsync...
#2

MAJ 18/01/2026


Download release and sources GiTHub : https://github.com/HardCade/hardcade/releases


================================================================================
CRT-MAME-ARCADE-2D Perceptual Sync 0.168 V2.1
================================================================================

Version Développement — Décembre 2025
© 2025 Hardcade — Olivier Mileo

================================================================================
DESCRIPTION
================================================================================

CRT-MAME-ARCADE-2D Perceptual Sync est une version spécialisée de MAME 0.168 optimisée pour
l'arcade 2D sur moniteurs CRT 15 kHz sous WINXP-32 avec carte graphique ATI ou NVIDIA +
crt_emu drivers ou soft15khz.

Trois approches complémentaires de synchronisation et sélection vidéo CRT sont
proposées pour un contrôle total de votre affichage :


  Option INI auto_refresh_sync = 0

→ MODE MANUEL PERFECT SYNC : Affinage précis du Slider Refresh Rate jusqu'à
  4 décimales (±0.0001 Hz) pour un contrôle total du timing. Idéal pour les puristes
  qui souhaitent calibrer chaque jeu individuellement et obtenir un timing hardware
  strictement authentique avec un tearing fixe quasi-invisible.


  Option INI auto_refresh_sync = 1

→ MODE AUTOMATIQUE PERFECT SYNC (DDRAW) : Le refresh rate réel du CRT est mesuré automatiquement
  au lancement du jeu, après que l'écran vidéo ait produit un nombre suffisant de frames stables.
  La valeur calculée est appliquée dynamiquement au moteur vidéo et au slider utilisateur en mémoire
  uniquement (aucune écriture dans le fichier CFG). scrolling ultra-fluide même sur des modelines
  atypiques (57.45878 Hz, 58.25494 Hz, 60.61575 Hz...)


  HARDCADE SWITCHRES CRT (Intégré)

→ SÉLECTION DE MODE OPTIMISÉE 15KHZ : Une réécriture profonde de l'algorithme DirectDraw.
  Contrairement au MAME standard, cette version privilégie la fluidité (Hz) sur la résolution
  exacte grâce à une tolérance verticale de ±24 lignes. Elle permet d'utiliser vos meilleures
  modelines 240p pour tout le catalogue (224p, 239p, 256p...) afin de garantir un affichage
  toujours complet, centré, et une synchronisation verticale parfaite sans saccades.


Choisissez votre philosophie : contrôle manuel absolu ou fluidité automatique sans effort.
Les deux méthodes éliminent le tearing mobile et garantissent une expérience CRT optimale.
Si vos modelines sont proches des timings originaux des jeux, l'activation de cette
option vous offrira l'expérience ultime.

Si vos modelines sont éloignées des timings originaux, vous percevrez uniquement une légère
augmentation ou diminution de la vitesse du jeu, tout en conservant un timing parfait en termes
de scrolling fluide, d'élimination du tearing, et de fidélité visuelle globale.
#3
Hello la TEAM :-)


MAJ du 10/01/2026 (readme complet à jour en haut)   :

Download release sur GiTHub : https://github.com/HardCade/hardcade/releases


================================================================================
CRT-MAME-ARCADE-2D Perceptual Sync 0.168 V2.0
================================================================================

Version Développement — Décembre 2025
© 2025 Hardcade — Olivier Mileo

================================================================================
DESCRIPTION
================================================================================


CRT-MAME-ARCADE-2D Perceptual Sync est une version spécialisée de MAME 0.168 optimisée pour
l'arcade 2D sur moniteurs CRT 15 kHz et écrans LCD modernes sous WINXP-32 avec carte graphique ATI ou NVIDIA +
crt_emu drivers ou soft15khz.

Cette édition se concentre sur la réduction maximale de l'input lag, la légèreté et
l'amélioration de la synchronisation vidéo pour une expérience arcade authentique.

Deux approches complémentaires de synchronisation CRT sont proposées :

→ MODE MANUEL "Perceptual Sync" : Affinage précis du Slider Refresh Rate jusqu'à
  4 décimales (±0.0001 Hz) pour un contrôle total du timing. Idéal pour les puristes
  qui souhaitent calibrer chaque jeu individuellement et obtenir un timing hardware
  strictement authentique avec un tearing fixe quasi-invisible.

→ MODE AUTOMATIQUE (en cours de dev) "Adaptive Sync" : VSync DirectDraw Low-Level qui s'adapte
  automatiquement au refresh réel de votre CRT (type Snes9x/RetroArch). Scrolling
  ultra-fluide garanti quelle que soit votre modeline (58 Hz, 60 Hz, 61 Hz...),
  sans aucun réglage manuel nécessaire. MAME ajuste sa vitesse pour matcher
  parfaitement votre écran.

Choisissez votre philosophie : contrôle manuel absolu ou fluidité automatique sans effort.
Les deux méthodes éliminent le tearing mobile et garantissent une expérience CRT optimale.


// PHILOSOPHIE :

Pourquoi "CRT-MAME-ARCADE-2D Perceptual Sync" alors que d'autres émulateurs comme GROOVYMAME existent déjà ?

Que vous émulez en15khz avec du matériel récent ou ancien, la synchronisation entre l'émulation et l'affichage
n'est jamais parfaite à 100% en pratique. Même si le modeline est calculé pour correspondre exactement à la fréquence du jeu original,
parfois même en respectant les valeurs précises des drivers video de MAME le timing interpreté par votre matériel sera plus ou moins
éloigné du timing qu'il devrait réellement adopter pour être parfaitement calé sur le timing du jeu,

il existe toujours des écarts (grands ou minuscules) dus aux :

- Tolérances du matériel (moniteur CRT, carte graphique)
- Imprécisions dans les horloges et oscillateurs
- Arrondis dans les calculs, système d'exploitation

Ces écarts sont aléatoires selon votre matériel même si vous utilisez LA modeline parfaite qui respecte mathématiquement
les valeurs imposées par le système du jeu MAME, malgré ça la synchronisation dérive plus ou moins au fil du temps,
créant cette ligne de tearing qui "marche" lentement ou rapidement sur l'écran - elle peut mettre plusieurs minutes voire dizaines de
minutes pour traverser tout l'écran. C'est généralement considéré comme acceptable car :

La ligne se déplace si lentement qu'elle est peu gênante en jeu
C'est infiniment mieux que du tearing classique avec des lignes multiples qui bougent rapidement
En y ajoutant une V-sync on la fait disparaitre au détriment d'une frame d'input lag, mais si notre modeline est trop éloigné
du timing parfait nous obtiendrons un scrolling saccadé. Certains utilisateurs affinent encore leurs modelines ou ajustent
légèrement la fréquence de rafraîchissement pour minimiser ce phénomène, mais un micro-tearing reste souvent présent.


Perceptual Sync est la philosophie d'un mode d'affichage CRT qui privilégie la stabilité visuelle perçue
(zéro tearing mobile, scrolling fluide) plutôt que l'exactitude absolue du refresh théorique.
c'est une doctrine d'affichage CRT basée sur la perception humaine, pas sur la perfection mathématique.

Perceptual Sync privilégie la fluidité perçue et la stabilité de l'image sur CRT.
De légères variations de vitesse (≤0,0001 à 0,5 Hz) sont volontairement acceptées afin d'éliminer le tearing mobile.

🔴 Ce que Perceptual Sync NE CHERCHE PAS à faire

❌ Être mathématiquement exact
❌ Être "perfect frame"
❌ Imiter GroovyMAME
❌ Convaincre les puristes théoriques

👉 Il assume ses choix.

Autrement dit : "Ce que l'œil voit est plus important que ce que les chiffres disent."

// Les principes fondamentaux :

- Le refresh n'a PAS besoin d'être exact si on tolère une variation de : ±0.0001 à 0,5 Hz (configurable)

👉 Résultat : vitesse imperceptiblement différente, image stable.

// Priorité absolue à la stabilité du tearing :

- Tearing autorisé ou pas avec Vsync activée

Mais : fixe, coincé hors zone visible si possible ou toujours au même endroit

👉 Un tearing immobile est psychologiquement invisible.

// Aucune chasse au "modeline parfaite" :

- Pas de calcul dynamique

- Pas de création de modes

- Pas d'ajustement en temps réel

👉 Une fois le mode choisi → et le slider refresh rate affiné on n'y touche plus !

// Le joueur prime sur le chronomètre :

- L'émulation respecte le gameplay

- Pas l'horloge atomique

- Aucune dérive perceptible en jeu

#4
Hello la TEAM :-)

Download release and sources on GiTHub : https://github.com/HardCade/hardcade/releases


================================================================================
CRT-MAME-ARCADE-2D Perceptual Sync 0.168 V2.1
================================================================================

Version Développement — Décembre 2025
© 2025 Hardcade — Olivier Mileo

================================================================================
DESCRIPTION
================================================================================

CRT-MAME-ARCADE-2D Perceptual Sync est une version spécialisée de MAME 0.168 optimisée pour
l'arcade 2D sur moniteurs CRT 15 kHz sous WINXP-32 avec carte graphique ATI ou NVIDIA +
crt_emu drivers ou soft15khz.

Trois approches complémentaires de synchronisation et sélection vidéo CRT sont
proposées pour un contrôle total de votre affichage :


  Option INI auto_refresh_sync = 0

→ MODE MANUEL PERFECT SYNC : Affinage précis du Slider Refresh Rate jusqu'à
  4 décimales (±0.0001 Hz) pour un contrôle total du timing. Idéal pour les puristes
  qui souhaitent calibrer chaque jeu individuellement et obtenir un timing hardware
  strictement authentique avec un tearing fixe quasi-invisible.


  Option INI auto_refresh_sync = 1

→ MODE AUTOMATIQUE PERFECT SYNC (DDRAW) : Le refresh rate réel du CRT est mesuré automatiquement
  au lancement du jeu, après que l'écran vidéo ait produit un nombre suffisant de frames stables.
  La valeur calculée est appliquée dynamiquement au moteur vidéo et au slider utilisateur en mémoire
  uniquement (aucune écriture dans le fichier CFG). scrolling ultra-fluide même sur des modelines
  atypiques (57.45878 Hz, 58.25494 Hz, 60.61575 Hz...)


  HARDCADE SWITCHRES CRT (Intégré)

→ SÉLECTION DE MODE OPTIMISÉE 15KHZ : Une réécriture profonde de l'algorithme DirectDraw.
  Contrairement au MAME standard, cette version privilégie la fluidité (Hz) sur la résolution
  exacte grâce à une tolérance verticale de ±24 lignes. Elle permet d'utiliser vos meilleures
  modelines 240p pour tout le catalogue (224p, 239p, 256p...) afin de garantir un affichage
  toujours complet, centré, et une synchronisation verticale parfaite sans saccades.


Choisissez votre philosophie : contrôle manuel absolu ou fluidité automatique sans effort.
Les deux méthodes éliminent le tearing mobile et garantissent une expérience CRT optimale.
Si vos modelines sont proches des timings originaux des jeux, l'activation de cette
option vous offrira l'expérience ultime.

Si vos modelines sont éloignées des timings originaux, vous percevrez uniquement une légère
augmentation ou diminution de la vitesse du jeu, tout en conservant un timing parfait en termes
de scrolling fluide, d'élimination du tearing, et de fidélité visuelle globale.


// PHILOSOPHIE :

Pourquoi "CRT-MAME-ARCADE-2D Perceptual Sync" alors que d'autres émulateurs comme GROOVYMAME existent déjà ?

Que vous émulez en 15khz avec du matériel récent ou ancien, la synchronisation entre l'émulation et l'affichage
n'est jamais parfaite à 100% en pratique. Même si le modeline est calculé pour correspondre exactement à la fréquence du jeu original,
parfois même en respectant les valeurs précises des drivers video de MAME le timing interpreté par votre matériel sera plus ou moins
éloigné du timing qu'il devrait réellement adopter pour être parfaitement calé sur le timing du jeu,

il existe toujours des écarts (grands ou minuscules) dus aux :

- Tolérances du matériel (moniteur CRT, carte graphique)
- Imprécisions dans les horloges et oscillateurs
- Arrondis dans les calculs, système d'exploitation

Ces écarts sont aléatoires selon votre matériel même si vous utilisez LA modeline parfaite qui respecte mathématiquement
les valeurs imposées par le système du jeu MAME, malgré ça la synchronisation dérive plus ou moins au fil du temps,
créant cette ligne de tearing qui "marche" lentement ou rapidement sur l'écran - elle peut mettre plusieurs minutes voire dizaines de
minutes pour traverser tout l'écran. C'est généralement considéré comme acceptable car :

La ligne se déplace si lentement qu'elle est peu gênante en jeu
C'est infiniment mieux que du tearing classique avec des lignes multiples qui bougent rapidement
En y ajoutant une V-sync on la fait disparaitre au détriment d'une frame d'input lag, mais si notre modeline est trop éloigné
du timing parfait nous obtiendrons un scrolling saccadé. Certains utilisateurs affinent encore leurs modelines ou ajustent
légèrement la fréquence de rafraîchissement pour minimiser ce phénomène, mais un micro-tearing reste souvent présent.


Perceptual Sync est la philosophie d'un mode d'affichage CRT qui privilégie la stabilité visuelle perçue
(zéro tearing mobile, scrolling fluide) plutôt que l'exactitude absolue du refresh théorique.
c'est une doctrine d'affichage CRT basée sur la perception humaine, pas sur la perfection mathématique.

Perceptual Sync privilégie la fluidité perçue et la stabilité de l'image sur CRT.
De légères variations de vitesse (≤0,0001 à 0,5 Hz) sont volontairement acceptées afin d'éliminer le tearing mobile.

🔴 Ce que Perceptual Sync NE CHERCHE PAS à faire

❌ Être mathématiquement exact
❌ Être "perfect frame"
❌ Imiter GroovyMAME
❌ Convaincre les puristes théoriques

👉 Il assume ses choix.

Autrement dit : "Ce que l'œil voit est plus important que ce que les chiffres disent."

// Les principes fondamentaux :

- Le refresh n'a PAS besoin d'être exact si on tolère une variation de : ±0.0001 à 0,5 Hz (configurable)

👉 Résultat : vitesse imperceptiblement différente, image stable.

// Priorité absolue à la stabilité du tearing :

- Tearing autorisé ou pas avec Vsync activée

Mais : fixe, coincé hors zone visible si possible ou toujours au même endroit

👉 Un tearing immobile est psychologiquement invisible.

// Aucune chasse au "modeline parfaite" :

- Pas de calcul dynamique

- Pas de création de modes

- Pas d'ajustement en temps réel

👉 Une fois le mode choisi → et le slider refresh rate affiné on n'y touche plus !

// Le joueur prime sur le chronomètre :

- L'émulation respecte le gameplay

- Pas l'horloge atomique

- Aucune dérive perceptible en jeu

================================================================================
PRINCIPALES FONCTIONNALITÉS
================================================================================

INPUT & LATENCE
───────────────
  • Late Input Polling — Réduction de l'input lag
  • DirectInput non bufferisé — Polling direct de l'état des périphériques
  • Suppression de la frame queue GPU (D3D9)

VIDEO & SYNCHRONISATION
───────────────────────

  • Auto Refresh Syncro, calcul du réel refresh rate, s'adapte AUTOMATIQUEMENT au refresh réel du CRT
  • Sauvegarde du slider Screen Refresh Rate dans les CFG + précisions à 4 décimales au lieu de 3 par défaut
  • Switchres - HARDCADE CRT-OPTIMIZED MODE SELECTION (Version 3.0)
  • DirectDraw Low-Level VSync — Suppression du tearing sans surcoût
  • D3D9 Real VSync — Suppression du tearing sans surcoût
  • Désactivation du frameskip implicite — Scrolling fluide sur CRT


INTERFACE & CONFIGURATION
─────────────────────────

  • Build ARCADE 2D optimisé — Exécutable allégé (dépourvu de jeux 3D, mécanique, casino, mahjong, ordi, consoles...
    No Open GL, No BGFX, No support Network, No sound midi, No LUA Script)

================================================================================
MODIFICATIONS TECHNIQUES DÉTAILLÉES
================================================================================


┌─────────────────────────────────────────────────────────────────────────────
│ AUTO REFRESH SYNC CRT / LCD DDRAW (HARDCADE)
└─────────────────────────────────────────────────────────────────────────────

  Cette fonctionnalité permet de mesurer et synchroniser automatiquement
  le refresh rate réel du CRT au lancement du jeu.

  La calibration est effectuée UNE SEULE FOIS, après le démarrage effectif
  du jeu, lorsque l'écran vidéo est stable (frames réelles déjà produites).

  Le refresh mesuré est :
    • appliqué dynamiquement au moteur vidéo
    • appliqué au slider utilisateur en mémoire uniquement

  Lorsque auto_refresh_sync est activé, toute option de sauvegarde du
  slider refresh dans le CFG est volontairement ignorée.

  Cette approche garantit :
    • synchronisation exacte CRT ↔ jeu
    • scrolling parfaitement fluide
    • absence de tearing
    • comportement déterministe à chaque lancement

  La calibration est volontairement retardée de plusieurs dizaines de frames
  afin d'éviter toute mesure instable lors des phases d'initialisation.

  Option INI :
    • auto_refresh_sync 1

  Comportement :
    • Fonction active uniquement lorsque auto_refresh_sync = 1
    • Le refresh est recalculé à chaque lancement du jeu
    • Le slider utilisateur reste modifiable pendant l'exécution
    • Compatible lancement direct par ligne de commande
    • Indépendant de l'UI MAME

  Fichiers modifiés :
    • src/emu/video.cpp
    • src/emu/video.h
    • src/emu/ui/ui.cpp
    • src/osd/windows/drawdd.cpp


┌─────────────────────────────────────────────────────────────────────────────
│ AUTO REFRESH SYNC CRT / LCD D3D (HARDCADE)
└─────────────────────────────────────────────────────────────────────────────

                        .... En cours de dev ....


┌─────────────────────────────────────────────────────────────────────────────
│ SLIDER SCREEN REFRESH RATE – HAUTE PRÉCISION & SAUVEGARDE CFG
└─────────────────────────────────────────────────────────────────────────────

  Sauvegarde et rechargement automatique de la fréquence utilisateur dans
  cfg/[nom_du_jeu].cfg, avec gestion du réglage ultra-fin du refresh rate CRT
  à 0.0001 Hz, affichage et sauvegarde à 4 décimales.

  Fonctionne uniquement si auto_refresh_sync = 0

  Fonctionnement des touches :
    • Flèches seules      → ±1.0000 Hz
    • SHIFT + flèches     → ±0.1000 Hz
    • ALT + flèches       → ±0.0010 Hz
    • ESPACE + flèches    → ±0.0001 Hz
    • CTRL + flèches      → ±1.0000 Hz (rapide)

  Fonctions ajoutées :
    • config_load_screen_refresh() — src/emu/video.cpp
    • config_save_screen_refresh() — src/emu/video.cpp

  Fonctions modifiées :
    • slider_refresh() — src/emu/ui/ui.cpp
        ◦ Conversion base 10000 → Hz pour 4 décimales
        ◦ Arrondi et sauvegarde CFG précis à 4 décimales
        ◦ Affichage FPS en 4 décimales
    • ui_menu_sliders::handle() — src/emu/ui/sliders.cpp
        ◦ Gestion de la touche ESPACE pour incrément ultra-fin
    • slider_init() — src/emu/ui/ui.cpp
        ◦ incval du slider refresh modifié à 1 (0.0001 Hz)

  Fichiers concernés :
    • src/emu/screen.cpp / screen.h
    • src/emu/video.cpp
    • src/emu/ui/ui.cpp
    • src/emu/ui/sliders.cpp
┌─────────────────────────────────────────────────────────────────────────────
│ HARDCADE SWITCHRES - CRT-OPTIMIZED MODE SELECTION
└─────────────────────────────────────────────────────────────────────────────

  Cette version de CRT-MAME-ARCADE 0.168 introduit une réécriture complète de la
  fonction SwitchRes DirectDraw, spécifiquement pensée pour un affichage CRT
  15 kHz (arcade / JAMMA / RGB) et les configurations Windows XP / GeForce.

  La sélection du mode vidéo DirectDraw repose désormais sur une hiérarchie de
  priorités "Hardware-First", garantissant la fluidité et l'intégrité de l'image.

  LOGIQUE DE SÉLECTION HARDCADE V3 :

  1. PRIORITÉ ABSOLUE AU "INI" (User Override) :
     Si une résolution est forcée dans le fichier .ini du jeu, le SwitchRes
     l'applique immédiatement avec un score prioritaire (1.000.000 pts).
     Cela permet de forcer un mode spécifique même s'il est techniquement
     éloigné de la résolution native du jeu.

  2. TOLÉRANCE VERTICALE INTELLIGENTE (±24 Lignes) :
     En mode Auto, le SwitchRes autorise désormais un écart allant jusqu'à
     24 lignes verticales (ex: utiliser un mode 240p pour un jeu en 224p).
     Cela permet de maintenir l'utilisation de modelines stables et bien
     cadrées physiquement, évitant les écrans noirs ou les images tronquées.

  3. PRIORITE DU REFRESH RATE (Fluidité Totale) :
     À l'intérieur de la zone de tolérance verticale, c'est la proximité du
     rafraîchissement (Hz) qui détermine le gagnant. Le système préférera
     toujours un mode à 58Hz pour un jeu de 58Hz, même si le nombre de lignes
     diffère légèrement, garantissant un scrolling parfait sans saccades.

  DIFFÉRENCES AVEC LA LOGIQUE MAME D'ORIGINE :

  • MAME ORIGINAL (Logique LCD) :
    - Priorité au refresh supérieur (pénalité si Hz inférieur).
    - Rejet immédiat si la résolution est inférieure à la cible (Image tronquée).
    - Importance démesurée de la largeur (Pixel Clock).

  • HARDCADE CRT (Logique Analogique) :
    - Hauteur (Scanlines) et Refresh sont les seuls critères vitaux.
    - Largeur traitée comme critère secondaire (ajustable sur le moniteur).
    - Élimination du scaling vertical destructeur.


  FICHIERS MODIFIÉS :

  • src/osd/modules/render/drawdd.cpp
  → Réécriture de enum_modes_callback (Logique Hardcade V3)

  • Rendu LCD (Fonctionne aussi parfaitement !

  Aucun impact sur :
  • D3D / OGL
  • Autres backends vidéo


┌─────────────────────────────────────────────────────────────────────────────
│ LATE INPUT POLLING
└─────────────────────────────────────────────────────────────────────────────

  Les entrées DirectInput sont polées le plus tard possible dans la frame,
  juste avant le rendu vidéo. Évite l'utilisation d'inputs de la frame N-1.

  Fichier modifié : src/osd/windows/video.cpp
  Fonction        : windows_osd_interface::update(bool skip_redraw)

┌─────────────────────────────────────────────────────────────────────────────
│ DIRECTINPUT NON BUFFERISÉ
└─────────────────────────────────────────────────────────────────────────────

  Désactivation du buffer d'événements DirectInput (DIPROP_BUFFERSIZE = 0).
  Lecture directe via GetDeviceState élimine 1 à 3 ms de latence.

  Fichier modifié : src/osd/windows/input.cpp

┌─────────────────────────────────────────────────────────────────────────────
│ DÉSACTIVATION DU FRAMESKIP IMPLICITE (CRT)
└─────────────────────────────────────────────────────────────────────────────

  MAME 0.168 applique un frameskip interne même avec frameskip=0 lorsqu'aucune
  modification vidéo n'est détectée. Ce comportement dégrade le scrolling CRT.

  Le frameskip implicite est désactivé quand frameskip=0 est explicite.
  Compatible DDraw, Windows XP, CRT 15 kHz.

  Fichier modifié : src/emu/video.cpp

┌─────────────────────────────────────────────────────────────────────────────
│ SUPPRESSION DE LA FRAME QUEUE GPU (D3D9)
└─────────────────────────────────────────────────────────────────────────────

  Configuration D3D9 :
    • SwapEffect = D3DSWAPEFFECT_COPY
    • BackBufferCount = 1

  Résultat : -1 frame de latence réelle côté affichage.

  Fichier modifié : src/osd/windows/ddrawd3d.cpp


┌─────────────────────────────────────────────────────────────────────────────
│ D3D9 REAL VSYNC (NO TEARING)
└─────────────────────────────────────────────────────────────────────────────

  Force un VSync matériel D3D9 réel (PresentationInterval = D3DPRESENT_INTERVAL_ONE)
  indépendant du VSync MAME classique. Supprime le tearing sans surcoût CPU.

  Option INI : crtvsync 0|1
    0 — Comportement MAME d'origine (défaut)
    1 — VSync D3D9 matériel activé

  Usage recommandé : Écrans LCD 31kHz ou CRT (ajoute ~1 frame de lag sur CRT)

  Fichiers modifiés :
    • src/osd/windows/winmain.cpp
    • src/osd/windows/video.h / video.cpp
    • src/osd/windows/ddrawd3d.cpp

┌─────────────────────────────────────────────────────────────────────────────
│ DIRECTDRAW LOW-LEVEL VSYNC (CRT) V3
└─────────────────────────────────────────────────────────────────────────────
  Mode VSync DirectDraw bas niveau pour CRT 15 kHz sous Windows XP.
  Rendu direct dans la surface primaire synchronisé sur le Vertical Blank.

  Option INI : ddraw_lowlevel_vsync 0|1
    0 — Comportement MAME classique (défaut)
    1 — VSync DirectDraw bas niveau

  ⚠ Active uniquement si waitvsync = 0
  ⚠ Désactivé automatiquement si triple buffering actif

  Fonctionnement :
    1. Attente du VBL via WaitForVerticalBlank(DDWAITVB_BLOCKEND)
    2. Lock direct de la surface primaire
    3. Scan des primitives (détection blending/alpha)
    4. Rendu membuffer ou direct selon besoins
    5. Copie contrôlée membuffer → surface primaire
    6. Unlock + bypass du blit MAME
    7. Désactivation complète du throttling MAME (update_throttle bypass)

  Synchronisation automatique type Snes9x :
    • MAME s'adapte AUTOMATIQUEMENT au refresh réel du CRT
    • Fonctionne avec N'IMPORTE QUELLE modeline (58 Hz, 60 Hz, 61 Hz...)
    • Le VBlank CRT dicte le timing → scrolling toujours fluide
    • Pas besoin d'ajuster le slider refresh rate manuellement
    • La vitesse d'émulation s'ajuste pour matcher le refresh de l'écran
   
  Exemple :
    Jeu CPS2 natif : 59.637 Hz
    Modeline CRT   : 60.000 Hz
    → MAME tourne à 60 Hz (100.6% vitesse) → scrolling parfaitement fluide
   
    Jeu CPS2 natif : 59.637 Hz 
    Modeline CRT   : 58.000 Hz
    → MAME tourne à 58 Hz (97.3% vitesse) → scrolling parfaitement fluide

  Support :
    • Formats 8-bit, 16-bit, 32-bit
    • Blending et effets alpha complets
    • RGB 32-bit (0x00ff0000), 16-bit 565 (0xf800), 15-bit 555 (0x7c00)
    • Gestion surfaces perdues (Alt+Tab)

  Compatibilité GPU (Windows XP) :
    ✓ Excellente : NVIDIA TNT/GeForce 2/3/4/FX, ATI Radeon 7000-9800,
                   Matrox G200/G400/G450/G550
    ~ Partielle  : Intel iGPU i815/i845/i865 (VBL émulé)
    ✗ Non testé  : Drivers Vista+ / WDDM

  Résultat :
    • Latence réduite d'environ 1 frame
    • Synchronisation CRT parfaite automatique (type Snes9x/RetroArch)
    • Zéro tearing, scrolling ultra-fluide quelle que soit la modeline
    • Plus besoin d'affiner manuellement chaque jeu

  Fichiers modifiés :
    • src/osd/modules/render/drawdd.cpp
    • src/emu/video.cpp (update_throttle bypass)
    • src/emu/emuopts.cpp / emuopts.h

┌─────────────────────────────────────────────────────────────────────────────
│ ARRONDI AUTOMATIQUE DU REFRESH (ONE-SHOT) — (FONCTION SUPPRIMÉE)
└─────────────────────────────────────────────────────────────────────────────

                       ....(FONCTION SUPPRIMÉE)....

┌─────────────────────────────────────────────────────────────────────────────
│ BUILD 2D OPTIMISÉE — NETTOYAGE ARCADE.LST
└─────────────────────────────────────────────────────────────────────────────

  Version allégée spécialisée pour l'arcade 2D classique sur CRT 15 kHz.

  Systèmes supprimés :
    ✗ Tous les jeux 3D (Model 2/3, Naomi, Taito Type X etc.)
    ✗ Systèmes casino (machines à sous, poker vidéo)
    ✗ Jeux de mahjong
    ✗ Systèmes "machine" non-arcade (ordinateurs, consoles)
    ✗ Systèmes jeux mécaniques etc.

  Systèmes conservés (2D uniquement) :
    ✓ Capcom CPS1/CPS2/CPS3
    ✓ Neo Geo MVS
    ✓ Konami (GX, Classic)
    ✓ Sega System 16/18/24
    ✓ Taito (F2, F3)
    ✓ Cave (CV1000, PGM)
    ✓ Irem M72/M92
    ✓ Toaplan, Psikyo, Data East
    ✓ Namco System 1/2
    ✓ Classiques 8-bit (Pac-Man, Donkey Kong, Galaga, etc.)

  Résultat : Exécutable réduit, compilation plus rapide, liste ciblée CRT 2D.

  Fichier modifié : src/mame/arcade.lst


┌─────────────────────────────────────────────────────────────────────────────
│ DESACTIVATION DE UI LUA
└─────────────────────────────────────────────────────────────────────────────

l'appel périodique Lua periodic_check et frame_hook est maintenant commenté
pour éviter tout impact sur les performances ou les menus.


================================================================================
COMPATIBILITÉ
================================================================================

  OS        : Windows XP / 7 / 8 / 10
  Renderers : DDraw (XP), D3D9, GDI
  Monitors  : CRT 15 kHz, LCD 31 kHz

================================================================================
CRÉDITS
================================================================================

  Développement  : Olivier Mileo
  Projet         : CRT-MAME ARCADE-2D 0.168 Edition
  Base           : MAME 0.168

  © 2025 Hardcade — Tous droits réservés

================================================================================
#5
 
<:)

j'ai aussi fait une mise à jour de MameFileEditor , il va permettre de créer / trier des fichiers de listes de roms en utilisant des filtres comme les Manufacturers , les sources, les Résolutions, le Refresh Rate ... On pourra aussi déplacer des roms dans des dossiers créés, en utilisant les filtres...
#6
Salut, j'ai modifié le sujet , merci  8)
#7
Salut à tous  <:)

Je vous propose de découvrir en images un petit aperçu du contenu de la future version de PlayRetro HD.
Les thèmes seront tous disponibles en 1920x1080px.

L'esprit est toujours le même, en respectant le plus possible le design original de l'époque  :D
tous les média sont créés avec Photoshop.













































#8
PlayRetro (ex Hardcade) / Hardcade devient PlayRetro !
Dimanche 24 Septembre 2023, 11:46:09 AM
Salut Badaud ;-)
ravi de te revoir également , merci beaucoup pour tes encouragement..  pour la petite histoire j'ai perdu le nom de domaine hardcade car l'agence web par laquelle je passais à fait faillite et ils n'ont pas rendu les noms de domaine... bref.. Du coup comme j'avais déjà une nouvelle version en cours de développement il a fallut que je me précipite pour la sortir et remettre le site en ligne avec le nouveau nom PLAYRETRO.

l'esprit reste toujours le même !  pour info je travailles depuis plus d'un an sur une nouvelle version tout en HD, pour le moment il n y a pas de date de sortie mais le projet avance..  j'ai déjà créé plus de 150 thèmes en 1920x1080p, y aura un thème pour chaque systèmes d'arcade et console, toujours dans le même esprit , mais avec une qualité incroyable, toujours en respectant le design des boites originale de l'époque et des thèmes arcade, tous les thème sont refait de A à Z...  je publierais quelques média prochainement pour que vous voyez à quoi ça ressemble..


pour tes versions Törst y a surement moyen de remplacer quelques fichier sans avoir besoin de tout réinstaller (à voir) .
A bientôt Badaud j'espère te revoir bientôt..

Ace-Pad

#9
PlayRetro (ex Hardcade) / Hardcade devient PlayRetro !
Lundi 12 Juin 2023, 18:46:40 PM
salut, non c'est bon je l'ai remis en route ...
merci
#10
tu devrais retrouver quasiment les mêmes options avec RetoArch, le truc c'est de savoir comment ton Raspberry-pi envoi l'image à l'écran, tu as quoi comme résolutions de disponibles ? tu devrais pouvoir ajouter des nouvelles résolutions. Est-ce que tu peux avoir une image en 640x480 avec ton Raspberry-pi ?  si oui c'est que ton affichage sur ta TV est entrelacé.
#11
je suis sur un vieux PC Intel Pentium 4 2.80 GHZ et une carte Nvidia ancienne génération qui accepte les résolutions 15Khz.

Dans ton cas je ne saurais te dire car je n'ai jamais testé le Raspberry-pi mais ce qui est sur c'est que tu dois regarder du coté des résolutions, savoir dans quelle résolution tes jeux sont lancés..

si y a des choses que tu ne comprend pas n'hésite pas.
#12
PlayRetro (ex Hardcade) / probleme bouton start/back/quit
Samedi 04 Mars 2023, 19:11:03 PM
salut désolé de répondre si tard mais le projet était en stand by..
je sais pas si t'as résolu le problème depuis mais je pense qu'il ne supporte pas les manettes Xbox, faudrait que je test.
#13
ton message est super vieux mais je vais y répondre ça pourra aider ceux qui sont de le même cas..

eh bien je suis sur un écran TV 4:3 Cathodique (horizontal) et pour tout ce qui est jeux verticaux j'utilise des résolutions du genre "512x384 interlace" en appliquant un Stretch et en gardant l'aspect ratio d'origine.

ça permet d'avoir l'image dans sa totalité et de bonne qualité. le seul petit défaut c'est que l'image est légèrement flouté si on la compare avec du 240px à cause du stretch mais c'est pas bien gênant. Perso je trouve que c'est mieux que d'avoir une image tronquée ou d'avoir une image illisible en 240p avec un stretch appliqué, c'est pas beau... j'utilise le 384p Interlace parce que le scintillement n'est quasiment pas perceptible si on compare avec du 480p...
#14
PlayRetro (ex Hardcade) / Hardcade devient PlayRetro !
Dimanche 19 Février 2023, 12:28:03 PM
Salut l'admin  <:)

toujours aussi réactif , excellent  ^-^  merci,  je voulais t'envoyer un MP justement ...
#15
PlayRetro (ex Hardcade) / Hardcade devient PlayRetro !
Dimanche 19 Février 2023, 01:28:51 AM
merci j'avais pas vu, le lien sourceforge devrait fonctionner maintenant  <:)



#16
PlayRetro (ex Hardcade) / Hardcade devient PlayRetro !
Dimanche 19 Février 2023, 00:49:12 AM
Hardcade devient PlayRetro


Salut à tous  :D

me voila de retour sur la scène de l'émulation avec une nouvelle version du frontend qui s'appelle maintenant PLAYRETRO.

il y a eu de nombreuses améliorations qui ne sont pas forcément mentionnées dans le changelog mais vous trouverez ci-dessous les principaux changements et nouveautés :


Téléchargement direct sur sourceforge: PlayRetro frontend download

MAJ du 18 Fevrier 2023

version 4.180223beta changelog :

- défilement de l'arrière plan dans PlayRetro, peut être activé ou désactivé dans la config onglet "préférences".

- Portage NeoGeo CD Raine32 emulator

- bug fix les transitions n'étaient pas prises en compte avec listes favorites dans PlayRetro.exe

- bug fix dans PlayRetro.exe l'ordre des calques du menu était bugué lorsqu'il était modifié dans le Layout Editor.

- Portage PC-Engine CD Rom Ootake emulator (use with Virtual Clone Drive) installation automatique (si on accepte) à l'installation du frontend.

- Intégration de "MAME File Editor" qui inclus aussi "Keyboard AUTOLOAD simulation" :

MAME File Editor :

Permet de créer les fichiers Mame\INI et gérer les paramètres à la volé pour chaque jeux en sélectionnant les jeux par catégories
: Manufacturers, Résolution, Refresh Rate, Working, etc...

Permet de déplacer des listes de jeux dans des dossiers en fonction de la catégorie choisie (Manufacturer, Resolution etc...

Gère toutes les options Mame (Stretch, Aspet Ratio, Résolution, Refresh, Tripple Bufering etc...)

pour le configurer il faudra éditer les fichiers \PlayRetro\MameFileEditor\Mame_*.ini

AUTOLOAD :

Permet de créer "pour chaque jeux" une simulation des touches du clavier qui seront utilisées au lancement du jeu afin d'agir dans
les menus de l'émulateur pour choisir automatiquement certaines options utiles.

Fonctionne principalement avec l'émulateur MAME mais peut également fonctionner avec n'importe quel émulateur.
Utile pour Mame dans les menus "TAB" ou "²" pour paramétrer automatiquement les options des "Sliders" au lancement du jeu.
Vous simulez une série de touches du clavier qui feront les réglages exactement comme vous le voulez au lancement du jeu.
Par exemple vous pouvez ajuster le "Refresh Rate" d'un jeu qui tourne à 57.445HZ par défaut sur 60.000Hz à chaque lancement.
Cela permet d'obtenir des réglages plus précis !


Permet de charger automatiquement une sauvegarde au lancement du jeu en paramétrant la combinaison F7+L.

Permet de passer automatiquement tous les écrans de démarrage Mame (Skip All Screen au lancement)

UILISATION :

Dans PlayRetro.exe lorsque vous êtes dans la liste des jeux, pressez la touche F2 pour afficher la fenêtre de configuration des paramètres d'Autoload
pour le jeu sélectionné.

Dans "Mame Files Editor" lafenêtre de droite intègre "Autoload" vous devez cocher la case d'activation pour l'utiliser.

- De nombreuses améliorations ont été apportées ou autres petits bug ont été corrigés dans cette nouvelle version...