Bonanza's Joker Poker improvements [Roberto Fresca, Grull Osgo]:

- Lot of fixes and new machine driver, getting Joker Poker working.
 - Fixed crystal/clocks and derivatives.
 - Added lamps support and button-lamps layout for Joker Poker.
 - Worked Super Joker Poker inputs and DIP Switches from the scratch.
 - Added more technical and games notes.

Systems promoted to working
---------------------------
Bonanza's Joker Poker [Roberto Fresca, Grull Osgo]
This commit is contained in:
Roberto Fresca 2025-01-22 04:19:58 +01:00
parent 1aad5b1349
commit 1cc54ebf63
3 changed files with 388 additions and 41 deletions

View File

@ -0,0 +1,271 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
copyright-holders:Roberto Fresca
Bonanza's Joker Poker control panel
-->
<mamelayout version="2">
<!-- define button-lamps -->
<element name="hold" defstate="0">
<rect state="1"><color red="1.0" green="0.5" blue="0.0" /></rect>
<rect state="0"><color red="0.15" green="0.075" blue="0.0" /></rect>
<text string="HOLD">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.25" width="1" height="0.5" />
</text>
</element>
<element name="big" defstate="0">
<rect state="1"><color red="1.0" green="1.0" blue="1.0" /></rect>
<rect state="0"><color red="0.20" green="0.20" blue="0.20" /></rect>
<text string="BIG">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.25" width="1" height="0.5" />
</text>
</element>
<element name="small" defstate="0">
<rect state="1"><color red="1.0" green="1.0" blue="1.0" /></rect>
<rect state="0"><color red="0.20" green="0.20" blue="0.20" /></rect>
<text string="SMALL">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.25" width="1" height="0.5" />
</text>
</element>
<element name="dup_hit" defstate="0">
<rect state="1"><color red="1.0" green="1.0" blue="1.0" /></rect>
<rect state="0"><color red="0.20" green="0.20" blue="0.20" /></rect>
<text string="DOUBLE">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.1" width="1" height="0.4" />
</text>
<text string="HIT">
<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="take_stand" defstate="0">
<rect state="1"><color red="1.0" green="1.0" blue="1.0" /></rect>
<rect state="0"><color red="0.20" green="0.20" blue="0.20" /></rect>
<text string="TAKE">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.1" width="1" height="0.4" />
</text>
<text string="STAND">
<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="cancel" defstate="0">
<rect state="1"><color red="1.0" green="0.0" blue="0.0" /></rect>
<rect state="0"><color red="0.25" green="0.0" blue="0.0" /></rect>
<text string="CANCEL">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.25" width="1" height="0.5" />
</text>
</element>
<element name="draw" defstate="0">
<rect state="1"><color red="1.0" green="0.0" blue="0.0" /></rect>
<rect state="0"><color red="0.25" green="0.0" blue="0.0" /></rect>
<text string="DRAW">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.25" width="1" height="0.5" />
</text>
</element>
<element name="bet_split" defstate="0">
<rect state="1"><color red="1.0" green="0.0" blue="0.0" /></rect>
<rect state="0"><color red="0.25" green="0.0" blue="0.0" /></rect>
<text string="PLAY BET">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.1" width="1" height="0.4" />
</text>
<text string="SPLIT">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.5" 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="buttonedge_y" defstate="0">
<rect state="1"><color red="0.7" green="0.35" blue="0.0" /></rect>
<rect state="0"><color red="0.12" green="0.04" blue="0.0" /></rect>
</element>
<element name="buttonedge_r" defstate="0">
<rect state="1"><color red="0.7" green="0.0" blue="0.0" /></rect>
<rect state="0"><color red="0.15" green="0.0" blue="0.0" /></rect>
</element>
<element name="buttonedge_w" defstate="0">
<rect state="1"><color red="0.77" green="0.77" blue="0.77" /></rect>
<rect state="0"><color red="0.12" green="0.12" blue="0.12" /></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.80" />
</element>
<element ref="cpanel1">
<bounds left="0" right="4" top="3.01" bottom="3.79" />
</element>
<element ref="cpanel2">
<bounds left="0" right="4" top="3.02" bottom="3.78" />
</element>
<element ref="cpanel3">
<bounds left="0" right="4" top="3.03" bottom="3.77" />
</element>
<element ref="cpanel4">
<bounds left="0" right="4" top="3.04" bottom="3.76" />
</element>
<element ref="cpanel">
<bounds left="0" right="4" top="3.05" bottom="3.75" />
</element>
<!-- define lamps -->
<!-- first line: Hold 1 - Hold 2 - Hold 3 - Hold 4 - Hold 5 -->
<element name="lamp4" ref="buttonedge_y" inputtag="INPUT2" inputmask="0x04">
<bounds x="2.89" y="3.08" width="0.44" height="0.24" />
</element>
<element name="lamp4" ref="hold">
<bounds x="2.91" y="3.10" width="0.40" height="0.20" />
</element>
<element name="lamp4" ref="buttonedge_y" inputtag="INPUT2" inputmask="0x08">
<bounds x="2.335" y="3.08" width="0.44" height="0.24" />
</element>
<element name="lamp4" ref="hold">
<bounds x="2.355" y="3.10" width="0.40" height="0.20" />
</element>
<element name="lamp4" ref="buttonedge_y" inputtag="INPUT2" inputmask="0x10">
<bounds x="1.78" y="3.08" width="0.44" height="0.24" />
</element>
<element name="lamp4" ref="hold">
<bounds x="1.80" y="3.10" width="0.40" height="0.20" />
</element>
<element name="lamp4" ref="buttonedge_y" inputtag="INPUT5" inputmask="0x01">
<bounds x="1.225" y="3.08" width="0.44" height="0.24" />
</element>
<element name="lamp4" ref="hold">
<bounds x="1.245" y="3.10" width="0.40" height="0.20" />
</element>
<element name="lamp4" ref="buttonedge_y" inputtag="INPUT5" inputmask="0x02">
<bounds x="0.67" y="3.08" width="0.44" height="0.24" />
</element>
<element name="lamp4" ref="hold">
<bounds x="0.69" y="3.10" width="0.40" height="0.20" />
</element>
<!-- second line: Big - Small - Double Up/Hit - Take/Stand - Cancel - Deal - Bet/Split -->
<element name="lamp1" ref="buttonedge_r" inputtag="INPUT6" inputmask="0x02">
<bounds x="3.445" y="3.48" width="0.44" height="0.24" />
</element>
<element name="lamp1" ref="bet_split">
<bounds x="3.465" y="3.5" width="0.40" height="0.20" />
</element>
<element name="lamp0" ref="buttonedge_r" inputtag="INPUT6" inputmask="0x01">
<bounds x="2.89" y="3.48" width="0.44" height="0.24" />
</element>
<element name="lamp0" ref="draw">
<bounds x="2.91" y="3.5" width="0.40" height="0.20" />
</element>
<element name="lamp4" ref="buttonedge_r" inputtag="INPUT2" inputmask="0x02">
<bounds x="2.335" y="3.48" width="0.44" height="0.24" />
</element>
<element name="lamp4" ref="cancel">
<bounds x="2.355" y="3.5" width="0.40" height="0.20" />
</element>
<element name="lamp3" ref="buttonedge_w" inputtag="INPUT3" inputmask="0x04">
<bounds x="1.78" y="3.48" width="0.44" height="0.24" />
</element>
<element name="lamp3" ref="take_stand">
<bounds x="1.80" y="3.5" width="0.40" height="0.20" />
</element>
<element name="lamp3" ref="buttonedge_w" inputtag="INPUT3" inputmask="0x02">
<bounds x="1.225" y="3.48" width="0.44" height="0.24" />
</element>
<element name="lamp3" ref="dup_hit">
<bounds x="1.245" y="3.5" width="0.40" height="0.20" />
</element>
<element name="lamp3" ref="buttonedge_w" inputtag="INPUT3" inputmask="0x01">
<bounds x="0.67" y="3.48" width="0.44" height="0.24" />
</element>
<element name="lamp3" ref="small">
<bounds x="0.69" y="3.5" width="0.40" height="0.20" />
</element>
<element name="lamp3" ref="buttonedge_w" inputtag="INPUT2" inputmask="0x01">
<bounds x="0.115" y="3.48" width="0.44" height="0.24" />
</element>
<element name="lamp3" ref="big">
<bounds x="0.135" y="3.5" width="0.40" height="0.20" />
</element>
</view>
</mamelayout>

