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:
- TASEmulators/BizHawk#4221 multi-screen
- multi-CPU
- #211 multi-disk
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:
- gfx layers and background colour
- audio channel volumes
- sprite limit unlocker
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
-
IPartialFrameVideoProviderfor CRT consoles (quantised finer than whole or half field) - will probably need a dedicated service for #214 screenshot as SVG
other service-related stuff:
- PR !3343
RequiredServicesrcgen - #135
- #156
- branch
split-sound(also changes which services are "specialised", and resolves TASEmulators/BizHawk#2888 re: naming)
Edited by YoshiRulz