mark5: add svg screen, add inputs (nw)

This commit is contained in:
hap 2019-09-03 18:55:48 +02:00
parent 62c658d9d0
commit dfec64bf4b
5 changed files with 141 additions and 51 deletions

View File

@ -360,7 +360,7 @@ static INPUT_PORTS_START( mephisto )
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("H / 8") PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("H / 8")
PORT_START("IN.4") // 2nd model main PCB has 2 XTALs on PCB PORT_START("IN.4") // 2nd model main PCB has 2 XTALs on PCB
PORT_CONFNAME( 0x03, 0x00, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, brikett_state, switch_cpu_freq, 0) PORT_CONDITION("IN.4", 0x30, NOTEQUALS, 0x00) PORT_CONFNAME( 0x03, 0x01, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, brikett_state, switch_cpu_freq, 0) PORT_CONDITION("IN.4", 0x30, NOTEQUALS, 0x00)
PORT_CONFSETTING( 0x00, "3.579MHz (Battery)" ) PORT_CONFSETTING( 0x00, "3.579MHz (Battery)" )
PORT_CONFSETTING( 0x01, "6.144MHz (Mains)" ) PORT_CONFSETTING( 0x01, "6.144MHz (Mains)" )
PORT_CONFNAME( 0x30, 0x00, "Base Hardware" ) PORT_CHANGED_MEMBER(DEVICE_SELF, brikett_state, switch_cpu_freq, 0) PORT_CONFNAME( 0x30, 0x00, "Base Hardware" ) PORT_CHANGED_MEMBER(DEVICE_SELF, brikett_state, switch_cpu_freq, 0)

View File

@ -344,7 +344,7 @@ static INPUT_PORTS_START( savant )
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_NAME("Set Up") PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_NAME("Set Up")
PORT_START("LIGHT") PORT_START("LIGHT")
PORT_CONFNAME( 0x01, 0x01, "LCD Backlight" ) PORT_CHANGED_MEMBER(DEVICE_SELF, savant_state, light_switch, 0) PORT_CONFNAME( 0x01, 0x01, "LCD Light" ) PORT_CHANGED_MEMBER(DEVICE_SELF, savant_state, light_switch, 0)
PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x01, DEF_STR( On ) ) PORT_CONFSETTING( 0x01, DEF_STR( On ) )
INPUT_PORTS_END INPUT_PORTS_END

View File

