* Galaga: save the star field scroll and the graphics bank in save states
* Namco custom I/O: save each chip's state in save states
* Namco 54XX: save the explosion sound generator in save states
* sndintrf: save the sound latches in save states
* cpuexec: save each CPU's local time and cycle count in save states
* mixer: save the channels' pending samples and resampling state in save states
* QSound: save the channels and the data latch in save states
* CPS1/CPS2: save the QSound Z80 ROM bank in save states
* cpuexec: save each CPU's lasting suspend state (reset, halt, disable)
The YM2151 timers are MAME timers, which MAME 0.78 save states do not keep. After loading, a timer that was running never fires again, so a sound CPU that takes its interrupt from a YM2151 timer (CPS1: Street Fighter II) or polls its flag stops, and the game is silent until it is reset.
Save the time left to each timer's next overflow (-1 when it is stopped) in a presave callback, and start the timers again with it in the existing postload callback.
ym2151_postload_refresh called set_connect(op, connect[j], j), but
set_connect takes the channel first and the algorithm second, as the
register write path does (set_connect(op, r&7, v&7)). After loading a
state every FM channel was rebuilt with the wrong algorithm until the
game wrote that register again (X-Men's music played wrong for a few
seconds after a load).