View File

@ -3,7 +3,8 @@
license:CC0-1.0
copyright-holders:Roberto Fresca
Mini-Boy 7 control panel
Super Mini-Boy control panel
-->
<mamelayout version="2">

View File

@ -10,8 +10,9 @@
Games running on this hardware:
* Mini-Boy 7, 1983, Bonanza Enterprises, Ltd.
* Super Mini-Boy, 1984, Bonanza Enterprises, Ltd.
* Mini-Boy 7, 1983, Bonanza Enterprises, Ltd.
* Super Mini-Boy, 1984, Bonanza Enterprises, Ltd.
* Bonanza's Joker Poker, 1984, Bonanza Enterprises, Ltd.
*******************************************************************************
@ -278,7 +279,7 @@
- Some clean-up.
[2025-01]
[2025-01-20]
- Implemented and documented the PIA port B multiplexion for Super Mini-Boy.
- Lot of fixes, getting Super Mini-Boy working.
@ -289,11 +290,19 @@
- Some clean-up.
[2025-01-22]
- Lot of fixes and new machine driver, getting Joker Poker working.
- Fixed crystal/clocks and derivatives.
- Added lamps support and button-lamps layout for Joker Poker.
- Worked Super Joker Poker inputs and DIP Switches from the scratch.
- Added more technical and games notes.
TODO:
- Rework the muxed inputs for bejpoker.
- Find lamps and layout scheme for bejpoker.
- Implement fake pots for B-G background color
- Investigate the unknown functions that affect the CRTC
displacing the screen and do weird things.
*******************************************************************************/
@ -310,12 +319,14 @@
#include "miniboy7.lh"
#include "sminiboy.lh"
#include "bejpoker.lh"
namespace {
#define MASTER_CLOCK XTAL(12'472'500) /* 12.4725 MHz */
#define MASTER_CLOCK XTAL(12'472'500) // 12.4725 MHz
#define BJP_MASTER_CLOCK XTAL(10'000'000) // 10.0000 MHz
class miniboy7_state : public driver_device
@ -340,6 +351,7 @@ public:
void miniboy7(machine_config &config);
void sminiboy(machine_config &config);
void bejpoker(machine_config &config);
void init_smini();
@ -670,45 +682,42 @@ static INPUT_PORTS_START( miniboy7 )
INPUT_PORTS_END
static INPUT_PORTS_START( sminiboy )
static INPUT_PORTS_START( sminiboy_base )
// multiplexed
PORT_START("INPUT1") // pia_pa 0XFF - mem 261d
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(5) PORT_NAME("Note 1")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(5) PORT_NAME("Note 2")
PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
PORT_START("INPUT2") // pia_pa mux 0xfb - mem 261f
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_NAME("Big") // Big
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) // Cancel
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) // Hold 5
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) // Hold 4
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) // Hold 3
PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_NAME("Big")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_CANCEL )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD5 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD3 )
PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
PORT_START("INPUT3") // pia_pa mux 0xfd - mem 2621
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_LOW ) PORT_NAME("Small") // Small
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) // Double Up
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) // Take
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_LOW ) PORT_NAME("Small")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("1c-4") PORT_CODE(KEYCODE_F)
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("1c-5") PORT_CODE(KEYCODE_G)
PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
PORT_START("INPUT4") // pia_pb no mux 0XFF - mem 261e
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) // Books
PORT_BIT( 0xfb, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
PORT_START("INPUT5") // pia_pb mux 0xfb - mem 2620
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) // Hold 2
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) // Hold 1
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) // Keyout
PORT_BIT( 0xf4, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD2 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD1 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT )
PORT_BIT( 0xf4, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
PORT_START("INPUT6") // pia_pb mux 0xfd - mem 2622
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) // Start (Deal/Draw)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Play Bet") // Play/Bet
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PORT_NAME("Break_SCR") PORT_CODE(KEYCODE_E)
PORT_BIT( 0xf4, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Play Bet")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PORT_NAME("Break_SCR") PORT_CODE(KEYCODE_E)
PORT_BIT( 0xf4, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
PORT_START("DSW2")
// mux=0xff
PORT_DIPNAME( 0x03, 0x00, "D.UP Seven" ) PORT_DIPLOCATION("DSW2:8,7")
@ -737,6 +746,44 @@ static INPUT_PORTS_START( sminiboy )
PORT_DIPSETTING( 0x00, "Enable" )
INPUT_PORTS_END
static INPUT_PORTS_START( sminiboy )
PORT_INCLUDE( sminiboy_base )
PORT_START("INPUT4") // pia_pb no mux 0XFF - mem 261e
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK )
PORT_BIT( 0xfb, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
INPUT_PORTS_END
static INPUT_PORTS_START( bejpoker )
PORT_INCLUDE( sminiboy_base )
PORT_MODIFY("INPUT5") // pia_pb mux 0xfb
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK )
PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
PORT_MODIFY("INPUT6") // pia_pb mux 0xfd
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Settings")
PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) // program masked
PORT_MODIFY("DSW2")
PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW2:8,7,6,5")
PORT_DIPNAME( 0x10, 0x10, "Bet Raise" ) PORT_DIPLOCATION("DSW2:4")
PORT_DIPSETTING( 0x10, "Disabled" )
PORT_DIPSETTING( 0x00, "Enabled" )
PORT_DIPNAME( 0x20, 0x20, "Big Win Music" ) PORT_DIPLOCATION("DSW2:3")
PORT_DIPSETTING( 0x20, "Disabled" )
PORT_DIPSETTING( 0x00, "Enabled" )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW2:2")
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW2:1")
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
/***********************************
* Graphics Layouts *
@ -813,7 +860,7 @@ void miniboy7_state::miniboy7(machine_config &config)
PALETTE(config, m_palette, FUNC(miniboy7_state::miniboy7_palette), 256);
mc6845_device &crtc(MC6845(config, "crtc", MASTER_CLOCK / 12)); // guess
mc6845_device &crtc(MC6845(config, "crtc", MASTER_CLOCK / 14)); // guess
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
@ -839,6 +886,34 @@ void miniboy7_state::sminiboy(machine_config &config)
pia.irqb_handler().set_inputline("maincpu", 0);
}
void miniboy7_state::bejpoker(machine_config &config)
{
miniboy7(config);
M6502(config.replace(), m_maincpu, BJP_MASTER_CLOCK / 16); // 10 MHz crystal instead
m_maincpu->set_addrmap(AS_PROGRAM, &miniboy7_state::miniboy7_map);
pia6821_device &pia(PIA6821(config.replace(), "pia0"));
pia.readpa_handler().set(FUNC(miniboy7_state::s_pia_pa_r));
pia.readpb_handler().set(FUNC(miniboy7_state::s_pia_pb_r));
pia.irqa_handler().set_inputline("maincpu", 0);
pia.irqb_handler().set_inputline("maincpu", 0);
mc6845_device &crtc(MC6845(config.replace(), "crtc", BJP_MASTER_CLOCK / 14)); // guess
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
crtc.set_update_row_callback(FUNC(miniboy7_state::crtc_update_row));
crtc.out_vsync_callback().set("pia0", FUNC(pia6821_device::ca1_w));
// sound hardware
ay8910_device &ay8910(AY8910(config.replace(), "ay8910", BJP_MASTER_CLOCK / 8)); // guess
ay8910.add_route(ALL_OUTPUTS, "mono", 0.75);
ay8910.port_a_write_callback().set(FUNC(miniboy7_state::ay_pa_w));
ay8910.port_b_write_callback().set(FUNC(miniboy7_state::ay_pb_w));
}
/***********************************
* Rom Load *
@ -996,8 +1071,8 @@ void miniboy7_state::init_smini()
* Game Drivers *
***********************************/
// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS LAYOUT
GAMEL( 1983, miniboy7, 0, miniboy7, miniboy7, miniboy7_state, empty_init, ROT0, "Bonanza Enterprises, Ltd", "Mini-Boy 7 (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE, layout_miniboy7 )
GAMEL( 1983, miniboy7a, miniboy7, miniboy7, miniboy7, miniboy7_state, empty_init, ROT0, "Bonanza Enterprises, Ltd", "Mini-Boy 7 (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE, layout_miniboy7 )
GAMEL( 1984, sminiboy, 0, sminiboy, sminiboy, miniboy7_state, init_smini, ROT0, "Bonanza Enterprises, Ltd", "Super Mini-Boy", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE, layout_sminiboy )
GAME( 1992, bejpoker, 0, miniboy7, sminiboy, miniboy7_state, empty_init, ROT0, "Bonanza Enterprises, Ltd", "Bonanza Enterprises' Joker Poker", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS LAYOUT
GAMEL( 1983, miniboy7, 0, miniboy7, miniboy7, miniboy7_state, empty_init, ROT0, "Bonanza Enterprises, Ltd", "Mini-Boy 7 (set 1)", MACHINE_SUPPORTS_SAVE, layout_miniboy7 )
GAMEL( 1983, miniboy7a, miniboy7, miniboy7, miniboy7, miniboy7_state, empty_init, ROT0, "Bonanza Enterprises, Ltd", "Mini-Boy 7 (set 2)", MACHINE_SUPPORTS_SAVE, layout_miniboy7 )
GAMEL( 1984, sminiboy, 0, sminiboy, sminiboy, miniboy7_state, init_smini, ROT0, "Bonanza Enterprises, Ltd", "Super Mini-Boy", MACHINE_SUPPORTS_SAVE, layout_sminiboy )
GAMEL( 1992, bejpoker, 0, bejpoker, bejpoker, miniboy7_state, empty_init, ROT0, "Bonanza Enterprises, Ltd", "Bonanza's Joker Poker", MACHINE_SUPPORTS_SAVE, layout_bejpoker )