Gamoover

Forums " WORKSHOP" => Emulateurs, Frontends & Distributions => : MaKoTo Monday 26 November 2012, 20:58:21 PM

: Tuto : Patcher un Linux en 15kHz
: MaKoTo Monday 26 November 2012, 20:58:21 PM
Pour qui :
Ce tuto s'adresse aux gens qui cherchent à comprendre un peu plus comment fonctionne l'affichage en 15kHz sur un ordinateur, et à ceux qui souhaiteraient customiser leur système d'exploitation pour avoir une utilisation particulière de leurs émulateurs.

Pour les autres :
Et je pense directement à ceux que la compilation de noyau rebute, ou pour qui le tuto se passerait mal (interruption inexpliquée de la compilation…) je vous propose de télécharger le linux que j'ai compilé et testé sur Debian Wheezy et sur Ubuntu 12.04LTS
http://makotoworkshop.org/packages/linux-image-3.2.32-patched15khz_i386.deb
Pour l'installer, suffit d'utiliser dpkg avec les droits root ou via un sudo :
:
dpkg -i linux-image-3.2.32-patched15khz_i386.deb

Notes :
- Quand je dis «Linux» je parle bien entendu du noyau (kernel) et non de la distribution GNU/Linux (debian, Ubuntu, RedHat…)
- L'image iso «GroovyArcade Linux» http://code.google.com/p/groovyarcade/ fournie par l'équipe de Calamity comporte déjà un Linux Patché, utilisable seulement avec la distribution fournie.
- Le caractère # signifie qu'on est logué en root où que les droits root sont nécessaires (sudo).
- Le caractère $ signifie qu'on est logué en utilisateur.

