diff options
Diffstat (limited to 'src/mame/drivers/wacky_gator.c')
-rw-r--r-- | src/mame/drivers/wacky_gator.c | 160 |
1 files changed, 80 insertions, 80 deletions
diff --git a/src/mame/drivers/wacky_gator.c b/src/mame/drivers/wacky_gator.c index 99a4eecf47a..da8376248e4 100644 --- a/src/mame/drivers/wacky_gator.c +++ b/src/mame/drivers/wacky_gator.c @@ -36,39 +36,39 @@ class wackygtr_state : public driver_device { public: - wackygtr_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_msm(*this, "msm"), - m_maincpu(*this, "maincpu") - { } - - UINT8* m_samples; - int m_adpcm_data; - int m_adpcm_pos; - int m_adpcm_length; - - required_device<msm5205_device> m_msm; - required_device<cpu_device> m_maincpu; - DECLARE_DRIVER_INIT(wackygtr); - - INTERRUPT_GEN_MEMBER(wackygtr_interrupt); - DECLARE_WRITE_LINE_MEMBER(adpcm_int); - DECLARE_READ8_MEMBER(_0x6000_r); - DECLARE_READ8_MEMBER(_0x6001_r); - DECLARE_READ8_MEMBER(_0x6002_r); - DECLARE_READ8_MEMBER(_0x71d0_r); - DECLARE_READ8_MEMBER(_0x71d5_r); - DECLARE_WRITE8_MEMBER(sample_pos_w); - DECLARE_WRITE8_MEMBER(sample_length_w); + wackygtr_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_msm(*this, "msm"), + m_maincpu(*this, "maincpu") + { } + + UINT8* m_samples; + int m_adpcm_data; + int m_adpcm_pos; + int m_adpcm_length; + + required_device<msm5205_device> m_msm; + required_device<cpu_device> m_maincpu; + DECLARE_DRIVER_INIT(wackygtr); + + INTERRUPT_GEN_MEMBER(wackygtr_interrupt); + DECLARE_WRITE_LINE_MEMBER(adpcm_int); + DECLARE_READ8_MEMBER(_0x6000_r); + DECLARE_READ8_MEMBER(_0x6001_r); + DECLARE_READ8_MEMBER(_0x6002_r); + DECLARE_READ8_MEMBER(_0x71d0_r); + DECLARE_READ8_MEMBER(_0x71d5_r); + DECLARE_WRITE8_MEMBER(sample_pos_w); + DECLARE_WRITE8_MEMBER(sample_length_w); }; DRIVER_INIT_MEMBER(wackygtr_state, wackygtr) { - m_adpcm_data = -1; - m_adpcm_pos = 0; - m_adpcm_length = 0; - m_samples = memregion("oki")->base(); + m_adpcm_data = -1; + m_adpcm_pos = 0; + m_adpcm_length = 0; + m_samples = memregion("oki")->base(); } /* @@ -76,23 +76,23 @@ DRIVER_INIT_MEMBER(wackygtr_state, wackygtr) * and may be completely wrong, so should not yet be understood as hardware documentation. */ READ8_MEMBER(wackygtr_state::_0x6000_r){ - return 0x00; + return 0x00; } READ8_MEMBER(wackygtr_state::_0x6001_r){ - return 0x00; + return 0x00; } READ8_MEMBER(wackygtr_state::_0x6002_r){ - return 0x00; + return 0x00; } READ8_MEMBER(wackygtr_state::_0x71d0_r){ - return 0; + return 0; } READ8_MEMBER(wackygtr_state::_0x71d5_r){ - return 0xFF; + return 0xFF; } /* The handling of sample playback is also guessed. @@ -100,79 +100,79 @@ READ8_MEMBER(wackygtr_state::_0x71d5_r){ * better understand how this is actually hooked up on the original boards; */ WRITE8_MEMBER(wackygtr_state::sample_pos_w){ - m_adpcm_pos = (m_adpcm_pos & 0xFF) << 8 | (data & 0xFF); + m_adpcm_pos = (m_adpcm_pos & 0xFF) << 8 | (data & 0xFF); } WRITE8_MEMBER(wackygtr_state::sample_length_w){ - m_adpcm_length = (m_adpcm_length & 0xFF) << 8 | (data & 0xFF); + m_adpcm_length = (m_adpcm_length & 0xFF) << 8 | (data & 0xFF); } static INPUT_PORTS_START( wackygtr ) - PORT_START("INP0") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_START("INP0") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END WRITE_LINE_MEMBER(wackygtr_state::adpcm_int) -{ +{ /* This looks almost correct, but I am not yet completely sure. */ - if (m_adpcm_length > 0) - { - m_adpcm_length--; - if (m_adpcm_data == -1) - { - /* transferring 1st nibble */ - m_adpcm_data = m_samples[m_adpcm_pos]; - m_adpcm_pos = (m_adpcm_pos + 1) & 0xffff; - m_msm->data_w((m_adpcm_data >> 4) & 0xf); - } - else - { - /* transferring 2nd nibble */ - m_msm->data_w(m_adpcm_data & 0x0f); - m_adpcm_data = -1; - } - } + if (m_adpcm_length > 0) + { + m_adpcm_length--; + if (m_adpcm_data == -1) + { + /* transferring 1st nibble */ + m_adpcm_data = m_samples[m_adpcm_pos]; + m_adpcm_pos = (m_adpcm_pos + 1) & 0xffff; + m_msm->data_w((m_adpcm_data >> 4) & 0xf); + } + else + { + /* transferring 2nd nibble */ + m_msm->data_w(m_adpcm_data & 0x0f); + m_adpcm_data = -1; + } + } } static ADDRESS_MAP_START( program_map, AS_PROGRAM, 8, wackygtr_state ) - AM_RANGE(0x3000, 0x3000) AM_WRITE(sample_length_w) - AM_RANGE(0x3001, 0x3001) AM_WRITE(sample_pos_w) - AM_RANGE(0x6000, 0x6000) AM_READ(_0x6000_r) /* guessed hw peripheral address */ - AM_RANGE(0x6001, 0x6001) AM_READ(_0x6001_r) /* guessed hw peripheral address */ - AM_RANGE(0x6002, 0x6002) AM_READ(_0x6002_r) /* guessed hw peripheral address */ - AM_RANGE(0x71d0, 0x71d0) AM_READ(_0x71d0_r) /* guessed hw peripheral address */ - AM_RANGE(0x71d5, 0x71d5) AM_READ(_0x71d5_r) /* guessed hw peripheral address */ - AM_RANGE(0x7000, 0x7fff) AM_RAM - AM_RANGE(0x8000, 0xffff) AM_ROM + AM_RANGE(0x3000, 0x3000) AM_WRITE(sample_length_w) + AM_RANGE(0x3001, 0x3001) AM_WRITE(sample_pos_w) + AM_RANGE(0x6000, 0x6000) AM_READ(_0x6000_r) /* guessed hw peripheral address */ + AM_RANGE(0x6001, 0x6001) AM_READ(_0x6001_r) /* guessed hw peripheral address */ + AM_RANGE(0x6002, 0x6002) AM_READ(_0x6002_r) /* guessed hw peripheral address */ + AM_RANGE(0x71d0, 0x71d0) AM_READ(_0x71d0_r) /* guessed hw peripheral address */ + AM_RANGE(0x71d5, 0x71d5) AM_READ(_0x71d5_r) /* guessed hw peripheral address */ + AM_RANGE(0x7000, 0x7fff) AM_RAM + AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END static MACHINE_CONFIG_START( wackygtr, wackygtr_state ) - MCFG_CPU_ADD("maincpu", M6809E, XTAL_8MHz) - MCFG_CPU_PROGRAM_MAP(program_map) + MCFG_CPU_ADD("maincpu", M6809E, XTAL_8MHz) + MCFG_CPU_PROGRAM_MAP(program_map) - /* Video */ + /* Video */ // MCFG_DEFAULT_LAYOUT(layout_wackygtr) - /* Sound */ - MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz ) - MCFG_MSM5205_VCLK_CB(WRITELINE(wackygtr_state, adpcm_int)) /* IRQ handler */ - MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz, 4 Bits */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + /* Sound */ + MCFG_SPEAKER_STANDARD_MONO("mono") + MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz ) + MCFG_MSM5205_VCLK_CB(WRITELINE(wackygtr_state, adpcm_int)) /* IRQ handler */ + MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 KHz, 4 Bits */ + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - /* I have a hunch that this board may also - * contain a YM2151 sound chip for background music... - */ + /* I have a hunch that this board may also + * contain a YM2151 sound chip for background music... + */ MACHINE_CONFIG_END ROM_START( wackygtr ) - ROM_REGION(0x10000, "maincpu", 0) - ROM_LOAD("wp3-pr0.4d", 0x8000, 0x8000, CRC(71ca4437) SHA1(c7d948c5593e6053fd0a65601f6c06871f5861f0)) + ROM_REGION(0x10000, "maincpu", 0) + ROM_LOAD("wp3-pr0.4d", 0x8000, 0x8000, CRC(71ca4437) SHA1(c7d948c5593e6053fd0a65601f6c06871f5861f0)) - ROM_REGION(0x10000, "oki", 0) - ROM_LOAD("wp3-vo0.2h", 0x0000, 0x10000, CRC(91c7986f) SHA1(bc9fa0d41c1caa0f909a349f511d022b7e42c6cd)) + ROM_REGION(0x10000, "oki", 0) + ROM_LOAD("wp3-vo0.2h", 0x0000, 0x10000, CRC(91c7986f) SHA1(bc9fa0d41c1caa0f909a349f511d022b7e42c6cd)) ROM_END GAME(1990, wackygtr, 0, wackygtr, wackygtr, wackygtr_state, wackygtr, ROT0, "Data East", "Wacky Gator", MACHINE_IS_SKELETON_MECHANICAL) |