summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/hyperspt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/hyperspt.cpp')
-rw-r--r--src/mame/drivers/hyperspt.cpp40
1 files changed, 36 insertions, 4 deletions
diff --git a/src/mame/drivers/hyperspt.cpp b/src/mame/drivers/hyperspt.cpp
index b003e0794ef..64e208512b7 100644
--- a/src/mame/drivers/hyperspt.cpp
+++ b/src/mame/drivers/hyperspt.cpp
@@ -288,7 +288,7 @@ INTERRUPT_GEN_MEMBER(hyperspt_state::vblank_irq)
device.execute().set_input_line(0, ASSERT_LINE);
}
-static MACHINE_CONFIG_START( hyperspt )
+MACHINE_CONFIG_START(hyperspt_state::hyperspt)
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", KONAMI1, XTAL_18_432MHz/12) /* verified on pcb */
@@ -343,18 +343,50 @@ static MACHINE_CONFIG_START( hyperspt )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
MACHINE_CONFIG_END
+static ADDRESS_MAP_START( hyprolyb_adpcm_map, AS_PROGRAM, 8, hyprolyb_adpcm_device )
+ AM_RANGE(0x0000, 0x007f) AM_RAM
+ AM_RANGE(0x1000, 0x1000) AM_DEVREAD("hyprolyb_adpcm", hyprolyb_adpcm_device, data_r)
+ AM_RANGE(0x1001, 0x1001) AM_DEVREAD("hyprolyb_adpcm", hyprolyb_adpcm_device, ready_r)
+ AM_RANGE(0x1002, 0x1002) AM_DEVWRITE("hyprolyb_adpcm", hyprolyb_adpcm_device, msm_data_w)
+ AM_RANGE(0x1003, 0x1003) AM_DEVREAD("hyprolyb_adpcm", hyprolyb_adpcm_device, msm_vck_r)
+ // on init:
+ // $1003 = $00
+ // $1002 = $FF
+ // $1003 = $34
+ // $1001 = $36
+ // $1002 = $80
+ // loops while ($1003) & 0x80 == 0
+ // 1002 = ADPCM data written (low 4 bits)
+ //
+ // $1003 & $80 (in) = 5205 DRQ
+ // $1002 & $0f (out) = 5205 data
+ // $1001 & $80 (in) = sound latch request
+ // $1000 (in) = sound latch data
+ AM_RANGE(0x8000, 0xffff) AM_ROM
+ADDRESS_MAP_END
+
-static MACHINE_CONFIG_DERIVED( hypersptb, hyperspt )
+MACHINE_CONFIG_DERIVED(hyperspt_state::hypersptb, hyperspt)
MCFG_DEVICE_REMOVE("vlm")
MCFG_CPU_MODIFY("audiocpu")
MCFG_CPU_PROGRAM_MAP(soundb_map)
- MCFG_FRAGMENT_ADD(hyprolyb_adpcm)
+ MCFG_CPU_ADD("adpcm", M6802, XTAL_14_31818MHz/8) /* unknown clock */
+ MCFG_CPU_PROGRAM_MAP(hyprolyb_adpcm_map)
+
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
+
+ MCFG_SOUND_ADD("hyprolyb_adpcm", HYPROLYB_ADPCM, 0)
+
+ MCFG_SOUND_ADD("msm", MSM5205, 384000)
+ MCFG_MSM5205_VCLK_CB(DEVWRITELINE("hyprolyb_adpcm", hyprolyb_adpcm_device, vck_callback)) /* VCK function */
+ MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4 kHz */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( roadf, hyperspt )
+MACHINE_CONFIG_DERIVED(hyperspt_state::roadf, hyperspt)
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(roadf_map)