Introduction :
Il est en fait déjà possible d'afficher une image en 15kHz sur un téléviseur grâce à Xorg configuré à l'ancienne avec xorg.conf, avec xrandr, ou maintenant avec KMS (http://fr.wikipedia.org/wiki/Kernel-based_mode-setting).
MAJ - 06-01-2013 : C'était vrai avant sous debian, à partir du noyau 3.2.0.4 l'installation du paquet paquet « firmware-linux-nonfree » est désormais nécessaire.
Avec Ubuntu, ça reste vrai quelque soit la version du noyau, puisque le paquet « linux-firmware » est installé par défaut !


Il suffit pour cela de passer un modeline au pilote libre ATI (radeon) ou nVidia (nouveau).
Voici un exemple de fichier xorg.conf qui fonctionne à tous les coups :

:
Section "Device"
    Identifier  "ATI"
    Driver      "radeon"
EndSection

Section "Monitor"
        Identifier   "TV"
        HorizSync    15.0 - 20.0
        VertRefresh  50.0 - 60.0
# Le modeline TV @15kHz
    Modeline "768x288x50.08"  15.375000  768 792 880 964 288 288 288 322  -HSync -VSync
EndSection

Section "Screen"
    Identifier "Default Screen"
    Device     "ATI"
    Monitor    "TV"
    DefaultDepth     24
    SubSection "Display"
    Depth     24
    Modes    "768x288x50.08"
    EndSubSection
EndSection

Donc on affiche une image progressive de 768x288 avec un PixelClock de 15.375 Hz.

Pourquoi Patcher Linux alors ?
Pour afficher une image plus petite, le PixelClock sera donc plus petit, de l'ordre de 6 ou 7 Hz…
Et bien tests à l'appuis, force est de constater que les pilotes libres contenus dans Linux ne sont pas capables de gérer un faible PixelClock !
Impossible donc d'afficher une image à 320x240.

L'équipe de Calamity fournit des patchs pour modifier les sources de n'importe quel Linux qu'il faut ensuite compiler et installer sur sa distribution préférée.

Les voici rassemblés ici par mes soins :
http://makotoworkshop.org/sources/patch15khz/

Pour l'exemple, je vais compiler un Linux sur Debian Wheezy qui tourne pour le moment avec un kernel 3.2 :
_____________________________________________________________________________________________________________
Prérequis

Installer les programmes nécessaires à la compilation :

:
# apt-get install build-essential kernel-package debconf-utils dpkg-dev debhelper ncurses-dev fakeroot zlib1g-dev
_____________________________________________________________________________________________________________
Préparation et récupération des sources

Aller dans son répertoire personnel et Créer le répertoire de travail :

:
$ cd
$ mkdir src
$ cd src
~/src$

_____________________________________________________________________________________________________________
Obtenir les sources à partir des dépôts

Connaître les sources disponibles pour votre système :

:
$ aptitude search linux-sourceRenverra quelque chose du genre :
:
v   linux-source                         - Linux kernel source (meta-package)
p   linux-source-2.6                     - Linux kernel source (dummy package)
p   linux-source-3.2                   - Linux kernel source for version 3.2 with Debian patches

Pour obtenir les sources, il suffit de se placer dans votre répertoire ~/src et de taper la commande :

:
$ cd
$ mkdir src
$ su -
mot de passe:
# apt-get install linux-source-3.2
# cp /usr/src/linux-source-3.2.tar.bz2 /home/votre_user/src
# chown votre_user:votre_user /home/votre_user/src/linux-source-3.2.tar.bz2
# exit
$

_____________________________________________________________________________________________________________
Préparer la compilation du noyau

Une fois les paquets installés il va falloir décompresser les sources de votre futur noyau. Il est conseillé de déléguer les tâches de configuration du noyau à un utilisateur. Pour cela, l'utilisateur doit appartenir au groupe src.
Pour ajouter par exemple l'utilisateur laurent au groupe src :

:
$ su -
# adduser laurent src
Adding user `laurent' to group `src' ...
Adding user laurent to group src
Done.
# exit


Décompresser et dépaqueter les sources :

:
~/src$ tar xvjf linux-3.2.tar.bz2

On ajoute enfin le lien symbolique linux qui pointe vers le répertoire de vos sources. Ainsi suivant la version de nos sources on sait qu'elles se trouveront toujours dans le répertoire ~/src/linux :

:
~/src$ cd /usr/src
Remarque: Il est possible que le lien symbolique existe déjà, auquel cas il faudra l'effacer...

:
/usr/src# ln -s ~/src/linux-3.2 linux
/usr/src$ cd ~/src                                                        
~/src$ ln -s ~/src/linux-3.2 linux


_____________________________________________________________________________________________________________
Patcher les sources

Se rendre dans votre home :

:
~/src$ cd ~/
Télécharger le TarGz de patch correspondant à votre noyau, ici le fichier patch-3.2.tar.gz pour le noyau 3.2, puis les extraires :

:
~$ wget makotoworkshop.org/sources/patch15khz/patch-3.2.tar.gz
~$ tar xvf patch-3.2.tar.gz

se rendre dans le dossier linux

:
~$ cd src/linux
Patcher les sources successivement avec ces 3 commandes :

:
~/src/linux$ patch -p1 < ~/patch-3.2/ati9200_pllfix-3.4.diff
~/src/linux$ patch -p1 < ~/patch-3.2/avga3000-3.4.diff
~/src/linux$ patch -p1 < ~/patch-3.2/linux-3.4.diff

Astuce : patch -p1 --dry-run <[fichier-patch] pour tester le patch sans l'appliquer

_____________________________________________________________________________________________________________
Récupérer la configuration du noyau

:
~/src/linux$ cp -vi /boot/config-`uname -r` .config
mettre à jour la configuration avec "make oldconfig".

:
~/src/linux$ make oldconfig
Puisqu'on compile la même version que le noyau actuel, la commande ne doit constater aucune différence, et donc ne poser aucune question.

_____________________________________________________________________________________________________________
Nettoyage

:
~/src/linux$ make-kpkg clean
_____________________________________________________________________________________________________________
La compilation

:
~/src/linux$ fakeroot make-kpkg --initrd --append-to-version "-pached15khz"  kernel-image kernel-headers
La commande ci-dessus vous sortira un paquet nommé "linux-image-3.2-patched15khz_3.2-patched15khz-10.00.Custom_i386.deb" La commande fakeroot permet de simuler l'environnement root au programme make-kpkg pour que ce dernier puisse générer les paquets de votre futur noyau. Cela a l'avantage d'éviter de faire la compilation en tant que root.

La compilation sur une machine puissante dure à peine 30 minutes. Cela peut dépasser plusieurs heures en fonction de votre configuration.
Astuce : Il peut alors être utile d'utiliser VirtualBox pour compiler le noyau sur un PC puissant, puis de récupérer le paquet compilé pour aller l'installer sur sa vieille machine de récup destinée à la borne.

_____________________________________________________________________________________________________________
Installation  du noyau

:
~/src/linux$ su -
mot de passe:
# dpkg -i linux-image-3.2-patched15khz_3.2-patched15khz-10.00.Custom_i386.deb

Redémarrer l'ordinateur !
_____________________________________________________________________________________________________________
Désinstallation

Si pour une raison ou une autre vous n'arrivez pas à démarrer sur votre nouveau noyau et que vous souhaitiez le désinstaller. Redémarrez sur le dernier noyau opérationnel, puis :

:
~$ su -
Mot de passe :
root@Squeeze:~# apt-get remove --purge linux-image-3.2-patched15khz_3.2-patched15khz-10.00.Custom_i386.deb

_____________________________________________________________________________________________________________
Ressources : http://www.isalo.org/wiki.debian-fr/index.php?title=Compiler_et_patcher_son_noyau

_____________________________________________________________________________________________________________
Pour tester le noyau avec xorg.conf,

Modifier ou créer le fichier :

:
# nano /etc/X11/xorg.conf
et modifier le modeline pour celui-ci en 320x240 (testé compatible ATI Radeon 9000 et 9200 et nVdia TNT2 Model 64 et Elsa Erazor X)

:
Section "Device"
    Identifier  "ATI"
    Driver      "radeon"
EndSection

Section "Monitor"
        Identifier   "TV"
        HorizSync    15.0 - 20.0
        VertRefresh  50.0 - 60.0
# Le modeline TV @15kHz
    Modeline "320x240"  6.452  320 344 376 408 240 242 245 264  -HSync -VSync
EndSection

Section "Screen"
    Identifier "Default Screen"
    Device     "ATI"
    Monitor    "TV"
    DefaultDepth     24
    SubSection "Display"
    Depth     24
    Modes    "320x240"
    EndSubSection
EndSection

Pour une carte nvidia, remplacer   simplement :
   Driver      "radeon"
par
   Driver      "nouveau"

Démarrer X :

:
$ startx
Enjoy  <:)

