Aller au contenu
Phosphoneowiki
Sommaire

Fenêtre, son et vidéo

Ces options servent à voir et à entendre. Elles ne changent pas l’émulation : une fenêtre ralentit seulement l’exécution pour qu’une trame émulée dure 1/60 s ; les résultats sont identiques à ceux d’un essai sans fenêtre.

--sdl

Syntaxe : --sdl

Ouvre une fenêtre SDL2 : image du mode vidéo courant (4:3, redimensionnable), clavier et souris transmis au firmware, son, manette. Cadence temps réel, 60 trames par seconde. Fermer la fenêtre arrête l’émulation. Le build doit avoir trouvé SDL2 (pkg-config sdl2).

Exemple

$ phosphoneo --sdl --scale 3 prog.neo

À savoir. Touches propres à la fenêtre : F11 ou Alt+Entrée = plein écran, F12 = capture PPM, Ctrl+F12 = menu de configuration. F1 à F10 restent au Neo6502.

--scale

Syntaxe : --scale N

Taille initiale de la fenêtre : N fois 320 × 240 (défaut 3). Le menu Ctrl+F12 la fait aussi défiler de 1 à 4.

--fullscreen

Syntaxe : --fullscreen

Plein écran 4:3 avec bandes noires ; implique --sdl.

--no-sound

Syntaxe : --no-sound

Coupe la sortie sonore de la fenêtre. Le son est tout de même généré : --wav et --record le recueillent.

--wav

Syntaxe : --wav son.wav

Écrit le son du firmware dans un fichier WAV. Le générateur est celui du firmware (SNDGetNextSample), tiré 735 fois par trame ; le fichier est donc le même à chaque exécution.

Exemple

$ phosphoneo prog.neo --cycles 3000000 --wav son.wav
phosphoneo : son -> son.wav (19845 échantillons)

--record

Syntaxe : --record partie.avi

Enregistre l’image et le son dans une vidéo AVI MJPEG à 60 images par seconde. C’est ainsi que sont tournés les extraits de nos films, et ce qui sert aux jaquettes animées et aux régressions visuelles.

Exemple

$ phosphoneo prog.neo --cycles 3000000 --record partie.avi
phosphoneo : vidéo -> partie.avi (27 images)

À savoir. Une seconde de machine (6 250 000 cycles) donne 60 images ; un fichier d’une demi-seconde pèse déjà plus de 500 Ko : la compression est légère, pour rester fidèle.

Sources dans le dépôt : src/main.c, README.md.