mirror of
https://github.com/holub/mame
synced 2025-06-05 20:33:45 +03:00
mephisto_milano: don't use mmboard device
This commit is contained in:
parent
85b4bcd98c
commit
7b72b123c2
@ -40,9 +40,11 @@ TODO:
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "machine/mmboard.h"
|
||||
#include "sound/dac.h"
|
||||
|
||||
#include "speaker.h"
|
||||
|
||||
// internal artwork
|
||||
@ -50,6 +52,8 @@ TODO:
|
||||
#include "mephisto_glasgow.lh"
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
class glasgow_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -65,10 +69,10 @@ public:
|
||||
void glasgow(machine_config &config);
|
||||
|
||||
protected:
|
||||
void glasgow_lcd_w(uint8_t data);
|
||||
void glasgow_lcd_flag_w(uint8_t data);
|
||||
uint8_t glasgow_keys_r();
|
||||
void glasgow_keys_w(uint8_t data);
|
||||
void glasgow_lcd_w(u8 data);
|
||||
void glasgow_lcd_flag_w(u8 data);
|
||||
u8 glasgow_keys_r();
|
||||
void glasgow_keys_w(u8 data);
|
||||
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
@ -81,9 +85,9 @@ protected:
|
||||
required_ioport_array<2> m_keyboard;
|
||||
output_finder<4> m_digits;
|
||||
|
||||
uint8_t m_lcd_shift_counter;
|
||||
uint8_t m_led7;
|
||||
uint8_t m_key_select;
|
||||
u8 m_lcd_shift_counter;
|
||||
u8 m_led7;
|
||||
u8 m_key_select;
|
||||
};
|
||||
|
||||
|
||||
@ -96,11 +100,11 @@ public:
|
||||
void dallas32(machine_config &config);
|
||||
|
||||
protected:
|
||||
void write_lcd(uint8_t data);
|
||||
void write_lcd_flag(uint8_t data);
|
||||
void write_beeper(uint8_t data);
|
||||
void write_board(uint8_t data);
|
||||
uint8_t read_newkeys();
|
||||
void write_lcd(u8 data);
|
||||
void write_lcd_flag(u8 data);
|
||||
void write_beeper(u8 data);
|
||||
void write_board(u8 data);
|
||||
u8 read_newkeys();
|
||||
|
||||
void amsterd_mem(address_map &map);
|
||||
void dallas32_mem(address_map &map);
|
||||
@ -108,7 +112,11 @@ protected:
|
||||
|
||||
|
||||
|
||||
void glasgow_state::glasgow_lcd_w(uint8_t data)
|
||||
/******************************************************************************
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
void glasgow_state::glasgow_lcd_w(u8 data)
|
||||
{
|
||||
if (m_led7 == 0)
|
||||
m_digits[m_lcd_shift_counter] = data;
|
||||
@ -117,9 +125,9 @@ void glasgow_state::glasgow_lcd_w(uint8_t data)
|
||||
m_lcd_shift_counter &= 3;
|
||||
}
|
||||
|
||||
void glasgow_state::glasgow_lcd_flag_w(uint8_t data)
|
||||
void glasgow_state::glasgow_lcd_flag_w(u8 data)
|
||||
{
|
||||
uint8_t const lcd_flag = data & 0x81;
|
||||
u8 const lcd_flag = data & 0x81;
|
||||
|
||||
m_dac->write(BIT(lcd_flag, 0));
|
||||
|
||||
@ -129,10 +137,10 @@ void glasgow_state::glasgow_lcd_flag_w(uint8_t data)
|
||||
m_led7 = 0;
|
||||
}
|
||||
|
||||
uint8_t glasgow_state::glasgow_keys_r()
|
||||
u8 glasgow_state::glasgow_keys_r()
|
||||
{
|
||||
// See if any keys pressed
|
||||
uint8_t data = 3;
|
||||
u8 data = 3;
|
||||
|
||||
if (m_key_select == m_keyboard[0]->read())
|
||||
data &= 1;
|
||||
@ -143,12 +151,12 @@ uint8_t glasgow_state::glasgow_keys_r()
|
||||
return data;
|
||||
}
|
||||
|
||||
void glasgow_state::glasgow_keys_w(uint8_t data)
|
||||
void glasgow_state::glasgow_keys_w(u8 data)
|
||||
{
|
||||
m_key_select = data;
|
||||
}
|
||||
|
||||
void amsterd_state::write_lcd(uint8_t data)
|
||||
void amsterd_state::write_lcd(u8 data)
|
||||
{
|
||||
if (m_lcd_shift_counter & 4)
|
||||
m_digits[m_lcd_shift_counter & 3] = data;
|
||||
@ -157,7 +165,7 @@ void amsterd_state::write_lcd(uint8_t data)
|
||||
m_lcd_shift_counter &= 7;
|
||||
}
|
||||
|
||||
void amsterd_state::write_lcd_flag(uint8_t data)
|
||||
void amsterd_state::write_lcd_flag(u8 data)
|
||||
{
|
||||
// The key function in the rom expects a value from the
|
||||
// second key row after writing to here
|
||||
@ -166,19 +174,19 @@ void amsterd_state::write_lcd_flag(uint8_t data)
|
||||
m_led7 = data ? 255 : 0;
|
||||
}
|
||||
|
||||
void amsterd_state::write_board(uint8_t data)
|
||||
void amsterd_state::write_board(u8 data)
|
||||
{
|
||||
m_key_select = 0;
|
||||
m_board->led_w(0);
|
||||
m_board->mux_w(data);
|
||||
}
|
||||
|
||||
void amsterd_state::write_beeper(uint8_t data)
|
||||
void amsterd_state::write_beeper(u8 data)
|
||||
{
|
||||
m_dac->write(BIT(data, 0));
|
||||
}
|
||||
|
||||
uint8_t amsterd_state::read_newkeys()
|
||||
u8 amsterd_state::read_newkeys()
|
||||
{
|
||||
return m_keyboard[m_key_select & 1]->read();
|
||||
}
|
||||
@ -201,6 +209,11 @@ void glasgow_state::machine_reset()
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Address Maps
|
||||
******************************************************************************/
|
||||
|
||||
void glasgow_state::glasgow_mem(address_map &map)
|
||||
{
|
||||
map.global_mask(0x1ffff);
|
||||
@ -239,6 +252,12 @@ void amsterd_state::dallas32_mem(address_map &map)
|
||||
map(0x800088, 0x800088).w("board", FUNC(mephisto_board_device::led_w));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Input Ports
|
||||
******************************************************************************/
|
||||
|
||||
static INPUT_PORTS_START( new_keyboard )
|
||||
PORT_START("LINE0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A / 1") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD)
|
||||
@ -284,6 +303,11 @@ static INPUT_PORTS_START( old_keyboard )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Machine Configs
|
||||
******************************************************************************/
|
||||
|
||||
void glasgow_state::glasgow(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
@ -323,9 +347,10 @@ void amsterd_state::dallas32(machine_config &config)
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
ROM definitions
|
||||
***************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
ROM Definitions
|
||||
******************************************************************************/
|
||||
|
||||
ROM_START( glasgow )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
@ -387,10 +412,13 @@ ROM_START( roma16a )
|
||||
ROM_LOAD16_BYTE("roma_l_high", 0x08001, 0x04000, CRC(0b20617b) SHA1(f0296c486ce9009a69de1e50b90b0e1b7555f468) )
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
/***************************************************************************
|
||||
Game drivers
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Drivers
|
||||
******************************************************************************/
|
||||
|
||||
/* YEAR, NAME, PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1984, glasgow, 0, 0, glasgow, old_keyboard, glasgow_state, empty_init, "Hegener + Glaser", "Mephisto III-S Glasgow", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
@ -1,5 +1,6 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Sandro Ronco
|
||||
// copyright-holders:Sandro Ronco, hap
|
||||
// thanks-to:Berger
|
||||
/******************************************************************************
|
||||
|
||||
Mephisto Milano
|
||||
@ -19,8 +20,9 @@ Nigel Short is basically a Milano 2.00
|
||||
#include "cpu/m6502/r65c02.h"
|
||||
#include "machine/74259.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "machine/mmboard.h"
|
||||
#include "machine/sensorboard.h"
|
||||
#include "video/mmdisplay2.h"
|
||||
#include "video/pwm.h"
|
||||
|
||||
// internal artwork
|
||||
#include "mephisto_milano.lh"
|
||||
@ -28,55 +30,90 @@ Nigel Short is basically a Milano 2.00
|
||||
|
||||
namespace {
|
||||
|
||||
class mephisto_milano_state : public driver_device
|
||||
class milano_state : public driver_device
|
||||
{
|
||||
public:
|
||||
mephisto_milano_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
milano_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_board(*this, "board")
|
||||
, m_display(*this, "display")
|
||||
, m_led_pwm(*this, "led_pwm")
|
||||
, m_keys(*this, "KEY")
|
||||
{ }
|
||||
|
||||
void milano(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<mephisto_board_device> m_board;
|
||||
required_device<sensorboard_device> m_board;
|
||||
required_device<mephisto_display_module2_device> m_display;
|
||||
required_device<pwm_display_device> m_led_pwm;
|
||||
required_ioport m_keys;
|
||||
|
||||
void milano_mem(address_map &map);
|
||||
|
||||
u8 keys_r(offs_t offset);
|
||||
u8 board_r();
|
||||
void update_leds();
|
||||
void io_w(u8 data);
|
||||
void board_w(u8 data);
|
||||
u8 board_r();
|
||||
u8 keys_r(offs_t offset);
|
||||
|
||||
u8 m_board_mux = 0;
|
||||
u8 m_led_data = 0;
|
||||
};
|
||||
|
||||
void milano_state::machine_start()
|
||||
{
|
||||
save_item(NAME(m_board_mux));
|
||||
save_item(NAME(m_led_data));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
u8 mephisto_milano_state::keys_r(offs_t offset)
|
||||
void milano_state::update_leds()
|
||||
{
|
||||
return (BIT(m_keys->read(), offset) << 7) | 0x7f;
|
||||
m_led_pwm->matrix(m_board_mux, m_led_data);
|
||||
}
|
||||
|
||||
u8 mephisto_milano_state::board_r()
|
||||
{
|
||||
return m_board->input_r() ^ 0xff;
|
||||
}
|
||||
|
||||
void mephisto_milano_state::io_w(u8 data)
|
||||
void milano_state::io_w(u8 data)
|
||||
{
|
||||
// default display module
|
||||
m_display->io_w(data & 0x0f);
|
||||
|
||||
// high bits go to board leds
|
||||
m_board->led_w(data >> 4);
|
||||
m_led_data = data >> 4;
|
||||
update_leds();
|
||||
}
|
||||
|
||||
void milano_state::board_w(u8 data)
|
||||
{
|
||||
m_board_mux = ~data;
|
||||
update_leds();
|
||||
}
|
||||
|
||||
u8 milano_state::board_r()
|
||||
{
|
||||
u8 data = 0;
|
||||
|
||||
// read chessboard sensors
|
||||
for (int i = 0; i < 8; i++)
|
||||
if (BIT(m_board_mux, i))
|
||||
data |= m_board->read_rank(i);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
u8 milano_state::keys_r(offs_t offset)
|
||||
{
|
||||
return (BIT(m_keys->read(), offset) << 7) | 0x7f;
|
||||
}
|
||||
|
||||
|
||||
@ -85,15 +122,15 @@ void mephisto_milano_state::io_w(u8 data)
|
||||
Address Maps
|
||||
******************************************************************************/
|
||||
|
||||
void mephisto_milano_state::milano_mem(address_map &map)
|
||||
void milano_state::milano_mem(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1fbf).ram().share("nvram");
|
||||
map(0x1fc0, 0x1fc0).w(m_display, FUNC(mephisto_display_module2_device::latch_w));
|
||||
map(0x1fd0, 0x1fd0).w(m_board, FUNC(mephisto_board_device::mux_w));
|
||||
map(0x1fe0, 0x1fe0).r(FUNC(mephisto_milano_state::board_r));
|
||||
map(0x1fd0, 0x1fd0).w(FUNC(milano_state::board_w));
|
||||
map(0x1fe0, 0x1fe0).r(FUNC(milano_state::board_r));
|
||||
map(0x1fe8, 0x1fef).w("outlatch", FUNC(hc259_device::write_d7)).nopr();
|
||||
map(0x1fd8, 0x1fdf).r(FUNC(mephisto_milano_state::keys_r));
|
||||
map(0x1ff0, 0x1ff0).w(FUNC(mephisto_milano_state::io_w));
|
||||
map(0x1fd8, 0x1fdf).r(FUNC(milano_state::keys_r));
|
||||
map(0x1ff0, 0x1ff0).w(FUNC(milano_state::io_w));
|
||||
map(0x2000, 0xffff).rom();
|
||||
}
|
||||
|
||||
@ -121,11 +158,12 @@ INPUT_PORTS_END
|
||||
Machine Configs
|
||||
******************************************************************************/
|
||||
|
||||
void mephisto_milano_state::milano(machine_config &config)
|
||||
void milano_state::milano(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
R65C02(config, m_maincpu, 4.9152_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_milano_state::milano_mem);
|
||||
m_maincpu->set_periodic_int(FUNC(mephisto_milano_state::nmi_line_pulse), attotime::from_hz(4.9152_MHz_XTAL / (1 << 13)));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &milano_state::milano_mem);
|
||||
m_maincpu->set_periodic_int(FUNC(milano_state::nmi_line_pulse), attotime::from_hz(4.9152_MHz_XTAL / (1 << 13)));
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
@ -137,7 +175,13 @@ void mephisto_milano_state::milano(machine_config &config)
|
||||
outlatch.q_out_cb<4>().set_output("led104");
|
||||
outlatch.q_out_cb<5>().set_output("led105");
|
||||
|
||||
MEPHISTO_BUTTONS_BOARD(config, m_board); // internal
|
||||
SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS);
|
||||
m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
|
||||
m_board->set_delay(attotime::from_msec(150));
|
||||
|
||||
/* video hardware */
|
||||
PWM_DISPLAY(config, m_led_pwm).set_size(8, 2);
|
||||
|
||||
MEPHISTO_DISPLAY_MODULE2(config, m_display); // internal
|
||||
config.set_default_layout(layout_mephisto_milano);
|
||||
}
|
||||
@ -171,8 +215,8 @@ ROM_END
|
||||
Game Drivers
|
||||
***************************************************************************/
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1991, milano, 0, 0, milano, milano, mephisto_milano_state, empty_init, "Hegener + Glaser", "Mephisto Milano (v1.02)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1991, milanoa, milano, 0, milano, milano, mephisto_milano_state, empty_init, "Hegener + Glaser", "Mephisto Milano (v1.01)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1991, milano, 0, 0, milano, milano, milano_state, empty_init, "Hegener + Glaser", "Mephisto Milano (v1.02)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1991, milanoa, milano, 0, milano, milano, milano_state, empty_init, "Hegener + Glaser", "Mephisto Milano (v1.01)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
||||
CONS( 1993, nshort, 0, 0, milano, milano, mephisto_milano_state, empty_init, "Hegener + Glaser", "Mephisto Nigel Short", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1993, nshort, 0, 0, milano, milano, milano_state, empty_init, "Hegener + Glaser", "Mephisto Nigel Short", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
@ -95,10 +95,12 @@ TODO:
|
||||
#include "mephisto_bup.lh"
|
||||
|
||||
|
||||
class mephisto_state : public driver_device
|
||||
namespace {
|
||||
|
||||
class mm2_state : public driver_device
|
||||
{
|
||||
public:
|
||||
mephisto_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
mm2_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_outlatch(*this, "outlatch")
|
||||
@ -126,13 +128,13 @@ private:
|
||||
required_ioport_array<8> m_key2;
|
||||
output_finder<4> m_digits;
|
||||
|
||||
void write_lcd(uint8_t data);
|
||||
void mephisto_nmi_w(uint8_t data);
|
||||
uint8_t read_keys(offs_t offset);
|
||||
void write_lcd(u8 data);
|
||||
void mephisto_nmi_w(u8 data);
|
||||
u8 read_keys(offs_t offset);
|
||||
DECLARE_WRITE_LINE_MEMBER(write_led7);
|
||||
uint8_t m_lcd_shift_counter;
|
||||
uint8_t m_led7;
|
||||
uint8_t m_allowNMI;
|
||||
u8 m_lcd_shift_counter;
|
||||
u8 m_led7;
|
||||
u8 m_allowNMI;
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(update_nmi);
|
||||
@ -145,7 +147,7 @@ private:
|
||||
void rebel5_mem(address_map &map);
|
||||
};
|
||||
|
||||
void mephisto_state::machine_start()
|
||||
void mm2_state::machine_start()
|
||||
{
|
||||
m_digits.resolve();
|
||||
|
||||
@ -154,7 +156,7 @@ void mephisto_state::machine_start()
|
||||
save_item(NAME(m_allowNMI));
|
||||
}
|
||||
|
||||
void mephisto_state::machine_reset()
|
||||
void mm2_state::machine_reset()
|
||||
{
|
||||
m_lcd_shift_counter = 3;
|
||||
m_allowNMI = 1;
|
||||
@ -167,7 +169,7 @@ void mephisto_state::machine_reset()
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(mephisto_state::update_nmi)
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(mm2_state::update_nmi)
|
||||
{
|
||||
if (m_allowNMI)
|
||||
{
|
||||
@ -176,12 +178,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(mephisto_state::update_nmi)
|
||||
}
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(mephisto_state::update_nmi_r5)
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(mm2_state::update_nmi_r5)
|
||||
{
|
||||
m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
|
||||
}
|
||||
|
||||
void mephisto_state::write_lcd(uint8_t data)
|
||||
void mm2_state::write_lcd(u8 data)
|
||||
{
|
||||
if (m_led7 == 0)
|
||||
m_digits[m_lcd_shift_counter] = data; // 0x109 MM IV // 0x040 MM V
|
||||
@ -192,14 +194,14 @@ void mephisto_state::write_lcd(uint8_t data)
|
||||
m_maincpu->set_input_line(0, CLEAR_LINE);
|
||||
}
|
||||
|
||||
void mephisto_state::mephisto_nmi_w(uint8_t data)
|
||||
void mm2_state::mephisto_nmi_w(u8 data)
|
||||
{
|
||||
m_allowNMI = 1;
|
||||
}
|
||||
|
||||
uint8_t mephisto_state::read_keys(offs_t offset)
|
||||
u8 mm2_state::read_keys(offs_t offset)
|
||||
{
|
||||
uint8_t data = 0;
|
||||
u8 data = 0;
|
||||
|
||||
if (!m_outlatch->q7_r())
|
||||
{
|
||||
@ -213,7 +215,7 @@ uint8_t mephisto_state::read_keys(offs_t offset)
|
||||
return data | 0x7f;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(mephisto_state::write_led7)
|
||||
WRITE_LINE_MEMBER(mm2_state::write_led7)
|
||||
{
|
||||
m_led7 = state ? 0x00 : 0xff;
|
||||
}
|
||||
@ -224,50 +226,50 @@ WRITE_LINE_MEMBER(mephisto_state::write_led7)
|
||||
Address Maps
|
||||
******************************************************************************/
|
||||
|
||||
void mephisto_state::bup_mem(address_map &map)
|
||||
void mm2_state::bup_mem(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x0fff).ram();
|
||||
map(0x1000, 0x1007).w("outlatch", FUNC(hc259_device::write_d7));
|
||||
map(0x1800, 0x1807).r(FUNC(mephisto_state::read_keys));
|
||||
map(0x1800, 0x1807).r(FUNC(mm2_state::read_keys));
|
||||
map(0x2000, 0x2000).r("board", FUNC(mephisto_board_device::input_r));
|
||||
map(0x2800, 0x2800).w(FUNC(mephisto_state::write_lcd));
|
||||
map(0x2800, 0x2800).w(FUNC(mm2_state::write_lcd));
|
||||
map(0x3000, 0x3000).w("board", FUNC(mephisto_board_device::led_w));
|
||||
map(0x3800, 0x3800).w("board", FUNC(mephisto_board_device::mux_w));
|
||||
map(0x8000, 0xffff).rom();
|
||||
}
|
||||
|
||||
void mephisto_state::mm2_mem(address_map &map)
|
||||
void mm2_state::mm2_mem(address_map &map)
|
||||
{
|
||||
bup_mem(map);
|
||||
map(0x4000, 0x7fff).r("cartslot", FUNC(generic_slot_device::read_rom)); // opening library
|
||||
}
|
||||
|
||||
void mephisto_state::rebel5_mem(address_map &map)
|
||||
void mm2_state::rebel5_mem(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1fff).ram();
|
||||
map(0x2000, 0x2007).w("outlatch", FUNC(hc259_device::write_d7));
|
||||
map(0x3000, 0x4000).r("board", FUNC(mephisto_board_device::input_r));
|
||||
map(0x3000, 0x3007).r(FUNC(mephisto_state::read_keys));
|
||||
map(0x5000, 0x5000).w(FUNC(mephisto_state::write_lcd));
|
||||
map(0x3000, 0x3007).r(FUNC(mm2_state::read_keys));
|
||||
map(0x5000, 0x5000).w(FUNC(mm2_state::write_lcd));
|
||||
map(0x6000, 0x6000).w("board", FUNC(mephisto_board_device::led_w));
|
||||
map(0x7000, 0x7000).w("board", FUNC(mephisto_board_device::mux_w));
|
||||
map(0x8000, 0xffff).rom();
|
||||
}
|
||||
|
||||
void mephisto_state::mm5p_mem(address_map &map)
|
||||
void mm2_state::mm5p_mem(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1fff).ram();
|
||||
map(0x2000, 0x2000).w(FUNC(mephisto_state::write_lcd));
|
||||
map(0x2000, 0x2000).w(FUNC(mm2_state::write_lcd));
|
||||
map(0x2400, 0x2407).w("board", FUNC(mephisto_board_device::led_w)).nopr();
|
||||
map(0x2800, 0x2800).w("board", FUNC(mephisto_board_device::mux_w));
|
||||
map(0x2c00, 0x2c07).r(FUNC(mephisto_state::read_keys));
|
||||
map(0x2c00, 0x2c07).r(FUNC(mm2_state::read_keys));
|
||||
map(0x3000, 0x3000).r("board", FUNC(mephisto_board_device::input_r));
|
||||
map(0x3400, 0x3407).w("outlatch", FUNC(hc259_device::write_d7)).nopr();
|
||||
map(0x3800, 0x3800).w(FUNC(mephisto_state::mephisto_nmi_w));
|
||||
map(0x3800, 0x3800).w(FUNC(mm2_state::mephisto_nmi_w));
|
||||
map(0x4000, 0xffff).rom();
|
||||
}
|
||||
|
||||
void mephisto_state::mm4_mem(address_map &map)
|
||||
void mm2_state::mm4_mem(address_map &map)
|
||||
{
|
||||
mm5p_mem(map);
|
||||
map(0x4000, 0x7fff).r("cartslot", FUNC(generic_slot_device::read_rom));
|
||||
@ -315,8 +317,8 @@ static INPUT_PORTS_START( mephisto )
|
||||
PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("D / 4 / Rook") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD)
|
||||
|
||||
PORT_START("RESET")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 1") PORT_CODE(KEYCODE_Z) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, mephisto_state, reset_button, 0)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 2") PORT_CODE(KEYCODE_X) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, mephisto_state, reset_button, 0)
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 1") PORT_CODE(KEYCODE_Z) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, mm2_state, reset_button, 0)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 2") PORT_CODE(KEYCODE_X) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, mm2_state, reset_button, 0)
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( bup )
|
||||
@ -355,11 +357,11 @@ static INPUT_PORTS_START( bup )
|
||||
PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M)
|
||||
|
||||
PORT_START("RESET")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 1") PORT_CODE(KEYCODE_Z) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, mephisto_state, reset_button, 0)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 2") PORT_CODE(KEYCODE_X) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, mephisto_state, reset_button, 0)
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 1") PORT_CODE(KEYCODE_Z) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, mm2_state, reset_button, 0)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 2") PORT_CODE(KEYCODE_X) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, mm2_state, reset_button, 0)
|
||||
INPUT_PORTS_END
|
||||
|
||||
INPUT_CHANGED_MEMBER(mephisto_state::reset_button)
|
||||
INPUT_CHANGED_MEMBER(mm2_state::reset_button)
|
||||
{
|
||||
// RES buttons in serial tied to CPU RESET
|
||||
if (ioport("RESET")->read() == 3)
|
||||
@ -375,13 +377,13 @@ INPUT_CHANGED_MEMBER(mephisto_state::reset_button)
|
||||
Machine Configs
|
||||
******************************************************************************/
|
||||
|
||||
void mephisto_state::rebel5(machine_config &config)
|
||||
void mm2_state::rebel5(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M65C02(config, m_maincpu, 9.8304_MHz_XTAL / 2);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_state::rebel5_mem);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mm2_state::rebel5_mem);
|
||||
|
||||
TIMER(config, "nmi_timer").configure_periodic(FUNC(mephisto_state::update_nmi_r5), attotime::from_hz(600));
|
||||
TIMER(config, "nmi_timer").configure_periodic(FUNC(mm2_state::update_nmi_r5), attotime::from_hz(600));
|
||||
|
||||
HC259(config, m_outlatch);
|
||||
m_outlatch->q_out_cb<0>().set_output("led100");
|
||||
@ -391,7 +393,7 @@ void mephisto_state::rebel5(machine_config &config)
|
||||
m_outlatch->q_out_cb<4>().set_output("led104");
|
||||
m_outlatch->q_out_cb<5>().set_output("led105");
|
||||
m_outlatch->q_out_cb<6>().set(m_dac, FUNC(dac_bit_interface::write));
|
||||
m_outlatch->q_out_cb<7>().set(FUNC(mephisto_state::write_led7));
|
||||
m_outlatch->q_out_cb<7>().set(FUNC(mm2_state::write_led7));
|
||||
|
||||
MEPHISTO_SENSORS_BOARD(config, "board");
|
||||
config.set_default_layout(layout_mephisto_mm2);
|
||||
@ -401,63 +403,63 @@ void mephisto_state::rebel5(machine_config &config)
|
||||
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
}
|
||||
|
||||
void mephisto_state::mm5p(machine_config &config)
|
||||
void mm2_state::mm5p(machine_config &config)
|
||||
{
|
||||
rebel5(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
m_maincpu->set_clock(4.9152_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_state::mm5p_mem);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mm2_state::mm5p_mem);
|
||||
|
||||
TIMER(config.replace(), "nmi_timer").configure_periodic(FUNC(mephisto_state::update_nmi), attotime::from_hz(600));
|
||||
TIMER(config.replace(), "nmi_timer").configure_periodic(FUNC(mm2_state::update_nmi), attotime::from_hz(600));
|
||||
}
|
||||
|
||||
void mephisto_state::mm4(machine_config &config)
|
||||
void mm2_state::mm4(machine_config &config)
|
||||
{
|
||||
mm5p(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_state::mm4_mem);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mm2_state::mm4_mem);
|
||||
|
||||
GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "mephisto_cart");
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("mephisto_mm4");
|
||||
}
|
||||
|
||||
void mephisto_state::mm4tk(machine_config &config)
|
||||
void mm2_state::mm4tk(machine_config &config)
|
||||
{
|
||||
mm4(config);
|
||||
m_maincpu->set_clock(18000000);
|
||||
}
|
||||
|
||||
void mephisto_state::mm5(machine_config &config)
|
||||
void mm2_state::mm5(machine_config &config)
|
||||
{
|
||||
mm4(config);
|
||||
SOFTWARE_LIST(config.replace(), "cart_list").set_original("mephisto_mm5");
|
||||
}
|
||||
|
||||
void mephisto_state::bup(machine_config &config)
|
||||
void mm2_state::bup(machine_config &config)
|
||||
{
|
||||
rebel5(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
m_maincpu->set_clock(7.3728_MHz_XTAL / 2);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_state::bup_mem);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mm2_state::bup_mem);
|
||||
|
||||
config.device_remove("nmi_timer");
|
||||
const attotime irq_period = attotime::from_hz(7.3728_MHz_XTAL / 2 / 0x2000); // 450Hz from 4020 Q13
|
||||
m_maincpu->set_periodic_int(FUNC(mephisto_state::irq0_line_assert), irq_period);
|
||||
m_maincpu->set_periodic_int(FUNC(mm2_state::irq0_line_assert), irq_period);
|
||||
|
||||
m_outlatch->q_out_cb<7>().set(FUNC(mephisto_state::write_led7)).invert();
|
||||
m_outlatch->q_out_cb<7>().set(FUNC(mm2_state::write_led7)).invert();
|
||||
|
||||
config.set_default_layout(layout_mephisto_bup);
|
||||
}
|
||||
|
||||
void mephisto_state::mm2(machine_config &config)
|
||||
void mm2_state::mm2(machine_config &config)
|
||||
{
|
||||
bup(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_state::mm2_mem);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mm2_state::mm2_mem);
|
||||
|
||||
config.set_default_layout(layout_mephisto_mm2);
|
||||
|
||||
@ -561,30 +563,32 @@ ROM_START( mm5p )
|
||||
ROM_LOAD("programm.bin", 0x8000, 0x8000, CRC(ee22b974) SHA1(37267507be30ee84051bc94c3a63fb1298a00261) )
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Drivers
|
||||
******************************************************************************/
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS */
|
||||
CONS( 1984, mm2, 0, 0, mm2, mephisto, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 1, v4.00 1 EPROM)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1984, mm2a, mm2, 0, mm2, mephisto, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 2, v4.00 2 EPROMs)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1984, mm2b, mm2, 0, mm2, mephisto, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 3, v3.00)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1984, mm2c, mm2, 0, mm2, mephisto, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 4)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1984, mm2d, mm2, 0, mm2, mephisto, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 5)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS */
|
||||
CONS( 1984, mm2, 0, 0, mm2, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 1, v4.00 1 EPROM)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1984, mm2a, mm2, 0, mm2, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 2, v4.00 2 EPROMs)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1984, mm2b, mm2, 0, mm2, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 3, v3.00)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1984, mm2c, mm2, 0, mm2, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 4)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1984, mm2d, mm2, 0, mm2, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 5)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
||||
CONS( 1985, bup, 0, 0, bup, bup, mephisto_state, empty_init, "Hegener + Glaser", u8"Mephisto Blitz- und Problemlösungs-Modul (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1985, bupa, bup, 0, bup, bup, mephisto_state, empty_init, "Hegener + Glaser", u8"Mephisto Blitz- und Problemlösungs-Modul (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1985, bup, 0, 0, bup, bup, mm2_state, empty_init, "Hegener + Glaser", u8"Mephisto Blitz- und Problemlösungs-Modul (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1985, bupa, bup, 0, bup, bup, mm2_state, empty_init, "Hegener + Glaser", u8"Mephisto Blitz- und Problemlösungs-Modul (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
||||
CONS( 1986, rebel5, 0, 0, rebel5, mephisto, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto Rebell 5,0 (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // aka MM III
|
||||
CONS( 1986, rebel5a, rebel5, 0, rebel5, mephisto, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto Rebell 5,0 (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1986, rebel5, 0, 0, rebel5, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto Rebell 5,0 (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // aka MM III
|
||||
CONS( 1986, rebel5a, rebel5, 0, rebel5, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto Rebell 5,0 (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
||||
CONS( 1987, mm4, 0, 0, mm4, mephisto, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto MM IV (v7.10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1987, mm4a, mm4, 0, mm4, mephisto, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto MM IV (v7.00)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1987, mm4b, mm4, 0, mm4, mephisto, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto MM IV (v6.00)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1987, mm4tk, mm4, 0, mm4tk, mephisto, mephisto_state, empty_init, "hack", "Mephisto MM IV (TurboKit)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING )
|
||||
CONS( 1987, mm4, 0, 0, mm4, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM IV (v7.10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1987, mm4a, mm4, 0, mm4, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM IV (v7.00)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1987, mm4b, mm4, 0, mm4, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM IV (v6.00)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1987, mm4tk, mm4, 0, mm4tk, mephisto, mm2_state, empty_init, "hack", "Mephisto MM IV (TurboKit)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING )
|
||||
|
||||
CONS( 1990, mm5, 0, 0, mm5, mephisto, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto MM V (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1990, mm5a, mm5, 0, mm5, mephisto, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto MM V (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1989, mm5p, mm5, 0, mm5p, mephisto, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto MM V (prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING )
|
||||
CONS( 1990, mm5, 0, 0, mm5, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM V (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1990, mm5a, mm5, 0, mm5, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM V (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1989, mm5p, mm5, 0, mm5p, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM V (prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING )
|
||||
|
@ -112,7 +112,7 @@ void mondial68k_state::input_mux_w(u8 data)
|
||||
|
||||
u8 mondial68k_state::inputs_r()
|
||||
{
|
||||
u8 data = 0x00;
|
||||
u8 data = 0;
|
||||
|
||||
// read buttons
|
||||
for (int i = 0; i < 4; i++)
|
||||
|
@ -29,10 +29,10 @@ The 10MHz version has a W65C02P-8 @ 9.83MHz.
|
||||
|
||||
namespace {
|
||||
|
||||
class mephisto_polgar_state : public driver_device
|
||||
class polgar_state : public driver_device
|
||||
{
|
||||
public:
|
||||
mephisto_polgar_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
polgar_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_keys(*this, "KEY")
|
||||
@ -56,7 +56,7 @@ private:
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
u8 mephisto_polgar_state::keys_r(offs_t offset)
|
||||
u8 polgar_state::keys_r(offs_t offset)
|
||||
{
|
||||
return (BIT(m_keys->read(), offset) << 7) | 0x7f;
|
||||
}
|
||||
@ -67,14 +67,14 @@ u8 mephisto_polgar_state::keys_r(offs_t offset)
|
||||
Address Maps
|
||||
******************************************************************************/
|
||||
|
||||
void mephisto_polgar_state::polgar_mem(address_map &map)
|
||||
void polgar_state::polgar_mem(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1fff).ram().share("nvram");
|
||||
map(0x2000, 0x2000).w("display", FUNC(mephisto_display_module2_device::latch_w));
|
||||
map(0x2004, 0x2004).w("display", FUNC(mephisto_display_module2_device::io_w));
|
||||
map(0x2400, 0x2400).w("board", FUNC(mephisto_board_device::led_w));
|
||||
map(0x2800, 0x2800).w("board", FUNC(mephisto_board_device::mux_w));
|
||||
map(0x2c00, 0x2c07).r(FUNC(mephisto_polgar_state::keys_r));
|
||||
map(0x2c00, 0x2c07).r(FUNC(polgar_state::keys_r));
|
||||
map(0x3000, 0x3000).r("board", FUNC(mephisto_board_device::input_r));
|
||||
map(0x3400, 0x3407).w("outlatch", FUNC(hc259_device::write_d7));
|
||||
map(0x4000, 0xffff).rom();
|
||||
@ -104,11 +104,11 @@ INPUT_PORTS_END
|
||||
Machine Configs
|
||||
******************************************************************************/
|
||||
|
||||
void mephisto_polgar_state::polgar(machine_config &config)
|
||||
void polgar_state::polgar(machine_config &config)
|
||||
{
|
||||
R65C02(config, m_maincpu, 4.9152_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_polgar_state::polgar_mem);
|
||||
m_maincpu->set_periodic_int(FUNC(mephisto_polgar_state::nmi_line_pulse), attotime::from_hz(4.9152_MHz_XTAL / (1 << 13)));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &polgar_state::polgar_mem);
|
||||
m_maincpu->set_periodic_int(FUNC(polgar_state::nmi_line_pulse), attotime::from_hz(4.9152_MHz_XTAL / (1 << 13)));
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
@ -125,13 +125,13 @@ void mephisto_polgar_state::polgar(machine_config &config)
|
||||
config.set_default_layout(layout_mephisto_polgar);
|
||||
}
|
||||
|
||||
void mephisto_polgar_state::polgar10(machine_config &config)
|
||||
void polgar_state::polgar10(machine_config &config)
|
||||
{
|
||||
polgar(config);
|
||||
|
||||
M65C02(config.replace(), m_maincpu, 9.8304_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_polgar_state::polgar_mem);
|
||||
m_maincpu->set_periodic_int(FUNC(mephisto_polgar_state::nmi_line_pulse), attotime::from_hz(9.8304_MHz_XTAL / (1 << 13)));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &polgar_state::polgar_mem);
|
||||
m_maincpu->set_periodic_int(FUNC(polgar_state::nmi_line_pulse), attotime::from_hz(9.8304_MHz_XTAL / (1 << 13)));
|
||||
}
|
||||
|
||||
|
||||
@ -168,8 +168,8 @@ ROM_END
|
||||
Game Drivers
|
||||
***************************************************************************/
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1990, polgar, 0, 0, polgar, polgar, mephisto_polgar_state, empty_init, "Hegener + Glaser", "Mephisto Polgar (v1.50)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1989, polgara, polgar, 0, polgar, polgar, mephisto_polgar_state, empty_init, "Hegener + Glaser", "Mephisto Polgar (v1.10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1990, polgar10, polgar, 0, polgar10, polgar, mephisto_polgar_state, empty_init, "Hegener + Glaser", "Mephisto Polgar 10 MHz (v10.0)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1990, polgar101, polgar, 0, polgar10, polgar, mephisto_polgar_state, empty_init, "Hegener + Glaser", "Mephisto Polgar 10 MHz (v10.1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1990, polgar, 0, 0, polgar, polgar, polgar_state, empty_init, "Hegener + Glaser", "Mephisto Polgar (v1.50)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1989, polgara, polgar, 0, polgar, polgar, polgar_state, empty_init, "Hegener + Glaser", "Mephisto Polgar (v1.10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1990, polgar10, polgar, 0, polgar10, polgar, polgar_state, empty_init, "Hegener + Glaser", "Mephisto Polgar 10 MHz (v10.0)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1990, polgar101, polgar, 0, polgar10, polgar, polgar_state, empty_init, "Hegener + Glaser", "Mephisto Polgar 10 MHz (v10.1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
@ -31,10 +31,10 @@ Hardware notes:
|
||||
|
||||
namespace {
|
||||
|
||||
class mephisto_risc_state : public driver_device
|
||||
class risc_state : public driver_device
|
||||
{
|
||||
public:
|
||||
mephisto_risc_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
risc_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_chessm(*this, "chessm")
|
||||
@ -60,7 +60,7 @@ private:
|
||||
void chessm_w(u8 data);
|
||||
};
|
||||
|
||||
void mephisto_risc_state::machine_start()
|
||||
void risc_state::machine_start()
|
||||
{
|
||||
m_rombank->configure_entries(0, 4, memregion("maincpu")->base(), 0x8000);
|
||||
}
|
||||
@ -71,18 +71,18 @@ void mephisto_risc_state::machine_start()
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
u8 mephisto_risc_state::keys_r(offs_t offset)
|
||||
u8 risc_state::keys_r(offs_t offset)
|
||||
{
|
||||
return (BIT(m_keys->read(), offset) << 7) | 0x7f;
|
||||
}
|
||||
|
||||
u8 mephisto_risc_state::chessm_r()
|
||||
u8 risc_state::chessm_r()
|
||||
{
|
||||
// d0: chessmachine data
|
||||
return m_chessm->data_r();
|
||||
}
|
||||
|
||||
void mephisto_risc_state::chessm_w(u8 data)
|
||||
void risc_state::chessm_w(u8 data)
|
||||
{
|
||||
// d0,d7: chessmachine data
|
||||
m_chessm->data0_w(BIT(data, 0));
|
||||
@ -98,19 +98,19 @@ void mephisto_risc_state::chessm_w(u8 data)
|
||||
Address Maps
|
||||
******************************************************************************/
|
||||
|
||||
void mephisto_risc_state::mrisc_mem(address_map &map)
|
||||
void risc_state::mrisc_mem(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x0000, 0x1fff).ram().share("nvram");
|
||||
map(0x2000, 0x2000).w("display", FUNC(mephisto_display_module2_device::latch_w));
|
||||
map(0x2004, 0x2004).w("display", FUNC(mephisto_display_module2_device::io_w));
|
||||
map(0x2c00, 0x2c07).r(FUNC(mephisto_risc_state::keys_r));
|
||||
map(0x2c00, 0x2c07).r(FUNC(risc_state::keys_r));
|
||||
map(0x2400, 0x2400).w("board", FUNC(mephisto_board_device::led_w));
|
||||
map(0x2800, 0x2800).w("board", FUNC(mephisto_board_device::mux_w));
|
||||
map(0x3000, 0x3000).r("board", FUNC(mephisto_board_device::input_r));
|
||||
map(0x3400, 0x3407).w("outlatch", FUNC(hc259_device::write_d7)).nopr();
|
||||
map(0x3800, 0x3800).w(FUNC(mephisto_risc_state::chessm_w));
|
||||
map(0x3c00, 0x3c00).r(FUNC(mephisto_risc_state::chessm_r));
|
||||
map(0x3800, 0x3800).w(FUNC(risc_state::chessm_w));
|
||||
map(0x3c00, 0x3c00).r(FUNC(risc_state::chessm_r));
|
||||
map(0x4000, 0x7fff).rom();
|
||||
map(0x8000, 0xffff).bankr("rombank");
|
||||
}
|
||||
@ -139,11 +139,11 @@ INPUT_PORTS_END
|
||||
Machine Configs
|
||||
******************************************************************************/
|
||||
|
||||
void mephisto_risc_state::mrisc(machine_config &config)
|
||||
void risc_state::mrisc(machine_config &config)
|
||||
{
|
||||
M65SC02(config, m_maincpu, 10_MHz_XTAL / 4);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_risc_state::mrisc_mem);
|
||||
m_maincpu->set_periodic_int(FUNC(mephisto_risc_state::irq0_line_hold), attotime::from_hz(10_MHz_XTAL / (1 << 14)));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &risc_state::mrisc_mem);
|
||||
m_maincpu->set_periodic_int(FUNC(risc_state::irq0_line_hold), attotime::from_hz(10_MHz_XTAL / (1 << 14)));
|
||||
|
||||
CHESSMACHINE(config, m_chessm, 14'000'000); // Mephisto manual says 14MHz (no XTAL)
|
||||
config.set_perfect_quantum(m_maincpu);
|
||||
@ -192,6 +192,6 @@ ROM_END
|
||||
Game Drivers
|
||||
***************************************************************************/
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1992, mrisc, 0, 0, mrisc, mrisc, mephisto_risc_state, empty_init, "Hegener + Glaser / Tasc", "Mephisto Risc 1MB", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1994, mrisc2, mrisc, 0, mrisc, mrisc, mephisto_risc_state, empty_init, "Hegener + Glaser / Tasc", "Mephisto Risc II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1992, mrisc, 0, 0, mrisc, mrisc, risc_state, empty_init, "Hegener + Glaser / Tasc", "Mephisto Risc 1MB", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1994, mrisc2, mrisc, 0, mrisc, mrisc, risc_state, empty_init, "Hegener + Glaser / Tasc", "Mephisto Risc II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
@ -21,11 +21,10 @@
|
||||
#include "sound/ym3812.h"
|
||||
#include "speaker.h"
|
||||
|
||||
// mephisto_state was also defined in mess/drivers/mephisto.c
|
||||
class mephisto_pinball_state : public driver_device
|
||||
class mephisto_state : public driver_device
|
||||
{
|
||||
public:
|
||||
mephisto_pinball_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
mephisto_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_aysnd(*this, "aysnd")
|
||||
@ -62,29 +61,29 @@ private:
|
||||
};
|
||||
|
||||
|
||||
void mephisto_pinball_state::shift_load_w(u8 data)
|
||||
void mephisto_state::shift_load_w(u8 data)
|
||||
{
|
||||
}
|
||||
|
||||
u8 mephisto_pinball_state::ay8910_read()
|
||||
u8 mephisto_state::ay8910_read()
|
||||
{
|
||||
return m_ay8910_data;
|
||||
}
|
||||
|
||||
void mephisto_pinball_state::ay8910_write(u8 data)
|
||||
void mephisto_state::ay8910_write(u8 data)
|
||||
{
|
||||
m_ay8910_data = data;
|
||||
ay8910_update();
|
||||
}
|
||||
|
||||
void mephisto_pinball_state::t0_t1_w(u8 data)
|
||||
void mephisto_state::t0_t1_w(u8 data)
|
||||
{
|
||||
m_ay8910_bdir = BIT(data, 4); // T0
|
||||
m_ay8910_bc1 = BIT(data, 5); // T1
|
||||
ay8910_update();
|
||||
}
|
||||
|
||||
void mephisto_pinball_state::ay8910_update()
|
||||
void mephisto_state::ay8910_update()
|
||||
{
|
||||
if (m_ay8910_bdir)
|
||||
m_aysnd->data_address_w(m_ay8910_bc1, m_ay8910_data);
|
||||
@ -92,21 +91,21 @@ void mephisto_pinball_state::ay8910_update()
|
||||
m_ay8910_data = m_aysnd->data_r();
|
||||
}
|
||||
|
||||
void mephisto_pinball_state::ay8910_columns_w(u8 data)
|
||||
void mephisto_state::ay8910_columns_w(u8 data)
|
||||
{
|
||||
}
|
||||
|
||||
u8 mephisto_pinball_state::ay8910_inputs_r()
|
||||
u8 mephisto_state::ay8910_inputs_r()
|
||||
{
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
void mephisto_pinball_state::sound_rombank_w(u8 data)
|
||||
void mephisto_state::sound_rombank_w(u8 data)
|
||||
{
|
||||
m_soundbank->set_entry(data & 0xf);
|
||||
}
|
||||
|
||||
void mephisto_pinball_state::mephisto_map(address_map &map)
|
||||
void mephisto_state::mephisto_map(address_map &map)
|
||||
{
|
||||
map(0x00000, 0x07fff).rom().region("maincpu", 0).mirror(0x8000);
|
||||
map(0x10000, 0x107ff).ram().share("nvram");
|
||||
@ -115,12 +114,12 @@ void mephisto_pinball_state::mephisto_map(address_map &map)
|
||||
map(0x13800, 0x13807).rw("ic20", FUNC(i8155_device::io_r), FUNC(i8155_device::io_w));
|
||||
map(0x14000, 0x140ff).rw("ic9", FUNC(i8155_device::memory_r), FUNC(i8155_device::memory_w));
|
||||
map(0x14800, 0x14807).rw("ic9", FUNC(i8155_device::io_r), FUNC(i8155_device::io_w));
|
||||
map(0x16000, 0x16000).w(FUNC(mephisto_pinball_state::shift_load_w));
|
||||
map(0x16000, 0x16000).w(FUNC(mephisto_state::shift_load_w));
|
||||
map(0x17000, 0x17001).nopw(); //???
|
||||
map(0xf0000, 0xf7fff).rom().region("maincpu", 0).mirror(0x8000);
|
||||
}
|
||||
|
||||
void mephisto_pinball_state::sport2k_map(address_map &map)
|
||||
void mephisto_state::sport2k_map(address_map &map)
|
||||
{
|
||||
map(0x00000, 0x0ffff).rom().region("maincpu", 0);
|
||||
map(0x20000, 0x21fff).ram().share("nvram");
|
||||
@ -129,25 +128,25 @@ void mephisto_pinball_state::sport2k_map(address_map &map)
|
||||
map(0x2b800, 0x2b807).rw("ic20", FUNC(i8155_device::io_r), FUNC(i8155_device::io_w));
|
||||
map(0x2c000, 0x2c0ff).rw("ic9", FUNC(i8155_device::memory_r), FUNC(i8155_device::memory_w));
|
||||
map(0x2c800, 0x2c807).rw("ic9", FUNC(i8155_device::io_r), FUNC(i8155_device::io_w));
|
||||
map(0x2e000, 0x2e000).w(FUNC(mephisto_pinball_state::shift_load_w));
|
||||
map(0x2e000, 0x2e000).w(FUNC(mephisto_state::shift_load_w));
|
||||
map(0x2f000, 0x2f001).nopw(); //???
|
||||
map(0xf0000, 0xfffff).rom().region("maincpu", 0);
|
||||
}
|
||||
|
||||
void mephisto_pinball_state::mephisto_8051_map(address_map &map)
|
||||
void mephisto_state::mephisto_8051_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x7fff).rom();
|
||||
map(0x8000, 0xffff).bankr("soundbank");
|
||||
}
|
||||
|
||||
void mephisto_pinball_state::mephisto_8051_io(address_map &map)
|
||||
void mephisto_state::mephisto_8051_io(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x07ff).ram();
|
||||
map(0x0800, 0x0800).w(FUNC(mephisto_pinball_state::sound_rombank_w));
|
||||
map(0x0800, 0x0800).w(FUNC(mephisto_state::sound_rombank_w));
|
||||
map(0x1000, 0x1000).w("dac", FUNC(dac08_device::data_w));
|
||||
}
|
||||
|
||||
void mephisto_pinball_state::sport2k_8051_io(address_map &map)
|
||||
void mephisto_state::sport2k_8051_io(address_map &map)
|
||||
{
|
||||
mephisto_8051_io(map);
|
||||
map(0x1800, 0x1801).rw("ymsnd", FUNC(ym3812_device::read), FUNC(ym3812_device::write));
|
||||
@ -157,7 +156,7 @@ void mephisto_pinball_state::sport2k_8051_io(address_map &map)
|
||||
static INPUT_PORTS_START( mephisto )
|
||||
INPUT_PORTS_END
|
||||
|
||||
void mephisto_pinball_state::machine_start()
|
||||
void mephisto_state::machine_start()
|
||||
{
|
||||
m_soundbank->configure_entries(0, 16, memregion("sound1")->base(), 0x8000);
|
||||
m_soundbank->set_entry(0);
|
||||
@ -170,15 +169,15 @@ void mephisto_pinball_state::machine_start()
|
||||
save_item(NAME(m_ay8910_bc1));
|
||||
}
|
||||
|
||||
void mephisto_pinball_state::machine_reset()
|
||||
void mephisto_state::machine_reset()
|
||||
{
|
||||
}
|
||||
|
||||
void mephisto_pinball_state::mephisto(machine_config &config)
|
||||
void mephisto_state::mephisto(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
I8088(config, m_maincpu, XTAL(18'000'000)/3);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_pinball_state::mephisto_map);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_state::mephisto_map);
|
||||
//m_maincpu->set_irq_acknowledge_callback("muart", FUNC(i8256_device::inta_cb));
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
@ -193,32 +192,32 @@ void mephisto_pinball_state::mephisto(machine_config &config)
|
||||
|
||||
I8155(config, "ic9", XTAL(18'000'000)/6);
|
||||
//i8155_device &i8155_2(I8155(config, "ic9", XTAL(18'000'000)/6));
|
||||
//i8155_2.out_to_callback().set(FUNC(mephisto_pinball_state::clk_shift_w));
|
||||
//i8155_2.out_to_callback().set(FUNC(mephisto_state::clk_shift_w));
|
||||
|
||||
i8051_device &soundcpu(I8051(config, "soundcpu", XTAL(12'000'000)));
|
||||
soundcpu.set_addrmap(AS_PROGRAM, &mephisto_pinball_state::mephisto_8051_map); // EA tied high for external program ROM
|
||||
soundcpu.set_addrmap(AS_IO, &mephisto_pinball_state::mephisto_8051_io);
|
||||
soundcpu.port_in_cb<1>().set(FUNC(mephisto_pinball_state::ay8910_read));
|
||||
soundcpu.port_out_cb<1>().set(FUNC(mephisto_pinball_state::ay8910_write));
|
||||
soundcpu.port_out_cb<3>().set(FUNC(mephisto_pinball_state::t0_t1_w));
|
||||
soundcpu.set_addrmap(AS_PROGRAM, &mephisto_state::mephisto_8051_map); // EA tied high for external program ROM
|
||||
soundcpu.set_addrmap(AS_IO, &mephisto_state::mephisto_8051_io);
|
||||
soundcpu.port_in_cb<1>().set(FUNC(mephisto_state::ay8910_read));
|
||||
soundcpu.port_out_cb<1>().set(FUNC(mephisto_state::ay8910_write));
|
||||
soundcpu.port_out_cb<3>().set(FUNC(mephisto_state::t0_t1_w));
|
||||
soundcpu.serial_rx_cb().set_constant(0); // from MUART
|
||||
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
AY8910(config, m_aysnd, XTAL(12'000'000)/8);
|
||||
m_aysnd->port_a_write_callback().set(FUNC(mephisto_pinball_state::ay8910_columns_w));
|
||||
m_aysnd->port_b_read_callback().set(FUNC(mephisto_pinball_state::ay8910_inputs_r));
|
||||
m_aysnd->port_a_write_callback().set(FUNC(mephisto_state::ay8910_columns_w));
|
||||
m_aysnd->port_b_read_callback().set(FUNC(mephisto_state::ay8910_inputs_r));
|
||||
m_aysnd->add_route(ALL_OUTPUTS, "mono", 0.5);
|
||||
|
||||
DAC08(config, "dac", 0).add_route(ALL_OUTPUTS, "mono", 0.5);
|
||||
}
|
||||
|
||||
|
||||
void mephisto_pinball_state::sport2k(machine_config &config)
|
||||
void mephisto_state::sport2k(machine_config &config)
|
||||
{
|
||||
mephisto(config);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_pinball_state::sport2k_map);
|
||||
subdevice<i8051_device>("soundcpu")->set_addrmap(AS_IO, &mephisto_pinball_state::sport2k_8051_io);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_state::sport2k_map);
|
||||
subdevice<i8051_device>("soundcpu")->set_addrmap(AS_IO, &mephisto_state::sport2k_8051_io);
|
||||
|
||||
YM3812(config, "ymsnd", XTAL(14'318'181)/4).add_route(ALL_OUTPUTS, "mono", 0.5);
|
||||
}
|
||||
@ -296,7 +295,7 @@ ROM_START(sport2k)
|
||||
ROM_LOAD("s511_512.bin", 0x40000, 0x10000, CRC(ca9afa80) SHA1(6f219bdc1ad06e340b2930610897b70369a43684))
|
||||
ROM_END
|
||||
|
||||
GAME(1987, mephistp, 0, mephisto, mephisto, mephisto_pinball_state, empty_init, ROT0, "Stargame", "Mephisto (Stargame) (rev. 1.2)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND)
|
||||
GAME(1987, mephistp1, mephistp, mephisto, mephisto, mephisto_pinball_state, empty_init, ROT0, "Stargame", "Mephisto (Stargame) (rev. 1.1)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND)
|
||||
GAME(1987, mephistpn, mephistp, mephisto, mephisto, mephisto_pinball_state, empty_init, ROT0, "Stargame", "Mephisto (Stargame) (newer?)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND)
|
||||
GAME(1988, sport2k, 0, sport2k, mephisto, mephisto_pinball_state, empty_init, ROT0, "Cirsa", "Sport 2000", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_NO_SOUND)
|
||||
GAME(1987, mephistp, 0, mephisto, mephisto, mephisto_state, empty_init, ROT0, "Stargame", "Mephisto (Stargame) (rev. 1.2)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND)
|
||||
GAME(1987, mephistp1, mephistp, mephisto, mephisto, mephisto_state, empty_init, ROT0, "Stargame", "Mephisto (Stargame) (rev. 1.1)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND)
|
||||
GAME(1987, mephistpn, mephistp, mephisto, mephisto, mephisto_state, empty_init, ROT0, "Stargame", "Mephisto (Stargame) (newer?)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND)
|
||||
GAME(1988, sport2k, 0, sport2k, mephisto, mephisto_state, empty_init, ROT0, "Cirsa", "Sport 2000", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_NO_SOUND)
|
||||
|
@ -195,14 +195,14 @@ license:CC0
|
||||
<param name="y" start="0" increment="10" />
|
||||
<param name="i" start="8" increment="-1" />
|
||||
|
||||
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
|
||||
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
|
||||
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
|
||||
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
|
||||
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
|
||||
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
|
||||
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
|
||||
<element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
|
||||
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
|
||||
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
|
||||
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
|
||||
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
|
||||
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
|
||||
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
|
||||
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
|
||||
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
|
||||
|
||||
<element name="piece_a~i~" ref="piece"><bounds x="0" y="~y~" width="10" height="10" /></element>
|
||||
<element name="piece_b~i~" ref="piece"><bounds x="10" y="~y~" width="10" height="10" /></element>
|
||||
@ -284,8 +284,8 @@ license:CC0
|
||||
<element ref="text_uib2"><bounds x="1.5" y="11.75" width="7" height="2" /></element>
|
||||
<element ref="text_uib3"><bounds x="1.5" y="15.25" width="7" height="2" /></element>
|
||||
|
||||
<element ref="hlub" inputtag="board:board:UI" inputmask="0x200"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:UI" inputmask="0x100"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:UI" inputmask="0x200"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:UI" inputmask="0x100"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></element>
|
||||
|
||||
<!-- spawn -->
|
||||
<element ref="text_uis1"><bounds x="0" y="20.5" width="10" height="2" /></element>
|
||||
@ -305,18 +305,18 @@ license:CC0
|
||||
<element name="piece_ui11" ref="piece"><bounds x="5" y="40" width="4" height="4" /></element>
|
||||
<element name="piece_ui12" ref="piece"><bounds x="5" y="44" width="4" height="4" /></element>
|
||||
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
|
||||
<!-- hand -->
|
||||
<element ref="text_uih1"><bounds x="0" y="51" width="10" height="2" /></element>
|
||||
@ -325,7 +325,7 @@ license:CC0
|
||||
|
||||
<element ref="cwhite"><bounds x="1" y="60.5" width="8" height="2.5" /></element>
|
||||
<element ref="text_uih2"><bounds x="1.5" y="60.75" width="7" height="2" /></element>
|
||||
<element ref="hlub" inputtag="board:board:UI" inputmask="0x08"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:UI" inputmask="0x08"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></element>
|
||||
|
||||
<!-- undo -->
|
||||
<element ref="text_uiu1"><bounds x="0" y="66" width="10" height="2" /></element>
|
||||
@ -338,10 +338,10 @@ license:CC0
|
||||
<element ref="text_uiu2c"><bounds x="5.2" y="69.5" width="1.7" height="4" /></element>
|
||||
<element ref="text_uiu2d"><bounds x="7.3" y="69.5" width="1.7" height="4" /></element>
|
||||
|
||||
<element ref="hlub" inputtag="board:board:UI" inputmask="0x10"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:UI" inputmask="0x20"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:UI" inputmask="0x40"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:UI" inputmask="0x80"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:UI" inputmask="0x10"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:UI" inputmask="0x20"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:UI" inputmask="0x40"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:UI" inputmask="0x80"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
|
||||
|
||||
<element name="count_ui0" ref="text_uiu3a"><bounds x="0" y="75" width="4" height="2" /></element>
|
||||
<element name="count_ui1" ref="text_uiu3c"><bounds x="6" y="75" width="4" height="2" /></element>
|
||||
@ -430,23 +430,23 @@ license:CC0
|
||||
<element ref="text_h"><bounds x="94" y="86.5" width="2" height="2" /></element>
|
||||
|
||||
<!-- chessboard leds -->
|
||||
<element name="led0" ref="ledr"><bounds x="24" y="85" width="2" height="1" /></element>
|
||||
<element name="led8" ref="ledr"><bounds x="34" y="85" width="2" height="1" /></element>
|
||||
<element name="led16" ref="ledr"><bounds x="44" y="85" width="2" height="1" /></element>
|
||||
<element name="led24" ref="ledr"><bounds x="54" y="85" width="2" height="1" /></element>
|
||||
<element name="led32" ref="ledr"><bounds x="64" y="85" width="2" height="1" /></element>
|
||||
<element name="led40" ref="ledr"><bounds x="74" y="85" width="2" height="1" /></element>
|
||||
<element name="led48" ref="ledr"><bounds x="84" y="85" width="2" height="1" /></element>
|
||||
<element name="led56" ref="ledr"><bounds x="94" y="85" width="2" height="1" /></element>
|
||||
<element name="0.0" ref="ledr"><bounds x="24" y="85" width="2" height="1" /></element>
|
||||
<element name="1.0" ref="ledr"><bounds x="34" y="85" width="2" height="1" /></element>
|
||||
<element name="2.0" ref="ledr"><bounds x="44" y="85" width="2" height="1" /></element>
|
||||
<element name="3.0" ref="ledr"><bounds x="54" y="85" width="2" height="1" /></element>
|
||||
<element name="4.0" ref="ledr"><bounds x="64" y="85" width="2" height="1" /></element>
|
||||
<element name="5.0" ref="ledr"><bounds x="74" y="85" width="2" height="1" /></element>
|
||||
<element name="6.0" ref="ledr"><bounds x="84" y="85" width="2" height="1" /></element>
|
||||
<element name="7.0" ref="ledr"><bounds x="94" y="85" width="2" height="1" /></element>
|
||||
|
||||
<element name="led1" ref="ledr"><bounds x="16.5" y="77.5" width="2" height="1" /></element>
|
||||
<element name="led9" ref="ledr"><bounds x="16.5" y="67.5" width="2" height="1" /></element>
|
||||
<element name="led17" ref="ledr"><bounds x="16.5" y="57.5" width="2" height="1" /></element>
|
||||
<element name="led25" ref="ledr"><bounds x="16.5" y="47.5" width="2" height="1" /></element>
|
||||
<element name="led33" ref="ledr"><bounds x="16.5" y="37.5" width="2" height="1" /></element>
|
||||
<element name="led41" ref="ledr"><bounds x="16.5" y="27.5" width="2" height="1" /></element>
|
||||
<element name="led49" ref="ledr"><bounds x="16.5" y="17.5" width="2" height="1" /></element>
|
||||
<element name="led57" ref="ledr"><bounds x="16.5" y="7.5" width="2" height="1" /></element>
|
||||
<element name="0.1" ref="ledr"><bounds x="16.5" y="77.5" width="2" height="1" /></element>
|
||||
<element name="1.1" ref="ledr"><bounds x="16.5" y="67.5" width="2" height="1" /></element>
|
||||
<element name="2.1" ref="ledr"><bounds x="16.5" y="57.5" width="2" height="1" /></element>
|
||||
<element name="3.1" ref="ledr"><bounds x="16.5" y="47.5" width="2" height="1" /></element>
|
||||
<element name="4.1" ref="ledr"><bounds x="16.5" y="37.5" width="2" height="1" /></element>
|
||||
<element name="5.1" ref="ledr"><bounds x="16.5" y="27.5" width="2" height="1" /></element>
|
||||
<element name="6.1" ref="ledr"><bounds x="16.5" y="17.5" width="2" height="1" /></element>
|
||||
<element name="7.1" ref="ledr"><bounds x="16.5" y="7.5" width="2" height="1" /></element>
|
||||
|
||||
<group ref="sb_board"><bounds x="20" y="3" width="80" height="80" /></group>
|
||||
<group ref="sb_ui"><bounds x="2.5" y="3" width="10" height="80" /></group>
|
||||
|
Loading…
Reference in New Issue
Block a user