diff --git a/src/mame/dataeast/kchamp.cpp b/src/mame/dataeast/kchamp.cpp index c20230a964f..f07cd8cb8a1 100644 --- a/src/mame/dataeast/kchamp.cpp +++ b/src/mame/dataeast/kchamp.cpp @@ -406,12 +406,12 @@ void kchamp_state::machine_reset() void kchamp_state::kchampvs(machine_config &config) { // Basic machine hardware - Z80(config, m_maincpu, 12_MHz_XTAL/4); // verified on PCB + Z80(config, m_maincpu, 12_MHz_XTAL / 4); // verified on PCB m_maincpu->set_addrmap(AS_PROGRAM, &kchamp_state::kchampvs_map); m_maincpu->set_addrmap(AS_IO, &kchamp_state::kchampvs_io_map); m_maincpu->set_addrmap(AS_OPCODES, &kchamp_state::decrypted_opcodes_map); - Z80(config, m_audiocpu, 12_MHz_XTAL/4); // verified on PCB + Z80(config, m_audiocpu, 12_MHz_XTAL / 4); // verified on PCB m_audiocpu->set_addrmap(AS_PROGRAM, &kchamp_state::kchampvs_sound_map); m_audiocpu->set_addrmap(AS_IO, &kchamp_state::kchampvs_sound_io_map); // IRQs triggered from main CPU @@ -426,10 +426,7 @@ void kchamp_state::kchampvs(machine_config &config) // Video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(59.10); // verified on PCB - screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); - screen.set_size(32*8, 32*8); - screen.set_visarea(0, 32*8-1, 2*8, 30*8-1); + screen.set_raw(12_MHz_XTAL / 2, 384, 0, 256, 264, 16, 240); // 59.10 Hz refresh verified on PCB screen.set_screen_update(FUNC(kchamp_state::screen_update_kchampvs)); screen.set_palette(m_palette); screen.screen_vblank().set(FUNC(kchamp_state::vblank_irq)); @@ -443,13 +440,13 @@ void kchamp_state::kchampvs(machine_config &config) GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0); - AY8910(config, m_ay[0], 12_MHz_XTAL/8).add_route(ALL_OUTPUTS, "speaker", 0.3); // verified on PCB - AY8910(config, m_ay[1], 12_MHz_XTAL/8).add_route(ALL_OUTPUTS, "speaker", 0.3); // verified on PCB + AY8910(config, m_ay[0], 12_MHz_XTAL / 8).add_route(ALL_OUTPUTS, "speaker", 0.3); // verified on PCB + AY8910(config, m_ay[1], 12_MHz_XTAL / 8).add_route(ALL_OUTPUTS, "speaker", 0.3); // verified on PCB - LS157(config, m_adpcm_select, 0); // at 4C + LS157(config, m_adpcm_select); // at 4C m_adpcm_select->out_callback().set("msm", FUNC(msm5205_device::data_w)); - MSM5205(config, m_msm, 375000); // verified on PCB, discrete circuit clock + MSM5205(config, m_msm, 12_MHz_XTAL / 32); // 375 kHz verified on PCB m_msm->vck_callback().set(FUNC(kchamp_state::msmint)); // interrupt function m_msm->set_prescaler_selector(msm5205_device::S96_4B); // 1 / 96 = 3906.25Hz playback m_msm->add_route(ALL_OUTPUTS, "speaker", 1.0); @@ -462,11 +459,11 @@ void kchamp_state::kchampvs(machine_config &config) void kchamp_state::kchamp(machine_config &config) { // Basic machine hardware - Z80(config, m_maincpu, 8_MHz_XTAL/2); + Z80(config, m_maincpu, 8_MHz_XTAL / 2); m_maincpu->set_addrmap(AS_PROGRAM, &kchamp_state::kchamp_map); m_maincpu->set_addrmap(AS_IO, &kchamp_state::kchamp_io_map); - Z80(config, m_audiocpu, 8_MHz_XTAL/2); + Z80(config, m_audiocpu, 8_MHz_XTAL / 2); m_audiocpu->z80_set_m1_cycles(4+1); // voice matches PCB recordings m_audiocpu->set_addrmap(AS_PROGRAM, &kchamp_state::kchamp_sound_map); m_audiocpu->set_addrmap(AS_IO, &kchamp_state::kchamp_sound_io_map); @@ -482,10 +479,7 @@ void kchamp_state::kchamp(machine_config &config) // Video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(59.10); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); - screen.set_size(32*8, 32*8); - screen.set_visarea(0, 32*8-1, 2*8, 30*8-1); + screen.set_raw(12_MHz_XTAL / 2, 384, 0, 256, 264, 16, 240); screen.set_screen_update(FUNC(kchamp_state::screen_update_kchamp)); screen.set_palette(m_palette); screen.screen_vblank().set(FUNC(kchamp_state::vblank_irq)); @@ -499,10 +493,10 @@ void kchamp_state::kchamp(machine_config &config) GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0); - AY8910(config, m_ay[0], 8_MHz_XTAL/8).add_route(ALL_OUTPUTS, "speaker", 0.3); - AY8910(config, m_ay[1], 8_MHz_XTAL/8).add_route(ALL_OUTPUTS, "speaker", 0.3); + AY8910(config, m_ay[0], 8_MHz_XTAL / 8).add_route(ALL_OUTPUTS, "speaker", 0.3); + AY8910(config, m_ay[1], 8_MHz_XTAL / 8).add_route(ALL_OUTPUTS, "speaker", 0.3); - DAC08(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.3); // IC11 + DAC08(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.3); // IC11 } void kchamp_state::kchamp_arfyc(machine_config &config) @@ -999,8 +993,10 @@ GAME( 1984, kchamp2p, kchamp, kchamp, kchampvs, kchamp_state, empty_init GAME( 1984, karatedo, kchamp, kchamp, kchamp, kchamp_state, empty_init, ROT90, "Data East Corporation", "Karate Dou (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1984, kchamptec, kchamp, kchamp, kchamp, kchamp_state, empty_init, ROT90, "bootleg (Tecfri)", "Karate Champ (Tecfri bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1984, karateda, kchamp, kchamp_arfyc, kchamp, kchamp_state, empty_init, ROT90, "bootleg (Arfyc)", "Karate Dou (Arfyc bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, kchampvs, kchamp, kchampvs, kchampvs, kchamp_state, init_kchampvs, ROT90, "Data East USA", "Karate Champ (US VS version, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, kchampvs2, kchamp, kchampvs, kchampvs, kchamp_state, init_kchampvs2, ROT90, "Data East USA", "Karate Champ (US VS version, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, kchampvs3, kchamp, kchampvs, kchampvs, kchamp_state, init_kchampvs, ROT90, "Data East USA", "Karate Champ (US VS version, set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, kchampvs4, kchamp, kchampvs, kchampvs, kchamp_state, init_kchampvs, ROT90, "Data East USA", "Karate Champ (US VS version, set 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1984, karatevs, kchamp, kchampvs, kchampvs, kchamp_state, init_kchampvs, ROT90, "Data East Corporation", "Taisen Karate Dou (Japan VS version)", MACHINE_SUPPORTS_SAVE ) + +// VS versions +GAME( 1984, kchampvs, kchamp, kchampvs, kchampvs, kchamp_state, init_kchampvs, ROT90, "Data East USA", "Karate Champ - Player Vs Player (US, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, kchampvs2, kchamp, kchampvs, kchampvs, kchamp_state, init_kchampvs2, ROT90, "Data East USA", "Karate Champ - Player Vs Player (US, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, kchampvs3, kchamp, kchampvs, kchampvs, kchamp_state, init_kchampvs, ROT90, "Data East USA", "Karate Champ - Player Vs Player (US, set 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, kchampvs4, kchamp, kchampvs, kchampvs, kchamp_state, init_kchampvs, ROT90, "Data East USA", "Karate Champ - Player Vs Player (US, set 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, karatevs, kchamp, kchampvs, kchampvs, kchamp_state, init_kchampvs, ROT90, "Data East Corporation", "Taisen Karate Dou (Japan)", MACHINE_SUPPORTS_SAVE )