* Moved several machine lifecycle callbacks to the notifier/subscriber
model. The old callback registration model is still available for
them for now, but prints a deprecation warning.
* Added pre-save/post-load notifications.
* Use a single allocated timer rather than one anonymous timer per
waiter. Waiters no longer prevent saved states from being loaded.
* Clean up outstanding waiters on stop or state load rather than just
leaking them.
* Started documenting parts of the emulator interface object that should
be relatively stable.
-imagedev/avivideo.cpp: Fixed an object leak on unload. Also changed
some other media image devices to use smart pointers.
* video/huc6272.cpp: modernize handler interface
* machine/t10mmc.cpp: avoid a stack overflow if device can't read CD data, allows PC-FX menu to be useable (with CD in ...)
* video/huc6272.cpp: fix m_bg save state registration, add stub logmacro.h, misc cleanups
- Replace address_map_bank_device with memory views
- Add SCSI controller to s550 and w30
- Eliminate deprecated #ifdef in favor of [[maybe_unused]] attributes
- Added a set of service inputs that allow the game to enter the attract.
- Added Coins and remote inputs.
- Fixed the bottom of the screen. Now messages are properly displayed.
bus/nubus/nubus_image.cpp: Fixed failure to allocate memory for the
image (regressed in b8c338858a).
bus/nes/karastudio.cpp, bus/nes/sunsoft_dcs.cpp: Fixed stack smash when
loading loose software.
Addressed some Lua engine fallout from running things in coroutines:
* Don't crash accessing dead Lua thread state from callbacks.
* Allow returning values via yielding functions.
* Don't run address space tap and layout view callbacks in coroutines to
save overhead.
* Better logging of errors from callbacks.
Hooked up the memory card write enable/disable and register select
lines, and corrected the address range where memory card access is
enabled.
Card addressing still isn't quite right - the card bank register isn't
hooked up. Neo Geo CD consoles also haven't been updated.
Also, more of the same mechanical cleanup of copy/pasted comments,
const, and variable scope.
* emu/devfind.h: Allow range-based for loops on memory share finders.
* emu/emucore.h: Choose correct emu_fatalerror constructor when format
string is an rvalue.
* osborne/osborne1.cpp: Allocate main RAM as a flat share, and use a
view to switch in atttribute RAM.
* Reduced scope of some variables and edited some copy/pasted comments.