diff options
| author | 2022-02-14 05:07:29 +1100 | |
|---|---|---|
| committer | 2022-02-14 05:07:29 +1100 | |
| commit | dff595dd7ff053dd2cb711739653cb44f0f05f92 (patch) | |
| tree | a49cfe2ee675daa7a5932afaefc57e4e97553014 | |
| parent | 886ff87b56e6ca4be11065acd98373ba04d774cf (diff) | |
de_2,de_3: WIP, documentation. Fixed type1&2 displays.
| -rw-r--r-- | src/mame/drivers/de_2.cpp | 323 | ||||
| -rw-r--r-- | src/mame/drivers/de_3.cpp | 146 | ||||
| -rw-r--r-- | src/mame/drivers/de_3b.cpp | 196 | ||||
| -rw-r--r-- | src/mame/layout/de1.lay | 87 | ||||
| -rw-r--r-- | src/mame/layout/de2.lay | 17 |
5 files changed, 461 insertions, 308 deletions
diff --git a/src/mame/drivers/de_2.cpp b/src/mame/drivers/de_2.cpp index 4ba94dc7af6..52d508e9378 100644 --- a/src/mame/drivers/de_2.cpp +++ b/src/mame/drivers/de_2.cpp @@ -1,13 +1,50 @@ // license:BSD-3-Clause // copyright-holders:Miodrag Milanovic -/* - DataEast/Sega Version 1 and 2 - - Main CPU: 6808 @ 4MHz (internally divided by 4) - Audio CPU: 68B09E @ 2MHz - Audio: YM2151 @ 3.58MHz, MSM5205 @ 384kHz -*/ - +/******************************************************************************************************************** +PINBALL +Data East System 1 and 2 + +Hardware: +- Main CPU: 6808 @ 4MHz (internally divided by 4) +- Audio CPU: 68B09E @ 2MHz +- Audio: YM2151 @ 3.58MHz, MSM5205 @ 384kHz +Data East CPU board is similar to Williams System 11, but without the generic audio board. +For now, we'll presume the timings are the same. + +Here are the key codes to enable play: + +Game NUM Start game End ball +--------------------------------------------------------------------------------------------- +Laser War 5001 Hold BCD, hit 1 BCD +Secret Service 5002 Hold Up Left Right, hit 1 Up Left Right +Torpedo Alley 5003 Hold CDE, hit 1 CDE +Time Machine 5004 Hold CDE, hit 1 CD +Playboy 35th Anniversary 5005 Hold CDE, hit 1 CDE +Robocop 5006 Hold CDE, hit 1 CDE +Monday Night Football 5007 Hold CDE, hit 1 CDE +Phantom of the Opera 5008 Hold CDE, hit 1 CDE +King Kong -- Hold CDE, hit 1 CDE +**** not emulated (various systems) **** +Arnon Milchan +Flip Out! 1991 +Joel Silver, the pinball +Kabuki +Richie Rich +Slap Shot Hockey 0138 +Wild Horse Saloon +Trump's Secret Service + + +Status: +- All machines are playable + +ToDo: +- Save state +- Outputs +- Mechanical sounds +- robo_a34: can't coin up, buggy rom? + +*********************************************************************************************************************/ #include "emu.h" #include "machine/decopincpu.h" @@ -20,18 +57,11 @@ #include "sound/ymopm.h" #include "speaker.h" +#include "de1.lh" #include "de2.lh" #include "de2a3.lh" -// To start Secret Service, hold I, O and Left ALT while pressing Start. -// To start Laser War, hold S, D, and F while pressing Start. -// To start Back to the Future, hold D and F while pressing Start. -// To start The Simpsons, hold D, F and G while pressing Start (can be tempremental) - -// Data East CPU board is similar to Williams System 11, but without the generic audio board. -// For now, we'll presume the timings are the same. - class de_2_state : public genpin_class { public: @@ -41,7 +71,8 @@ public: , m_audiocpu(*this, "audiocpu") , m_msm5205(*this, "msm5205") , m_sample_bank(*this, "sample_bank") - , m_digits(*this, "digit%u", 0U) + , m_io_keyboard(*this, "X%d", 0U) + , m_digits(*this, "digit%d", 0U) , m_diag_digit(*this, "digit60") { } @@ -66,8 +97,6 @@ private: void switch_w(uint8_t data); void pia2c_pa_w(uint8_t data); void pia2c_pb_w(uint8_t data); - DECLARE_WRITE_LINE_MEMBER(pia28_ca2_w) { } // comma3&4 - DECLARE_WRITE_LINE_MEMBER(pia28_cb2_w) { } // comma1&2 uint8_t pia28_w7_r(); void dig0_w(uint8_t data); void dig1_w(uint8_t data); @@ -97,23 +126,24 @@ private: required_device<cpu_device> m_audiocpu; required_device<msm5205_device> m_msm5205; required_memory_bank m_sample_bank; + required_ioport_array<8> m_io_keyboard; output_finder<32> m_digits; output_finder<> m_diag_digit; - uint8_t m_sample_data; - bool m_more_data; - bool m_nmi_enable; + uint8_t m_sample_data = 0U; + bool m_more_data = 0; + bool m_nmi_enable = 0; - uint32_t m_segment1; - uint32_t m_segment2; - uint8_t m_strobe; - uint8_t m_kbdrow; - uint8_t m_diag; - bool m_ca1; - uint8_t m_sound_data; + uint32_t m_segment1 = 0U; + uint32_t m_segment2 = 0U; + uint8_t m_strobe = 0U; + uint8_t m_row = 0U; + uint8_t m_diag = 0U; + bool m_ca1 = 0; + uint8_t m_sound_data = 0U; - uint8_t m_sample_bank_num; - uint8_t m_msm_prescaler; + uint8_t m_sample_bank_num = 0U; + uint8_t m_msm_prescaler = 0U; }; @@ -143,77 +173,78 @@ void de_2_state::de_2_audio_map(address_map &map) map(0x8000, 0xffff).rom(); } -static INPUT_PORTS_START( de_2 ) - PORT_START("INP0") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("INP1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) - - PORT_START("INP2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) - - PORT_START("INP4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA) - - PORT_START("INP8") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE) - - PORT_START("INP10") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_UP) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DOWN) - - PORT_START("INP20") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O) - - PORT_START("INP40") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LALT) - PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("INP80") - PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - +static INPUT_PORTS_START( de2 ) + PORT_START("X0") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_NAME("Tilt") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_8) PORT_NAME("Ball Tilt") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN3 ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN1 ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_NAME("Slam Tilt") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("X1") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("INP09") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("INP10") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("INP11") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("INP12") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("INP13") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("INP14") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("INP15") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("INP16") + + PORT_START("X2") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("INP17") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("INP18") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("INP19") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("INP20") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("INP21") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("INP22") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("INP23") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("INP24") + + PORT_START("X3") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("INP25") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("INP26") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP27") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP28") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP29") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP30") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP31") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("INP32") + + PORT_START("X4") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP33") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP34") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP35") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP36") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP37") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("INP38") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP39") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP40") + + PORT_START("X5") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP41") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("INP42") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("INP43") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("INP44") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("INP45") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP46") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("INP47") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) PORT_NAME("INP48") + + PORT_START("X6") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("INP49") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_DOWN) PORT_NAME("INP50") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_HOME) PORT_NAME("INP51") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_END) PORT_NAME("INP52") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL) PORT_NAME("INP53") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("INP54") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("INP55") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SPACE) PORT_NAME("INP56") + + PORT_START("X7") INPUT_PORTS_END @@ -298,7 +329,12 @@ void de_2_state::dig1_w(uint8_t data) m_segment2 |= 0x30000; if ((m_segment2 & 0x70000) == 0x30000) { - m_digits[m_strobe+16] = bitswap<16>(m_segment2, 11, 15, 12, 10, 8, 14, 13, 9, 7, 6, 5, 4, 3, 2, 1, 0); + u16 seg = m_segment2; + if (BIT(seg, 6)) + seg |= 0x800; // fix g seg + if (BIT(seg, 7)) + seg |= 0x8000; // fix comma + m_digits[m_strobe+16] = bitswap<16>(seg, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0); m_segment2 |= 0x40000; } } @@ -362,22 +398,19 @@ void de_2_state::pia2c_pb_w(uint8_t data) // 6821 PIA at 0x3000 uint8_t de_2_state::switch_r() { - char kbdrow[8]; - sprintf(kbdrow,"INP%X",m_kbdrow); - return ~ioport(kbdrow)->read(); + u8 data = 0; + if (m_row < 0x81) + // last column is never used + for (u8 i = 0; i < 7; i++) + if (BIT(m_row, i)) + data |= m_io_keyboard[i]->read(); + + return data; } void de_2_state::switch_w(uint8_t data) { - int x; - // about every second, 0xFF is written here, but it would be impossible to select more than one set of switches - // at once, so just return the first bit set. Maybe 0xFF has special meaning, or is just a disable? - for(x=0;x<8;x++) - { - if(data & (1<<x)) - break; - } - m_kbdrow = data & (1<<x); + m_row = data; } // 6821 PIA at 0x3400 @@ -557,7 +590,7 @@ void de_2_state::de_type1(machine_config &config) decocpu.lamp_write_callback().set(FUNC(de_2_state::lamps_w)); /* Video */ - config.set_default_layout(layout_de2); + config.set_default_layout(layout_de1); genpin_audio(config); de_bg_audio(config); @@ -586,8 +619,6 @@ void de_2_state::de_type2_alpha3(machine_config &config) /* basic machine hardware */ de_type2(config); subdevice<decocpu_type2_device>("decocpu")->display_write_callback().set(FUNC(de_2_state::type2alpha3_display_w)); - - /* Video */ config.set_default_layout(layout_de2a3); } @@ -951,31 +982,31 @@ ROM_START(torp_a16) ROM_END -GAME( 1990, bttf_a28, 0, de_type3, de_2, de_2_state, empty_init, ROT0, "Data East", "Back to the Future - The Pinball (2.8)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1990, bttf_a27, bttf_a28, de_type3, de_2, de_2_state, empty_init, ROT0, "Data East", "Back to the Future - The Pinball (2.7)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1990, bttf_a20, bttf_a28, de_type3, de_2, de_2_state, empty_init, ROT0, "Data East", "Back to the Future - The Pinball (2.0)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1990, bttf_a21, bttf_a28, de_type3, de_2, de_2_state, empty_init, ROT0, "Data East", "Back to the Future - The Pinball (2.1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 199?, bttf_g27, bttf_a28, de_type3, de_2, de_2_state, empty_init, ROT0, "Data East", "Back to the Future - The Pinball (2.7, Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1990, kiko_a10, 0, de_type3, de_2, de_2_state, empty_init, ROT0, "Data East", "King Kong (1.0)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, lwar_a83, 0, de_type1, de_2, de_2_state, empty_init, ROT0, "Data East", "Laser War (8.3)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, lwar_a81, lwar_a83, de_type1, de_2, de_2_state, empty_init, ROT0, "Data East", "Laser War (8.1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1987, lwar_e90, lwar_a83, de_type1, de_2, de_2_state, empty_init, ROT0, "Data East", "Laser War (9.0 Europe)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1989, mnfb_c29, 0, de_type2_alpha3, de_2, de_2_state, empty_init, ROT0, "Data East", "Monday Night Football (2.9, 50cts)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1989, mnfb_c27, mnfb_c29, de_type2_alpha3, de_2, de_2_state, empty_init, ROT0, "Data East", "Monday Night Football (2.7, 50cts)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1990, poto_a32, 0, de_type2_alpha3, de_2, de_2_state, empty_init, ROT0, "Data East", "The Phantom of the Opera (3.2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1990, poto_a31, poto_a32, de_type2_alpha3, de_2, de_2_state, empty_init, ROT0, "Data East", "The Phantom of the Opera (3.1)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1990, poto_a29, poto_a32, de_type2_alpha3, de_2, de_2_state, empty_init, ROT0, "Data East", "The Phantom of the Opera (2.9)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1989, play_a24, 0, de_type2, de_2, de_2_state, empty_init, ROT0, "Data East", "Playboy 35th Anniversary (2.4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1989, robo_a34, 0, de_type3, de_2, de_2_state, empty_init, ROT0, "Data East", "Robocop (3.4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1989, robo_a30, robo_a34, de_type3, de_2, de_2_state, empty_init, ROT0, "Data East", "Robocop (3.0)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1989, robo_a29, robo_a34, de_type3, de_2, de_2_state, empty_init, ROT0, "Data East", "Robocop (2.9)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, ssvc_a26, 0, de_type2, de_2, de_2_state, empty_init, ROT0, "Data East", "Secret Service (2.6)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, ssvc_b26, ssvc_a26, de_type2, de_2, de_2_state, empty_init, ROT0, "Data East", "Secret Service (2.6 alternate sound)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, ssvc_a42, ssvc_a26, de_type2, de_2, de_2_state, empty_init, ROT0, "Data East", "Secret Service (4.2 alternate sound)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1990, simp_a27, 0, de_type3, de_2, de_2_state, empty_init, ROT0, "Data East", "The Simpsons (2.7)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1990, simp_a20, simp_a27, de_type3, de_2, de_2_state, empty_init, ROT0, "Data East", "The Simpsons (2.0)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, tmac_a24, 0, de_type2, de_2, de_2_state, empty_init, ROT0, "Data East", "Time Machine (2.4)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, tmac_a18, tmac_a24, de_type2, de_2, de_2_state, empty_init, ROT0, "Data East", "Time Machine (1.8)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, tmac_g18, tmac_a24, de_type2, de_2, de_2_state, empty_init, ROT0, "Data East", "Time Machine (1.8, Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, torp_e21, 0, de_type2, de_2, de_2_state, empty_init, ROT0, "Data East", "Torpedo Alley (2.1, Europe)", MACHINE_IS_SKELETON_MECHANICAL) -GAME( 1988, torp_a16, torp_e21, de_type2, de_2, de_2_state, empty_init, ROT0, "Data East", "Torpedo Alley (1.6)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1990, bttf_a28, 0, de_type3, de2, de_2_state, empty_init, ROT0, "Data East", "Back to the Future - The Pinball (2.8)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1990, bttf_a27, bttf_a28, de_type3, de2, de_2_state, empty_init, ROT0, "Data East", "Back to the Future - The Pinball (2.7)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1990, bttf_a20, bttf_a28, de_type3, de2, de_2_state, empty_init, ROT0, "Data East", "Back to the Future - The Pinball (2.0)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1990, bttf_a21, bttf_a28, de_type3, de2, de_2_state, empty_init, ROT0, "Data East", "Back to the Future - The Pinball (2.1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 199?, bttf_g27, bttf_a28, de_type3, de2, de_2_state, empty_init, ROT0, "Data East", "Back to the Future - The Pinball (2.7, Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1990, kiko_a10, 0, de_type3, de2, de_2_state, empty_init, ROT0, "Data East", "King Kong (1.0)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, lwar_a83, 0, de_type1, de2, de_2_state, empty_init, ROT0, "Data East", "Laser War (8.3)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, lwar_a81, lwar_a83, de_type1, de2, de_2_state, empty_init, ROT0, "Data East", "Laser War (8.1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1987, lwar_e90, lwar_a83, de_type1, de2, de_2_state, empty_init, ROT0, "Data East", "Laser War (9.0 Europe)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1989, mnfb_c29, 0, de_type2_alpha3, de2, de_2_state, empty_init, ROT0, "Data East", "Monday Night Football (2.9, 50cts)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1989, mnfb_c27, mnfb_c29, de_type2_alpha3, de2, de_2_state, empty_init, ROT0, "Data East", "Monday Night Football (2.7, 50cts)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1990, poto_a32, 0, de_type2_alpha3, de2, de_2_state, empty_init, ROT0, "Data East", "The Phantom of the Opera (3.2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1990, poto_a31, poto_a32, de_type2_alpha3, de2, de_2_state, empty_init, ROT0, "Data East", "The Phantom of the Opera (3.1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1990, poto_a29, poto_a32, de_type2_alpha3, de2, de_2_state, empty_init, ROT0, "Data East", "The Phantom of the Opera (2.9)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1989, play_a24, 0, de_type2, de2, de_2_state, empty_init, ROT0, "Data East", "Playboy 35th Anniversary (2.4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1989, robo_a34, 0, de_type3, de2, de_2_state, empty_init, ROT0, "Data East", "Robocop (3.4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1989, robo_a30, robo_a34, de_type3, de2, de_2_state, empty_init, ROT0, "Data East", "Robocop (3.0)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1989, robo_a29, robo_a34, de_type3, de2, de_2_state, empty_init, ROT0, "Data East", "Robocop (2.9)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, ssvc_a26, 0, de_type2, de2, de_2_state, empty_init, ROT0, "Data East", "Secret Service (2.6)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, ssvc_b26, ssvc_a26, de_type2, de2, de_2_state, empty_init, ROT0, "Data East", "Secret Service (2.6 alternate sound)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, ssvc_a42, ssvc_a26, de_type2, de2, de_2_state, empty_init, ROT0, "Data East", "Secret Service (4.2 alternate sound)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1990, simp_a27, 0, de_type3, de2, de_2_state, empty_init, ROT0, "Data East", "The Simpsons (2.7)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1990, simp_a20, simp_a27, de_type3, de2, de_2_state, empty_init, ROT0, "Data East", "The Simpsons (2.0)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, tmac_a24, 0, de_type2, de2, de_2_state, empty_init, ROT0, "Data East", "Time Machine (2.4)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, tmac_a18, tmac_a24, de_type2, de2, de_2_state, empty_init, ROT0, "Data East", "Time Machine (1.8)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, tmac_g18, tmac_a24, de_type2, de2, de_2_state, empty_init, ROT0, "Data East", "Time Machine (1.8, Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, torp_e21, 0, de_type2, de2, de_2_state, empty_init, ROT0, "Data East", "Torpedo Alley (2.1, Europe)", MACHINE_IS_SKELETON_MECHANICAL) +GAME( 1988, torp_a16, torp_e21, de_type2, de2, de_2_state, empty_init, ROT0, "Data East", "Torpedo Alley (1.6)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/de_3.cpp b/src/mame/drivers/de_3.cpp index b700451dde6..0966e993a3d 100644 --- a/src/mame/drivers/de_3.cpp +++ b/src/mame/drivers/de_3.cpp @@ -1,9 +1,43 @@ // license:BSD-3-Clause // copyright-holders:Miodrag Milanovic -/* - DataEast/Sega Version 3 -*/ - +/******************************************************************************************************************** +PINBALL +Data East System 3 + +Here are the key codes to enable play: + +Game NUM Start game End ball +--------------------------------------------------------------------------------------------- +Back to the Future 5009 +Checkpoint 5010 +Batman 5011 +The Simpsons 5012 +World's Fair (not emulated) 5013 +Star Trek 5014 +Total Recall (not emulated) 5015 +Kill Shot (not emulated) 5016 +Teenage Mutant Ninja Turtles 5017 +Tales from the Crypt 5018 +Hook 5019 +Jurassic Park 5020 +Operation Desert Storm (not emulated) 5021 +Adv. of Rocky & Bullwinkle & Friends 5022 +WWF Royal Rumble 5023 +Star Wars 5024 +Mad (not emulated) 5025 +Lethal Weapon 3 5026 +Last Action Hero 5027 +The Who's Tommy Pinball Wizard 5028 +Guns n' Roses 5029 +Aaron Spelling -- +Michael Jordan -- + + +Status: + +ToDo: + +*********************************************************************************************************************/ #include "emu.h" #include "audio/decobsmt.h" @@ -52,8 +86,6 @@ private: void pia2c_pa_w(uint8_t data); uint8_t pia2c_pb_r(); void pia2c_pb_w(uint8_t data); - DECLARE_WRITE_LINE_MEMBER(pia28_ca2_w) { } // comma3&4 - DECLARE_WRITE_LINE_MEMBER(pia28_cb2_w) { } // comma1&2 uint8_t pia28_w7_r(); void dig0_w(uint8_t data); void dig1_w(uint8_t data); @@ -86,13 +118,13 @@ private: // output_finder<32> m_digits; // output_finder<> m_diag_digit; -// uint32_t m_segment1; -// uint32_t m_segment2; - uint8_t m_strobe; - uint8_t m_kbdrow; - uint8_t m_diag; - bool m_ca1; - uint8_t m_sound_data; +// uint32_t m_segment1 = 0U; +// uint32_t m_segment2 = 0U; + uint8_t m_strobe = 0U; + uint8_t m_kbdrow = 0U; + uint8_t m_diag = 0U; + bool m_ca1 = 0; + uint8_t m_sound_data = 0U; }; @@ -102,66 +134,66 @@ static INPUT_PORTS_START( de_3 ) PORT_START("INP1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_START("INP2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_START("INP4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_START("INP8") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_START("INP10") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_UP) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DOWN) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DOWN) PORT_START("INP20") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_START("INP40") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LALT) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LALT) PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("INP80") diff --git a/src/mame/drivers/de_3b.cpp b/src/mame/drivers/de_3b.cpp index 0b4cb76d898..67eb72675b7 100644 --- a/src/mame/drivers/de_3b.cpp +++ b/src/mame/drivers/de_3b.cpp @@ -1,10 +1,26 @@ // license:BSD-3-Clause // copyright-holders:Miodrag Milanovic -/* - DataEast/Sega Version 3b -*/ +/******************************************************************************************************************** +PINBALL +Data East System 3b +Here are the key codes to enable play: +Game NUM Start game End ball +--------------------------------------------------------------------------------------------- +Maverick the Movie 5031 +Baywatch 5033 +Mary Shelley's Frankenstein 5036 +Batman Forever 5038 +Derby Daze (not emulated) 5039 +Cut the Cheese (redemption) 5048 +Roach Racers (not emulated) 5054 + +Status: + +ToDo: + +*********************************************************************************************************************/ #include "emu.h" #include "machine/decopincpu.h" #include "video/decodmd3.h" @@ -16,17 +32,15 @@ extern const char layout_pinball[]; class de_3b_state : public genpin_class { public: - de_3b_state(const machine_config &mconfig, device_type type, const char *tag) : - genpin_class(mconfig, type, tag), - m_decobsmt(*this, "decobsmt"), - m_dmdtype3(*this, "decodmd") + de_3b_state(const machine_config &mconfig, device_type type, const char *tag) + : genpin_class(mconfig, type, tag) + , m_decobsmt(*this, "decobsmt") + , m_dmdtype3(*this, "decodmd") { } void detest(machine_config &config); void de_3b(machine_config &config); - void init_de_3b(); - private: // devices optional_device<decobsmt_device> m_decobsmt; @@ -50,8 +64,8 @@ private: // driver_device overrides virtual void machine_reset() override; - uint8_t m_kbdrow; - uint8_t m_sound_data; + uint8_t m_row = 0U; + uint8_t m_sound_data = 0U; }; @@ -61,66 +75,66 @@ static INPUT_PORTS_START( de_3b ) PORT_START("INP1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_START("INP2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_START("INP4") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_START("INP8") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_START("INP10") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_UP) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DOWN) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DOWN) PORT_START("INP20") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_START("INP40") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LALT) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LALT) PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("INP80") @@ -130,7 +144,7 @@ INPUT_PORTS_END uint8_t de_3b_state::switch_r() { char kbdrow[8]; - sprintf(kbdrow,"INP%X",m_kbdrow); + sprintf(kbdrow,"INP%X",m_row); return ~ioport(kbdrow)->read(); } @@ -143,7 +157,7 @@ void de_3b_state::switch_w(uint8_t data) if(data & (1<<x)) break; } - m_kbdrow = data & (1<<x); + m_row = data & (1<<x); } void de_3b_state::sound_w(uint8_t data) @@ -232,10 +246,6 @@ void de_3b_state::machine_reset() { } -void de_3b_state::init_de_3b() -{ -} - void de_3b_state::de_3b(machine_config &config) { /* basic machine hardware */ @@ -674,7 +684,7 @@ ROM_START(ctcheese) ROM_END /*------------------------------------------------------------- -/ Roach Racers +/ Roach Racers / Derby Daze /------------------------------------------------------------*/ @@ -691,34 +701,34 @@ ROM_START(detest) ROM_END -GAME(1995, batmanf, 0, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (4.0)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, batmanf3, batmanf, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (3.0)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, batmanf2, batmanf, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (2.02)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, batmanf1, batmanf, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (1.02)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_uk, batmanf, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (English)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_cn, batmanf, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (Canadian)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_no, batmanf, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (Norwegian)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_sv, batmanf, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (Swedish)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_at, batmanf, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (Austrian)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_ch, batmanf, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (Swiss)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_de, batmanf, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_be, batmanf, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (Belgian)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_fr, batmanf, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_nl, batmanf, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (Dutch)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_it, batmanf, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (Italian)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_sp, batmanf, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (Spanish)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_jp, batmanf, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (Japanese)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bmf_time, batmanf, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Batman Forever (Timed Play)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, baywatch, 0, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Baywatch", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bay_d300, baywatch,de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Baywatch (3.00 Dutch)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bay_d400, baywatch,de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Baywatch (4.00 English)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bay_e400, baywatch,de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Baywatch (4.00 Dutch)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, bay_f201, baywatch,de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Baywatch (2.01 French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, frankst, 0, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Mary Shelley's Frankenstein", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1995, frankstg, frankst, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Mary Shelley's Frankenstein (Germany)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, mav_402, 0, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Maverick (Display Rev. 4.02)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, mav_401, mav_402, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Maverick (Display Rev. 4.01)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, mav_400, mav_402, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Maverick (Display Rev. 4.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1994, mav_100, mav_402, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Maverick (1.00)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1998, detest, 0, detest, de_3b, de_3b_state, init_de_3b, ROT0, "Data East", "Data East Test Chip", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1996, ctcheese, 0, de_3b, de_3b, de_3b_state, init_de_3b, ROT0, "Sega", "Cut The Cheese (Redemption)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, batmanf, 0, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (4.0)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, batmanf3, batmanf, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (3.0)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, batmanf2, batmanf, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (2.02)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, batmanf1, batmanf, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (1.02)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_uk, batmanf, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (English)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_cn, batmanf, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (Canadian)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_no, batmanf, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (Norwegian)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_sv, batmanf, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (Swedish)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_at, batmanf, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (Austrian)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_ch, batmanf, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (Swiss)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_de, batmanf, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_be, batmanf, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (Belgian)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_fr, batmanf, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_nl, batmanf, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (Dutch)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_it, batmanf, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (Italian)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_sp, batmanf, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (Spanish)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_jp, batmanf, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (Japanese)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bmf_time, batmanf, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Batman Forever (Timed Play)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, baywatch, 0, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Baywatch", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bay_d300, baywatch,de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Baywatch (3.00 Dutch)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bay_d400, baywatch,de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Baywatch (4.00 English)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bay_e400, baywatch,de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Baywatch (4.00 Dutch)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, bay_f201, baywatch,de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Baywatch (2.01 French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, frankst, 0, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Mary Shelley's Frankenstein", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1995, frankstg, frankst, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Mary Shelley's Frankenstein (Germany)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, mav_402, 0, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Maverick (Display Rev. 4.02)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, mav_401, mav_402, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Maverick (Display Rev. 4.01)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, mav_400, mav_402, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Maverick (Display Rev. 4.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1994, mav_100, mav_402, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Maverick (1.00)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1998, detest, 0, detest, de_3b, de_3b_state, empty_init, ROT0, "Data East", "Data East Test Chip", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1996, ctcheese, 0, de_3b, de_3b, de_3b_state, empty_init, ROT0, "Sega", "Cut The Cheese (Redemption)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/layout/de1.lay b/src/mame/layout/de1.lay new file mode 100644 index 00000000000..464abf968d2 --- /dev/null +++ b/src/mame/layout/de1.lay @@ -0,0 +1,87 @@ +<?xml version="1.0"?> +<!-- +license:CC0 +copyright-holders:Robbbert, Barry Rodewald + +Data East Alphanumeric Display Type 1 +--> + +<mamelayout version="2"> + + <element name="digit" defstate="0"> + <led14segsc> + <color red="1.0" green="0.0" blue="0.0" /> + </led14segsc> + </element> + <element name="ldigit" defstate="0"> + <led7seg> + <color red="1.0" green="0.0" blue="0.0" /> + </led7seg> + </element> + <element name="P0"><text string="Ball / Match"><color red="1.0" green="1.0" blue="1.0" /></text></element> + <element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element> + <element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element> + <element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element> + <element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element> + <element name="P6"><text string="Player 4"><color red="1.0" green="1.0" blue="1.0" /></text></element> + + <group name="score"> + <repeat count="7"> + <param name="n" start="~s~" increment="1" /> + <param name="x" start="0" increment="24" /> + <element name="digit~n~" ref="digit"> + <bounds x="~x~" y="0" width="20" height="39" /> + </element> + </repeat> + </group> + + <view name="Default Layout"> + <bounds left="0" top="25" right="364" bottom="249" /> + + <!-- LEDs --> + + <!-- Player 1 Score --> + <param name="s" value="1" /> + <group ref="score"> + <bounds left="10" top="45" right="174" bottom="84" /> + </group> + + <!-- Player 2 Score --> + <param name="s" value="9" /> + <group ref="score"> + <bounds left="190" top="45" right="354" bottom="84" /> + </group> + + <!-- Player 3 Score --> + <param name="s" value="17" /> + <group ref="score"> + <bounds left="10" top="100" right="174" bottom="139" /> + </group> + + <!-- Player 4 Score --> + <param name="s" value="25" /> + <group ref="score"> + <bounds left="190" top="100" right="354" bottom="139" /> + </group> + + <!-- Credits and Balls --> + <element name="digit16" ref="digit"> + <bounds left="256" top="200" right="276" bottom="239" /> + </element> + <element name="digit24" ref="digit"> + <bounds left="280" top="200" right="300" bottom="239" /> + </element> + <element name="digit0" ref="ldigit"> + <bounds left="310" top="200" right="330" bottom="239" /> + </element> + <element name="digit8" ref="ldigit"> + <bounds left="334" top="200" right="354" bottom="239" /> + </element> + <element ref="P0"><bounds left="310" right="354" top="180" bottom="192" /></element> + <element ref="P1"><bounds left="256" right="300" top="180" bottom="192" /></element> + <element ref="P3"><bounds left="10" right="174" top="30" bottom="42" /></element> + <element ref="P4"><bounds left="190" right="354" top="30" bottom="42" /></element> + <element ref="P5"><bounds left="10" right="174" top="88" bottom="100" /></element> + <element ref="P6"><bounds left="190" right="354" top="88" bottom="100" /></element> + </view> +</mamelayout> diff --git a/src/mame/layout/de2.lay b/src/mame/layout/de2.lay index a4162aa9005..fd3a0478940 100644 --- a/src/mame/layout/de2.lay +++ b/src/mame/layout/de2.lay @@ -2,6 +2,8 @@ <!-- license:CC0 copyright-holders:Barry Rodewald + +Data East Alphanumeric Display Type 2 --> <mamelayout version="2"> @@ -11,11 +13,6 @@ copyright-holders:Barry Rodewald <color red="1.0" green="0.0" blue="0.0" /> </led14segsc> </element> - <element name="ldigit" defstate="0"> - <led7seg> - <color red="1.0" green="0.0" blue="0.0" /> - </led7seg> - </element> <element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element> <element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element> <element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element> @@ -25,7 +22,7 @@ copyright-holders:Barry Rodewald <repeat count="7"> <param name="n" start="~s~" increment="1" /> <param name="x" start="0" increment="24" /> - <element name="digit~n~" ref="~e~"> + <element name="digit~n~" ref="digit"> <bounds x="~x~" y="0" width="24" height="39" /> </element> </repeat> @@ -37,31 +34,27 @@ copyright-holders:Barry Rodewald <!-- LEDs --> <!-- Player 1 Score --> - <param name="e" value="digit" /> <param name="s" value="1" /> <group ref="score"> <bounds left="10" top="45" right="174" bottom="84" /> </group> <!-- Player 2 Score --> - <param name="e" value="digit" /> <param name="s" value="9" /> <group ref="score"> - <bounds left="190" top="45" right="354" bottom="84" /> + <bounds left="202" top="45" right="354" bottom="84" /> </group> <!-- Player 3 Score --> - <param name="e" value="ldigit" /> <param name="s" value="17" /> <group ref="score"> <bounds left="10" top="100" right="174" bottom="139" /> </group> <!-- Player 4 Score --> - <param name="e" value="ldigit" /> <param name="s" value="25" /> <group ref="score"> - <bounds left="190" top="100" right="354" bottom="139" /> + <bounds left="202" top="100" right="354" bottom="139" /> </group> <element ref="P3"><bounds left="10" right="174" top="30" bottom="42" /></element> |
