draft: FreeDOS

This commit is contained in:
Cédrix
2026-05-16 23:58:15 +02:00
parent 90db2e911e
commit df17657308
2 changed files with 167 additions and 1 deletions
@@ -1,4 +1,4 @@
{
"title": "FreeDOS",
"_updated_at": "2026-05-16 21:57:16"
"_updated_at": "2026-05-16 21:58:14"
}
@@ -510,6 +510,172 @@ Categories=System;Emulator;
Remplace `UTILISATEUR` par ton nom d'utilisateur. FreeDOS apparaîtra alors dans le menu d'applications de ton bureau.
---
Voici la section sur l'émulation SoundBlaster sous QEMU, à ajouter à ta documentation.
---
# Émulation SoundBlaster sous QEMU
Sans son, un vieux jeu DOS perd la moitié de son charme — les bips de Doom, la musique MIDI de Monkey Island, les sample digitalisés de Wing Commander font partie de l'expérience. QEMU peut émuler plusieurs cartes son de l'époque, et FreeDOS dispose des pilotes nécessaires pour les exploiter.
## Les cartes son émulées par QEMU
QEMU propose plusieurs modèles. Pour DOS, seuls quelques-uns sont pertinents :
| Option QEMU | Carte émulée | Compatibilité DOS |
|---|---|---|
| `sb16` | SoundBlaster 16 | ★★★ Excellente — le standard de facto |
| `adlib` | AdLib (Yamaha YM3812) | ★★ Bonne pour les jeux pré-1992 (musique FM uniquement) |
| `gus` | Gravis UltraSound | ★ Limité, peu de jeux le supportent nativement |
| `pcspk` | Haut-parleur interne PC | ★★★ Toujours dispo, son bipé d'origine |
| `cs4231a` | Windows Sound System | À éviter sous DOS |
**Recommandation** : utilise `sb16` qui couvre 95% des jeux DOS et inclut une émulation AdLib intégrée (donc compatibilité descendante avec les jeux plus anciens).
## Activation dans QEMU
Ajoute les options audio au lancement. La syntaxe a évolué entre les versions de QEMU — voici la forme moderne (QEMU ≥ 5.0) :
```bash
qemu-system-i386 \
-m 64 \
-hda freedos.qcow2 \
-audiodev pa,id=snd0 \
-machine pcspk-audiodev=snd0 \
-device sb16,audiodev=snd0 \
-boot c
```
**Explication des options :**
- `-audiodev pa,id=snd0` : backend audio **PulseAudio** (utilise `alsa` pour ALSA pur, `pipewire` sur les distros récentes, `oss` pour OSS)
- `-machine pcspk-audiodev=snd0` : active le haut-parleur interne
- `-device sb16,audiodev=snd0` : ajoute la carte SoundBlaster 16
Pour la **SoundBlaster + AdLib** simultanément (utile pour les jeux qui détectent les deux séparément) :
```bash
-device sb16,audiodev=snd0 \
-device adlib,audiodev=snd0
```
## Adapter le script de lancement
Reprends le script `freedos-vm.sh` de la section précédente et modifie le tableau `QEMU_OPTS` :
```bash
# Détection automatique du backend audio
detect_audio() {
if command -v pipewire &>/dev/null && pgrep -x pipewire &>/dev/null; then
echo "pipewire"
elif pgrep -x pulseaudio &>/dev/null; then
echo "pa"
else
echo "alsa"
fi
}
AUDIO_BACKEND="$(detect_audio)"
QEMU_OPTS=(
-m "${RAM}"
-rtc base=localtime
-vga std
-display gtk
-audiodev "${AUDIO_BACKEND},id=snd0"
-machine "pcspk-audiodev=snd0"
-device sb16,audiodev=snd0
)
```
Le script choisira automatiquement PipeWire, PulseAudio ou ALSA selon ce qui tourne sur ton système.
## Configuration côté FreeDOS
Pour que les jeux trouvent la SoundBlaster, il faut définir la variable d'environnement `BLASTER` dans `AUTOEXEC.BAT`. C'est la convention historique que tous les jeux DOS lisent au démarrage.
Ajoute cette ligne :
```
SET BLASTER=A220 I5 D1 H5 T6
```
**Décodage des paramètres :**
| Paramètre | Signification | Valeur émulée par QEMU |
|---|---|---|
| `A220` | Port d'E/S de base | `0x220` (standard) |
| `I5` | IRQ | `5` (parfois `7`) |
| `D1` | Canal DMA 8 bits | `1` |
| `H5` | Canal DMA 16 bits | `5` (SB16 uniquement) |
| `T6` | Type de carte | `6` = SoundBlaster 16 |
Tu peux aussi ajouter le port MIDI/MPU-401 si tu en as besoin :
```
SET BLASTER=A220 I5 D1 H5 T6 P330
SET MIDI=SYNTH:1 MAP:E MODE:0
```
## Configuration des jeux
La plupart des jeux DOS ont un programme de configuration audio à lancer une fois (`SETUP.EXE`, `INSTALL.EXE`, `SETSOUND.EXE` selon le titre). Choisis :
- **Effets sonores** : *SoundBlaster 16* ou *SoundBlaster Pro*
- **Musique** : *SoundBlaster 16* (pour OPL3) ou *General MIDI* via MPU-401 si tu veux la qualité supérieure
Pour les jeux qui demandent un test, le programme jouera un échantillon — si tu l'entends, c'est gagné.
## Test rapide après installation
Sous FreeDOS, le paquet officiel inclut souvent un petit utilitaire de test. Sinon, télécharge un module `.MOD` et lance un player comme **MODPLAY** ou **DOSMID** pour les fichiers MIDI :
```
C:\> MODPLAY musique.mod
```
Tu peux aussi simplement lancer un jeu connu pour son audio : Doom, Duke Nukem 3D, Commander Keen 4 → ils détecteront la SB16 et joueront leurs musiques OPL3.
## Problèmes courants
**Pas de son du tout :**
- Vérifie que `BLASTER` est bien défini : `SET` dans le prompt DOS doit l'afficher
- Lance QEMU avec `-d guest_errors` pour voir les éventuelles erreurs d'I/O
- Teste le backend : remplace `pa` par `alsa` ou inversement
**Son saccadé ou crachotant :**
- Augmente la RAM allouée (`-m 128`)
- Ajoute `-cpu pentium` pour ralentir l'émulation CPU (certains jeux audio sont sensibles à la vitesse)
- Sur des distros avec PipeWire récent, essaie `-audiodev pipewire,id=snd0`
**Musique sans effets, ou inverse :**
- Le jeu utilise probablement deux périphériques séparés (AdLib pour la musique, SB pour les SFX) → ajoute `-device adlib,audiodev=snd0` en plus
**Tempo MIDI trop rapide/lent :**
- Bien configurer la variable `BLASTER` avec le bon IRQ et port MPU-401 (`P330`)
## Pour aller plus loin : DOSBox vs QEMU
Soyons honnête : pour le **jeu DOS pur**, [DOSBox](https://www.dosbox.com/) (et surtout son fork **DOSBox-X** ou **DOSBox Staging**) offre une émulation audio bien plus fidèle que QEMU — émulation cycle-accurate du Yamaha OPL3, support natif MT-32, General MIDI logiciel intégré, etc.
QEMU reste préférable quand :
- Tu veux un vrai environnement DOS complet (multitâche avec FreeDOS, accès réseau via mTCP, snapshots disque)
- Tu fais autre chose que jouer (développement, BIOS flashing, scripts batch)
- Tu veux une VM persistante et configurable comme un vrai PC
Pour le jeu, l'approche hybride est gagnante : **FreeDOS sous QEMU** pour explorer et bidouiller, **DOSBox Staging** pour lancer un jeu spécifique avec le meilleur son possible.
---
Tu veux que je continue avec le réseau (mTCP, FTP, navigation web sous DOS), ou la configuration MT-32/General MIDI avancée ?
---
# Bibliographie