a lot of work

- round to nearest instead of round to zero in SMS period calc
- implement arpeggio
- implement arp macro (kinda)
- polish the SMS platform
- correct the DIV_CMD_PITCH range to 1 semitone
- fix PSG volume in Genesis
- use a better register write strat in Genesis
- fix a bug caused by legacy code
- implement ECxx command
- implement EDxx command
- implement SN noise mode command
- vibrato table is now 64 positions long (instead of 60)
This commit is contained in:
tildearrow 2021-05-16 03:03:23 -05:00
parent f2c70df4a8
commit dbc2e6285f
12 changed files with 264 additions and 173 deletions

View file

@ -1,6 +1,8 @@
#ifndef _DISPATCH_H
#define _DISPATCH_H
#define ONE_SEMITONE 2200
enum DivDispatchCmds {
DIV_CMD_NOTE_ON=0,
DIV_CMD_NOTE_OFF,
@ -64,7 +66,7 @@ class DivDispatch {
* the engine shall resample to the output rate.
*/
int rate;
virtual void acquire(short& l, short& r);
virtual void acquire(int& l, int& r);
virtual int dispatch(DivCommand c);
virtual void tick();