wpc_flip1,wpc_flip2,wpc_an,wpc_dot: Added keycodes to start games.

This commit is contained in:
Robbbert 2022-02-03 01:16:21 +11:00
parent d51c4e8caa
commit ca85bac05f
9 changed files with 538 additions and 474 deletions

View File

@ -114,7 +114,7 @@ private:
DECLARE_READ_LINE_MEMBER(pia21_ca1_r); DECLARE_READ_LINE_MEMBER(pia21_ca1_r);
DECLARE_WRITE_LINE_MEMBER(pia21_ca2_w); DECLARE_WRITE_LINE_MEMBER(pia21_ca2_w);
DECLARE_WRITE_LINE_MEMBER(pia21_cb2_w) { } // enable solenoids DECLARE_WRITE_LINE_MEMBER(pia21_cb2_w) { } // enable solenoids
DECLARE_WRITE_LINE_MEMBER(pia24_cb2_w) { } // dummy to stop error log filling up DECLARE_WRITE_LINE_MEMBER(pia24_cb2_w) { m_io_outputs[16] = state; } // dummy to stop error log filling up
DECLARE_WRITE_LINE_MEMBER(pia28_ca2_w) { } // comma3&4 DECLARE_WRITE_LINE_MEMBER(pia28_ca2_w) { } // comma3&4
DECLARE_WRITE_LINE_MEMBER(pia28_cb2_w) { } // comma1&2 DECLARE_WRITE_LINE_MEMBER(pia28_cb2_w) { } // comma1&2
DECLARE_WRITE_LINE_MEMBER(pia_irq); DECLARE_WRITE_LINE_MEMBER(pia_irq);
@ -138,7 +138,7 @@ private:
required_device<pia6821_device> m_pia30; required_device<pia6821_device> m_pia30;
required_ioport_array<8> m_io_keyboard; required_ioport_array<8> m_io_keyboard;
output_finder<61> m_digits; output_finder<61> m_digits;
output_finder<80> m_io_outputs; // 16 solenoids + 64 lamps output_finder<86> m_io_outputs; // 22 solenoids + 64 lamps
}; };
void s8_state::main_map(address_map &map) void s8_state::main_map(address_map &map)
@ -201,7 +201,7 @@ static INPUT_PORTS_START( s8 )
PORT_START("X7") PORT_START("X7")
PORT_START("DIAGS") PORT_START("DIAGS")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Audio Diag") PORT_CODE(KEYCODE_7_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, s8_state, audio_nmi, 1) 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( 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( 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_6_PAD) PORT_TOGGLE
@ -258,7 +258,7 @@ void s8_state::lamp1_w(u8 data)
for (u8 i = 0; i < 8; i++) for (u8 i = 0; i < 8; i++)
if (BIT(data, i)) if (BIT(data, i))
for (u8 j = 0; j < 8; j++) for (u8 j = 0; j < 8; j++)
m_io_outputs[16U+i*8U+j] = BIT(m_lamp_data, j); m_io_outputs[22U+i*8U+j] = BIT(m_lamp_data, j);
} }
void s8_state::dig0_w(u8 data) void s8_state::dig0_w(u8 data)

View File

@ -80,9 +80,9 @@ private:
void switch_w(u8 data); void switch_w(u8 data);
DECLARE_READ_LINE_MEMBER(pia21_ca1_r); DECLARE_READ_LINE_MEMBER(pia21_ca1_r);
DECLARE_WRITE_LINE_MEMBER(pia21_cb2_w) { } // enable solenoids DECLARE_WRITE_LINE_MEMBER(pia21_cb2_w) { } // enable solenoids
DECLARE_WRITE_LINE_MEMBER(pia24_cb2_w) { } // dummy to stop error log filling up DECLARE_WRITE_LINE_MEMBER(pia24_cb2_w) { m_io_outputs[16] = state; } // not used
DECLARE_WRITE_LINE_MEMBER(pia28_ca2_w) { } // comma3&4 DECLARE_WRITE_LINE_MEMBER(pia28_ca2_w) { } // comma3&4 (not used)
DECLARE_WRITE_LINE_MEMBER(pia28_cb2_w) { } // comma1&2 DECLARE_WRITE_LINE_MEMBER(pia28_cb2_w) { } // comma1&2 (not used)
DECLARE_WRITE_LINE_MEMBER(pia_irq); DECLARE_WRITE_LINE_MEMBER(pia_irq);
void main_map(address_map &map); void main_map(address_map &map);
@ -101,7 +101,7 @@ private:
required_device<pia6821_device> m_pia30; required_device<pia6821_device> m_pia30;
required_ioport_array<8> m_io_keyboard; required_ioport_array<8> m_io_keyboard;
output_finder<61> m_digits; output_finder<61> m_digits;
output_finder<80> m_io_outputs; // 16 solenoids + 64 lamps output_finder<86> m_io_outputs; // 22 solenoids + 64 lamps
}; };
void s8a_state::main_map(address_map &map) void s8a_state::main_map(address_map &map)
@ -183,7 +183,7 @@ void s8a_state::lamp1_w(u8 data)
for (u8 i = 0; i < 8; i++) for (u8 i = 0; i < 8; i++)
if (BIT(data, i)) if (BIT(data, i))
for (u8 j = 0; j < 8; j++) for (u8 j = 0; j < 8; j++)
m_io_outputs[16U+i*8U+j] = BIT(m_lamp_data, j); m_io_outputs[22U+i*8U+j] = BIT(m_lamp_data, j);
} }
void s8a_state::dig0_w(u8 data) void s8a_state::dig0_w(u8 data)

View File

