Prepare to support YM2610B and with Extended channel 3 mode

Allow 8 bit volume for YM2610 ADPCM-B
Remove sample mode macro in YM2610, it's always enabled and seperated channels.

TODO: ADPCM-B is still not implemented, FM Channel 2 is silenced in extended channel 3 configuration
This commit is contained in:
cam900 2022-02-25 01:02:35 +09:00
parent 1e98f0c4a1
commit 1e2d5694b9
18 changed files with 1592 additions and 22 deletions

View file

@ -17,9 +17,14 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include "sound/ymfm/ymfm_opn.h"
static unsigned short chanOffs[4]={
0x01, 0x02, 0x101, 0x102
};
static unsigned short chanOffs_b[6]={
0x00, 0x01, 0x02, 0x100, 0x101, 0x102
};
static unsigned short opOffs[4]={
0x00, 0x04, 0x08, 0x0c
};
@ -45,4 +50,13 @@ static int orderedOps[4]={
#define rWrite(a,v) if (!skipRegisterWrites) {pendingWrites[a]=v;}
#define immWrite(a,v) if (!skipRegisterWrites) {writes.emplace(a,v); if (dumpWrites) {addWrite(a,v);} }
#define CHIP_FREQBASE 9440540
#define CHIP_FREQBASE 9440540
class DivYM2610BInterface: public ymfm::ymfm_interface {
public:
DivEngine* parent;
int sampleBank;
uint8_t ymfm_external_read(ymfm::access_class type, uint32_t address);
void ymfm_external_write(ymfm::access_class type, uint32_t address, uint8_t data);
DivYM2610BInterface(): parent(NULL), sampleBank(0) {}
};