summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/emu/video/mc6847.c158
-rw-r--r--src/emu/video/mc6847.h21
-rw-r--r--src/mess/drivers/sv8000.c57
3 files changed, 211 insertions, 25 deletions
diff --git a/src/emu/video/mc6847.c b/src/emu/video/mc6847.c
index ca2d5a4b7e5..088f1117811 100644
--- a/src/emu/video/mc6847.c
+++ b/src/emu/video/mc6847.c
@@ -1422,6 +1422,114 @@ const UINT8 mc6847_friend_device::ntsc_square_fontdata8x12[] =
//-------------------------------------------------
+// s68047_fontdata8x12
+//-------------------------------------------------
+
+const UINT8 mc6847_friend_device::s68047_fontdata8x12[] =
+{
+ 0x00, 0x00, 0x00, 0x1C, 0x22, 0x2A, 0x2A, 0x2C, 0x20, 0x1E, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x08, 0x14, 0x22, 0x22, 0x3E, 0x22, 0x22, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3C, 0x22, 0x22, 0x3C, 0x22, 0x22, 0x3C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x22, 0x20, 0x20, 0x20, 0x22, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3C, 0x22, 0x22, 0x22, 0x22, 0x22, 0x3C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3E, 0x20, 0x20, 0x3C, 0x20, 0x20, 0x3E, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3E, 0x20, 0x20, 0x3C, 0x20, 0x20, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x22, 0x20, 0x20, 0x26, 0x22, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x3E, 0x22, 0x22, 0x22, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x22, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x24, 0x28, 0x30, 0x28, 0x24, 0x22, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3E, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x36, 0x2A, 0x2A, 0x22, 0x22, 0x22, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x32, 0x32, 0x2A, 0x26, 0x26, 0x22, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3C, 0x22, 0x22, 0x3C, 0x20, 0x20, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x2A, 0x24, 0x1A, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3C, 0x22, 0x22, 0x3C, 0x28, 0x24, 0x22, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x22, 0x20, 0x1C, 0x02, 0x22, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x2A, 0x2A, 0x2A, 0x14, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x22, 0x14, 0x08, 0x14, 0x22, 0x22, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x22, 0x14, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3E, 0x02, 0x04, 0x08, 0x10, 0x20, 0x3E, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x02, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x04, 0x04, 0x04, 0x04, 0x04, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x3E, 0x10, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x08, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x14, 0x14, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x14, 0x14, 0x3E, 0x14, 0x3E, 0x14, 0x14, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x08, 0x1E, 0x28, 0x1C, 0x0A, 0x3C, 0x08, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x32, 0x32, 0x04, 0x08, 0x10, 0x26, 0x26, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x10, 0x28, 0x28, 0x10, 0x2A, 0x24, 0x1A, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x04, 0x08, 0x10, 0x10, 0x10, 0x08, 0x04, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x10, 0x08, 0x04, 0x04, 0x04, 0x08, 0x10, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x08, 0x2A, 0x1C, 0x2A, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x10, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x02, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x22, 0x26, 0x2A, 0x32, 0x22, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x08, 0x18, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x22, 0x02, 0x1C, 0x20, 0x20, 0x3E, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3E, 0x02, 0x04, 0x0C, 0x02, 0x22, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x04, 0x0C, 0x14, 0x24, 0x3E, 0x04, 0x04, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3E, 0x20, 0x3C, 0x02, 0x02, 0x22, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x0E, 0x10, 0x20, 0x3C, 0x22, 0x22, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3E, 0x02, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x22, 0x22, 0x1C, 0x22, 0x22, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x22, 0x22, 0x1E, 0x02, 0x04, 0x38, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x08, 0x10, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x06, 0x08, 0x10, 0x20, 0x10, 0x08, 0x06, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x30, 0x08, 0x04, 0x02, 0x04, 0x08, 0x30, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x22, 0x02, 0x04, 0x08, 0x00, 0x08, 0x00, 0x00,
+
+ // No lower case, copy/paste of first 32 characters
+ 0x00, 0x00, 0x00, 0x1C, 0x22, 0x2A, 0x2A, 0x2C, 0x20, 0x1E, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x08, 0x14, 0x22, 0x22, 0x3E, 0x22, 0x22, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3C, 0x22, 0x22, 0x3C, 0x22, 0x22, 0x3C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x22, 0x20, 0x20, 0x20, 0x22, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3C, 0x22, 0x22, 0x22, 0x22, 0x22, 0x3C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3E, 0x20, 0x20, 0x3C, 0x20, 0x20, 0x3E, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3E, 0x20, 0x20, 0x3C, 0x20, 0x20, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x22, 0x20, 0x20, 0x26, 0x22, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x3E, 0x22, 0x22, 0x22, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x22, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x24, 0x28, 0x30, 0x28, 0x24, 0x22, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3E, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x36, 0x2A, 0x2A, 0x22, 0x22, 0x22, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x32, 0x32, 0x2A, 0x26, 0x26, 0x22, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3C, 0x22, 0x22, 0x3C, 0x20, 0x20, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x2A, 0x24, 0x1A, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3C, 0x22, 0x22, 0x3C, 0x28, 0x24, 0x22, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x22, 0x20, 0x1C, 0x02, 0x22, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x2A, 0x2A, 0x2A, 0x14, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x22, 0x14, 0x08, 0x14, 0x22, 0x22, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x22, 0x22, 0x14, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3E, 0x02, 0x04, 0x08, 0x10, 0x20, 0x3E, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x02, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1C, 0x04, 0x04, 0x04, 0x04, 0x04, 0x1C, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x3E, 0x10, 0x08, 0x00, 0x00, 0x00,
+};
+
+
+
+//-------------------------------------------------
// semigraphics4_fontdata8x12
//-------------------------------------------------
@@ -1674,6 +1782,7 @@ const device_type MC6847Y_NTSC = &device_creator<mc6847y_ntsc_device>;
const device_type MC6847Y_PAL = &device_creator<mc6847y_pal_device>;
const device_type MC6847T1_NTSC = &device_creator<mc6847t1_ntsc_device>;
const device_type MC6847T1_PAL = &device_creator<mc6847t1_pal_device>;
+const device_type S68047 = &device_creator<s68047_device>;
@@ -1740,3 +1849,52 @@ mc6847t1_pal_device::mc6847t1_pal_device(const machine_config &mconfig, const ch
: mc6847_base_device(mconfig, MC6847T1_PAL, "MC6847T1_PAL", tag, owner, clock, pal_round_fontdata8x12, 313.0, "mc6847t1_pal", __FILE__)
{
}
+
+
+
+//-------------------------------------------------
+// s68047_device
+//-------------------------------------------------
+
+s68047_device::s68047_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : mc6847_base_device(mconfig, S68047, "S68047", tag, owner, clock, s68047_fontdata8x12, 262.0, "s68047", __FILE__)
+{
+}
+
+//
+// In the Bandai Super Vision 8000 there is a video setting
+// bit which causes black to be displayed as blue when css=1.
+//
+// This is probably done through circuitry outside the s68047,
+// but lacking schematics we don't know how it is hooked up
+// exactly.
+//
+// See https://www.youtube.com/watch?v=QCo24GLyff4
+//
+void s68047_device::hack_black_becomes_blue(bool flag)
+{
+ set_custom_palette( flag ? s_s68047_hack_palette : NULL );
+}
+
+const UINT32 s68047_device::s_s68047_hack_palette[16] =
+{
+ MAKE_RGB(0x07, 0xff, 0x00), /* GREEN */
+ MAKE_RGB(0xff, 0xff, 0x00), /* YELLOW */
+ MAKE_RGB(0x3b, 0x08, 0xff), /* BLUE */
+ MAKE_RGB(0xcc, 0x00, 0x3b), /* RED */
+ MAKE_RGB(0xff, 0xff, 0xff), /* BUFF */
+ MAKE_RGB(0x07, 0xe3, 0x99), /* CYAN */
+ MAKE_RGB(0xff, 0x1c, 0xff), /* MAGENTA */
+ MAKE_RGB(0xff, 0x81, 0x00), /* ORANGE */
+
+ MAKE_RGB(0x00, 0x00, 0x00), /* BLACK */
+ MAKE_RGB(0x07, 0xff, 0x00), /* GREEN */
+ MAKE_RGB(0x3b, 0x08, 0xff), /* BLUE */
+ MAKE_RGB(0xff, 0xff, 0xff), /* BUFF */
+
+ MAKE_RGB(0x00, 0x7c, 0x00), /* ALPHANUMERIC DARK GREEN */
+ MAKE_RGB(0x07, 0xff, 0x00), /* ALPHANUMERIC BRIGHT GREEN */
+ MAKE_RGB(0x91, 0x00, 0x00), /* ALPHANUMERIC DARK ORANGE */
+ MAKE_RGB(0xff, 0x81, 0x00) /* ALPHANUMERIC BRIGHT ORANGE */
+};
+
diff --git a/src/emu/video/mc6847.h b/src/emu/video/mc6847.h
index 19359564e0d..8add5b0d0e9 100644
--- a/src/emu/video/mc6847.h
+++ b/src/emu/video/mc6847.h
@@ -113,6 +113,7 @@ protected:
static const UINT8 ntsc_square_fontdata8x12[];
static const UINT8 semigraphics4_fontdata8x12[];
static const UINT8 semigraphics6_fontdata8x12[];
+ static const UINT8 s68047_fontdata8x12[];
// pixel definitions
typedef UINT32 pixel_t;
@@ -519,6 +520,14 @@ protected:
virtual void record_body_scanline(UINT16 physical_scanline, UINT16 scanline);
virtual void record_partial_body_scanline(UINT16 physical_scanline, UINT16 logical_scanline, INT32 start_clock, INT32 end_clock);
+ void set_custom_palette(const pixel_t *custom_palette)
+ {
+ if ( m_palette != m_bw_palette )
+ {
+ m_palette = custom_palette ? custom_palette : s_palette;
+ }
+ }
+
private:
struct video_scanline
{
@@ -634,6 +643,17 @@ public:
mc6847t1_pal_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
};
+class s68047_device : public mc6847_base_device
+{
+public:
+ s68047_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ void hack_black_becomes_blue(bool flag);
+
+private:
+ static const UINT32 s_s68047_hack_palette[16];
+};
+
extern const device_type MC6847_NTSC;
extern const device_type MC6847_PAL;
@@ -641,5 +661,6 @@ extern const device_type MC6847Y_NTSC;
extern const device_type MC6847Y_PAL;
extern const device_type MC6847T1_NTSC;
extern const device_type MC6847T1_PAL;
+extern const device_type S68047;
#endif /* __MC6847__ */
diff --git a/src/mess/drivers/sv8000.c b/src/mess/drivers/sv8000.c
index 335b833efab..a2b2997990c 100644
--- a/src/mess/drivers/sv8000.c
+++ b/src/mess/drivers/sv8000.c
@@ -1,9 +1,9 @@
// license:BSD
-// copyright-holders:Wilbert Pol
+// copyright-holders:Wilbert Pol, Robbbert
/***************************************************************************
Bandai Super Vision 8000 (TV Jack 8000)
- driver by Wilbert Pol, ranger_lennier, and Charles McDonald
+ driver by Wilbert Pol, Robbbert, ranger_lennier, and Charles McDonald
2014/01/07 Skeleton driver.
@@ -18,13 +18,9 @@ Looking at the code of the cartridges it seems there is:
- 3KB of video RAM
TODO:
- - Figure out configuration of S68047P pins through 8910 port A
- - Figure out input ports, left and right might be swapped
+ - Check configuration of S68047P pins through 8910 port A against
+ schematics
- Verify clock
- - Figure out IRQ source
-
- KNOWN ISSUES:
- - pacpac and submar wait for an irq, where is that coming from? vblank?
****************************************************************************/
@@ -72,7 +68,7 @@ private:
virtual void machine_reset();
required_device<cpu_device> m_maincpu;
- required_device<mc6847_base_device> m_s68047p;
+ required_device<s68047_device> m_s68047p;
required_shared_ptr<const UINT8> m_videoram;
required_ioport m_io_row0;
required_ioport m_io_row1;
@@ -175,6 +171,14 @@ void sv8000_state::machine_start()
m_inv = 0;
save_item(NAME(m_column));
+ save_item(NAME(m_ag));
+ save_item(NAME(m_gm2));
+ save_item(NAME(m_gm1));
+ save_item(NAME(m_gm0));
+ save_item(NAME(m_as));
+ save_item(NAME(m_css));
+ save_item(NAME(m_intext));
+ save_item(NAME(m_inv));
}
@@ -215,14 +219,14 @@ DEVICE_IMAGE_LOAD_MEMBER( sv8000_state, cart )
READ8_MEMBER( sv8000_state::i8255_porta_r )
{
- logerror("i8255_porta_r\n");
+ //logerror("i8255_porta_r\n");
return m_io_joy->read();
}
WRITE8_MEMBER( sv8000_state::i8255_porta_w )
{
- logerror("i8255_porta_w: %02X\n", data);
+ //logerror("i8255_porta_w: %02X\n", data);
}
@@ -230,7 +234,7 @@ READ8_MEMBER( sv8000_state::i8255_portb_r )
{
UINT8 data = 0xff;
- logerror("i8255_portb_r\n");
+ //logerror("i8255_portb_r\n");
if ( ! ( m_column & 0x01 ) )
{
@@ -250,20 +254,20 @@ READ8_MEMBER( sv8000_state::i8255_portb_r )
WRITE8_MEMBER( sv8000_state::i8255_portb_w )
{
- logerror("i8255_portb_w: %02X\n", data);
+ //logerror("i8255_portb_w: %02X\n", data);
}
READ8_MEMBER( sv8000_state::i8255_portc_r )
{
- logerror("i8255_portc_r\n");
+ //logerror("i8255_portc_r\n");
return 0xFF;
}
WRITE8_MEMBER( sv8000_state::i8255_portc_w )
{
- logerror("i8255_portc_w: %02X\n", data);
+ //logerror("i8255_portc_w: %02X\n", data);
m_column = data;
}
@@ -283,7 +287,7 @@ READ8_MEMBER( sv8000_state::ay_port_a_r )
{
UINT8 data = 0xFF;
- logerror("ay_port_a_r\n");
+ //logerror("ay_port_a_r\n");
return data;
}
@@ -292,7 +296,7 @@ READ8_MEMBER( sv8000_state::ay_port_b_r )
{
UINT8 data = 0xff;
- logerror("ay_port_b_r\n");
+ //logerror("ay_port_b_r\n");
return data;
}
@@ -308,14 +312,15 @@ READ8_MEMBER( sv8000_state::ay_port_b_r )
//
// othello:
// 0x02 00000010 normal text screen
+// 0x58 01011000 graphics 3KB in 6KB mode?
//
// gunprof:
// 0x00 00000000 text
-// 0x38 00111000 graphics 3KB mode 1-101
+// 0x38 00111000 graphics 3KB mode
//
// pacpac:
// 0x00 00000000 text
-// 0x5A 01011010 graphics 3KB in 6KB mode? 1-111
+// 0x5A 01011010 graphics 3KB in 6KB mode?
//
// submar:
// 0x00 00000000 text
@@ -326,26 +331,28 @@ READ8_MEMBER( sv8000_state::ay_port_b_r )
//
WRITE8_MEMBER( sv8000_state::ay_port_a_w )
{
-printf("ay_porta_w: %02X\n", data);
- logerror("ay_port_a_w: %02X\n", data);
+ //logerror("ay_port_a_w: %02X\n", data);
// Lacking schematics, these are all wild guesses
+ // Having bit 1 set makes black display as blue??
m_ag = BIT(data, 4);
m_gm2 = BIT(data, 6);
m_gm1 = BIT(data, 3);
m_gm0 = BIT(data, 3);
+ m_css = m_ag;
m_s68047p->ag_w( m_ag ? ASSERT_LINE : CLEAR_LINE );
m_s68047p->gm2_w( m_gm2 ? ASSERT_LINE : CLEAR_LINE );
m_s68047p->gm1_w( m_gm1 ? ASSERT_LINE : CLEAR_LINE );
m_s68047p->gm0_w( m_gm0 ? ASSERT_LINE : CLEAR_LINE );
+ m_s68047p->css_w( m_css ? ASSERT_LINE : CLEAR_LINE );
+ m_s68047p->hack_black_becomes_blue( BIT(data, 1) );
}
WRITE8_MEMBER( sv8000_state::ay_port_b_w )
{
-printf("ay_portb_w: %02X\n", data);
- logerror("ay_port_b_w: %02X\n", data);
+ //logerror("ay_port_b_w: %02X\n", data);
}
@@ -421,7 +428,7 @@ static MACHINE_CONFIG_START( sv8000, sv8000_state )
/* video hardware */
// S68047P - Unknown whether the internal or an external character rom is used
- MCFG_MC6847_ADD("s68047p", MC6847_NTSC, XTAL_10_738635MHz/3, sv8000_mc6847_interface ) // Clock not verified
+ MCFG_MC6847_ADD("s68047p", S68047, XTAL_10_738635MHz/3, sv8000_mc6847_interface ) // Clock not verified
MCFG_SCREEN_MC6847_NTSC_ADD("screen", "s68047p")
/* sound hardware */
@@ -449,5 +456,5 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1979, sv8000, 0, 0, sv8000, sv8000, driver_device, 0, "Bandai", "Super Vision 8000 (TV Jack 8000)", GAME_IS_SKELETON )
+COMP( 1979, sv8000, 0, 0, sv8000, sv8000, driver_device, 0, "Bandai", "Super Vision 8000 (TV Jack 8000)", 0 )