Note de MAJ du 06-01-2013 : Le patch rendant possible l'utilisation d'un téléviseur l'installation du paquet paquet « firmware-linux-nonfree » pourrait paraitre inutile, mais elle reste indispensable pour permettre l'utilisation du Direct Rendering par la carte graphique (sinon, c'est cisaillement dans l'image (tearing) et crénelage sévères des contours).
C'est inutile avec Ubuntu, voir au début du tuto…


_____________________________________________________________________________________________________________
Pour tester le noyau avec Xrandr, sans fichier xorg.conf
(oui ce fichier n'est plus nécessaire de nos jours. Son absence n'empêchera par X de démarrer)

Démarrer X :

:
$ startx
Xrandr permet de changer de la résolution d'X par une simple commande.
Elle permet aussi d'ajouter des modelines en plus; Taper :

:
$ xrandr
Et apparait alors la liste des résolutions disponibles, donc en 31kHz !
Une astérisque repère la résolution en cour…

Pour ajouter le modeline d'exemple, taper ceci :

:
$ xrandr --newmode "320x240" 6.452 320 344 376 408 240 242 245 264 -hsync -vsync
Taper à nouveau xrandr permet de voir que le mode a été créé, mais il n'est pas encore utilisable en l'état !

:
 320x240 (0x1da)    6.0MHz
        h: width   320 start  344 end  376 total  408 skew    0 clock   14.7KHz
        v: height  240 start  242 end  245 total  264           clock   55.7Hz

En effet, il faut l'associer à une sortie de la carte graphique (selon la carte, VGA-0 ou DVI-0 avec ATI)

:
$ xrandr --addmode DVI-0 "320x240"
Un nouveau xrandr listera maintenant la résolution disponible.

Reste donc à basculer dessus avec :

:
$ xrandr --output DVI-0 --mode "320x240"
L'affichage bascule en 320x240, débrancher vite l'écran VGA et connecter le téléviseur sur la carte graphique…


Enjoy  <:)

De là il est bien sûr possible d'automatiser cela avec un script bash, histoire de ne pas avoir à se repalucher les lignes de commande !
Genre comme ça :
:
#!/bin/sh
xrandr --newmode "256x264" 5.356 256 272 296 328 264 265 268 278 -hsync -vsync
xrandr --newmode "304x240" 6.208 304 328 360 392 240 243 246 264 -hsync -vsync
xrandr --newmode "320x240" 6.452 320 344 376 408 240 242 245 264 -hsync -vsync
xrandr --newmode "384x288" 7.851 384 408 448 496 288 289 292 309 -hsync -vsync
xrandr --newmode "640x288" 13.125 640 680 744 832 288 289 292 309 -hsync -vsync
xrandr --addmode DVI-0 "256x264"
xrandr --addmode DVI-0 "304x240"
xrandr --addmode DVI-0 "320x240"
xrandr --addmode DVI-0 "384x288"
xrandr --addmode DVI-0 "640x288"
: Tuto : Patcher un Linux en 15kHz
: dapsaille Tuesday 27 November 2012, 09:50:34 AM
Merci beaucoup pour ce partage  ;)


Histoire de compléter ce feu d'artifice, aurais tu les infos pour patcher kms/grub ?

Mea Culpae c'est déja en place  :D
: Tuto : Patcher un Linux en 15kHz
: f4brice Tuesday 27 November 2012, 10:33:19 AM
Clap clap clap (bruit d'applaudissement) !  :-)=
: Tuto : Patcher un Linux en 15kHz
: AsPiC Tuesday 27 November 2012, 10:34:44 AM
Bon alors à la première lecture j'ai rien compris ;D (a la deuxième non plus d'ailleurs) mais dans tous les cas merci pour ce tuto ^-

Me reste plus qu'à appliquer et ça devrais être plus compréhensible en le fessant en même temps que je le lit :)
: Tuto : Patcher un Linux en 15kHz
: dilomos Tuesday 27 November 2012, 10:53:31 AM
Je trouve ce tuto très interressant et ca permettra peut être a des possesseur de Nvidia d'avoir accès a du 15kHz (même si je dois reconnaitre que ca n'est pas forcement a la portée de tous).
Reste a ajouter un petit groovyMame la dessus et on se retrouve avec une linuxCab toute belle ^-^

