From bdfd419e216a1239afd3a6486b40639fdedfe4be Mon Sep 17 00:00:00 2001 From: Roberto Fresca Date: Thu, 20 Mar 2025 19:28:27 +0100 Subject: [PATCH] naroutp.cpp driver improvements: [Roberto Fresca, Grull Osgo] - Added hopper support. - Extended palette. - Identified dphlunka as Sure Shot. - Custom palette for Sure Shot. - Buttons-lamps layout for Sure Shot. - Inputs for Sure Shot. - Machine config for Sure Shot. - Promote dphla set to working. - Promote sureshoto set to working. - Promote dphlunkb set to working. Systems promoted to working --------------------------- Joker Poker (Kramer, Alt) [Roberto Fresca, Grull Osgo] Sure Shot (older, dphl hardware) [Roberto Fresca, Grull Osgo] Draw Poker HI-LO (alt GFX) [Roberto Fresca, Grull Osgo] --- src/mame/layout/noraut09_sureshot.lay | 166 ++++++++++++ src/mame/layout/noraut10.lay | 5 + src/mame/layout/noraut11.lay | 5 + src/mame/layout/noraut12.lay | 5 + src/mame/mame.lst | 2 +- src/mame/misc/norautp.cpp | 361 ++++++++++++++++++-------- 6 files changed, 432 insertions(+), 112 deletions(-) create mode 100644 src/mame/layout/noraut09_sureshot.lay diff --git a/src/mame/layout/noraut09_sureshot.lay b/src/mame/layout/noraut09_sureshot.lay new file mode 100644 index 00000000000..079a83a5bac --- /dev/null +++ b/src/mame/layout/noraut09_sureshot.lay @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/layout/noraut10.lay b/src/mame/layout/noraut10.lay index 5980eaa5a99..0dc16487169 100644 --- a/src/mame/layout/noraut10.lay +++ b/src/mame/layout/noraut10.lay @@ -1,6 +1,11 @@ diff --git a/src/mame/layout/noraut11.lay b/src/mame/layout/noraut11.lay index 8972ebdfdc1..0c88ec27c34 100644 --- a/src/mame/layout/noraut11.lay +++ b/src/mame/layout/noraut11.lay @@ -1,6 +1,11 @@ diff --git a/src/mame/layout/noraut12.lay b/src/mame/layout/noraut12.lay index 6aa52c24dcf..2509101eba4 100644 --- a/src/mame/layout/noraut12.lay +++ b/src/mame/layout/noraut12.lay @@ -1,6 +1,11 @@ diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 5447ce6b9f6..440efcc7f23 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -31875,7 +31875,6 @@ df_djpkr dphl dphla dphljp -dphlunka dphlunkb drhl drhla @@ -31904,6 +31903,7 @@ pkii_dm pma smshilo ssjkrpkr +sureshoto tpoker2 unkljfpk diff --git a/src/mame/misc/norautp.cpp b/src/mame/misc/norautp.cpp index 5341af55bc4..8ca6377b43d 100644 --- a/src/mame/misc/norautp.cpp +++ b/src/mame/misc/norautp.cpp @@ -1,11 +1,11 @@ // license:BSD-3-Clause -// copyright-holders:Angelo Salese, Roberto Fresca +// copyright-holders:Angelo Salese, Roberto Fresca, Grull Osgo /****************************************************************************** - NORAUT POKER SYSTEM - ------------------------- - Driver by Roberto Fresca & Angelo Salese. + Driver by Roberto Fresca, Angelo Salese & Grull Osgo. Games running on this hardware: @@ -181,7 +181,6 @@ ******************************************************************************* - Narout System Ports Map ----------------------- @@ -302,10 +301,8 @@ ******************************************************************************* - *** Game Notes *** - - norautjp: At the first start-up, the game will give you a very clever @@ -349,10 +346,8 @@ ******************************************************************************* - DRIVER UPDATES: - [2009-01-27] - Initial release. @@ -368,7 +363,6 @@ - Added pinout scheme. - Added technical notes. - [2009-01-28] - Merged GTI Poker (gtipoker.c) with this driver. @@ -379,7 +373,6 @@ to Noraut Poker (bootleg), since the game has payout system. - Some clean-ups. - [2009-08-21] - Switched to pre-defined Xtal clock. @@ -393,7 +386,6 @@ - Added partial DIP switches to norautrh. - Added more technical notes. - [2009-08-23/26] - Added a default NVRAM to Noraut Joker Poker to bypass the 'F U' screen. @@ -406,7 +398,6 @@ - Added Noraut Joker Poker hardware and PCB layouts. - Documented the discrete audio circuitry. Added a full diagram. - [2009-08-29] - Fixed the coin counters. @@ -420,7 +411,6 @@ - Added 2 different control panel layouts to the source. - Updated technical notes. - [2009-08-30] - Corrected CPU clock to Xtal/8. @@ -432,7 +422,6 @@ - Added new handlers to simulate the handshake lines. Still need real support through PPI-2. - Updated technical notes. - [2009-09-03] - Routed the whole video RAM access through PPI-2. @@ -442,13 +431,11 @@ - Added a new machine driver for extended hardware. It has 2 jumpers that cut the a14 and a15 addressing lines. - [2009-09-09] - Added accurate discrete sound system emulation. - Fixed the discrete sound system diagram, based on real sound references. - [2009-10-12] - Added Draw Poker HI-LO hardware support, based on 8080A CPU. @@ -464,7 +451,6 @@ properly emulated. For now, all VRAM access is through direct handlers. This allow to remove the hacks per set needed to boot the games. - [2009-10-13] - Added Draw Poker HI-LO (japanese), based on 8080A CPU. @@ -475,7 +461,6 @@ - Added smshilo hardware details and PCB layout. - Added smshilo discrete sound circuitry scheme/documentation. - [2009-11-26] - A lot of work in memory maps and machine driver stuff. @@ -505,7 +490,6 @@ - Fix the Kimble Double HI-LO CPU type. - Added notes about the code obfuscation and PPI's handling/offsets. - [2009-12-04] - Added new technical notes. @@ -519,7 +503,6 @@ so can be seen/maintained in a cleaner way. - Fixed the default lamps state. - [2009-12-08] - Added Fast Draw (poker conversion kit)?. Seems based on 8080 CPU hardware. @@ -529,25 +512,21 @@ - Added undumped devices as NO_DUMP. - Added some technical notes. - [2009-12-08] - Added Southern Systems Joker Poker. Based on 8080 CPU. - Added some technical notes. - [2011-01-24] - Changed DRHL description to "Drews Revenge (v.2.89, set 1)" - Added Drews Revenge (v.2.89, set 2). Based on 8080 CPU. - [2013-04-09] - Added GTI Poker? (SMS hardware). Based on 8080 CPU. - Added PCB description and sound hardware schematics. - [2013-2023] - Added more sets. @@ -555,8 +534,7 @@ - Decryption of noraut3 sets. - Working inputs, DIP switches, and button-lamps layouts to noraut3 games. - Change game description to noraut3 games, since are dual games selectable - through a DIP switch. - + through a DIP switch. [2025-03] @@ -580,11 +558,21 @@ - Promoted dphl, dphljp, and smshilo to working. - Added technical notes. + - Added hopper support. + - Extended palette. + - Identified dphlunka as Sure Shot. + - Custom palette for Sure Shot. + - Buttons-lamps layout for Sure Shot. + - Inputs for Sure Shot. + - Machine config for Sure Shot. + - Promote dphla set to working. + - Promote sureshoto set to working. + - Promote dphlunkb set to working. + TODO: - Investigate and document what is connected to port EFh. - - dphla and dphlunkb paying issues. - Find if wide chars are hardcoded or tied to a bit. - Parent/clone relationship. @@ -599,9 +587,6 @@ when you coin/bet the game. After deal, they are not showing this anymore. - - dphla and dphlunkb are working, but when pay a hand they are - stuck spitting spitting the "call attendant" message. - *******************************************************************************/ @@ -611,6 +596,7 @@ #include "cpu/z80/z80.h" #include "machine/i8255.h" #include "machine/nvram.h" +#include "machine/ticket.h" #include "machine/timer.h" #include "sound/discrete.h" #include "emupal.h" @@ -618,9 +604,10 @@ #include "speaker.h" +#include "noraut09_sureshot.lh" +#include "noraut10.lh" #include "noraut11.lh" #include "noraut12.lh" -#include "noraut10.lh" #define NORAUT_MASTER_CLOCK XTAL(18'432'000) @@ -644,6 +631,7 @@ public: m_gfxdecode(*this, "gfxdecode"), m_screen(*this, "screen"), m_palette(*this, "palette"), + m_hopper(*this, "hopper"), m_decrypted_opcodes(*this, "decrypted_opcodes"), m_lamps(*this, "lamp%u", 0U) { } @@ -661,6 +649,7 @@ public: void ssjkrpkr(machine_config &config); void dphl(machine_config &config); void dphla(machine_config &config); + void sureshoto(machine_config &config); void drhl(machine_config &config); void norautxp(machine_config &config); void noraut3(machine_config &config); @@ -670,9 +659,11 @@ public: void init_ssa(); void init_enc(); void init_deb(); + void init_unka(); + void init_unkb(); protected: - virtual void machine_start() override { m_lamps.resolve(); } + virtual void machine_start() override { m_lamps.resolve(); save_item(NAME(m_videoram));} virtual void video_start() override ATTR_COLD; private: @@ -687,6 +678,7 @@ private: void counterlamps_w(uint8_t data); void norautp_palette(palette_device &palette) const; void drhl_palette(palette_device &palette) const; + void sureshoto_palette(palette_device &palette) const; uint32_t screen_update_norautp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void cgidjp_map(address_map &map) ATTR_COLD; void cgidjp_opcodes_map(address_map &map) ATTR_COLD; @@ -719,12 +711,14 @@ private: required_device m_gfxdecode; required_device m_screen; required_device m_palette; + required_device m_hopper; optional_shared_ptr m_decrypted_opcodes; output_finder<12> m_lamps; int m_test3 = 1; int m_test3b = 0; int m_test_count = 0; + uint8_t m_videoram[0x800] = {}; }; @@ -756,7 +750,9 @@ uint32_t norautp_state::screen_update_norautp(screen_device &screen, bitmap_ind1 { int tile = m_np_vram[count] & 0x3f; int colour = (m_np_vram[count] & 0xc0) >> 6; - + if((y == 4) | ( y == 5)) + colour = colour + 4; + m_gfxdecode->gfx(1)->opaque(bitmap,cliprect, tile, colour, 0, 0, (x * 32) + 8, y * 32); count+=2; @@ -791,6 +787,16 @@ void norautp_state::norautp_palette(palette_device &palette) const palette.set_pen_color(5, rgb_t(0xff, 0x00, 0x00)); // red palette.set_pen_color(6, rgb_t(0xff, 0xff, 0xff)); // white palette.set_pen_color(7, rgb_t(0x00, 0x00, 0x00)); // black + // 1st gfx bank + palette.set_pen_color(8, rgb_t(0x00, 0x00, 0xff)); // blue + palette.set_pen_color(9, rgb_t(0xff, 0xff, 0x00)); // yellow + palette.set_pen_color(10, rgb_t(0x00, 0x00, 0xff)); // blue + palette.set_pen_color(11, rgb_t(0xff, 0xff, 0xff)); // white + palette.set_pen_color(12, rgb_t(0xff, 0xff, 0xff)); // white + palette.set_pen_color(13, rgb_t(0xff, 0x00, 0x00)); // red + palette.set_pen_color(14, rgb_t(0xff, 0xff, 0xff)); // white + palette.set_pen_color(15, rgb_t(0x00, 0x00, 0x00)); // black + } void norautp_state::drhl_palette(palette_device &palette) const @@ -804,6 +810,37 @@ void norautp_state::drhl_palette(palette_device &palette) const palette.set_pen_color(5, rgb_t(0x00, 0x00, 0xff)); // red palette.set_pen_color(6, rgb_t(0xff, 0xff, 0x00)); // yellow (white) palette.set_pen_color(7, rgb_t(0x00, 0x00, 0xff)); // blue (black) + palette.set_pen_color(8, rgb_t(0x00, 0x00, 0x00)); // black (blue) + palette.set_pen_color(9, rgb_t(0xff, 0xff, 0xff)); // white (yellow) + palette.set_pen_color(10, rgb_t(0xff, 0x00, 0x00)); // red (blue) + palette.set_pen_color(11, rgb_t(0xff, 0xff, 0xff)); // white (white) + palette.set_pen_color(12, rgb_t(0xff, 0xff, 0xff)); // white + palette.set_pen_color(13, rgb_t(0x00, 0x00, 0xff)); // red + palette.set_pen_color(14, rgb_t(0xff, 0xff, 0x00)); // yellow (white) + palette.set_pen_color(15, rgb_t(0x00, 0x00, 0xff)); // blue (black) +} + +void norautp_state::sureshoto_palette(palette_device &palette) const +{ + // 1st gfx bank + palette.set_pen_color(0, rgb_t(0x00, 0x00, 0x00)); // blue + palette.set_pen_color(1, rgb_t(0xff, 0xff, 0x00)); // yellow + palette.set_pen_color(2, rgb_t(0x00, 0x00, 0x00)); // blue + palette.set_pen_color(3, rgb_t(0xff, 0xff, 0xff)); // white + palette.set_pen_color(4, rgb_t(0xff, 0xff, 0xff)); // white + palette.set_pen_color(5, rgb_t(0xff, 0x00, 0x00)); // red + palette.set_pen_color(6, rgb_t(0xff, 0xff, 0xff)); // white + palette.set_pen_color(7, rgb_t(0x00, 0x00, 0x00)); // black + + // alt palette + palette.set_pen_color(8, rgb_t(0xff, 0xff, 0xff)); // white + palette.set_pen_color(9, rgb_t(0x00, 0x00, 0x00)); // cards bg + palette.set_pen_color(10, rgb_t(0xff, 0xff, 0xff)); // white + palette.set_pen_color(11, rgb_t(0x00, 0x00, 0x00)); + palette.set_pen_color(12, rgb_t(0xff, 0xff, 0xff)); // white + palette.set_pen_color(13, rgb_t(0xff, 0x00, 0x00)); + palette.set_pen_color(14, rgb_t(0xff, 0xff, 0xff)); // white + palette.set_pen_color(15, rgb_t(0xff, 0x00, 0x00)); } @@ -879,6 +916,8 @@ void norautp_state::counterlamps_w(uint8_t data) m_lamps[10] = BIT(data, 0); // HI lamp m_lamps[11] = BIT(data, 1); // LO lamp + m_hopper->motor_w(BIT(data, 2)); + machine().bookkeeping().coin_counter_w(0, data & 0x10); // Coin1/3 counter machine().bookkeeping().coin_counter_w(1, data & 0x20); // Coin2 counter machine().bookkeeping().coin_counter_w(2, data & 0x08); // Payout pulse @@ -892,17 +931,17 @@ void norautp_state::ppi2_obf_w(int state) TIMER_CALLBACK_MEMBER(norautp_state::ppi2_ack) { - m_ppi8255[2]->pc6_w(param); if (param == 0) { uint8_t const np_addr = m_ppi8255[2]->pb_r(); uint8_t const vram_data = m_ppi8255[2]->pa_r(); m_np_vram[np_addr] = vram_data; + m_videoram[np_addr] = vram_data; } + } - // game waits for bit 4 (0x10) to be reset. uint8_t norautp_state::test2_r() { @@ -917,7 +956,6 @@ uint8_t norautp_state::test3_r() return m_test3b; } - logerror("test3: pc:%04x - data:%02x\n", m_maincpu->pc(), m_test_count); return (m_test_count &0x0f) + 0x10; } @@ -940,55 +978,55 @@ TIMER_DEVICE_CALLBACK_MEMBER(norautp_state::test_timer_cb) CPU & PPI settings by set... - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | Set | CPU | PPI-0 offset | config | PPI-1 offset | config | PPI-2 offset | config | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | norautp | Z80 | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC1 (PC0-2 as input) | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | norautdx | Z80 | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | norautpn | Z80 | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | norautjp | Z80 | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC1 (PC0-2 as input) | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | norautrh | Z80 | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | norautu | BOXED | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | norautv3 | Z80 | unknown | | unknown | | unknown | | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | pma | Z80 | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | bjpoker | Z80 | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | dphl | 8080 | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | dphla | 8080 | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | dphljp | 8080 | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | kimbldhl | 8080 | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | gtipoker | 8080 | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | smshilo | 8080 | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | tpoker2 | 8080 | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | drhl | 8080? | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | ssjkrpkr | 8080 | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | fastdrwp | 8080? | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | dphlunka | 8080? | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | dphlunkb | 8080? | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | pkii_dm | Z80? | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ - | cdrawpkr | Z80 | 0x70-0x73 | 0x90 | 0xB0-0xB3 | 0x92 | 0xD0-0xD3 | 0xC0 | - +----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | Set | CPU | PPI-0 offset | config | PPI-1 offset | config | PPI-2 offset | config | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | norautp | Z80 | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC1 (PC0-2 as input) | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | norautdx | Z80 | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | norautpn | Z80 | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | norautjp | Z80 | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC1 (PC0-2 as input) | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | norautrh | Z80 | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | norautu | BOXED | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | norautv3 | Z80 | unknown | | unknown | | unknown | | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | pma | Z80 | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | bjpoker | Z80 | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | dphl | 8080 | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | dphla | 8080 | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | dphljp | 8080 | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | kimbldhl | 8080 | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | gtipoker | 8080 | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | smshilo | 8080 | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | tpoker2 | 8080 | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | drhl | 8080? | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | ssjkrpkr | 8080 | 0x60-0x63 | 0x90 | 0xA0-0xA3 | 0x92 | 0xC0-0xC3 | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | fastdrwp | 8080? | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | sureshoto | 8080? | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | dphlunkb | 8080? | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | pkii_dm | Z80? | 0x7C-0x7F | 0x90 | 0xBC-0xBF | 0x92 | 0xDC-0xDF | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ + | cdrawpkr | Z80 | 0x70-0x73 | 0x90 | 0xB0-0xB3 | 0x92 | 0xD0-0xD3 | 0xC0 | + +-----------+---------+--------------+--------+--------------+--------+--------------+------------------------+ */ void norautp_state::norautp_map(address_map &map) @@ -1088,7 +1126,7 @@ void norautp_state::cgidjp_opcodes_map(address_map &map) } -/*************** 8080 based **************/ +/*************** i8080 based **************/ void norautp_state::dphl_map(address_map &map) { @@ -1526,7 +1564,7 @@ static INPUT_PORTS_START( norautua ) INPUT_PORTS_END -static INPUT_PORTS_START( dphla ) +static INPUT_PORTS_START( dphl ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Deal") @@ -1577,6 +1615,16 @@ static INPUT_PORTS_START( dphla ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END + +static INPUT_PORTS_START( dphla ) + + PORT_INCLUDE( dphl ) + + PORT_MODIFY("IN0") + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(ticket_dispenser_device::line_r)) // hopper +INPUT_PORTS_END + + static INPUT_PORTS_START( drhl ) PORT_INCLUDE( dphla ) @@ -1643,6 +1691,54 @@ static INPUT_PORTS_START( ssjkrpkr ) INPUT_PORTS_END +static INPUT_PORTS_START( sureshoto ) + + PORT_INCLUDE( dphl ) + + PORT_MODIFY("IN0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Break (Deal)") + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) // unused bet + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) // unused coin 2 + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // unused hi + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) // unused lo + + PORT_MODIFY("IN1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Safe (Stand)") PORT_CODE(KEYCODE_D) // Stand: keep the hand + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Shoot (Draw)") + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Scratch (Hold) 1") + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Scratch (Hold) 2") + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Scratch (Hold) 3") + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Scratch (Hold) 4") + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Scratch (Hold) 5") + + PORT_MODIFY("DSW1") + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:8") + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:7") + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:6") + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:5") + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:4") + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x60, 0x60, "2 Wild Cues" ) PORT_DIPLOCATION("DSW1:2,3") + PORT_DIPSETTING( 0x60, "Never" ) + PORT_DIPSETTING( 0x40, "When 4 or more is bet" ) + PORT_DIPSETTING( 0x20, "When 4 or more is bet" ) + PORT_DIPSETTING( 0x00, "Always" ) + PORT_DIPNAME( 0x80, 0x80, "Test Mode" ) PORT_DIPLOCATION("DSW1:1") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + +INPUT_PORTS_END + + /********************************************* * Graphics Layouts * *********************************************/ @@ -1682,8 +1778,8 @@ static const gfx_layout charlayout32x32 = // GFX are stored in the 2nd half... Maybe the HW could handle 2 bitplanes? static GFXDECODE_START( gfx_norautp ) - GFXDECODE_ENTRY( "gfx", 0x800, charlayout, 0, 4 ) - GFXDECODE_ENTRY( "gfx", 0x800, charlayout32x32, 0, 4 ) + GFXDECODE_ENTRY( "gfx", 0x800, charlayout, 0, 8 ) + GFXDECODE_ENTRY( "gfx", 0x800, charlayout32x32, 0, 8 ) GFXDECODE_END @@ -1822,7 +1918,9 @@ void norautp_state::noraut_base(machine_config &config) m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_norautp); - PALETTE(config, m_palette, FUNC(norautp_state::norautp_palette), 8); + PALETTE(config, m_palette, FUNC(norautp_state::norautp_palette), 16); + + HOPPER(config, m_hopper, attotime::from_msec(150)); // sound hardware SPEAKER(config, "mono").front_center(); @@ -1934,7 +2032,8 @@ void norautp_state::cdrawpkr(machine_config &config) m_screen->set_visarea(5*8, 61*8-1, (0*16) + 8, 16*16-1); } -/************** 8080 based **************/ + +/************** i8080 based **************/ void norautp_state::dphl(machine_config &config) { @@ -1966,6 +2065,23 @@ void norautp_state::dphla(machine_config &config) m_discrete->set_intf(dphl_discrete); } +void norautp_state::sureshoto(machine_config &config) +{ + noraut_base(config); + + // basic machine hardware + I8080(config.replace(), m_maincpu, DPHL_CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &norautp_state::dphl_map); + m_maincpu->set_addrmap(AS_IO, &norautp_state::dphl_portmap); + m_maincpu->set_vblank_int("screen", FUNC(norautp_state::irq0_line_hold)); + + TIMER(config, "test_timer").configure_periodic(FUNC(norautp_state::test_timer_cb), attotime::from_usec(100)); + PALETTE(config.replace(), "palette", FUNC(norautp_state::sureshoto_palette), 16); + + // sound hardware + m_discrete->set_intf(dphl_discrete); +} + void norautp_state::kimbldhl(machine_config &config) { noraut_base(config); @@ -2004,7 +2120,7 @@ void norautp_state::drhl(machine_config &config) m_maincpu->set_addrmap(AS_IO, &norautp_state::drhl_portmap); m_maincpu->set_vblank_int("screen", FUNC(norautp_state::irq0_line_hold)); - PALETTE(config.replace(), "palette", FUNC(norautp_state::drhl_palette), 8); + PALETTE(config.replace(), "palette", FUNC(norautp_state::drhl_palette), 16); // sound hardware m_discrete->set_intf(dphl_discrete); @@ -3137,11 +3253,11 @@ ROM_START( newhilop ) ROM_END -//*************************************** 8080 sets ************************************** -//* * -//* The following ones are 'Draw Poker HI-LO' type, running in a 8080 based hardware * -//* * -//**************************************************************************************** +//************************************* i8080 sets ************************************* +//* * +//* The following ones are 'Draw Poker HI-LO' type, running in a 8080 based hardware * +//* * +//************************************************************************************** /* @@ -4015,15 +4131,13 @@ ROM_START( fastdrwp ) ROM_END /* - - Unknown DPHL rev 1. + Sure Shot + SMS Manufacturing, 1993. No extra info inside the zip. Just ROM dumps... - Maybe from SMS Manufacturing, since there are GFX tiles with the SMS logo. */ - -ROM_START( dphlunka ) +ROM_START( sureshoto ) ROM_REGION( 0x10000, "maincpu", 0 ) // no stack, call's RET go to PC=0 ROM_LOAD( "u-12_ss.u12", 0x0000, 0x1000, CRC(10ddbc16) SHA1(ab683d836c9223bc67701e092c2cb95afc0f0fa2) ) ROM_LOAD( "u-18_ss.u18", 0x1000, 0x1000, CRC(ffbac2bf) SHA1(219247624e0eb0c0c805f5f9a96c4b6b60c9c5ac) ) @@ -4935,6 +5049,31 @@ void norautp_state::init_ssa() // ROM[0x07b1] = 0x00; } +void norautp_state::init_unka() +{ + uint8_t *ROM = memregion("maincpu")->base(); + ROM[0x0000] = 0x00; + ROM[0x0001] = 0xf3; + ROM[0x0002] = 0x31; + ROM[0x0003] = 0xff; + ROM[0x0004] = 0xd0; + ROM[0x0005] = 0xc3; + ROM[0x0006] = 0x80; + ROM[0x0007] = 0x01; + ROM[0x01d5] = 0xaf; + +} + +void norautp_state::init_unkb() +{ + uint8_t *ROM = memregion("gfx")->base(); + for (int i = 0x0680; i < 0x0740; i++) + { + ROM[i] = ~ROM[i]; + ROM[i + 0X800] = ~ROM[i + 0X800]; + } +} + /********************************************* * Game Drivers * @@ -4977,13 +5116,13 @@ GAMEL( 1984, cdrawpkr, 0, cdrawpkr, cdrawpkr, norautp_state, empty_init, //*************************************************************************************** // YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT -GAMEL( 1982, dphl, 0, dphl, dphla, norautp_state, empty_init, ROT0, "M.Kramer Manufacturing.", "Draw Poker HI-LO (M.Kramer)", MACHINE_IMPERFECT_GRAPHICS, layout_noraut10 ) -GAMEL( 1983, dphla, 0, dphla, dphla, norautp_state, empty_init, ROT0, "", "Joker Poker (Kramer, Alt)", MACHINE_NOT_WORKING, layout_noraut10 ) // call attendant -GAMEL( 1983, dphljp, 0, dphl, dphla, norautp_state, empty_init, ROT0, "", "Draw Poker HI-LO (Japanese)", MACHINE_IMPERFECT_GRAPHICS, layout_noraut10 ) +GAMEL( 1982, dphl, 0, dphl, dphl, norautp_state, empty_init, ROT0, "M.Kramer Manufacturing.", "Draw Poker HI-LO (M.Kramer)", MACHINE_IMPERFECT_GRAPHICS, layout_noraut10 ) +GAMEL( 1983, dphla, 0, dphla, dphla, norautp_state, empty_init, ROT0, "", "Joker Poker (Kramer, Alt)", 0, layout_noraut10 ) +GAMEL( 1983, dphljp, 0, dphl, dphl, norautp_state, empty_init, ROT0, "", "Draw Poker HI-LO (Japanese)", MACHINE_IMPERFECT_GRAPHICS, layout_noraut10 ) GAME( 198?, kimbldhl, 0, kimbldhl, norautp, norautp_state, empty_init, ROT0, "Kimble Ireland", "Kimble Double HI-LO", MACHINE_NOT_WORKING ) GAME( 1983, gtipoker, 0, dphl, norautp, norautp_state, empty_init, ROT0, "GTI Inc", "GTI Poker", MACHINE_NOT_WORKING ) GAME( 1983, gtipokra, 0, dphla, norautp, norautp_state, empty_init, ROT0, "GTI Inc", "GTI Poker? (SMS hardware)", MACHINE_NOT_WORKING ) -GAMEL( 1983, smshilo, 0, dphl, dphla, norautp_state, empty_init, ROT0, "SMS Manufacturing Corp.", "HI-LO Double Up Joker Poker", MACHINE_IMPERFECT_GRAPHICS, layout_noraut10 ) +GAMEL( 1983, smshilo, 0, dphl, dphl, norautp_state, empty_init, ROT0, "SMS Manufacturing Corp.", "HI-LO Double Up Joker Poker", MACHINE_IMPERFECT_GRAPHICS, layout_noraut10 ) GAMEL( 1986, drhl, 0, drhl, drhl, norautp_state, empty_init, ROT0, "Drews Inc.", "Drews Revenge (v.2.89, set 1)", 0, layout_noraut10 ) GAMEL( 1986, drhla, drhl, drhl, drhl, norautp_state, empty_init, ROT0, "Drews Inc.", "Drews Revenge (v.2.89, set 2)", 0, layout_noraut10 ) GAMEL( 1982, ssjkrpkr, 0, ssjkrpkr, ssjkrpkr, norautp_state, init_ssa, ROT0, "Southern Systems & Assembly", "Southern Systems Joker Poker", 0, layout_noraut10 ) @@ -4996,9 +5135,9 @@ GAME( 1993, tpoker2, 0, dphltest, norautp, norautp_state, empty_init, R //* The following ones are still unknown. No info about name, CPU, manufacturer, or HW * //************************************************************************************** -// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT -GAME( 198?, fastdrwp, 0, dphl, norautp, norautp_state, empty_init, ROT0, "Stern Electronics?", "Fast Draw (poker conversion kit)?", MACHINE_NOT_WORKING ) -GAME( 198?, dphlunka, 0, dphl, norautp, norautp_state, empty_init, ROT0, "SMS Manufacturing Corp.", "Draw Poker HI-LO (unknown, rev 1)", MACHINE_NOT_WORKING ) -GAMEL( 198?, dphlunkb, 0, dphl, dphla, norautp_state, empty_init, ROT0, "SMS Manufacturing Corp.", "Draw Poker HI-LO (unknown, rev 2)", MACHINE_NOT_WORKING, layout_noraut10 ) // call attendant -GAME( 198?, pkii_dm, 0, nortest1, norautp, norautp_state, empty_init, ROT0, "", "unknown poker game PKII/DM", MACHINE_NOT_WORKING ) -GAME( 1989, unkljfpk, 0, nortest1, norautp, norautp_state, empty_init, ROT0, "LJF Corporation", "unknown LJF Corporation poker game", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT +GAME( 198?, fastdrwp, 0, dphl, norautp, norautp_state, empty_init, ROT0, "Stern Electronics?", "Fast Draw (poker conversion kit)?", MACHINE_NOT_WORKING ) +GAMEL( 1983, sureshoto, 0, sureshoto, sureshoto, norautp_state, init_unka, ROT0, "SMS Manufacturing Corp.", "Sure Shot (older, dphl hardware)", MACHINE_IMPERFECT_GRAPHICS, layout_noraut09_sureshot ) +GAMEL( 198?, dphlunkb, 0, dphl, dphla, norautp_state, init_unkb, ROT0, "SMS Manufacturing Corp.", "Draw Poker HI-LO (alt GFX)", MACHINE_IMPERFECT_GRAPHICS, layout_noraut10 ) +GAME( 198?, pkii_dm, 0, nortest1, norautp, norautp_state, empty_init, ROT0, "", "unknown poker game PKII/DM", MACHINE_NOT_WORKING ) +GAME( 1989, unkljfpk, 0, nortest1, norautp, norautp_state, empty_init, ROT0, "LJF Corporation", "unknown LJF Corporation poker game", MACHINE_NOT_WORKING )