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
- Dossier ROMs : monter votre bibliothèque de ROMs dans
/app/roms. RetroAssembly scanne récursivement. - Cœurs WASM : téléchargés à la demande par le navigateur, pas de config serveur requise.
- Métadonnées : scraper automatique via ScreenScraper.fr ou autre (configurer l'API key dans
data/config.json). - Sauvegardes : les save states sont stockées dans le navigateur (IndexedDB) — utiliser le même navigateur pour les retrouver, ou exporter manuellement.
- Thèmes : clair/sombre selon préférence utilisateur (cookie).
- 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
- cat-gaming — Catégorie Gaming
- app-retrom — Frontend moderne concurrent
- app-gameyfin — Library manager jeux
- app-traefik — Reverse proxy
- app-authelia — Ajouter une auth
- recettes-docker-compose — Templates Docker
- securisation-home-lab — Durcir l'infra