From 12daa85d7aad6680af7502fb329a95bc3bbfa7fe Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Tue, 14 Nov 2023 17:59:12 +0100 Subject: - dynax/royalmah.cpp: completed dip definitions for myvegas/a [Recreativos Piscis] - exidy/exidy.cpp: confirmed PAL dumps for spectar sets [Domenico Cervini] - taito/pkspirit.cpp: added dip definitions [hammy] --- src/mame/dynax/royalmah.cpp | 92 ++++++++++++++++++++++----------------------- src/mame/exidy/exidy.cpp | 6 +-- src/mame/taito/pkspirit.cpp | 88 +++++++++++++++++++++++++++++++------------ 3 files changed, 113 insertions(+), 73 deletions(-) diff --git a/src/mame/dynax/royalmah.cpp b/src/mame/dynax/royalmah.cpp index efb7f92c1ad..7a25b5fc12c 100644 --- a/src/mame/dynax/royalmah.cpp +++ b/src/mame/dynax/royalmah.cpp @@ -3565,11 +3565,11 @@ static INPUT_PORTS_START( jansou ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END -static INPUT_PORTS_START( mjvegasa ) +static INPUT_PORTS_START( mjvegasa ) // dips definitions and defaults from manual (machine translated) PORT_INCLUDE( mjctrl2 ) PORT_START("DSW1") // 6810 - PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate" ) + PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate" ) PORT_DIPLOCATION("SW1:1,2,3,4") PORT_DIPSETTING( 0x0f, "96%" ) PORT_DIPSETTING( 0x0e, "93%" ) PORT_DIPSETTING( 0x0d, "90%" ) @@ -3586,116 +3586,116 @@ static INPUT_PORTS_START( mjvegasa ) PORT_DIPSETTING( 0x02, "56%" ) PORT_DIPSETTING( 0x01, "53%" ) PORT_DIPSETTING( 0x00, "50%" ) - PORT_DIPNAME( 0x30, 0x30, "Odds Rate" ) + PORT_DIPNAME( 0x30, 0x00, "Odds Rate" ) PORT_DIPLOCATION("SW1:5,6") PORT_DIPSETTING( 0x30, "1 2 4 8 12 16 24 32" ) PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" ) PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" ) PORT_DIPSETTING( 0x20, "1 2 3 5 10 50 100 200" ) - PORT_DIPNAME( 0xc0, 0xc0, "Max Bet" ) + PORT_DIPNAME( 0xc0, 0x40, "Max Bet" ) PORT_DIPLOCATION("SW1:7,8") PORT_DIPSETTING( 0xc0, "1" ) PORT_DIPSETTING( 0x80, "5" ) PORT_DIPSETTING( 0x40, "10" ) PORT_DIPSETTING( 0x00, "20" ) PORT_START("DSW2") // 6811 - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) 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, "YAKUMAN Times" ) + PORT_DIPNAME( 0x0c, 0x0c, "Minimum Rate" ) PORT_DIPLOCATION("SW2:3,4") PORT_DIPSETTING( 0x0c, "1" ) PORT_DIPSETTING( 0x08, "2" ) PORT_DIPSETTING( 0x04, "3" ) PORT_DIPSETTING( 0x00, "5" ) - PORT_DIPNAME( 0x70, 0x70, "YAKUMAN Bonus" ) - PORT_DIPSETTING( 0x70, "Cut" ) - PORT_DIPSETTING( 0x60, "100?" ) + PORT_DIPNAME( 0x70, 0x70, "YAKUMAN Bonus" ) PORT_DIPLOCATION("SW2:5,6,7") // this is the default for 'corner' machines, for 'single' it's listed as 0x30 + PORT_DIPSETTING( 0x70, DEF_STR( No ) ) + PORT_DIPSETTING( 0x60, "Once on Start" ) PORT_DIPSETTING( 0x50, "300" ) PORT_DIPSETTING( 0x40, "500" ) PORT_DIPSETTING( 0x30, "700" ) PORT_DIPSETTING( 0x20, "1000" ) -// PORT_DIPSETTING( 0x10, "1000" ) -// PORT_DIPSETTING( 0x00, "1000" ) - PORT_DIPNAME( 0x80, 0x80, "Unknown 2-7" ) - PORT_DIPSETTING( 0x00, "1" ) - PORT_DIPSETTING( 0x80, "2" ) + PORT_DIPSETTING( 0x10, "1000" ) // dip combination not listed in the manual + PORT_DIPSETTING( 0x00, "1000" ) // dip combination not listed in the manual + PORT_DIPNAME( 0x80, 0x80, "Yakuman Bonus Cycle" ) PORT_DIPLOCATION("SW2:8") + PORT_DIPSETTING( 0x00, "Once" ) + PORT_DIPSETTING( 0x80, "Twice" ) PORT_START("DSW3") // 6812 - PORT_DIPNAME( 0x01, 0x01, "Unknown 3-0" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Unknown 3-1" ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "3 BAI In YAKUMAN Bonus Chance" ) + PORT_DIPNAME( 0x01, 0x01, "Payout Type" ) PORT_DIPLOCATION("SW3:1") + PORT_DIPSETTING( 0x01, "Credits" ) + PORT_DIPSETTING( 0x00, "Hopper" ) + PORT_DIPNAME( 0x02, 0x02, "Hopper Type" ) PORT_DIPLOCATION("SW3:2") + PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x00, "Reversed" ) + PORT_DIPNAME( 0x04, 0x00, "Service Count" ) PORT_DIPLOCATION("SW3:3") PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Unknown 3-3" ) + PORT_DIPNAME( 0x08, 0x00, "W-Bet" ) PORT_DIPLOCATION("SW3:4") PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Unknown 3-4" ) + PORT_DIPNAME( 0x10, 0x00, "Renchan Rate" ) PORT_DIPLOCATION("SW3:5") PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Unknown 3-5" ) + PORT_DIPNAME( 0x20, 0x00, "Auto Reach" ) PORT_DIPLOCATION("SW3:6") PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Unknown 3-6" ) + PORT_DIPNAME( 0x40, 0x40, "Auto Tsumo" ) PORT_DIPLOCATION("SW3:7") // machine translated as 'automatic mode' PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Unknown 3-7" ) + PORT_DIPNAME( 0x80, 0x80, "Yakuman Match" ) PORT_DIPLOCATION("SW3:8") // machine translated as 'service point' PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("DSW4") // 6813 - PORT_DIPNAME( 0x01, 0x01, "Unknown 4-0" ) + PORT_DIPNAME( 0x01, 0x00, "Last Chance" ) PORT_DIPLOCATION("SW4:1") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, "Show Clock" ) + PORT_DIPNAME( 0x02, 0x00, "Show Clock" ) PORT_DIPLOCATION("SW4:2") PORT_DIPSETTING( 0x02, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) - PORT_DIPNAME( 0x04, 0x00, "Girls" ) + PORT_DIPNAME( 0x04, 0x00, "Girls" ) PORT_DIPLOCATION("SW4:3") // Renshu Gal Display according to machine translation PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, "Background" ) + PORT_DIPNAME( 0x08, 0x00, "Background" ) PORT_DIPLOCATION("SW4:4") PORT_DIPSETTING( 0x08, "Black" ) PORT_DIPSETTING( 0x00, "Green" ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW4:5") // default off according to manual, but left on for testing convenience PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, "Unknown 4-5" ) + PORT_DIPNAME( 0x20, 0x00, "In Game Music" ) PORT_DIPLOCATION("SW4:6") PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, "Unknown 4-6" ) + PORT_DIPNAME( 0x40, 0x00, "Yakuman Match Frequency" ) PORT_DIPLOCATION("SW4:7") // machine translated as 'time service frequency' PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Unknown 4-7" ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW4:8") // 'OFF' in manual PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("DSWTOP") // 6814 - PORT_DIPNAME( 0x01, 0x01, "Credits Per Note" ) + PORT_DIPNAME( 0x01, 0x01, "Credits Per Note" ) PORT_DIPLOCATION("SW1:9") PORT_DIPSETTING( 0x01, "5" ) PORT_DIPSETTING( 0x00, "10" ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) + PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:10") PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "Unknown 2-8" ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, "Unknown 2-9" ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, "Flip-Flop Key" ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:9") + PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) + PORT_DIPNAME( 0x08, 0x00, "Wave of Dividends" ) PORT_DIPLOCATION("SW2:10") + PORT_DIPSETTING( 0x00, DEF_STR( Normal ) ) + PORT_DIPSETTING( 0x08, DEF_STR( High ) ) + PORT_DIPNAME( 0x10, 0x00, "Don Den Key" ) PORT_DIPLOCATION("SW3:9") PORT_DIPSETTING( 0x00, "Flip-Flop" ) PORT_DIPSETTING( 0x10, "Start" ) - PORT_DIPNAME( 0x20, 0x20, "Don Den Times" ) + PORT_DIPNAME( 0x20, 0x00, "Don Den Times" ) PORT_DIPLOCATION("SW3:10") PORT_DIPSETTING( 0x00, "5" ) PORT_DIPSETTING( 0x20, "8" ) - PORT_DIPNAME( 0x40, 0x40, "Unknown 4-8" ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW4:9") // 'OFF' in manual PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, "Debug Mode" ) // e.g. press start in bet screen + PORT_DIPNAME( 0x80, 0x80, "Debug Mode" ) PORT_DIPLOCATION("SW4:10") // e.g. press start in bet screen ('OFF' in manual) PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END diff --git a/src/mame/exidy/exidy.cpp b/src/mame/exidy/exidy.cpp index dd59e51e6a3..fc1fcc36fd0 100644 --- a/src/mame/exidy/exidy.cpp +++ b/src/mame/exidy/exidy.cpp @@ -1885,7 +1885,7 @@ ROM_START( spectar ) ROM_REGION( 0x0140, "proms", 0 ) ROM_LOAD( "spl5c-2.5c", 0x0000, 0x0100, CRC(9ca2e061) SHA1(4111325b00a1017042d55c59308d41e8333ba627) ) // 6301 according to the Spectar manual, also seen as IM 5623CPE on PCB - ROM_LOAD( "prom.6d", 0x0100, 0x0020, BAD_DUMP CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) ) // screen controller PROM, 6331 according to the Spectar manual, dumped from a bootleg + ROM_LOAD( "hrl6d-1.6d", 0x0100, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) ) // screen controller PROM, 6331 according to the Spectar manual, also seen as IM 5610CPE on PCB ROM_LOAD( "hrl14h-1.14h", 0x0120, 0x0020, CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) ) // 6331 according to the Spectar manual ROM_END @@ -1899,13 +1899,13 @@ ROM_START( spectar1 ) ROM_LOAD( "spl7a-1.7a", 0x3000, 0x0800, CRC(e08b0d8d) SHA1(6ffd6f8fb50c9fc09c38f56da7d6d005b66e78cc) ) ROM_LOAD( "spl6a-1.6a", 0x3800, 0x0800, CRC(f0e4e71a) SHA1(5487a94650c964a7ab07f30aacab0b470dcb3b40) ) - ROM_REGION( 0x0400, "gfx1", 0 ) // some PCBs were seen with hrl11d-1 + ROM_REGION( 0x0400, "gfx1", 0 ) // some PCBs were seen with hrl11d-1 (CRC(9f03513e) SHA1(aa4763e49df65e5686a96431543580b8d8285893)) ROM_LOAD( "hrl11d-2.11d", 0x0000, 0x0400, CRC(c55b645d) SHA1(0c18277939d74e3e1281a7f114a34781d30c2baf) ) /* this is actually not used (all FF) */ ROM_CONTINUE( 0x0000, 0x0400 ) /* overwrite with the real one */ ROM_REGION( 0x0140, "proms", 0 ) ROM_LOAD( "spl5c-2.5c", 0x0000, 0x0100, CRC(9ca2e061) SHA1(4111325b00a1017042d55c59308d41e8333ba627) ) // 6301 according to the Spectar manual, also seen as IM 5623CPE on PCB - ROM_LOAD( "prom.6d", 0x0100, 0x0020, BAD_DUMP CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) ) // screen controller PROM, 6331 according to the Spectar manual, dumped from a bootleg + ROM_LOAD( "hrl6d-1.6d", 0x0100, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) ) // screen controller PROM, 6331 according to the Spectar manual, also seen as IM 5610CPE on PCB ROM_LOAD( "hrl14h-1.14h", 0x0120, 0x0020, CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) ) // 6331 according to the Spectar manual ROM_END diff --git a/src/mame/taito/pkspirit.cpp b/src/mame/taito/pkspirit.cpp index 1f9042cd4c1..a23abe236dc 100644 --- a/src/mame/taito/pkspirit.cpp +++ b/src/mame/taito/pkspirit.cpp @@ -65,12 +65,14 @@ public: m_mainio(*this, "mainio"), m_gfxdecode(*this, "gfxdecode"), m_bg_videoram(*this, "bg_videoram"), - m_fg_videoram(*this, "fg_videoram") + m_fg_videoram(*this, "fg_videoram"), + m_audiobank(*this, "audiobank") { } void pkspirit(machine_config &config); protected: + virtual void machine_start() override; virtual void video_start() override; private: @@ -80,6 +82,7 @@ private: required_shared_ptr m_bg_videoram; required_shared_ptr m_fg_videoram; + required_memory_bank m_audiobank; tilemap_t *m_bg_tilemap = nullptr; tilemap_t *m_fg_tilemap = nullptr; @@ -135,12 +138,17 @@ uint32_t pkspirit_state::screen_update(screen_device &screen, bitmap_ind16 &bitm return 0; } +void pkspirit_state::machine_start() +{ + m_audiobank->configure_entries(0, 4, memregion("audiocpu")->base(), 0x4000); +} + void pkspirit_state::main_map(address_map &map) // TODO: verify everything { map(0x000000, 0x01ffff).rom().region("maincpu", 0); map(0x100000, 0x10001f).rw(m_mainio, FUNC(te7750_device::read), FUNC(te7750_device::write)).umask16(0x00ff); - // map(0x200000, 0x200001).r //? + map(0x200000, 0x200001).portr("DSW"); map(0x300000, 0x30ffff).ram(); // main RAM? map(0x800001, 0x800001).w("ciu", FUNC(pc060ha_device::master_port_w)); map(0x800003, 0x800003).rw("ciu", FUNC(pc060ha_device::master_comm_r), FUNC(pc060ha_device::master_comm_w)); @@ -161,7 +169,8 @@ void pkspirit_state::main_map(address_map &map) // TODO: verify everything void pkspirit_state::sound_map(address_map &map) // TODO: verify everything { - map(0x0000, 0x7fff).rom().region("audiocpu", 0); // banked? + map(0x0000, 0x3fff).rom().region("audiocpu", 0); + map(0x4000, 0x7fff).bankr("audiobank"); map(0x8000, 0x8fff).ram(); map(0xa000, 0xa000).w("ciu", FUNC(pc060ha_device::slave_port_w)); map(0xa001, 0xa001).rw("ciu", FUNC(pc060ha_device::slave_comm_r), FUNC(pc060ha_device::slave_comm_w)); @@ -208,25 +217,56 @@ static INPUT_PORTS_START( pkspirit ) PORT_BIT (0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Hopper Over") // "Hop Over"? PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("DSW1") - PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW1:1") - PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW1:2") - PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW1:3") - PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SW1:4") - PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "SW1:5") - PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "SW1:6") - PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW1:7") - PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW1:8") - - PORT_START("DSW2") - PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW2:1") - PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW2:2") - PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW2:3") - PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SW2:4") - PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "SW2:5") - PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "SW2:6") - PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW2:7") - PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW2:8") + // DSW settings from manual, machine translated. Default is all off. + // TODO: Lots of settings are defined only as 'A' or 'B', so actual effects on game should be observed when the driver is more complete + PORT_START("DSW") + PORT_DIPNAME( 0x0001, 0x0001, "Credit Type" ) PORT_DIPLOCATION("SW1:1") + PORT_DIPSETTING( 0x0001, "A" ) + PORT_DIPSETTING( 0x0000, "B" ) + PORT_DIPNAME( 0x0002, 0x0002, "Back Bar" ) PORT_DIPLOCATION("SW1:2") + PORT_DIPSETTING( 0x0002, "A" ) + PORT_DIPSETTING( 0x0000, "B" ) + PORT_DIPNAME( 0x0004, 0x0004, "Card Speed" ) PORT_DIPLOCATION("SW1:3") + PORT_DIPSETTING( 0x0004, "A" ) + PORT_DIPSETTING( 0x0000, "B" ) + PORT_DIPNAME( 0x0008, 0x0008, "Card Deal Type" ) PORT_DIPLOCATION("SW1:4") + PORT_DIPSETTING( 0x0008, "A" ) + PORT_DIPSETTING( 0x0000, "B" ) + PORT_DIPNAME( 0x0010, 0x0010, "Double Up Type" ) PORT_DIPLOCATION("SW1:5") + PORT_DIPSETTING( 0x0010, "A" ) + PORT_DIPSETTING( 0x0000, "B" ) + PORT_DIPNAME( 0x0020, 0x0020, "Max Bet" ) PORT_DIPLOCATION("SW1:6") + PORT_DIPSETTING( 0x0000, "5" ) + PORT_DIPSETTING( 0x0020, "10" ) + PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:7") // default off according to dip sheet, but left on for testing convenience + PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0080, 0x0080, "Card Type" ) PORT_DIPLOCATION("SW1:8") + PORT_DIPSETTING( 0x0080, "A" ) + PORT_DIPSETTING( 0x0000, "B" ) + + PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:1,2") + PORT_DIPSETTING( 0x0300, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x0100, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x0200, DEF_STR( 1C_5C ) ) + PORT_DIPSETTING( 0x0000, "1 Coin/10 Credits" ) + PORT_DIPNAME( 0x0c00, 0x0c00, "Up / Down Credit" ) PORT_DIPLOCATION("SW2:3,4") // actually spelt 'doun' in the dip sheet + PORT_DIPSETTING( 0x0c00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0800, "10" ) + PORT_DIPSETTING( 0x0400, "50" ) + PORT_DIPSETTING( 0x0000, "100" ) + PORT_DIPNAME( 0x1000, 0x1000, "Hopper" ) PORT_DIPLOCATION("SW2:5") + PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x1000, DEF_STR( On ) ) + PORT_DIPNAME( 0x2000, 0x2000, "Double Up Open Pattern" ) PORT_DIPLOCATION("SW2:6") // TODO: improve machine translation + PORT_DIPSETTING( 0x2000, "A" ) + PORT_DIPSETTING( 0x0000, "B" ) + PORT_DIPNAME( 0x4000, 0x4000, "Bell" ) PORT_DIPLOCATION("SW2:7") + PORT_DIPSETTING( 0x4000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) + PORT_DIPNAME( 0x8000, 0x8000, "Credit Pool 500" ) PORT_DIPLOCATION("SW2:8") + PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) INPUT_PORTS_END @@ -259,7 +299,7 @@ void pkspirit_state::pkspirit(machine_config &config) TE7750(config, m_mainio); // TODO: check me -// m_mainio->ios_cb().set_constant(7); +// m_mainio->ios_cb().set_constant(7); m_mainio->in_port1_cb().set_ioport("IN1"); m_mainio->in_port2_cb().set_ioport("IN2"); m_mainio->in_port3_cb().set_ioport("IN3"); @@ -287,7 +327,7 @@ void pkspirit_state::pkspirit(machine_config &config) ym2203_device &opn(YM2203(config, "opn", 36_MHz_XTAL / 9)); // divider not verified opn.irq_handler().set_inputline("audiocpu", 0); - //ymsnd.port_a_write_callback() TODO: writes continuously here. + opn.port_a_write_callback().set_membank(m_audiobank).mask(0x03); opn.add_route(ALL_OUTPUTS, "mono", 0.30); OKIM6295(config, "oki", 1.056_MHz_XTAL, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5); // all verified -- cgit v1.2.3