How yomotsuhisami/eagler-touhou works
Eagler Touhou is a browser launcher and multiplayer platform for Touhou games. Players select or import a game package, prepare its runtime, and launch it in the browser; the launcher also supports touch customization, saves and replays, language packs, practice tools, and multiplayer rooms with spectators. Browser storage and service workers provide installed-package persistence and offline launch. Server-side relay and thcrap services support optional network and localization capabilities. The tree and excerpts establish key boundaries, but do not expose all launcher-to-service wiring, so uncertain links are omitted.
Main entry points: app.mts Browser launcher · runtime-preparation.mts Runtime preparation · package-store.mjs Package Store · room-network.mts Multiplayer UI
Components 20
Launcher experience
- Browser launcher
src/launcher/app.mts - Touch controls
src/launcher/touch-layout-model.mts - Multiplayer UI
src/launcher/room-network.mts - Practice tools
integrations/thprac.mjs - Language packs
src/launcher/language-pack-validation.mts
Local packages
- Package install/import
src/launcher/package-feature.mts - Package Store
package/package-store.mjs - Package generations
package/package-generation.mjs - Legacy migration
legacy/legacy-import-storage.mjs
Runtime delivery
- Runtime preparation
src/launcher/runtime-preparation.mts - Runtime generation lease
src/launcher/runtime-generation-lease.mts - Runtime offline cache
src/runtime-cache-sw.js - App shell updates
src/launcher/app-shell-client.mts
Online services
- Netplay relay
server/netplay-relay.mjs - thcrap service
server/thcrap-service.mjs - thcrap repositories
Site deployment
- Host builder
host/build.mjs - Resource routing
lib/external-resource-routing.mjs
Other components
- Player
- Browser runtime
Connections 19
- Player → Browser launcher: uses
- Browser launcher → Package install/import: manages packages
- Package install/import → Package Store: installs and reads
- Browser launcher → Package Store: reads package data
- Legacy migration → Package Store: migrates into
- Browser launcher → Runtime preparation: prepares launch
- Runtime preparation → Runtime generation lease: leases generation
- Runtime preparation → Runtime offline cache: requests runtime
- Runtime offline cache → Browser runtime: serves cached files
- Browser launcher → Browser runtime: launches game
- Browser launcher → Touch controls: configures controls
- Browser launcher → Multiplayer UI: coordinates rooms
- Multiplayer UI → Netplay relay: relays messages
- Browser launcher → Language packs: manages language packs
- thcrap service → thcrap repositories: downloads packs
- Browser launcher → thcrap service: requests language data
- Browser launcher → Practice tools: integrates practice
- Browser runtime → App shell updates: registers updates
- Host builder → Resource routing: configures delivery