mirror of
https://github.com/holub/mame
synced 2025-07-01 00:09:18 +03:00
isa/sb16.cpp: fix incorrect OPL3 range, add quick mixer placeholder so that it returns irq/dma settings
This commit is contained in:
parent
b6c977b29b
commit
4dd1a69bba
@ -406,6 +406,24 @@ void sb16_lle_device::sb16_io(address_map &map)
|
||||
|
||||
void sb16_lle_device::host_io(address_map &map)
|
||||
{
|
||||
// TODO: move to own mixer core
|
||||
map(0x4, 0x4).lrw8(
|
||||
NAME([this] (offs_t offset) {
|
||||
return m_mixer_index;
|
||||
}),
|
||||
NAME([this] (offs_t offset, u8 data) {
|
||||
m_mixer_index = data;
|
||||
})
|
||||
);
|
||||
map(0x5, 0x5).lr8(
|
||||
NAME([this] (offs_t offset) {
|
||||
if (m_mixer_index == 0x80)
|
||||
return 0x12;
|
||||
if (m_mixer_index == 0x81)
|
||||
return 0x22;
|
||||
return 0;
|
||||
})
|
||||
);
|
||||
map(0x6, 0x7).w(FUNC(sb16_lle_device::dsp_reset_w));
|
||||
map(0xa, 0xb).r(FUNC(sb16_lle_device::host_data_r));
|
||||
map(0xc, 0xd).rw(FUNC(sb16_lle_device::dsp_wbuf_status_r), FUNC(sb16_lle_device::host_cmd_w));
|
||||
@ -712,7 +730,7 @@ void sb16_lle_device::device_start()
|
||||
m_isa->install_device(0x0200, 0x0207, read8smo_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8smo_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_w)));
|
||||
m_isa->install_device(0x0220, 0x022f, *this, &sb16_lle_device::host_io);
|
||||
m_isa->install_device(0x0330, 0x0331, read8sm_delegate(*this, FUNC(sb16_lle_device::mpu401_r)), write8sm_delegate(*this, FUNC(sb16_lle_device::mpu401_w)));
|
||||
m_isa->install_device(0x0388, 0x0389, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
|
||||
m_isa->install_device(0x0388, 0x038b, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
|
||||
m_isa->install_device(0x0220, 0x0223, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
|
||||
m_isa->install_device(0x0228, 0x0229, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
|
||||
m_isa->set_dma_channel(1, this, false);
|
||||
|
@ -112,6 +112,8 @@ private:
|
||||
bool m_dma8_done, m_dma16_done;
|
||||
|
||||
emu_timer *m_timer;
|
||||
|
||||
u8 m_mixer_index;
|
||||
};
|
||||
|
||||
// device type definition
|
||||
|
@ -1303,11 +1303,11 @@ void sb16_device::device_start()
|
||||
{
|
||||
ymf262_device &ymf262 = *subdevice<ymf262_device>("ymf262");
|
||||
m_isa->install_device(0x0200, 0x0207, read8smo_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8smo_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_w)));
|
||||
m_isa->install_device(0x0224, 0x0225, read8sm_delegate(*this, FUNC(sb16_device::mixer_r)), write8sm_delegate(*this, FUNC(sb16_device::mixer_w)));
|
||||
m_isa->install_device(0x0226, 0x0227, read8sm_delegate(*this, FUNC(sb_device::dsp_reset_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_reset_w)));
|
||||
m_isa->install_device(0x022a, 0x022b, read8sm_delegate(*this, FUNC(sb_device::dsp_data_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_data_w)));
|
||||
m_isa->install_device(0x022c, 0x022d, read8sm_delegate(*this, FUNC(sb_device::dsp_wbuf_status_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_cmd_w)));
|
||||
m_isa->install_device(0x022e, 0x022f, read8sm_delegate(*this, FUNC(sb_device::dsp_rbuf_status_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_rbuf_status_w)));
|
||||
m_isa->install_device(0x0224, 0x0225, read8sm_delegate(*this, FUNC(sb16_device::mixer_r)), write8sm_delegate(*this, FUNC(sb16_device::mixer_w)));
|
||||
m_isa->install_device(0x0330, 0x0331, read8sm_delegate(*this, FUNC(sb16_device::mpu401_r)), write8sm_delegate(*this, FUNC(sb16_device::mpu401_w)));
|
||||
m_isa->install_device(0x0388, 0x038b, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
|
||||
m_isa->install_device(0x0220, 0x0223, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write)));
|
||||
|
Loading…
Reference in New Issue
Block a user