diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/emu/video/mc6847.c | 158 | ||||
-rw-r--r-- | src/emu/video/mc6847.h | 21 | ||||
-rw-r--r-- | src/mess/drivers/sv8000.c | 57 |
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 ) |