Add AY-3-8914 support as configurable in AY-3-8910

Previous PR (https://github.com/tildearrow/furnace/pull/278) is closed due this, but archived for info.
It's AY with 4 level envelope volume per channel and different register format.
This commit is contained in:
cam900 2022-03-12 03:30:54 +09:00
parent 74a23b3ec5
commit 3ac1dce3fe
5 changed files with 79 additions and 13 deletions

View file

@ -26,6 +26,10 @@
class DivPlatformAY8910: public DivDispatch {
protected:
const unsigned char AY8914RegRemap[16]={
0,4,1,5,2,6,9,8,11,12,13,3,7,10,14,15
};
inline unsigned char regRemap(unsigned char reg) { return intellivision?AY8914RegRemap[reg&0x0f]:reg&0x0f; }
struct Channel {
unsigned char freqH, freqL;
int freq, baseFreq, note, pitch;
@ -60,7 +64,7 @@ class DivPlatformAY8910: public DivDispatch {
int delay;
bool extMode;
bool stereo, sunsoft;
bool stereo, sunsoft, intellivision;
short oldWrites[16];
short pendingWrites[16];