Question : on peut ajouter autant de modeline qu'on veut dans le xorg.conf ?
: Tuto : Patcher un Linux en 15kHz
: Iro Tuesday 27 November 2012, 11:45:37 AM
Aaaah Linux et ces lignes de commandes de barbu :D
Merci pour le tuto <:)
: Tuto : Patcher un Linux en 15kHz
: MaKoTo Tuesday 27 November 2012, 14:02:14 PM
Merci beaucoup pour ce partage   :)


Histoire de compléter ce feu d'artifice, aurais tu les infos pour patcher kms/grub ?

Mea Culpae c'est déja en place   :D
Oui, depuis les linux v3.x KMS est déjà activé dans le fichier de config du noyaux.
Donc rien à y modifier ^^


Bon alors à la première lecture j'ai rien compris  ;D(a la deuxième non plus d'ailleurs) mais dans tous les cas merci pour ce tuto  ^-

Me reste plus qu'à appliquer et ça devrais être plus compréhensible en le fessant en même temps que je le lit  :)
Si tu débutes avec GNU/Linux, ça va être chaud ^^;
Je pense que le travail est pas mal mâché, mais il n'est pas exempt que quelques ajustements soient à faire, notamment adapter la ligne de compilation qui n'est valable que pour la famille de distribution debian (debian, ubuntu, mint, etc)
Donc si tu veux tenter l'aventure, utilise plutôt une debian, y'aura moins de mauvaise surprise.


Je trouve ce tuto très interressant et ca permettra peut être a des possesseur de Nvidia d'avoir accès a du 15kHz (même si je

dois reconnaitre que ca n'est pas forcement a la portée de tous).
Reste a ajouter un petit groovyMame la dessus et on se retrouve avec une linuxCab toute belle  ^-^

Question : on peut ajouter autant de modeline qu'on veut dans le xorg.conf ?
Je pense que le 15kHz n'est pas moins accessible sur nVidia que sur ATI, du moins avec GNU/Linux.
Toutes les cartes nVidia et ATI que j'ai testé fonctionnent sans se taper tout le tuto !!
Rappelons que le patch de Linux n'est utile que si l'on souhaite afficher des petites résolutions d'image, sans ça, ça fonctionne déjà, et je dirais même plus que le pilote « nouveau » pour carte nVidia gère déjà les faibles résolutions, mais malheureusement assez mal, ce qui fait que l'image était de mauvaise qualité, tremblotante notamment. Alors qui le pilote « radeon » pour ATI laissait une image totalement brouillée ou noire.

Pour les nVidia qui ne fonctionnaient pas c'était dû à la pin N°9 du connecteur VGA qui ne délivrait pas de 5V… ce qui veut dire écran noir ! Y'a donc moyen d'ajouter cette tension directement sur l'adaptateur VGA/péritel.

Réponse : Oui bien sûr, mais il faudra un environnement de bureau et passer par les réglages graphique pour gérer le switch entre ces résolutions, un peu comme sous Windows avec Soft15kHz.
On peut faire mieux que ça ! Et j'y travaille ^^
Y'a moyen de switcher avec des commandes xrandr, j'indiquerais comment plus tard.
J'essaye de voir si je peux bidouiller un truc pour AdvanceMame et GroovyMame.


Aaaah Linux et ces lignes de commandes de barbu  :D
Merci pour le tuto  <:)
Ouép… j'ai bien cherché un moyen plus simple pour le même résultat, mais il n'existe pas.
Parce que la compilation de Linux c'est le genre de truc qui fait peur aux débuttants, et qui fouarre souvent sans qu'on sache vraiment pourquoi, du moins, à mon petit niveau en la matière.

: Tuto : Patcher un Linux en 15kHz
: dilomos Tuesday 27 November 2012, 14:26:47 PM
Je pense que le 15kHz n'est pas moins accessible sur nVidia que sur ATI, du moins avec GNU/Linux.
La était tout le sens de ma remarque ;)
Je voulais dire que sous windows soit on a une ATI est généralement tout ce passe plutot bien soit on a une Nvidia et c'est plus ou moins la loterie (et encore je ne me plein pas ma 7900GS fonctionne très bien avec soft15Khz et switchres ;)

Et pour moi le 15kHz va de paire avec un système de switch de résolution, tant qu'a etre en 15kHz autant jouer en resolution native.
C'est cette partie qui pour moi n'était pas encore très claire concernant linux, je savais que groovyMame était dispo et que donc on devait pouvoir switcher les resolution mais je ne savait pas s'il existait d'équivalent a soft15kHZ/switchres de windows.
Pour etre franc j'ai pas non plus beaucoups chercher et ca commence a faire un moment que je n'ai plus patcher de noyau et bidouiller de xorg  ;D
Mais tu m'a bien éclairer sur cette question.

