---
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`

<Steps>
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.

</Steps>

:::note
Setup executables cannot be configured to be executed through the emulator.
:::
