From e7e9617bf8806de547541731364d7a0f020f0e94 Mon Sep 17 00:00:00 2001 From: Roberto Fresca Date: Tue, 21 Jan 2025 03:24:21 +0100 Subject: Super Mini-Boy improvements: - Implemented and documented the PIA port B multiplexion. - Lot of fixes, getting the game working. - Added lamps support and button-lamps layout. - Fixed the color scheme. - Worked inputs and DIP Switches from the scratch. - Added technical and games notes. - Some clean-up. Systems promoted to working --------------------------- Super Mini-Boy [Roberto Fresca, Grull Osgo] --- src/mame/layout/sminiboy.lay | 271 +++++++++++++++++++++++++ src/mame/misc/miniboy7.cpp | 466 +++++++++++++++++++++++++++++-------------- 2 files changed, 582 insertions(+), 155 deletions(-) create mode 100644 src/mame/layout/sminiboy.lay diff --git a/src/mame/layout/sminiboy.lay b/src/mame/layout/sminiboy.lay new file mode 100644 index 00000000000..69c9f011c9e --- /dev/null +++ b/src/mame/layout/sminiboy.lay @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/misc/miniboy7.cpp b/src/mame/misc/miniboy7.cpp index 70702432a78..a709d2883cd 100644 --- a/src/mame/misc/miniboy7.cpp +++ b/src/mame/misc/miniboy7.cpp @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Roberto Fresca +// copyright-holders: Roberto Fresca, Grull Osgo. /****************************************************************************** MINI-BOY 7 / SUPER MINI-BOY. @@ -20,8 +20,11 @@ * Mini-Boy 7. + Model BE-7000/MBS. + https://flyers.arcade-museum.com/videogames/show/4043 + https://flyers.arcade-museum.com/videogames/show/6161 + Seven games in one, plus Ad message support. - http://www.arcadeflyers.com/?page=thumbs&db=videodb&id=4275 - Draw Poker. - 7-Stud Poker. @@ -46,6 +49,79 @@ - Baccarat. + Hidden/Service Modes Access Guide + --------------------------------- + + In Attract Mode after a reset (no credits inserted)... + + Enter Test Mode: + Press HOLD1 + HOLD2 + HOLD3 + BOOKS until the Test Mode screen appears. + + A screen test will be performed, followed by an input test that displays the following: + + ....0000 <--- Coin1, Note1, Note2, and Books inputs. + 00000000 <--- Second scanline of inputs. + 00000000 <--- Third scanline of inputs. + 00000000 <--- DIP Switches. + + To exit Test Mode, simply reset the machine. + + + Enter Books Mode: + Press HOLD4 + HOLD5 + BOOKS until the Books Mode screen appears. + + You will see the following bookkeeping scheme: + + COIN 0 <--- Quantity of coins inserted. + NOTE1 0 <--- Quantity of Note1 inserted. + NOTE2 0 <--- Quantity of Note2 inserted. + POKER 0 <--- Number of poker hands played. + GOLDEN FRUITS 0 <--- Number of golden fruit hands played. + BLACK JACK 0 <--- Number of blackjack hands played. + HI-LO 0 <--- Number of hi-lo hands played. + BACCARAT 0 <--- Number of baccarat hands played. + 1 COIN 1 POINTS <--- Points per coin inserted. + 1 NOTE1 1 POINTS <--- Points per Note1 inserted. + 1 NOTE2 1 POINTS <--- Points per Note2 inserted. + + To exit the Books Mode, press HOLD1 + HOLD2 + HOLD3, or simply wait for the timeout. + + + Enter the Coinage Program: + - Enter Books Mode. + - Press BIG + SMALL. + - Use HOLD1, HOLD2, and HOLD3 to program the Coin, Note1, and Note2 values. + - Press HOLD4 to exit. + + + To Set the Machine's Return/Percentage: + - Press BET + DEAL + BOOKS. + - Use HOLD4 to select a value from 0-1-2-3-4. + - Exit with HOLD1. + + Return/Percentage Values: + + Value Overall Scoring Percentage (long term) + ----- -------------------------------------- + 0 85% + 1 30% + 2 40% + 3 50% + 4 Unknown + + + There is an Easter Egg in the Books Mode. + To activate the Easter Egg: + + - Enter Books Mode. + - Press BET three times. + - Press DRAW three times. + - Press CANCEL three times. + + The message "BONANZA ENTERPRISES" will appear on the screen. + The machine will need to be reset to return to normal operation. + + ******************************************************************************* Hardware Notes: @@ -81,53 +157,54 @@ * Super Mini-Boy, Joker Poker - Board silkscreened on top: - be MVX-001-02 ('be' is a Bonanza Enterprises logo). - - +------------------------------------------------------+ - | *CN-HEX | - | 6 SW2 MSM2128-15 HD46505SP JDX 3-92 | - | 8 MSM2128-15 JDX 2-92 | - | 2 MSM2128-15 JDX 1-92 | - | 1 MSM2128-15 *28pin | -++ 8 J1 *28pin | -| 9 R6502AP *28pin | -| 1 *22pin | -| 0 *22pin | -| L JDX | -| M | -| 3 VR2 JDX 0 | -| 8 VR4 JDX 1 | -| 0 VR5 SW3 JDX 2 | -| VR6 JDX 3 | -++ VR1 VR3 TC4020 SW1 | - | NE555P TC4020 10MHz BAT | - +------------------------------------------------------+ - - CPU: Rockwell R6502P - Video: Hitachi HD46505SP CRT Controller (CRTC) 1MHz - Sound: AY-3-8910 - LM380N 2.5W Amp - OSC: 10.000MHz - RAM: MSM2128-15 2KBx8 SRAM x 4 - DSW: 1 8-switch dipswitches - 1 4-switch dipswitches -VR1-VR6: variable resistor to handle B-G background color/intensity & sound - Other: Motorola MC6821P 1MHz NMOS Peripheral Interface Adapter (PIA) - NE555P Texas Instruments Precision Timer - TC4020BP Toshiba 14 stage ripple carry binary counter - 3.6v Battery - SW1 - Reset switch - 56 pin edge connector - CN-HEX 40 pin edge connector - -* Denotes unpopulated - - - PRG ROMs: 5x 2764 (8Kb) - 3 for Joker Poker - - GFX ROMs: 1x 2764 (8Kb) for text layer. - 3x 2764 (8Kb) for gfx tiles. + Board silkscreened on top: + be MVX-001-02 ('be' is a Bonanza Enterprises logo). + + +------------------------------------------------------+ + | *CN-HEX | + | 6 SW2 MSM2128-15 HD46505SP JDX 3-92 | + | 8 MSM2128-15 JDX 2-92 | + | 2 MSM2128-15 JDX 1-92 | + | 1 MSM2128-15 *28pin | + ++ 8 J1 *28pin | + | 9 R6502AP *28pin | + | 1 *22pin | + | 0 *22pin | + | L JDX | + | M | + | 3 VR2 JDX 0 | + | 8 VR4 JDX 1 | + | 0 VR5 SW3 JDX 2 | + | VR6 JDX 3 | + ++ VR1 VR3 TC4020 SW1 | + | NE555P TC4020 10MHz BAT | + +------------------------------------------------------+ + + CPU: Rockwell R6502P + Video: Hitachi HD46505SP CRT Controller (CRTC) 1MHz + Sound: AY-3-8910 + LM380N 2.5W Amp + OSC: 10.000MHz + RAM: MSM2128-15 2KBx8 SRAM x 4 + DSW: 1 8-switch dipswitches + 1 4-switch dipswitches + VR1-VR6: variable resistor to handle B-G background color/intensity & sound + Other: Motorola MC6821P 1MHz NMOS Peripheral Interface Adapter (PIA) + NE555P Texas Instruments Precision Timer + TC4020BP Toshiba 14 stage ripple carry binary counter + 3.6v Battery + SW1 - Reset switch + 56 pin edge connector + CN-HEX 40 pin edge connector + + * Denotes unpopulated + + - PRG ROMs: 5x 2764 (8Kb) - 3 for Joker Poker + - GFX ROMs: 1x 2764 (8Kb) for text layer. + 3x 2764 (8Kb) for gfx tiles. + + NOTE: 10MHz XTAL verified for Joker Poker, Super Mini-Boy is stated as 12.4725MHz -NOTE: 10MHz XTAL verified for Joker Poker, Super Mini-Boy is stated as 12.4725MHz ******************************************************************************* @@ -201,12 +278,21 @@ NOTE: 10MHz XTAL verified for Joker Poker, Super Mini-Boy is stated as 12.4725MH - Some clean-up. + [2025-01] + + - Implemented and documented the PIA port B multiplexion for Super Mini-Boy. + - Lot of fixes, getting Super Mini-Boy working. + - Added lamps support and button-lamps layout for Super Mini-Boy. + - Fixed the Super Mini-Boy color scheme. + - Worked Super Mini-Boy inputs and DIP Switches from the scratch. + - Added technical and games notes. + - Some clean-up. + + TODO: - - Find the Super Mini-Boy missing input(s): HOLD 1 and SMALL. - - Find & map 4 switch DSW - maybe these are the same line/button. - - Lamps support for Super Mini-Boy. + - Rework the muxed inputs for bejpoker. + - Find lamps and layout scheme for bejpoker. - Implement fake pots for B-G background color @@ -223,6 +309,8 @@ NOTE: 10MHz XTAL verified for Joker Poker, Super Mini-Boy is stated as 12.4725MH #include "speaker.h" #include "miniboy7.lh" +#include "sminiboy.lh" + namespace { @@ -242,7 +330,7 @@ public: m_gfx1(*this, "gfx1"), m_gfx2(*this, "gfx2"), m_proms(*this, "proms"), - m_input2(*this, "INPUT2"), + m_input(*this, "INPUT%u", 1U), m_dsw2(*this, "DSW2"), m_maincpu(*this, "maincpu"), m_palette(*this, "palette"), @@ -251,6 +339,9 @@ public: { } void miniboy7(machine_config &config); + void sminiboy(machine_config &config); + + void init_smini(); protected: virtual void machine_start() override ATTR_COLD; @@ -259,6 +350,8 @@ protected: private: void ay_pa_w(uint8_t data); void ay_pb_w(uint8_t data); + uint8_t s_pia_pa_r(); + uint8_t s_pia_pb_r(); uint8_t pia_pb_r(); void pia_ca2_w(int state); uint8_t lamp_latch_r(); @@ -276,7 +369,7 @@ private: required_region_ptr m_gfx1; required_region_ptr m_gfx2; required_region_ptr m_proms; - required_ioport m_input2; + optional_ioport_array<6> m_input; required_ioport m_dsw2; required_device m_maincpu; required_device m_palette; @@ -423,30 +516,57 @@ uint8_t miniboy7_state::lamp_latch_r() uint8_t data = m_ay_pa ^ 0xff; - m_lamps[0] = BIT(data, 4); // [----x] - m_lamps[1] = BIT(data, 3); // [---x-] - m_lamps[2] = BIT(data, 2); // [--x--] - m_lamps[3] = BIT(data, 1); // [-x---] - m_lamps[4] = BIT(data, 0); // [x----] + m_lamps[0] = BIT(data, 4); // [----x] lamp0 bet + m_lamps[1] = BIT(data, 3); // [---x-] lamp1 deal/draw + m_lamps[2] = BIT(data, 2); // [--x--] lamp2 holds + m_lamps[3] = BIT(data, 1); // [-x---] lamp3 d.up+take+big+small + m_lamps[4] = BIT(data, 0); // [x----] lamp4 cancel machine().bookkeeping().coin_counter_w(0, data & 0x40); // counter -// popmessage("Out Lamps: %02x", data); -// logerror("Out Lamps: %02x\n", data); + //popmessage("Out Lamps: %02x", data); + //logerror("Out Lamps: %02x\n", data); // value is unused - return 0xff; + return m_input[1]->read(); } void miniboy7_state::ay_pb_w(uint8_t data) { -/* ---- xxxx unused +/* ---- x--x unused + ---- --x- INPUT_1 select (only sminiboy) + ---- -x-- INPUT_2 select (only sminiboy) -xxx ---- HCD x--- ---- DSW2 select */ m_ay_pb = data; } +uint8_t miniboy7_state::s_pia_pa_r() +{ + uint8_t ret = 0xff; + switch(m_ay_pb & 0x7f) { + case 0x7f: ret = m_input[0]->read(); break; + case 0x7b: ret = m_input[1]->read(); break; + case 0x7d: ret = m_input[2]->read(); break; + } + return ret; +} + +uint8_t miniboy7_state::s_pia_pb_r() +{ + uint8_t ret = 0xff; + switch(m_ay_pb) { + case 0xff: ret = (m_input[3]->read() & 0x0f) | (m_dsw2->read() << 4); break; // low nibble from buttons - high nibble from low nibble of dip switch + case 0xfb: + case 0x7b: ret = m_input[4]->read(); break; + case 0xfd: + case 0x7d: ret = m_input[5]->read(); break; + case 0x7f: ret = m_dsw2->read() & 0xf0; break; // high nibble of dip switch + } + return ret; +} + uint8_t miniboy7_state::pia_pb_r() /* PIA PB0-3 are connected to regular inputs. @@ -466,7 +586,7 @@ uint8_t miniboy7_state::pia_pb_r() '---------------' */ { - return (m_input2->read() & 0x0f) | ((m_dsw2->read() << (BIT(m_ay_pb, 7) ? 0 : 4)) & 0xf0); + return (m_input[1]->read() & 0x0f) | ((m_dsw2->read() << (BIT(m_ay_pb, 7) ? 0 : 4)) & 0xf0); } void miniboy7_state::pia_ca2_w(int state) @@ -551,57 +671,70 @@ INPUT_PORTS_END static INPUT_PORTS_START( sminiboy ) - -// Hold2/Small button is missing. -// Just tried on PIA PB4-7, both AY8910 ports, -// but nothing... - - PORT_START("INPUT1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Big") PORT_CODE(KEYCODE_S) // big - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Cancel / D-UP / Hit") PORT_CODE(KEYCODE_N) // cancel / d-up / hit - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hold 5 / Take / Stand") PORT_CODE(KEYCODE_B) // hold 5 / take / stand - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hold 4") PORT_CODE(KEYCODE_V) // hold 4 - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hold 3") PORT_CODE(KEYCODE_C) // hold 3 - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) - - PORT_START("INPUT2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Start / Double") PORT_CODE(KEYCODE_1) // start - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Hold 1 / Play") PORT_CODE(KEYCODE_Z) // hold 1 / play - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Service / Books") PORT_CODE(KEYCODE_0) // service / books - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("08 - changes screen") PORT_CODE(KEYCODE_E) // (changes in screen) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("10") PORT_CODE(KEYCODE_R) // - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("20") PORT_CODE(KEYCODE_T) // - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("40") PORT_CODE(KEYCODE_Y) // - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("80") PORT_CODE(KEYCODE_U) // - + 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_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_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( 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_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_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_START("DSW2") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8") - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + // mux=0xff + PORT_DIPNAME( 0x03, 0x00, "D.UP Seven" ) PORT_DIPLOCATION("DSW2:8,7") + PORT_DIPSETTING( 0x00, "Reset" ) + PORT_DIPSETTING( 0x01, "Reset" ) + PORT_DIPSETTING( 0x02, "Even" ) + PORT_DIPSETTING( 0x03, "Lose" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW2:6") // No code to read this bit + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7") - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, "Coin A" ) PORT_DIPLOCATION("SW1:6") - PORT_DIPSETTING( 0x04, "1 Point" ) - PORT_DIPSETTING( 0x00, "10.000 Points" ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:5") + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW2:5") // No code to read this bit PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4") + //mux=7f + PORT_DIPNAME( 0x10, 0x10, "Jack or Better" ) PORT_DIPLOCATION("DSW2:4") PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3") + PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW2:3") // No code to read this bit PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2") - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1") - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, "Coin A" ) PORT_DIPLOCATION("DSW2:2") + PORT_DIPSETTING( 0x40, "1 Point" ) + PORT_DIPSETTING( 0x00, "10.000 Points" ) + PORT_DIPNAME( 0x80, 0x80, "Royal Flush" ) PORT_DIPLOCATION("DSW2:1") + PORT_DIPSETTING( 0x80, "Disable" ) + PORT_DIPSETTING( 0x00, "Enable" ) INPUT_PORTS_END @@ -625,7 +758,7 @@ static const gfx_layout tilelayout = 8, 8, RGN_FRAC(1,3), 3, - { RGN_FRAC(2,3), RGN_FRAC(1,3), 0 }, /* bitplanes are separated */ + { RGN_FRAC(2,3), RGN_FRAC(1,3), 0 }, // bitplanes are separated { 0, 1, 2, 3, 4, 5, 6, 7 }, { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, 8*8 @@ -655,20 +788,20 @@ GFXDECODE_END void miniboy7_state::miniboy7(machine_config &config) { - /* basic machine hardware */ - M6502(config, m_maincpu, MASTER_CLOCK / 16); /* guess */ + // basic machine hardware + M6502(config, m_maincpu, MASTER_CLOCK / 16); // guess m_maincpu->set_addrmap(AS_PROGRAM, &miniboy7_state::miniboy7_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); pia6821_device &pia(PIA6821(config, "pia0")); - pia.readpa_handler().set_ioport("INPUT1"); + pia.readpa_handler().set_ioport(m_input[0]); pia.readpb_handler().set(FUNC(miniboy7_state::pia_pb_r)); pia.ca2_handler().set(FUNC(miniboy7_state::pia_ca2_w)); pia.irqa_handler().set_inputline("maincpu", 0); pia.irqb_handler().set_inputline("maincpu", 0); - /* video hardware */ + // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); @@ -680,21 +813,32 @@ 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 / 12)); // 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 */ + // sound hardware SPEAKER(config, "mono").front_center(); - ay8910_device &ay8910(AY8910(config, "ay8910", MASTER_CLOCK / 8)); /* guess */ + ay8910_device &ay8910(AY8910(config, "ay8910", 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)); } +void miniboy7_state::sminiboy(machine_config &config) +{ + miniboy7(config); + + 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); +} + /*********************************** * Rom Load * @@ -733,22 +877,22 @@ ROM_START( miniboy7 ) ROM_LOAD( "mb7_3-4.a6", 0x8000, 0x2000, CRC(360a7f7c) SHA1(d98bcfd320680e88b07182d78b4e56fc5579874d) ) ROM_LOAD( "mb7_4-4.a4", 0xa000, 0x2000, CRC(bff8e334) SHA1(1d09a86b4dbfec6522b326683febaf7426f723e0) ) ROM_LOAD( "mb7_5-4.a3", 0xc000, 0x2000, CRC(d610bed3) SHA1(67e44ce2345d5429d6ccf4833de207ff6518c534) ) - ROM_LOAD( "nosticker.a1", 0xe000, 0x2000, CRC(5f715a12) SHA1(eabe0e4ee2e110c6ce4fd58c9d36ba80a612d4b5) ) /* ROM 1-4? */ + ROM_LOAD( "nosticker.a1", 0xe000, 0x2000, CRC(5f715a12) SHA1(eabe0e4ee2e110c6ce4fd58c9d36ba80a612d4b5) ) // ROM 1-4? ROM_REGION( 0x1000, "gfx1", 0 ) - ROM_LOAD( "mb7_asc_cg.d11", 0x0000, 0x1000, CRC(84f78ee2) SHA1(c434e8a9b19ef1394b1dac67455f859eef299f95) ) /* text layer */ + ROM_LOAD( "mb7_asc_cg.d11", 0x0000, 0x1000, CRC(84f78ee2) SHA1(c434e8a9b19ef1394b1dac67455f859eef299f95) ) // chars ROM_REGION( 0x6000, "gfx2", 0 ) - ROM_LOAD( "mb7_cg1.d12", 0x0000, 0x2000, CRC(5f3e3b93) SHA1(41ab6a42a41ddeb8b6b76f4d790bf9fb9e7c32a3) ) /* bitplane 1 */ - ROM_LOAD( "mb7_cg2.d13", 0x2000, 0x2000, CRC(b3362650) SHA1(603907fd3a0049c0a3e1858c4329bf9fd58137f6) ) /* bitplane 2 */ - ROM_LOAD( "mb7_cg3.d14", 0x4000, 0x2000, CRC(10c2bf71) SHA1(23a01625b0fc0b772054ee4bc026d2257df46a03) ) /* bitplane 3 */ + ROM_LOAD( "mb7_cg1.d12", 0x0000, 0x2000, CRC(5f3e3b93) SHA1(41ab6a42a41ddeb8b6b76f4d790bf9fb9e7c32a3) ) // bitplane 1 + ROM_LOAD( "mb7_cg2.d13", 0x2000, 0x2000, CRC(b3362650) SHA1(603907fd3a0049c0a3e1858c4329bf9fd58137f6) ) // bitplane 2 + ROM_LOAD( "mb7_cg3.d14", 0x4000, 0x2000, CRC(10c2bf71) SHA1(23a01625b0fc0b772054ee4bc026d2257df46a03) ) // bitplane 3 - ROM_REGION( 0x0200, "proms", ROMREGION_INVERT ) /* both bipolar PROMs are identical */ - ROM_LOAD( "j.e7", 0x0000, 0x0100, CRC(4b66215e) SHA1(de4a8f1ee7b9bea02f3a5fc962358d19c7a871a0) ) /* N82S129N BPROM simply labeled J */ - ROM_LOAD( "j.f10", 0x0100, 0x0100, CRC(4b66215e) SHA1(de4a8f1ee7b9bea02f3a5fc962358d19c7a871a0) ) /* N82S129N BPROM simply labeled J */ + ROM_REGION( 0x0200, "proms", ROMREGION_INVERT ) // both bipolar PROMs are identical + ROM_LOAD( "j.e7", 0x0000, 0x0100, CRC(4b66215e) SHA1(de4a8f1ee7b9bea02f3a5fc962358d19c7a871a0) ) // N82S129N BPROM simply labeled J + ROM_LOAD( "j.f10", 0x0100, 0x0100, CRC(4b66215e) SHA1(de4a8f1ee7b9bea02f3a5fc962358d19c7a871a0) ) // N82S129N BPROM simply labeled J ROM_END -ROM_START( miniboy7a ) /* The term CREDIT has been changed to POINT is this version, other changes?? */ +ROM_START( miniboy7a ) // The term CREDIT has been changed to POINT is this version, other changes?? ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "mb7_1-11.a8", 0x4000, 0x2000, CRC(e1c0f8f2) SHA1(0790dc37374cf12313ae13adaea2c6e7338e0dbc) ) ROM_LOAD( "mb7_2-11.a7", 0x6000, 0x2000, CRC(596040a3) SHA1(bb68b9fd12fba09c3d7c9dec70cf4770d31f911b) ) @@ -758,16 +902,16 @@ ROM_START( miniboy7a ) /* The term CREDIT has been changed to POINT is this vers ROM_LOAD( "mb7_6-11.a1", 0xe000, 0x2000, CRC(ca9b9b20) SHA1(c6cd793a15948601faa051a4643b14fd3d8bda0b) ) ROM_REGION( 0x1000, "gfx1", 0 ) - ROM_LOAD( "mb7_0.11d", 0x0000, 0x1000, CRC(84f78ee2) SHA1(c434e8a9b19ef1394b1dac67455f859eef299f95) ) /* text layer */ + ROM_LOAD( "mb7_0.11d", 0x0000, 0x1000, CRC(84f78ee2) SHA1(c434e8a9b19ef1394b1dac67455f859eef299f95) ) // chars ROM_REGION( 0x6000, "gfx2", 0 ) - ROM_LOAD( "mb7_1.12d", 0x0000, 0x2000, CRC(5f3e3b93) SHA1(41ab6a42a41ddeb8b6b76f4d790bf9fb9e7c32a3) ) /* bitplane 1 */ - ROM_LOAD( "mb7_2.13d", 0x2000, 0x2000, CRC(b3362650) SHA1(603907fd3a0049c0a3e1858c4329bf9fd58137f6) ) /* bitplane 2 */ - ROM_LOAD( "mb7_3.14d", 0x4000, 0x2000, CRC(10c2bf71) SHA1(23a01625b0fc0b772054ee4bc026d2257df46a03) ) /* bitplane 3 */ + ROM_LOAD( "mb7_1.12d", 0x0000, 0x2000, CRC(5f3e3b93) SHA1(41ab6a42a41ddeb8b6b76f4d790bf9fb9e7c32a3) ) // bitplane 1 + ROM_LOAD( "mb7_2.13d", 0x2000, 0x2000, CRC(b3362650) SHA1(603907fd3a0049c0a3e1858c4329bf9fd58137f6) ) // bitplane 2 + ROM_LOAD( "mb7_3.14d", 0x4000, 0x2000, CRC(10c2bf71) SHA1(23a01625b0fc0b772054ee4bc026d2257df46a03) ) // bitplane 3 - ROM_REGION( 0x0200, "proms", ROMREGION_INVERT ) /* both bipolar PROMs are identical */ - ROM_LOAD( "j.e7", 0x0000, 0x0100, CRC(4b66215e) SHA1(de4a8f1ee7b9bea02f3a5fc962358d19c7a871a0) ) /* N82S129N BPROM simply labeled J */ - ROM_LOAD( "j.f10", 0x0100, 0x0100, CRC(4b66215e) SHA1(de4a8f1ee7b9bea02f3a5fc962358d19c7a871a0) ) /* N82S129N BPROM simply labeled J */ + ROM_REGION( 0x0200, "proms", ROMREGION_INVERT ) // both bipolar PROMs are identical + ROM_LOAD( "j.e7", 0x0000, 0x0100, CRC(4b66215e) SHA1(de4a8f1ee7b9bea02f3a5fc962358d19c7a871a0) ) // N82S129N BPROM simply labeled J + ROM_LOAD( "j.f10", 0x0100, 0x0100, CRC(4b66215e) SHA1(de4a8f1ee7b9bea02f3a5fc962358d19c7a871a0) ) // N82S129N BPROM simply labeled J ROM_END /* @@ -780,7 +924,7 @@ ROM_END 1x AY8910 */ -ROM_START( sminiboy ) /* MVX-001-02 PCB */ +ROM_START( sminiboy ) // MVX-001-02 PCB ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "sm5_1-9.7a", 0x6000, 0x2000, CRC(e245e1d4) SHA1(69266bbc0a0d3acb98cecebf931f42d5e8ff29f5) ) ROM_LOAD( "sm5_2-9.6a", 0x8000, 0x2000, CRC(0b240c50) SHA1(af53a969d34aaf959b5a8e74f920fe895f6c68a0) ) @@ -789,50 +933,62 @@ ROM_START( sminiboy ) /* MVX-001-02 PCB */ ROM_LOAD( "sm5_5-9.1a", 0xe000, 0x2000, CRC(c518b16c) SHA1(3f6249fa40a5e95ad3d565f73cfc45fcad4c5a6e) ) ROM_REGION( 0x2000, "gfx1", 0 ) - ROM_LOAD( "sm5_0.11d", 0x0000, 0x2000, CRC(295d8146) SHA1(c5b55e10d04d55ba3a5087b588e697a7a89dd02e) ) /* text layer */ + ROM_LOAD( "sm5_0.11d", 0x0000, 0x2000, CRC(295d8146) SHA1(c5b55e10d04d55ba3a5087b588e697a7a89dd02e) ) // chars ROM_REGION( 0x6000, "gfx2", 0 ) - ROM_LOAD( "sm5_1.12d", 0x0000, 0x2000, CRC(1967974e) SHA1(66e06f549d413dcd84d82245cf3bd918bf012209) ) /* bitplane 1 */ - ROM_LOAD( "sm5_2.13d", 0x2000, 0x2000, CRC(eae3f05a) SHA1(a401fc63f1d9667ceb85c9a8c7cc2bd5d7ab7fcd) ) /* bitplane 2 */ - ROM_LOAD( "sm5_3.15d", 0x4000, 0x2000, CRC(0f19964f) SHA1(2dba35e3770d8254c65ba82b4d062e4873a6fd8f) ) /* bitplane 3 */ + ROM_LOAD( "sm5_1.12d", 0x0000, 0x2000, CRC(1967974e) SHA1(66e06f549d413dcd84d82245cf3bd918bf012209) ) // bitplane 1 + ROM_LOAD( "sm5_2.13d", 0x2000, 0x2000, CRC(eae3f05a) SHA1(a401fc63f1d9667ceb85c9a8c7cc2bd5d7ab7fcd) ) // bitplane 2 + ROM_LOAD( "sm5_3.15d", 0x4000, 0x2000, CRC(0f19964f) SHA1(2dba35e3770d8254c65ba82b4d062e4873a6fd8f) ) // bitplane 3 - ROM_REGION( 0x0200, "proms", ROMREGION_INVERT ) /* bipolar PROMs */ + ROM_REGION( 0x0200, "proms", ROMREGION_INVERT ) // bipolar PROMs ROM_LOAD( "j1.7e", 0x0000, 0x0100, CRC(a89e1d80) SHA1(f3f4842729df1fc379a7281edcceb67c4e9558b4) ) ROM_LOAD( "j-3.10f", 0x0100, 0x0100, CRC(042ae2c5) SHA1(dad6ace493a2e36c6e8ac1f35e871e1e5071c1ed) ) ROM_END /* -Same PCB as Super Mini-Boy, but with a 10MHz XTAL installed + Same PCB as Super Mini-Boy, but with a 10MHz XTAL installed -Does JDX stand for Joker Draw Extreme (or 10) or something different??? + Does JDX stand for Joker Draw Extreme (or 10) or something different??? -There is no Company or year mentioned or shown during game. -The card backs have the Bonanza Enterprises logo -Bets of 3 to 5 coins adds 1 Joker to the deck. -Bets of 6 to 10 coins adds 1 more Joker to the deck. -Max bet limitted to 10 coins -There is some type of Bonus for 3's or 7's + There is no Company or year mentioned or shown during game. + The card backs have the Bonanza Enterprises logo + Bets of 3 to 5 coins adds 1 Joker to the deck. + Bets of 6 to 10 coins adds 1 more Joker to the deck. + Max bet limitted to 10 coins + There is some type of Bonus for 3's or 7's */ -ROM_START( bejpoker ) /* MVX-001-02 PCB */ +ROM_START( bejpoker ) // MVX-001-02 PCB ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "jdx_1-92.4a", 0xa000, 0x2000, CRC(40600e8c) SHA1(7f26fec5ccfc99e37c4fcfc7ee25461584af693e) ) /* JDX 1-92, is "92" the year??? */ + ROM_LOAD( "jdx_1-92.4a", 0xa000, 0x2000, CRC(40600e8c) SHA1(7f26fec5ccfc99e37c4fcfc7ee25461584af693e) ) // JDX 1-92, is "92" the year??? ROM_LOAD( "jdx_2-92.3a", 0xc000, 0x2000, CRC(21150010) SHA1(e8757d7a846473232e9bc370a673ddfc36b8ea68) ) ROM_LOAD( "jdx_3-92.1a", 0xe000, 0x2000, CRC(07497a88) SHA1(2770e77692cb7a0addf80c7955cbb6354e9ed5ec) ) ROM_REGION( 0x2000, "gfx1", 0 ) - ROM_LOAD( "jdx_0.11d", 0x0000, 0x2000, CRC(9a39520c) SHA1(090a94f193b62aa546e5db3399748c298d88794f) ) /* text layer */ + ROM_LOAD( "jdx_0.11d", 0x0000, 0x2000, CRC(9a39520c) SHA1(090a94f193b62aa546e5db3399748c298d88794f) ) // chars ROM_REGION( 0x6000, "gfx2", 0 ) - ROM_LOAD( "jdx_1.12d", 0x0000, 0x2000, CRC(c5fe5f09) SHA1(dfa6d486d053e4648471f6b057ea4b2fe01a7348) ) /* bitplane 1 */ - ROM_LOAD( "jdx_2.13d", 0x2000, 0x2000, CRC(cbcf6e85) SHA1(3805d81f41149b61756667470d1df13f691f0ea7) ) /* bitplane 2 */ - ROM_LOAD( "jdx_3.14d", 0x4000, 0x2000, CRC(bf98104d) SHA1(157d71f0a30e15e91f4c8385a7a26af15729c713) ) /* bitplane 3 */ + ROM_LOAD( "jdx_1.12d", 0x0000, 0x2000, CRC(c5fe5f09) SHA1(dfa6d486d053e4648471f6b057ea4b2fe01a7348) ) // bitplane 1 + ROM_LOAD( "jdx_2.13d", 0x2000, 0x2000, CRC(cbcf6e85) SHA1(3805d81f41149b61756667470d1df13f691f0ea7) ) // bitplane 2 + ROM_LOAD( "jdx_3.14d", 0x4000, 0x2000, CRC(bf98104d) SHA1(157d71f0a30e15e91f4c8385a7a26af15729c713) ) // bitplane 3 - ROM_REGION( 0x0200, "proms", ROMREGION_INVERT ) /* bipolar PROMs */ - ROM_LOAD( "j1.7e", 0x0000, 0x0100, CRC(a89e1d80) SHA1(f3f4842729df1fc379a7281edcceb67c4e9558b4) ) /* TBP24S10 BPROM (same data as BPROM from Super Mini-Boy) */ - ROM_LOAD( "jdx.10f", 0x0100, 0x0100, CRC(2dd8d3ce) SHA1(6e3d67f9c5ccc210963e02e32fceee4859d8e651) ) /* 63S141 BPROM */ + ROM_REGION( 0x0200, "proms", ROMREGION_INVERT ) // bipolar PROMs + ROM_LOAD( "j1.7e", 0x0000, 0x0100, CRC(a89e1d80) SHA1(f3f4842729df1fc379a7281edcceb67c4e9558b4) ) // TBP24S10 BPROM (same data as BPROM from Super Mini-Boy) + ROM_LOAD( "jdx.10f", 0x0100, 0x0100, CRC(2dd8d3ce) SHA1(6e3d67f9c5ccc210963e02e32fceee4859d8e651) ) // 63S141 BPROM ROM_END + +void miniboy7_state::init_smini() +{ + uint8_t *ROM = memregion("maincpu")->base(); + + ROM[0xa0f0] = 0x0e; + ROM[0xa0f1] = 0x7f; + ROM[0xa1a1] = 0xe7; + ROM[0xa1a2] = 0x7f; +} + + } // anonymous namespace @@ -840,8 +996,8 @@ ROM_END * Game Drivers * ***********************************/ -// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS LAYOUT +// 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 ) -GAME( 1984, sminiboy, 0, miniboy7, sminiboy, miniboy7_state, empty_init, ROT0, "Bonanza Enterprises, Ltd", "Super Mini-Boy", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +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 ) -- cgit v1.2.3