Files
2026-06-09 18:40:21 +02:00

7.5 KiB


title: RetroAssembly created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, gaming, emulation, retroarch, rom-manager, frontend, typescript, wasm] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Gaming, https://github.com/arianrhodsandlot/retroassembly]

🕹️ RetroAssembly

Cabinet de collection de jeux rétro personnel — frontend web pour RetroArch via WebAssembly, joue directement dans le navigateur, self-hosted.

📋 Informations Générales

Champ Valeur
Site web retroassembly.com
GitHub arianrhodsandlot/retroassembly
License MIT
Langage TypeScript
Étoiles 47 (catalogue)
Dernière MAJ v6 (2026, PlayStation + favoris)
Catégorie cat-gaming

📝 Description

RetroAssembly est un frontend web pour RetroArch qui s'exécute directement dans le navigateur via WebAssembly. C'est une application TypeScript moderne qui permet de jouer à des jeux rétro depuis n'importe quel navigateur, sans installer de client natif. L'auteur (arianrhodsandlot) l'a conçue comme "the personal retro game collection cabinet" — un meuble virtuel pour ranger et lancer sa collection de ROMs légalement acquises.

L'originalité technique majeure : RetroAssembly embarque les cœurs libretro (cores) compilés en WebAssembly (RetroArch-WASM). Quand vous lancez un jeu, le cœur correspondant (Snes9x pour SNES, MAME pour les arcade, etc.) se charge dans votre onglet et exécute la ROM. Tout se passe côté client : le serveur ne fait que stocker et servir les ROMs, le rendu et l'émulation sont dans le navigateur.

RetroAssembly est livré avec une UI particulièrement soignée : jaquettes automatiques, métadonnées (région, développeur, année), favoris, replay, load de save states RetroArch externes (load d'un état de sauvegarde venant de RetroArch desktop), et un système d'émulation distribuée dans le navigateur. Compatible avec NES, SNES, N64, Game Boy, GBA, DS, PS1, et bien d'autres selon les cœurs WASM disponibles.

Fonctionnalités clés :

  • Lecture dans le navigateur via RetroArch-WASM (pas de client natif)
  • Multi-consoles : NES, SNES, N64, GB, GBA, DS, PS1, Genesis, MAME, ...
  • UI moderne : jaquettes, métadonnées, favoris
  • Load save states RetroArch (depuis une instance desktop)
  • Bibliothèque organisée : recherche, filtres, tags
  • 100% client-side rendering : le serveur ne fait que stocker
  • Docker Hub officiel pour déploiement rapide
  • Thèmes : clair/sombre

🚀 Installation

Option 1 : Docker Compose (recommandé)

# docker-compose.yml
services:
  retroassembly:
    container_name: retroassembly
    image: arianrhodsandlot/retroassembly:latest
    restart: unless-stopped
    ports:
      - "3010:3000"
    volumes:
      - ./retroassembly/data:/app/data
      - /chemin/vers/roms:/app/roms  # vos ROMs légalement acquises
    environment:
      - TZ=Europe/Paris
      # Stockage max par fichier (optionnel)
      - MAX_FILE_SIZE=2147483648  # 2 Go
docker compose up -d

Accéder à http://IP:3010. La première visite télécharge les cœurs WASM à la demande (cache navigateur ensuite).

Option 2 : Installation manuelle

git clone https://github.com/arianrhodsandlot/retroassembly.git
cd retroassembly
npm install
npm run build
node dist/server.js

Option 3 : Utiliser la version hébergée (non self-hosted)

L'auteur propose une instance de démo sur retroassembly.com — utile pour tester avant d'auto-héberger.

⚙️ Configuration

  1. Dossier ROMs : monter votre bibliothèque de ROMs dans /app/roms. RetroAssembly scanne récursivement.
  2. Cœurs WASM : téléchargés à la demande par le navigateur, pas de config serveur requise.
  3. Métadonnées : scraper automatique via ScreenScraper.fr ou autre (configurer l'API key dans data/config.json).
  4. Sauvegardes : les save states sont stockées dans le navigateur (IndexedDB) — utiliser le même navigateur pour les retrouver, ou exporter manuellement.
  5. Thèmes : clair/sombre selon préférence utilisateur (cookie).
  6. Reverse proxy : app-traefik ou app-caddy recommandé pour HTTPS. Pas de configuration spéciale pour les WebSockets ici, c'est client-side WASM.

🔄 Alternatives

Open Source (frontends d'émulation)

  • app-retrom — Alternative moderne, backend Rust + frontend TypeScript/React
  • RomM — Beautiful, powerful ROM manager (rommapp/romm)
  • Gaseous — ROM manager avec scan IGDB
  • Gameyfin — Library manager jeux (app-gameyfin)
  • EmulatorJS — Lecteur émulateur browser
  • RetroArch Web — Build WebAssembly officiel de RetroArch
  • Jellyfin + RetroArch — Pas natif
  • LaunchBox / BigBox — Windows only, propriétaire freemium
  • Pegasus Frontend — Multi-plateforme desktop, pas web

Propriétaires (ce que RetroAssembly remplace)

  • RetroArch (builds officiels) — Pas de serveur, installation locale par utilisateur
  • Batocera / Recalbox / Lakka / RetroPie — Distros complètes, pas self-hosted serveur
  • EmuDeck — Steam Deck, pas self-hosted
  • Antstream Arcade — Streaming officiel, propriétaire
  • Nintendo Switch Online — Émulation propriétaire Nintendo

Comparaison rapide

Critère RetroAssembly Retrom RomM RetroArch (bureau)
Type Frontend web Frontend + service Frontend web App bureau
Cible Navigateur Client natif + serveur Navigateur Desktop
WASM cores (libretro natif) n/a
UI Moderne Très moderne Belle Technique
Licence MIT MIT GPL-3.0 GPL-3.0

🔐 Sécurité

  • ROMs légales uniquement : RetroAssembly est légal, mais le téléchargement de ROMs est soumis à la législation de votre pays (en France, dumping légal d'un cartouche/CD que vous possédez ; en Suisse/Canada, plus permissif).
  • HTTPS : exposer via app-traefik ou app-caddy pour éviter l'écoute des requêtes (bien que les ROMs ne soient pas sensibles en soit).
  • Pas d'auth native : RetroAssembly n'a pas d'authentification par défaut. Pour limiter l'accès, mettre derrière app-authelia ou restreindre par IP/VPN (app-tailscale).
  • Save states côté navigateur : attention si vous partagez un PC, les sauvegardes sont dans IndexedDB et accessibles à tous les profils navigateur.
  • Limites navigateur : le WebAssembly a un plafond de RAM (2-4 Go), les jeux très lourds (PS1+ surtout N64) peuvent ramer. Pour les jeux exigeants, préférer un client natif RetroArch.

📚 Ressources

Pages Liées