@ -1,16 +1,31 @@
// license:BSD-3-Clause // license:BSD-3-Clause
// copyright-holders:Olivier Galibert, Miodrag Milanovic // copyright-holders:Olivier Galibert, Miodrag Milanovic
/* /***************************************************************************************************
Williams WPC (Alpha Numeric) PINBALL
Williams WPC (Alpha Numeric)
Note: It is possible to get funhouse (fh_l3 at least) in-game by coining it up, then holding the following keys, Since NVRAM is not working, when it starts factory settings will be applied.
and pressing the start button, or else you get "PINBALL MISSING": Press F3, and wait for the game attract mode to commence.
W (right ball shooter, c6 r2)
E (right trough, c6 r3) Here are the key codes to enable play:
DEL (dummy jaw opto, c5 r1)
HOME (right outlane, c5 r2) Game NUM Start game End ball
END (right slingshot kicker, c5 r3) -----------------------------------------------------------------------------------------------
It's possible not all of these are strictly necessary to make it work. Dr Dude and his Excellent Ray 2016 0 = credit, 1 = start ET
Harley Davidson 20001 Hold BCD hit 1 BCD
The Machine: Bride of Pin-bot 50002 Hold EFG hit 1 EFG
Funhouse 50003 Jiggle []YZ Space together, hit 1 ]Right Del
Note for Dr Dude:
- This is a WMS prototype, and the inputs are different to the other games
- Credit buttons: S,B,W
- Waiting for Pinballs: 0
- Start: 1
- Slam Tilt: C
- Normal Tilt: Right Shift
Note for Funhouse:
- Pressing 6 keys at once is not fun, and you may have to try a few times.
TODO: replace the 8x8 pinball input matrix keymap by some sort of common TODO: replace the 8x8 pinball input matrix keymap by some sort of common
interface for the Williams system 6, 9, 10, 11/a/b/c and WPC; interface for the Williams system 6, 9, 10, 11/a/b/c and WPC;
@ -53,8 +68,11 @@
0x20-0x24). 0x20-0x24).
See machine/wpc.h See machine/wpc.h
TODO: (wpc in general) TODO: (wpc in general)
The /FIRQ signal from the WPC sound board is directly connected to the - Add NVRAM
- Outputs
- Mechanical sounds
- The /FIRQ signal from the WPC sound board is directly connected to the
MC68B09E maincpu, along with the /FIRQ signal generated from inside the MC68B09E maincpu, along with the /FIRQ signal generated from inside the
WPC ASIC itself (see machine/wpc.cpp and wpc.h) and needs to properly WPC ASIC itself (see machine/wpc.cpp and wpc.h) and needs to properly
handle both the 'external, unmaskable' version of the signal generated by handle both the 'external, unmaskable' version of the signal generated by
@ -65,7 +83,7 @@
The exact details of how this all works may not be documented publicly The exact details of how this all works may not be documented publicly
anywhere, so may require hardware tests and logic analysis to figure it anywhere, so may require hardware tests and logic analysis to figure it
out fully. out fully.
*/ **************************************************************************************************/
#include "emu.h" #include "emu.h"
@ -130,10 +148,10 @@ private:
void wpc_sound_s11_w(uint8_t data); void wpc_sound_s11_w(uint8_t data);
void wpc_rombank_w(uint8_t data); void wpc_rombank_w(uint8_t data);
uint16_t m_vblank_count; uint16_t m_vblank_count = 0U;
uint32_t m_irq_count; uint32_t m_irq_count = 0U;
uint8_t m_bankmask; uint8_t m_bankmask = 0U;
uint8_t m_ram[0x3000]; uint8_t m_ram[0x3000]{};
emu_timer* m_vblank_timer; emu_timer* m_vblank_timer;
emu_timer* m_irq_timer; emu_timer* m_irq_timer;
}; };
@ -149,98 +167,88 @@ void wpc_an_state::wpc_an_map(address_map &map)
} }
static INPUT_PORTS_START( wpc_an ) static INPUT_PORTS_START( wpc_an )
PORT_START("INP0") PORT_START("X0")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_RSHIFT) PORT_NAME("Right Flipper")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LSHIFT) PORT_NAME("Left Flipper")
PORT_START("INP1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LALT) // left flipper
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RALT) // right flipper
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_NAME("Tilt")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LCONTROL) // coin on dd_p06/dd_p7, otherwise unused? PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("INP15")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RCONTROL) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("INP16")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LSHIFT) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("INP17")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SPACE) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("INP18")
PORT_START("INP2") PORT_START("X1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_NAME("Slam Tilt")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_2_PAD) PORT_TOGGLE PORT_NAME("Coin Door")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Ticket Dispenser")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) // always closed PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) // always closed
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("INP25")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("INP26")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("INP27")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("INP28")
PORT_START("INP4") PORT_START("X2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("INP31")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("INP32")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("INP33")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("INP34")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("INP35")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("INP36")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("INP37")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("INP38")
PORT_START("INP8") PORT_START("X3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("INP41")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("INP42")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP43")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP44")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP45")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP46")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP47")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("INP48")
PORT_START("INP10") PORT_START("X4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP51")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP52")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SPACE) PORT_NAME("INP53")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP54")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP55")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP56")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_UP) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("INP57")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP58")
PORT_START("INP20") PORT_START("X5")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DEL) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP61")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_HOME) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP62")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_END) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("INP63")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_PGUP) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("INP64")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_PGDN) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("INP65")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_0_PAD) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("INP66")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DEL_PAD) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP67")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER_PAD) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) PORT_NAME("INP68")
PORT_START("INP40") PORT_START("X6")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("INP71")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("INP72")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DOWN) PORT_NAME("INP73")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL) PORT_NAME("INP74")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_HOME) PORT_NAME("INP75")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_END) PORT_NAME("INP76")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("INP77")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("INP80") PORT_START("X7")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_2_PAD) PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_3_PAD)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_7_PAD)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_8_PAD)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_9_PAD)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH_PAD)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ASTERISK)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4_PAD)
PORT_START("COIN") PORT_START("COIN")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service / Escape") PORT_CODE(KEYCODE_6_PAD) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Service / Escape") PORT_CODE(KEYCODE_0_PAD)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_CODE(KEYCODE_MINUS_PAD)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_VOLUME_UP ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_VOLUME_UP ) PORT_CODE(KEYCODE_PLUS_PAD)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Begin Test / Enter") PORT_CODE(KEYCODE_5_PAD) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Begin Test / Enter") PORT_CODE(KEYCODE_ENTER_PAD)
PORT_START("DIPS") PORT_START("DIPS")
PORT_DIPNAME(0x01,0x01,"Switch 1") PORT_DIPLOCATION("SWA:1") PORT_DIPNAME(0x01,0x01,"Switch 1") PORT_DIPLOCATION("SWA:1")
@ -272,7 +280,6 @@ static INPUT_PORTS_START( wpc_an )
PORT_DIPSETTING(0xd0,"Europe") PORT_DIPSETTING(0xd0,"Europe")
PORT_DIPSETTING(0xe0,"Spain") PORT_DIPSETTING(0xe0,"Spain")
PORT_DIPSETTING(0xf0,"USA 2") PORT_DIPSETTING(0xf0,"USA 2")
INPUT_PORTS_END INPUT_PORTS_END
@ -458,8 +465,7 @@ ROM_START(dd_p7)
ROM_RELOAD( 0x30000, 0x10000) ROM_RELOAD( 0x30000, 0x10000)
ROM_LOAD("dude_u20.l1", 0x40000, 0x10000, CRC(a83d53dd) SHA1(92a81069c42c7760888201fb0787fa7ddfbf1658)) ROM_LOAD("dude_u20.l1", 0x40000, 0x10000, CRC(a83d53dd) SHA1(92a81069c42c7760888201fb0787fa7ddfbf1658))
ROM_RELOAD( 0x50000, 0x10000) ROM_RELOAD( 0x50000, 0x10000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
ROM_START(dd_p06) ROM_START(dd_p06)
@ -472,13 +478,12 @@ ROM_START(dd_p06)
ROM_RELOAD( 0x30000, 0x10000) ROM_RELOAD( 0x30000, 0x10000)
ROM_LOAD("dude_u20.l1", 0x40000, 0x10000, CRC(a83d53dd) SHA1(92a81069c42c7760888201fb0787fa7ddfbf1658)) ROM_LOAD("dude_u20.l1", 0x40000, 0x10000, CRC(a83d53dd) SHA1(92a81069c42c7760888201fb0787fa7ddfbf1658))
ROM_RELOAD( 0x50000, 0x10000) ROM_RELOAD( 0x50000, 0x10000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
/*------------- /*----------------
/ Funhouse #50003 / Funhouse #50003
/--------------*/ /----------------*/
ROM_START(fh_l9) ROM_START(fh_l9)
ROM_REGION(0x50000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x50000, "maincpu", ROMREGION_ERASEFF)
ROM_LOAD("funh_l9.rom", 0x10000, 0x40000, CRC(c8f90ff8) SHA1(8d200ea30a68f5e3ba1ac9232a516c44b765eb45)) ROM_LOAD("funh_l9.rom", 0x10000, 0x40000, CRC(c8f90ff8) SHA1(8d200ea30a68f5e3ba1ac9232a516c44b765eb45))
@ -495,8 +500,7 @@ ROM_START(fh_l9)
ROM_RELOAD( 0x100000 + 0x20000, 0x20000) ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
ROM_RELOAD( 0x100000 + 0x40000, 0x20000) ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
ROM_START(fh_l9b) ROM_START(fh_l9b)
@ -515,8 +519,7 @@ ROM_START(fh_l9b)
ROM_RELOAD( 0x100000 + 0x20000, 0x20000) ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
ROM_RELOAD( 0x100000 + 0x40000, 0x20000) ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
ROM_START(fh_l2) ROM_START(fh_l2)
@ -535,8 +538,7 @@ ROM_START(fh_l2)
ROM_RELOAD( 0x100000 + 0x20000, 0x20000) ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
ROM_RELOAD( 0x100000 + 0x40000, 0x20000) ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
ROM_START(fh_l3) ROM_START(fh_l3)
@ -555,8 +557,7 @@ ROM_START(fh_l3)
ROM_RELOAD( 0x100000 + 0x20000, 0x20000) ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
ROM_RELOAD( 0x100000 + 0x40000, 0x20000) ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
ROM_START(fh_l4) ROM_START(fh_l4)
@ -575,8 +576,7 @@ ROM_START(fh_l4)
ROM_RELOAD( 0x100000 + 0x20000, 0x20000) ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
ROM_RELOAD( 0x100000 + 0x40000, 0x20000) ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
ROM_START(fh_l5) ROM_START(fh_l5)
@ -595,8 +595,7 @@ ROM_START(fh_l5)
ROM_RELOAD( 0x100000 + 0x20000, 0x20000) ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
ROM_RELOAD( 0x100000 + 0x40000, 0x20000) ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
ROM_START(fh_905h) ROM_START(fh_905h)
@ -615,8 +614,7 @@ ROM_START(fh_905h)
ROM_RELOAD( 0x100000 + 0x20000, 0x20000) ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
ROM_RELOAD( 0x100000 + 0x40000, 0x20000) ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
ROM_START(fh_pa1) ROM_START(fh_pa1)
@ -626,15 +624,13 @@ ROM_START(fh_pa1)
ROM_LOAD("fh_u4.pa1", 0x00000, 0x20000, CRC(9f0a716d) SHA1(3d3ec250b0b4344844ad8ce5bcbb326f934b22d3)) ROM_LOAD("fh_u4.pa1", 0x00000, 0x20000, CRC(9f0a716d) SHA1(3d3ec250b0b4344844ad8ce5bcbb326f934b22d3))
ROM_LOAD("fh_u19.pa1", 0x20000, 0x20000, CRC(b0fb5ddf) SHA1(138c2aa283f7ced90637e981063f520bf46c57df)) ROM_LOAD("fh_u19.pa1", 0x20000, 0x20000, CRC(b0fb5ddf) SHA1(138c2aa283f7ced90637e981063f520bf46c57df))
ROM_LOAD("fh_u20.pa1", 0x40000, 0x20000, CRC(bb864f78) SHA1(ed861bd5df382e7efac103a1acb3d810ee4b15dc)) ROM_LOAD("fh_u20.pa1", 0x40000, 0x20000, CRC(bb864f78) SHA1(ed861bd5df382e7efac103a1acb3d810ee4b15dc))
ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_REGION(0x8000, "fixed", 0)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
/*----------------- /*-------------------------
/ Harley Davidson #20001 / Harley Davidson #20001
/------------------*/ /-------------------------*/
ROM_START(hd_l3) ROM_START(hd_l3)
ROM_REGION(0x30000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x30000, "maincpu", ROMREGION_ERASEFF)
ROM_LOAD("harly_l3.rom", 0x10000, 0x20000, CRC(65f2e0b4) SHA1(a44216c13b9f9adf4161ff6f9eeceba28ef37963)) ROM_LOAD("harly_l3.rom", 0x10000, 0x20000, CRC(65f2e0b4) SHA1(a44216c13b9f9adf4161ff6f9eeceba28ef37963))
@ -647,8 +643,7 @@ ROM_START(hd_l3)
ROM_RELOAD( 0x080000 + 0x20000, 0x20000) ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
ROM_RELOAD( 0x080000 + 0x40000, 0x20000) ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
ROM_RELOAD( 0x080000 + 0x60000, 0x20000) ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
ROM_START(hd_l2) ROM_START(hd_l2)
@ -663,8 +658,7 @@ ROM_START(hd_l2)
ROM_RELOAD( 0x080000 + 0x20000, 0x20000) ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
ROM_RELOAD( 0x080000 + 0x40000, 0x20000) ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
ROM_RELOAD( 0x080000 + 0x60000, 0x20000) ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
ROM_START(hd_l1) ROM_START(hd_l1)
@ -679,13 +673,12 @@ ROM_START(hd_l1)
ROM_RELOAD( 0x080000 + 0x20000, 0x20000) ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
ROM_RELOAD( 0x080000 + 0x40000, 0x20000) ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
ROM_RELOAD( 0x080000 + 0x60000, 0x20000) ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
/*----------------- /*--------------------------------------
/ The Machine: Bride of Pinbot #50001 / The Machine: Bride of Pinbot #50002
/------------------*/ /--------------------------------------*/
ROM_START(bop_l7) ROM_START(bop_l7)
ROM_REGION(0x50000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x50000, "maincpu", ROMREGION_ERASEFF)
ROM_LOAD("tmbopl_7.rom", 0x10000, 0x40000, CRC(773e1488) SHA1(36e8957b3903b99844a76bf15ba393b17db0db59)) ROM_LOAD("tmbopl_7.rom", 0x10000, 0x40000, CRC(773e1488) SHA1(36e8957b3903b99844a76bf15ba393b17db0db59))
@ -702,8 +695,7 @@ ROM_START(bop_l7)
ROM_RELOAD( 0x100000 + 0x20000, 0x20000) ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
ROM_RELOAD( 0x100000 + 0x40000, 0x20000) ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
ROM_START(bop_l6) ROM_START(bop_l6)
@ -722,8 +714,7 @@ ROM_START(bop_l6)
ROM_RELOAD( 0x100000 + 0x20000, 0x20000) ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
ROM_RELOAD( 0x100000 + 0x40000, 0x20000) ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
ROM_START(bop_l5) ROM_START(bop_l5)
@ -742,8 +733,7 @@ ROM_START(bop_l5)
ROM_RELOAD( 0x100000 + 0x20000, 0x20000) ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
ROM_RELOAD( 0x100000 + 0x40000, 0x20000) ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
ROM_START(bop_l4) ROM_START(bop_l4)
@ -762,8 +752,7 @@ ROM_START(bop_l4)
ROM_RELOAD( 0x100000 + 0x20000, 0x20000) ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
ROM_RELOAD( 0x100000 + 0x40000, 0x20000) ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
ROM_START(bop_l3) ROM_START(bop_l3)
@ -782,8 +771,7 @@ ROM_START(bop_l3)
ROM_RELOAD( 0x100000 + 0x20000, 0x20000) ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
ROM_RELOAD( 0x100000 + 0x40000, 0x20000) ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
ROM_START(bop_l2) ROM_START(bop_l2)
@ -802,20 +790,17 @@ ROM_START(bop_l2)
ROM_RELOAD( 0x100000 + 0x20000, 0x20000) ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
ROM_RELOAD( 0x100000 + 0x40000, 0x20000) ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_REGION(0x8000, "fixed", 0) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
/*=========== /*------------------------------------
/ Test Fixture Alphanumeric / Test Fixture Alphanumeric (#584-T)
/============*/ /------------------------------------*/
ROM_START(tfa_13) ROM_START(tfa_13)
ROM_REGION(0x30000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x30000, "maincpu", ROMREGION_ERASEFF)
ROM_LOAD("u6_l3.rom", 0x10000, 0x20000, CRC(bf4a37b5) SHA1(91b8bba6182e818a34252a4b2a0b86a2a44d9c42)) ROM_LOAD("u6_l3.rom", 0x10000, 0x20000, CRC(bf4a37b5) SHA1(91b8bba6182e818a34252a4b2a0b86a2a44d9c42))
ROM_REGION(0x180000, "sound1",0) ROM_REGION(0x180000, "sound1",ROMREGION_ERASE00)
ROM_FILL(0x0000,0x180000,0x00) ROM_REGION(0x8000, "fixed", ROMREGION_ERASE00)
ROM_REGION(0x8000, "fixed", 0)
ROM_FILL(0x0000,0x8000,0x00)
ROM_END ROM_END
GAME(1990, tfa_13, 0, wpc_an, wpc_an, wpc_an_state, init_wpc_an, ROT0, "Bally", "WPC Test Fixture: Alphanumeric (1.3)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1990, tfa_13, 0, wpc_an, wpc_an, wpc_an_state, init_wpc_an, ROT0, "Bally", "WPC Test Fixture: Alphanumeric (1.3)", MACHINE_IS_SKELETON_MECHANICAL)

View File

@ -442,9 +442,9 @@ void wpc_dcs_state::wpc_dcs(machine_config &config)
DCS_AUDIO_8K(config, dcs, 0); DCS_AUDIO_8K(config, dcs, 0);
} }
/*------------- /*----------------------
/ Demolition Man #50028 / Demolition Man #50028
/--------------*/ /----------------------*/
ROM_START(dm_pa2) ROM_START(dm_pa2)
ROM_REGION(0x80000, "maincpu", 0) ROM_REGION(0x80000, "maincpu", 0)
ROM_LOAD("u6-pa2.rom", 0x00000, 0x80000, CRC(862be56a) SHA1(95e1f899963762cb1a9de4eb5d6d57183ed1da38)) ROM_LOAD("u6-pa2.rom", 0x00000, 0x80000, CRC(862be56a) SHA1(95e1f899963762cb1a9de4eb5d6d57183ed1da38))
@ -533,9 +533,9 @@ ROM_START(dm_h6)
ROM_LOAD16_BYTE("dm.9", 0xe00000, 0x080000, CRC(4c1a34e8) SHA1(3eacc3c63b2d9db57fc86447f1408635b987ef69)) ROM_LOAD16_BYTE("dm.9", 0xe00000, 0x080000, CRC(4c1a34e8) SHA1(3eacc3c63b2d9db57fc86447f1408635b987ef69))
ROM_END ROM_END
/*----------------- /*----------------------
/ Indiana Jones #50017 / Indiana Jones #50017
/------------------*/ /----------------------*/
ROM_START(ij_l7) ROM_START(ij_l7)
ROM_REGION(0x80000, "maincpu", 0) ROM_REGION(0x80000, "maincpu", 0)
ROM_LOAD("ijone_l7.rom", 0x00000, 0x80000, CRC(4658c877) SHA1(b47ab064ff954bd182919f714ed8930cf0bed896)) ROM_LOAD("ijone_l7.rom", 0x00000, 0x80000, CRC(4658c877) SHA1(b47ab064ff954bd182919f714ed8930cf0bed896))
@ -614,9 +614,9 @@ ROM_START(ij_l3)
ROM_LOAD16_BYTE("ijsnd_l3.u8", 0xc00000, 0x080000, CRC(45e35bd7) SHA1(782b406be341d55d22a96acb8c2459f3058940df)) ROM_LOAD16_BYTE("ijsnd_l3.u8", 0xc00000, 0x080000, CRC(45e35bd7) SHA1(782b406be341d55d22a96acb8c2459f3058940df))
ROM_END ROM_END
/*----------------- /*--------------------
/ Judge Dredd #20020 / Judge Dredd #20020
/------------------*/ /--------------------*/
ROM_START(jd_l7) ROM_START(jd_l7)
ROM_REGION(0x80000, "maincpu", 0) ROM_REGION(0x80000, "maincpu", 0)
ROM_LOAD("jdrd_l7.rom", 0x00000, 0x80000, CRC(87b2a5c3) SHA1(e487e9ff78353ee96d5fb5f036b1a6cef586f5b4)) ROM_LOAD("jdrd_l7.rom", 0x00000, 0x80000, CRC(87b2a5c3) SHA1(e487e9ff78353ee96d5fb5f036b1a6cef586f5b4))
@ -687,9 +687,9 @@ ROM_START(jd_l4)
ROM_LOAD16_BYTE("jdsnd_u9.bin", 0xe00000, 0x080000, CRC(885b7c70) SHA1(be3bb42aeda3020a72c527f52c5330d0bafa9966)) ROM_LOAD16_BYTE("jdsnd_u9.bin", 0xe00000, 0x080000, CRC(885b7c70) SHA1(be3bb42aeda3020a72c527f52c5330d0bafa9966))
ROM_END ROM_END
/*----------------- /*-------------------------------
/ Popeye Saves The Earth #50022 / Popeye Saves The Earth #50022
/------------------*/ /-------------------------------*/
ROM_START(pop_lx5) ROM_START(pop_lx5)
ROM_REGION(0x80000, "maincpu", 0) ROM_REGION(0x80000, "maincpu", 0)
ROM_LOAD("peye_lx5.rom", 0x00000, 0x80000, CRC(ee1f7a67) SHA1(f02518546de93256b00bc1f5b92452a10f9e56dd)) ROM_LOAD("peye_lx5.rom", 0x00000, 0x80000, CRC(ee1f7a67) SHA1(f02518546de93256b00bc1f5b92452a10f9e56dd))
@ -727,9 +727,9 @@ ROM_START(pop_la4)
ROM_END ROM_END
/*----------------- /*--------------------------------------
/ Star Trek: The Next Generation #50023 / Star Trek: The Next Generation #50023
/------------------*/ /--------------------------------------*/
ROM_START(sttng_l7) ROM_START(sttng_l7)
ROM_REGION(0x80000, "maincpu", 0) ROM_REGION(0x80000, "maincpu", 0)
ROM_LOAD("trek_lx7.rom", 0x00000, 0x80000, CRC(d439fdbb) SHA1(12d1c72cd6cc18db53e51ebb4c1e55ca9bcf9908)) ROM_LOAD("trek_lx7.rom", 0x00000, 0x80000, CRC(d439fdbb) SHA1(12d1c72cd6cc18db53e51ebb4c1e55ca9bcf9908))
@ -874,9 +874,9 @@ ROM_START(sttng_l5)
ROM_END ROM_END
/*------------- /*-------------------------------------------
/ Addams Family Values (Coin Dropper) / Addams Family Values #60022 (Coin Dropper)
/--------------*/ /-------------------------------------------*/
ROM_START(afv_l4) ROM_START(afv_l4)
ROM_REGION(0x80000, "maincpu", 0) ROM_REGION(0x80000, "maincpu", 0)
ROM_LOAD("afv_u6.l4", 0x00000, 0x80000, CRC(37369339) SHA1(e44a91faca80ffa00d6db78e2df7aa9bf14e957c)) ROM_LOAD("afv_u6.l4", 0x00000, 0x80000, CRC(37369339) SHA1(e44a91faca80ffa00d6db78e2df7aa9bf14e957c))

View File

@ -1,8 +1,34 @@
// license:BSD-3-Clause // license:BSD-3-Clause
// copyright-holders:Olivier Galibert, Miodrag Milanovic // copyright-holders:Olivier Galibert, Miodrag Milanovic
/******************************************************************************************
PINBALL
Williams WPC Dot Matrix
/* Williams WPC Dot Matrix */ Since NVRAM is not working, when it starts factory settings will be applied.
Press F3, and wait for the game attract mode to commence.
Here are the key codes to enable play:
Game NUM Start game End ball
-----------------------------------------------------------------------------------------------
**** Bally (Midway) ****
Gilligan's Island 20003 Hold BC hit 1 BC
The Party Zone 20004 Hold PGDN PGUP END hit 1 PGDN PGUP END
**** Williams ****
Hurricane 50012 Hold BCD hit 1 BCD and wait
Terminator 2: Judgement Day 50013 Hold ABC hit 1 ABC
**** Novelty Games ****
Slugfest 60001 O
Hot Shot 60017 1 then C then A. Keep hitting I to score a basket.
Slugfest 2 60021 not emulated but probably same as Slugfest.
ToDo:
- NVRAM
- Outputs
- Mechanical sounds
- Party Zone speech is barely audible - should be louder than the music
*********************************************************************************************/
#include "emu.h" #include "emu.h"
#include "includes/wpc_dot.h" #include "includes/wpc_dot.h"
#include "screen.h" #include "screen.h"
@ -25,85 +51,95 @@ void wpc_dot_state::wpc_dot_map(address_map &map)
} }
static INPUT_PORTS_START( wpc_dot ) static INPUT_PORTS_START( wpc_dot )
PORT_START("INP0") PORT_START("X0")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_RSHIFT) PORT_NAME("Right Flipper")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LSHIFT) PORT_NAME("Left Flipper")
PORT_START("INP1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LSHIFT) // left flipper
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RSHIFT) // right flipper
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_NAME("Tilt")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_7_PAD) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("INP15")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_8_PAD) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("INP16")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_9_PAD) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("INP17")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_5_PAD) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("INP18")
PORT_START("INP2") PORT_START("X1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) // slam tilt PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_NAME("Slam Tilt")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_S) PORT_TOGGLE // coin door PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_2_PAD) PORT_TOGGLE PORT_NAME("Coin Door")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Ticket Dispenser")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) // always closed PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) // always closed
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("INP25")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("INP26")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("INP27")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("INP28")
PORT_START("INP4") PORT_START("X2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("INP31")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("INP32")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("INP33")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("INP34")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("INP35")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("INP36")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("INP37")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("INP38")
PORT_START("INP8") PORT_START("X3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("INP41")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("INP42")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP43")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP44")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP45")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP46")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP47")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("INP48")
PORT_START("INP10") PORT_START("X4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP51")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP52")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SPACE) PORT_NAME("INP53")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP54")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP55")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP56")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_UP) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("INP57")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP58")
PORT_START("INP20") PORT_START("X5")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP61")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP62")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("INP63")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("INP64")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("INP65")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("INP66")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP67")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) PORT_NAME("INP68")
PORT_START("INP40") PORT_START("X6")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LALT) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("INP71")
PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("INP72")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DOWN) PORT_NAME("INP73")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL) PORT_NAME("INP74")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_HOME) PORT_NAME("INP75")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_END) PORT_NAME("INP76")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("INP77")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("INP78")
PORT_START("INP80") PORT_START("X7")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP81")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP82")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP83")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP84")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP85")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP86")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP87")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP88")
PORT_START("COIN") PORT_START("COIN")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service / Escape") PORT_CODE(KEYCODE_DEL_PAD) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Service / Escape") PORT_CODE(KEYCODE_0_PAD)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_CODE(KEYCODE_MINUS_PAD)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_VOLUME_UP ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_VOLUME_UP ) PORT_CODE(KEYCODE_PLUS_PAD)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Begin Test / Enter") PORT_CODE(KEYCODE_ENTER_PAD) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Begin Test / Enter") PORT_CODE(KEYCODE_ENTER_PAD)
PORT_START("DIPS") PORT_START("DIPS")
PORT_DIPNAME(0x01,0x01,"Switch 1") PORT_DIPLOCATION("SWA:1") PORT_DIPNAME(0x01,0x01,"Switch 1") PORT_DIPLOCATION("SWA:1")
@ -250,21 +286,16 @@ WRITE_LINE_MEMBER(wpc_dot_state::wpc_firq_w)
uint32_t wpc_dot_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) uint32_t wpc_dot_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{ {
uint32_t offset = (m_wpc->get_visible_page() * 0x200); uint32_t offset = (m_wpc->get_visible_page() * 0x200);
uint32_t col[2] { rgb_t(0x00,0x00,0x00), rgb_t(0xff,0xaa,0x00) };
for(uint8_t y=0;y<32;y++) // scanline for(uint8_t y=0;y<32;y++) // scanline
{ {
for(uint8_t x=0;x<128;x+=8) // column for(uint8_t x=0;x<128;x+=8) // column
{ {
assert(offset >= 0 && offset < std::size(m_dmdram));
for(uint8_t bit=0;bit<8;bit++) // bits for(uint8_t bit=0;bit<8;bit++) // bits
{ bitmap.pix(y,x+bit) = col[BIT(m_dmdram[offset], bit)];
assert(offset >= 0 && offset < std::size(m_dmdram));
uint32_t col;
if(m_dmdram[offset] & (1<<bit))
col = rgb_t(0xff,0xaa,0x00);
else
col = rgb_t(0x00,0x00,0x00);
bitmap.pix(y,x+bit) = col;
}
offset++; offset++;
} }
} }
@ -301,9 +332,9 @@ void wpc_dot_state::wpc_dot(machine_config &config)
screen.set_screen_update(FUNC(wpc_dot_state::screen_update)); screen.set_screen_update(FUNC(wpc_dot_state::screen_update));
} }
/*----------------- /*--------------------------
/ Gilligan's Island #20003 / Gilligan's Island #20003
/------------------*/ /--------------------------*/
ROM_START(gi_l9) ROM_START(gi_l9)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x40000, "code", 0) ROM_REGION(0x40000, "code", 0)
@ -399,9 +430,9 @@ ROM_START(gi_l8)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_END ROM_END
/*----------------- /*--------------------------------------------------
/ Hot Shot #60017 / Hot Shot #60017 (novelty machine - not a pinball)
/------------------*/ /--------------------------------------------------*/
ROM_START(hshot_p8) ROM_START(hshot_p8)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x80000, "code", 0) ROM_REGION(0x80000, "code", 0)
@ -414,9 +445,9 @@ ROM_START(hshot_p8)
ROM_LOAD("hshot_l1.u14", 0x000000, 0x80000, CRC(a3ccf557) SHA1(a8e518ea115cd1963544273c45d9ae9a6cab5e1f)) ROM_LOAD("hshot_l1.u14", 0x000000, 0x80000, CRC(a3ccf557) SHA1(a8e518ea115cd1963544273c45d9ae9a6cab5e1f))
ROM_END ROM_END
/*----------------- /*-------------------
/ Hurricane #50012 / Hurricane #50012
/------------------*/ /--------------------*/
ROM_START(hurr_l2) ROM_START(hurr_l2)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x40000, "code", 0) ROM_REGION(0x40000, "code", 0)
@ -436,9 +467,9 @@ ROM_START(hurr_l2)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_END ROM_END
/*----------------- /*--------------------
/ Party Zone #20004 / Party Zone #20004
/------------------*/ /---------------------*/
ROM_START(pz_f4) ROM_START(pz_f4)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x40000, "code", 0) ROM_REGION(0x40000, "code", 0)
@ -507,9 +538,9 @@ ROM_START(pz_l3)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_END ROM_END
/*-------------------- /*-----------------------------------------------------------
/ Slugfest baseball #60001 / Slugfest baseball #60001 (novelty machine - not a pinball)
/--------------------*/ /-----------------------------------------------------------*/
ROM_START(sf_l1) ROM_START(sf_l1)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x40000, "code", 0) ROM_REGION(0x40000, "code", 0)
@ -529,9 +560,9 @@ ROM_START(sf_l1)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_END ROM_END
/*----------------- /*-----------------------------------
/ Terminator 2: Judgment Day #50013 / Terminator 2: Judgment Day #50013
/------------------*/ /-----------------------------------*/
ROM_START(t2_l8) ROM_START(t2_l8)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x80000, "code", 0) ROM_REGION(0x80000, "code", 0)
@ -646,15 +677,14 @@ ROM_START(t2_l2)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_END ROM_END
/*-------------- /*-------------------------------------
/ Test Fixture DMD generation / Test Fixture DMD generation (#584-T)
/---------------*/ /-------------------------------------*/
ROM_START(tfdmd_l3) ROM_START(tfdmd_l3)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x20000, "code", 0) ROM_REGION(0x20000, "code", 0)
ROM_LOAD("u6_l3.rom", 0x00000, 0x20000, CRC(bd43e28c) SHA1(df0a64a9fddbc59e3edde56ae12b68f76e44ba2e)) ROM_LOAD("u6_l3.rom", 0x00000, 0x20000, CRC(bd43e28c) SHA1(df0a64a9fddbc59e3edde56ae12b68f76e44ba2e))
ROM_REGION(0x180000, "sound1", 0) ROM_REGION(0x180000, "sound1", ROMREGION_ERASE00)
ROM_FILL(0x0000,0x180000,0x00)
ROM_END ROM_END

