Interface IEmulatorOrchestrator
An IEmulatorOrchestrator is responsible for orchestrating the emulator, or emulation of a given game. This may be done through manipulation of configuration files and command line arguments, or by directly running the game, but this is abstracted using the provisioning of IGameEmulation instances.
Inherited Members
Namespace: Snowflake.Orchestration.Extensibility
Assembly: Snowflake.Framework.Primitives.dll
Syntax
public interface IEmulatorOrchestrator : IPlugin, IDisposable
Methods
CheckCompatibility(IGame)
Checks if a certain game is compatible with this emulator, or if some extra work is required.
Declaration
EmulatorCompatibility CheckCompatibility(IGame game)
Parameters
| Type | Name | Description |
|---|---|---|
| IGame | game | The game to check compatibility for. |
Returns
| Type | Description |
|---|---|
| EmulatorCompatibility | The compatibility level this emulator has with the game. |
CheckMissingSystemFiles(IGame)
Gets a list of BIOS files that are missing from the ISystemFileProvider service that are necessary to run the given game. If any of these are missing, then execution SHOULD NOT continue.
Declaration
IEnumerable<ISystemFile> CheckMissingSystemFiles(IGame game)
Parameters
| Type | Name | Description |
|---|---|---|
| IGame | game | The game that is to be run. |
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.IEnumerable<ISystemFile> | A list of BIOS files that are missing that are required to run the given game. |
CreateGameConfiguration(IGame, String)
Creates a new game configuration for this game, used to configure the game for this orchestrator, returning the inner-type erased generic IConfigurationCollection for this game.
Declaration
IConfigurationCollection CreateGameConfiguration(IGame game, string profileName)
Parameters
| Type | Name | Description |
|---|---|---|
| IGame | game | The game to retrieve configuration for. |
| System.String | profileName | The profile name of the new configuration collection. |
Returns
| Type | Description |
|---|---|
| IConfigurationCollection |
GetConfigurationProfiles(IGame)
Retrieves the names of configuration profiles for this game.
Declaration
IEnumerable<(string profileName, Guid collectionGuid)> GetConfigurationProfiles(IGame game)
Parameters
| Type | Name | Description |
|---|---|---|
| IGame | game | The game to retrieve configuration profiles for. |
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.IEnumerable<System.ValueTuple<System.String, System.Guid>> | A list of configuration profile names saved for this game. |
GetGameConfiguration(IGame, Guid)
Gets the inner-type erased generic IConfigurationCollection for this game, used to configure the game for this orchestrator.
Declaration
IConfigurationCollection GetGameConfiguration(IGame game, Guid collectionGuid)
Parameters
| Type | Name | Description |
|---|---|---|
| IGame | game | The game to retrieve configuration for. |
| System.Guid | collectionGuid | The value collection GUID of the target configuration. |
Returns
| Type | Description |
|---|---|
| IConfigurationCollection |
ProvisionEmulationInstance(IGame, IEnumerable<IEmulatedController>, Guid, ISaveProfile)
Provision the emulation instance to run the game.
Declaration
IGameEmulation ProvisionEmulationInstance(IGame game, IEnumerable<IEmulatedController> controllerPorts, Guid configurationProfile, ISaveProfile saveProfile)
Parameters
| Type | Name | Description |
|---|---|---|
| IGame | game | The game to be run. |
| System.Collections.Generic.IEnumerable<IEmulatedController> | controllerPorts | The input devices to be used during the emulation. |
| System.Guid | configurationProfile | The collection GUID of the configuration profile. |
| ISaveProfile | saveProfile | The save profile to manage savedata with. |
Returns
| Type | Description |
|---|---|
| IGameEmulation | An emulator specific IGameEmulation instance that can be used to begin the emulation. |
ValidateGamePrerequisites(IGame)
Validates game prerequisites, and transforms if necessary, any files registered with the game into a format usable for this particular IEmulatorOrchestrator.
If such format already exists, do nothing.
Declaration
IAsyncEnumerable<TaskResult<IFile>> ValidateGamePrerequisites(IGame game)
Parameters
| Type | Name | Description |
|---|---|---|
| IGame | game | The game that is to be run. |
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.IAsyncEnumerable<TaskResult<IFile>> | A queuable installation job that transforms the files of the game into a format usable for this particular IEmulatorOrchestrator. |