Posted March 01, 2020
The current plugin APIs don't seem well suited for emulator integration.
Many emulators support games from multiple 'platforms', but plugins can only interact with one platform. For example, Dolphin supports Wii and GameCube, DeSmuME supports NDS and GBA, and Retroarch supports practically everything. The current API leads to plugins which implement a single hardware platform on multiple emulators, rather than more logical plugins implementing a single emulator integration with multiple hardware platforms.
Perhaps there should be a reshuffle between 'platforms' (Steam/Origin/Discord/PSN) and 'hardware' (from PS4 to NES, as well as the current Windows/macOS/Linux). Adding more hardware here would also pave the way for better integration with e.g, PS4 in-home streaming.
On connecting an emulator plugin, it would be useful to have e.g. a settings dialog where you could set up your executable and file paths. The 'authenticate' API is very oriented towards web/OAuth-based platform authentication. The `NextStep` class looks like it may have been designed with something like this in mind (replacing "web_session" with some other control flow) but doesn't look like it has been implemented yet.
In fact, a 'settings' dialog (perhaps a cog next to 'disconnect'?) could have uses for all types of integration.
Many emulators support games from multiple 'platforms', but plugins can only interact with one platform. For example, Dolphin supports Wii and GameCube, DeSmuME supports NDS and GBA, and Retroarch supports practically everything. The current API leads to plugins which implement a single hardware platform on multiple emulators, rather than more logical plugins implementing a single emulator integration with multiple hardware platforms.
Perhaps there should be a reshuffle between 'platforms' (Steam/Origin/Discord/PSN) and 'hardware' (from PS4 to NES, as well as the current Windows/macOS/Linux). Adding more hardware here would also pave the way for better integration with e.g, PS4 in-home streaming.
On connecting an emulator plugin, it would be useful to have e.g. a settings dialog where you could set up your executable and file paths. The 'authenticate' API is very oriented towards web/OAuth-based platform authentication. The `NextStep` class looks like it may have been designed with something like this in mind (replacing "web_session" with some other control flow) but doesn't look like it has been implemented yet.
In fact, a 'settings' dialog (perhaps a cog next to 'disconnect'?) could have uses for all types of integration.
Post edited May 09, 2020 by speedstyle