Ca marchait sur ma vieille becane en windows XP j'ai pas chercher plus loin (oui je sais c'est pas bien  >:D)
: Tuto : Patcher un Linux en 15kHz
: MaKoTo Tuesday 27 November 2012, 15:20:22 PM
Ok !
D'après ce que j'ai vu en testant, Switchres est intégré dans le binaire de GroovyMame.
Reste qu'il génère des modelines automatiquement et que j'ai envie de comprendre comment ça se passe, pour pouvoir customiser le fonctionnement…

Étant partis de 0, c'est ainsi qu'en étudiant AdvanceMame en Frame Buffer puis avec X, j'en suis venu à tous un tas de conclusions, elles mêmes remises en cause par de nouvelles expérimentations sur le fonctionnement de GroovyMame…
Tiens bah faudrait que je résume ça en quelques lignes, histoire le mettre les choses au clair sur le fonctionnement des cartes graphiques et des modes d'affichages logiciel vis à vis d'un téléviseur…
Ça permettrait au débutant de mieux comprendre, et de ne pas perdre ces nombreuses heures passées à chercher/tester, frustré de ne pas trouver ce type d'infos.
: Tuto : Patcher un Linux en 15kHz
: dilomos Tuesday 27 November 2012, 16:06:38 PM
En effet depuis quelque version switchres est intégré dans groovymame (avant il était séparé et on doit encore pouvoir trouver les sources séparées).
Mais si je dis pas de betise (en tout cas sur windows) il faut que les modelines est été intégré auparavant ce que fait soft15kHz sur windows et qui est fait par l'intermediaire du xorg.conf sous linux.
Reste a calculer ces modelines ou du moins a les trouvé deja calculé.

Du coups, que veux tu dire quand tu dis qu'il génére des modelines automatiquement?
Groovymame pourrait switcher la resolution tout seul? sans que toute les resolutions necessaire soit listée dans le xorg.conf?
: Tuto : Patcher un Linux en 15kHz
: MaKoTo Tuesday 27 November 2012, 16:47:28 PM
Oui, d'après ce que j'ai compris, il est censé lire la résolution du jeu, et générer le modeline qui va bien, dans la mesure du possible (faux positifs potentiels…), à moins qu'il ne soit simplement sélectionné dans une liste codée dans switchres, il faut que j'étudie ça…

En tous cas les modelines de chaque résolutions n'ont pas besoin d'être listées dans xorg, car GroovyMame bascule la résolution avec Xrandr.
Donc pour résumer :
-> Lancement du jeu,
-> détection de la résolution du jeu par Switchres,
-> génération/sélection du modelines par Switchres, envoyée à Xrandr,
-> Xrandr sélectionne cette résolution et bascule y l'affichage de Xorg.

Je noterais les commandes ce soir.
: Tuto : Patcher un Linux en 15kHz
: dapsaille Tuesday 27 November 2012, 16:53:31 PM
c'est exactement ça, les modelines sont extraits à la volée et passés à Xrandr qui bascule la réso ^^

 Quand je parlais du grub/kms, c'était pour qu'il soit en 15k direct sans X, il semblerait que ton patch l'inclue ^^
