mirror of
https://github.com/holub/mame
synced 2025-07-04 09:28:51 +03:00
gsword.cpp: measured MCUs clocks for gsword [Guru]
This commit is contained in:
parent
a0a1148938
commit
f635b3ddd9
@ -917,34 +917,34 @@ GFXDECODE_END
|
||||
void gsword_state::gsword(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
Z80(config, m_maincpu, XTAL(18'000'000)/6); /* verified on pcb */
|
||||
Z80(config, m_maincpu, XTAL(18'000'000)/6); // verified on PCB
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &gsword_state::cpu1_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &gsword_state::cpu1_io_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(gsword_state::irq0_line_hold));
|
||||
|
||||
Z80(config, m_subcpu, XTAL(18'000'000)/6); /* verified on pcb */
|
||||
Z80(config, m_subcpu, XTAL(18'000'000)/6); // verified on PCB
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &gsword_state::cpu2_map);
|
||||
m_subcpu->set_addrmap(AS_IO, &gsword_state::cpu2_io_map);
|
||||
m_subcpu->set_periodic_int(FUNC(gsword_state::sound_interrupt), attotime::from_hz(4*60));
|
||||
|
||||
Z80(config, m_audiocpu, XTAL(18'000'000)/6); /* verified on pcb */
|
||||
Z80(config, m_audiocpu, XTAL(18'000'000)/6); // verified on PCB
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &gsword_state::cpu3_map);
|
||||
|
||||
upi41_cpu_device &mcu1(I8041A(config, "mcu1", 12'000'000/2)); // clock unknown, using value from gladiatr
|
||||
upi41_cpu_device &mcu1(I8041A(config, "mcu1", XTAL(12'000'000)/2)); // verified on PCB
|
||||
mcu1.p1_in_cb().set([this] () { return ioport("MCU1.P1")->read() | BIT(m_mcu2_p1, 0); });
|
||||
mcu1.p1_out_cb().set([this] (uint8_t data) { m_mcu1_p1 = data; });
|
||||
mcu1.p2_in_cb().set_ioport("DSW2");
|
||||
mcu1.t0_in_cb().set([this] () { return m_tclk_val ? 1 : 0; }); // serial clock
|
||||
mcu1.t1_in_cb().set([this] () { return BIT(m_mcu2_p1, 1); }); // from P11 on other MCU
|
||||
|
||||
upi41_cpu_device &mcu2(I8041A(config, "mcu2", 12'000'000/2)); // clock unknown, using value from gladiatr
|
||||
upi41_cpu_device &mcu2(I8041A(config, "mcu2", XTAL(12'000'000)/2)); // verified on PCB
|
||||
mcu2.p1_in_cb().set(FUNC(gsword_state::mcu2_p1_r));
|
||||
mcu2.p1_out_cb().set([this] (uint8_t data) { m_mcu2_p1 = data; });
|
||||
mcu2.p2_in_cb().set_ioport("DSW1");
|
||||
mcu2.t0_in_cb().set([this] () { return m_tclk_val ? 1 : 0; }); // serial clock
|
||||
mcu2.t1_in_cb().set([this] () { return BIT(m_mcu1_p1, 1); }); // from P11 on other MCU
|
||||
|
||||
upi41_cpu_device &mcu3(I8041A(config, "mcu3", 12'000'000/2)); // clock unknown, using value from gladiatr
|
||||
upi41_cpu_device &mcu3(I8041A(config, "mcu3", XTAL(12'000'000)/2)); // verified on PCB
|
||||
mcu3.p1_in_cb().set_ioport("IN0");
|
||||
mcu3.p2_in_cb().set_ioport("IN1");
|
||||
mcu3.p2_out_cb().set(FUNC(gsword_state::mcu3_p2_w));
|
||||
@ -980,7 +980,7 @@ void gsword_state::gsword(machine_config &config)
|
||||
m_ay1->port_a_write_callback().set(FUNC(gsword_state::nmi_set_w));
|
||||
m_ay1->add_route(ALL_OUTPUTS, "mono", 0.30);
|
||||
|
||||
msm5205_device &msm(MSM5205(config, "msm", XTAL(400'000))); /* verified on pcb */
|
||||
msm5205_device &msm(MSM5205(config, "msm", XTAL(400'000))); // verified on PCB
|
||||
msm.set_prescaler_selector(msm5205_device::SEX_4B); /* vclk input mode */
|
||||
msm.add_route(ALL_OUTPUTS, "mono", 0.60);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user