mirror of
https://github.com/holub/mame
synced 2025-06-05 20:33:45 +03:00
de_2,de_3,de_3b: added documentation, removed unused code.
This commit is contained in:
parent
21be925eb4
commit
9851073dec
@ -11,6 +11,10 @@ Hardware:
|
||||
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.
|
||||
|
||||
Display:
|
||||
- System 1: 4x 7 digits, each 7-segment+comma, plus 4 digit for balls/credits/match
|
||||
- System 2: Alphanumeric display, some have 28 digits, some have 32.
|
||||
|
||||
Here are the key codes to enable play:
|
||||
|
||||
Game NUM Start game End ball
|
||||
@ -39,10 +43,9 @@ Status:
|
||||
- All machines are playable
|
||||
|
||||
ToDo:
|
||||
- Save state
|
||||
- Outputs
|
||||
- Mechanical sounds
|
||||
- robo_a34: can't coin up, buggy rom?
|
||||
- robo_a29,robo_a34: can't coin up, buggy rom?
|
||||
|
||||
*********************************************************************************************************************/
|
||||
#include "emu.h"
|
||||
@ -50,9 +53,7 @@ ToDo:
|
||||
#include "machine/decopincpu.h"
|
||||
#include "machine/genpin.h"
|
||||
|
||||
#include "cpu/m6800/m6800.h"
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "machine/6821pia.h"
|
||||
#include "sound/msm5205.h"
|
||||
#include "sound/ymopm.h"
|
||||
#include "speaker.h"
|
||||
@ -61,6 +62,7 @@ ToDo:
|
||||
#include "de2.lh"
|
||||
#include "de2a3.lh"
|
||||
|
||||
namespace {
|
||||
|
||||
class de_2_state : public genpin_class
|
||||
{
|
||||
@ -86,11 +88,10 @@ private:
|
||||
virtual void machine_reset() override;
|
||||
|
||||
void de_bg_audio(machine_config &config);
|
||||
void de_2_map(address_map &map);
|
||||
void de_2_audio_map(address_map &map);
|
||||
|
||||
void sample_w(uint8_t data);
|
||||
void pia34_pa_w(uint8_t data);
|
||||
void pia34_pa_w(uint8_t data) { }
|
||||
void type2alpha3_pia34_pa_w(uint8_t data);
|
||||
void alpha3_pia34_pa_w(uint8_t data);
|
||||
uint8_t switch_r();
|
||||
@ -102,14 +103,11 @@ private:
|
||||
void dig1_w(uint8_t data);
|
||||
void type2alpha3_dig1_w(uint8_t data);
|
||||
void alpha3_dig1_w(uint8_t data);
|
||||
void lamp0_w(uint8_t data);
|
||||
void lamp0_w(uint8_t data) { }
|
||||
void lamp1_w(uint8_t data) { }
|
||||
DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(msm5205_irq_w);
|
||||
void sol2_w(uint8_t data) { } // solenoids 8-15
|
||||
void sol3_w(uint8_t data);
|
||||
void sound_w(uint8_t data);
|
||||
DECLARE_WRITE_LINE_MEMBER(pia21_ca2_w);
|
||||
|
||||
uint8_t sound_latch_r();
|
||||
void sample_bank_w(uint8_t data);
|
||||
@ -139,27 +137,10 @@ private:
|
||||
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 = 0U;
|
||||
uint8_t m_msm_prescaler = 0U;
|
||||
};
|
||||
|
||||
|
||||
void de_2_state::de_2_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1fff).ram().share("nvram");
|
||||
map(0x2100, 0x2103).rw("pia21", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // sound+solenoids
|
||||
map(0x2200, 0x2200).w(FUNC(de_2_state::sol3_w)); // solenoids
|
||||
map(0x2400, 0x2403).rw("pia24", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // lamps
|
||||
map(0x2800, 0x2803).rw("pia28", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // display
|
||||
map(0x2c00, 0x2c03).rw("pia2c", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // alphanumeric display
|
||||
map(0x3000, 0x3003).rw("pia30", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // inputs
|
||||
map(0x3400, 0x3403).rw("pia34", FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // widget
|
||||
map(0x4000, 0xffff).rom();
|
||||
}
|
||||
|
||||
void de_2_state::de_2_audio_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1fff).ram();
|
||||
@ -263,6 +244,16 @@ void de_2_state::machine_start()
|
||||
m_digits.resolve();
|
||||
m_diag_digit.resolve();
|
||||
|
||||
save_item(NAME(m_sound_data));
|
||||
save_item(NAME(m_diag));
|
||||
save_item(NAME(m_segment1));
|
||||
save_item(NAME(m_segment2));
|
||||
save_item(NAME(m_nmi_enable));
|
||||
save_item(NAME(m_sample_data));
|
||||
save_item(NAME(m_more_data));
|
||||
save_item(NAME(m_strobe));
|
||||
save_item(NAME(m_row));
|
||||
|
||||
uint8_t *const ROM = memregion("sound1")->base();
|
||||
m_sample_bank->configure_entries(0, 16, &ROM[0x0000], 0x4000);
|
||||
m_sample_bank->set_entry(0);
|
||||
@ -290,26 +281,13 @@ WRITE_LINE_MEMBER(de_2_state::msm5205_irq_w)
|
||||
}
|
||||
|
||||
// 6821 PIA at 0x2100
|
||||
void de_2_state::sol3_w(uint8_t data)
|
||||
{
|
||||
}
|
||||
|
||||
void de_2_state::sound_w(uint8_t data)
|
||||
{
|
||||
m_sound_data = data;
|
||||
m_audiocpu->set_input_line(M6809_FIRQ_LINE, ASSERT_LINE);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( de_2_state::pia21_ca2_w )
|
||||
{
|
||||
// sound ns
|
||||
m_ca1 = state;
|
||||
}
|
||||
|
||||
// 6821 PIA at 0x2400
|
||||
void de_2_state::lamp0_w(uint8_t data)
|
||||
{
|
||||
}
|
||||
|
||||
// 6821 PIA at 0x2800
|
||||
void de_2_state::dig0_w(uint8_t data)
|
||||
@ -317,7 +295,7 @@ void de_2_state::dig0_w(uint8_t data)
|
||||
static const uint8_t patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0x58, 0x4c, 0x62, 0x69, 0x78, 0 }; // 7447
|
||||
data &= 0x7f;
|
||||
m_strobe = data & 15;
|
||||
m_diag = (data & 0x70) >> 4;
|
||||
m_diag = BIT(data, 4, 3);
|
||||
m_diag_digit = patterns[data>>4]; // diag digit
|
||||
m_segment1 = 0;
|
||||
m_segment2 = 0;
|
||||
@ -399,7 +377,7 @@ void de_2_state::pia2c_pb_w(uint8_t data)
|
||||
uint8_t de_2_state::switch_r()
|
||||
{
|
||||
u8 data = 0;
|
||||
if (m_row < 0x81)
|
||||
if (m_row < 0x41)
|
||||
// last column is never used
|
||||
for (u8 i = 0; i < 7; i++)
|
||||
if (BIT(m_row, i))
|
||||
@ -414,11 +392,6 @@ void de_2_state::switch_w(uint8_t data)
|
||||
}
|
||||
|
||||
// 6821 PIA at 0x3400
|
||||
void de_2_state::pia34_pa_w(uint8_t data)
|
||||
{
|
||||
// Not connected on alphanumeric type 2 boards
|
||||
}
|
||||
|
||||
void de_2_state::type2alpha3_pia34_pa_w(uint8_t data)
|
||||
{
|
||||
m_segment2 |= (data<<8);
|
||||
@ -458,12 +431,10 @@ void de_2_state::sample_bank_w(uint8_t data)
|
||||
{
|
||||
static constexpr uint8_t prescale[4] = { msm5205_device::S96_4B, msm5205_device::S48_4B, msm5205_device::S64_4B, 0 };
|
||||
|
||||
m_sample_bank_num = (data & 0x07);
|
||||
m_sample_bank->set_entry(m_sample_bank_num);
|
||||
m_msm_prescaler = (data & 0x30) >> 4;
|
||||
m_nmi_enable = (~data & 0x80);
|
||||
m_msm5205->playmode_w(prescale[m_msm_prescaler]);
|
||||
m_msm5205->reset_w(data & 0x40);
|
||||
m_sample_bank->set_entry(data & 7);
|
||||
m_nmi_enable = !BIT(data, 7);
|
||||
m_msm5205->playmode_w(prescale[BIT(data, 4, 2)]);
|
||||
m_msm5205->reset_w(BIT(data, 6));
|
||||
}
|
||||
|
||||
uint8_t de_2_state::display_r(offs_t offset)
|
||||
@ -981,6 +952,7 @@ ROM_START(torp_a16)
|
||||
ROM_LOAD("torpef4.rom", 0x10000, 0x10000, CRC(83a4e7f3) SHA1(96deac9251fe68cc0319ac009becd424c4e444c5))
|
||||
ROM_END
|
||||
|
||||
} // Anonymous namespace
|
||||
|
||||
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)
|
||||
|
@ -4,38 +4,47 @@
|
||||
PINBALL
|
||||
Data East System 3
|
||||
|
||||
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
|
||||
---------------------------------------------------------------------------------------------
|
||||
Back to the Future 5009
|
||||
Checkpoint 5010
|
||||
Batman 5011
|
||||
The Simpsons 5012
|
||||
Back to the Future 5009 Hold CDE, hit 1 CDE
|
||||
Checkpoint 5010 Hold CDE, hit 1 CDE
|
||||
Batman 5011 Hold CDE, hit 1 CDE
|
||||
The Simpsons 5012 Hold CDE, hit 1 CDE
|
||||
World's Fair (not emulated) 5013
|
||||
Star Trek 5014
|
||||
Star Trek 5014 Hold CDE, hit 1 CDE
|
||||
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
|
||||
Teenage Mutant Ninja Turtles 5017 Hold CDE, hit 1 CDE
|
||||
Tales from the Crypt 5018 Hold ABCDE, hit 1 Hold ABCD, hit F
|
||||
Hook 5019 Hold CDE, hit 1 CDE
|
||||
Jurassic Park 5020 Hold ABCDEF, hit 1 ABCDEF
|
||||
Operation Desert Storm (not emulated) 5021
|
||||
Adv. of Rocky & Bullwinkle & Friends 5022
|
||||
WWF Royal Rumble 5023
|
||||
Star Wars 5024
|
||||
Adv. of Rocky & Bullwinkle & Friends 5022 Hold CDE, hit 1 CDE
|
||||
WWF Royal Rumble 5023 Hold ABC, hit 1 Hold ABC, hit F
|
||||
Star Wars 5024 Hold CDE, hit 1 CDE
|
||||
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 --
|
||||
Lethal Weapon 3 5026 Hold CDE, hit 1 CDE
|
||||
Last Action Hero 5027 Hold ABC, hit 1 BCF
|
||||
The Who's Tommy Pinball Wizard 5028 Hold ABC, hit 1 Hold ABC, hit F
|
||||
Guns n' Roses 5029 Hold A, hit 1 ABCDEF
|
||||
Aaron Spelling -- Hold CDE, hit 1 CDE
|
||||
Michael Jordan --
|
||||
|
||||
|
||||
Status:
|
||||
- All machines are playable
|
||||
|
||||
ToDo:
|
||||
- Checkpoint: no sound
|
||||
- TMNT: no sound
|
||||
- Batman: music missing
|
||||
- Outputs
|
||||
- Mechanical sounds
|
||||
|
||||
*********************************************************************************************************************/
|
||||
#include "emu.h"
|
||||
@ -43,22 +52,11 @@ ToDo:
|
||||
#include "audio/decobsmt.h"
|
||||
#include "machine/decopincpu.h"
|
||||
#include "machine/genpin.h"
|
||||
|
||||
#include "cpu/m6800/m6800.h"
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "machine/6821pia.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "video/decodmd1.h"
|
||||
#include "video/decodmd2.h"
|
||||
|
||||
// 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.
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
extern const char layout_pinball[];
|
||||
|
||||
class de_3_state : public genpin_class
|
||||
{
|
||||
public:
|
||||
@ -67,8 +65,7 @@ public:
|
||||
, m_dmdtype1(*this, "decodmd1")
|
||||
, m_dmdtype2(*this, "decodmd2")
|
||||
, m_decobsmt(*this, "decobsmt")
|
||||
// , m_digits(*this, "digit%u", 0U)
|
||||
// , m_diag_digit(*this, "digit60")
|
||||
, m_io_keyboard(*this, "X%d", 0U)
|
||||
{ }
|
||||
|
||||
void de_3_dmd1(machine_config &config);
|
||||
@ -80,29 +77,17 @@ protected:
|
||||
virtual void machine_reset() override;
|
||||
|
||||
private:
|
||||
void pia34_pa_w(uint8_t data);
|
||||
uint8_t switch_r();
|
||||
void switch_w(uint8_t data);
|
||||
void pia2c_pa_w(uint8_t data);
|
||||
uint8_t pia2c_pb_r();
|
||||
void pia2c_pb_w(uint8_t data);
|
||||
uint8_t pia28_w7_r();
|
||||
void dig0_w(uint8_t data);
|
||||
void dig1_w(uint8_t data);
|
||||
void lamp0_w(uint8_t data);
|
||||
void lamp0_w(uint8_t data) { }
|
||||
void lamp1_w(uint8_t data) { }
|
||||
//DECLARE_WRITE_LINE_MEMBER(ym2151_irq_w);
|
||||
//DECLARE_WRITE_LINE_MEMBER(msm5205_irq_w);
|
||||
void sol2_w(uint8_t data) { } // solenoids 8-15
|
||||
[[maybe_unused]] void sol3_w(uint8_t data);
|
||||
void sound_w(uint8_t data);
|
||||
void dac_w(uint8_t data) { }
|
||||
[[maybe_unused]] DECLARE_WRITE_LINE_MEMBER(pia21_ca2_w);
|
||||
uint8_t dmd_status_r();
|
||||
|
||||
// uint8_t sound_latch_r();
|
||||
// void sample_bank_w(uint8_t data);
|
||||
|
||||
// devcb callbacks
|
||||
uint8_t display_r(offs_t offset);
|
||||
void display_w(offs_t offset, uint8_t data);
|
||||
@ -114,151 +99,107 @@ private:
|
||||
optional_device<decodmd_type1_device> m_dmdtype1;
|
||||
optional_device<decodmd_type2_device> m_dmdtype2;
|
||||
required_device<decobsmt_device> m_decobsmt;
|
||||
required_ioport_array<8> m_io_keyboard;
|
||||
|
||||
// output_finder<32> m_digits;
|
||||
// output_finder<> m_diag_digit;
|
||||
|
||||
// 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;
|
||||
uint8_t m_row = 0U;
|
||||
};
|
||||
|
||||
|
||||
static INPUT_PORTS_START( de_3 )
|
||||
PORT_START("INP0")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
static INPUT_PORTS_START( de3 )
|
||||
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_COIN4 )
|
||||
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_START2 ) // Buy extra ball on some machines
|
||||
|
||||
PORT_START("INP1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT )
|
||||
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_KEYPAD )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD )
|
||||
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("INP2")
|
||||
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("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("INP4")
|
||||
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("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("INP8")
|
||||
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("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("INP10")
|
||||
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("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("INP20")
|
||||
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_KEYPAD ) PORT_CODE(KEYCODE_LALT)
|
||||
PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("INP80")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
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")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("INP57")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("INP58")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("INP59")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("INP60")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("INP61")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME("INP62")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ASTERISK) PORT_NAME("INP63")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("INP64")
|
||||
INPUT_PORTS_END
|
||||
|
||||
// 6821 PIA at 0x2000
|
||||
void de_3_state::sol3_w(uint8_t data)
|
||||
{
|
||||
}
|
||||
|
||||
void de_3_state::sound_w(uint8_t data)
|
||||
{
|
||||
m_sound_data = data;
|
||||
if(m_sound_data != 0xfe)
|
||||
m_decobsmt->bsmt_comms_w(m_sound_data);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( de_3_state::pia21_ca2_w )
|
||||
{
|
||||
// sound ns
|
||||
m_ca1 = state;
|
||||
if(data != 0xfe)
|
||||
m_decobsmt->bsmt_comms_w(data);
|
||||
}
|
||||
|
||||
// 6821 PIA at 0x2400
|
||||
void de_3_state::lamp0_w(uint8_t data)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
// 6821 PIA at 0x2800
|
||||
void de_3_state::dig0_w(uint8_t data)
|
||||
{
|
||||
// static const uint8_t patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0x58, 0x4c, 0x62, 0x69, 0x78, 0 }; // 7447
|
||||
// data &= 0x7f;
|
||||
// m_strobe = data & 15;
|
||||
// m_diag = (data & 0x70) >> 4;
|
||||
// m_diag_digit = patterns[data>>4]; // diag digit
|
||||
// m_segment1 = 0;
|
||||
// m_segment2 = 0;
|
||||
}
|
||||
|
||||
void de_3_state::dig1_w(uint8_t data)
|
||||
{
|
||||
// m_segment2 |= data;
|
||||
// m_segment2 |= 0x30000;
|
||||
// if ((m_segment2 & 0x70000) == 0x30000)
|
||||
// {
|
||||
// if(m_is_alpha3) // Alphanumeric type 2 uses 7 segment LEDs on the bottom row, type 3 uses 14 segment LEDs
|
||||
// m_digits[m_strobe+16] = bitswap<16>(m_segment2, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0);
|
||||
// else
|
||||
// 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);
|
||||
// m_segment2 |= 0x40000;
|
||||
// }
|
||||
}
|
||||
|
||||
uint8_t de_3_state::pia28_w7_r()
|
||||
{
|
||||
uint8_t ret = 0x80;
|
||||
|
||||
ret |= m_strobe;
|
||||
ret |= m_diag << 4;
|
||||
|
||||
return ret;
|
||||
return 0x80;
|
||||
}
|
||||
|
||||
// 6821 PIA at 0x2c00
|
||||
@ -275,19 +216,13 @@ void de_3_state::pia2c_pa_w(uint8_t data)
|
||||
m_dmdtype1->data_w(data);
|
||||
logerror("DMD: Data write %02x\n", data);
|
||||
}
|
||||
// m_segment1 |= (data<<8);
|
||||
// m_segment1 |= 0x10000;
|
||||
// if ((m_segment1 & 0x70000) == 0x30000)
|
||||
// {
|
||||
// m_digits[m_strobe] = bitswap<16>(m_segment1, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0);
|
||||
// m_segment1 |= 0x40000;
|
||||
// }
|
||||
}
|
||||
|
||||
uint8_t de_3_state::pia2c_pb_r()
|
||||
{
|
||||
if(m_dmdtype1)
|
||||
return m_dmdtype1->busy_r();
|
||||
else
|
||||
if(m_dmdtype2)
|
||||
return m_dmdtype2->busy_r();
|
||||
return 0;
|
||||
@ -299,64 +234,43 @@ void de_3_state::pia2c_pb_w(uint8_t data)
|
||||
if(m_dmdtype2)
|
||||
{
|
||||
m_dmdtype2->ctrl_w(data);
|
||||
logerror("DMD: Control write %02x\n", data);
|
||||
//logerror("DMD: Control write %02x\n", data);
|
||||
}
|
||||
else if(m_dmdtype1)
|
||||
else
|
||||
if(m_dmdtype1)
|
||||
{
|
||||
m_dmdtype1->ctrl_w(data);
|
||||
logerror("DMD: Control write %02x\n", data);
|
||||
//logerror("DMD: Control write %02x\n", data);
|
||||
}
|
||||
|
||||
// m_segment1 |= data;
|
||||
// m_segment1 |= 0x20000;
|
||||
// if ((m_segment1 & 0x70000) == 0x30000)
|
||||
// {
|
||||
// m_digits[m_strobe] = bitswap<16>(m_segment1, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0);
|
||||
// m_segment1 |= 0x40000;
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
// 6821 PIA at 0x3000
|
||||
uint8_t de_3_state::switch_r()
|
||||
{
|
||||
char kbdrow[8];
|
||||
sprintf(kbdrow,"INP%X",m_kbdrow);
|
||||
return ~ioport(kbdrow)->read();
|
||||
u8 data = 0;
|
||||
if (m_row < 0x81)
|
||||
for (u8 i = 0; i < 8; i++)
|
||||
if (BIT(m_row, i))
|
||||
data |= m_io_keyboard[i]->read();
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
void de_3_state::switch_w(uint8_t data)
|
||||
{
|
||||
int x;
|
||||
|
||||
for(x=0;x<8;x++)
|
||||
{
|
||||
if(data & (1<<x))
|
||||
break;
|
||||
}
|
||||
m_kbdrow = data & (1<<x);
|
||||
m_row = data;
|
||||
}
|
||||
|
||||
// 6821 PIA at 0x3400
|
||||
void de_3_state::pia34_pa_w(uint8_t data)
|
||||
{
|
||||
// Not connected?
|
||||
// m_segment2 |= (data<<8);
|
||||
// m_segment2 |= 0x10000;
|
||||
// if ((m_segment2 & 0x70000) == 0x30000)
|
||||
// {
|
||||
// m_digits[m_strobe+16] = bitswap<16>(m_segment2, 7, 15, 12, 10, 8, 14, 13, 9, 11, 6, 5, 4, 3, 2, 1, 0);
|
||||
// m_segment2 |= 0x40000;
|
||||
// }
|
||||
}
|
||||
|
||||
uint8_t de_3_state::dmd_status_r()
|
||||
{
|
||||
if(m_dmdtype1)
|
||||
{
|
||||
return m_dmdtype1->status_r();
|
||||
}
|
||||
else if(m_dmdtype2)
|
||||
else
|
||||
if(m_dmdtype2)
|
||||
{
|
||||
return m_dmdtype2->status_r();
|
||||
}
|
||||
@ -385,10 +299,8 @@ void de_3_state::display_w(offs_t offset, uint8_t data)
|
||||
switch(offset)
|
||||
{
|
||||
case 0:
|
||||
dig0_w(data);
|
||||
break;
|
||||
case 1:
|
||||
dig1_w(data);
|
||||
break;
|
||||
case 2:
|
||||
pia2c_pa_w(data);
|
||||
@ -397,7 +309,6 @@ void de_3_state::display_w(offs_t offset, uint8_t data)
|
||||
pia2c_pb_w(data);
|
||||
break;
|
||||
case 4:
|
||||
pia34_pa_w(data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -420,8 +331,7 @@ void de_3_state::machine_start()
|
||||
{
|
||||
genpin_class::machine_start();
|
||||
|
||||
// m_digits.resolve();
|
||||
// m_diag_digit.resolve();
|
||||
save_item(NAME(m_row));
|
||||
}
|
||||
|
||||
void de_3_state::machine_reset()
|
||||
@ -1496,74 +1406,74 @@ ROM_END
|
||||
} // Anonymous namespace
|
||||
|
||||
|
||||
GAME(1993, rab_320, 0, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Adventures of Rocky and Bullwinkle and Friends (USA 3.20, display A3.00)", MACHINE_IS_SKELETON_MECHANICAL) // ROCKY+BULLWINKLE AUGUST 12, 1993 USA CPU 3.20. DISPLAY VERSION- BULLWINKLE A3.00 5/24/1993
|
||||
GAME(1993, rab_130, rab_320, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Adventures of Rocky and Bullwinkle and Friends (USA 1.30, display A1.30)", MACHINE_IS_SKELETON_MECHANICAL) // ROCKY+BULLWINKLE APRIL 1, 1993 USA CPU 1.30. DISPLAY VERSION- BULLWINKLE A1.30 4/1/1993
|
||||
GAME(1993, rab_103s, rab_320, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Adventures of Rocky and Bullwinkle and Friends (USA 1.03, display S1.03)", MACHINE_IS_SKELETON_MECHANICAL) // ROCKY+BULLWINKLE FEBRUARY 3, 1993 USA CPU 1.03. DISPLAY VERSION- BULLWINKLE S1.03 2/2/1993
|
||||
GAME(1992, aar_101, 0, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Aaron Spelling (1.01)", MACHINE_IS_SKELETON_MECHANICAL) // AARON SPELLING V1.01 12/23/92
|
||||
GAME(1991, btmn_106, 0, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Batman (USA 1.06, display A1.02)", MACHINE_IS_SKELETON_MECHANICAL) // BATMAN USA 1.06. DISP VER: BATMAN A1.02
|
||||
GAME(1991, btmn_103, btmn_106, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Batman (USA 1.03, display A1.02)", MACHINE_IS_SKELETON_MECHANICAL) // BATMAN USA 1.03. DISP VER: BATMAN A1.02
|
||||
GAME(1991, btmn_103f, btmn_106, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Batman (France 1.03, display F1.03)", MACHINE_IS_SKELETON_MECHANICAL) // BATMAN FRANCE 1.03. DISP VER: BATMAN F1.03
|
||||
GAME(1991, btmn_103g, btmn_106, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Batman (Germany 1.03, display G1.04)", MACHINE_IS_SKELETON_MECHANICAL) // BATMAN GERMANY 1.03. DISP VER: BATMAN G1.04
|
||||
GAME(1991, btmn_101, btmn_106, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Batman (USA 1.01, display A1.02)", MACHINE_IS_SKELETON_MECHANICAL) // BATMAN USA 1.01
|
||||
GAME(1991, ckpt_a17, 0, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Checkpoint (1.7)", MACHINE_IS_SKELETON_MECHANICAL) // CP80 3/6/91
|
||||
GAME(1994, gnr_300, 0, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Guns N Roses (USA 3.00, display A3.00)", MACHINE_IS_SKELETON_MECHANICAL) // GUNS-N-ROSES AUGUST 21, 1994 USA CPU 3.00. DISPLAY VERSION- GNR A3.00 AUGUST 16, 1994
|
||||
GAME(1994, gnr_300f, gnr_300, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Guns N Roses (French 3.00, display F3.00)", MACHINE_IS_SKELETON_MECHANICAL) // GUNS-N-ROSES AUGUST 21, 1994 FRENCH CPU 3.00. DISPLAY VERSION- GNR F3.00 AUGUST 16, 1994
|
||||
GAME(1994, gnr_300d, gnr_300, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Guns N Roses (Dutch 3.00, display A3.00)", MACHINE_IS_SKELETON_MECHANICAL) // GUNS-N-ROSES AUGUST 21, 1994 DUTCH CPU 3.00. DISPLAY VERSION- GNR A3.00 AUGUST 16, 1994
|
||||
GAME(1994, gnr_200, gnr_300, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Guns N Roses (USA 2.00, display A3.00)", MACHINE_IS_SKELETON_MECHANICAL) // GUNS-N-ROSES JULY 5, 1994 USA CPU 2.00
|
||||
GAME(1992, hook_408, 0, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Hook (USA 4.08, display A4.01)", MACHINE_IS_SKELETON_MECHANICAL) // HOOK USA 4.08. DISPLAY: HOOK A4.01
|
||||
GAME(1992, hook_404, hook_408, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Hook (USA 4.04, display A4.01)", MACHINE_IS_SKELETON_MECHANICAL) // HOOK USA 4.04
|
||||
GAME(1992, hook_401, hook_408, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Hook (USA 4.01, display A4.01)", MACHINE_IS_SKELETON_MECHANICAL) // HOOK USA 4.01
|
||||
GAME(1992, hook_401_p, hook_408, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Hook (USA 4.01 with prototype sound, display A4.01)", MACHINE_IS_SKELETON_MECHANICAL) // HOOK USA 4.01
|
||||
GAME(1992, hook_e406, hook_408, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Hook (UK 4.06, display A4.01)", MACHINE_IS_SKELETON_MECHANICAL) // HOOK U.K. 4.06
|
||||
GAME(1993, jupk_513, 0, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Jurassic Park (USA 5.13, display A5.10)", MACHINE_IS_SKELETON_MECHANICAL) // JURASSIC PARK SEP. 28, 1993 USA CPU 5.13. DISPLAY VERSION- JURASSIC A5.10 8/24/1993
|
||||
GAME(1993, jupk_501, jupk_513, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Jurassic Park (USA 5.01, display A5.01)", MACHINE_IS_SKELETON_MECHANICAL) // JURASSIC PARK JUNE 28, 1993 USA CPU 5.01. DISPLAY VERSION- JURASSIC A5.01 6/24/1993
|
||||
GAME(1993, jupk_501g, jupk_513, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Jurassic Park (USA 5.01 Germany, display G5.01)", MACHINE_IS_SKELETON_MECHANICAL) // JURASSIC PARK JUNE 28, 1993 USA CPU 5.01. DISPLAY VERSION- JURASSIC G5.01 6/24/1993
|
||||
GAME(1993, jupk_307, jupk_513, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Jurassic Park (USA 3.07, display A4.00)", MACHINE_IS_SKELETON_MECHANICAL) // JURASSIC PARK. MAY 25, 1993. USA CPU 3.05
|
||||
GAME(1993, jupk_305, jupk_513, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Jurassic Park (USA 3.05, display A4.00)", MACHINE_IS_SKELETON_MECHANICAL) // JURASSIC PARK. MAY 25, 1993. USA CPU 3.05
|
||||
GAME(1993, lah_112, 0, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Last Action Hero (USA 1.12, display A1.06)", MACHINE_IS_SKELETON_MECHANICAL) // LAST ACTION HERO NOV. 10, 1993 USA CPU 1.12. DISPLAY VERSION- ACTION HERO A1.06 11/11/1993
|
||||
GAME(1993, lah_110, lah_112, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Last Action Hero (USA 1.10, display A1.06)", MACHINE_IS_SKELETON_MECHANICAL) // LAST ACTION HERO OCT. 18, 1993 USA CPU 1.10
|
||||
GAME(1993, lah_xxx_s105, lah_112, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Last Action Hero (unknown CPU, display L1.05)", MACHINE_IS_SKELETON_MECHANICAL) // DISPLAY VERSION- ACTION HERO L1.05 11/11/1993
|
||||
GAME(1993, lah_108s, lah_112, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Last Action Hero (USA 1.08, display L1.04)", MACHINE_IS_SKELETON_MECHANICAL) // LAST ACTION HERO SEPT. 28, 1993 USA CPU 1.08. DISPLAY VERSION- ACTION HERO L1.04 9/5/1993
|
||||
GAME(1993, lah_107, lah_112, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Last Action Hero (USA 1.07, display A1.06)", MACHINE_IS_SKELETON_MECHANICAL) // LAST ACTION HERO SEPT. 22, 1993 USA CPU 1.07
|
||||
GAME(1993, lah_106c, lah_112, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Last Action Hero (Canada 1.06, display A1.04)", MACHINE_IS_SKELETON_MECHANICAL) // LAST ACTION HERO SEPT. 20, 1993 CANADA CPU 1.06. DISPLAY VERSION- ACTION HERO A1.04 9/5/1993
|
||||
GAME(1993, lah_104f, lah_112, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Last Action Hero (USA 1.04, display F1.01)", MACHINE_IS_SKELETON_MECHANICAL) // LAST ACTION HERO SEPT. 1, 1993 USA CPU 1.04. DISPLAY VERSION- ACTION HERO F1.01 8/18/1993
|
||||
GAME(1993, lah_104s, lah_112, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Last Action Hero (USA 1.04, display L1.02)", MACHINE_IS_SKELETON_MECHANICAL) // LAST ACTION HERO SEPT. 1, 1993 USA CPU 1.04. DISPLAY VERSION- ACTION HERO L1.02 8/30/1993
|
||||
GAME(1992, lw3_208, 0, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Lethal Weapon 3 (USA 2.08, display A2.06)", MACHINE_IS_SKELETON_MECHANICAL) // LW3 11/17/92 USA CPU 2.08. DISPLAY VERSION- LETHAL WEAPON A2.06 9/29/1992
|
||||
GAME(1992, lw3_207, lw3_208, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Lethal Weapon 3 (USA 2.07, display A2.06)", MACHINE_IS_SKELETON_MECHANICAL) // LW3 AUG 31, 1992 USA CPU 2.07
|
||||
GAME(1992, lw3_207c, lw3_208, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Lethal Weapon 3 (Canada 2.07, display A2.06)", MACHINE_IS_SKELETON_MECHANICAL) // LW3 AUG 31, 1992 CANADA CPU 2.07
|
||||
GAME(1992, lw3_205, lw3_208, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Lethal Weapon 3 (USA 2.05, display A2.05)", MACHINE_IS_SKELETON_MECHANICAL) // LW3 JULY 30, 1992 USA CPU 2.05. DISPLAY VERSION- LETHAL WEAPON A2.05 8/14/1992
|
||||
GAME(1992, lw3_204e, lw3_208, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Lethal Weapon 3 (England 2.04, display A2.02)", MACHINE_IS_SKELETON_MECHANICAL) // LW3 JULY 30. 1992 ENGLAND CPU 2.04. DISPLAY VERSION LETHAL WEAPON A2.02 7/17/1992
|
||||
GAME(1992, lw3_203, lw3_208, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Lethal Weapon 3 (USA 2.03, display A2.04)", MACHINE_IS_SKELETON_MECHANICAL) // LW3 JULY 17, 1992 USA CPU 2.03. DISPLAY VERSION- LETHAL WEAPON A2.04 7/29/1992
|
||||
GAME(1992, lw3_200, lw3_208, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Lethal Weapon 3 (USA 2.00, display A2.04)", MACHINE_IS_SKELETON_MECHANICAL) // LW3 JUNE 16, 1992 USA CPU 2.00. DISPLAY VERSION- LETHAL WEAPON A2.04 7/29/1992
|
||||
GAME(1992, mj_130, 0, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Michael Jordan (1.30, display A1.03)", MACHINE_IS_SKELETON_MECHANICAL) // MICHAEL JORDAN V 1.30 11/4/92. DISPLAY VERSION- JORDAN A1.03 8/13/1993
|
||||
GAME(1992, trek_201, 0, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Star Trek 25th Anniversary (USA 2.01, display A1.09)", MACHINE_IS_SKELETON_MECHANICAL) // STARTREK 4/30/92 USA VER. 2.01. DISPLAY: STARTREK A1.09
|
||||
GAME(1992, trek_200, trek_201, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Star Trek 25th Anniversary (USA 2.00, display A1.09)", MACHINE_IS_SKELETON_MECHANICAL) // STARTREK 4/16/92 USA VER. 2.00
|
||||
GAME(1992, trek_120, trek_201, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Star Trek 25th Anniversary (USA 1.20, display A1.06)", MACHINE_IS_SKELETON_MECHANICAL) // STAR TREK 1/10 USA VER. 1.20. DISPLAY: STARTREK A1.06
|
||||
GAME(1992, trek_117, trek_201, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Star Trek 25th Anniversary (USA 1.17, display A1.09)", MACHINE_IS_SKELETON_MECHANICAL) // STAR TREK 12/9 USA VER. 1.17
|
||||
GAME(1992, trek_110, trek_201, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Star Trek 25th Anniversary (USA 1.10, display A1.06)", MACHINE_IS_SKELETON_MECHANICAL) // STAR TREK 11/14 USA VER. 1.10. DISPLAY: STARTREK A1.06
|
||||
GAME(1992, trek_110_a027, trek_201, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Star Trek 25th Anniversary (USA 1.10, display A0.27)", MACHINE_IS_SKELETON_MECHANICAL) // STAR TREK 11/14 USA VER. 1.10. DISPLAY: STARTREK A0.27
|
||||
GAME(1992, stwr_106, 0, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (Unofficial 1.06, display A1.05)", MACHINE_IS_SKELETON_MECHANICAL) // STAR WARS 2016 UNOFFICIAL 1.06. DISPLAY VERSION- STAR WARS A1.05 12/4/1992
|
||||
GAME(1992, stwr_106_s105, stwr_106, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (Unofficial 1.06, display S1.05)", MACHINE_IS_SKELETON_MECHANICAL) // DISPLAY VERSION- STAR WARS S1.05 12/4/1992
|
||||
GAME(1992, stwr_106_a046, stwr_106, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (Unofficial 1.06, display A0.46)", MACHINE_IS_SKELETON_MECHANICAL) // DISPLAY VERSION- STAR WARS A0.46 10/9/1992
|
||||
GAME(1992, stwr_104, stwr_106, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (USA 1.04, display A1.05)", MACHINE_IS_SKELETON_MECHANICAL) // STAR WARS USA CPU 1.04
|
||||
GAME(1992, stwr_103, stwr_106, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (USA 1.03, display A1.05)", MACHINE_IS_SKELETON_MECHANICAL) // STAR WARS USA CPU 1.03
|
||||
GAME(1992, stwr_103_a104, stwr_106, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (USA 1.03, display A1.04)", MACHINE_IS_SKELETON_MECHANICAL) // STAR WARS USA CPU 1.03. DISPLAY VERSION- STAR WARS A1.04 11/20/1992
|
||||
GAME(1992, stwr_102, stwr_106, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (USA 1.02, display A1.05)", MACHINE_IS_SKELETON_MECHANICAL) // STAR WARS USA CPU 1.02
|
||||
GAME(1992, stwr_102e, stwr_106, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (England 1.02, display A1.05)", MACHINE_IS_SKELETON_MECHANICAL) // STAR WARS ENGLAND CPU 1.02
|
||||
GAME(1992, stwr_101, stwr_106, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (USA 1.01, display A1.02)", MACHINE_IS_SKELETON_MECHANICAL) // STAR WARS USA CPU 1.01. DISPLAY VERSION- STAR WARS A1.02 10/29/1992
|
||||
GAME(1992, stwr_101g, stwr_106, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (German 1.01, display G1.02)", MACHINE_IS_SKELETON_MECHANICAL) // STAR WARS GERMAN CPU 1.01. DISPLAY VERSION- STAR WARS G1.02 29/10/1992
|
||||
GAME(1993, tftc_303, 0, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Tales From the Crypt (USA 3.03, display A3.01)", MACHINE_IS_SKELETON_MECHANICAL) // TFTC FEBRUARY 22,1994 USA CPU 3.03. DISPLAY VERSION- CRYPT A3.01 12/28/1993
|
||||
GAME(1993, tftc_302, tftc_303, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Tales From the Crypt (Dutch 3.02, display A3.01)", MACHINE_IS_SKELETON_MECHANICAL) // TFTC JANUARY 06, 1994 DUTCH CPU 3.02
|
||||
GAME(1993, tftc_300, tftc_303, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Tales From the Crypt (USA 3.00, display A3.00)", MACHINE_IS_SKELETON_MECHANICAL) // TFTC DECEMBER 15, 1993 USA CPU 3.00. DISPLAY VERSION- CRYPT A3.00 12/16/1993
|
||||
GAME(1993, tftc_200, tftc_303, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Tales From the Crypt (USA 2.00, display A2.00)", MACHINE_IS_SKELETON_MECHANICAL) // TFTC DECEMBER 03, 1993 USA CPU 2.00. DISPLAY VERSION- CRYPT A2.00 12/3/1993
|
||||
GAME(1993, tftc_104s, tftc_303, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "Tales From the Crypt (USA 1.04, display L1.03)", MACHINE_IS_SKELETON_MECHANICAL) // TFTC NOVEMBER 19, 1993 USA CPU 1.04. DISPLAY VERSION- CRYPT L1.03 11/11/1993
|
||||
GAME(1991, tmnt_104, 0, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Teenage Mutant Ninja Turtles (USA 1.04, display A1.04)", MACHINE_IS_SKELETON_MECHANICAL) // T.M.N.T. USA 1.04. DISPLAY VER: TMNT A1.04
|
||||
GAME(1991, tmnt_104g, tmnt_104, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Teenage Mutant Ninja Turtles (Germany 1.04, display A1.04)", MACHINE_IS_SKELETON_MECHANICAL) // T.M.N.T. GERMANY 1.04.
|
||||
GAME(1991, tmnt_103, tmnt_104, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Teenage Mutant Ninja Turtles (1.03)", MACHINE_IS_SKELETON_MECHANICAL) // T.M.N.T. A 1.03
|
||||
GAME(1991, tmnt_101, tmnt_104, de_3_dmd1, de_3, de_3_state, empty_init, ROT0, "Data East", "Teenage Mutant Ninja Turtles (1.01)", MACHINE_IS_SKELETON_MECHANICAL) // T.M.N.T. A 1.01
|
||||
GAME(1994, tomy_400, 0, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "The Who's Tommy Pinball Wizard (USA 4.00, display A4.00)", MACHINE_IS_SKELETON_MECHANICAL) // TOMMY APRIL 6, 1994 USA CPU 4.00. DISPLAY VERSION- TOMMY A4.00 MAY 5, 1994
|
||||
GAME(1994, tomy_300h, tomy_400, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "The Who's Tommy Pinball Wizard (Dutch 3.00, display A3.00)", MACHINE_IS_SKELETON_MECHANICAL) // TOMMY FEBRUARY 16, 1994 DUTCH CPU 3.00. DISPLAY VERSION- TOMMY A3.00 FEBRUARY 15, 1994
|
||||
GAME(1994, tomy_102, tomy_400, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "The Who's Tommy Pinball Wizard (USA 1.02, display A3.00)", MACHINE_IS_SKELETON_MECHANICAL) // TOMMY JANUARY 26, 1994 USA CPU 1.02. DISPLAY VERSION- TOMMY A3.00 FEBRUARY 15, 1994
|
||||
GAME(1994, wwfr_106, 0, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "WWF Royal Rumble (USA 1.06, display A1.02)", MACHINE_IS_SKELETON_MECHANICAL) // RUMBLIN' AN' A TUMBLIN' WWF WRESTLING AUG. 01, 1994 USA CPU 1.06. DISPLAY VERSION- WWF A1.02 JUNE 29, 1994
|
||||
GAME(1994, wwfr_103, wwfr_106, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "WWF Royal Rumble (USA 1.03, display A1.01)", MACHINE_IS_SKELETON_MECHANICAL) // RUMBLIN' AN' A TUMBLIN' WWF WRESTLING APR. 28, 1994 USA CPU 1.03. DISPLAY VERSION- WWF A1.01 APRIL 14, 1994
|
||||
GAME(1994, wwfr_103f, wwfr_106, de_3_dmd2, de_3, de_3_state, empty_init, ROT0, "Data East", "WWF Royal Rumble (French 1.03, display F1.01)", MACHINE_IS_SKELETON_MECHANICAL) // RUMBLIN' AN' A TUMBLIN' WWF WRESTLING APR. 28, 1994 FRENCH CPU 1.03. DISPLAY VERSION- WWF F1.01 APRIL 14, 1994
|
||||
GAME(1993, rab_320, 0, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Adventures of Rocky and Bullwinkle and Friends (USA 3.20, display A3.00)", MACHINE_IS_SKELETON_MECHANICAL) // ROCKY+BULLWINKLE AUGUST 12, 1993 USA CPU 3.20. DISPLAY VERSION- BULLWINKLE A3.00 5/24/1993
|
||||
GAME(1993, rab_130, rab_320, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Adventures of Rocky and Bullwinkle and Friends (USA 1.30, display A1.30)", MACHINE_IS_SKELETON_MECHANICAL) // ROCKY+BULLWINKLE APRIL 1, 1993 USA CPU 1.30. DISPLAY VERSION- BULLWINKLE A1.30 4/1/1993
|
||||
GAME(1993, rab_103s, rab_320, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Adventures of Rocky and Bullwinkle and Friends (USA 1.03, display S1.03)", MACHINE_IS_SKELETON_MECHANICAL) // ROCKY+BULLWINKLE FEBRUARY 3, 1993 USA CPU 1.03. DISPLAY VERSION- BULLWINKLE S1.03 2/2/1993
|
||||
GAME(1992, aar_101, 0, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Aaron Spelling (1.01)", MACHINE_IS_SKELETON_MECHANICAL) // AARON SPELLING V1.01 12/23/92
|
||||
GAME(1991, btmn_106, 0, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Batman (USA 1.06, display A1.02)", MACHINE_IS_SKELETON_MECHANICAL) // BATMAN USA 1.06. DISP VER: BATMAN A1.02
|
||||
GAME(1991, btmn_103, btmn_106, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Batman (USA 1.03, display A1.02)", MACHINE_IS_SKELETON_MECHANICAL) // BATMAN USA 1.03. DISP VER: BATMAN A1.02
|
||||
GAME(1991, btmn_103f, btmn_106, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Batman (France 1.03, display F1.03)", MACHINE_IS_SKELETON_MECHANICAL) // BATMAN FRANCE 1.03. DISP VER: BATMAN F1.03
|
||||
GAME(1991, btmn_103g, btmn_106, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Batman (Germany 1.03, display G1.04)", MACHINE_IS_SKELETON_MECHANICAL) // BATMAN GERMANY 1.03. DISP VER: BATMAN G1.04
|
||||
GAME(1991, btmn_101, btmn_106, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Batman (USA 1.01, display A1.02)", MACHINE_IS_SKELETON_MECHANICAL) // BATMAN USA 1.01
|
||||
GAME(1991, ckpt_a17, 0, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Checkpoint (1.7)", MACHINE_IS_SKELETON_MECHANICAL) // CP80 3/6/91
|
||||
GAME(1994, gnr_300, 0, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Guns N Roses (USA 3.00, display A3.00)", MACHINE_IS_SKELETON_MECHANICAL) // GUNS-N-ROSES AUGUST 21, 1994 USA CPU 3.00. DISPLAY VERSION- GNR A3.00 AUGUST 16, 1994
|
||||
GAME(1994, gnr_300f, gnr_300, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Guns N Roses (French 3.00, display F3.00)", MACHINE_IS_SKELETON_MECHANICAL) // GUNS-N-ROSES AUGUST 21, 1994 FRENCH CPU 3.00. DISPLAY VERSION- GNR F3.00 AUGUST 16, 1994
|
||||
GAME(1994, gnr_300d, gnr_300, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Guns N Roses (Dutch 3.00, display A3.00)", MACHINE_IS_SKELETON_MECHANICAL) // GUNS-N-ROSES AUGUST 21, 1994 DUTCH CPU 3.00. DISPLAY VERSION- GNR A3.00 AUGUST 16, 1994
|
||||
GAME(1994, gnr_200, gnr_300, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Guns N Roses (USA 2.00, display A3.00)", MACHINE_IS_SKELETON_MECHANICAL) // GUNS-N-ROSES JULY 5, 1994 USA CPU 2.00
|
||||
GAME(1992, hook_408, 0, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Hook (USA 4.08, display A4.01)", MACHINE_IS_SKELETON_MECHANICAL) // HOOK USA 4.08. DISPLAY: HOOK A4.01
|
||||
GAME(1992, hook_404, hook_408, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Hook (USA 4.04, display A4.01)", MACHINE_IS_SKELETON_MECHANICAL) // HOOK USA 4.04
|
||||
GAME(1992, hook_401, hook_408, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Hook (USA 4.01, display A4.01)", MACHINE_IS_SKELETON_MECHANICAL) // HOOK USA 4.01
|
||||
GAME(1992, hook_401_p, hook_408, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Hook (USA 4.01 with prototype sound, display A4.01)", MACHINE_IS_SKELETON_MECHANICAL) // HOOK USA 4.01
|
||||
GAME(1992, hook_e406, hook_408, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Hook (UK 4.06, display A4.01)", MACHINE_IS_SKELETON_MECHANICAL) // HOOK U.K. 4.06
|
||||
GAME(1993, jupk_513, 0, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Jurassic Park (USA 5.13, display A5.10)", MACHINE_IS_SKELETON_MECHANICAL) // JURASSIC PARK SEP. 28, 1993 USA CPU 5.13. DISPLAY VERSION- JURASSIC A5.10 8/24/1993
|
||||
GAME(1993, jupk_501, jupk_513, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Jurassic Park (USA 5.01, display A5.01)", MACHINE_IS_SKELETON_MECHANICAL) // JURASSIC PARK JUNE 28, 1993 USA CPU 5.01. DISPLAY VERSION- JURASSIC A5.01 6/24/1993
|
||||
GAME(1993, jupk_501g, jupk_513, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Jurassic Park (USA 5.01 Germany, display G5.01)", MACHINE_IS_SKELETON_MECHANICAL) // JURASSIC PARK JUNE 28, 1993 USA CPU 5.01. DISPLAY VERSION- JURASSIC G5.01 6/24/1993
|
||||
GAME(1993, jupk_307, jupk_513, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Jurassic Park (USA 3.07, display A4.00)", MACHINE_IS_SKELETON_MECHANICAL) // JURASSIC PARK. MAY 25, 1993. USA CPU 3.05
|
||||
GAME(1993, jupk_305, jupk_513, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Jurassic Park (USA 3.05, display A4.00)", MACHINE_IS_SKELETON_MECHANICAL) // JURASSIC PARK. MAY 25, 1993. USA CPU 3.05
|
||||
GAME(1993, lah_112, 0, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Last Action Hero (USA 1.12, display A1.06)", MACHINE_IS_SKELETON_MECHANICAL) // LAST ACTION HERO NOV. 10, 1993 USA CPU 1.12. DISPLAY VERSION- ACTION HERO A1.06 11/11/1993
|
||||
GAME(1993, lah_110, lah_112, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Last Action Hero (USA 1.10, display A1.06)", MACHINE_IS_SKELETON_MECHANICAL) // LAST ACTION HERO OCT. 18, 1993 USA CPU 1.10
|
||||
GAME(1993, lah_xxx_s105, lah_112, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Last Action Hero (unknown CPU, display L1.05)", MACHINE_IS_SKELETON_MECHANICAL) // DISPLAY VERSION- ACTION HERO L1.05 11/11/1993
|
||||
GAME(1993, lah_108s, lah_112, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Last Action Hero (USA 1.08, display L1.04)", MACHINE_IS_SKELETON_MECHANICAL) // LAST ACTION HERO SEPT. 28, 1993 USA CPU 1.08. DISPLAY VERSION- ACTION HERO L1.04 9/5/1993
|
||||
GAME(1993, lah_107, lah_112, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Last Action Hero (USA 1.07, display A1.06)", MACHINE_IS_SKELETON_MECHANICAL) // LAST ACTION HERO SEPT. 22, 1993 USA CPU 1.07
|
||||
GAME(1993, lah_106c, lah_112, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Last Action Hero (Canada 1.06, display A1.04)", MACHINE_IS_SKELETON_MECHANICAL) // LAST ACTION HERO SEPT. 20, 1993 CANADA CPU 1.06. DISPLAY VERSION- ACTION HERO A1.04 9/5/1993
|
||||
GAME(1993, lah_104f, lah_112, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Last Action Hero (USA 1.04, display F1.01)", MACHINE_IS_SKELETON_MECHANICAL) // LAST ACTION HERO SEPT. 1, 1993 USA CPU 1.04. DISPLAY VERSION- ACTION HERO F1.01 8/18/1993
|
||||
GAME(1993, lah_104s, lah_112, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Last Action Hero (USA 1.04, display L1.02)", MACHINE_IS_SKELETON_MECHANICAL) // LAST ACTION HERO SEPT. 1, 1993 USA CPU 1.04. DISPLAY VERSION- ACTION HERO L1.02 8/30/1993
|
||||
GAME(1992, lw3_208, 0, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Lethal Weapon 3 (USA 2.08, display A2.06)", MACHINE_IS_SKELETON_MECHANICAL) // LW3 11/17/92 USA CPU 2.08. DISPLAY VERSION- LETHAL WEAPON A2.06 9/29/1992
|
||||
GAME(1992, lw3_207, lw3_208, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Lethal Weapon 3 (USA 2.07, display A2.06)", MACHINE_IS_SKELETON_MECHANICAL) // LW3 AUG 31, 1992 USA CPU 2.07
|
||||
GAME(1992, lw3_207c, lw3_208, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Lethal Weapon 3 (Canada 2.07, display A2.06)", MACHINE_IS_SKELETON_MECHANICAL) // LW3 AUG 31, 1992 CANADA CPU 2.07
|
||||
GAME(1992, lw3_205, lw3_208, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Lethal Weapon 3 (USA 2.05, display A2.05)", MACHINE_IS_SKELETON_MECHANICAL) // LW3 JULY 30, 1992 USA CPU 2.05. DISPLAY VERSION- LETHAL WEAPON A2.05 8/14/1992
|
||||
GAME(1992, lw3_204e, lw3_208, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Lethal Weapon 3 (England 2.04, display A2.02)", MACHINE_IS_SKELETON_MECHANICAL) // LW3 JULY 30. 1992 ENGLAND CPU 2.04. DISPLAY VERSION LETHAL WEAPON A2.02 7/17/1992
|
||||
GAME(1992, lw3_203, lw3_208, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Lethal Weapon 3 (USA 2.03, display A2.04)", MACHINE_IS_SKELETON_MECHANICAL) // LW3 JULY 17, 1992 USA CPU 2.03. DISPLAY VERSION- LETHAL WEAPON A2.04 7/29/1992
|
||||
GAME(1992, lw3_200, lw3_208, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Lethal Weapon 3 (USA 2.00, display A2.04)", MACHINE_IS_SKELETON_MECHANICAL) // LW3 JUNE 16, 1992 USA CPU 2.00. DISPLAY VERSION- LETHAL WEAPON A2.04 7/29/1992
|
||||
GAME(1992, mj_130, 0, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Michael Jordan (1.30, display A1.03)", MACHINE_IS_SKELETON_MECHANICAL) // MICHAEL JORDAN V 1.30 11/4/92. DISPLAY VERSION- JORDAN A1.03 8/13/1993
|
||||
GAME(1992, trek_201, 0, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Star Trek 25th Anniversary (USA 2.01, display A1.09)", MACHINE_IS_SKELETON_MECHANICAL) // STARTREK 4/30/92 USA VER. 2.01. DISPLAY: STARTREK A1.09
|
||||
GAME(1992, trek_200, trek_201, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Star Trek 25th Anniversary (USA 2.00, display A1.09)", MACHINE_IS_SKELETON_MECHANICAL) // STARTREK 4/16/92 USA VER. 2.00
|
||||
GAME(1992, trek_120, trek_201, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Star Trek 25th Anniversary (USA 1.20, display A1.06)", MACHINE_IS_SKELETON_MECHANICAL) // STAR TREK 1/10 USA VER. 1.20. DISPLAY: STARTREK A1.06
|
||||
GAME(1992, trek_117, trek_201, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Star Trek 25th Anniversary (USA 1.17, display A1.09)", MACHINE_IS_SKELETON_MECHANICAL) // STAR TREK 12/9 USA VER. 1.17
|
||||
GAME(1992, trek_110, trek_201, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Star Trek 25th Anniversary (USA 1.10, display A1.06)", MACHINE_IS_SKELETON_MECHANICAL) // STAR TREK 11/14 USA VER. 1.10. DISPLAY: STARTREK A1.06
|
||||
GAME(1992, trek_110_a027, trek_201, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Star Trek 25th Anniversary (USA 1.10, display A0.27)", MACHINE_IS_SKELETON_MECHANICAL) // STAR TREK 11/14 USA VER. 1.10. DISPLAY: STARTREK A0.27
|
||||
GAME(1992, stwr_106, 0, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (Unofficial 1.06, display A1.05)", MACHINE_IS_SKELETON_MECHANICAL) // STAR WARS 2016 UNOFFICIAL 1.06. DISPLAY VERSION- STAR WARS A1.05 12/4/1992
|
||||
GAME(1992, stwr_106_s105, stwr_106, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (Unofficial 1.06, display S1.05)", MACHINE_IS_SKELETON_MECHANICAL) // DISPLAY VERSION- STAR WARS S1.05 12/4/1992
|
||||
GAME(1992, stwr_106_a046, stwr_106, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (Unofficial 1.06, display A0.46)", MACHINE_IS_SKELETON_MECHANICAL) // DISPLAY VERSION- STAR WARS A0.46 10/9/1992
|
||||
GAME(1992, stwr_104, stwr_106, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (USA 1.04, display A1.05)", MACHINE_IS_SKELETON_MECHANICAL) // STAR WARS USA CPU 1.04
|
||||
GAME(1992, stwr_103, stwr_106, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (USA 1.03, display A1.05)", MACHINE_IS_SKELETON_MECHANICAL) // STAR WARS USA CPU 1.03
|
||||
GAME(1992, stwr_103_a104, stwr_106, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (USA 1.03, display A1.04)", MACHINE_IS_SKELETON_MECHANICAL) // STAR WARS USA CPU 1.03. DISPLAY VERSION- STAR WARS A1.04 11/20/1992
|
||||
GAME(1992, stwr_102, stwr_106, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (USA 1.02, display A1.05)", MACHINE_IS_SKELETON_MECHANICAL) // STAR WARS USA CPU 1.02
|
||||
GAME(1992, stwr_102e, stwr_106, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (England 1.02, display A1.05)", MACHINE_IS_SKELETON_MECHANICAL) // STAR WARS ENGLAND CPU 1.02
|
||||
GAME(1992, stwr_101, stwr_106, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (USA 1.01, display A1.02)", MACHINE_IS_SKELETON_MECHANICAL) // STAR WARS USA CPU 1.01. DISPLAY VERSION- STAR WARS A1.02 10/29/1992
|
||||
GAME(1992, stwr_101g, stwr_106, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Star Wars (German 1.01, display G1.02)", MACHINE_IS_SKELETON_MECHANICAL) // STAR WARS GERMAN CPU 1.01. DISPLAY VERSION- STAR WARS G1.02 29/10/1992
|
||||
GAME(1993, tftc_303, 0, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Tales From the Crypt (USA 3.03, display A3.01)", MACHINE_IS_SKELETON_MECHANICAL) // TFTC FEBRUARY 22,1994 USA CPU 3.03. DISPLAY VERSION- CRYPT A3.01 12/28/1993
|
||||
GAME(1993, tftc_302, tftc_303, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Tales From the Crypt (Dutch 3.02, display A3.01)", MACHINE_IS_SKELETON_MECHANICAL) // TFTC JANUARY 06, 1994 DUTCH CPU 3.02
|
||||
GAME(1993, tftc_300, tftc_303, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Tales From the Crypt (USA 3.00, display A3.00)", MACHINE_IS_SKELETON_MECHANICAL) // TFTC DECEMBER 15, 1993 USA CPU 3.00. DISPLAY VERSION- CRYPT A3.00 12/16/1993
|
||||
GAME(1993, tftc_200, tftc_303, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Tales From the Crypt (USA 2.00, display A2.00)", MACHINE_IS_SKELETON_MECHANICAL) // TFTC DECEMBER 03, 1993 USA CPU 2.00. DISPLAY VERSION- CRYPT A2.00 12/3/1993
|
||||
GAME(1993, tftc_104s, tftc_303, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "Tales From the Crypt (USA 1.04, display L1.03)", MACHINE_IS_SKELETON_MECHANICAL) // TFTC NOVEMBER 19, 1993 USA CPU 1.04. DISPLAY VERSION- CRYPT L1.03 11/11/1993
|
||||
GAME(1991, tmnt_104, 0, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Teenage Mutant Ninja Turtles (USA 1.04, display A1.04)", MACHINE_IS_SKELETON_MECHANICAL) // T.M.N.T. USA 1.04. DISPLAY VER: TMNT A1.04
|
||||
GAME(1991, tmnt_104g, tmnt_104, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Teenage Mutant Ninja Turtles (Germany 1.04, display A1.04)", MACHINE_IS_SKELETON_MECHANICAL) // T.M.N.T. GERMANY 1.04.
|
||||
GAME(1991, tmnt_103, tmnt_104, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Teenage Mutant Ninja Turtles (1.03)", MACHINE_IS_SKELETON_MECHANICAL) // T.M.N.T. A 1.03
|
||||
GAME(1991, tmnt_101, tmnt_104, de_3_dmd1, de3, de_3_state, empty_init, ROT0, "Data East", "Teenage Mutant Ninja Turtles (1.01)", MACHINE_IS_SKELETON_MECHANICAL) // T.M.N.T. A 1.01
|
||||
GAME(1994, tomy_400, 0, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "The Who's Tommy Pinball Wizard (USA 4.00, display A4.00)", MACHINE_IS_SKELETON_MECHANICAL) // TOMMY APRIL 6, 1994 USA CPU 4.00. DISPLAY VERSION- TOMMY A4.00 MAY 5, 1994
|
||||
GAME(1994, tomy_300h, tomy_400, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "The Who's Tommy Pinball Wizard (Dutch 3.00, display A3.00)", MACHINE_IS_SKELETON_MECHANICAL) // TOMMY FEBRUARY 16, 1994 DUTCH CPU 3.00. DISPLAY VERSION- TOMMY A3.00 FEBRUARY 15, 1994
|
||||
GAME(1994, tomy_102, tomy_400, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "The Who's Tommy Pinball Wizard (USA 1.02, display A3.00)", MACHINE_IS_SKELETON_MECHANICAL) // TOMMY JANUARY 26, 1994 USA CPU 1.02. DISPLAY VERSION- TOMMY A3.00 FEBRUARY 15, 1994
|
||||
GAME(1994, wwfr_106, 0, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "WWF Royal Rumble (USA 1.06, display A1.02)", MACHINE_IS_SKELETON_MECHANICAL) // RUMBLIN' AN' A TUMBLIN' WWF WRESTLING AUG. 01, 1994 USA CPU 1.06. DISPLAY VERSION- WWF A1.02 JUNE 29, 1994
|
||||
GAME(1994, wwfr_103, wwfr_106, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "WWF Royal Rumble (USA 1.03, display A1.01)", MACHINE_IS_SKELETON_MECHANICAL) // RUMBLIN' AN' A TUMBLIN' WWF WRESTLING APR. 28, 1994 USA CPU 1.03. DISPLAY VERSION- WWF A1.01 APRIL 14, 1994
|
||||
GAME(1994, wwfr_103f, wwfr_106, de_3_dmd2, de3, de_3_state, empty_init, ROT0, "Data East", "WWF Royal Rumble (French 1.03, display F1.01)", MACHINE_IS_SKELETON_MECHANICAL) // RUMBLIN' AN' A TUMBLIN' WWF WRESTLING APR. 28, 1994 FRENCH CPU 1.03. DISPLAY VERSION- WWF F1.01 APRIL 14, 1994
|
||||
|
@ -8,27 +8,32 @@ 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
|
||||
Maverick the Movie 5031 Hold CDE, hit 1 Hold CDE, hit F
|
||||
Baywatch 5033 Hold BCD, hit 1 Hold BCD, hit F
|
||||
Mary Shelley's Frankenstein 5036 Hold ABC, hit 1 Hold ABC, hit F
|
||||
Batman Forever 5038 Hold CDEF, hit 1 CDEF
|
||||
Derby Daze (not emulated) 5039
|
||||
Cut the Cheese (redemption) 5048
|
||||
Cut the Cheese (redemption) 5048 6 INP17-40 (40=toilet)
|
||||
Roach Racers (not emulated) 5054
|
||||
|
||||
Status:
|
||||
- All pinball machines are playable
|
||||
|
||||
ToDo:
|
||||
- Cut the Cheese: screen goes blank after a short while
|
||||
- Test fixture: nothing to see
|
||||
- Outputs
|
||||
- Mechanical sounds
|
||||
|
||||
*********************************************************************************************************************/
|
||||
#include "emu.h"
|
||||
#include "machine/decopincpu.h"
|
||||
#include "machine/genpin.h"
|
||||
#include "video/decodmd3.h"
|
||||
#include "audio/decobsmt.h"
|
||||
#include "machine/genpin.h"
|
||||
#include "machine/nvram.h"
|
||||
|
||||
extern const char layout_pinball[];
|
||||
namespace {
|
||||
|
||||
class de_3b_state : public genpin_class
|
||||
{
|
||||
public:
|
||||
@ -36,6 +41,7 @@ public:
|
||||
: genpin_class(mconfig, type, tag)
|
||||
, m_decobsmt(*this, "decobsmt")
|
||||
, m_dmdtype3(*this, "decodmd")
|
||||
, m_io_keyboard(*this, "X%d", 0U)
|
||||
{ }
|
||||
|
||||
void detest(machine_config &config);
|
||||
@ -45,6 +51,7 @@ private:
|
||||
// devices
|
||||
optional_device<decobsmt_device> m_decobsmt;
|
||||
optional_device<decodmd_type3_device> m_dmdtype3;
|
||||
required_ioport_array<8> m_io_keyboard;
|
||||
|
||||
void lamp0_w(uint8_t data) { }
|
||||
void lamp1_w(uint8_t data) { }
|
||||
@ -62,109 +69,115 @@ private:
|
||||
void lamps_w(offs_t offset, uint8_t data);
|
||||
|
||||
// driver_device overrides
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
uint8_t m_row = 0U;
|
||||
uint8_t m_sound_data = 0U;
|
||||
};
|
||||
|
||||
|
||||
static INPUT_PORTS_START( de_3b )
|
||||
PORT_START("INP0")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
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_COIN4 )
|
||||
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_START2 ) // Buy extra ball on some machines
|
||||
|
||||
PORT_START("INP1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT )
|
||||
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_KEYPAD )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD )
|
||||
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("INP2")
|
||||
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("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("INP4")
|
||||
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("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("INP8")
|
||||
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("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("INP10")
|
||||
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("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("INP20")
|
||||
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("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("INP40")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LALT)
|
||||
PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("INP80")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_START("X7")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("INP57")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("INP58")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("INP59")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("INP60")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("INP61")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME("INP62")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ASTERISK) PORT_NAME("INP63")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("INP64")
|
||||
INPUT_PORTS_END
|
||||
|
||||
uint8_t de_3b_state::switch_r()
|
||||
{
|
||||
char kbdrow[8];
|
||||
sprintf(kbdrow,"INP%X",m_row);
|
||||
return ~ioport(kbdrow)->read();
|
||||
u8 data = 0;
|
||||
if (m_row < 0x81)
|
||||
for (u8 i = 0; i < 8; i++)
|
||||
if (BIT(m_row, i))
|
||||
data |= m_io_keyboard[i]->read();
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
void de_3b_state::switch_w(uint8_t data)
|
||||
{
|
||||
int x;
|
||||
|
||||
for(x=0;x<8;x++)
|
||||
{
|
||||
if(data & (1<<x))
|
||||
break;
|
||||
}
|
||||
m_row = data & (1<<x);
|
||||
m_row = data;
|
||||
}
|
||||
|
||||
void de_3b_state::sound_w(uint8_t data)
|
||||
{
|
||||
m_sound_data = data;
|
||||
if(m_sound_data != 0xfe)
|
||||
m_decobsmt->bsmt_comms_w(m_sound_data);
|
||||
if(data != 0xfe)
|
||||
m_decobsmt->bsmt_comms_w(data);
|
||||
}
|
||||
|
||||
uint8_t de_3b_state::dmd_status_r()
|
||||
@ -176,7 +189,7 @@ void de_3b_state::pia2c_pa_w(uint8_t data)
|
||||
{
|
||||
/* DMD data */
|
||||
m_dmdtype3->data_w(data);
|
||||
logerror("DMD: Data write %02x\n", data);
|
||||
//logerror("DMD: Data write %02x\n", data);
|
||||
}
|
||||
|
||||
uint8_t de_3b_state::pia2c_pb_r()
|
||||
@ -188,7 +201,7 @@ void de_3b_state::pia2c_pb_w(uint8_t data)
|
||||
{
|
||||
/* DMD ctrl */
|
||||
m_dmdtype3->ctrl_w(data);
|
||||
logerror("DMD: Control write %02x\n", data);
|
||||
//logerror("DMD: Control write %02x\n", data);
|
||||
}
|
||||
uint8_t de_3b_state::display_r(offs_t offset)
|
||||
{
|
||||
@ -197,7 +210,6 @@ uint8_t de_3b_state::display_r(offs_t offset)
|
||||
switch(offset)
|
||||
{
|
||||
case 0:
|
||||
// ret = pia28_w7_r();
|
||||
break;
|
||||
case 3:
|
||||
ret = pia2c_pb_r();
|
||||
@ -212,10 +224,8 @@ void de_3b_state::display_w(offs_t offset, uint8_t data)
|
||||
switch(offset)
|
||||
{
|
||||
case 0:
|
||||
// dig0_w(data);
|
||||
break;
|
||||
case 1:
|
||||
// dig1_w(data);
|
||||
break;
|
||||
case 2:
|
||||
pia2c_pa_w(data);
|
||||
@ -224,7 +234,6 @@ void de_3b_state::display_w(offs_t offset, uint8_t data)
|
||||
pia2c_pb_w(data);
|
||||
break;
|
||||
case 4:
|
||||
// pia34_pa_w(data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -242,10 +251,19 @@ void de_3b_state::lamps_w(offs_t offset, uint8_t data)
|
||||
}
|
||||
}
|
||||
|
||||
void de_3b_state::machine_start()
|
||||
{
|
||||
genpin_class::machine_start();
|
||||
|
||||
save_item(NAME(m_row));
|
||||
}
|
||||
|
||||
void de_3b_state::machine_reset()
|
||||
{
|
||||
genpin_class::machine_reset();
|
||||
}
|
||||
|
||||
|
||||
void de_3b_state::de_3b(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
@ -700,6 +718,7 @@ ROM_START(detest)
|
||||
ROM_REGION(0x1000000, "bsmt", ROMREGION_ERASE00)
|
||||
ROM_END
|
||||
|
||||
} // Anonymous namespace
|
||||
|
||||
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)
|
||||
|
@ -2,26 +2,26 @@
|
||||
// copyright-holders:Wilbert Pol
|
||||
/***************************************************************************
|
||||
|
||||
PHUNSY (Philipse Universal System)
|
||||
PHUNSY (Philipse Universal System)
|
||||
|
||||
2010-11-04 Skeleton driver.
|
||||
2012-05-24 Cassette added.
|
||||
2014-01-13 Quickload added.
|
||||
2010-11-04 Skeleton driver.
|
||||
2012-05-24 Cassette added.
|
||||
2014-01-13 Quickload added.
|
||||
|
||||
http://www.tubedata.info/phunsy/index.html
|
||||
http://www.tubedata.info/phunsy/index.html
|
||||
|
||||
Baud Rate ~ 6000 baud
|
||||
W command to save data, eg 800-8FFW
|
||||
R command to read data, eg 1100R to load the file at 1100,
|
||||
or R to load the file where it came from.
|
||||
The tape must already be playing the leader when you press the Enter
|
||||
key, or it errors immediately.
|
||||
Baud Rate ~ 6000 baud
|
||||
W command to save data, eg 800-8FFW
|
||||
R command to read data, eg 1100R to load the file at 1100,
|
||||
or R to load the file where it came from.
|
||||
The tape must already be playing the leader when you press the Enter
|
||||
key, or it errors immediately.
|
||||
|
||||
Rom banking (in U bank):
|
||||
0U: RAM
|
||||
1U: MDCR program
|
||||
2U: Disassembler
|
||||
3U: Label handler
|
||||
Rom banking (in U bank):
|
||||
0U: RAM
|
||||
1U: MDCR program
|
||||
2U: Disassembler
|
||||
3U: Label handler
|
||||
|
||||
|
||||
****************************************************************************/
|
||||
@ -71,8 +71,8 @@ private:
|
||||
void phunsy_io(address_map &map);
|
||||
void phunsy_mem(address_map &map);
|
||||
|
||||
uint8_t m_data_out;
|
||||
uint8_t m_keyboard_input;
|
||||
uint8_t m_data_out = 0U;
|
||||
uint8_t m_keyboard_input = 0U;
|
||||
virtual void machine_reset() override;
|
||||
required_device<s2650_device> m_maincpu;
|
||||
required_device<speaker_sound_device> m_speaker;
|
||||
|
@ -153,7 +153,7 @@ static INPUT_PORTS_START( s11 )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Audio Diag") PORT_CODE(KEYCODE_9_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s11_state, audio_nmi, 1)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s11_state, main_nmi, 1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Advance") PORT_CODE(KEYCODE_1_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_6_PAD) PORT_TOGGLE
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_2_PAD) PORT_TOGGLE
|
||||
PORT_CONFNAME( 0x10, 0x10, "Language" )
|
||||
PORT_CONFSETTING( 0x00, "German" )
|
||||
PORT_CONFSETTING( 0x10, "English" )
|
||||
|
@ -126,7 +126,7 @@ static INPUT_PORTS_START( s11a )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Audio Diag") PORT_CODE(KEYCODE_9_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s11a_state, audio_nmi, 1)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s11a_state, main_nmi, 1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Advance") PORT_CODE(KEYCODE_1_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_6_PAD) PORT_TOGGLE
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_2_PAD) PORT_TOGGLE
|
||||
PORT_CONFNAME( 0x10, 0x10, "Language" )
|
||||
PORT_CONFSETTING( 0x00, "German" )
|
||||
PORT_CONFSETTING( 0x10, "English" )
|
||||
|
@ -148,7 +148,7 @@ static INPUT_PORTS_START( s11b )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Audio Diag") PORT_CODE(KEYCODE_9_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s11b_state, audio_nmi, 1)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s11b_state, main_nmi, 1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Advance") PORT_CODE(KEYCODE_1_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_6_PAD) PORT_TOGGLE
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_2_PAD) PORT_TOGGLE
|
||||
PORT_CONFNAME( 0x10, 0x10, "Language" )
|
||||
PORT_CONFSETTING( 0x00, "German" )
|
||||
PORT_CONFSETTING( 0x10, "English" )
|
||||
|
@ -131,7 +131,7 @@ static INPUT_PORTS_START( s11c )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Audio Diag") PORT_CODE(KEYCODE_9_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s11b_state, audio_nmi, 1)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s11b_state, main_nmi, 1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Advance") PORT_CODE(KEYCODE_1_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_6_PAD) PORT_TOGGLE
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_2_PAD) PORT_TOGGLE
|
||||
PORT_CONFNAME( 0x10, 0x10, "Language" )
|
||||
PORT_CONFSETTING( 0x00, "German" )
|
||||
PORT_CONFSETTING( 0x10, "English" )
|
||||
|
@ -227,7 +227,7 @@ static INPUT_PORTS_START( s3 )
|
||||
PORT_START("DIAGS")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s3_state, main_nmi, 1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Advance") PORT_CODE(KEYCODE_1_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Manual/Auto") PORT_CODE(KEYCODE_6_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Manual/Auto") PORT_CODE(KEYCODE_2_PAD)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER_PAD)
|
||||
|
||||
PORT_START("DS1")
|
||||
|
@ -197,7 +197,7 @@ static INPUT_PORTS_START( s4 )
|
||||
PORT_START("DIAGS")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s4_state, main_nmi, 1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Advance") PORT_CODE(KEYCODE_1_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Manual/Auto") PORT_CODE(KEYCODE_6_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Manual/Auto") PORT_CODE(KEYCODE_2_PAD)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER_PAD)
|
||||
|
||||
PORT_START("DS1")
|
||||
|
@ -225,7 +225,7 @@ static INPUT_PORTS_START( s6 )
|
||||
PORT_START("DIAGS")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s6_state, main_nmi, 1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Advance") PORT_CODE(KEYCODE_1_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Manual/Auto") PORT_CODE(KEYCODE_6_PAD) PORT_TOGGLE
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Manual/Auto") PORT_CODE(KEYCODE_2_PAD) PORT_TOGGLE
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER_PAD)
|
||||
|
||||
PORT_START("DS1") // DS1 only 3 switches do anything
|
||||
|
@ -208,7 +208,7 @@ static INPUT_PORTS_START( s6a )
|
||||
PORT_START("DIAGS")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s6a_state, main_nmi, 1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Advance") PORT_CODE(KEYCODE_1_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Manual/Auto") PORT_CODE(KEYCODE_6_PAD) PORT_TOGGLE
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Manual/Auto") PORT_CODE(KEYCODE_2_PAD) PORT_TOGGLE
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER_PAD)
|
||||
|
||||
PORT_START("DS1") // DS1 only 3 switches do anything
|
||||
|
@ -247,9 +247,9 @@ static INPUT_PORTS_START( s7 )
|
||||
PORT_START("DIAGS")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s7_state, main_nmi, 1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Advance") PORT_CODE(KEYCODE_1_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Manual/Auto") PORT_CODE(KEYCODE_6_PAD) PORT_TOGGLE
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Manual/Auto") PORT_CODE(KEYCODE_2_PAD) PORT_TOGGLE
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER_PAD)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Coin Door") PORT_CODE(KEYCODE_2_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s7_state, diag_coin, 1) PORT_TOGGLE
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Coin Door") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, s7_state, diag_coin, 1) PORT_TOGGLE
|
||||
|
||||
PORT_START("DS1") // DS1 switches exist but do nothing
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
@ -204,7 +204,7 @@ static INPUT_PORTS_START( s8 )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Audio Diag") PORT_CODE(KEYCODE_9_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s8_state, audio_nmi, 1)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s8_state, main_nmi, 1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Advance") PORT_CODE(KEYCODE_1_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_6_PAD) PORT_TOGGLE
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_2_PAD) PORT_TOGGLE
|
||||
INPUT_PORTS_END
|
||||
|
||||
INPUT_CHANGED_MEMBER( s8_state::main_nmi )
|
||||
|
@ -147,7 +147,7 @@ static INPUT_PORTS_START( s8a )
|
||||
PORT_START("DIAGS")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s8a_state, main_nmi, 1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Advance") PORT_CODE(KEYCODE_1_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_6_PAD) PORT_TOGGLE
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_2_PAD) PORT_TOGGLE
|
||||
INPUT_PORTS_END
|
||||
|
||||
INPUT_CHANGED_MEMBER( s8a_state::main_nmi )
|
||||
|
@ -200,7 +200,7 @@ static INPUT_PORTS_START( s9 )
|
||||
PORT_START("DIAGS")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s9_state, main_nmi, 1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Advance") PORT_CODE(KEYCODE_1_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_6_PAD) PORT_TOGGLE
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_2_PAD) PORT_TOGGLE
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( sorcr )
|
||||
|
@ -23,7 +23,7 @@ Apollo 13 5044 Hold FG, hit 2 DFG
|
||||
Independence Day 5045 Hold FG. hit 1 DF
|
||||
X Files 5046 Hold FG, hit 1 then Shift DG
|
||||
Cut The Cheese Deluxe (Redemption) -- 1
|
||||
Titanic (Coin dropper) -- (unknown - diag says there's no coin inputs)
|
||||
Titanic (Coin dropper) -- (unknown)
|
||||
Wack-A-Doodle-Doo (Redemption) -- 1
|
||||
Lost World Jurassic Park 5053 Hold DEFG, hit 1 H A DEFG (it can be difficult to start or end a ball)
|
||||
Star Wars Trilogy Special Edition 5056 Hold FG, hit 1 DG
|
||||
|
@ -238,7 +238,7 @@ static INPUT_PORTS_START( s4 )
|
||||
PORT_START("DIAGS")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, shuffle_state, main_nmi, 1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Advance") PORT_CODE(KEYCODE_1_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Manual/Auto") PORT_CODE(KEYCODE_6_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Manual/Auto") PORT_CODE(KEYCODE_2_PAD)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER_PAD)
|
||||
|
||||
PORT_START("DS1")
|
||||
|
@ -49,10 +49,10 @@ void decocpu_type2_device::decocpu2_map(address_map &map)
|
||||
|
||||
static INPUT_PORTS_START( decocpu1 )
|
||||
PORT_START("DIAGS")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Audio Diag") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, decocpu_type1_device, audio_nmi, 1)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_F2) PORT_CHANGED_MEMBER(DEVICE_SELF, decocpu_type1_device, main_nmi, 1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Advance") PORT_CODE(KEYCODE_0)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_9) PORT_TOGGLE
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Audio Diag") PORT_CODE(KEYCODE_9_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, decocpu_type1_device, audio_nmi, 1)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, decocpu_type1_device, main_nmi, 1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Advance") PORT_CODE(KEYCODE_1_PAD)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_2_PAD) PORT_TOGGLE
|
||||
PORT_CONFNAME( 0x10, 0x10, "Language" )
|
||||
PORT_CONFSETTING( 0x00, "German" )
|
||||
PORT_CONFSETTING( 0x10, "English" )
|
||||
|
Loading…
Reference in New Issue
Block a user