From f467493ffe699f5f169ec8046f6e1c4156206a64 Mon Sep 17 00:00:00 2001 From: DecDuck Date: Wed, 25 Feb 2026 23:57:07 +1100 Subject: [PATCH] feat: emulators guide --- docs/astro.config.mjs | 5 +- .../docs/admin/going-further/emulators.mdx | 51 +++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 docs/src/content/docs/admin/going-further/emulators.mdx diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index 8e81ea0f..13b5054f 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -54,7 +54,10 @@ export default defineConfig({ }, { label: "Going further", - items: [{ slug: "admin/going-further/importing-update" }], + items: [ + { slug: "admin/going-further/importing-update" }, + { slug: "admin/going-further/emulators" }, + ], }, { label: "Metadata", diff --git a/docs/src/content/docs/admin/going-further/emulators.mdx b/docs/src/content/docs/admin/going-further/emulators.mdx new file mode 100644 index 00000000..753cd24d --- /dev/null +++ b/docs/src/content/docs/admin/going-further/emulators.mdx @@ -0,0 +1,51 @@ +--- +title: Emulators +--- + +import { Steps } from "@astrojs/starlight/components"; + +Emulation, broadly speaking, is launching one game with another executable, instead of directly as a native game. For Drop, we have to import at minimum, two versions: + +- Our emulator (referred to as MyEmulator) +- Our game (referred to as MyGame) + +For convenience's sake, we can also specify file extensions for Drop's auto-detect features. For this guide, we'll use `.rom` + + +1. ## Import the emulator + + When importing a game, you can now select it as an "emulator". This enables other configuration options for emulators later down the line, and **hides it from the store.** + + Your metadata providers are unlikely to be able to find it. You might have to use the manual import option. + +2. ## Import the emulator version + + Once you've imported your emulator, open the version importer for your game. + + :::caution + The client currently will panic with a `todo!()` marker if you set the setup executable. + ::: + + Add a launch executable for every platform you want to support. The options are fairly self-explanatory, but make sure to use the `{rom}` placeholder, and optionally add the file extensions. + + Read the [Command Parsing](/reference/command-parsing/) article to understand how it's parsed and substituted. + +3. ## Import your game + + Import your emulated game as usual. + +4. ## Import your version (auto-suggest) + + If you set your file extension above, simply select the ROM from the dropdown in one of your launch executables. It'll auto-fill the configuration needed. + +5. ## Import your version (manually) + + If you didn't set your file extension, enter the name of your ROM in the launch executable field. Then, click "Select new emulator", and search for your emulator game, select the version, and launch command. + + It'll automatically pre-fill the platform field with the platform of your emulator. + + + +:::note +Setup executables cannot be configured to be executed through the emulator. +:::