Compare commits

...

10 Commits

Author SHA1 Message Date
mamehaze 29dd4ab0b9
Merge 4f9d1fea2b into 713b55f0e6 2025-08-29 20:37:40 -07:00
Roberto Fresca 713b55f0e6 Renamed Joker Master 2000 Special Edition (V512)
to Joker Master 2000 Special Edition (V512/513).
 Corrected the year.

New working clones
------------------
Joker Master 2000 Special Edition (V512) [Roberto Fresca, Grull Osgo, Ioannis Bampoulas]
2025-08-30 04:22:00 +02:00
Roberto Fresca 5eed93f0d1 goldstar.cpp driver: Some inputs fixes
Fixed nfb96 DIP switches polarity [Ioannis Bampoulas]
2025-08-30 02:30:45 +02:00
Roberto Fresca 821acc6f88 goldstar.cpp driver improvements. [Roberto Fresca, Grull Osgo]
- Fixed Joker Master title tilemap/scroll bug.
 - Fixed cmv4 hopper DIP switches polarity.
 - Added Animal House button-lamps control panel.
 - Added hopper support to the following sets:
    roypok96, roypok96a, roypok96b, nfb96se, nfb96sea,
    nfb96seb, nfb96sec, carb2003, and noved.

 - Added remaining lucky8t (A900) DIP switches. [Ioannis Bampoulas]
2025-08-30 01:38:58 +02:00
Vas Crabb 8125894390 Merge remote-tracking branch 'mainline/release0280' into HEAD 2025-08-30 04:59:23 +10:00
Vas Crabb 1ead624f41 Metadata corrections and comment. 2025-08-30 03:22:29 +10:00
hap cdb9601822 ufo7s: remove unavailable romset 2025-08-30 03:21:10 +10:00
Nigel Barnes 74530fd53e acorn/bbcbp.cpp: Removed hard disk image from acw443. 2025-08-30 03:21:10 +10:00
David Haywood 4f9d1fea2b clarify why these are here 2025-08-28 20:18:35 +01:00
David Haywood 155ecf57a0 generalplus_gpl16250_nand.cpp - move some game specific service mode access hacks into the driver instead 2025-08-28 20:14:53 +01:00
11 changed files with 444 additions and 132 deletions

View File

@ -47,6 +47,7 @@ sunplus_gcm394_base_device::sunplus_gcm394_base_device(const machine_config& mco
m_romtype(0),
m_space_read_cb(*this, 0),
m_space_write_cb(*this),
m_dma_complete_cb(*this),
m_alt_periodic_irq(false),
m_boot_mode(0),
m_cs_callback(*this, DEVICE_SELF, FUNC(sunplus_gcm394_base_device::default_cs_callback))
@ -339,36 +340,7 @@ void sunplus_gcm394_base_device::trigger_systemm_dma(int channel)
dest += destdelta;
}
// HACKS to get into service mode for debugging
// note, these patch the code copied to SRAM so the 'PROGRAM ROM' check fails (it passes otherwise)
address_space& mem = this->space(AS_PROGRAM);
//if (mem.read_word(0x4368c) == 0x4846)
// mem.write_word(0x4368c, 0x4840); // cars 2 force service mode
//if (mem.read_word(0x34410) == 0x4846)
// mem.write_word(0x34410, 0x4840); // golden tee force service mode
// what is it waiting for when we need these? (needed on some service mode screens)
//if (mem.read_word(0x3f368) == 0x4840)
// mem.write_word(0x3f368, 0x4841); // cars 2 IRQ? wait hack
//if (mem.read_word(0x4d8d4) == 0x4840)
// mem.write_word(0x4d8d4, 0x4841); // golden tee IRQ? wait hack
//if (mem.read_word(0x3510f) == 0x4845)
// mem.write_word(0x3510f, 0x4840); // camp rock force service mode
if (mem.read_word(0x4abe7) == 0x4840)
mem.write_word(0x4abe7, 0x4841); // camp rock IRQ? wait hack
//if (mem.read_word(0x37244) == 0x4845)
// mem.write_word(0x37244, 0x4840); // hannah montana guitar force service mode
m_dma_complete_cb(1); // allow some driver specific hacks for service modes
// clear params after operation
m_dma_params[0][channel] = m_dma_params[0][channel] & 0x00f7;
@ -377,7 +349,6 @@ void sunplus_gcm394_base_device::trigger_systemm_dma(int channel)
m_dma_latched[channel] = false;
//machine().debug_break();
}
void sunplus_gcm394_base_device::system_dma_7abf_unk_w(uint16_t data)

View File

@ -41,6 +41,7 @@ public:
auto space_read_callback() { return m_space_read_cb.bind(); }
auto space_write_callback() { return m_space_write_cb.bind(); }
auto dma_complete_callback() { return m_dma_complete_cb.bind(); }
auto nand_read_callback() { return m_nand_read_cb.bind(); }
@ -185,6 +186,7 @@ protected:
private:
devcb_read16 m_space_read_cb;
devcb_write16 m_space_write_cb;
devcb_write_line m_dma_complete_cb;
uint16_t unk_r(offs_t offset);
void unk_w(offs_t offset, uint16_t data);

View File

