diff --git a/docs/Navigation.md b/docs/Navigation.md index c1a03c17..b40da082 100644 --- a/docs/Navigation.md +++ b/docs/Navigation.md @@ -55,6 +55,7 @@ search: - [MS-DOS](using/in-browser-play/ms-dos.md) - [Ruffle](using/in-browser-play/ruffle.md) - [Emulator Streaming](using/emulator-streaming.md) + - [Migrating to webstation](using/emulator-streaming-migration.md) - [Saves & States](using/saves-and-states.md) - [RetroAchievements](using/retroachievements.md) - [ROM Patcher](using/rom-patcher.md) diff --git a/docs/using/emulator-streaming-migration.md b/docs/using/emulator-streaming-migration.md new file mode 100644 index 00000000..0a2fdaca --- /dev/null +++ b/docs/using/emulator-streaming-migration.md @@ -0,0 +1,80 @@ +--- +title: Migrating Streaming to webstation +description: Move from one broker container per emulator to a single webstation container +--- + +# Migrating Streaming to webstation + +Emulator streaming used to mean one container per emulator, each running its own broker mod (`pcsx2-romm-integration`, `dolphin-romm-integration`, `xemu-romm-integration`, `rpcs3-romm-integration`). Going forward, streaming goes through a single [docker-webstation](https://github.com/linuxserver/docker-webstation) container running [romm-broker](https://github.com/romm-streaming/romm-broker), which can serve every platform RomM streams from one place instead of one container per emulator. + + +!!! warning "The per-emulator broker mods are deprecated" + A `config.yml` container without `protocol: webstation` still works today, logs a startup warning telling you to migrate, and will stop being supported in a future release. + +## Why + +- One container to run and update instead of N forks of the same broker pattern, each drifting slightly. +- One save-state and memory-card contract instead of five slightly different ones. +- A platform pool (`platforms:` on one container) claims whichever instance is free, instead of every platform being pinned to its own single container. + +## Migrating your `config.yml` + +Before, one container per platform: + +```yaml +streaming: + containers: + - platform: ps2 + host: https://192.168.1.51:3001 + broker_host: http://192.168.1.51:8000 + label: PCSX2 + memory_card_sync: true + - platform: ngc + host: https://192.168.1.52:3001 + broker_host: http://192.168.1.52:8000 + label: Dolphin +``` + +After, one webstation container serving both: + +```yaml +streaming: + containers: + - host: https://192.168.1.56:3010 + protocol: webstation + subfolder: /streaming + library_path: /romm + label: Emulation station + platforms: + ps2: + emulator: pcsx2 + label: PCSX2 + memory_card_sync: true + ngc: + emulator: dolphin + label: Dolphin +``` + +The full field reference lives in [Configuration File → `streaming`](../reference/configuration-file.md#streaming). + +## Migrating your containers + +1. Stand up [docker-webstation](https://github.com/linuxserver/docker-webstation) with [romm-broker](https://github.com/romm-streaming/romm-broker) mounted at your ROM library path (use the same path your old per-emulator containers used, so save/state history keyed to it doesn't reset). +2. Point `library_path` in `config.yml` at that same mount. +3. Move each platform you were streaming into the new container's `platforms:` map (see the before/after above). +4. Confirm streaming works for each platform, then remove the old per-emulator containers. +5. Restart RomM. The startup warning about legacy containers disappears once no `config.yml` container is missing `protocol: webstation`. + +## Per-emulator notes + +Save data, memory cards, and BIOS/firmware requirements don't change, only which container runs the emulator. See the "Migrating to webstation" section in: + +- [pcsx2-romm-integration](https://github.com/LoneAngelFayt/pcsx2-romm-integration) +- [dolphin-romm-integration](https://github.com/LoneAngelFayt/dolphin-romm-integration) +- [xemu-romm-integration](https://github.com/LoneAngelFayt/xemu-romm-integration) +- [rpcs3-romm-integration](https://github.com/LoneAngelFayt/rpcs3-romm-integration) + +## Related + +- [Emulator Streaming](emulator-streaming.md): the setup guide for streaming as a whole +- [Configuration File → `streaming`](../reference/configuration-file.md#streaming): every key the `streaming` block accepts diff --git a/docs/using/emulator-streaming.md b/docs/using/emulator-streaming.md index 2a35ef84..556bc3ed 100644 --- a/docs/using/emulator-streaming.md +++ b/docs/using/emulator-streaming.md @@ -9,6 +9,10 @@ Emulator streaming launches a game into a **native** emulator running in a separ Each emulator runs in its own [linuxserver](https://docs.linuxserver.io) container with a [Selkies](https://github.com/selkies-project/selkies) WebRTC stream and a small HTTP broker sidecar that RomM talks to. Nothing appears in the UI until you configure at least one container. + +!!! info "Already running per-emulator containers?" + Streaming is moving to a single webstation container that serves every platform. See [Migrating to webstation](emulator-streaming-migration.md). + !!! warning "Work in progress" This is the first release of the streaming framework and ships with four emulators. More integrations (rpcs3 for PS3, and others) are planned as separate follow-ups.