summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--scripts/src/bus.lua2
-rw-r--r--src/devices/bus/isa/isa_cards.cpp67
-rw-r--r--src/devices/bus/isa/prose4k1.cpp92
-rw-r--r--src/devices/bus/isa/prose4k1.h13
-rw-r--r--src/mame/dynax/ddenlovr.cpp195
5 files changed, 202 insertions, 167 deletions
diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua
index e53311cb949..84c205ad974 100644
--- a/scripts/src/bus.lua
+++ b/scripts/src/bus.lua
@@ -1848,6 +1848,8 @@ if (BUSES["ISA"]~=null) then
MAME_DIR .. "src/devices/bus/isa/pds.h",
MAME_DIR .. "src/devices/bus/isa/pgc.cpp",
MAME_DIR .. "src/devices/bus/isa/pgc.h",
+ MAME_DIR .. "src/devices/bus/isa/prose4k1.cpp",
+ MAME_DIR .. "src/devices/bus/isa/prose4k1.h",
MAME_DIR .. "src/devices/bus/isa/sb16.cpp",
MAME_DIR .. "src/devices/bus/isa/sb16.h",
MAME_DIR .. "src/devices/bus/isa/sblaster.cpp",
diff --git a/src/devices/bus/isa/isa_cards.cpp b/src/devices/bus/isa/isa_cards.cpp
index 720b6b49d3a..786c9bf1010 100644
--- a/src/devices/bus/isa/isa_cards.cpp
+++ b/src/devices/bus/isa/isa_cards.cpp
@@ -10,84 +10,85 @@
#include "isa_cards.h"
// video
-#include "mda.h"
-#include "cga.h"
#include "aga.h"
+#include "cga.h"
#include "ega.h"
+#include "eis_hgb107x.h"
+#include "ex1280.h"
+#include "mda.h"
+#include "num9rev.h"
#include "pgc.h"
-#include "vga.h"
-#include "vga_ati.h"
#include "svga_cirrus.h"
#include "svga_paradise.h"
#include "svga_s3.h"
-#include "svga_tseng.h"
#include "svga_trident.h"
-#include "num9rev.h"
-#include "eis_hgb107x.h"
-#include "ex1280.h"
+#include "svga_tseng.h"
+#include "vga.h"
+#include "vga_ati.h"
// storage
-#include "fdc.h"
-#include "mufdc.h"
-#include "hdc.h"
-#include "wdxt_gen.h"
-#include "ide.h"
-#include "xtide.h"
-#include "side116.h"
#include "acb2072.h"
#include "aha1542b.h"
#include "aha1542c.h"
#include "aha174x.h"
-#include "wd1002a_wx1.h"
-#include "wd1007a.h"
-#include "mcd.h"
-#include "lbaenhancer.h"
-#include "cl_sh260.h"
+#include "asc88.h"
#include "bt54x.h"
+#include "cl_sh260.h"
#include "dcb.h"
+#include "fdc.h"
+#include "hdc.h"
+#include "ide.h"
+#include "lbaenhancer.h"
+#include "lrk330.h"
+#include "mcd.h"
+#include "mufdc.h"
+#include "omti8621.h"
+#include "side116.h"
+#include "tekram_dc820.h"
#include "ultra12f.h"
#include "ultra14f.h"
#include "ultra24f.h"
-#include "tekram_dc820.h"
-#include "asc88.h"
-#include "omti8621.h"
-#include "lrk330.h"
+#include "wd1002a_wx1.h"
+#include "wd1007a.h"
+#include "wdxt_gen.h"
+#include "xtide.h"
// sound
#include "adlib.h"
+#include "dectalk.h"
#include "gblaster.h"
#include "gus.h"
#include "ibm_mfc.h"
#include "ibm_speech.h"
#include "mpu401.h"
#include "pcmidi.h"
+#include "prose4k1.h"
+#include "sb16.h"
#include "sblaster.h"
#include "ssi2001.h"
#include "stereo_fx.h"
-#include "dectalk.h"
-#include "sb16.h"
// network
#include "3c503.h"
-#include "ne1000.h"
-#include "ne2000.h"
#include "3c505.h"
+#include "3xtwin.h"
#include "eis_sad8852.h"
#include "eis_twib.h"
+#include "ne1000.h"
+#include "ne2000.h"
#include "np600.h"
-#include "3xtwin.h"
// communication ports
-#include "lpt.h"
#include "com.h"
+#include "lpt.h"
#include "pds.h"
// other
-#include "hpblp.h"
+#include "bblue2.h"
#include "chessmdr.h"
#include "chessmsr.h"
#include "finalchs.h"
-#include "bblue2.h"
+#include "hpblp.h"
#include "opus100pm.h"
@@ -134,6 +135,7 @@ void pc_isa8_cards(device_slot_interface &device)
device.option_add("ibm_mfc", ISA8_IBM_MFC);
device.option_add("wd1002a_wx1", ISA8_WD1002A_WX1);
device.option_add("dectalk", ISA8_DECTALK);
+ device.option_add("prose4k1", ISA8_PROSE4001);
device.option_add("pds", ISA8_PDS);
device.option_add("lba_enhancer", ISA8_LBA_ENHANCER);
device.option_add("asc88", ASC88);
@@ -182,6 +184,7 @@ void pc_isa16_cards(device_slot_interface &device)
device.option_add("ibm_mfc", ISA8_IBM_MFC);
device.option_add("fdcsmc", ISA8_FDC_SMC);
device.option_add("dectalk", ISA8_DECTALK);
+ device.option_add("prose4k1", ISA8_PROSE4001);
device.option_add("pds", ISA8_PDS);
device.option_add("lba_enhancer", ISA8_LBA_ENHANCER);
device.option_add("chessmdr", ISA8_CHESSMDR);
diff --git a/src/devices/bus/isa/prose4k1.cpp b/src/devices/bus/isa/prose4k1.cpp
new file mode 100644
index 00000000000..abaadbc6a96
--- /dev/null
+++ b/src/devices/bus/isa/prose4k1.cpp
@@ -0,0 +1,92 @@
+// license:BSD-3-Clause
+// copyright-holders:Vas Crabb
+/*
+ Speech Plus Prose 4001 speech synthesiser
+
+ Full-length ISA card. Supports operation in IBM PC mode (as an ISA bus
+ card) and standalone mode (controlled over a seria connection). The
+ example the ROMs were dumped from had many components unpopulated.
+
+ Major components include:
+ * Siemens 80188-N CPU
+ * NEC D77P20 DSP with EPROM memory
+ * Three TI 27C512 EPROMS
+ * 256 kbit SRAM
+ * Intel P8251A UART
+ * Three banks of eight DIP switches
+ */
+#include "emu.h"
+#include "prose4k1.h"
+
+#include "cpu/i86/i186.h"
+#include "machine/i8251.h"
+
+
+namespace {
+
+class prose4k1_device : public device_t, public device_isa8_card_interface
+{
+public:
+ static constexpr feature_type unemulated_features() { return feature::SOUND; }
+
+ prose4k1_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) :
+ device_t(mconfig, ISA8_PROSE4001, tag, owner, clock),
+ device_isa8_card_interface(mconfig, *this)
+ {
+ }
+
+protected:
+ // device_t implementation
+ virtual tiny_rom_entry const *device_rom_region() const override ATTR_COLD;
+ virtual void device_add_mconfig(machine_config &config) override ATTR_COLD;
+ virtual void device_start() override ATTR_COLD;
+
+private:
+ void main_map(address_map &map) ATTR_COLD;
+};
+
+
+ROM_START(prose4k1)
+ ROM_REGION(0x3'0000, "u8", 0)
+ ROM_LOAD("v3.4.1_pr4001.u3", 0x0'0000, 0x1'0000, CRC(12dac3ed) SHA1(cf8c0b9de1f00facbc5cb5dc8e2dcbb09d6ff479)) // TMS27C512, printed label
+ ROM_LOAD("v3.4.1_pr4001.u2", 0x1'0000, 0x1'0000, CRC(2ee241b7) SHA1(35b81f3b4deb552511f8d8f2d0aac9100fdee49d)) // TMS27C512, printed label
+ ROM_LOAD("v3.4.1_pr4001.u1", 0x2'0000, 0x1'0000, CRC(559f4950) SHA1(5c8709c82dadaea7012859c20141ef8f59d5e473)) // TMS27C512, handwritten label
+
+ ROM_REGION32_BE(0x0800, "dsp:prg", 0) // 512*23-bit words
+ ROM_LOAD("v3.12_5_04_90.prg", 0x0000, 0x0800, NO_DUMP)
+
+ ROM_REGION16_BE(0x0400, "dsp:dat", 0) // 512*13-bit words
+ ROM_LOAD("v3.12_5_04_90.dat", 0x0000, 0x0400, NO_DUMP)
+ROM_END
+
+
+tiny_rom_entry const *prose4k1_device::device_rom_region() const
+{
+ return ROM_NAME(prose4k1);
+}
+
+
+void prose4k1_device::device_add_mconfig(machine_config &config)
+{
+ I80188(config, "u8", 8'000'000).set_addrmap(AS_PROGRAM, &prose4k1_device::main_map); // TODO: measure clock
+
+ I8251(config, "u27", 0);
+}
+
+
+void prose4k1_device::device_start()
+{
+}
+
+
+void prose4k1_device::main_map(address_map &map)
+{
+ map(0x0'0000, 0x0'8000).ram();
+
+ map(0xd'0000, 0xf'ffff).rom().region("u8", 0x0'0000);
+}
+
+} // anonymous namespace
+
+
+DEFINE_DEVICE_TYPE_PRIVATE(ISA8_PROSE4001, device_isa8_card_interface, prose4k1_device, "isa_prose4001", "Speech Plus Prose 4001 (IBM PC mode)")
diff --git a/src/devices/bus/isa/prose4k1.h b/src/devices/bus/isa/prose4k1.h
new file mode 100644
index 00000000000..38ecab6e67b
--- /dev/null
+++ b/src/devices/bus/isa/prose4k1.h
@@ -0,0 +1,13 @@
+// license:BSD-3-Clause
+// copyright-holders:Vas Crabb
+#ifndef MAME_BUS_ISA_PROSE4K1_H
+#define MAME_BUS_ISA_PROSE4K1_H
+
+#pragma once
+
+#include "isa.h"
+
+
+DECLARE_DEVICE_TYPE(ISA8_PROSE4001, device_isa8_card_interface)
+
+#endif // MAME_BUS_ISA_PROSE4K1_H
diff --git a/src/mame/dynax/ddenlovr.cpp b/src/mame/dynax/ddenlovr.cpp
index df58724b623..f21a5d6c727 100644
--- a/src/mame/dynax/ddenlovr.cpp
+++ b/src/mame/dynax/ddenlovr.cpp
@@ -5642,106 +5642,26 @@ static INPUT_PORTS_START( hanakanz )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CONDITION("BET",0x40,EQUALS,0x00) PORT_CODE(KEYCODE_4) // pay
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("BET",0x40,EQUALS,0x40)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) // Test
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR(Test)) // Test
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // analyzer
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) // data clear
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) // note
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) // key-in
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
- PORT_START("KEY0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_A )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_E )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // I
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_YES )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) PORT_CONDITION("BET",0x40,EQUALS,0x00) // "t"
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("BET",0x40,EQUALS,0x40)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
-
- PORT_START("KEY1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_B )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_F )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // J
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_NO )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) PORT_CONDITION("BET",0x40,EQUALS,0x00) // "s"
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("BET",0x40,EQUALS,0x40)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // BET
-
- PORT_START("KEY2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_C )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_G ) PORT_CONDITION("BET",0x40,EQUALS,0x40)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("BET",0x40,EQUALS,0x00)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // K
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_BIG ) PORT_CONDITION("BET",0x40,EQUALS,0x00) // "b"
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("BET",0x40,EQUALS,0x40)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Ron
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_D )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_H ) PORT_CONDITION("BET",0x40,EQUALS,0x40)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("BET",0x40,EQUALS,0x00)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // L
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) PORT_CONDITION("BET",0x40,EQUALS,0x00) // "w"
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("BET",0x40,EQUALS,0x40)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY4")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) PORT_CONDITION("BET",0x40,EQUALS,0x40)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("BET",0x40,EQUALS,0x00)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("KEY5")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_A ) PORT_PLAYER(2) // A
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_E ) PORT_PLAYER(2) // E
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // I
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_YES ) PORT_PLAYER(2)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) PORT_CONDITION("BET",0x40,EQUALS,0x00) PORT_PLAYER(2) // "t"
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("BET",0x40,EQUALS,0x40)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_INCLUDE(dynax_hanafuda_keys_bet)
- PORT_START("KEY6")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_B ) PORT_PLAYER(2) // B
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_F ) PORT_PLAYER(2)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // J
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_HANAFUDA_NO ) PORT_PLAYER(2)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) PORT_CONDITION("BET",0x40,EQUALS,0x00) PORT_PLAYER(2) // "s"
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("BET",0x40,EQUALS,0x40)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // BET
+ PORT_MODIFY("KEY2")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_G )
- PORT_START("KEY7")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_C ) PORT_PLAYER(2) // C
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_G ) PORT_CONDITION("BET",0x40,EQUALS,0x40) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("BET",0x40,EQUALS,0x00)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // K
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_BIG ) PORT_CONDITION("BET",0x40,EQUALS,0x00) PORT_PLAYER(2) // "b"
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("BET",0x40,EQUALS,0x40)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) // Ron
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_MODIFY("KEY3")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_H )
- PORT_START("KEY8")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_HANAFUDA_D ) PORT_PLAYER(2) // D
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_H ) PORT_CONDITION("BET",0x40,EQUALS,0x40) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("BET",0x40,EQUALS,0x00)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // L
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) PORT_CONDITION("BET",0x40,EQUALS,0x00) PORT_PLAYER(2) // "w"
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("BET",0x40,EQUALS,0x40)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_MODIFY("KEY7")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_G ) PORT_PLAYER(2)
- PORT_START("KEY9")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) PORT_CONDITION("BET",0x40,EQUALS,0x40) PORT_PLAYER(2)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("BET",0x40,EQUALS,0x00)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_MODIFY("KEY8")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_H ) PORT_PLAYER(2)
PORT_START("DSW1")
PORT_DIPNAME( 0x07, 0x07, "Unknown 1-0&1&2" )
@@ -5764,27 +5684,33 @@ static INPUT_PORTS_START( hanakanz )
PORT_DIPSETTING( 0x40, "1" )
PORT_DIPSETTING( 0x20, "2" )
PORT_DIPSETTING( 0x00, "3" )
- PORT_DIPNAME( 0x80, 0x80, "Unknown 1-7" )
- PORT_DIPSETTING( 0x00, "5" )
- PORT_DIPSETTING( 0x80, "10" )
+ PORT_DIPNAME( 0x80, 0x80, "Key-In Rate" ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPSETTING( 0x00, "5" ) PORT_CONDITION("DSW2", 0x03, EQUALS, 0x03)
+ PORT_DIPSETTING( 0x00, "10" ) PORT_CONDITION("DSW2", 0x03, EQUALS, 0x02)
+ PORT_DIPSETTING( 0x00, "25" ) PORT_CONDITION("DSW2", 0x03, EQUALS, 0x01)
+ PORT_DIPSETTING( 0x00, "50" ) PORT_CONDITION("DSW2", 0x03, EQUALS, 0x00)
+ PORT_DIPSETTING( 0x80, "10" ) PORT_CONDITION("DSW2", 0x03, EQUALS, 0x03)
+ PORT_DIPSETTING( 0x80, "20" ) PORT_CONDITION("DSW2", 0x03, EQUALS, 0x02)
+ PORT_DIPSETTING( 0x80, "50" ) PORT_CONDITION("DSW2", 0x03, EQUALS, 0x01)
+ PORT_DIPSETTING( 0x80, "100" ) PORT_CONDITION("DSW2", 0x03, EQUALS, 0x00)
PORT_START("DSW2")
- PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
- PORT_DIPNAME( 0x0c, 0x0c, "Unknown 2-2&3" )
- PORT_DIPSETTING( 0x0c, "10" )
- PORT_DIPSETTING( 0x08, "20" )
- PORT_DIPSETTING( 0x04, "30" )
- PORT_DIPSETTING( 0x00, "50" )
- PORT_DIPNAME( 0x30, 0x30, "Unknown 2-4&5" )
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR(Coinage) ) PORT_DIPLOCATION("SW2:1,2")
+ PORT_DIPSETTING( 0x03, DEF_STR(1C_1C) )
+ PORT_DIPSETTING( 0x02, DEF_STR(1C_2C) )
+ PORT_DIPSETTING( 0x01, DEF_STR(1C_5C) )
+ PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
+ PORT_DIPNAME( 0x0c, 0x0c, "Minimum Bet" ) PORT_DIPLOCATION("SW2:3,4")
+ PORT_DIPSETTING( 0x0c, "1" )
+ PORT_DIPSETTING( 0x08, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPNAME( 0x30, 0x30, "Gokou Odds" ) PORT_DIPLOCATION("SW2:5,6")
PORT_DIPSETTING( 0x30, "100" )
PORT_DIPSETTING( 0x20, "200" )
PORT_DIPSETTING( 0x10, "250" )
PORT_DIPSETTING( 0x00, "300" )
- PORT_DIPNAME( 0xc0, 0xc0, "Unknown 2-6&7" )
+ PORT_DIPNAME( 0xc0, 0xc0, "Shikou Odds" ) PORT_DIPLOCATION("SW2:7,8")
PORT_DIPSETTING( 0xc0, "50" )
PORT_DIPSETTING( 0x80, "60" )
PORT_DIPSETTING( 0x40, "70" )
@@ -5814,9 +5740,9 @@ static INPUT_PORTS_START( hanakanz )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
PORT_START("DSW4")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Demo_Sounds ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR(Demo_Sounds) ) PORT_DIPLOCATION("SW4:1")
+ PORT_DIPSETTING( 0x00, DEF_STR(Off) )
+ PORT_DIPSETTING( 0x01, DEF_STR(On) )
PORT_DIPNAME( 0x02, 0x02, "Unknown 4-1" )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
@@ -5826,27 +5752,26 @@ static INPUT_PORTS_START( hanakanz )
PORT_DIPNAME( 0x08, 0x08, "Unknown 4-3" )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, "Unknown 4-4" )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, "Hand Lesson" ) PORT_DIPLOCATION("SW4:5")
+ PORT_DIPSETTING( 0x00, DEF_STR(Off) )
+ PORT_DIPSETTING( 0x10, DEF_STR(On) )
PORT_DIPNAME( 0x20, 0x20, "Unknown 4-5" )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Keyboard" )
- PORT_DIPSETTING( 0x40, "Hanafuda" )
- PORT_DIPSETTING( 0x00, "Mahjong" )
- PORT_DIPNAME( 0x80, 0x80, "Unknown 4-7" )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0xc0, 0xc0, DEF_STR(Controls) ) PORT_DIPLOCATION("SW4:7,8")
+ PORT_DIPSETTING( 0xc0, "Hanafuda Panel" ) // (numbers/yes/no, uses take/w-up/big/small)
+ PORT_DIPSETTING( 0x80, "Mahjong Panel" ) // (letters, uses take/w-up/big/small)
+ PORT_DIPSETTING( 0x40, "Hanafuda Amusement" ) // (numbers/yes/no, doesn't use take/w-up/big/small)
+ PORT_DIPSETTING( 0x00, "Mahjong Amusement" ) // (letters, doesn't use take/w-up/big/small)
PORT_START("DSW5")
- PORT_DIPNAME( 0x01, 0x01, "Unknown 1-8" )
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x01, 0x01, "Maximum Bet" ) PORT_DIPLOCATION("SW1:9")
+ PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPSETTING( 0x01, "10" )
PORT_DIPNAME( 0x02, 0x02, "Unknown 1-9" )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x0c, 0x0c, "Unknown 2-8&9" )
+ PORT_DIPNAME( 0x0c, 0x0c, "Ameshikou Odds" ) PORT_DIPLOCATION("SW2:9,10")
PORT_DIPSETTING( 0x0c, "20" )
PORT_DIPSETTING( 0x08, "30" )
PORT_DIPSETTING( 0x04, "40" )
@@ -5854,18 +5779,20 @@ static INPUT_PORTS_START( hanakanz )
PORT_DIPNAME( 0x10, 0x10, "Unknown 3-8" )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, "Unknown 3-9" )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, "Gal Voice" ) PORT_DIPLOCATION("SW3:10")
+ PORT_DIPSETTING( 0x00, DEF_STR(Off) )
+ PORT_DIPSETTING( 0x20, DEF_STR(On) )
PORT_DIPNAME( 0x40, 0x40, "Unknown 4-8" )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR(Service_Mode) ) PORT_DIPLOCATION("SW4:10")
+ PORT_DIPSETTING( 0x80, DEF_STR(Off) )
+ PORT_DIPSETTING( 0x00, DEF_STR(On) )
PORT_START("BET")
- PORT_DIPNAME( 0x40, 0x40, "Allow Bets" )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, "Auto Bet" )
+ PORT_DIPSETTING( 0x40, DEF_STR(Off) )
+ PORT_DIPSETTING( 0x00, DEF_STR(On) ) // overrides game mode setting, any credits added are bet immediately
PORT_START("HOPPER")
PORT_DIPNAME( 0x40, 0x40, "? Hopper M." )
@@ -5989,10 +5916,10 @@ static INPUT_PORTS_START( hkagerou )
PORT_DIPSETTING( 0x00, DEF_STR(Off) ) // 無
PORT_DIPSETTING( 0x20, DEF_STR(On) ) // 有
PORT_DIPNAME( 0xc0, 0xc0, DEF_STR(Controls) ) PORT_DIPLOCATION("SW4:7,8") // パネルタイプ
- PORT_DIPSETTING( 0xc0, "Hanafuda Panel" ) // 花札パネル 表示
- PORT_DIPSETTING( 0x80, "Mahjong Panel" ) // 麻雀パネル 表示
- PORT_DIPSETTING( 0x40, "Hanafuda Amusement" ) // 花札アミューズメント表示 (doesn't use take/w-up/big/small)
- PORT_DIPSETTING( 0x00, "Mahjong Amusement" ) // 麻雀アミューズメント表示 (doesn't use take/w-up/big/small)
+ PORT_DIPSETTING( 0xc0, "Hanafuda Panel" ) // 花札パネル 表示 (numbers/yes/no, uses take/w-up/big/small)
+ PORT_DIPSETTING( 0x80, "Mahjong Panel" ) // 麻雀パネル 表示 (letters, uses take/w-up/big/small)
+ PORT_DIPSETTING( 0x40, "Hanafuda Amusement" ) // 花札アミューズメント表示 (numbers/yes/no, doesn't use take/w-up/big/small)
+ PORT_DIPSETTING( 0x00, "Mahjong Amusement" ) // 麻雀アミューズメント表示 (letters, doesn't use take/w-up/big/small)
PORT_START("DSW5")
PORT_DIPNAME( 0x01, 0x01, "Maximum Bet" ) PORT_DIPLOCATION("SW1:9") // ベットMAX
@@ -6011,8 +5938,6 @@ static INPUT_PORTS_START( hkagerou )
PORT_DIPSETTING( 0x00, DEF_STR(Off) ) // 無
PORT_DIPSETTING( 0x20, DEF_STR(On) ) // 有
PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW4:9" ) // OFF固定
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR(Service_Mode) ) PORT_DIPLOCATION("SW4:10")
PORT_DIPSETTING( 0x80, DEF_STR(Off) ) // ゲームモード
PORT_DIPSETTING( 0x00, DEF_STR(On) ) // テストモード