Namco WSG: 3 channel WSG now works

This commit is contained in:
tildearrow 2022-05-21 01:34:43 -05:00
parent a9f9d6144a
commit b17694c6a3
3 changed files with 39 additions and 11 deletions

View file

@ -129,7 +129,6 @@ void namco_audio_device::device_clock_changed(int clk)
/* update the decoded waveform data */
void namco_audio_device::update_namco_waveform(int offset, uint8_t data)
{
printf("writing %d to %d\n",data,offset);
if (m_wave_size == 1)
{
int16_t wdata;
@ -188,6 +187,20 @@ void namco_audio_device::sound_enable_w(int state)
m_sound_enable = state;
}
void namco_device::device_start(unsigned char* wavePtr) {
memset(m_soundregs,0,1024);
namco_audio_device::device_start(wavePtr);
}
void namco_15xx_device::device_start(unsigned char* wavePtr) {
memset(m_soundregs,0,1024);
namco_audio_device::device_start(wavePtr);
}
void namco_cus30_device::device_start(unsigned char* wavePtr) {
namco_audio_device::device_start(wavePtr);
}
/********************************************************************************/
@ -235,7 +248,6 @@ void namco_device::pacman_sound_w(int offset, uint8_t data)
{
case 0x05:
voice->waveform_select = data & 7;
printf("selecting waveform %d\n",data);
break;
case 0x10:

View file

@ -36,7 +36,7 @@ public:
namco_audio_device(uint32_t clock);
// device-level overrides
void device_start(unsigned char* wavePtr);
virtual void device_start(unsigned char* wavePtr);
void device_clock_changed(int clk);
// internal state
@ -82,6 +82,8 @@ public:
uint8_t polepos_sound_r(int offset);
void polepos_sound_w(int offset, uint8_t data);
void device_start(unsigned char* wavePtr);
~namco_device() {}
private:
@ -98,6 +100,8 @@ public:
uint8_t sharedram_r(int offset);
void sharedram_w(int offset, uint8_t data);
void device_start(unsigned char* wavePtr);
~namco_15xx_device() {}
private:
@ -116,6 +120,8 @@ public:
void pacman_sound_w(int offset, uint8_t data);
void device_start(unsigned char* wavePtr);
~namco_cus30_device() {}
};