@ -927,4 +927,4 @@ GAME( 1995, fever13, 0, lastbank, fever13, fever13_state, empty_init, R
GAME( 1995, ukiyobox, fever13, lastbank, ukiyobox, fever13_state, empty_init, ROT0, "Excellent System", "Ukiyo Box (Japan, v1.3.7)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
GAME( 1996, mir7hg, 0, lastbank, mir7hg, fever13_state, empty_init, ROT0, "Excellent System", "Miracle Seven - Heaven's Gate (Japan, v1.0.2)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
GAME( 199?, wcircus, 0, lastbank, wcircus, wcircus_state, empty_init, ROT0, "Cobra", "Wonder Circus (Japan, v1.1.1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
GAME( 199?, goldstrk, 0, lastbank, wcircus, wcircus_state, empty_init, ROT0, "Cobra", "Gold Strike (Japan, v1.1.1 - Location Test)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
GAME( 199?, goldstrk, 0, lastbank, wcircus, wcircus_state, empty_init, ROT0, "Cobra", "Gold Strike (Japan, v1.1.1 - location test)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )

View File

@ -250,6 +250,7 @@
#include <algorithm>
#include "animalhs.lh"
#include "bingowng.lh"
#include "cherryb3.lh"
#include "chrygld.lh"
@ -905,9 +906,9 @@ void goldstar_state::video_start()
void cmaster_state::video_start()
{
m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmaster_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmaster_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmaster_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmaster_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmaster_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmaster_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel_tilemap[0]->set_scroll_cols(64);
m_reel_tilemap[1]->set_scroll_cols(64);
@ -916,7 +917,7 @@ void cmaster_state::video_start()
m_cmaster_girl_num = 0;
m_cmaster_girl_pal = 0;
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmaster_state::get_cherrym_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64, 32);
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmaster_state::get_cherrym_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
m_enable_reg = 0x0b;
@ -964,7 +965,8 @@ uint32_t goldstar_state::screen_update_goldstar(screen_device &screen, bitmap_rg
for (int i = 0; i < 64; i++)
m_bg_tilemap->set_scrolly(i, m_bg_scroll[i]);
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
const rectangle bg_visible(0*8, (63)*8-1, 8*8, (31)*8-1); // top clipped for jkrmast
m_bg_tilemap->draw(screen, bitmap, bg_visible, 0, 0);
}
if (m_enable_reg & 0x08)
@ -1159,9 +1161,9 @@ TILE_GET_INFO_MEMBER(cmast97_state::get_cmast97_bg_tile_info)
void cmast97_state::video_start()
{
m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel_tilemap[0]->set_scroll_cols(64);
m_reel_tilemap[1]->set_scroll_cols(64);
@ -1174,11 +1176,11 @@ void cmast97_state::video_start()
m_cmaster_girl_num = 0;
m_cmaster_girl_pal = 0;
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_cherrym_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64, 32);
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_cherrym_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scrolly(0, -16);
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_cmast97_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64, 32);
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_cmast97_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
void cmast97_state::cmast97_palette_init(palette_device &palette) const
@ -1237,11 +1239,11 @@ TILE_GET_INFO_MEMBER(wingco_state::get_magical_fg_tile_info)
VIDEO_START_MEMBER(wingco_state, bingowng)
{
m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel_tilemap[0]->set_scroll_cols(64);
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_goldstar_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64, 32);
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_goldstar_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
// is there an enable reg for this game?
@ -3007,7 +3009,7 @@ void unkch_state::coincount_w(uint8_t data)
*/
m_ticket_dispenser->motor_w(!BIT(data, 7));
m_ticket_dispenser->motor_w(BIT(data, 7));
machine().bookkeeping().coin_counter_w(0, data & 0x04); // Credit counter
machine().bookkeeping().coin_counter_w(1, data & 0x08); // Key In counter
@ -3255,7 +3257,7 @@ static INPUT_PORTS_START( cmv4_service )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(ticket_dispenser_device::line_r)) //PORT_CODE(KEYCODE_7_PAD) PORT_NAME("Hopper Coin")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) // Hopper presence detection
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Out / Attendant")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats") // on some sets a DSW must be on/off to access this menu
INPUT_PORTS_END
@ -3298,11 +3300,11 @@ static INPUT_PORTS_START( cmv4_dsw2 )
PORT_DIPSETTING( 0x02, "6" )
PORT_DIPSETTING( 0x01, "7" )
PORT_DIPSETTING( 0x00, "8 (Highest)" )
PORT_DIPNAME( 0x18, 0x00, "Hopper Limit" ) PORT_DIPLOCATION("DSW2:4,5")
PORT_DIPSETTING( 0x18, "300" )
PORT_DIPSETTING( 0x10, "500" )
PORT_DIPSETTING( 0x08, "1000" )
PORT_DIPSETTING( 0x00, "Unlimited" )
PORT_DIPNAME( 0x18, 0x18, "Hopper Limit" ) PORT_DIPLOCATION("DSW2:4,5")
PORT_DIPSETTING( 0x18, "Unlimited" )
PORT_DIPSETTING( 0x10, "1000" )
PORT_DIPSETTING( 0x08, "500" )
PORT_DIPSETTING( 0x00, "300" )
PORT_DIPNAME( 0x20, 0x20, "100+ Odds Sound" ) PORT_DIPLOCATION("DSW2:6")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
@ -4784,7 +4786,7 @@ static INPUT_PORTS_START( pkrmast )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("Coin D")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT)
PORT_START("IN2") // TEST
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 )
@ -4995,7 +4997,7 @@ static INPUT_PORTS_START( jkrmast )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_NAME("Coin A") PORT_IMPULSE(2)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT)
PORT_START("IN2") // TEST
@ -5261,7 +5263,7 @@ static INPUT_PORTS_START( lucky8 )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(ticket_dispenser_device::line_r))
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Out / Attendant")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats")
@ -5492,9 +5494,9 @@ static INPUT_PORTS_START( ns8linew )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(ticket_dispenser_device::line_r))
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) // Hopper presence detection
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Out / Attendant")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats")
@ -5623,8 +5625,11 @@ static INPUT_PORTS_START( lucky8t )
PORT_DIPNAME( 0x01, 0x01, "Max Bet" ) PORT_DIPLOCATION("DSW1:1")
PORT_DIPSETTING( 0x01, "64" )
PORT_DIPSETTING( 0x00, "120" )
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "DSW1:2")
PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "DSW1:3")
PORT_DIPNAME( 0x06, 0x06, "Bonus / Game Difficulty" ) PORT_DIPLOCATION("DSW1:2,3")
PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
PORT_DIPSETTING( 0x02, DEF_STR( Medium ) )
PORT_DIPSETTING( 0x04, DEF_STR( Hard ) )
PORT_DIPSETTING( 0x06, DEF_STR( Hardest ) )
PORT_DIPNAME( 0x18, 0x18, "Double-Up Game Pay Rate" ) PORT_DIPLOCATION("DSW1:4,5") // OK
PORT_DIPSETTING( 0x18, "60%" )
PORT_DIPSETTING( 0x10, "70%" )
@ -5633,8 +5638,11 @@ static INPUT_PORTS_START( lucky8t )
PORT_DIPNAME( 0x20, 0x20, "Reel Speed" ) PORT_DIPLOCATION("DSW1:6")
PORT_DIPSETTING( 0x20, "Normal" )
PORT_DIPSETTING( 0x00, "Fast" )
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW1:7")
PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DSW1:8")
PORT_DIPNAME( 0xc0, 0xc0, "JP Game Difficulty" ) PORT_DIPLOCATION("DSW1:7,8")
PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
PORT_DIPSETTING( 0x40, DEF_STR( Medium ) )
PORT_DIPSETTING( 0x80, DEF_STR( Hard ) )
PORT_DIPSETTING( 0xc0, DEF_STR( Hardest ) )
PORT_MODIFY("DSW2")
PORT_DIPNAME( 0x03, 0x01, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2") // OK
@ -5645,35 +5653,47 @@ static INPUT_PORTS_START( lucky8t )
PORT_DIPNAME( 0x04, 0x04, "Double Up Game" ) PORT_DIPLOCATION("DSW2:3") // OK, use stop buttons to play
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "DSW2:4")
PORT_DIPNAME( 0x08, 0x08, "Seven Crowns Difficulty" ) PORT_DIPLOCATION("DSW2:4")
PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "DSW2:5")
PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "DSW2:6")
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW2:7")
PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DSW2:8")
PORT_MODIFY("DSW3")
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "DSW3:1")
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "DSW3:2")
PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "DSW3:3")
PORT_DIPNAME( 0x03, 0x03, "Coin Value" ) PORT_DIPLOCATION("DSW3:1,2")
PORT_DIPSETTING( 0x00, "50" )
PORT_DIPSETTING( 0x03, "100" )
PORT_DIPSETTING( 0x01, "200" )
PORT_DIPSETTING( 0x02, "300" )
PORT_DIPNAME( 0x04, 0x04, "Bell Bonus Difficulty" ) PORT_DIPLOCATION("DSW3:3")
PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
PORT_DIPSETTING( 0x04, DEF_STR( Hard ) )
PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "DSW3:4")
PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "DSW3:5")
PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "DSW3:6")
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW3:7")
PORT_DIPNAME( 0x80, 0x80, "Minimum Bet" ) PORT_DIPLOCATION("DSW3:8") // conditional to DSW1-1 max bet
PORT_DIPNAME( 0x80, 0x80, "Minimum Bet" ) PORT_DIPLOCATION("DSW3:8") // conditional to DSW1-1 max bet
PORT_DIPSETTING( 0x80, "16" ) PORT_CONDITION("DSW1", 0x01, NOTEQUALS, 0x00) // for max 64
PORT_DIPSETTING( 0x00, "32" ) PORT_CONDITION("DSW1", 0x01, NOTEQUALS, 0x00) // for max 64
PORT_DIPSETTING( 0x80, "32" ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x00) // for max 120
PORT_DIPSETTING( 0x00, "40" ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x00) // for max 120
PORT_MODIFY("DSW4")
PORT_DIPNAME( 0x03, 0x03, "Key In Rate" ) PORT_DIPLOCATION("DSW4:1,2") // OK
PORT_DIPNAME( 0x03, 0x03, "Key In Rate" ) PORT_DIPLOCATION("DSW4:1,2") // OK
PORT_DIPSETTING( 0x03, "100" )
PORT_DIPSETTING( 0x00, "500" )
PORT_DIPSETTING( 0x02, "1000" )
PORT_DIPSETTING( 0x01, "3000" )
PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "DSW4:3")
PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "DSW4:4")
PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "DSW4:5")
PORT_DIPNAME( 0x0c, 0x0c, "Big Jackpot Difficulty" ) PORT_DIPLOCATION("DSW4:3,4")
PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
PORT_DIPSETTING( 0x04, DEF_STR( Medium ) )
PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
PORT_DIPSETTING( 0x0c, DEF_STR( Hardest ) )
PORT_DIPNAME( 0x10, 0x00, "Tuning (Difficulty)" ) PORT_DIPLOCATION("DSW4:5")
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // manual recommends this ON
PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "DSW4:6")
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW4:7")
PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DSW4:8")
@ -5728,7 +5748,7 @@ static INPUT_PORTS_START( superdrg )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Out / Attendant")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats")
@ -5914,9 +5934,9 @@ static INPUT_PORTS_START( ns8linwa )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(ticket_dispenser_device::line_r))
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Out / Attendant")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats")
@ -6068,7 +6088,7 @@ static INPUT_PORTS_START( luckylad ) // CHECK & FIX ME
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(ticket_dispenser_device::line_r))
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Out / Attendant")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
@ -6363,9 +6383,9 @@ static INPUT_PORTS_START( bingowng )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(ticket_dispenser_device::line_r))
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Out / Attendant")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats")
@ -6708,7 +6728,7 @@ static INPUT_PORTS_START( magodds )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(ticket_dispenser_device::line_r))
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_CUSTOM ) // Hopper presence detection
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Out / Attendant")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats")
@ -6845,7 +6865,7 @@ static INPUT_PORTS_START( schery97 )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(ticket_dispenser_device::line_r))
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) // Hopper presence detection
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Out / Attendant")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats") // doesn't work in v352c4
@ -7017,12 +7037,12 @@ static INPUT_PORTS_START( nfb96 )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(ticket_dispenser_device::line_r))
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_CUSTOM ) // Hopper presence detection
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Out / Attendant")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings / Confirm")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats")
PORT_START("DSW1")
PORT_DIPNAME( 0x07, 0x03, "Game Level (Difficulty)" ) PORT_DIPLOCATION("DSW1:1,2,3") // OK
PORT_DIPNAME( 0x07, 0x03, "Game Level (Difficulty)" ) PORT_DIPLOCATION("DSW1:!1,!2,!3") // OK
PORT_DIPSETTING( 0x07, "Level 1 (Easiest)" )
PORT_DIPSETTING( 0x06, "Level 2" )
PORT_DIPSETTING( 0x05, "Level 3" )
@ -7031,7 +7051,7 @@ static INPUT_PORTS_START( nfb96 )
PORT_DIPSETTING( 0x02, "Level 6" )
PORT_DIPSETTING( 0x01, "Level 7" )
PORT_DIPSETTING( 0x00, "Level 8 (Hardest)" )
PORT_DIPNAME( 0x38, 0x38, "Maximum Play" ) PORT_DIPLOCATION("DSW1:4,5,6") // OK
PORT_DIPNAME( 0x38, 0x38, "Maximum Play" ) PORT_DIPLOCATION("DSW1:!4,!5,!6") // OK
PORT_DIPSETTING( 0x00, "10" ) PORT_CONDITION("DSW5", 0x10, EQUALS, 0x00)
PORT_DIPSETTING( 0x08, "20" ) PORT_CONDITION("DSW5", 0x10, EQUALS, 0x00)
PORT_DIPSETTING( 0x10, "30" ) PORT_CONDITION("DSW5", 0x10, EQUALS, 0x00)
@ -7044,7 +7064,7 @@ static INPUT_PORTS_START( nfb96 )
PORT_DIPSETTING( 0x28, "48" )
PORT_DIPSETTING( 0x30, "64" )
PORT_DIPSETTING( 0x38, "80" )
PORT_DIPNAME( 0xc0, 0x80, "Minimum Play for Bonus" ) PORT_DIPLOCATION("DSW1:7,8") // OK
PORT_DIPNAME( 0xc0, 0x00, "Minimum Play for Bonus" ) PORT_DIPLOCATION("DSW1:!7,!8") // OK
PORT_DIPSETTING( 0x00, "10" ) PORT_CONDITION("DSW5", 0x10, EQUALS, 0x00)
PORT_DIPSETTING( 0x40, "20" ) PORT_CONDITION("DSW5", 0x10, EQUALS, 0x00)
PORT_DIPSETTING( 0x80, "30" ) PORT_CONDITION("DSW5", 0x10, EQUALS, 0x00)
@ -7055,13 +7075,13 @@ static INPUT_PORTS_START( nfb96 )
PORT_DIPSETTING( 0xc0, "32" ) PORT_CONDITION("DSW5", 0x10, EQUALS, 0x10)
PORT_START("DSW2")
PORT_DIPNAME( 0x01, 0x01, "Double Up Game" ) PORT_DIPLOCATION("DSW2:1") // OK
PORT_DIPNAME( 0x01, 0x01, "Double Up Game" ) PORT_DIPLOCATION("DSW2:!1") // OK
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x01, DEF_STR( Yes ) )
PORT_DIPNAME( 0x02, 0x02, "Skill Spinning" ) PORT_DIPLOCATION("DSW2:2") // OK (listed as Non-Stop spinning in the manual)
PORT_DIPNAME( 0x02, 0x00, "Skill Spinning" ) PORT_DIPLOCATION("DSW2:!2") // OK (listed as Non-Stop spinning in the manual)
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x02, DEF_STR( Yes ) )
PORT_DIPNAME( 0x1c, 0x10, "Coin In" ) PORT_DIPLOCATION("DSW2:3,4,5") // OK
PORT_DIPNAME( 0x1c, 0x10, "Coin In" ) PORT_DIPLOCATION("DSW2:!3,!4,!5") // OK
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x08, DEF_STR( 1C_4C ) )
@ -7070,17 +7090,17 @@ static INPUT_PORTS_START( nfb96 )
PORT_DIPSETTING( 0x14, DEF_STR( 1C_20C ) )
PORT_DIPSETTING( 0x18, DEF_STR( 1C_25C ) )
PORT_DIPSETTING( 0x1c, DEF_STR( 1C_100C ) )
PORT_DIPNAME( 0x60, 0x00, "Note In Value" ) PORT_DIPLOCATION("DSW2:6,7") // OK
PORT_DIPNAME( 0x60, 0x00, "Note In Value" ) PORT_DIPLOCATION("DSW2:!6,!7") // OK
PORT_DIPSETTING( 0x00, "100" )
PORT_DIPSETTING( 0x20, "200" )
PORT_DIPSETTING( 0x40, "500" )
PORT_DIPSETTING( 0x60, "1000" )
PORT_DIPNAME( 0x80, 0x00, "WARNING: Always Off" ) PORT_DIPLOCATION("DSW2:8") // Listed that way in the manual
PORT_DIPNAME( 0x80, 0x00, "WARNING: Always Off" ) PORT_DIPLOCATION("DSW2:!8") // Listed that way in the manual
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
PORT_START("DSW3")
PORT_DIPNAME( 0x03, 0x02, "Minimum Play to Start" ) PORT_DIPLOCATION("DSW3:1,2") // OK
PORT_DIPNAME( 0x03, 0x01, "Minimum Play to Start" ) PORT_DIPLOCATION("DSW3:!1,!2") // OK
PORT_DIPSETTING( 0x00, "1" )
PORT_DIPSETTING( 0x01, "10" ) PORT_CONDITION("DSW5", 0x10, EQUALS, 0x00)
PORT_DIPSETTING( 0x02, "20" ) PORT_CONDITION("DSW5", 0x10, EQUALS, 0x00)
@ -7088,12 +7108,12 @@ static INPUT_PORTS_START( nfb96 )
PORT_DIPSETTING( 0x01, "8" ) PORT_CONDITION("DSW5", 0x10, EQUALS, 0x10)
PORT_DIPSETTING( 0x02, "16" ) PORT_CONDITION("DSW5", 0x10, EQUALS, 0x10)
PORT_DIPSETTING( 0x03, "24" ) PORT_CONDITION("DSW5", 0x10, EQUALS, 0x10)
PORT_DIPNAME( 0x0c, 0x08, "Max Coin In & Note In Points" ) PORT_DIPLOCATION("DSW3:3,4") // OK
PORT_DIPNAME( 0x0c, 0x08, "Max Coin In & Note In Points" ) PORT_DIPLOCATION("DSW3:!3,!4") // OK
PORT_DIPSETTING( 0x00, "1000" )
PORT_DIPSETTING( 0x04, "5000" )
PORT_DIPSETTING( 0x08, "10000" )
PORT_DIPSETTING( 0x0c, "90000" )
PORT_DIPNAME( 0xf0, 0x00, "Clear / Ticket Unit" ) PORT_DIPLOCATION("DSW3:5,6,7,8") // OK
PORT_DIPNAME( 0xf0, 0x00, "Clear / Ticket Unit" ) PORT_DIPLOCATION("DSW3:!5,!6,!7,!8") // OK
PORT_DIPSETTING( 0x00, "1" )
PORT_DIPSETTING( 0x10, "4" )
PORT_DIPSETTING( 0x20, "5" )
@ -7112,21 +7132,21 @@ static INPUT_PORTS_START( nfb96 )
PORT_DIPSETTING( 0xf0, "500" )
PORT_START("DSW4")
PORT_DIPNAME( 0x01, 0x01, "Check Account" ) PORT_DIPLOCATION("DSW4:1") // OK
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x01, DEF_STR( Yes ) )
PORT_DIPNAME( 0x02, 0x00, "Show In Confirm Screen" ) PORT_DIPLOCATION("DSW4:2") // OK
PORT_DIPSETTING( 0x00, "Level of Difficulty" ) // percentage in the manual
PORT_DIPSETTING( 0x02, "Percentage" ) // level of difficulty in the manual
PORT_DIPNAME( 0x04, 0x00, "Initial Bonus Settings After Reset" ) PORT_DIPLOCATION("DSW4:3") // OK (need a reset after change)
PORT_DIPSETTING( 0x00, "Type 1" )
PORT_DIPSETTING( 0x04, "Type 2" )
PORT_DIPNAME( 0x08, 0x08, "Bonus Accumulation" ) PORT_DIPLOCATION("DSW4:4") // OK (need a reset after change)
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x08, DEF_STR( Yes ) )
PORT_DIPNAME( 0x01, 0x00, "Check Account" ) PORT_DIPLOCATION("DSW4:1") // OK
PORT_DIPSETTING( 0x01, DEF_STR( No ) )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
PORT_DIPNAME( 0x02, 0x02, "Show In Confirm Screen" ) PORT_DIPLOCATION("DSW4:2") // OK
PORT_DIPSETTING( 0x02, "Percentage" ) // percentage in the manual
PORT_DIPSETTING( 0x00, "Level of Difficulty" ) // level of difficulty in the manual
PORT_DIPNAME( 0x04, 0x04, "Initial Bonus Settings After Reset" ) PORT_DIPLOCATION("DSW4:3") // OK (need a reset after change)
PORT_DIPSETTING( 0x04, "Type 1" )
PORT_DIPSETTING( 0x00, "Type 2" )
PORT_DIPNAME( 0x08, 0x00, "Bonus Accumulation" ) PORT_DIPLOCATION("DSW4:4") // OK (need a reset after change)
PORT_DIPSETTING( 0x08, DEF_STR( No ) )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
PORT_DIPNAME( 0x10, 0x10, "Auto Ticket Dispense" ) PORT_DIPLOCATION("DSW4:5") // OK (need a reset after change)
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
PORT_DIPSETTING( 0x10, DEF_STR( No ) )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
PORT_DIPNAME( 0xe0, 0xe0, "Ticket Dispense Mode" ) PORT_DIPLOCATION("DSW4:6,7,8") // OK
PORT_DIPSETTING( 0xe0, "Continuous" )
PORT_DIPSETTING( 0xc0, "Max 1 Ticket Per Game" )
@ -7138,17 +7158,17 @@ static INPUT_PORTS_START( nfb96 )
PORT_DIPSETTING( 0x00, "Max 10 Ticket Per Game" )
PORT_START("DSW5")
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW5:1") // OK
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, "Limit Score of Each Game to Max 10x Bet or $5.00" ) PORT_DIPLOCATION("DSW5:2") // OK
PORT_DIPSETTING( 0x00, DEF_STR( No ) ) PORT_CONDITION("DSW4", 0x10, EQUALS, 0x10)
PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) PORT_CONDITION("DSW4", 0x10, EQUALS, 0x10)
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW5:1") // OK
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, "Limit Score of Each Game to Max 10x Bet or $5.00" ) PORT_DIPLOCATION("DSW5:2") // OK
PORT_DIPSETTING( 0x02, DEF_STR( No ) ) PORT_CONDITION("DSW4", 0x10, EQUALS, 0x10)
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_CONDITION("DSW4", 0x10, EQUALS, 0x10)
PORT_DIPSETTING( 0x00, "Unused when DSW4-5 OFF" ) PORT_CONDITION("DSW4", 0x10, EQUALS, 0x00)
PORT_DIPSETTING( 0x02, "Unused when DSW4-5 OFF" ) PORT_CONDITION("DSW4", 0x10, EQUALS, 0x00)
PORT_DIPNAME( 0x04, 0x00, "Use Printer" ) PORT_DIPLOCATION("DSW5:3") // OK
PORT_DIPSETTING( 0x00, "No (Use TDDD)" )
PORT_DIPSETTING( 0x04, DEF_STR( Yes ) )
PORT_DIPNAME( 0x04, 0x04, "Use Printer" ) PORT_DIPLOCATION("DSW5:3") // OK
PORT_DIPSETTING( 0x04, "No (Use TDDD)" )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
PORT_DIPNAME( 0x08, 0x08, "Show Game Name & Odds Table" ) PORT_DIPLOCATION("DSW5:4") // OK
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x08, DEF_STR( Yes ) )
@ -7160,17 +7180,16 @@ static INPUT_PORTS_START( nfb96 )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_CONDITION("DSW4", 0x10, EQUALS, 0x10)
PORT_DIPSETTING( 0x20, DEF_STR( Unused ) ) PORT_CONDITION("DSW4", 0x10, EQUALS, 0x00)
PORT_DIPSETTING( 0x00, DEF_STR( Unused ) ) PORT_CONDITION("DSW4", 0x10, EQUALS, 0x00)
PORT_DIPNAME( 0x40, 0x00, "Reset Remaining Score when Game Over" ) PORT_DIPLOCATION("DSW5:7") // OK (turn the machine off/on after change)
PORT_DIPNAME( 0x40, 0x40, "Reset Remaining Score when Game Over" ) PORT_DIPLOCATION("DSW5:7") // OK (turn the machine off/on after change)
PORT_DIPSETTING( 0x40, DEF_STR( No ) ) PORT_CONDITION("DSW4", 0x10, EQUALS, 0x10)
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) PORT_CONDITION("DSW4", 0x10, EQUALS, 0x10)
PORT_DIPSETTING( 0x40, DEF_STR( Unused ) ) PORT_CONDITION("DSW4", 0x10, EQUALS, 0x00)
PORT_DIPSETTING( 0x00, DEF_STR( Unused ) ) PORT_CONDITION("DSW4", 0x10, EQUALS, 0x00)
PORT_DIPNAME( 0x80, 0x00, "Advanced Count Game" ) PORT_DIPLOCATION("DSW5:8") // OK (turn the machine off/on after change)
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x80, DEF_STR( Yes ) )
PORT_DIPNAME( 0x80, 0x80, "Advanced Count Game" ) PORT_DIPLOCATION("DSW5:8") // OK (turn the machine off/on after change)
PORT_DIPSETTING( 0x80, DEF_STR( No ) )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
INPUT_PORTS_END
// Displays tkt info on screen but has no settings or hopper controls other than "Ticket Out By" DSW
// All marked as "Unknown" until a manual or more information is found
static INPUT_PORTS_START( nfb96tx )
@ -7541,10 +7560,10 @@ static INPUT_PORTS_START( roypok96 )
PORT_START("IN2")
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_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(ticket_dispenser_device::line_r))
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) // Hopper presence detection
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Out / Attendant")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats")
@ -7724,7 +7743,7 @@ static INPUT_PORTS_START( pokonl97 )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(ticket_dispenser_device::line_r))
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_CUSTOM ) // Hopper presence detection
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Out / Attendant")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats")
@ -8019,6 +8038,10 @@ static INPUT_PORTS_START( nfb96bl )
PORT_INCLUDE( cmv4_service )
PORT_MODIFY("IN2")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(ticket_dispenser_device::line_r))
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_CUSTOM ) // Hopper presence detection
PORT_START("DSW1")
PORT_DIPNAME( 0x07, 0x03, "Game Rate" ) PORT_DIPLOCATION("DSW1:1,2,3") // OK
PORT_DIPSETTING( 0x07, "Level 1 - 90%" )
@ -8164,9 +8187,7 @@ static INPUT_PORTS_START( unkch_controls )
PORT_START("IN1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) // Trips "call attendant" state if activated while credited - something to do with hopper out?
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper Payout")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("tickets", FUNC(ticket_dispenser_device::line_r))
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
@ -10927,7 +10948,7 @@ void wingco_state::system_outputc_w(uint8_t data)
m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
m_ticket_dispenser->motor_w(!BIT(data, 7));
popmessage("system_outputc_w %02x",data);
//popmessage("system_outputc_w %02x",data);
}
void wingco_state::ay8910_outputa_w(uint8_t data)
@ -14978,6 +14999,8 @@ ROM_START( jkrmast )
ROM_LOAD( "n82s129.u28", 0x0000, 0x0100, CRC(cfb152cf) SHA1(3166b9b21be4ce1d3b6fc8974c149b4ead03abac) )
ROM_END
// this set is version 512, but the id at bottom of the program says v513
// sometimes fg colors aren't accurate, and in the bonus stages, reels bg is always white.
ROM_START( jkrmasta )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "pid-513.u5", 0x4000, 0x4000, CRC(12fa7ea0) SHA1(71ee141fe01ae2ce9913620b52c54cf445fd0b00) )
@ -15001,6 +15024,32 @@ ROM_START( jkrmasta )
ROM_LOAD( "n82s129.u28", 0x0000, 0x0100, CRC(cfb152cf) SHA1(3166b9b21be4ce1d3b6fc8974c149b4ead03abac) )
ROM_END
// this set is an alt version 512, but the id at bottom of the program says v512
// gfx needs work to properly hide the bg tilemap when you trigger settings or coin in when title or info.
// if you coin or enter setting whilst the reels demo, all is ok.
ROM_START( jkrmastb )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "v512_27c512.bin", 0x4000, 0x4000, CRC(22aa8b9f) SHA1(0e06f6491d6c1e74ba7e721866b10d89c4be2e7c) )
ROM_CONTINUE(0x0000, 0x4000)
ROM_CONTINUE(0xc000, 0x4000)
ROM_CONTINUE(0x8000, 0x4000)
ROM_REGION( 0x20000, "gfx1", 0 )
ROM_LOAD( "2000b.u48", 0x00000, 0x20000, CRC(e7b406ec) SHA1(c0a10cf8bf5467ecfe3c90e6897db3ab9aae0127) )
ROM_REGION( 0x20000, "gfx2", 0 )
ROM_LOAD( "2000a.u41", 0x00000, 0x20000, CRC(cb8b1563) SHA1(c8c3ae646a9f3a7482d83566e4b3e18441c5d67f) )
ROM_REGION( 0x200, "colours", 0 )
ROM_LOAD( "n82s147a.u13", 0x000, 0x200, CRC(da92f0ae) SHA1(1269a2029e689a5f111c57e80825b3756b50521e) )
ROM_REGION( 0x200, "proms", ROMREGION_ERASE00 )
// filled at init()
ROM_REGION( 0x100, "proms2", 0 )
ROM_LOAD( "n82s129.u28", 0x0000, 0x0100, CRC(cfb152cf) SHA1(3166b9b21be4ce1d3b6fc8974c149b4ead03abac) )
ROM_END
ROM_START( pkrmast )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "pokermastera.rom", 0x7000, 0x1000, CRC(467249f7) SHA1(efbab56896dc58d22ec921e7f5fd0befcfaadc52) )
@ -24937,7 +24986,7 @@ GAMEL( 199?, chryglda, ncb3, cb3e, chrygld, cb3_state, init_cb3e
GAME( 1994, chryangla, ncb3, chryangla,ncb3, cb3_state, init_chryangl, ROT0, "bootleg (G.C.I.)", "Cherry Angel (encrypted, W-4 hardware)", MACHINE_NOT_WORKING ) // DYNA CB3 V1.40 string, decrypted but only test screens work
GAME( 1991, eldoraddoa, eldoradd, eldoraddoa,animalhs,cmaster_state, init_eldoraddoa,ROT0, "Dyna", "El Dorado (V1.4D)", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS ) // improve GFX drawing, correct palette decode, I/O, etc
GAME( 1991, animalhs, 0, animalhs, animalhs, cmaster_state, init_animalhs, ROT0, "Suns Co Ltd.", "Animal House (V1.0, set 1)", MACHINE_NOT_WORKING ) // improve GFX drawing, correct palette decode, I/O, etc
GAMEL( 1991, animalhs, 0, animalhs, animalhs, cmaster_state, init_animalhs, ROT0, "Suns Co Ltd.", "Animal House (V1.0, set 1)", 0, layout_animalhs ) // improve GFX drawing, correct palette decode
GAME( 1991, animalhsa, animalhs, animalhs, animalhs, cmaster_state, init_animalhs, ROT0, "Suns Co Ltd.", "Animal House (V1.0, set 2)", MACHINE_NOT_WORKING ) // improve GFX drawing, correct palette decode, I/O, etc
// looks like a hack of Cherry Bonus 3
@ -24990,7 +25039,8 @@ GAMEL( 199?, alienatt, cmaster, cm, cmaster, cmaster_state, init_alie
GAMEL( 1991, tonypok, 0, cm, tonypok, cmaster_state, init_tonypok, ROT0, "Corsica", "Poker Master (Tony-Poker V3.A, hack?)", 0 , layout_tonypok )
GAME( 1998, jkrmast, 0, jkrmast, jkrmast, cmaster_state, init_jkrmast, ROT0, "Pick-A-Party USA", "Joker Master 2000 Special Edition (V515)", 0 )
GAME( 1998, jkrmasta, jkrmast, jkrmast, jkrmast, cmaster_state, init_jkrmast, ROT0, "Pick-A-Party USA", "Joker Master 2000 Special Edition (V512)", 0 )
GAME( 1998, jkrmasta, jkrmast, jkrmast, jkrmast, cmaster_state, init_jkrmast, ROT0, "Pick-A-Party USA", "Joker Master 2000 Special Edition (V512/513)", MACHINE_IMPERFECT_COLORS ) // sometimes fg colors are wrong, bonus stages have reels bg always white
GAME( 1998, jkrmastb, jkrmast, jkrmast, jkrmast, cmaster_state, init_jkrmast, ROT0, "Pick-A-Party USA", "Joker Master 2000 Special Edition (V512)", MACHINE_IMPERFECT_GRAPHICS ) // needs to clean the bg tilemap properly
GAME( 1993, pkrmast, 0, pkrmast, pkrmast, cmaster_state, init_pkrmast, ROT0, "Fun USA", "Poker Master (ED-1993 set 1)", 0 ) // puts FUN USA 95H N/G V2.20 in NVRAM
GAME( 1993, pkrmasta, pkrmast, pkrmast, pkrmast, cmaster_state, init_pkrmast, ROT0, "Fun USA", "Poker Master (ED-1993 set 2)", 0 ) // needs dips fixed, puts PM93 JAN 29/1996 V1.52 in NVRAM

View File

@ -0,0 +1,256 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
copyright-holders: Roberto Fresca
Animal House control panel
-->
<mamelayout version="2">
<!-- define button-lamps -->
<element name="stop1" defstate="0">
<rect state="1">
<color red="1.0" green="0.0" blue="0.0" />
</rect>
<rect state="0">
<color red="0.20" green="0.0" blue="0.0" />
</rect>
<text string="STOP 1">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.1" width="1" height="0.4" />
</text>
<text string="DOUBLE">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.5" width="1" height="0.4" />
</text>
</element>
<element name="stop2" defstate="0">
<rect state="1">
<color red="1.0" green="0.0" blue="0.0" />
</rect>
<rect state="0">
<color red="0.20" green="0.0" blue="0.0" />
</rect>
<text string="STOP 2">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.1" width="1" height="0.4" />
</text>
<text string="BIG">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.5" width="1" height="0.4" />
</text>
</element>
<element name="stop3" defstate="0">
<rect state="1">
<color red="1.0" green="0.0" blue="0.0" />
</rect>
<rect state="0">
<color red="0.20" green="0.0" blue="0.0" />
</rect>
<text string="STOP 3">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.1" width="1" height="0.4" />
</text>
<text string="SMALL/INFO">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.5" width="1" height="0.4" />
</text>
</element>
<element name="stopall" defstate="0">
<rect state="1">
<color red="1.0" green="0.0" blue="0.0" />
</rect>
<rect state="0">
<color red="0.20" green="0.0" blue="0.0" />
</rect>
<text string="STOP ALL">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.1" width="1" height="0.4" />
</text>
<text string="TAKE">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.5" width="1" height="0.4" />
</text>
</element>
<element name="bet" defstate="0">
<rect state="1">
<color red="1.0" green="0.0" blue="1.0" />
</rect>
<rect state="0">
<color red="0.20" green="0.0" blue="0.15" />
</rect>
<text string="BET">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.3" width="1" height="0.4" />
</text>
</element>
<element name="start" defstate="0">
<rect state="1">
<color red="0.0" green="1.0" blue="0.0" />
</rect>
<rect state="0">
<color red="0.0" green="0.20" blue="0.0" />
</rect>
<text string="START">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.3" width="1" height="0.4" />
</text>
</element>
<!-- define basic elements -->
<element name="cpanel">
<rect>
<color red="0.0" green="0.0" blue="0.0" />
</rect>
</element>
<element name="bet_b" defstate="0">
<rect state="1">
<color red="0.7" green="0.0" blue="0.7" />
</rect>
<rect state="0">
<color red="0.1" green="0.0" blue="0.1" />
</rect>
</element>
<element name="stop_b" defstate="0">
<rect state="1">
<color red="0.7" green="0.0" blue="0.0" />
</rect>
<rect state="0">
<color red="0.1" green="0.0" blue="0.0" />
</rect>
</element>
<element name="start_b" defstate="0">
<rect state="1">
<color red="0.0" green="0.7" blue="0.0" />
</rect>
<rect state="0">
<color red="0.0" green="0.1" blue="0.0" />
</rect>
</element>
<!-- define cpanel degradee elements -->
<element name="cpanel1">
<rect>
<color red="0.20" green="0.20" blue="0.20" />
</rect>
</element>
<element name="cpanel2">
<rect>
<color red="0.15" green="0.15" blue="0.15" />
</rect>
</element>
<element name="cpanel3">
<rect>
<color red="0.10" green="0.10" blue="0.10" />
</rect>
</element>
<element name="cpanel4">
<rect>
<color red="0.05" green="0.05" blue="0.05" />
</rect>
</element>
<!-- define background -->
<view name="Button Lamps">
<screen index="0">
<bounds left="0" top="0" right="4" bottom="3" />
</screen>
<element ref="cpanel">
<bounds left="0" right="4" top="3" bottom="3.40" />
</element>
<element ref="cpanel1">
<bounds left="0" right="4" top="3.01" bottom="3.39" />
</element>
<element ref="cpanel2">
<bounds left="0" right="4" top="3.02" bottom="3.38" />
</element>
<element ref="cpanel3">
<bounds left="0" right="4" top="3.03" bottom="3.37" />
</element>
<element ref="cpanel4">
<bounds left="0" right="4" top="3.04" bottom="3.36" />
</element>
<element ref="cpanel">
<bounds left="0" right="4" top="3.05" bottom="3.35" />
</element>
<!-- define lamps -->
<element name="lamp11" ref="bet_b" inputtag="IN0" inputmask="0x20">
<bounds x="0.05" y="3.08" width="0.40" height="0.24" />
</element>
<element name="lamp11" ref="bet" inputtag="IN0" inputmask="0x80">
<bounds x="0.07" y="3.10" width="0.36" height="0.20" />
</element>
<element name="lamp9" ref="stop_b" inputtag="IN0" inputmask="0x08">
<bounds x="0.75" y="3.08" width="0.50" height="0.24" />
</element>
<element name="lamp9" ref="stop1" inputtag="IN0" inputmask="0x08">
<bounds x="0.77" y="3.10" width="0.46" height="0.20" />
</element>
<element name="lamp8" ref="stop_b" inputtag="IN0" inputmask="0x04">
<bounds x="1.4" y="3.08" width="0.50" height="0.24" />
</element>
<element name="lamp8" ref="stop2" inputtag="IN0" inputmask="0x04">
<bounds x="1.42" y="3.10" width="0.46" height="0.20" />
</element>
<element name="lamp12" ref="stop_b" inputtag="IN0" inputmask="0x40">
<bounds x="2.05" y="3.08" width="0.50" height="0.24" />
</element>
<element name="lamp12" ref="stop3" inputtag="IN0" inputmask="0x40">
<bounds x="2.07" y="3.10" width="0.46" height="0.20" />
</element>
<element name="lamp10" ref="stop_b" inputtag="IN0" inputmask="0x10">
<bounds x="2.7" y="3.08" width="0.50" height="0.24" />
</element>
<element name="lamp10" ref="stopall" inputtag="IN0" inputmask="0x10">
<bounds x="2.72" y="3.10" width="0.46" height="0.20" />
</element>
<element name="lamp13" ref="start_b" inputtag="IN0" inputmask="0x80">
<bounds x="3.45" y="3.08" width="0.50" height="0.24" />
</element>
<element name="lamp13" ref="start" inputtag="IN0" inputmask="0x80">
<bounds x="3.47" y="3.10" width="0.46" height="0.20" />
</element>
</view>
</mamelayout>

View File

@ -20596,6 +20596,7 @@ hamhouse
hamhouse9
jkrmast
jkrmasta
jkrmastb
jpknight
kkotnoli
ladylinr

View File

@ -187,5 +187,5 @@ ROM_END
} // anonymous namespace
GAME( 2004?, wpddz, 0, wpddz, wpddz, sgm_state, empty_init, ROT0, "SGM", "Wang Pai Dou Dizhou", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
GAME( 200?, dajiaddz, 0, wpddz, wpddz, sgm_state, empty_init, ROT0, "SGM", "Dajia Dou Dizhou", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
GAME( 2004?, wpddz, 0, wpddz, wpddz, sgm_state, empty_init, ROT0, "SGM", "Wang Pai Dou Dizhu", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
GAME( 200?, dajiaddz, 0, wpddz, wpddz, sgm_state, empty_init, ROT0, "SGM", "Dajia Dou Dizhu", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )

View File

@ -26,8 +26,6 @@
map(0x200000, 0x3fffff) continued view into external spaces, but this area is banked with m_membankswitch_7810 (valid bank values 0x00-0x3f)
*/
#include "emu.h"
#include "generalplus_gpl16250.h"
#include "generalplus_gpl16250_nand.h"
@ -70,6 +68,36 @@ uint8_t generalplus_gpac800_game_state::read_nand(offs_t offset)
return 0x00;
}
void generalplus_gpac800_game_state::dma_complete_hacks(int state)
{
// HACKS to get into service mode for debugging (needed for testing as many of these require input sequences on the not yet emulated custom controls)
// note, these patch the code copied to SRAM so the 'PROGRAM ROM' check fails (it passes otherwise)
address_space& mem = m_maincpu->space(AS_PROGRAM);
//if (mem.read_word(0x4368c) == 0x4846)
// mem.write_word(0x4368c, 0x4840); // cars 2 force service mode
//if (mem.read_word(0x34410) == 0x4846)
// mem.write_word(0x34410, 0x4840); // golden tee force service mode
// what is it waiting for when we need these? (needed on some service mode screens)
//if (mem.read_word(0x3f368) == 0x4840)
// mem.write_word(0x3f368, 0x4841); // cars 2 IRQ? wait hack
//if (mem.read_word(0x4d8d4) == 0x4840)
// mem.write_word(0x4d8d4, 0x4841); // golden tee IRQ? wait hack
//if (mem.read_word(0x3510f) == 0x4845)
// mem.write_word(0x3510f, 0x4840); // camp rock force service mode
if (mem.read_word(0x4abe7) == 0x4840)
mem.write_word(0x4abe7, 0x4841); // camp rock IRQ? wait hack
//if (mem.read_word(0x37244) == 0x4845)
// mem.write_word(0x37244, 0x4840); // hannah montana guitar force service mode
}
void generalplus_gpac800_game_state::generalplus_gpac800(machine_config &config)
{
@ -85,6 +113,7 @@ void generalplus_gpac800_game_state::generalplus_gpac800(machine_config &config)
m_maincpu->add_route(ALL_OUTPUTS, "speaker", 0.5, 1);
m_maincpu->set_bootmode(0); // boot from internal ROM (NAND bootstrap)
m_maincpu->set_cs_config_callback(FUNC(gcm394_game_state::cs_callback));
m_maincpu->dma_complete_callback().set(FUNC(generalplus_gpac800_game_state::dma_complete_hacks));
m_maincpu->nand_read_callback().set(FUNC(generalplus_gpac800_game_state::read_nand));

View File

@ -55,6 +55,8 @@ private:
void nand_create_stripped_region();
void dma_complete_hacks(int state);
std::vector<uint8_t> m_strippedrom{};
int m_strippedsize = 0;
int m_size = 0;

View File

@ -299,7 +299,7 @@ CONS(2021, punij1pu, punirune, 0, generalplus_gpspi_direct, bfspyhnt, generalplu
CONS(2021, punij2pk, punirune, 0, generalplus_gpspi_direct, bfspyhnt, generalplus_gpspi_direct_game_state, empty_init, "Takara Tomy", "Punirunes (PUNIRUNZU_MAIN_V2, pink, Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
// has a link feature
CONS(2021, punifrnd, 0, 0, generalplus_gpspi_direct, bfspyhnt, generalplus_gpspi_direct_game_state, empty_init, "Takara Tomy", u8"Punirunes Punitomo Tsūshin (hot pink, Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
CONS(2021, punifrnd, 0, 0, generalplus_gpspi_direct, bfspyhnt, generalplus_gpspi_direct_game_state, empty_init, "Takara Tomy", "Punirunes Punitomo Tsuushin (hot pink, Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
// Pocket Monsters ガチッとゲットだぜ! モンスターボールゴー! - Pocket Monsters is printed on the inner shell, but not the box?
CONS(2021, pokgoget, 0, 0, generalplus_gpspi_direct, bfspyhnt, generalplus_gpspi_direct_game_state, empty_init, "Takara Tomy", "Gachitto Get da ze! Monster Ball Go! (210406, Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)

View File

@ -443,6 +443,7 @@ CONS( 2019, anpanm19, 0, 0, gpl32612, gpl32612, generalplus_g
// unknown (uses a glob) has GPspispi header, ARM based, SPI ROM
CONS( 201?, smatomo, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "Bandai", "Smatomo (Japan)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
// company is called 深圳市飞讯互动科技有限公司
// very generic packaging, boots from SPI, has game data on SD card (mostly NES games)
CONS( 202?, intrtvg, 0, 0, gpl32612, gpl32612, generalplus_gpl32612_game_state, empty_init, "Shen Zhen Shi Fei Xun Hu Dong Technology", "Interactive Game Console (Model B608, YRPRSODF)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
// also very generic packaging, similar SD card content to above, including NES games, but with some extra music/videos for the dance part