diff options
Diffstat (limited to 'src/mame/drivers/malzak.cpp')
-rw-r--r-- | src/mame/drivers/malzak.cpp | 102 |
1 files changed, 50 insertions, 52 deletions
diff --git a/src/mame/drivers/malzak.cpp b/src/mame/drivers/malzak.cpp index 6cca8d11d4a..1b28b1cd97c 100644 --- a/src/mame/drivers/malzak.cpp +++ b/src/mame/drivers/malzak.cpp @@ -296,8 +296,8 @@ void malzak_state::machine_reset() m_malzak_y = 0; } -MACHINE_CONFIG_START(malzak_state::malzak) - +void malzak_state::malzak(machine_config &config) +{ /* basic machine hardware */ S2650(config, m_maincpu, 3800000/4); m_maincpu->set_addrmap(AS_PROGRAM, &malzak_state::malzak_map); @@ -306,16 +306,15 @@ MACHINE_CONFIG_START(malzak_state::malzak) m_maincpu->sense_handler().set(m_screen, FUNC(screen_device::vblank)); /* video hardware */ - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(480, 512) /* vert size is a guess */ - MCFG_SCREEN_VISIBLE_AREA(0, 479, 0, 479) - MCFG_SCREEN_UPDATE_DRIVER(malzak_state, screen_update) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(50); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + m_screen->set_size(480, 512); /* vert size is a guess */ + m_screen->set_visarea(0, 479, 0, 479); + m_screen->set_screen_update(FUNC(malzak_state::screen_update)); - MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_malzak) - MCFG_PALETTE_ADD(m_palette, 128) - MCFG_PALETTE_INIT_OWNER(malzak_state, malzak) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_malzak); + PALETTE(config, m_palette, 128).set_init(FUNC(malzak_state::palette_init_malzak)); S2636(config, m_s2636[0], 0); m_s2636[0]->set_offsets(0, -16); // -8, -16 @@ -325,55 +324,54 @@ MACHINE_CONFIG_START(malzak_state::malzak) m_s2636[1]->set_offsets(0, -16); // -9, -16 m_s2636[1]->add_route(ALL_OUTPUTS, "mono", 0.25); - MCFG_DEVICE_ADD(m_trom, SAA5050, 6000000) - MCFG_SAA5050_D_CALLBACK(READ8(*this, malzak_state, videoram_r)) - MCFG_SAA5050_SCREEN_SIZE(42, 24, 64) + SAA5050(config, m_trom, 6000000); + m_trom->d_cb().set(FUNC(malzak_state::videoram_r)); + m_trom->set_screen_size(42, 24, 64); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("sn1", SN76477) - MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C - MCFG_SN76477_DECAY_RES(0) // decay_res: N/C - MCFG_SN76477_ATTACK_PARAMS(0, RES_K(100)) // attack_decay_cap + attack_res - MCFG_SN76477_AMP_RES(RES_K(56)) // amplitude_res - MCFG_SN76477_FEEDBACK_RES(RES_K(10)) // feedback_res - MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(8.2)) // VCO volt + cap + res - MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage - MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(120)) // slf caps + res - MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res: N/C - MCFG_SN76477_VCO_MODE(0) // VCO mode - MCFG_SN76477_MIXER_PARAMS(1, 1, 1) // mixer A, B, C - MCFG_SN76477_ENVELOPE_PARAMS(1, 1) // envelope 1, 2 - MCFG_SN76477_ENABLE(1) // enable - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MCFG_DEVICE_ADD("sn2", SN76477) - MCFG_SN76477_NOISE_PARAMS(0, 0, 0) // noise + filter: N/C - MCFG_SN76477_DECAY_RES(0) // decay_res: N/C - MCFG_SN76477_ATTACK_PARAMS(0, RES_K(100)) // attack_decay_cap + attack_res - MCFG_SN76477_AMP_RES(RES_K(56)) // amplitude_res - MCFG_SN76477_FEEDBACK_RES(RES_K(10)) // feedback_res - MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(8.2)) // VCO volt + cap + res - MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage - MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(120)) // slf caps + res - MCFG_SN76477_ONESHOT_PARAMS(0, 0) // oneshot caps + res: N/C - MCFG_SN76477_VCO_MODE(0) // VCO mode - MCFG_SN76477_MIXER_PARAMS(1, 1, 1) // mixer A, B, C - MCFG_SN76477_ENVELOPE_PARAMS(1, 1) // envelope 1, 2 - MCFG_SN76477_ENABLE(1) // enable - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(malzak_state::malzak2) + sn76477_device &sn1(SN76477(config, "sn1")); + sn1.set_noise_params(0, 0, 0); + sn1.set_decay_res(0); + sn1.set_attack_params(0, RES_K(100)); + sn1.set_amp_res(RES_K(56)); + sn1.set_feedback_res(RES_K(10)); + sn1.set_vco_params(0, CAP_U(0.1), RES_K(8.2)); + sn1.set_pitch_voltage(5.0); + sn1.set_slf_params(CAP_U(1.0), RES_K(120)); + sn1.set_oneshot_params(0, 0); + sn1.set_vco_mode(0); + sn1.set_mixer_params(1, 1, 1); + sn1.set_envelope_params(1, 1); + sn1.set_enable(1); + sn1.add_route(ALL_OUTPUTS, "mono", 0.25); + + sn76477_device &sn2(SN76477(config, "sn2")); + sn2.set_noise_params(0, 0, 0); + sn2.set_decay_res(0); + sn2.set_attack_params(0, RES_K(100)); + sn2.set_amp_res(RES_K(56)); + sn2.set_feedback_res(RES_K(10)); + sn2.set_vco_params(0, CAP_U(0.1), RES_K(8.2)); + sn2.set_pitch_voltage(5.0); + sn2.set_slf_params(CAP_U(1.0), RES_K(120)); + sn2.set_oneshot_params(0, 0); + sn2.set_vco_mode(0); + sn2.set_mixer_params(1, 1, 1); + sn2.set_envelope_params(1, 1); + sn2.set_enable(1); + sn2.add_route(ALL_OUTPUTS, "mono", 0.25); +} + +void malzak_state::malzak2(machine_config &config) +{ malzak(config); - MCFG_DEVICE_MODIFY( "maincpu" ) - MCFG_DEVICE_PROGRAM_MAP(malzak2_map) + m_maincpu->set_addrmap(AS_PROGRAM, &malzak_state::malzak2_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); -MACHINE_CONFIG_END +} ROM_START( malzak ) ROM_REGION( 0x8000, "maincpu", 0 ) |