Extension Protocol - quinton-ashley/nostlan GitHub Wiki

This extensions protocol is NOT implemented yet.

System object

  • name the short name for the system
  • fullName the full name for the system
  • emus array of emu ids of emulator that can play games made for this system
  • mediaType can be 'disc', `pcb' (printed circuit board), or 'cart' (cartridge)
  • gameExts array of file type extensions commonly used for games made for this system
  • gameFolders boolean for whether games for this system are typically stored in folders

Emulator object

  • name the official full name of the emulator, can have capital letters and spaces
  • sys the system id of the system this emulator is associated with
  • site the official website for the app
  • patreon the app developer's Patreon page
  • gamesDir the default games folder (if the emulator has one) relative to the folder the app is in
  • imagesDir the default image folder (if the emulator has one) relative to the folder the app is in
  • jsEmu a boolean signifying if the emulator is a jsEmu (false by default)
  • latestVersion the latest version number of the app
  • dev a boolean for running the app in developer mode or not (if possible) (false by default)
  • mute a boolean for whether the app should run with sound or not (if possible) (false by default)
  • volume a number 0-100 representing the emulated sound output volume
  • keyboard custom key mappings (more info will be added soon)

The following properties of emu objects must be objects with OS property names: 'linux', 'mac', or 'win'

  • app string with the app path
  • appDirs array with the default directories the application could be installed to
  • appRegex a Regular Expression that can match the name of the emulator app
  • cmd the command line arguments needed to run the app

This property have an object with OS + architecture property names: 'linux-x64', 'mac-x64', 'mac-arm64', or 'win-x64'

  • install 'prereq', 'jsEmu', 'installer', 'portable', 'standalone'