From 3c1320f4b1f91e2e4cb2e00af29bf582268deec1 Mon Sep 17 00:00:00 2001 From: AJR Date: Tue, 12 Dec 2023 09:13:18 -0500 Subject: nubus/nubus_cb264.cpp, pds30_cb264.cpp: Better guess at screen parameters; note second XTAL and its probable use --- src/devices/bus/nubus/nubus_cb264.cpp | 11 ++++++----- src/devices/bus/nubus/pds30_cb264.cpp | 6 ++---- src/emu/xtal.cpp | 1 + 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/devices/bus/nubus/nubus_cb264.cpp b/src/devices/bus/nubus/nubus_cb264.cpp index a0e0c36d209..65d399b53af 100644 --- a/src/devices/bus/nubus/nubus_cb264.cpp +++ b/src/devices/bus/nubus/nubus_cb264.cpp @@ -5,13 +5,14 @@ RasterOps ColorBoard 264 NuBus video card emulation fixed resolution 640x480 NuBus video card, 1/2/4/8/24 bit color - 1.5 MiB of VRAM, Bt473 RAMDAC, and two custom gate arrays. + 1.5 MiB of VRAM, Bt473KPJ35 RAMDAC, and two custom gate arrays. 0xfsff6004 is color depth: 0 for 1bpp, 1 for 2bpp, 2 for 4bpp, 3 for 8bpp, 4 for 24bpp 0xfsff6014 is VBL ack: write 1 to ack 0xfsff603c is VBL disable: write 1 to disable, 0 to enable - Crystal (pixel clock) is 30.24 MHz + Crystal (pixel clock) is 30.24 MHz. A 12.3356 MHz XTAL is also present, + likely used only for 30 Hz interlaced NTSC output. TODO: - Figure out the vertical part of the CRTC registers and make the mode dynamic. @@ -73,7 +74,7 @@ void nubus_cb264_device::device_add_mconfig(machine_config &config) { screen_device &screen(SCREEN(config, "cb264_screen", SCREEN_TYPE_RASTER)); screen.set_screen_update(FUNC(nubus_cb264_device::screen_update)); - screen.set_raw(30240000, 860, 0, 640, 524, 0, 480); + screen.set_raw(30.24_MHz_XTAL, 864, 0, 640, 525, 0, 480); // 35 kHz horizontal rate, 66.67 Hz vertical rate PALETTE(config, m_palette).set_entries(256); } @@ -244,13 +245,13 @@ void nubus_cb264_device::cb264_w(offs_t offset, u32 data, u32 mem_mask) Vertical: 40: 2 - first line of active display? 44: 209 - last line of active display? - 48: 20c - vtotal (524) + 48: 20c - vtotal - 1? (525) 4c: f Horizontal: 50: 27 - start of active display 54: c7 - end of active display (0xc7 - 0x27 = 160, 160 * 4 = 640) - 58: d7 - htotal (860) + 58: d7 - htotal/4 - 1? (864) 5c: 6b */ diff --git a/src/devices/bus/nubus/pds30_cb264.cpp b/src/devices/bus/nubus/pds30_cb264.cpp index c485772c843..692ebc18c51 100644 --- a/src/devices/bus/nubus/pds30_cb264.cpp +++ b/src/devices/bus/nubus/pds30_cb264.cpp @@ -28,7 +28,7 @@ ROM_END // GLOBAL VARIABLES //************************************************************************** -DEFINE_DEVICE_TYPE(PDS030_CB264SE30, nubus_cb264se30_device, "pd3_c264", "RasterOps Colorboard 264/SE30") +DEFINE_DEVICE_TYPE(PDS030_CB264SE30, nubus_cb264se30_device, "pd3_c264", "RasterOps ColorBoard 264/SE30") //------------------------------------------------- @@ -39,9 +39,7 @@ void nubus_cb264se30_device::device_add_mconfig(machine_config &config) { screen_device &screen(SCREEN(config, CB264SE30_SCREEN_NAME, SCREEN_TYPE_RASTER)); screen.set_screen_update(FUNC(nubus_cb264se30_device::screen_update)); - screen.set_raw(25175000, 800, 0, 640, 525, 0, 480); - screen.set_size(1024, 768); - screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_raw(30.24_MHz_XTAL, 864, 0, 640, 525, 0, 480); } //------------------------------------------------- diff --git a/src/emu/xtal.cpp b/src/emu/xtal.cpp index 367142f1827..f5dc48a1f49 100644 --- a/src/emu/xtal.cpp +++ b/src/emu/xtal.cpp @@ -208,6 +208,7 @@ const double XTAL::known_xtals[] = { 12'288'000, /* 12.288_MHz_XTAL Sega Model 3 digital audio board */ 12'292'000, /* 12.292_MHz_XTAL Northwest Digitial Systems GP-19 */ 12'324'000, /* 12.324_MHz_XTAL Otrona Attache */ + 12'335'600, /* 12.3356_MHz_XTAL RasterOps ColorBoard 264 (~784x NTSC line rate) */ 12'432'000, /* 12.432_MHz_XTAL Kaneko Fly Boy/Fast Freddie Hardware */ 12'472'500, /* 12.4725_MHz_XTAL Bonanza's Mini Boy 7 */ 12'480'000, /* 12.48_MHz_XTAL TRS-80 Model II */ -- cgit v1.2.3