@ -3,9 +3,8 @@
// thanks-to:Berger // thanks-to:Berger
/****************************************************************************** /******************************************************************************
SciSys Delta-1, the chess engine seems similar to Boris (see aci_boris.cpp) SciSys Delta-1, it was sold by both Novag and SciSys, ROM has "COPY RIGHT WINKLER
It was sold by both Novag and SciSys, ROM has "COPY RIGHT WINKLER HK 1979", HK 1979", Winkler was the founder of SciSys(later renamed to Saitek).
Winkler was the founder of SciSys(later renamed to Saitek).
Hardware notes: Hardware notes:
- 3850PK CPU at ~2MHz, 3853PK memory interface - 3850PK CPU at ~2MHz, 3853PK memory interface

View File

@ -7,7 +7,7 @@ Chess Champion: Mark V / Mark VI (aka MK V / MK VI)
Released in late 1981, the chess engine was initially written by David Broughton Released in late 1981, the chess engine was initially written by David Broughton
for a Z80 CPU and used in a prototype. It was ported to 6502 by Mark Taylor, for a Z80 CPU and used in a prototype. It was ported to 6502 by Mark Taylor,
I/O by Mike Johnson. Support from David Levy and Kevin o'Connell, hardware I/O by Mike Johnson. Support from David Levy and Kevin O'Connell, hardware
by Nick Toop. These credits are in the ROM data. by Nick Toop. These credits are in the ROM data.
Mark VI/Philidor was released a year later, it was a plug-in module for the Mark V. Mark VI/Philidor was released a year later, it was a plug-in module for the Mark V.
@ -16,15 +16,32 @@ It's not much stronger than Mark V(retroactively called Mark V/Travemunde).
Hardware notes: Hardware notes:
- x - x
3 slots:
- ROM module at the bottom, mandatory (4*8KB)
- unused module slot next to the LCD
- sensory board at left edge, only for MK VI
Chess Champion Sensory Board:
- hardware unknown
- magnet sensors, 64 leds
A piece-recognition chessboard was also announced but not released. Maybe
it existed as prototype, see patent GB2103943A.
TODO: TODO:
- WIP - WIP
- add sensory board peripheral, need rom dump
- /2 CPU divider when accessing 0x5000 (the nvram)
- reading from 0x4400 will write to the LCD too, open bus? it wouldn't make
sense to use it (and as expected, it never is used)
- what are the 1M/3M/4M diodes for? CPU speed? the only noticeable difference
is beeper pitch
******************************************************************************/ ******************************************************************************/
#include "emu.h" #include "emu.h"
#include "cpu/m6502/m6502.h" #include "cpu/m6502/m6502.h"
#include "machine/nvram.h" #include "machine/nvram.h"
#include "machine/sensorboard.h"
#include "sound/dac.h" #include "sound/dac.h"
#include "sound/volt_reg.h" #include "sound/volt_reg.h"
#include "video/hlcd0538.h" #include "video/hlcd0538.h"
@ -33,8 +50,6 @@ TODO:
#include "screen.h" #include "screen.h"
#include "speaker.h" #include "speaker.h"
#include <algorithm>
// internal artwork // internal artwork
//#include "saitek_mark5.lh" // clickable //#include "saitek_mark5.lh" // clickable
@ -47,7 +62,6 @@ public:
mark5_state(const machine_config &mconfig, device_type type, const char *tag) : mark5_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag), driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"), m_maincpu(*this, "maincpu"),
m_board(*this, "board"),
m_display(*this, "display%u", 0), m_display(*this, "display%u", 0),
m_lcd(*this, "lcd%u", 0), m_lcd(*this, "lcd%u", 0),
m_dac(*this, "dac"), m_dac(*this, "dac"),
@ -65,11 +79,10 @@ protected:
private: private:
// devices/pointers // devices/pointers
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
required_device<sensorboard_device> m_board; required_device_array<pwm_display_device, 3> m_display;
required_device_array<pwm_display_device, 4> m_display;
required_device_array<hlcd0538_device, 3> m_lcd; required_device_array<hlcd0538_device, 3> m_lcd;
required_device<dac_bit_interface> m_dac; required_device<dac_bit_interface> m_dac;
required_ioport_array<2> m_inputs; required_ioport_array<7+1> m_inputs;
output_finder<3, 8, 34> m_out_x; output_finder<3, 8, 34> m_out_x;
// address maps // address maps
@ -77,7 +90,9 @@ private:
// I/O handlers // I/O handlers
DECLARE_WRITE8_MEMBER(lcd_data_w); DECLARE_WRITE8_MEMBER(lcd_data_w);
DECLARE_WRITE8_MEMBER(sound_w);
DECLARE_READ8_MEMBER(sound_r); DECLARE_READ8_MEMBER(sound_r);
DECLARE_WRITE8_MEMBER(reset_irq_w);
DECLARE_READ8_MEMBER(reset_irq_r); DECLARE_READ8_MEMBER(reset_irq_r);
DECLARE_READ8_MEMBER(input_r); DECLARE_READ8_MEMBER(input_r);
@ -86,7 +101,7 @@ private:
u8 m_dac_data; u8 m_dac_data;
u8 m_lcd_lcd; u8 m_lcd_lcd;
u64 m_lcd_data[3]; u8 m_lcd_rowsel;
emu_timer *m_irqtimer; emu_timer *m_irqtimer;
TIMER_CALLBACK_MEMBER(interrupt); TIMER_CALLBACK_MEMBER(interrupt);
@ -101,17 +116,17 @@ void mark5_state::machine_start()
// zerofill // zerofill
m_dac_data = 0; m_dac_data = 0;
m_lcd_lcd = 0; m_lcd_lcd = 0;
std::fill_n(m_lcd_data, ARRAY_LENGTH(m_lcd_data), 0); m_lcd_rowsel = 0;
// register for savestates // register for savestates
save_item(NAME(m_dac_data)); save_item(NAME(m_dac_data));
save_item(NAME(m_lcd_lcd)); save_item(NAME(m_lcd_lcd));
save_item(NAME(m_lcd_data)); save_item(NAME(m_lcd_rowsel));
} }
void mark5_state::machine_reset() void mark5_state::machine_reset()
{ {
reset_irq_r(machine().dummy_space(), 0); reset_irq_w(machine().dummy_space(), 0, 0);
} }
@ -129,13 +144,14 @@ WRITE8_MEMBER(mark5_state::pwm_output_w)
template<int N> template<int N>
WRITE64_MEMBER(mark5_state::lcd_output_w) WRITE64_MEMBER(mark5_state::lcd_output_w)
{ {
m_lcd_data[N] = data;
u8 sel = m_lcd_data[0] & 0xff;
if (N == 0) if (N == 0)
{
// HLCD0538 R pins
m_lcd_rowsel = data & 0xff;
data >>= 8; data >>= 8;
}
m_display[N]->matrix(sel, data); m_display[N]->matrix(m_lcd_rowsel, data);
} }
void mark5_state::write_lcd(int state) void mark5_state::write_lcd(int state)
@ -157,26 +173,32 @@ TIMER_CALLBACK_MEMBER(mark5_state::interrupt)
write_lcd(m_lcd_lcd ^ 1); write_lcd(m_lcd_lcd ^ 1);
} }
READ8_MEMBER(mark5_state::reset_irq_r) WRITE8_MEMBER(mark5_state::reset_irq_w)
{ {
if (!machine().side_effects_disabled())
{
// MC14020 R // MC14020 R
m_irqtimer->adjust(attotime::from_hz((19.6608_MHz_XTAL / 10 / 0x1000) * 2)); m_irqtimer->adjust(attotime::from_hz((19.6608_MHz_XTAL / 10 / 0x1000) * 2));
write_lcd(0); write_lcd(0);
} }
READ8_MEMBER(mark5_state::reset_irq_r)
{
if (!machine().side_effects_disabled())
reset_irq_w(space, offset, 0);
return 0xff; return 0xff;
} }
WRITE8_MEMBER(mark5_state::sound_w)
{
// 7474 to speaker out
m_dac_data ^= 1;
m_dac->write(m_dac_data & m_inputs[7]->read());
}
READ8_MEMBER(mark5_state::sound_r) READ8_MEMBER(mark5_state::sound_r)
{ {
if (!machine().side_effects_disabled()) if (!machine().side_effects_disabled())
{ sound_w(space, offset, 0);
// 7474 to speaker out
m_dac->write(m_dac_data);
m_dac_data ^= 1;
}
return 0xff; return 0xff;
} }
@ -195,9 +217,15 @@ WRITE8_MEMBER(mark5_state::lcd_data_w)
READ8_MEMBER(mark5_state::input_r) READ8_MEMBER(mark5_state::input_r)
{ {
u8 data = 0;
// _a6: configuration diodes // _a6: configuration diodes
// a0-a5: multiplexed inputs // a0-a5: multiplexed inputs
return 0xff; for (int i = 0; i < 7; i++)
if (BIT(offset ^ 0x40, i))
data |= m_inputs[i]->read();
return ~data;
} }
@ -210,11 +238,11 @@ void mark5_state::main_map(address_map &map)
{ {
map.unmap_value_high(); map.unmap_value_high();
map(0x0000, 0x3fff).ram(); map(0x0000, 0x3fff).ram();
map(0x4000, 0x407f).r(FUNC(mark5_state::input_r)); map(0x4000, 0x407f).mirror(0x0380).r(FUNC(mark5_state::input_r));
map(0x4400, 0x4400).w(FUNC(mark5_state::lcd_data_w)); map(0x4400, 0x4400).mirror(0x03ff).w(FUNC(mark5_state::lcd_data_w));
map(0x4800, 0x4800).r(FUNC(mark5_state::sound_r)); map(0x4800, 0x4800).mirror(0x03ff).rw(FUNC(mark5_state::sound_r), FUNC(mark5_state::sound_w));
map(0x4c00, 0x4c00).r(FUNC(mark5_state::reset_irq_r)); map(0x4c00, 0x4c00).mirror(0x03ff).rw(FUNC(mark5_state::reset_irq_r), FUNC(mark5_state::reset_irq_w));
map(0x5000, 0x50ff).ram(); map(0x5000, 0x50ff).mirror(0x0f00).ram();
map(0x8000, 0xffff).rom(); map(0x8000, 0xffff).rom();
} }
@ -226,16 +254,70 @@ void mark5_state::main_map(address_map &map)
static INPUT_PORTS_START( mark5 ) static INPUT_PORTS_START( mark5 )
PORT_START("IN.0") PORT_START("IN.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) // enter pos
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) // newgame
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) // draw
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) // peripheral
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) // next simul
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) // swap
PORT_START("IN.1") PORT_START("IN.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) // next best
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) // auto
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) // comment
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_0) // analysis
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_MINUS) // clock
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_EQUALS) // clock stop
PORT_START("IN.2")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) // 0
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) // a
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) // 2
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) // c
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) // 4
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Y) // e
PORT_START("IN.3")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_U) // f
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) // g
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_O) // h
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) // 9
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) // take back
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) // forward
PORT_START("IN.4")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) // replay
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) // go
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) // enter
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_J) // ce
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_K) // mode
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) // clock start
PORT_START("IN.5") // square 'd-pad'
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT)
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START("IN.6") // diodes
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_CUSTOM) // 1M/3M/4M
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_CUSTOM) // "
PORT_CONFNAME( 0x0c, 0x00, DEF_STR( Language ) )
PORT_CONFSETTING( 0x00, DEF_STR( English ) )
PORT_CONFSETTING( 0x04, DEF_STR( German ) )
PORT_CONFSETTING( 0x08, DEF_STR( French ) )
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_CUSTOM) // $6000 edge connector
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_CUSTOM) // $7000 "
PORT_START("IN.7") // switches
PORT_CONFNAME( 0x01, 0x01, "Sound" )
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x01, DEF_STR( On ) )
PORT_CONFNAME( 0x02, 0x02, "LCD Light" )
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x02, DEF_STR( On ) )
INPUT_PORTS_END INPUT_PORTS_END
@ -250,9 +332,6 @@ void mark5_state::mark5(machine_config &config)
M6502(config, m_maincpu, 19.6608_MHz_XTAL / 10); M6502(config, m_maincpu, 19.6608_MHz_XTAL / 10);
m_maincpu->set_addrmap(AS_PROGRAM, &mark5_state::main_map); m_maincpu->set_addrmap(AS_PROGRAM, &mark5_state::main_map);
SENSORBOARD(config, m_board).set_type(sensorboard_device::MAGNETS);
m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
/* video hardware */ /* video hardware */
HLCD0538(config, m_lcd[0]).write_cols().set(FUNC(mark5_state::lcd_output_w<0>)); HLCD0538(config, m_lcd[0]).write_cols().set(FUNC(mark5_state::lcd_output_w<0>));
PWM_DISPLAY(config, m_display[0]).set_size(8, 26); PWM_DISPLAY(config, m_display[0]).set_size(8, 26);
@ -266,7 +345,13 @@ void mark5_state::mark5(machine_config &config)
PWM_DISPLAY(config, m_display[2]).set_size(8, 34); PWM_DISPLAY(config, m_display[2]).set_size(8, 34);
m_display[2]->output_x().set(FUNC(mark5_state::pwm_output_w<2>)); m_display[2]->output_x().set(FUNC(mark5_state::pwm_output_w<2>));
PWM_DISPLAY(config, m_display[3]).set_size(8, 8); for (int i = 0; i < 3; i++)
m_display[i]->set_bri_maximum(0.1);
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
screen.set_refresh_hz(60);
screen.set_size(942, 1080);
screen.set_visarea_full();
//config.set_default_layout(layout_saitek_mark5); //config.set_default_layout(layout_saitek_mark5);
@ -288,6 +373,9 @@ ROM_START( ccmk5 )
ROM_LOAD("c47025_syp_2364-3-y5a", 0xa000, 0x2000, CRC(3239c96b) SHA1(6a23713b30c48546d993a0de8998c8de9044e48c) ) // " ROM_LOAD("c47025_syp_2364-3-y5a", 0xa000, 0x2000, CRC(3239c96b) SHA1(6a23713b30c48546d993a0de8998c8de9044e48c) ) // "
ROM_LOAD("c47026_syp_2364-3-y5c", 0xc000, 0x2000, CRC(1754ccab) SHA1(d246b6aa2e2a1858dd6608a4dbf496778f79b22e) ) // " ROM_LOAD("c47026_syp_2364-3-y5c", 0xc000, 0x2000, CRC(1754ccab) SHA1(d246b6aa2e2a1858dd6608a4dbf496778f79b22e) ) // "
ROM_LOAD("c47027_syp_2364-3-y5d", 0xe000, 0x2000, CRC(7c0f7bd8) SHA1(68b4566f0501005f6b1739bb24a4bec990421a6f) ) // " ROM_LOAD("c47027_syp_2364-3-y5d", 0xe000, 0x2000, CRC(7c0f7bd8) SHA1(68b4566f0501005f6b1739bb24a4bec990421a6f) ) // "
ROM_REGION( 1887311, "screen", 0)
ROM_LOAD( "ccmk5.svg", 0, 1887311, CRC(3261bcb2) SHA1(46b38a2877faa36ef1adea2b8f484a97b46ea529) )
ROM_END ROM_END
ROM_START( ccmk6 ) ROM_START( ccmk6 )
@ -296,6 +384,9 @@ ROM_START( ccmk6 )
ROM_LOAD("y6_a0", 0xa000, 0x2000, CRC(dd77dd90) SHA1(844aee56e1941f05bdf046d95c5ae687707a2c95) ) // " ROM_LOAD("y6_a0", 0xa000, 0x2000, CRC(dd77dd90) SHA1(844aee56e1941f05bdf046d95c5ae687707a2c95) ) // "
ROM_LOAD("y6_c0", 0xc000, 0x2000, CRC(705e5718) SHA1(513bba3e7344194efaaf022a7934d32d8cba3cb5) ) // " ROM_LOAD("y6_c0", 0xc000, 0x2000, CRC(705e5718) SHA1(513bba3e7344194efaaf022a7934d32d8cba3cb5) ) // "
ROM_LOAD("y6_e0", 0xe000, 0x2000, CRC(b92c3eb3) SHA1(99a20f5e971b8c4228e0eda0a4c05750d46b95f6) ) // " ROM_LOAD("y6_e0", 0xe000, 0x2000, CRC(b92c3eb3) SHA1(99a20f5e971b8c4228e0eda0a4c05750d46b95f6) ) // "
ROM_REGION( 1887311, "screen", 0)
ROM_LOAD( "ccmk5.svg", 0, 1887311, CRC(3261bcb2) SHA1(46b38a2877faa36ef1adea2b8f484a97b46ea529) )
ROM_END ROM_END
} // anonymous namespace } // anonymous namespace
@ -308,4 +399,4 @@ ROM_END
// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS // YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
CONS( 1981, ccmk5, 0, 0, mark5, mark5, mark5_state, empty_init, "SciSys / Philidor Software", "Chess Champion: Mark V", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) CONS( 1981, ccmk5, 0, 0, mark5, mark5, mark5_state, empty_init, "SciSys / Philidor Software", "Chess Champion: Mark V", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
CONS( 1982, ccmk6, 0, 0, mark5, mark5, mark5_state, empty_init, "SciSys / Philidor Software", "Chess Champion: Mark VI/Philidor", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) CONS( 1982, ccmk6, ccmk5, 0, mark5, mark5, mark5_state, empty_init, "SciSys / Philidor Software", "Chess Champion: Mark VI/Philidor", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )

View File

@ -275,7 +275,7 @@ static INPUT_PORTS_START( ssystem3 )
PORT_CONFNAME( 0x01, 0x01, "Sound" ) PORT_CONFNAME( 0x01, 0x01, "Sound" )
PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x01, DEF_STR( On ) ) PORT_CONFSETTING( 0x01, DEF_STR( On ) )
PORT_CONFNAME( 0x02, 0x02, "Light" ) PORT_CONFNAME( 0x02, 0x02, "LCD Light" )
PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x02, DEF_STR( On ) ) PORT_CONFSETTING( 0x02, DEF_STR( On ) )