cop01: let's add imperfect sound flag for cop01 too

This commit is contained in:
hap 2021-05-12 20:21:05 +02:00
parent a6831c49eb
commit dfa8f43daf
4 changed files with 15 additions and 20 deletions

View File

@ -1184,7 +1184,7 @@ void hd6301x_cpu_device::write_port2()
}
/*
if change_pc() directed these areas ,Call hd63701_trap_pc().
if change_pc() directed these areas, call hd63701_trap_pc().
'mode' is selected by the sense of p2.0,p2.1,and p2.3 at reset timing.
mode 0,1,2,4,6 : $0000-$001f
mode 5 : $0000-$001f,$0200-$efff

View File

@ -2,18 +2,17 @@
// copyright-holders:Carlos A. Lozano
/***************************************************************************
Cops 01 (c) 1985 Nichibutsu
Cop 01 (c) 1985 Nichibutsu
Mighty Guy (c) 1986 Nichibutsu
driver by Carlos A. Lozano <calb@gsyc.inf.uc3m.es>
TODO:
----
- Fix priority kludge (see video/cop01.c)
mightguy:
- missing emulation of the 1412M2 protection chip, used by the sound CPU.
- Inaccurate of the 1412M2 protection chip in mightguy, used by the sound CPU.
This is probably an extra CPU (program rom is the ic2 one), presumably
with data / address line scrambling
- Some sound problems remaining, not just 1412M2, but see also MT7949
Mighty Guy board layout:
@ -449,12 +448,12 @@ void cop01_state::machine_reset()
void cop01_state::cop01(machine_config &config)
{
/* basic machine hardware */
Z80(config, m_maincpu, MAINCPU_CLOCK/2); /* unknown clock / divider */
Z80(config, m_maincpu, MAINCPU_CLOCK/2); // unknown clock / divider
m_maincpu->set_addrmap(AS_PROGRAM, &cop01_state::cop01_map);
m_maincpu->set_addrmap(AS_IO, &cop01_state::io_map);
m_maincpu->set_vblank_int("screen", FUNC(cop01_state::irq0_line_assert));
Z80(config, m_audiocpu, XTAL(3'000'000)); /* unknown clock / divider, hand-tuned to match audio reference */
Z80(config, m_audiocpu, XTAL(3'000'000)); // unknown clock / divider, hand-tuned to match audio reference
m_audiocpu->set_addrmap(AS_PROGRAM, &cop01_state::sound_map);
m_audiocpu->set_addrmap(AS_IO, &cop01_state::audio_io_map);
@ -475,22 +474,20 @@ void cop01_state::cop01(machine_config &config)
GENERIC_LATCH_8(config, m_soundlatch);
AY8910(config, "ay1", 1250000).add_route(ALL_OUTPUTS, "mono", 0.50); /* unknown clock / divider, hand-tuned to match audio reference */
AY8910(config, "ay2", 1250000).add_route(ALL_OUTPUTS, "mono", 0.25); /* unknown clock / divider, hand-tuned to match audio reference */
AY8910(config, "ay3", 1250000).add_route(ALL_OUTPUTS, "mono", 0.25); /* unknown clock / divider, hand-tuned to match audio reference */
AY8910(config, "ay1", 1250000).add_route(ALL_OUTPUTS, "mono", 0.50); // unknown clock / divider, hand-tuned to match audio reference
AY8910(config, "ay2", 1250000).add_route(ALL_OUTPUTS, "mono", 0.25); // "
AY8910(config, "ay3", 1250000).add_route(ALL_OUTPUTS, "mono", 0.25); // "
}
void mightguy_state::mightguy(machine_config &config)
{
/* basic machine hardware */
Z80(config, m_maincpu, MAINCPU_CLOCK/2); /* unknown divider */
Z80(config, m_maincpu, MAINCPU_CLOCK/2); // unknown divider
m_maincpu->set_addrmap(AS_PROGRAM, &mightguy_state::cop01_map);
m_maincpu->set_addrmap(AS_IO, &mightguy_state::mightguy_io_map);
m_maincpu->set_vblank_int("screen", FUNC(cop01_state::irq0_line_assert));
Z80(config, m_audiocpu, AUDIOCPU_CLOCK/2); /* unknown divider */
Z80(config, m_audiocpu, AUDIOCPU_CLOCK/2); // unknown divider
m_audiocpu->set_addrmap(AS_PROGRAM, &mightguy_state::sound_map);
m_audiocpu->set_addrmap(AS_IO, &mightguy_state::mightguy_audio_io_map);
@ -514,7 +511,7 @@ void mightguy_state::mightguy(machine_config &config)
GENERIC_LATCH_8(config, m_soundlatch);
YM3526(config, "ymsnd", AUDIOCPU_CLOCK/2).add_route(ALL_OUTPUTS, "mono", 1.0); /* unknown divider */
YM3526(config, "ymsnd", AUDIOCPU_CLOCK/2).add_route(ALL_OUTPUTS, "mono", 1.0); // unknown divider
DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "mono", 0.5); // unknown DAC
}
@ -662,6 +659,6 @@ void cop01_state::init_mightguy()
*
*************************************/
GAME( 1985, cop01, 0, cop01, cop01, cop01_state, empty_init, ROT0, "Nichibutsu", "Cop 01 (set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1985, cop01a, cop01, cop01, cop01, cop01_state, empty_init, ROT0, "Nichibutsu", "Cop 01 (set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1985, cop01, 0, cop01, cop01, cop01_state, empty_init, ROT0, "Nichibutsu", "Cop 01 (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1985, cop01a, cop01, cop01, cop01, cop01_state, empty_init, ROT0, "Nichibutsu", "Cop 01 (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1986, mightguy, 0, mightguy, mightguy, mightguy_state, init_mightguy, ROT270, "Nichibutsu", "Mighty Guy", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )

View File

@ -2,7 +2,7 @@
// copyright-holders:Carlos A. Lozano
/*************************************************************************
Cops 01
Cop 01
*************************************************************************/
#ifndef MAME_INCLUDES_COP01_H

View File

@ -2,8 +2,6 @@
// copyright-holders:Carlos A. Lozano
/***************************************************************************
video.c
Functions to emulate the video hardware of the machine.
***************************************************************************/