If a new acmd_on_b comes in with a start, the previous sample in progress should start over. If this is isn't tracked, if ADPCMB is already playing a sample, this will be ignored and continue playing, rather than starting over.
If a sample completes, it needs to reset all the variables that the entire chain uses. Failure to do this causes volume spikes (see for example KoF95, and Magical Drop 2).
When a sample completes, everything needs to stop playing throughout the chain. (see for example Crossed Swords 1 and 2 and Shock Troopers).
The first sample was not being played in many cases (see Magical Drop 2).
I don't think the done flag should be propogated up to the main interface when repeating a sample.
I believe the end sample should be {end_address, 8'hFF}. This change has been made.
I'm not certain on these changes. If you have questions or comments please post. Whatever final changes are used, the above mentioned games, in addition to Strikers 1945 and Ninja Combat should be tested, as they all had problems before these changes.
These changes do several things: