(MESS) fixed specialm and specialp debug crash and removed some trampolines (nw)
This commit is contained in:
parent
d10ce2efeb
commit
8acaf0366b
@ -76,11 +76,24 @@ void specimx_sound_device::sound_stream_update(sound_stream &stream, stream_samp
|
||||
}
|
||||
|
||||
|
||||
void specimx_sound_device::set_input(int index, int state)
|
||||
//-------------------------------------------------
|
||||
// PIT callbacks
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE_LINE_MEMBER(specimx_sound_device::set_input_ch0)
|
||||
{
|
||||
if (m_mixer_channel!=NULL)
|
||||
{
|
||||
m_mixer_channel->update();
|
||||
}
|
||||
m_specimx_input[index] = state;
|
||||
m_mixer_channel->update();
|
||||
m_specimx_input[0] = state;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(specimx_sound_device::set_input_ch1)
|
||||
{
|
||||
m_mixer_channel->update();
|
||||
m_specimx_input[1] = state;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(specimx_sound_device::set_input_ch2)
|
||||
{
|
||||
m_mixer_channel->update();
|
||||
m_specimx_input[2] = state;
|
||||
}
|
||||
|
@ -384,14 +384,6 @@ static MACHINE_CONFIG_START( special, special_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
|
||||
/* Devices */
|
||||
MCFG_DEVICE_ADD( "pit8253", PIT8253, 0)
|
||||
MCFG_PIT8253_CLK0(2000000)
|
||||
MCFG_PIT8253_OUT0_HANDLER(WRITELINE(special_state, specimx_pit8253_out0_changed))
|
||||
MCFG_PIT8253_CLK1(2000000)
|
||||
MCFG_PIT8253_OUT1_HANDLER(WRITELINE(special_state, specimx_pit8253_out1_changed))
|
||||
MCFG_PIT8253_CLK2(2000000)
|
||||
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(special_state, specimx_pit8253_out2_changed))
|
||||
|
||||
MCFG_I8255_ADD( "ppi8255", specialist_ppi8255_interface )
|
||||
MCFG_CASSETTE_ADD( "cassette", special_cassette_interface )
|
||||
MCFG_SOFTWARE_LIST_ADD("cass_list","special_cass")
|
||||
@ -435,6 +427,14 @@ static MACHINE_CONFIG_DERIVED( specimx, special )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
|
||||
|
||||
/* Devices */
|
||||
MCFG_DEVICE_ADD( "pit8253", PIT8253, 0)
|
||||
MCFG_PIT8253_CLK0(2000000)
|
||||
MCFG_PIT8253_OUT0_HANDLER(DEVWRITELINE("custom", specimx_sound_device, set_input_ch0))
|
||||
MCFG_PIT8253_CLK1(2000000)
|
||||
MCFG_PIT8253_OUT1_HANDLER(DEVWRITELINE("custom", specimx_sound_device, set_input_ch1))
|
||||
MCFG_PIT8253_CLK2(2000000)
|
||||
MCFG_PIT8253_OUT2_HANDLER(DEVWRITELINE("custom", specimx_sound_device, set_input_ch2))
|
||||
|
||||
MCFG_DEVICE_REMOVE("ppi8255")
|
||||
MCFG_I8255_ADD( "ppi8255", specimx_ppi8255_interface )
|
||||
MCFG_FD1793x_ADD("fd1793", XTAL_8MHz / 8)
|
||||
|
@ -83,9 +83,6 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(specialist_8255_porta_w);
|
||||
DECLARE_WRITE8_MEMBER(specialist_8255_portb_w);
|
||||
DECLARE_WRITE8_MEMBER(specialist_8255_portc_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(specimx_pit8253_out0_changed);
|
||||
DECLARE_WRITE_LINE_MEMBER(specimx_pit8253_out1_changed);
|
||||
DECLARE_WRITE_LINE_MEMBER(specimx_pit8253_out2_changed);
|
||||
void specimx_set_bank(offs_t i, UINT8 data);
|
||||
void erik_set_bank();
|
||||
UINT8 *m_specimx_colorram;
|
||||
@ -93,7 +90,6 @@ public:
|
||||
UINT8 m_erik_color_2;
|
||||
UINT8 m_erik_background;
|
||||
UINT8 m_specimx_color;
|
||||
specimx_sound_device *m_specimx_audio;
|
||||
int m_specialist_8255_porta;
|
||||
int m_specialist_8255_portb;
|
||||
int m_specialist_8255_portc;
|
||||
@ -173,7 +169,11 @@ class specimx_sound_device : public device_t,
|
||||
public:
|
||||
specimx_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
~specimx_sound_device() { }
|
||||
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(set_input_ch0);
|
||||
DECLARE_WRITE_LINE_MEMBER(set_input_ch1);
|
||||
DECLARE_WRITE_LINE_MEMBER(set_input_ch2);
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start();
|
||||
@ -181,9 +181,6 @@ protected:
|
||||
// sound stream update overrides
|
||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
|
||||
|
||||
public:
|
||||
void set_input(int index, int state);
|
||||
|
||||
private:
|
||||
sound_stream *m_mixer_channel;
|
||||
int m_specimx_input[3];
|
||||
|
@ -235,25 +235,8 @@ WRITE8_MEMBER( special_state::specimx_select_bank )
|
||||
specimx_set_bank(offset, data);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( special_state::specimx_pit8253_out0_changed )
|
||||
{
|
||||
m_specimx_audio->set_input( 0, state );
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( special_state::specimx_pit8253_out1_changed )
|
||||
{
|
||||
m_specimx_audio->set_input( 1, state );
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( special_state::specimx_pit8253_out2_changed )
|
||||
{
|
||||
m_specimx_audio->set_input( 2, state );
|
||||
}
|
||||
|
||||
|
||||
MACHINE_START_MEMBER(special_state,specimx)
|
||||
{
|
||||
m_specimx_audio = machine().device<specimx_sound_device>("custom");
|
||||
m_drive = 0;
|
||||
m_fdc->setup_drq_cb(fd1793_t::line_cb(FUNC(special_state::fdc_drq), this));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user