diff --git a/src/mame/layout/noraut10.lay b/src/mame/layout/noraut10.lay
new file mode 100644
index 00000000000..5980eaa5a99
--- /dev/null
+++ b/src/mame/layout/noraut10.lay
@@ -0,0 +1,178 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/layout/noraut11.lay b/src/mame/layout/noraut11.lay
index 81e186cb3ca..8972ebdfdc1 100644
--- a/src/mame/layout/noraut11.lay
+++ b/src/mame/layout/noraut11.lay
@@ -190,41 +190,40 @@ license:CC0-1.0
-
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
+
+
+
+
-
+
+
+
+
+
+
+
+
-
+
diff --git a/src/mame/layout/noraut12.lay b/src/mame/layout/noraut12.lay
index 8a7dbefbb7e..6aa52c24dcf 100644
--- a/src/mame/layout/noraut12.lay
+++ b/src/mame/layout/noraut12.lay
@@ -12,7 +12,7 @@ license:CC0-1.0
-
+
@@ -25,7 +25,7 @@ license:CC0-1.0
-
+
@@ -38,7 +38,7 @@ license:CC0-1.0
-
+
@@ -51,7 +51,7 @@ license:CC0-1.0
-
+
@@ -64,7 +64,7 @@ license:CC0-1.0
-
+
@@ -77,7 +77,7 @@ license:CC0-1.0
-
+
@@ -90,7 +90,7 @@ license:CC0-1.0
-
+
@@ -103,7 +103,7 @@ license:CC0-1.0
-
+
@@ -117,7 +117,7 @@ license:CC0-1.0
-
+
@@ -130,7 +130,7 @@ license:CC0-1.0
-
+
@@ -167,43 +167,43 @@ license:CC0-1.0
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
diff --git a/src/mame/misc/norautp.cpp b/src/mame/misc/norautp.cpp
index 013ee53b642..91b4f91f2b1 100644
--- a/src/mame/misc/norautp.cpp
+++ b/src/mame/misc/norautp.cpp
@@ -558,6 +558,24 @@
through a DIP switch.
+ [2025-03]
+
+ - Consolidate driver in one file.
+ - New palette for drhl and drhla.
+ - Added new test functions for drhl, drhla, dphl, and dphla.
+ - Cleaned all the conditional unused things.
+ - Rewrote inputs for different sets.
+ - DIP switches improvements for norautp, norautrh,
+ - New inputs for norautua, dphla, drhl, ssjkrpkr.
+ - New portmap for dphl, dphla.
+ - Added Interrupts through vertical sync for all sets based on i8080.
+ - Fixed norautua and norautub table for bin to bcd conversion.
+ - New button-lamps layout with 10 buttons for dphl, dphla, dphljp,
+ drhl, drhla, and ssjkrpkr.
+ - Clickable buttons for all former buttons-lamps layouts.
+ - Promoted drhl, drhla, norautua, norautub, and ssjkrpkr to working.
+
+
TODO:
- Check the 3rd PPI device at 0xc0-0xc3 (VRAM).
@@ -570,19 +588,33 @@
- Parent/clone relationship.
+ issues...
+
+ - norautua: overflow drawing cards (possible straight draw).
+ changing one card, draw a 6th card at the right.
+
+ - dphl behaviour is close to dphlunkb.
+
+ - dphla is working, but when pay a hand is stuck spitting "call attendant".
+
+
*******************************************************************************/
#include "emu.h"
-#include "norautp.h"
#include "cpu/i8085/i8085.h"
#include "cpu/z80/z80.h"
+#include "machine/i8255.h"
#include "machine/nvram.h"
+#include "sound/discrete.h"
+#include "emupal.h"
+#include "screen.h"
#include "speaker.h"
#include "noraut11.lh"
#include "noraut12.lh"
+#include "noraut10.lh"
#define NORAUT_MASTER_CLOCK XTAL(18'432'000)
@@ -590,6 +622,102 @@
#define NORAUT_CPU_CLOCK NORAUT_MASTER_CLOCK / 8 // 2.30275 MHz - Measured: 2.305 MHz
#define DPHL_CPU_CLOCK DPHL_MASTER_CLOCK / 9 // 2 MHz (from 8224)
+// Discrete Sound Input Nodes
+#define NORAUTP_SND_EN NODE_01
+#define NORAUTP_FREQ_DATA NODE_02
+
+
+class norautp_state : public driver_device
+{
+public:
+ norautp_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_ppi8255(*this, "ppi8255_%u", 0),
+ m_discrete(*this, "discrete"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_screen(*this, "screen"),
+ m_palette(*this, "palette"),
+ m_decrypted_opcodes(*this, "decrypted_opcodes"),
+ m_lamps(*this, "lamp%u", 0U)
+ { }
+
+ void noraut_base(machine_config &config);
+ void kimble(machine_config &config);
+ void kimbldhl(machine_config &config);
+ void norautp(machine_config &config);
+ void norautu(machine_config &config);
+ void norautx4(machine_config &config);
+ void norautpl(machine_config &config);
+ void newhilop(machine_config &config);
+ void dphltest(machine_config &config);
+ void nortest1(machine_config &config);
+ void ssjkrpkr(machine_config &config);
+ void dphl(machine_config &config);
+ void dphla(machine_config &config);
+ void drhl(machine_config &config);
+ void norautxp(machine_config &config);
+ void noraut3(machine_config &config);
+ void cgidjp(machine_config &config);
+ void cdrawpkr(machine_config &config);
+
+ void init_ssa();
+ void init_enc();
+ void init_deb();
+
+protected:
+ virtual void machine_start() override { m_lamps.resolve(); }
+ virtual void video_start() override ATTR_COLD;
+
+private:
+ void ppi2_obf_w(int state);
+ TIMER_CALLBACK_MEMBER(ppi2_ack);
+ uint8_t test2_r();
+ uint8_t test3_r();
+ uint8_t test4_r();
+ void mainlamps_w(uint8_t data);
+ void soundlamps_w(uint8_t data);
+ void counterlamps_w(uint8_t data);
+ void norautp_palette(palette_device &palette) const;
+ void drhl_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;
+ void decrypted_opcodes_map(address_map &map) ATTR_COLD;
+ void dphl_map(address_map &map) ATTR_COLD;
+ void dphl_portmap(address_map &map) ATTR_COLD;
+ void dphla_portmap(address_map &map) ATTR_COLD;
+ void dphla_map(address_map &map) ATTR_COLD;
+ void drhl_portmap(address_map &map) ATTR_COLD;
+ void dphltest_map(address_map &map) ATTR_COLD;
+ void drhl_map(address_map &map) ATTR_COLD;
+ void kimbldhl_map(address_map &map) ATTR_COLD;
+ void kimble_map(address_map &map) ATTR_COLD;
+ void newhilop_map(address_map &map) ATTR_COLD;
+ void noraut3_map(address_map &map) ATTR_COLD;
+ void noraut3_decrypted_opcodes_map(address_map &map) ATTR_COLD;
+ void norautp_map(address_map &map) ATTR_COLD;
+ void norautp_portmap(address_map &map) ATTR_COLD;
+ void norautx4_map(address_map &map) ATTR_COLD;
+ void norautx8_map(address_map &map) ATTR_COLD;
+ void norautxp_map(address_map &map) ATTR_COLD;
+ void norautxp_portmap(address_map &map) ATTR_COLD;
+ void nortest1_map(address_map &map) ATTR_COLD;
+ void ssjkrpkr_map(address_map &map) ATTR_COLD;
+
+ std::unique_ptr m_np_vram;
+ required_device m_maincpu;
+ required_device_array m_ppi8255;
+ required_device m_discrete;
+ required_device m_gfxdecode;
+ required_device m_screen;
+ required_device m_palette;
+ optional_shared_ptr m_decrypted_opcodes;
+ output_finder<12> m_lamps;
+
+ int m_test3 = 1;
+};
+
/*********************************************
* Video Hardware *
@@ -655,6 +783,19 @@ void norautp_state::norautp_palette(palette_device &palette) const
palette.set_pen_color(7, rgb_t(0x00, 0x00, 0x00)); // black
}
+void norautp_state::drhl_palette(palette_device &palette) const
+{
+ // 1st gfx bank paleeta para drhl
+ palette.set_pen_color(0, rgb_t(0x00, 0x00, 0x00)); // black (blue)
+ palette.set_pen_color(1, rgb_t(0xff, 0xff, 0xff)); // white (yellow)
+ palette.set_pen_color(2, rgb_t(0xff, 0x00, 0x00)); // red (blue)
+ palette.set_pen_color(3, rgb_t(0xff, 0xff, 0xff)); // white (white)
+ palette.set_pen_color(4, rgb_t(0xff, 0xff, 0xff)); // white
+ 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)
+}
+
/*******************************************
* R/W Handlers *
@@ -734,22 +875,6 @@ void norautp_state::counterlamps_w(uint8_t data)
}
-/* Game waits for bit 7 (0x80) to be set.
- This should be the /OBF line (PC7) from PPI-2 (handshake).
- PC0-PC2 could be set as input or output.
-*/
-
-//uint8_t norautp_state::ppi2_portc_r()
-//{
-// return;
-//}
-
-//void norautp_state::ppi2_portc_w(uint8_t data)
-//{
-// // PC0-PC2 don't seems to be connected to any output
-//}
-
-
void norautp_state::ppi2_obf_w(int state)
{
machine().scheduler().synchronize(timer_expired_delegate(FUNC(norautp_state::ppi2_ack), this), state);
@@ -766,33 +891,6 @@ TIMER_CALLBACK_MEMBER(norautp_state::ppi2_ack)
}
}
-#ifdef UNUSED_FUNCTION // old implementation
-// game waits for /OBF signal (bit 7) to be set.
-uint8_t norautp_state::test_r()
-{
- return 0xff;
-}
-
-uint8_t norautp_state::vram_data_r()
-{
- return m_np_vram[m_np_addr];
-}
-
-void norautp_state::vram_data_w(uint8_t data)
-{
- m_np_vram[m_np_addr] = data & 0xff;
-
- // trigger 8255-2 port C bit 7 (/OBF)
- // m_ppi8255_2->set_pc_bit(7, 0);
- // m_ppi8255_2->set_pc_bit(7, 1);
-
-}
-
-void norautp_state::vram_addr_w(uint8_t data)
-{
- m_np_addr = data;
-}
-#endif
// game waits for bit 4 (0x10) to be reset.
uint8_t norautp_state::test2_r()
@@ -800,6 +898,29 @@ uint8_t norautp_state::test2_r()
return 0x00;
}
+uint8_t norautp_state::test3_r()
+{
+// return machine().rand() & 0xff;
+
+ if(m_maincpu->pc() == 0x187a)
+ return 0x02 + (machine().rand() & 0x0f);
+ if(m_maincpu->pc() == 0x1881)
+ return 0x00 + (machine().rand() & 0x0f);
+ if(m_maincpu->pc() == 0x188d)
+ return 0x02 + (machine().rand() & 0x0f);
+ m_test3 = (~m_test3 & 0x01);
+
+ logerror("test3: pc:%04x - data:%02x\n", m_maincpu->pc(), m_test3);
+ return m_test3;
+
+}
+
+uint8_t norautp_state::test4_r()
+{
+ m_test3 = (~m_test3 & 0x01) + 0x14;
+ return m_test3;
+}
+
/*********************************************
* Memory Map Information *
@@ -872,15 +993,13 @@ void norautp_state::decrypted_opcodes_map(address_map &map)
map(0x0000, 0x1fff).rom().share(m_decrypted_opcodes);
}
+
void norautp_state::norautp_portmap(address_map &map)
{
map.global_mask(0xff);
map(0x60, 0x63).mirror(0x1c).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xa0, 0xa3).mirror(0x1c).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc0, 0xc3).mirror(0x3c).rw("ppi8255_2", FUNC(i8255_device::read), FUNC(i8255_device::write));
- //map(0xc0, 0xc0).mirror(0x3c).rw(FUNC(norautp_state::vram_data_r), FUNC(norautp_state::vram_data_w));
- //map(0xc1, 0xc1).mirror(0x3c).w(FUNC(norautp_state::vram_addr_w));
- //map(0xc2, 0xc2).mirror(0x3c).r(FUNC(norautp_state::test_r));
map(0xef, 0xef).r(FUNC(norautp_state::test2_r));
}
@@ -919,14 +1038,6 @@ void norautp_state::norautx4_map(address_map &map)
map(0x6000, 0x67ff).ram().share("nvram"); // 6116
}
-#ifdef UNUSED_CODE
-void norautp_state::norautx8_map(address_map &map)
-{
- map(0x0000, 0x7fff).rom(); // need to be checked
- map(0xc000, 0xc7ff).ram().share("nvram"); // 6116
-}
-#endif
-
void norautp_state::noraut3_map(address_map &map)
{
map(0x0000, 0x3fff).rom().region("maincpu", 0x4000);
@@ -944,16 +1055,9 @@ void norautp_state::kimble_map(address_map &map)
{
map(0x0000, 0xbfff).rom();
map(0xc000, 0xc7ff).ram().share("nvram");
- map(0xc800, 0xc9ff).ram(); // working RAM?
+ map(0xc800, 0xcfff).ram(); // working RAM?
}
-#ifdef UNUSED_CODE
-void norautp_state::norautxp_portmap(address_map &map)
-{
- map.global_mask(0xff);
-}
-#endif
-
void norautp_state::newhilop_map(address_map &map)
{
map(0x0000, 0x1fff).rom();
@@ -1033,6 +1137,35 @@ void norautp_state::drhl_map(address_map &map)
}
+void norautp_state::dphla_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x60, 0x63).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0xa0, 0xa3).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0xc0, 0xc3).rw("ppi8255_2", FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0xef, 0xef).r(FUNC(norautp_state::test3_r));
+}
+
+
+void norautp_state::dphl_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x7c, 0x7f).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0xbc, 0xbf).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0xdc, 0xdf).rw("ppi8255_2", FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0xef, 0xef).r(FUNC(norautp_state::test3_r));
+}
+
+void norautp_state::drhl_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x7c, 0x7f).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0xbc, 0xbf).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0xdc, 0xdf).rw("ppi8255_2", FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0xef, 0xef).r(FUNC(norautp_state::test4_r));
+}
+
+
/*********************************************
* Input Ports *
*********************************************/
@@ -1044,7 +1177,7 @@ static INPUT_PORTS_START( norautp )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Bet / Collect")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) // Coin A
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) // Coin B
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) PORT_NAME("IN0-5")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PORT_CODE(KEYCODE_K) PORT_NAME("IN0-5")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_NAME("Hi")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_LOW ) PORT_NAME("Lo")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT )
@@ -1065,28 +1198,28 @@ static INPUT_PORTS_START( norautp )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) PORT_NAME("Low Level Hopper")
PORT_START("DSW1")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
+ 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_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_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_DIPNAME( 0x08, 0x08, "Random Raise Bet" ) PORT_DIPLOCATION("DSW1:5")
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
+ 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( 0x20, 0x20, DEF_STR( Coinage ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW1:3")
PORT_DIPSETTING( 0x20, "A=5; B=25; C=1" )
PORT_DIPSETTING( 0x00, "A=50; B=25; C=5" )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:2")
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, "Set Value" )
+ PORT_DIPNAME( 0x80, 0x80, "Set Value" ) PORT_DIPLOCATION("DSW1:1")
PORT_DIPSETTING( 0x80, "2 Pence" )
PORT_DIPSETTING( 0x00, "10 Pence" )
INPUT_PORTS_END
@@ -1120,15 +1253,19 @@ static INPUT_PORTS_START( norautrh )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("DSW1")
+ // to find the function...
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, "Bet Max" ) PORT_DIPLOCATION("DSW1:6")
- PORT_DIPSETTING( 0x04, "5" )
- PORT_DIPSETTING( 0x00, "25" )
+
+ PORT_DIPNAME( 0x04, 0x04, "Bet Max" ) PORT_DIPLOCATION("DSW1:6")
+ PORT_DIPSETTING( 0x04, "1" ) PORT_CONDITION("DSW1", 0x80, EQUALS, 0x00)
+ PORT_DIPSETTING( 0x00, "20" ) PORT_CONDITION("DSW1", 0x80, EQUALS, 0x00)
+ PORT_DIPSETTING( 0x04, "5 " ) PORT_CONDITION("DSW1", 0x80, EQUALS, 0x80)
+ PORT_DIPSETTING( 0x00, "25" ) PORT_CONDITION("DSW1", 0x80, EQUALS, 0x80)
PORT_DIPNAME( 0x08, 0x08, "Raise Ante" ) PORT_DIPLOCATION("DSW1:5")
PORT_DIPSETTING( 0x08, "Random" )
PORT_DIPSETTING( 0x00, "Always" )
@@ -1137,8 +1274,8 @@ static INPUT_PORTS_START( norautrh )
PORT_DIPSETTING( 0x00, "Joker Poker" )
PORT_DIPNAME( 0xa0, 0x20, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW1:3,1")
PORT_DIPSETTING( 0x00, "A=1; B=5" )
- PORT_DIPSETTING( 0xa0, "A=5; B=25" )
PORT_DIPSETTING( 0x20, "A=10; B=5" )
+ PORT_DIPSETTING( 0xa0, "A=5; B=25" )
PORT_DIPSETTING( 0x80, "A=50; B=25" )
PORT_DIPNAME( 0x40, 0x00, "Show Bet") PORT_DIPLOCATION("DSW1:2")
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
@@ -1353,6 +1490,149 @@ static INPUT_PORTS_START( noraut3 )
INPUT_PORTS_END
+static INPUT_PORTS_START( norautua )
+
+ PORT_INCLUDE( norautrh )
+
+ PORT_MODIFY("DSW1")
+ // to find the function...
+ 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, "Bet Max" ) PORT_DIPLOCATION("DSW1:6")
+ PORT_DIPSETTING( 0x04, "1" ) PORT_CONDITION("DSW1", 0x80, EQUALS, 0x00)
+ PORT_DIPSETTING( 0x00, "20" ) PORT_CONDITION("DSW1", 0x80, EQUALS, 0x00)
+ PORT_DIPSETTING( 0x04, "5 " ) PORT_CONDITION("DSW1", 0x80, EQUALS, 0x80)
+ PORT_DIPSETTING( 0x00, "25" ) PORT_CONDITION("DSW1", 0x80, EQUALS, 0x80)
+ PORT_DIPNAME( 0xa0, 0x20, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW1:3,1")
+ PORT_DIPSETTING( 0x00, "A=1; B=5" )
+ PORT_DIPSETTING( 0x20, "A=10; B=5" )
+ PORT_DIPSETTING( 0x80, "A=5; B=25" )
+ PORT_DIPSETTING( 0xa0, "A=50; B=25" )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( dphla )
+
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Deal")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Bet / Collect")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) // Coin A OK
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("IN0-5") PORT_CODE(KEYCODE_K) // give "ERROR" in some games
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_NAME("Hi")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_LOW ) PORT_NAME("Lo")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Stand")PORT_CODE(KEYCODE_D) // Stand: keep the hand
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Draw")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD1 )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD2 )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD3 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD4 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD5 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_POKER_CANCEL )
+
+ PORT_START("IN2") // unused
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) // PPI set for PORT C all outputs
+
+ PORT_START("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, "Cards to discard" ) PORT_DIPLOCATION("DSW1:4")
+ PORT_DIPSETTING( 0x10, "All 5 cards" )
+ PORT_DIPSETTING( 0x00, "Max 3 cards" )
+ PORT_DIPNAME( 0x60, 0x60, "2 Jokers in Deck" ) PORT_DIPLOCATION("DSW1:2,3")
+ PORT_DIPSETTING( 0x60, "Never" )
+ PORT_DIPSETTING( 0x40, "When 8 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
+
+static INPUT_PORTS_START( drhl )
+
+ PORT_INCLUDE( dphla )
+
+ PORT_MODIFY("DSW1")
+ // to find the function...
+ 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, "Test Mode" ) PORT_DIPLOCATION("DSW1:5")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x30, 0x30, "Max Bet" ) PORT_DIPLOCATION("DSW1:3,4")
+ PORT_DIPSETTING( 0x10, "10" )
+ PORT_DIPSETTING( 0x00, "20" )
+ PORT_DIPSETTING( 0x30, "30" )
+ PORT_DIPSETTING( 0x20, "30" )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW1:2")
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) )
+ PORT_DIPNAME( 0x80, 0x80, "Bonus" ) PORT_DIPLOCATION("DSW1:1")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( ssjkrpkr )
+
+ PORT_INCLUDE( dphla )
+
+ 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, "Cards to Discard" ) PORT_DIPLOCATION("DSW1:7")
+ PORT_DIPSETTING( 0x02, "All 5 cards" )
+ PORT_DIPSETTING( 0x00, "Max 3 cards" )
+ PORT_DIPNAME( 0x04, 0x00, "Double-Up" ) PORT_DIPLOCATION("DSW1:6")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x18, 0x10, "Max Bet" ) PORT_DIPLOCATION("DSW1:4,5")
+ PORT_DIPSETTING( 0x18, "1" )
+ PORT_DIPSETTING( 0x08, "4" )
+ PORT_DIPSETTING( 0x00, "9" )
+ PORT_DIPSETTING( 0x10, "25" )
+
+ PORT_DIPNAME( 0x20, 0x00, "Break Game (set ON)" ) PORT_DIPLOCATION("DSW1:3")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Coinage ) ) PORT_DIPLOCATION("DSW1:2")
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) )
+
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:1")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+
/*********************************************
* Graphics Layouts *
*********************************************/
@@ -1397,6 +1677,97 @@ static GFXDECODE_START( gfx_norautp )
GFXDECODE_END
+/**************************************************
+* Discrete Sound Hardware *
+**************************************************/
+
+static const discrete_555_desc desc_norautp_555 =
+{
+ DISC_555_OUT_ENERGY | DISC_555_OUT_AC,
+ 5, // B+ voltage of 555
+ DEFAULT_555_VALUES
+};
+
+
+#define NORAUTP_SOUND_CIRCUIT(_name, _r1, _r2, _c1, _c2, _c3, _c4) \
+static const discrete_comp_adder_table desc_##_name##_caps = \
+{ \
+ DISC_COMP_P_CAPACITOR, _c4, 3, \
+ { \
+ _c3, _c2, _c1 \
+ } \
+}; \
+ \
+DISCRETE_SOUND_START( _name##_discrete ) \
+ /************************************************ \
+ * Input register mapping \
+ ************************************************/ \
+ DISCRETE_INPUT_LOGIC(NORAUTP_SND_EN) \
+ DISCRETE_INPUT_DATA (NORAUTP_FREQ_DATA) \
+ \
+ /************************************************ \
+ * Tone Generator \
+ ************************************************/ \
+ DISCRETE_COMP_ADDER(NODE_20, NORAUTP_FREQ_DATA, &desc_##_name##_caps) \
+ DISCRETE_555_ASTABLE(NODE_21, \
+ NORAUTP_SND_EN, /* RESET */ \
+ _r2, _r1, NODE_20, &desc_norautp_555) \
+ \
+ DISCRETE_OUTPUT(NODE_21, 65000.0/3.8) \
+DISCRETE_SOUND_END
+
+
+/***** Noraut Poker *****/
+
+/* Parts List - Resistors */
+#define NORAUTP_R1 RES_K(120)
+#define NORAUTP_R2 RES_K(2.2)
+
+/* Parts List - Capacitors */
+#define NORAUTP_C1 CAP_U(.01)
+#define NORAUTP_C2 CAP_U(.022)
+#define NORAUTP_C3 CAP_U(.047)
+#define NORAUTP_C4 CAP_U(.01)
+
+NORAUTP_SOUND_CIRCUIT(norautp,
+ NORAUTP_R1, NORAUTP_R2,
+ NORAUTP_C1, NORAUTP_C2, NORAUTP_C3, NORAUTP_C4)
+
+
+/***** Draw Poker HI-LO *****/
+
+/* Parts List - Resistors */
+#define DPHL_R1 RES_K(120)
+#define DPHL_R2 RES_K(1)
+
+/* Parts List - Capacitors */
+#define DPHL_C1 CAP_U(.01)
+#define DPHL_C2 CAP_U(.022)
+#define DPHL_C3 CAP_U(.05)
+#define DPHL_C4 CAP_U(.01)
+
+NORAUTP_SOUND_CIRCUIT(dphl,
+ DPHL_R1, DPHL_R2,
+ DPHL_C1, DPHL_C2, DPHL_C3, DPHL_C4)
+
+
+/***** Kimble Double HI-LO *****/
+
+/* Parts List - Resistors */
+#define KIMBLE_R1 RES_K(100)
+#define KIMBLE_R2 RES_K(1)
+
+/* Parts List - Capacitors */
+#define KIMBLE_C1 CAP_U(.01)
+#define KIMBLE_C2 CAP_U(.022)
+#define KIMBLE_C3 CAP_U(.047)
+#define KIMBLE_C4 CAP_U(.01)
+
+NORAUTP_SOUND_CIRCUIT(kimble,
+ KIMBLE_R1, KIMBLE_R2,
+ KIMBLE_C1, KIMBLE_C2, KIMBLE_C3, KIMBLE_C4)
+
+
/*********************************************
* Machine Drivers *
*********************************************/
@@ -1502,17 +1873,6 @@ void norautp_state::norautx4(machine_config &config)
m_maincpu->set_vblank_int("screen", FUNC(norautp_state::irq0_line_hold));
}
-#ifdef UNUSED_CODE
-void norautp_state::norautx8(machine_config &config)
-{
- noraut_base(config);
-
- // basic machine hardware
- m_maincpu->set_addrmap(AS_PROGRAM, &norautp_state::norautx8_map);
- m_maincpu->set_vblank_int("screen", FUNC(norautp_state::irq0_line_hold));
-}
-#endif
-
void norautp_state::noraut3(machine_config &config)
{
noraut_base(config);
@@ -1573,7 +1933,8 @@ void norautp_state::dphl(machine_config &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::norautp_portmap);
+ m_maincpu->set_addrmap(AS_IO, &norautp_state::dphl_portmap);
+ m_maincpu->set_vblank_int("screen", FUNC(norautp_state::irq0_line_hold));
// sound hardware
m_discrete->set_intf(dphl_discrete);
@@ -1586,7 +1947,8 @@ void norautp_state::dphla(machine_config &config)
// basic machine hardware
I8080(config.replace(), m_maincpu, DPHL_CPU_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &norautp_state::dphla_map);
- m_maincpu->set_addrmap(AS_IO, &norautp_state::norautp_portmap);
+ m_maincpu->set_addrmap(AS_IO, &norautp_state::dphla_portmap);
+ m_maincpu->set_vblank_int("screen", FUNC(norautp_state::irq0_line_hold));
// sound hardware
m_discrete->set_intf(dphl_discrete);
@@ -1600,6 +1962,7 @@ void norautp_state::kimbldhl(machine_config &config)
I8080(config.replace(), m_maincpu, DPHL_CPU_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &norautp_state::kimbldhl_map);
m_maincpu->set_addrmap(AS_IO, &norautp_state::norautp_portmap);
+ m_maincpu->set_vblank_int("screen", FUNC(norautp_state::irq0_line_hold));
// sound hardware
m_discrete->set_intf(kimble_discrete);
@@ -1613,6 +1976,7 @@ void norautp_state::dphltest(machine_config &config)
I8080(config.replace(), m_maincpu, DPHL_CPU_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &norautp_state::dphltest_map);
m_maincpu->set_addrmap(AS_IO, &norautp_state::norautp_portmap);
+ m_maincpu->set_vblank_int("screen", FUNC(norautp_state::irq0_line_hold));
// sound hardware
m_discrete->set_intf(dphl_discrete);
@@ -1625,7 +1989,10 @@ void norautp_state::drhl(machine_config &config)
// basic machine hardware
I8080(config.replace(), m_maincpu, DPHL_CPU_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &norautp_state::drhl_map);
- m_maincpu->set_addrmap(AS_IO, &norautp_state::norautp_portmap);
+ 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);
// sound hardware
m_discrete->set_intf(dphl_discrete);
@@ -1639,6 +2006,7 @@ void norautp_state::ssjkrpkr(machine_config &config)
I8080(config.replace(), m_maincpu, DPHL_CPU_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &norautp_state::ssjkrpkr_map);
m_maincpu->set_addrmap(AS_IO, &norautp_state::norautp_portmap);
+ m_maincpu->set_vblank_int("screen", FUNC(norautp_state::irq0_line_hold));
// sound hardware
m_discrete->set_intf(dphl_discrete);
@@ -3597,10 +3965,12 @@ ROM_START( ssjkrpkr )
ROM_LOAD( "oc.u11", 0x0000, 0x1000, CRC(b9072aa5) SHA1(bfa3df090e1030aaebbb784cb5e686f4f84f2263) )
ROM_LOAD( "oc.u10", 0x1000, 0x1000, CRC(8652ebb9) SHA1(e907df4f8da99b42c425ed58da3cda9943c89fb7) )
- // All garbage inside. Replaced with generic GFX ROM from DPHLA set, modified to support the "'" char
+ // The ROM is broken and can't get a consistent dump. All is garbage inside.
+ // So, we are using a generic GFX ROM (from DPHLA set), modified to support
+ // the apostrophe, question mark, and arrow down symbols needed for the game.
ROM_REGION( 0x1000, "gfx", 0 )
ROM_FILL( 0x0000, 0x0800, 0xff )
- ROM_LOAD( "oc.u27", 0x0800, 0x0800, BAD_DUMP CRC(ac8e9f2c) SHA1(25ab615de3055e5be78d409194edf7e3c03fe9b9) )
+ ROM_LOAD( "oc.u27", 0x0800, 0x0800, BAD_DUMP CRC(6de843f8) SHA1(4403178b491ba3d8115ebb631450d094be730edc) )
ROM_END
@@ -3615,7 +3985,7 @@ ROM_END
The set was found as 'fastdraw'. No other info.
Maybe is the poker conversion kit released by Stern as 'Fast Draw':
- http://www.arcadeflyers.com/?page=thumbs&db=videodb&id=4602
+ https://flyers.arcade-museum.com/videogames/show/4362
*/
@@ -4513,8 +4883,20 @@ void norautp_state::init_enc()
case 0x0f: rom[i] = data_sub_table_0f[x]; break;
}
}
+
+ uint8_t *ROM = memregion("maincpu")->base();
+ // fix table for bin to bcd conversion
+ ROM[0x1da0] = 0x10; // 10.000
+ ROM[0x1da1] = 0x27;
+ ROM[0x1da2] = 0xe8; // 1.000
+ ROM[0x1da3] = 0x03;
+ ROM[0x1da4] = 0x64; // 100
+ ROM[0x1da5] = 0x00;
+ ROM[0x1da6] = 0x0a; // 10
+ ROM[0x1da7] = 0x00;
}
+
void norautp_state::init_deb()
// Just for debugging purposes
// Should be removed soon
@@ -4525,6 +4907,7 @@ void norautp_state::init_deb()
ROM[0x206c] = 0xff;
}
+
void norautp_state::init_ssa()
/* Passing the video PPI handshaking lines */
/* Just for debugging purposes */
@@ -4549,61 +4932,61 @@ void norautp_state::init_ssa()
//* The following ones are 'Draw Poker HI-LO' type, running in a Z80 based hardware *
//**************************************************************************************
-// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS LAYOUT
-GAMEL( 1988, norautp, 0, norautp, norautp, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Poker", 0, layout_noraut11 )
-GAMEL( 198?, norautdx, 0, norautp, norautpn, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Deluxe Poker (console)", 0, layout_noraut12 )
-GAMEL( 198?, norautpn, norautp, norautp, norautpn, norautp_state, empty_init, ROT0, "bootleg", "Noraut Deluxe Poker (bootleg)", 0, layout_noraut12 )
-GAMEL( 198?, norautjo, 0, norautp, mainline, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Joker Poker (original)", 0, layout_noraut12 )
-GAMEL( 198?, norautpl, 0, norautpl, mainline, norautp_state, empty_init, ROT0, "Video Fun Games Ltd.", "Noraut Joker Poker (Prologic HW)", 0, layout_noraut12 )
-GAMEL( 1988, norautjp, norautp, norautp, norautp, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Joker Poker (alt)", 0, layout_noraut11 )
-GAMEL( 1988, norautrh, 0, norautp, norautrh, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Red Hot Joker Poker", 0, layout_noraut12 )
-GAMEL( 198?, norautra, 0, norautp, norautrh, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Red Hot Joker Poker (alt HW)", 0, layout_noraut12 ) // 1-bet?? where??...
-GAME( 1988, norautu, 0, norautxp, norautp, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Poker (NTX10A)", MACHINE_NOT_WORKING )
-GAMEL( 2002, noraut3a, 0, noraut3, noraut3, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Jacks Plus / Joker Poker (V3.010a)", MACHINE_NOT_WORKING, layout_noraut12 )
-GAMEL( 2003, noraut3b, 0, noraut3, noraut3, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Jacks Plus / Joker Poker (V3.011a)", MACHINE_NOT_WORKING, layout_noraut12 )
-GAMEL( 198?, norautua, 0, norautu, norautp, norautp_state, init_enc, ROT0, "Noraut Ltd.", "Noraut Joker Poker (console, set 1)", MACHINE_NOT_WORKING, layout_noraut12 )
-GAMEL( 198?, norautub, 0, norautu, norautp, norautp_state, init_enc, ROT0, "Noraut Ltd.", "Noraut Joker Poker (console, set 2)", MACHINE_NOT_WORKING, layout_noraut12 )
-GAMEL( 198?, mainline, 0, norautp, mainline, norautp_state, empty_init, ROT0, "Mainline London", "Mainline Double Joker Poker", 0, layout_noraut12 )
-GAMEL( 199?, df_djpkr, 0, norautp, mainline, norautp_state, empty_init, ROT0, "DellFern Ltd.", "Double Joker Poker (45%-75% payout)", 0, layout_noraut12 )
-GAMEL( 2005, ndxron10, 0, norautp, ndxron10, norautp_state, empty_init, ROT0, "", "Royal on Ten (hack of Noraut Deluxe Poker)", 0, layout_noraut12 )
-GAMEL( 1999, cgip30cs, 0, norautx4, norautkl, norautp_state, init_deb, ROT0, "CGI", "Credit Poker (ver.30c, standard)", 0, layout_noraut12 ) // CGI - Credit Poker, VERSION 30C, 21/12/99
-GAMEL( 1999, cgip30b, cgip30cs,norautx4, norautkl, norautp_state, empty_init, ROT0, "CGI", "Credit Poker (ver.30b, 7 & 9 bonus)", 0, layout_noraut12 ) // CGI - Credit Poker, VERSION 30B, 7 &9 BONUS, 21/12/99 BY V.S. for CGI
-GAMEL( 1998, cgip23b, cgip30cs,norautx4, norautkl, norautp_state, empty_init, ROT0, "CGI", "Credit Poker (ver.23b, 7 & 9 bonus)", 0, layout_noraut12 ) // CGI - Credit Poker, VERSION 23B, 7 &9 BONUS, 31.03.98. BY V.S.
-GAMEL( 19??, cgidjp, 0, cgidjp, mainline, norautp_state, empty_init, ROT0, "CGI", "Double Joker Poker (CGI)", 0, layout_noraut12 ) // very similar to df_djpkr
-GAME( 198?, kimblz80, 0, kimble, norautp, norautp_state, empty_init, ROT0, "Kimble Ireland", "Kimble Double HI-LO (z80 version)", MACHINE_NOT_WORKING )
-GAME( 1983, pma, 0, nortest1, norautp, norautp_state, empty_init, ROT0, "PMA", "PMA Poker", MACHINE_NOT_WORKING )
-GAMEL( 198?, bjpoker, 0, norautxp, norautrh, norautp_state, empty_init, ROT0, "M.Kramer Manufacturing.", "Poker / Black Jack (Model 7521)", MACHINE_NOT_WORKING, layout_noraut12 )
-GAME( 19??, newhilop, 0, newhilop, norautp, norautp_state, empty_init, ROT0, "Song Won?", "New Hi-Low Poker", MACHINE_NOT_WORKING )
-GAMEL( 1984, cdrawpkr, 0, cdrawpkr, cdrawpkr, norautp_state, empty_init, ROT0, "Coinmaster", "Draw Poker (Joker Poker V.01)", 0, layout_noraut11 )
+// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS LAYOUT
+GAMEL( 1988, norautp, 0, norautp, norautp, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Poker", 0, layout_noraut11 )
+GAMEL( 198?, norautdx, 0, norautp, norautpn, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Deluxe Poker (console)", 0, layout_noraut12 )
+GAMEL( 198?, norautpn, norautp, norautp, norautpn, norautp_state, empty_init, ROT0, "bootleg", "Noraut Deluxe Poker (bootleg)", 0, layout_noraut12 )
+GAMEL( 198?, norautjo, 0, norautp, mainline, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Joker Poker (original)", 0, layout_noraut12 )
+GAMEL( 198?, norautpl, 0, norautpl, mainline, norautp_state, empty_init, ROT0, "Video Fun Games Ltd.", "Noraut Joker Poker (Prologic HW)", 0, layout_noraut12 )
+GAMEL( 1988, norautjp, norautp, norautp, norautp, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Joker Poker (alt)", 0, layout_noraut11 )
+GAMEL( 1988, norautrh, 0, norautp, norautrh, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Red Hot Joker Poker", 0, layout_noraut12 )
+GAMEL( 198?, norautra, 0, norautp, norautrh, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Red Hot Joker Poker (alt HW)", 0, layout_noraut12 )
+GAME( 1988, norautu, 0, norautxp, norautp, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Poker (NTX10A)", MACHINE_NOT_WORKING )
+GAMEL( 2002, noraut3a, 0, noraut3, noraut3, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Jacks Plus / Joker Poker (V3.010a)", MACHINE_NOT_WORKING, layout_noraut12 )
+GAMEL( 2003, noraut3b, 0, noraut3, noraut3, norautp_state, empty_init, ROT0, "Noraut Ltd.", "Noraut Jacks Plus / Joker Poker (V3.011a)", MACHINE_NOT_WORKING, layout_noraut12 )
+GAMEL( 198?, norautua, 0, norautu, norautua, norautp_state, init_enc, ROT0, "Noraut Ltd.", "Noraut Joker Poker (console, set 1)", MACHINE_IMPERFECT_GRAPHICS, layout_noraut12 ) // sometimes draw a repeated card
+GAMEL( 198?, norautub, norautua, norautu, norautua, norautp_state, init_enc, ROT0, "Noraut Ltd.", "Noraut Joker Poker (console, set 2)", 0, layout_noraut12 )
+GAMEL( 198?, mainline, 0, norautp, mainline, norautp_state, empty_init, ROT0, "Mainline London", "Mainline Double Joker Poker", 0, layout_noraut12 )
+GAMEL( 199?, df_djpkr, 0, norautp, mainline, norautp_state, empty_init, ROT0, "DellFern Ltd.", "Double Joker Poker (45%-75% payout)", 0, layout_noraut12 )
+GAMEL( 2005, ndxron10, 0, norautp, ndxron10, norautp_state, empty_init, ROT0, "", "Royal on Ten (hack of Noraut Deluxe Poker)", 0, layout_noraut12 )
+GAMEL( 1999, cgip30cs, 0, norautx4, norautkl, norautp_state, init_deb, ROT0, "CGI", "Credit Poker (ver.30c, standard)", 0, layout_noraut12 ) // CGI - Credit Poker, VERSION 30C, 21/12/99
+GAMEL( 1999, cgip30b, cgip30cs, norautx4, norautkl, norautp_state, empty_init, ROT0, "CGI", "Credit Poker (ver.30b, 7 & 9 bonus)", 0, layout_noraut12 ) // CGI - Credit Poker, VERSION 30B, 7 &9 BONUS, 21/12/99 BY V.S. for CGI
+GAMEL( 1998, cgip23b, cgip30cs, norautx4, norautkl, norautp_state, empty_init, ROT0, "CGI", "Credit Poker (ver.23b, 7 & 9 bonus)", 0, layout_noraut12 ) // CGI - Credit Poker, VERSION 23B, 7 &9 BONUS, 31.03.98. BY V.S.
+GAMEL( 19??, cgidjp, 0, cgidjp, mainline, norautp_state, empty_init, ROT0, "CGI", "Double Joker Poker (CGI)", 0, layout_noraut12 ) // very similar to df_djpkr
+GAME( 198?, kimblz80, 0, kimble, norautp, norautp_state, empty_init, ROT0, "Kimble Ireland", "Kimble Double HI-LO (z80 version)", MACHINE_NOT_WORKING )
+GAME( 1983, pma, 0, nortest1, norautp, norautp_state, empty_init, ROT0, "PMA", "PMA Poker", MACHINE_NOT_WORKING )
+GAMEL( 198?, bjpoker, 0, norautxp, norautrh, norautp_state, empty_init, ROT0, "M.Kramer Manufacturing.", "Poker / Black Jack (Model 7521)", MACHINE_NOT_WORKING, layout_noraut12 )
+GAME( 19??, newhilop, 0, newhilop, norautp, norautp_state, empty_init, ROT0, "Song Won?", "New Hi-Low Poker", MACHINE_NOT_WORKING )
+GAMEL( 1984, cdrawpkr, 0, cdrawpkr, cdrawpkr, norautp_state, empty_init, ROT0, "Coinmaster", "Draw Poker (Joker Poker V.01)", 0, layout_noraut11 )
//************************************* 8080 sets **************************************
-//* The following ones are 'Draw Poker HI-LO' type, running in a 8080 based hardware *
+//* The following ones are 'Draw Poker HI-LO' type, running in a i8080 based hardware *
//**************************************************************************************
-// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT
-GAME( 1983, dphl, 0, dphl, norautp, norautp_state, empty_init, ROT0, "M.Kramer Manufacturing.", "Draw Poker HI-LO (M.Kramer)", MACHINE_NOT_WORKING )
-GAME( 1983, dphla, 0, dphla, norautp, norautp_state, empty_init, ROT0, "", "Draw Poker HI-LO (Alt)", MACHINE_NOT_WORKING )
-GAME( 1983, dphljp, 0, dphl, norautp, norautp_state, empty_init, ROT0, "", "Draw Poker HI-LO (Japanese)", MACHINE_NOT_WORKING )
-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 )
-GAME( 1983, smshilo, 0, dphla, norautp, norautp_state, empty_init, ROT0, "SMS Manufacturing Corp.", "HI-LO Double Up Joker Poker", MACHINE_NOT_WORKING )
-GAME( 1986, drhl, 0, drhl, norautp, norautp_state, empty_init, ROT0, "Drews Inc.", "Drews Revenge (v.2.89, set 1)", MACHINE_NOT_WORKING )
-GAME( 1986, drhla, drhl, drhl, norautp, norautp_state, empty_init, ROT0, "Drews Inc.", "Drews Revenge (v.2.89, set 2)", MACHINE_NOT_WORKING )
-GAME( 1982, ssjkrpkr, 0, ssjkrpkr, norautp, norautp_state, init_ssa, ROT0, "Southern Systems & Assembly", "Southern Systems Joker Poker", MACHINE_NOT_WORKING )
+// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT
+GAMEL( 1983, dphl, 0, dphl, dphla, norautp_state, empty_init, ROT0, "M.Kramer Manufacturing.", "Draw Poker HI-LO (M.Kramer)", MACHINE_NOT_WORKING, 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_NOT_WORKING, 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 )
+GAME( 1983, smshilo, 0, dphla, norautp, norautp_state, empty_init, ROT0, "SMS Manufacturing Corp.", "HI-LO Double Up Joker Poker", MACHINE_NOT_WORKING )
+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 )
// The following one also has a custom 68705 MCU
-GAME( 1993, tpoker2, 0, dphltest, norautp, norautp_state, empty_init, ROT0, "Micro Manufacturing", "Turbo Poker 2", MACHINE_NOT_WORKING )
+GAME( 1993, tpoker2, 0, dphltest, norautp, norautp_state, empty_init, ROT0, "Micro Manufacturing", "Turbo Poker 2", MACHINE_NOT_WORKING )
//************************************ unknown sets ************************************
//* 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 )
-GAME( 198?, dphlunkb, 0, dphl, norautp, norautp_state, empty_init, ROT0, "SMS Manufacturing Corp.", "Draw Poker HI-LO (unknown, rev 2)", MACHINE_NOT_WORKING )
-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 )
+GAME( 198?, dphlunka, 0, dphl, norautp, norautp_state, empty_init, ROT0, "SMS Manufacturing Corp.", "Draw Poker HI-LO (unknown, rev 1)", MACHINE_NOT_WORKING )
+GAME( 198?, dphlunkb, 0, dphl, norautp, norautp_state, empty_init, ROT0, "SMS Manufacturing Corp.", "Draw Poker HI-LO (unknown, rev 2)", MACHINE_NOT_WORKING )
+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 )
diff --git a/src/mame/misc/norautp.h b/src/mame/misc/norautp.h
deleted file mode 100644
index dc2338a0f62..00000000000
--- a/src/mame/misc/norautp.h
+++ /dev/null
@@ -1,107 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Angelo Salese, Roberto Fresca
-#ifndef MAME_MISC_NORAUTP_H
-#define MAME_MISC_NORAUTP_H
-
-#pragma once
-
-#include "machine/i8255.h"
-#include "sound/discrete.h"
-#include "emupal.h"
-#include "screen.h"
-
-
-/* Discrete Sound Input Nodes */
-#define NORAUTP_SND_EN NODE_01
-#define NORAUTP_FREQ_DATA NODE_02
-
-
-class norautp_state : public driver_device
-{
-public:
- norautp_state(const machine_config &mconfig, device_type type, const char *tag) :
- driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_ppi8255(*this, "ppi8255_%u", 0),
- m_discrete(*this, "discrete"),
- m_gfxdecode(*this, "gfxdecode"),
- m_screen(*this, "screen"),
- m_palette(*this, "palette"),
- m_decrypted_opcodes(*this, "decrypted_opcodes"),
- m_lamps(*this, "lamp%u", 0U)
- { }
-
- void noraut_base(machine_config &config);
- void kimble(machine_config &config);
- void kimbldhl(machine_config &config);
- void norautp(machine_config &config);
- void norautu(machine_config &config);
- void norautx4(machine_config &config);
- void norautpl(machine_config &config);
- void newhilop(machine_config &config);
- void dphltest(machine_config &config);
- void nortest1(machine_config &config);
- void ssjkrpkr(machine_config &config);
- void dphl(machine_config &config);
- void dphla(machine_config &config);
- void drhl(machine_config &config);
- void norautxp(machine_config &config);
- void noraut3(machine_config &config);
- void cgidjp(machine_config &config);
- void cdrawpkr(machine_config &config);
-
- void init_ssa();
- void init_enc();
- void init_deb();
-
-protected:
- virtual void machine_start() override { m_lamps.resolve(); }
- virtual void video_start() override ATTR_COLD;
-
-private:
- void ppi2_obf_w(int state);
- TIMER_CALLBACK_MEMBER(ppi2_ack);
- uint8_t test2_r();
- void mainlamps_w(uint8_t data);
- void soundlamps_w(uint8_t data);
- void counterlamps_w(uint8_t data);
- void norautp_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;
- void decrypted_opcodes_map(address_map &map) ATTR_COLD;
- void dphl_map(address_map &map) ATTR_COLD;
- void dphla_map(address_map &map) ATTR_COLD;
- void dphltest_map(address_map &map) ATTR_COLD;
- void drhl_map(address_map &map) ATTR_COLD;
- void kimbldhl_map(address_map &map) ATTR_COLD;
- void kimble_map(address_map &map) ATTR_COLD;
- void newhilop_map(address_map &map) ATTR_COLD;
- void noraut3_map(address_map &map) ATTR_COLD;
- void noraut3_decrypted_opcodes_map(address_map &map) ATTR_COLD;
- void norautp_map(address_map &map) ATTR_COLD;
- void norautp_portmap(address_map &map) ATTR_COLD;
- void norautx4_map(address_map &map) ATTR_COLD;
- void norautx8_map(address_map &map) ATTR_COLD;
- void norautxp_map(address_map &map) ATTR_COLD;
- void norautxp_portmap(address_map &map) ATTR_COLD;
- void nortest1_map(address_map &map) ATTR_COLD;
- void ssjkrpkr_map(address_map &map) ATTR_COLD;
-
- std::unique_ptr m_np_vram;
- required_device m_maincpu;
- required_device_array m_ppi8255;
- required_device m_discrete;
- required_device m_gfxdecode;
- required_device m_screen;
- required_device m_palette;
- optional_shared_ptr m_decrypted_opcodes;
- output_finder<12> m_lamps;
-};
-
-/*----------- defined in audio/norautp.c -----------*/
-DISCRETE_SOUND_EXTERN( norautp_discrete );
-DISCRETE_SOUND_EXTERN( dphl_discrete );
-DISCRETE_SOUND_EXTERN( kimble_discrete );
-
-#endif // MAME_MISC_NORAUTP_H
diff --git a/src/mame/misc/norautp_a.cpp b/src/mame/misc/norautp_a.cpp
deleted file mode 100644
index c614c75c311..00000000000
--- a/src/mame/misc/norautp_a.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Derrick Renaud, Roberto Fresca
-/************************************************************************
- * Noraut/Kimble/Kramer Poker Sound System Analog emulation
- * Sept 2009, Derrick Renaud & Roberto Fresca.
- ************************************************************************/
-
-#include "emu.h"
-#include "norautp.h"
-
-
-/* Discrete Sound Input Nodes */
-/* defined in norautp.h */
-
-
-static const discrete_555_desc desc_norautp_555 =
-{
- DISC_555_OUT_ENERGY | DISC_555_OUT_AC,
- 5, // B+ voltage of 555
- DEFAULT_555_VALUES
-};
-
-
-#define NORAUTP_SOUND_CIRCUIT(_name, _r1, _r2, _c1, _c2, _c3, _c4) \
-static const discrete_comp_adder_table desc_##_name##_caps = \
-{ \
- DISC_COMP_P_CAPACITOR, _c4, 3, \
- { \
- _c3, _c2, _c1 \
- } \
-}; \
- \
-DISCRETE_SOUND_START( _name##_discrete ) \
- /************************************************ \
- * Input register mapping \
- ************************************************/ \
- DISCRETE_INPUT_LOGIC(NORAUTP_SND_EN) \
- DISCRETE_INPUT_DATA (NORAUTP_FREQ_DATA) \
- \
- /************************************************ \
- * Tone Generator \
- ************************************************/ \
- DISCRETE_COMP_ADDER(NODE_20, NORAUTP_FREQ_DATA, &desc_##_name##_caps) \
- DISCRETE_555_ASTABLE(NODE_21, \
- NORAUTP_SND_EN, /* RESET */ \
- _r2, _r1, NODE_20, &desc_norautp_555) \
- \
- DISCRETE_OUTPUT(NODE_21, 65000.0/3.8) \
-DISCRETE_SOUND_END
-
-
-/***** Noraut Poker *****/
-
-/* Parts List - Resistors */
-#define NORAUTP_R1 RES_K(120)
-#define NORAUTP_R2 RES_K(2.2)
-
-/* Parts List - Capacitors */
-#define NORAUTP_C1 CAP_U(.01)
-#define NORAUTP_C2 CAP_U(.022)
-#define NORAUTP_C3 CAP_U(.047)
-#define NORAUTP_C4 CAP_U(.01)
-
-NORAUTP_SOUND_CIRCUIT(norautp,
- NORAUTP_R1, NORAUTP_R2,
- NORAUTP_C1, NORAUTP_C2, NORAUTP_C3, NORAUTP_C4)
-
-
-/***** Draw Poker HI-LO *****/
-
-/* Parts List - Resistors */
-#define DPHL_R1 RES_K(120)
-#define DPHL_R2 RES_K(1)
-
-/* Parts List - Capacitors */
-#define DPHL_C1 CAP_U(.01)
-#define DPHL_C2 CAP_U(.022)
-#define DPHL_C3 CAP_U(.05)
-#define DPHL_C4 CAP_U(.01)
-
-NORAUTP_SOUND_CIRCUIT(dphl,
- DPHL_R1, DPHL_R2,
- DPHL_C1, DPHL_C2, DPHL_C3, DPHL_C4)
-
-
-/***** Kimble Double HI-LO *****/
-
-/* Parts List - Resistors */
-#define KIMBLE_R1 RES_K(100)
-#define KIMBLE_R2 RES_K(1)
-
-/* Parts List - Capacitors */
-#define KIMBLE_C1 CAP_U(.01)
-#define KIMBLE_C2 CAP_U(.022)
-#define KIMBLE_C3 CAP_U(.047)
-#define KIMBLE_C4 CAP_U(.01)
-
-NORAUTP_SOUND_CIRCUIT(kimble,
- KIMBLE_R1, KIMBLE_R2,
- KIMBLE_C1, KIMBLE_C2, KIMBLE_C3, KIMBLE_C4)