--- 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](https://www.retroassembly.com/) | | **GitHub** | [arianrhodsandlot/retroassembly](https://github.com/arianrhodsandlot/retroassembly) | | **License** | MIT | | **Langage** | TypeScript | | **Étoiles** | ⭐47 (catalogue) | | **DerniĂšre MAJ** | v6 (2026, PlayStation + favoris) | | **CatĂ©gorie** | [[cat-gaming\|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Ă©) ```yaml # 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 ``` ```bash 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 ```bash 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](https://www.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](https://github.com/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 - [Site officiel](https://www.retroassembly.com/) - [GitHub arianrhodsandlot/retroassembly](https://github.com/arianrhodsandlot/retroassembly) - [Docker Hub](https://hub.docker.com/r/arianrhodsandlot/retroassembly) - [Documentation libretro cores WASM](https://github.com/arianrhodsandlot/retroarch-wasm-builds) ## 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