Skip to content

Commit b6adee8

Browse files
committed
akai/mpc3000.cpp: Correct V53 clock
1 parent 4a7c424 commit b6adee8

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

src/mame/akai/mpc3000.cpp

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ void mpc3000_state::floppies(device_slot_interface &device)
198198

199199
void mpc3000_state::mpc3000(machine_config &config)
200200
{
201-
V53A(config, m_maincpu, 16_MHz_XTAL);
201+
V53A(config, m_maincpu, 32_MHz_XTAL);
202202
m_maincpu->set_addrmap(AS_PROGRAM, &mpc3000_state::mpc3000_map);
203203
m_maincpu->set_addrmap(AS_IO, &mpc3000_state::mpc3000_io_map);
204204
m_maincpu->out_hreq_cb().set(m_maincpu, FUNC(v53a_device::hack_w));
@@ -217,6 +217,9 @@ void mpc3000_state::mpc3000(machine_config &config)
217217
m_maincpu->tout_handler<1>().set_inputline(m_maincpu, INPUT_LINE_IRQ1);
218218
m_maincpu->tout_handler<2>().set_inputline(m_maincpu, INPUT_LINE_IRQ2);
219219

220+
constexpr XTAL V53_CLKOUT = 32_MHz_XTAL / 2;
221+
constexpr XTAL V53_PCLKOUT = 32_MHz_XTAL / 4;
222+
220223
// HC02 gates
221224
INPUT_MERGER_ANY_HIGH(config, "intp3").output_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ3);
222225
INPUT_MERGER_ALL_HIGH(config, "tc").output_handler().set(m_fdc, FUNC(upd72069_device::tc_line_w));
@@ -253,23 +256,23 @@ void mpc3000_state::mpc3000(machine_config &config)
253256

254257
PALETTE(config, "palette", FUNC(mpc3000_state::mpc3000_palette), 2);
255258

256-
UPD72069(config, m_fdc, 16_MHz_XTAL); // clocked by V53 CLKOUT (TODO: upd72069 supports motor control)
259+
UPD72069(config, m_fdc, V53_CLKOUT); // TODO: upd72069 supports motor control
257260
m_fdc->intrq_wr_callback().set("intp3", FUNC(input_merger_device::in_w<0>));
258261
m_fdc->drq_wr_callback().set(m_maincpu, FUNC(v53a_device::dreq_w<1>));
259262

260263
FLOPPY_CONNECTOR(config, m_floppy, mpc3000_state::floppies, "35hd", floppy_image_device::default_mfm_floppy_formats);
261264

262265
pit8254_device &pit(PIT8254(config, "synctmr", 0)); // MB89254
263-
pit.set_clk<0>(16_MHz_XTAL / 4);
264-
pit.set_clk<1>(16_MHz_XTAL / 4);
265-
pit.set_clk<2>(16_MHz_XTAL / 4);
266+
pit.set_clk<0>(V53_PCLKOUT);
267+
pit.set_clk<1>(V53_PCLKOUT);
268+
pit.set_clk<2>(V53_PCLKOUT);
266269

267270
I8255(config, "adcexp"); // MB89255B
268271
I8255(config, "dioexp"); // MB89255B
269272

270273
HD61830(config, m_lcdc, 4.9152_MHz_XTAL / 2 / 2); // LC7981
271274

272-
//TE7774(config, "sio", 16_MHz_XTAL / 4);
275+
//TE7774(config, "sio", V53_PCLKOUT);
273276

274277
auto &mdin(MIDI_PORT(config, "mdin"));
275278
midiin_slot(mdin);
@@ -290,14 +293,14 @@ void mpc3000_state::mpc3000(machine_config &config)
290293
{
291294
mb89352_device &spc = downcast<mb89352_device &>(*device);
292295

293-
spc.set_clock(16_MHz_XTAL / 2);
296+
spc.set_clock(32_MHz_XTAL / 4); // PCLKOUT
294297
spc.out_irq_callback().set(":intp3", FUNC(input_merger_device::in_w<1>));
295298
spc.out_dreq_callback().set(m_maincpu, FUNC(v53a_device::dreq_w<0>));
296299
});
297300

298301
SPEAKER(config, "speaker", 2).front();
299302

300-
L7A1045(config, m_dsp, 16_MHz_XTAL);
303+
L7A1045(config, m_dsp, 33.8688_MHz_XTAL / 2); // TODO: verify clock
301304
m_dsp->add_route(0, "speaker", 1.0, 0);
302305
m_dsp->add_route(1, "speaker", 1.0, 1);
303306
}

0 commit comments

Comments
 (0)