diff options
author | cam900 <dbtlrchl@naver.com> | 2018-04-27 01:49:34 +0900 |
---|---|---|
committer | cam900 <dbtlrchl@naver.com> | 2018-04-27 01:49:34 +0900 |
commit | 41dbb5969dad6d12f5db7e943a2594825c5a4f2e (patch) | |
tree | 412307de76c0403208a08d4ecb19fcc29a2016e8 /src/devices/sound | |
parent | dad267593ad03e8f5a6659033c5d6a299e336de4 (diff) |
aica.cpp : Correct register name from development manual, Add docs of unimplemented registers; Add imperfect_features because Emulation isn't perfect (DSP, etc..)
Diffstat (limited to 'src/devices/sound')
-rw-r--r-- | src/devices/sound/aica.cpp | 14 | ||||
-rw-r--r-- | src/devices/sound/aica.h | 2 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/devices/sound/aica.cpp b/src/devices/sound/aica.cpp index c7ef59e6c49..7ff090dd404 100644 --- a/src/devices/sound/aica.cpp +++ b/src/devices/sound/aica.cpp @@ -77,6 +77,18 @@ #define EFSDL(slot) ((m_EFSPAN[slot*4]>>8)&0x000f) #define EFPAN(slot) ((m_EFSPAN[slot*4]>>0)&0x001f) +//Unimplemented +#define Q(slot) ((slot->udata.data[0x28/2]>>0x0)&0x001F) // (0.75 × register value - 3) +#define FLV0(slot) ((slot->udata.data[0x2c/2]>>0x0)&0x1FFF) +#define FLV1(slot) ((slot->udata.data[0x30/2]>>0x0)&0x1FFF) +#define FLV2(slot) ((slot->udata.data[0x34/2]>>0x0)&0x1FFF) +#define FLV3(slot) ((slot->udata.data[0x38/2]>>0x0)&0x1FFF) +#define FLV4(slot) ((slot->udata.data[0x3c/2]>>0x0)&0x1FFF) +#define FAR(slot) ((slot->udata.data[0x40/2]>>0x8)&0x001F) +#define FD1R(slot) ((slot->udata.data[0x40/2]>>0x0)&0x001F) +#define FD2R(slot) ((slot->udata.data[0x44/2]>>0x8)&0x001F) +#define FRR(slot) ((slot->udata.data[0x44/2]>>0x0)&0x001F) + //Envelope times in ms static constexpr double ARTimes[64]={100000/*infinity*/,100000/*infinity*/,8100.0,6900.0,6000.0,4800.0,4000.0,3400.0,3000.0,2400.0,2000.0,1700.0,1500.0, 1200.0,1000.0,860.0,760.0,600.0,500.0,430.0,380.0,300.0,250.0,220.0,190.0,150.0,130.0,110.0,95.0, @@ -87,7 +99,7 @@ static constexpr double DRTimes[64]={100000/*infinity*/,100000/*infinity*/,11820 920.0,790.0,690.0,550.0,460.0,390.0,340.0,270.0,230.0,200.0,170.0,140.0,110.0,98.0,85.0,68.0,57.0,49.0,43.0,34.0, 28.0,25.0,22.0,18.0,14.0,12.0,11.0,8.5,7.1,6.1,5.4,4.3,3.6,3.1}; -#define MEM4B(aica) ((m_udata.data[0]>>0x0)&0x0200) +#define MEM8MB(aica) ((m_udata.data[0]>>0x0)&0x0200) #define DAC18B(aica) ((m_udata.data[0]>>0x0)&0x0100) #define MVOL(aica) ((m_udata.data[0]>>0x0)&0x000F) #define RBL(aica) ((m_udata.data[2]>>0xD)&0x0003) diff --git a/src/devices/sound/aica.h b/src/devices/sound/aica.h index a1d43f911b6..4979e6fc3c4 100644 --- a/src/devices/sound/aica.h +++ b/src/devices/sound/aica.h @@ -30,6 +30,8 @@ class aica_device : public device_t, public device_sound_interface { public: + static constexpr feature_type imperfect_features() { return feature::SOUND; } + aica_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); void set_master(bool master) { m_master = master; } |