: Tuto : Patcher un Linux en 15kHz
: MaKoTo Tuesday 27 November 2012, 17:47:05 PM
Oui, mais alors comment l'exploiter ?
C'est que j'ai découvert KMS (http://fr.wikipedia.org/wiki/Kernel-based_mode-setting) récemment, et je ne vois pas trop comment faire.

Passer des options dans grub pour fixer une résolution/modelines c'est ça ?
Ce qui donnerais une console tty en 320x240 par exemple.
: Tuto : Patcher un Linux en 15kHz
: dapsaille Tuesday 27 November 2012, 18:05:27 PM
Oui, mais alors comment l'exploiter ?
C'est que j'ai découvert KMS (http://fr.wikipedia.org/wiki/Kernel-based_mode-setting) récemment, et je ne vois pas trop comment faire.

Passer des options dans grub pour fixer une résolution/modelines c'est ça ?
Ce qui donnerais une console tty en 320x240 par exemple.

exactement, la partie KMS est patchée et après grub on as un screen en 15khz.

 Voir les patches de groovymame pour ça
: Tuto : Patcher un Linux en 15kHz
: MaKoTo Tuesday 27 November 2012, 20:56:48 PM
Bon, faudra que j'essaye ça…

Voilà, j'ai édité le premier billet pour ajouter les commandes Xrandr, ce qui permet pas a pas, de comprendre un peu ce que fait GroovyMame.
: Tuto : Patcher un Linux en 15kHz
: zebassprophet Tuesday 27 November 2012, 22:10:40 PM
une question bête, au niveau des resolutions specifiques a chaque jeux, il y'a une manip a faire ou mame s'en charge?


(merci pour le tuto by the way
: Tuto : Patcher un Linux en 15kHz
: dilomos Wednesday 28 November 2012, 13:07:55 PM
Merci pour les commandes xrandr c'est pas mal du tout ;)
: Tuto : Patcher un Linux en 15kHz
: MaKoTo Wednesday 28 November 2012, 19:14:49 PM
une question bête, au niveau des resolutions specifiques a chaque jeux, il y'a une manip a faire ou mame s'en charge?
Mame ne fait rien.
: Tuto : Patcher un Linux en 15kHz
: EvilDindon Wednesday 28 November 2012, 20:50:54 PM
Si ; mame se charge, grace à l'option switchres, de choisir parmi les résos disponibles dans le driver video, la réso la plus proche de celle du jeu d'origine.

A moins que je n'aie pas compris la question.

En revanchen n'ayant jamais utilisé groovymame, j'ignore le processus exact, mais j'ai cru comprendre qu'il génère lui même la réso native du jeu "à la volée".
: Tuto : Patcher un Linux en 15kHz
: MaKoTo Monday 24 December 2012, 13:10:55 PM
J'ignore si Mame utilise Switchres, il me semble que ce logiciel fait partie du projet GroovyMame/Arcade.
Le processus de GroovyMame est décrit plus haut.

Update !!
J'ai ajouté une section « Pour les autres : » au début du premier post :
Où l'on peut télécharger un noyaux déjà patché15kHz, prêt à être installé en quelques secondes sur « toutes distributions » de la grande famille Debian (Ubuntu, Mint, etc)… Je n'en ai testé que deux, mais ça devrait passer.
Au pire suffira de le désinstaller avec
:
apt-get remove linux-image-3.2.32-patched15khz
: Tuto : Patcher un Linux en 15kHz
: zebassprophet Friday 28 December 2012, 17:27:06 PM
bonne nouvelle ça

donc juste un ubuntu et ce patch et pis zou alors?
: Tuto : Patcher un Linux en 15kHz
: MaKoTo Saturday 29 December 2012, 21:50:23 PM
Ça dépend de quoi l'on parle…

1 - Ubuntu + se taper le patch des sources et la compilation du noyaux et zou. (long…)
2 - Ubuntu + installer le packet contenant le noyaux déjà compilé que j'ai fait (ce n'est pas un patch !!) et zou. (rapide !) Enfin si ça boote youpi, sinon c'est «kernel panic»  ;D noyaux inadapté à la distribution, donc retour au N°1.
: Tuto : Patcher un Linux en 15kHz
: MaKoTo Sunday 06 January 2013, 14:21:42 PM
Toujours sur Debian Wheezy, après quelques tests sur certains jeux qui montrent bien ces défauts (l'intro de SF2, l'intro de Sailormn) il apparait qu'il y a un problème de cisaillement dans l'image, (tearing), en plus d'un crénelage excessif.
Pourtant sur ma borne avec Ubuntu 10.04 puis 12.04, le problème n'a pas lieu…

Après investigation :
:
grep 'WW\|EE' /var/log/Xorg.0.logRépond :
:
(WW) RADEON(0): Direct rendering disabledMessage qui en comparaison, n'apparait pas sous Ubuntu.

En fait il suffit d'ajouter (après avoir activé les dépots « non-free ») à debian le paquet « firmware-linux-nonfree » qui contient des bouts de drivers non libre, permettant donc d'activer le  Direct Rendering, ce qui résous le problème !

Pourquoi Ubuntu contient déjà ces morceaux de code ? (paquet « linux-firmware » installé par défaut, qui contient les fichiers radeon, en conflit avec le paquet « firmware-linux-nonfree » lui aussi disponible, ça veut tout dire…)
Peut-être parce que la distribution n'est pas si libre qu'elle en à l'air, mais c'est pour faciliter la vie parait-il…
En attendant ça m'a fait perdre du temps dans ma quête de la compréhension du système.
Mais aura eu le mérite de faire pencher la balance en faveur de Debian, car plus j'avance et plus me vient l'envie de sortir une distribution MAME prête à l'emploi…
: Tuto : Patcher un Linux en 15kHz
: zebassprophet Friday 22 March 2013, 01:37:57 AM
Ça dépend de quoi l'on parle…

1 - Ubuntu + se taper le patch des sources et la compilation du noyaux et zou. (long…)
2 - Ubuntu + installer le packet contenant le noyaux déjà compilé que j'ai fait (ce n'est pas un patch !!) et zou. (rapide !) Enfin si ça boote youpi, sinon c'est «kernel panic»  ;D noyaux inadapté à la distribution, donc retour au N°1.

le noyau il ne fait que passer le signal en 15hz c'est bien ça?

chuis en 12.04 je vais tester demain je pense  ^-^
: Tuto : Patcher un Linux en 15kHz
: Solkan Friday 22 March 2013, 09:07:40 AM
Super tuto, merci beaucoup. Je le testerai ce WE.
: Tuto : Patcher un Linux en 15kHz
: Stealth Friday 22 March 2013, 10:40:32 AM
Bonjour MaKoTo,

Tu ne vois pas d'inconvénient à ce que je rajoute ton noyau en option à Livemamecab ? Je rajouterai une petite interface graphique avec installation/désinstallation du 15Hz

L'interface ira le chercher directement sur le net comme elle le fait déjà pour les artworks.
: Tuto : Patcher un Linux en 15kHz
: vintage76 Friday 22 March 2013, 12:51:13 PM
Stealth si tu peux la mettre en version offline sur l'iso car les vieux pcs n'ont pas tous le wifi ;)
: Tuto : Patcher un Linux en 15kHz
: MaKoTo Friday 22 March 2013, 16:21:03 PM
C'est 15kHz les gars  ;)

