exl100

Émulateur Exelvision EXL 100 (1984) dans le navigateur : dsp-cpp en WebAssembly, cartouches et cassettes BASIC
git clone https://git.schurger.org/exl100.git
Log | Files | Refs | README

README.md (2144B)


      1 # exl100 : Exelvision EXL 100 (1984) dans le navigateur
      2 
      3 https://exl100.schurger.org — l'ordinateur familial français Exelvision EXL 100 (processeur Texas
      4 Instruments TMS7020, VDP TMS3556, synthèse vocale TMS5220, clavier infrarouge), émulé dans le
      5 navigateur par l'émulateur **dsp-cpp** de Chusogar compilé en WebAssembly.
      6 
      7 Même recette que [[zx81]] et [[st80]] : fichiers statiques sur apostrophe, publiés par `make deploy`.
      8 
      9 ## Comment c'est fait
     10 
     11 - `upstream/` : clone de [github.com/Chusogar/dsp-cpp](https://github.com/Chusogar/dsp-cpp) (C++17 +
     12   SDL2, driver `exelv` d'après MAME `exelv.cpp`), épinglé au commit `fa4d1ab`. **Pas de licence amont :
     13   on ne le versionne pas**, le Makefile le clone à la compilation (ignoré par git).
     14 - `roms/exl100.zip` : ROM système MAME, `exl100in.bin` (TMS7020, CRC `049109a3`) + `exl100_7041.bin`
     15   (TMS7041, CRC `38f6fc7a`), prise sur https://mdk.cab/download/split/exl100.zip. Embarquée dans
     16   `dsp.data` à la compilation.
     17 - `web/shell.html.in` : page (shell Emscripten) ; `make build` produit `dsp.js`, `dsp.wasm`, `dsp.data`
     18   et `index.html` (depuis `dsp.html`), tous ignorés par git.
     19 - `deploy/exl100.schurger.org` : vhost nginx d'apostrophe (8443 derrière sslh, joker, `application/wasm`
     20   et `application/octet-stream` pour `.data`).
     21 
     22 ## Commandes
     23 
     24 - `make build` : clone dsp-cpp, puis Emscripten par Docker (`emscripten/emsdk:6.0.13`, cache `.emcache/`)
     25   construit le seul driver `exelv`, ROM empaquetée, démarrage automatique de l'exl100
     26   (`-DDSP_WEB_ARGS="--game exl100 /roms/exl100.zip"`). **Compile du code cloné : à lancer par Jean**
     27   (le garde-fou « code externe » bloque l'agent) avec `! make build`.
     28 - `make test` : démarrage dans Chromium headless, capture `/tmp/exl100.png`.
     29 - `make serve` : http://localhost:8083/.
     30 - `make deploy` : rsync vers `apostrophe:/var/www/exl100.schurger.org` ; `make install-vhost` une fois.
     31 
     32 ## Utilisation
     33 
     34 Clavier infrarouge émulé au clavier de l'hôte (positions comme dans MAME). F2 pause, F3 reset, F12 turbo.
     35 ExelBASIC se charge comme cartouche pour obtenir une invite BASIC. Le son ne démarre qu'après un clic.