View File

@ -1,8 +1,23 @@
// license:BSD-3-Clause // license:BSD-3-Clause
// copyright-holders:Olivier Galibert, Miodrag Milanovic // copyright-holders:Olivier Galibert, Miodrag Milanovic
/*********************************************************************************************
PINBALL
Williams WPC Fliptronics I
/* Williams WPC Fliptronics I */ The Addams Family (#20017)
Since NVRAM is not working, when it starts factory settings will be applied.
Press F3, and wait for the game attract mode to commence.
To start, hold ABC hit 1.
To end the ball, Hold ABC until the bonuses have counted and the score starts flashing.
ToDo:
- NVRAM
- Outputs
- Mechanical sounds
*********************************************************************************************/
#include "emu.h" #include "emu.h"
#include "includes/wpc_flip1.h" #include "includes/wpc_flip1.h"
#include "screen.h" #include "screen.h"
@ -25,101 +40,105 @@ void wpc_flip1_state::wpc_flip1_map(address_map &map)
} }
static INPUT_PORTS_START( wpc_flip1 ) static INPUT_PORTS_START( wpc_flip1 )
PORT_START("INP0") PORT_START("X0")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("INP1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH_PAD)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ASTERISK)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_NAME("Tilt")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_7_PAD) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("Left Trough")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_8_PAD) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("Centre Trough")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_9_PAD) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("Right Trough")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_5_PAD) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("Outhole")
PORT_START("INP2") PORT_START("X1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) // slam tilt PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_NAME("Slam Tilt")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_S) PORT_TOGGLE // coin door PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_2_PAD) PORT_TOGGLE PORT_NAME("Coin Door")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Ticket Dispenser")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) // always closed PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) // always closed
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("Right Flipper Lane")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("Right Outlane")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("Ball Shooter")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("INP4") PORT_START("X2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("Upper Left Bumper")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("Upper Right Bumper")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("Centre Left Bumper")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("Centre Right Bumper") // manual shown Left by mistake, layout is correct
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("Lower Bumper")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("Left Sling")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("Right Sling")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("Upper Left Loop")
PORT_START("INP8") PORT_START("X3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("Grave G")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("Grave R")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("Chair")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("Cousin It")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("Lower Swamp")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("Centre Swamp")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("Upper Swamp")
PORT_START("INP10") PORT_START("X4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("Shooter Lane")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("Bookcase Opto 1")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("Bookcase Opto 2")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("Bookcase Opto3")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("Bookcase Opto 4")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_UP) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("Bumper Lane Opto")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("Right Ramp Exit")
PORT_START("INP20") PORT_START("X5")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("Left Ramp Exit")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("Train Wreck")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("Thing Eject Lane")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("Right Ramp Enter")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("Right Ramp Top")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("Left Ramp Top")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("Upper Right Loop")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("Vault")
PORT_START("INP40") PORT_START("X6")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LALT) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) PORT_NAME("Swamp Lock Upper")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_0_PAD) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("Swamp Lock Centre")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_1_PAD) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Swamp Lock Lower")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_2_PAD) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DOWN) PORT_NAME("Lockup Kickout")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_3_PAD) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_HOME) PORT_NAME("Left Outlane")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4_PAD) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_END) PORT_NAME("Left Flipper Lane 2")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_6_PAD) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Thing Kickout")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("Left Flipper Lane 1")
PORT_START("INP80") PORT_START("X7")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL) PORT_NAME("Bookcase Open")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Bookcase Closed")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Thing Down Opto")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("Thing Up Opto")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("Grave A")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Thing Eject Hole")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("COIN") PORT_START("COIN")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service / Escape") PORT_CODE(KEYCODE_DEL_PAD) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Service / Escape") PORT_CODE(KEYCODE_0_PAD)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_CODE(KEYCODE_MINUS_PAD)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_VOLUME_UP ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_VOLUME_UP ) PORT_CODE(KEYCODE_PLUS_PAD)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Begin Test / Enter") PORT_CODE(KEYCODE_ENTER_PAD) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Begin Test / Enter") PORT_CODE(KEYCODE_ENTER_PAD)
PORT_START("FLIP") PORT_START("FLIP")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Right Flipper EOS") PORT_CODE(KEYCODE_RSHIFT) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Right Flipper EOS") PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Right Flipper Button") PORT_CODE(KEYCODE_RSHIFT) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Right Flipper Button") PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left Flipper EOS") PORT_CODE(KEYCODE_LSHIFT) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Left Flipper EOS") PORT_CODE(KEYCODE_LSHIFT)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left Flipper Button") PORT_CODE(KEYCODE_LSHIFT) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Left Flipper Button") PORT_CODE(KEYCODE_LSHIFT)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Upper Right Flipper EOS") PORT_CODE(KEYCODE_RSHIFT) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Upper Right Flipper EOS") PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Upper Right Flipper Button") PORT_CODE(KEYCODE_RSHIFT) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Upper Right Flipper Button") PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Upper Left Flipper EOS") PORT_CODE(KEYCODE_LSHIFT) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Upper Left Flipper EOS") PORT_CODE(KEYCODE_LSHIFT)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Upper Left Flipper Button") PORT_CODE(KEYCODE_LSHIFT) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Upper Left Flipper Button") PORT_CODE(KEYCODE_LSHIFT)
PORT_START("DIPS") PORT_START("DIPS")
PORT_DIPNAME(0x01,0x01,"Switch 1") PORT_DIPLOCATION("SWA:1") PORT_DIPNAME(0x01,0x01,"Switch 1") PORT_DIPLOCATION("SWA:1")
@ -188,9 +207,9 @@ void wpc_flip1_state::wpc_flip1(machine_config &config)
screen.set_screen_update(FUNC(wpc_flip1_state::screen_update)); screen.set_screen_update(FUNC(wpc_flip1_state::screen_update));
} }
/*----------------- /*---------------------------
/ The Addams Family #20017 / The Addams Family #20017
/------------------*/ /---------------------------*/
ROM_START(taf_p2) ROM_START(taf_p2)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x40000, "code", 0) ROM_REGION(0x40000, "code", 0)

