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_INCLUDE(dynax_hanafuda_keys_bet) - 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_MODIFY("KEY2") + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_G ) - 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_MODIFY("KEY3") + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_H ) - 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_MODIFY("KEY7") + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_HANAFUDA_G ) PORT_PLAYER(2) - 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_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_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_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_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) ) // テストモード