zebassprophet, ce noyaux est tout à fait standard, mais permet éventuellement (si configuration de xorg) d'afficher des images de faible résolution en 15kHz.

Stealth, pas de problème, c'est du logiciel libre, il suffit d'en respecter les 4 libertés.
Merci d'avoir demandé !
: Tuto : Patcher un Linux en 15kHz
: Stealth Friday 22 March 2013, 18:21:12 PM

Stealth, pas de problème, c'est du logiciel libre, il suffit d'en respecter les 4 libertés.
Merci d'avoir demandé !

C'est un minimum, je vais regarder pour intégrer ça dans les semaines qui suivent
J'essayerai de faire une interface la plus user friendly possible, il me faudra des volontaires pour tester car je n'ai pas d'écran CRT

En ce qui concerne ton message plus haut, difficile de faire totalement avec du libre, les drivers ayant parfois des performances désastreuses en OpenGL, et puis Mame n'est pas un logiciel libre (code ouvert mais pas libre)

En tout cas merci, tes découvertes sont utiles pour mal de monde
: Tuto : Patcher un Linux en 15kHz
: makati79 Sunday 24 March 2013, 10:06:23 AM
très bon conseils , je vais pouvoir tester tout ça ...
par contre juste une question de débutant sous Linux : quelle est la version minimale (la plus 'light' possible, à l'instar de 'micro xp' ou 'nano xp') sur laquelle les fonctionnalités pour 'groovymame' et 'advmenu+' sont préservés? ( une version légère à l’extrême qui ne gère que le nécessaire pour une utilisation dans une borne )

_autre question : comment est reconnu un pc2jamma sous Linux ( adaptateur 'jamma' qui passe le db25) sous dos c’était snes2key et ppjoy sous xp si je me rappelle
: Tuto : Patcher un Linux en 15kHz
: MaKoTo Sunday 24 March 2013, 10:51:05 AM
J'utilise soit la distribution Ubuntu (version Alternate), soit la distribution Debian (version netinstall), pour une installation minimale qui tourne autour de 800 Mio et qui démarre en 30 secondes sur un Pentium 4.
J'ai fait un tuto ici pour Ubuntu http://burogu.makotoworkshop.org/index.php?post/2011/09/09/borne-arcade-6, il suffit juste de lui ajouter le noyaux 15kHz et l'ajuster le contenu du fichier /etc/X11/xorg.conf

connait pas pc2jamma  ::)
: Tuto : Patcher un Linux en 15kHz
: Stealth Sunday 24 March 2013, 10:52:12 AM
très bon conseils , je vais pouvoir tester tout ça ...
par contre juste une question de débutant sous Linux : quelle est la version minimale (la plus 'light' possible, à l'instar de 'micro xp' ou 'nano xp') sur laquelle les fonctionnalités pour 'groovymame' et 'advmenu+' sont préservés? ( une version légère à l’extrême qui ne gère que le nécessaire pour une utilisation dans une borne )

_autre question : comment est reconnu un pc2jamma sous Linux ( adaptateur 'jamma' qui passe le db25) sous dos c’était snes2key et ppjoy sous xp si je me rappelle

Hum question polémique au possible ... En générale je dirais que débutant et minimale sont parfois contradictoire, je conseil franchement de commencer avec une distrib plutôt user friendly au départ.

Pour ma part j'utilise xubuntu (ubuntu avec le bureau léger xfce), je galère beaucoup moins qu'avec d'autre distrib plus light que j'avais testé au début (notamment au niveau des pilotes)

Pour pc2jamma je ne sais pas
: Tuto : Patcher un Linux en 15kHz
: makati79 Sunday 31 March 2013, 16:16:49 PM
le pc2jamma c'est ça : un hack de manette snes 'en plus propre' qui fonctionne sur le port parallèle ( désavantage par rapport au jpac pas d'ampli vidéo et nécessite l'utilisation d'un driver et joy2key pour certains frontend ( ça coute pas cher sinon..)


(http://www.hsinpao.com.tw/pc2jamma_con1.jpg)
: Tuto : Patcher un Linux en 15kHz
: MaKoTo Sunday 14 July 2013, 11:06:28 AM
De nouveaux patchs sons disponibles, maintenant pour du Linux 3.1 au Linux 3.10.
http://makotoworkshop.org/sources/patch15khz/
J'ai compilé un nouveau noyau sur debian !
http://makotoworkshop.org/packages/linux-image-3.9.6-patched15khz_i386.deb
L'opération s'est déroulée sans problème, mais je tiens à préciser que je ne l'ai pas testé dans ma borne !

À propos de ma borne, je faisais des réglages hier et suite à cela je me suis rendu compte qu'en passant d'une résolution à une autre, la géométrie de l'écran n'était plus bonne du tout !
- Otez moi de ce doute, C'est normal ou pas ?
Quand vous changez de résolution avec un Windows et Soft 15kHz il vous faut réajuster la géométrie ou l'image est correcte ?

: Tuto : Patcher un Linux en 15kHz
: yoZe Sunday 14 July 2013, 16:44:37 PM
Quel est l'avantage de passer par linux à la place de winxp hormis la gratuité ?
: Tuto : Patcher un Linux en 15kHz
: MaKoTo Sunday 14 July 2013, 17:10:17 PM
La Liberté !

La gratuité est une conséquence secondaire.
Cependant, le sujet est bien trop vaste pour être abordé en quelques lignes…

Dans le cas qui nous réunis ici, une borne Mame à base de Gnu/Linux permet une gestion entièrement automatisée des tâches et de l'interface homme/machine.
Autrement dit, on peut se fabriquer de toute pièce un système d'exploitation dédié, performant, rapide et sûr.

Exemple, mon système ne pèse que 800 Mio et fonctionne sur une clé USB, j'appuie sur le bouton il démarre en 30 sec, je joue (toutes les manip se font au joystick, je rigole bien quand je vois des bornes mame avec un tiroir pour le clavier et une souris ), j'appuie sur le bouton, il s'éteint en 5 secondes.

Personne qui ait expérimenté le « pixel perfect » pour orienter mes investigations ?
: Tuto : Patcher un Linux en 15kHz
: Thieum Sunday 14 July 2013, 18:12:35 PM
Le boot en 30s, l'extinction en 5 et les frontend c'est possible avec windows aussi...
: Tuto : Patcher un Linux en 15kHz
: yoZe Monday 15 July 2013, 03:05:04 AM
Oui, je ne veux pas me montrer dénigrant mais tout ça je peux le faire aussi sur la mamebox que j'ai configuré sous xp.
Le boot et l'extension du pc sont même plus rapide et l'os une fois bien configuré et allégé, ne doit pas peser bien plus lourd.
: Tuto : Patcher un Linux en 15kHz
: dilomos Monday 15 July 2013, 10:08:04 AM
À propos de ma borne, je faisais des réglages hier et suite à cela je me suis rendu compte qu'en passant d'une résolution à une autre, la géométrie de l'écran n'était plus bonne du tout !
- Otez moi de ce doute, C'est normal ou pas ?
Quand vous changez de résolution avec un Windows et Soft 15kHz il vous faut réajuster la géométrie ou l'image est correcte ?

J'ai peur que oui ça soit normal.
Chez moi avec soft 15khz (win XP 32bits) il faut que je réajuste la géométrie selon la résolution (c'est pour ca que je joue majoritairement aux jeux neo geo qui sont tous dans la même résolution ) après y'a certain "défauts" qui restent acceptable mais si tu cherche le pixel persect je reconnais que ca doit être embettant.
: Tuto : Patcher un Linux en 15kHz
: MaKoTo Monday 15 July 2013, 15:00:28 PM
Ok ! Merci pour cette confirmation !
Je ne vais pas chercher plus loin alors, à moins que quelqu'un d'autre n'ait une autre méthode à soumettre.

En fait on arrive plus ou moins à jouer sur la géométrie en agissant sur le modeline lui même, mais dans une certaine limite… voir ma bafouille ici > http://burogu.makotoworkshop.org/index.php?post/2012/05/29/borne-arcade-19
Après, étant un joueur compulsif éclectique, s'il faut toucher à la géométrie sans arrêt, je crois que je vais utiliser l'émulateur avec un seul modeline, le plus médian possible, en mode overlay.


Quant à évaluer les différences entre OS, de mon point de vue, je pourrais me poser la même question inverse, « quel est l'avantage de passer par winxp à la place de GNU/Linux ». Chacun voyant midi à sa porte, là n'est peut-être pas la question, où alors on va troller sévère.
Je pourrais résumer en disant que pour les utilisateurs de Windows et de Soft15kHz, GNU/Linux est une alternative.
: Tuto : Patcher un Linux en 15kHz
: Processor Saturday 02 January 2016, 11:34:07 AM
Bonjour Makoto,

tout d'abord merci pour ton tuto qui a l'air plutôt clair (je n'ai pas encore tout lu).
Cela fonctionne-t'il avec n'importe quelle carte nvidia ou ATI?

Merci par avance,

Proc.
: Tuto : Patcher un Linux en 15kHz
: MaKoTo Monday 04 January 2016, 19:24:06 PM
C'est bien Linux qu'on patche, donc ça marche pour toutes les cartes graphiques !

Après que les modelines d'affichage soient supportés ou non par toutes les cartes graphiques, c'est une autre histoire.
Disons que toutes les ATI que j'ai pu tester m'ont donné satisfactions, et que les nVidia sont parfois récalcitrantes.