View File

@ -1,8 +1,38 @@
// license:BSD-3-Clause // license:BSD-3-Clause
// copyright-holders:Olivier Galibert, Miodrag Milanovic // copyright-holders:Olivier Galibert, Miodrag Milanovic
/*********************************************************************************************
PINBALL
Williams WPC Fliptronics II
/* Williams WPC Fliptronics II */ Since NVRAM is not working, when it starts factory settings will be applied.
Press F3, and wait for the game attract mode to commence.
Here are the key codes to enable play:
Game NUM Start game End ball
-----------------------------------------------------------------------------------------------
**** Shuffle Alley ****
Strike Master 10002 1 ,
League Champ 10007 1 ,
**** Bally (Midway) ****
Doctor Who 20006 Hold EFG hit 1 then X EFG
Black Rose 20013 Hold BCD hit 1 BCD
Creature from the Black Lagoon 20018 Hold /;' hit 1 /;'
**** Williams ****
Bram Stoker's Dracula 50001 Hold QRST hit 1 QRST
The Getaway: High Speed II 50004 Hold /;' hit 1 /;'
Fish Tales 50005 Hold BCD hit 1 BCD
White Water 50018 Hold PGDN PGUP END hit 1 PGDN PGUP END
Twilight Zone 50020 Hold ABC hit 1 ABC
The Addams Family Special
Collectors Edition 50038 Hold ABC hit 1 ABC
ToDo:
- NVRAM
- Outputs
- Mechanical sounds
*********************************************************************************************/
#include "emu.h" #include "emu.h"
#include "includes/wpc_flip2.h" #include "includes/wpc_flip2.h"
#include "screen.h" #include "screen.h"
@ -25,101 +55,105 @@ void wpc_flip2_state::wpc_flip2_map(address_map &map)
} }
static INPUT_PORTS_START( wpc_flip2 ) static INPUT_PORTS_START( wpc_flip2 )
PORT_START("INP0") PORT_START("X0")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_RSHIFT) PORT_NAME("Right Flipper")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LSHIFT) PORT_NAME("Left Flipper")
PORT_START("INP1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH_PAD)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ASTERISK)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_NAME("Tilt")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_7_PAD) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("INP15")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_8_PAD) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("INP16")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_9_PAD) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("INP17")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_5_PAD) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("INP18")
PORT_START("INP2") PORT_START("X1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) // slam tilt PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_NAME("Slam Tilt")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_S) PORT_TOGGLE // coin door closed PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_2_PAD) PORT_TOGGLE PORT_NAME("Coin Door")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Ticket Dispenser")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) // always closed PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) // always closed
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("INP25")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("INP26")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("INP27")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("INP28")
PORT_START("INP4") PORT_START("X2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("INP31")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("INP32")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("INP33")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("INP34")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("INP35")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("INP36")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("INP37")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("INP38")
PORT_START("INP8") PORT_START("X3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("INP41")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("INP42")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP43")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP44")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP45")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP46")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP47")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("INP48")
PORT_START("INP10") PORT_START("X4")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP51")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP52")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SPACE) PORT_NAME("INP53")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP54")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP55")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP56")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_UP) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("INP57")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DOWN) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP58")
PORT_START("INP20") PORT_START("X5")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP61")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP62")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("INP63")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("INP64")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("INP65")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("INP66")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP67")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) PORT_NAME("INP68")
PORT_START("INP40") PORT_START("X6")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LALT) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("INP71")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_0_PAD) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("INP72")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_1_PAD) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DOWN) PORT_NAME("INP73")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_2_PAD) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL) PORT_NAME("INP74")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_3_PAD) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_HOME) PORT_NAME("INP75")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4_PAD) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_END) PORT_NAME("INP76")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_6_PAD) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("INP77")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("INP78")
PORT_START("INP80") PORT_START("X7")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP81")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP82")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP83")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP84")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP85")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP86")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP87")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP88")
PORT_START("COIN") PORT_START("COIN")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service / Escape") PORT_CODE(KEYCODE_DEL_PAD) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Service / Escape") PORT_CODE(KEYCODE_0_PAD)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_CODE(KEYCODE_MINUS_PAD)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_VOLUME_UP ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_VOLUME_UP ) PORT_CODE(KEYCODE_PLUS_PAD)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Begin Test / Enter") PORT_CODE(KEYCODE_ENTER_PAD) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("Begin Test / Enter") PORT_CODE(KEYCODE_ENTER_PAD)
PORT_START("FLIP") PORT_START("FLIP")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Right Flipper EOS") PORT_CODE(KEYCODE_RSHIFT) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Right Flipper EOS") PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Right Flipper Button") PORT_CODE(KEYCODE_RSHIFT) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Right Flipper Button") PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left Flipper EOS") PORT_CODE(KEYCODE_LSHIFT) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Left Flipper EOS") PORT_CODE(KEYCODE_LSHIFT)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left Flipper Button") PORT_CODE(KEYCODE_LSHIFT) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Left Flipper Button") PORT_CODE(KEYCODE_LSHIFT)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Upper Right Flipper EOS") PORT_CODE(KEYCODE_RSHIFT) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Upper Right Flipper EOS") PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Upper Right Flipper Button") PORT_CODE(KEYCODE_RSHIFT) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Upper Right Flipper Button") PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Upper Left Flipper EOS") PORT_CODE(KEYCODE_LSHIFT) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Upper Left Flipper EOS") PORT_CODE(KEYCODE_LSHIFT)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Upper Left Flipper Button") PORT_CODE(KEYCODE_LSHIFT) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Upper Left Flipper Button") PORT_CODE(KEYCODE_LSHIFT)
PORT_START("DIPS") PORT_START("DIPS")
PORT_DIPNAME(0x01,0x01,"Switch 1") PORT_DIPLOCATION("SWA:1") PORT_DIPNAME(0x01,0x01,"Switch 1") PORT_DIPLOCATION("SWA:1")
@ -156,30 +190,26 @@ INPUT_PORTS_END
INPUT_PORTS_START( wpc_dw ) INPUT_PORTS_START( wpc_dw )
PORT_INCLUDE( wpc_flip2 ) PORT_INCLUDE( wpc_flip2 )
PORT_MODIFY("INP2") PORT_MODIFY("X0")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_G) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_H)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_J)
PORT_MODIFY("INP4") PORT_MODIFY("X2")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Z) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("Enter Top Ramp Opto")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_C)
PORT_MODIFY("INP10") PORT_MODIFY("X4")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_UP) // trap door down PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("Trap Door Down")
PORT_MODIFY("INP40") PORT_MODIFY("X6")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_LALT) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("Right Bank 1 Opto")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_0_PAD) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Right Bank2 Opto")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_1_PAD) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_DOWN) PORT_NAME("Middle Bank Opto")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_2_PAD) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL) PORT_NAME("Left Bank 2 Opto")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_3_PAD) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_HOME) PORT_NAME("Left Bank 1 Opto")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_4_PAD) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_END) PORT_NAME("Left Eject Opto")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_6_PAD) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Right Eject Opto")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_MODIFY("INP80") PORT_MODIFY("X7")
PORT_BIT( 0xfd, IP_ACTIVE_LOW, IPT_UNKNOWN ) // playfield glass - so we don't annoyed by constant warnings about it. PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Playfield Glass")
INPUT_PORTS_END INPUT_PORTS_END
void wpc_flip2_state::init_wpc_flip2() void wpc_flip2_state::init_wpc_flip2()
@ -217,9 +247,9 @@ void wpc_flip2_state::wpc_flip2(machine_config &config)
screen.set_screen_update(FUNC(wpc_flip2_state::screen_update)); screen.set_screen_update(FUNC(wpc_flip2_state::screen_update));
} }
/*----------------- /*--------------------
/ Black Rose #20013 / Black Rose #20013
/------------------*/ /--------------------*/
ROM_START(br_l4) ROM_START(br_l4)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x80000, "code", 0) ROM_REGION(0x80000, "code", 0)
@ -288,9 +318,9 @@ ROM_START(br_l3)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_END ROM_END
/*----------------- /*------------------------------
/ Bram Stoker's Dracula #50001 / Bram Stoker's Dracula #50001
/------------------*/ /------------------------------*/
ROM_START(drac_l1) ROM_START(drac_l1)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x80000, "code", 0) ROM_REGION(0x80000, "code", 0)
@ -311,9 +341,9 @@ ROM_START(drac_p11)
ROM_LOAD("dracsnd.u18", 0x100000, 0x80000, CRC(372ffb90) SHA1(89979670869c565d3ab86abbce462e2f935a566b)) ROM_LOAD("dracsnd.u18", 0x100000, 0x80000, CRC(372ffb90) SHA1(89979670869c565d3ab86abbce462e2f935a566b))
ROM_END ROM_END
/*----------------- /*---------------------------------------
/ Creature from the Black Lagoon #20018 / Creature from the Black Lagoon #20018
/------------------*/ /---------------------------------------*/
ROM_START(cftbl_l4) ROM_START(cftbl_l4)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x80000, "code", 0) ROM_REGION(0x80000, "code", 0)
@ -353,9 +383,9 @@ ROM_START(cftbl_l2)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_END ROM_END
/*----------------- /*--------------------
/ Doctor Who #20006 / Doctor Who #20006
/------------------*/ /---------------------*/
ROM_START(dw_l2) ROM_START(dw_l2)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x80000, "code", 0) ROM_REGION(0x80000, "code", 0)
@ -395,9 +425,9 @@ ROM_START(dw_p5)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_END ROM_END
/*----------------- /*-------------------
/ Fish Tales #50005 / Fish Tales #50005
/------------------*/ /--------------------*/
ROM_START(ft_l5) ROM_START(ft_l5)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x80000, "code", 0) ROM_REGION(0x80000, "code", 0)
@ -438,9 +468,9 @@ ROM_START(ft_p2)
ROM_LOAD("ft_u18.l1", 0x100000, 0x80000, CRC(48d2760a) SHA1(701b0bbb68f99332493ee1276e5a1cef5c85d499)) ROM_LOAD("ft_u18.l1", 0x100000, 0x80000, CRC(48d2760a) SHA1(701b0bbb68f99332493ee1276e5a1cef5c85d499))
ROM_END ROM_END
/*----------------- /*------------------------------------------------------
/ The Addams Family Special Collectors Edition #50038 / The Addams Family Special Collectors Edition #50038
/------------------*/ /------------------------------------------------------*/
ROM_START(tafg_lx3) ROM_START(tafg_lx3)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x80000, "code", 0) ROM_REGION(0x80000, "code", 0)
@ -480,9 +510,9 @@ ROM_START(tafg_la3)
ROM_RELOAD( 0x080000 + 0x40000, 0x40000) ROM_RELOAD( 0x080000 + 0x40000, 0x40000)
ROM_LOAD("ag_u18_s.l1", 0x100000, 0x80000, CRC(02e824a9) SHA1(ed8aa5161ea6c12cc9e646939290d848408a59a3)) ROM_LOAD("ag_u18_s.l1", 0x100000, 0x80000, CRC(02e824a9) SHA1(ed8aa5161ea6c12cc9e646939290d848408a59a3))
ROM_END ROM_END
/*----------------- /*------------------------------------
/ The Getaway: High Speed II #50004 / The Getaway: High Speed II #50004
/------------------*/ /------------------------------------*/
ROM_START(gw_l5) ROM_START(gw_l5)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x80000, "code", 0) ROM_REGION(0x80000, "code", 0)
@ -538,9 +568,9 @@ ROM_START(gw_p7)
ROM_REGION(0x180000, "sound1", 0) ROM_REGION(0x180000, "sound1", 0)
ROM_LOAD("u18-sp1.rom", 0x100000, 0x80000, CRC(fc5a5ff6) SHA1(bbe810135e05f81d1399ee0cb490ee93d6f9bb03)) ROM_LOAD("u18-sp1.rom", 0x100000, 0x80000, CRC(fc5a5ff6) SHA1(bbe810135e05f81d1399ee0cb490ee93d6f9bb03))
ROM_END ROM_END
/*----------------- /*----------------------
/ Twilight Zone #50020 / Twilight Zone #50020
/------------------*/ /----------------------*/
ROM_START(tz_92) ROM_START(tz_92)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x80000, "code", 0) ROM_REGION(0x80000, "code", 0)
@ -720,9 +750,9 @@ ROM_START(tz_p4)
ROM_LOAD("tzu18_p3.rom", 0x100000, 0x80000, CRC(1f750672) SHA1(033c6e261201a17667110069b7570fe90490286b)) ROM_LOAD("tzu18_p3.rom", 0x100000, 0x80000, CRC(1f750672) SHA1(033c6e261201a17667110069b7570fe90490286b))
ROM_END ROM_END
/*----------------- /*--------------------
/ White Water #50018 / White Water #50018
/------------------*/ /---------------------*/
ROM_START(ww_l5) ROM_START(ww_l5)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x80000, "code", 0) ROM_REGION(0x80000, "code", 0)
@ -835,9 +865,9 @@ ROM_START(ww_p1)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_END ROM_END
/*------------------- /*------------------------------------
/ Strike Master (Shuffle Alley) / Strike Master #10002 (Shuffle Alley)
/--------------------*/ /------------------------------------*/
ROM_START(strik_l4) ROM_START(strik_l4)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x40000, "code", 0) ROM_REGION(0x40000, "code", 0)
@ -857,9 +887,9 @@ ROM_START(strik_l4)
ROM_RELOAD( 0x100000 + 0x60000, 0x20000) ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
ROM_END ROM_END
/*----------------------------- /*------------------------------------
/ League Champ (Shuffle Alley) / League Champ #10007 (Shuffle Alley)
/------------------------------*/ /------------------------------------*/
ROM_START(lc_11) ROM_START(lc_11)
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
ROM_REGION(0x80000, "code", 0) ROM_REGION(0x80000, "code", 0)
@ -930,5 +960,5 @@ GAME(1993, ww_l3, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, init
GAME(1992, ww_l2, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, init_wpc_flip2, ROT0, "Williams", "White Water (L-2)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1992, ww_l2, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, init_wpc_flip2, ROT0, "Williams", "White Water (L-2)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1992, ww_p8, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, init_wpc_flip2, ROT0, "Williams", "White Water (P-8 P-2 sound)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1992, ww_p8, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, init_wpc_flip2, ROT0, "Williams", "White Water (P-8 P-2 sound)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1992, ww_p1, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, init_wpc_flip2, ROT0, "Williams", "White Water (P-8 P-1 sound)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1992, ww_p1, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, init_wpc_flip2, ROT0, "Williams", "White Water (P-8 P-1 sound)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1992, strik_l4, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, init_wpc_flip2, ROT0, "Williams", "Strike Master (L-4)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1992, strik_l4, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, init_wpc_flip2, ROT0, "Williams", "Strike Master (L-4) (Shuffle)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1996, lc_11, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, init_wpc_flip2, ROT0, "Bally", "League Champ (1.1)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1996, lc_11, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, init_wpc_flip2, ROT0, "Bally", "League Champ (1.1) (Shuffle)", MACHINE_IS_SKELETON_MECHANICAL)

View File

@ -24,7 +24,8 @@ wpc_device::wpc_device(const machine_config &mconfig, const char *tag, device_t
m_soundctrl_w(*this), m_soundctrl_w(*this),
m_sounds11_w(*this), m_sounds11_w(*this),
m_bank_w(*this), m_bank_w(*this),
m_dmdbank_w(*this) m_dmdbank_w(*this),
m_io_keyboard(*this, ":X%d", 0U)
{ {
} }
@ -67,7 +68,6 @@ void wpc_device::device_timer(emu_timer &timer, device_timer_id id, int param)
uint8_t wpc_device::read(offs_t offset) uint8_t wpc_device::read(offs_t offset)
{ {
uint8_t ret = 0x00; uint8_t ret = 0x00;
char kbdrow[8];
switch(offset) switch(offset)
{ {
@ -84,13 +84,12 @@ uint8_t wpc_device::read(offs_t offset)
m_zerocross = false; m_zerocross = false;
break; break;
case WPC_SWROWREAD: case WPC_SWROWREAD:
sprintf(kbdrow,":INP%X",m_switch_col); {
ret = ~ioport(kbdrow)->read(); ret = 0xff;
// for(x=0;x<8;x++) for (u8 i = 0; i < 8; i++)
// { if (BIT(m_switch_col, i))
// if(m_switch_col & (1<<x)) ret &= ~m_io_keyboard[i]->read();
// ret = m_switches[3+x]; }
// }
break; break;
case WPC_SWCOINDOOR: case WPC_SWCOINDOOR:
ret = ~ioport(":COIN")->read(); ret = ~ioport(":COIN")->read();

View File

@ -140,6 +140,7 @@ private:
devcb_write8 m_sounds11_w; devcb_write8 m_sounds11_w;
devcb_write8 m_bank_w; devcb_write8 m_bank_w;
devcb_write8 m_dmdbank_w; devcb_write8 m_dmdbank_w;
required_ioport_array<8> m_io_keyboard;
}; };
DECLARE_DEVICE_TYPE(WPCASIC, wpc_device) DECLARE_DEVICE_TYPE(WPCASIC, wpc_device)