Split emu services for more granularity

opened TASEmulators/BizHawk#4220

split ISettable<,> so we can only implement what's needed (and use variance?)

does try { InputPollableCore.InputCallbacks....(); } catch (NotImplementedException) { ... } make sense? may indicate that service a should be split up

  • same w/ IDebuggable.MemoryCallbacks{,Available}

#38 and #174 re: mem callbacks

#191 re: disasm

registers as byte[] + (int, string)[]

  • would have been nice if I'd written what these meant -_-
  • anyway I made something similar for the registers memdomain in TASEmulators/BizHawk!4471

#86 re: ISaveRam

create proper abstractions for:

IEmulationController for frameadvance and seek

  • no way to query whether a core supports skipping rendering

thinking about common settings service (maybe attributes on settings props instead?) for:

TASEmulators/BizHawk#4557 per-player ControllerDef, special-case Power/Reset and keyboard

make IEmulatorServiceProvider extend IServiceProvider

new services:

  • IRomHotswappable
    • actually rom (cart) hotswapping is similar to link cable hotswapping, use a common mechanism
  • IPartialFrameVideoProvider for CRT consoles (quantised finer than whole or half field)
  • will probably need a dedicated service for #214 screenshot as SVG

other service-related stuff:

Edited by YoshiRulz