summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-07-21 00:39:21 -0400
committer AJR <ajrhacker@users.noreply.github.com>2018-07-21 00:39:21 -0400
commit445c94120b997e8131eedf4fd0a49d4cbb35ce79 (patch)
tree4468d11a99fe88f5131bafad770da3a5b9c90e48
parent4bd63272aa42dcc3862f7edeffa6942a7b87d360 (diff)
pc9801.cpp: Eliminate bogus XTALs (nw)
-rw-r--r--src/devices/bus/cbus/pc9801_26.cpp4
-rw-r--r--src/devices/bus/cbus/pc9801_amd98.cpp8
-rw-r--r--src/emu/xtal.cpp3
-rw-r--r--src/mame/drivers/pc9801.cpp9
4 files changed, 10 insertions, 14 deletions
diff --git a/src/devices/bus/cbus/pc9801_26.cpp b/src/devices/bus/cbus/pc9801_26.cpp
index 2e2001b7781..729e173bec3 100644
--- a/src/devices/bus/cbus/pc9801_26.cpp
+++ b/src/devices/bus/cbus/pc9801_26.cpp
@@ -18,8 +18,6 @@
#include "speaker.h"
-#define MAIN_CLOCK_X1 XTAL(1'996'800)
-
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
@@ -40,7 +38,7 @@ WRITE_LINE_MEMBER(pc9801_26_device::sound_irq)
MACHINE_CONFIG_START(pc9801_26_device::device_add_mconfig)
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("opn", YM2203, MAIN_CLOCK_X1*2) // unknown clock / divider
+ MCFG_DEVICE_ADD("opn", YM2203, 15.9744_MHz_XTAL / 4) // divider not verified
MCFG_YM2203_IRQ_HANDLER(WRITELINE(*this, pc9801_26_device, sound_irq))
MCFG_AY8910_PORT_A_READ_CB(READ8(*this, pc9801_26_device, opn_porta_r))
//MCFG_AY8910_PORT_B_READ_CB(READ8(*this, pc9801_state, opn_portb_r))
diff --git a/src/devices/bus/cbus/pc9801_amd98.cpp b/src/devices/bus/cbus/pc9801_amd98.cpp
index 84f69c47999..f6114cb2dc7 100644
--- a/src/devices/bus/cbus/pc9801_amd98.cpp
+++ b/src/devices/bus/cbus/pc9801_amd98.cpp
@@ -32,8 +32,6 @@
#include "speaker.h"
-#define MAIN_CLOCK_X1 XTAL(1'996'800)
-
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
@@ -48,17 +46,17 @@ DEFINE_DEVICE_TYPE(PC9801_AMD98, pc9801_amd98_device, "pc9801_amd98", "pc9801_am
MACHINE_CONFIG_START(pc9801_amd98_device::device_add_mconfig)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ay1", AY8910, MAIN_CLOCK_X1*2)
+ MCFG_DEVICE_ADD("ay1", AY8910, 1'996'800)
MCFG_AY8910_PORT_A_READ_CB(IOPORT("OPN_PA1"))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(*this, pc9801_amd98_device,ay3_address_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
- MCFG_DEVICE_ADD("ay2", AY8910, MAIN_CLOCK_X1*2)
+ MCFG_DEVICE_ADD("ay2", AY8910, 1'996'800)
MCFG_AY8910_PORT_A_READ_CB(IOPORT("OPN_PA2"))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(*this, pc9801_amd98_device,ay3_data_latch_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
- MCFG_DEVICE_ADD("ay3", AY8910, MAIN_CLOCK_X1*2)
+ MCFG_DEVICE_ADD("ay3", AY8910, 1'996'800)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25)
MACHINE_CONFIG_END
diff --git a/src/emu/xtal.cpp b/src/emu/xtal.cpp
index ac1c13484e3..c05b475be04 100644
--- a/src/emu/xtal.cpp
+++ b/src/emu/xtal.cpp
@@ -75,11 +75,10 @@ const double XTAL::known_xtals[] = {
1'750'000, /* 1.75_MHz_XTAL RCA CDP1861 */
1'797'100, /* 1.7971_MHz_XTAL SWTPC 6800 (with MIKBUG) */
1'843'200, /* 1.8432_MHz_XTAL Bondwell 12/14 */
- 1'996'800, /* 1.9968_MHz_XTAL NEC PC-98xx */
2'000'000, /* 2_MHz_XTAL - */
2'012'160, /* 2.01216_MHz_XTAL Cidelsa Draco sound board */
2'097'152, /* 2.097152_MHz_XTAL Icatel 1995 - Brazilian public payphone */
- 2'457'600, /* 2.4576_MHz_XTAL Atari ST MFP, NEC PC-98xx */
+ 2'457'600, /* 2.4576_MHz_XTAL Atari ST MFP */
2'500'000, /* 2.5_MHz_XTAL Janken Man units */
2'950'000, /* 2.95_MHz_XTAL Playmatic MPU-C, MPU-III & Sound-3 */
3'000'000, /* 3_MHz_XTAL Probably only used to drive 68705 or similar MCUs on 80's Taito PCBs */
diff --git a/src/mame/drivers/pc9801.cpp b/src/mame/drivers/pc9801.cpp
index a4757661e0d..e4604029231 100644
--- a/src/mame/drivers/pc9801.cpp
+++ b/src/mame/drivers/pc9801.cpp
@@ -1798,13 +1798,14 @@ READ8_MEMBER(pc9801_state::get_slave_ack)
*
****************************************/
-/* basically, PC-98xx series has two xtals.
- My guess is that both are on the PCB, and they clocks the various system components.
+/* These rates do NOT appear to represent actual XTALs. They are likely obtained in
+ different ways on different PC-98 models as divisions of extant XTAL frequencies
+ such as 14.7456 MHz, 15.9744 MHz, 19.6608 MHz and 23.9616 MHz.
PC-9801RS needs X1 for the pit, otherwise Uchiyama Aki no Chou Bangai has sound pitch bugs
PC-9821 definitely needs X2, otherwise there's a timer error at POST. Unless it needs a different clock anyway ...
*/
-#define MAIN_CLOCK_X1 XTAL(1'996'800)
-#define MAIN_CLOCK_X2 XTAL(2'457'600)
+#define MAIN_CLOCK_X1 1'996'800
+#define MAIN_CLOCK_X2 2'457'600
/****************************************
*