summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Roberto Fresca <robbie@robertofresca.com>2025-10-26 04:17:30 +0100
committer Roberto Fresca <robbie@robertofresca.com>2025-10-26 04:17:30 +0100
commitb55306f33932cb9abefd1df9f0e126c7f5f2dfe5 (patch)
tree3721992c9e7f201dbba0611dcd0b4b5795fa4f96
parent93ed4a942bfa3a98ba67e4ce8c67df49b268defa (diff)
igs/goldstar.cpp improvements: [Roberto Fresca, Grull Osgo]
- Removed all loaned bipolar PROMs from nfb96se, nfb96sea, nfb96seb, nfb96sec, carb2002 and carb2003, and decoded the proper device data for palette. - Fixed the rom load of nfb96se, nfb96sea, nfb96seb, nfb96sec, carb2002 and carb2003 taking care of the proper graphics bitplanes. - Removed the imperfect color flag of the above games. - Marked the carb2003 reels graphics ROMs as bad dump. Flagged the game as imperfect graphics. - Temporal workaround bypassing some checks for Nove Diamante.
-rw-r--r--src/mame/igs/goldstar.cpp496
1 files changed, 250 insertions, 246 deletions
diff --git a/src/mame/igs/goldstar.cpp b/src/mame/igs/goldstar.cpp
index b3ab381088e..8254de77d3e 100644
--- a/src/mame/igs/goldstar.cpp
+++ b/src/mame/igs/goldstar.cpp
@@ -498,6 +498,7 @@ public:
void init_nfb96_d() ATTR_COLD;
void init_nfb96_dk() ATTR_COLD;
void init_nfb96_g() ATTR_COLD;
+ void init_nfb96bl() ATTR_COLD;
void init_nfb96sea() ATTR_COLD;
void init_noved() ATTR_COLD;
void init_pkrmast() ATTR_COLD;
@@ -1324,7 +1325,7 @@ VIDEO_START_MEMBER(unkch_state, bonusch)
m_enable_reg = 0x1b;
// 1 for regular reels; 2 for d-up reel numbers.
-// m_reelbank = 2;
+// m_reelbank = 2;
}
@@ -2185,19 +2186,19 @@ void cmaster_state::outport0_w(uint8_t data)
xxxx ---- unused?
*/
-// popmessage("outport %02x",data);
+// popmessage("outport %02x",data);
m_enable_reg = data;
}
void cmaster_state::chyangb_outport0_w(uint8_t data)
{
-// popmessage("outport %02x",data);
+// popmessage("outport %02x",data);
m_enable_reg = data & 0xef; // mask bg register flag
}
void cmaster_state::wcat3a_outport0_w(uint8_t data)
{
-// popmessage("outport %02x",data);
+// popmessage("outport %02x",data);
m_enable_reg = data & 0x0b; // mask bg register flag
}
@@ -2351,7 +2352,7 @@ void wingco_state::mcu_portc_w(uint8_t data)
void wingco_state::draw8_sn_w(uint8_t data)
{
// SN76489A commands have a inversed bit order.
-// Maybe this design was meant for protection.
+// Maybe this design was meant for protection.
data = bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7);
m_draw8sn->write(data);
@@ -2565,21 +2566,21 @@ void cb3_state::misc_out_w(uint8_t data)
void wingco_state::magodds_outb850_w(uint8_t data)
{
uint8_t pal_index[8] = { 0, 1, 6, 3, 4, 5, 2, 7 }; // fix reels BG color
- m_bgreels = pal_index[data & 0x07]; // set BG reels color index
+ m_bgreels = pal_index[data & 0x07]; // set BG reels color index
if (data&0x20)
m_tile_bank = 2;
else
m_tile_bank = 0;
-// popmessage("magodds_outb850_w %02x", data);
+// popmessage("magodds_outb850_w %02x", data);
m_fg_tilemap->mark_all_dirty();
}
void wingco_state::magodds_outb860_w(uint8_t data)
{
-// popmessage("magodds_outb860_w %02x\n", data);
+// popmessage("magodds_outb860_w %02x\n", data);
}
void wingco_state::fl7w4_outc802_w(uint8_t data)
@@ -2614,7 +2615,7 @@ void unkch_state::coincount_w(uint8_t data)
machine().bookkeeping().coin_counter_w(1, data & 0x08); // Key In counter
machine().bookkeeping().coin_counter_w(2, data & 0x02); // payout counter
-// popmessage("coin counters: %02x", data);
+// popmessage("coin counters: %02x", data);
}
void unkch_state::unkcm_0x02_w(uint8_t data)
@@ -2635,7 +2636,7 @@ void unkch_state::unkcm_0x02_w(uint8_t data)
*/
-// popmessage("unkcm_0x02_w %02x", data);
+// popmessage("unkcm_0x02_w %02x", data);
m_vblank_irq_enable = data & 0x80;
if (!m_vblank_irq_enable)
@@ -2656,7 +2657,7 @@ void unkch_state::unkcm_0x03_w(uint8_t data)
m_vidreg = data;
-// popmessage("unkcm_0x03_w %02x", data);
+// popmessage("unkcm_0x03_w %02x", data);
}
#if 0
@@ -2673,7 +2674,7 @@ void goldstar_state::ladylinr_outport_w(uint8_t data)
.x.. ....
x... ....
*/
-// popmessage("Output: %02X", data);
+// popmessage("Output: %02X", data);
}
#endif
@@ -2848,7 +2849,7 @@ uint8_t cd3poker_state::armaly_prot_r()
void unkch_state::bonch_0x10_w(uint8_t data) // prot. system
{
-// popmessage("bonch_0x10_w %02x", data);
+// popmessage("bonch_0x10_w %02x", data);
logerror("bonch_0x10_w %02x\n", data);
}
@@ -2861,8 +2862,8 @@ void unkch_state::bonch_0x20_w(uint8_t data) // meters
machine().bookkeeping().coin_counter_w(4, data & 0x10); // Coin D
machine().bookkeeping().coin_counter_w(5, data & 0x40); // Key Out
-// popmessage("bonch_0x20_w %02x", data);
-// logerror("bonch_0x20_w %02x\n", data);
+// popmessage("bonch_0x20_w %02x", data);
+// logerror("bonch_0x20_w %02x\n", data);
}
void unkch_state::bonch_0x30_w(uint8_t data) // lamps
@@ -2876,14 +2877,14 @@ void unkch_state::bonch_0x30_w(uint8_t data) // lamps
m_lamps[6] = BIT(data, 6); // D-Up/Take
m_lamps[7] = BIT(data, 7); // Stop All
-// popmessage("bonch_0x30_w %02x", data);
-// logerror("bonch_0x30_w %02x\n", data);
+// popmessage("bonch_0x30_w %02x", data);
+// logerror("bonch_0x30_w %02x\n", data);
}
void unkch_state::bonch_0x40_w(uint8_t data) // player 2 ??? wdog ??? video_reg ???
{
-// popmessage("bonch_0x40_w %02x", data);
-// if((data & 0x6f) != 0) // skip bits 4 and 7 (bit 7 wd or vid_reg enable/disable global) - (bit 4 fixed 1) - (values 90-10-90-10-etc...)
+// popmessage("bonch_0x40_w %02x", data);
+// if((data & 0x6f) != 0) // skip bits 4 and 7 (bit 7 wd or vid_reg enable/disable global) - (bit 4 fixed 1) - (values 90-10-90-10-etc...)
logerror("bonch_0x40_w %02x\n", data);
// bit 5 - Hopper Motor
@@ -2986,7 +2987,7 @@ void wingco_state::sm7831_write(offs_t offset, uint8_t data)
sm7831_Y_reg[i] = 0;
logerror("SM7831: Clear X register - Offset:%02x - Data:%02x\n", offset, data);
break;
- case 0x01: // Move Register X to Y
+ case 0x01: // Move Register X to Y
for(int i = 0; i < 8 ; i++)
sm7831_Y_reg[i] = sm7831_X_reg[i];
logerror("SM7831: Move Register X to Y - Offset:%02x - Data:%02x\n", offset, data);
@@ -3014,14 +3015,14 @@ void wingco_state::sm7831_write(offs_t offset, uint8_t data)
}
logerror("SM7831: Exchange Register X with Z - Offset:%02x - Data:%02x\n", offset, data);
break;
- case 0x03: logerror("SM7831: Zero sense Register X - Offset:%02x - Data:%02x\n", offset, data); break; // Zero sense Register X - Set Zero Flag if ...
- case 0x23: logerror("SM7831: Zero sense Register Y - Offset:%02x - Data:%02x\n", offset, data); break; // Zero sense Register y - Set Zero Flag if ...
- case 0x04: logerror("SM7831: Register X normalization - Offset:%02x - Data:%02x\n", offset, data); break; // Register X normalization
- case 0x24: logerror("SM7831: Register Y normalization - Offset:%02x - Data:%02x\n", offset, data); break; // Register Y normalization
+ case 0x03: logerror("SM7831: Zero sense Register X - Offset:%02x - Data:%02x\n", offset, data); break; // Zero sense Register X - Set Zero Flag if ...
+ case 0x23: logerror("SM7831: Zero sense Register Y - Offset:%02x - Data:%02x\n", offset, data); break; // Zero sense Register y - Set Zero Flag if ...
+ case 0x04: logerror("SM7831: Register X normalization - Offset:%02x - Data:%02x\n", offset, data); break; // Register X normalization
+ case 0x24: logerror("SM7831: Register Y normalization - Offset:%02x - Data:%02x\n", offset, data); break; // Register Y normalization
// Arithmetic Commands
- case 0x08: // Add X + Y -> X
+ case 0x08: // Add X + Y -> X
{
uint8_t carry = 0;
@@ -3067,7 +3068,7 @@ void wingco_state::sm7831_write(offs_t offset, uint8_t data)
}
break;
- case 0x09: // Sub X - Y -> X
+ case 0x09: // Sub X - Y -> X
{
uint8_t borrow = 0;
@@ -3106,23 +3107,23 @@ void wingco_state::sm7831_write(offs_t offset, uint8_t data)
logerror("SM7831: Sub X - Y -> X - Offset:%02x - Data:%02x - borrow:%02x\n", offset, data, borrow);
}
break;
- case 0x0a: logerror("SM7831: Mul X * Y -> X - Offset:%02x - Data:%02x\n", offset, data); break; // Mul X * Y -> X
- case 0x0c: logerror("SM7831: Div X / Y -> X - Offset:%02x - Data:%02x\n", offset, data); break; // Div X / Y -> X
- case 0x0e: logerror("SM7831: SQRTodd X sqrt -> X - Offset:%02x - Data:%02x\n", offset, data); break; // SQRTodd X sqrt -> X
- case 0x1e: logerror("SM7831: SQRTeven X sqrt -> X - Offset:%02x - Data:%02x\n", offset, data); break; // SQRTeven X sqrt -> X
+ case 0x0a: logerror("SM7831: Mul X * Y -> X - Offset:%02x - Data:%02x\n", offset, data); break; // Mul X * Y -> X
+ case 0x0c: logerror("SM7831: Div X / Y -> X - Offset:%02x - Data:%02x\n", offset, data); break; // Div X / Y -> X
+ case 0x0e: logerror("SM7831: SQRTodd X sqrt -> X - Offset:%02x - Data:%02x\n", offset, data); break; // SQRTodd X sqrt -> X
+ case 0x1e: logerror("SM7831: SQRTeven X sqrt -> X - Offset:%02x - Data:%02x\n", offset, data); break; // SQRTeven X sqrt -> X
default: logerror("SM7831: Default - Offset:%02x - Data:%02x\n", offset, data); break;
}
else
switch((data & 0xc0) >> 4)
{
case 0x04:
- case 0x05: logerror("SM7831: SL Register X - Offset:%02x - Data:%02x\n", offset, data); break; // SR Register X
+ case 0x05: logerror("SM7831: SL Register X - Offset:%02x - Data:%02x\n", offset, data); break; // SR Register X
case 0x06:
- case 0x07: logerror("SM7831: SL Register Y - Offset:%02x - Data:%02x\n", offset, data); break; // SL Register Y
+ case 0x07: logerror("SM7831: SL Register Y - Offset:%02x - Data:%02x\n", offset, data); break; // SL Register Y
case 0x08:
- case 0x09: logerror("SM7831: SR Register X - Offset:%02x - Data:%02x\n", offset, data); break; // SR Register X
+ case 0x09: logerror("SM7831: SR Register X - Offset:%02x - Data:%02x\n", offset, data); break; // SR Register X
case 0x0a:
- case 0x0b: logerror("SM7831: SR Register Y - Offset:%02x - Data:%02x\n", offset, data); break; // SR Register Y
+ case 0x0b: logerror("SM7831: SR Register Y - Offset:%02x - Data:%02x\n", offset, data); break; // SR Register Y
default: logerror("SM7831: Default - Offset:%02x - Data:%02x\n", offset, data); break;
}
@@ -7020,10 +7021,10 @@ static INPUT_PORTS_START( tonypok )
PORT_DIPSETTING( 0x00, "300" )
PORT_DIPSETTING( 0x08, "1000" )
PORT_DIPNAME( 0x30, 0x00, "Credit Limit" ) PORT_DIPLOCATION("DSW2:!5,!6") // OK
- PORT_DIPSETTING( 0x00, "10.000" )
- PORT_DIPSETTING( 0x10, "50.000" )
- PORT_DIPSETTING( 0x20, "100.000" )
- PORT_DIPSETTING( 0x30, "Unlimited" )
+ PORT_DIPSETTING( 0x00, "10.000" )
+ PORT_DIPSETTING( 0x10, "50.000" )
+ PORT_DIPSETTING( 0x20, "100.000" )
+ PORT_DIPSETTING( 0x30, "Unlimited" )
PORT_DIPNAME( 0x40, 0x40, "Key In Type" ) PORT_DIPLOCATION("DSW2:!7") // OK
PORT_DIPSETTING( 0x40, "A-Type" )
PORT_DIPSETTING( 0x00, "B-Type" )
@@ -7066,10 +7067,10 @@ static INPUT_PORTS_START( tonypok )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x06, 0x06, "Coin In Limit" ) PORT_DIPLOCATION("DSW4:2,3") // OK
- PORT_DIPSETTING( 0x06, "1,000" )
- PORT_DIPSETTING( 0x04, "5,000" )
- PORT_DIPSETTING( 0x02, "10,000" )
- PORT_DIPSETTING( 0x00, "20,000" )
+ PORT_DIPSETTING( 0x06, "1,000" )
+ PORT_DIPSETTING( 0x04, "5,000" )
+ PORT_DIPSETTING( 0x02, "10,000" )
+ PORT_DIPSETTING( 0x00, "20,000" )
PORT_DIPNAME( 0x08, 0x08, "Instant W-Up Game" ) PORT_DIPLOCATION("DSW4:4") // OK
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // play W-up game right away from bet screen!
@@ -8540,37 +8541,37 @@ INPUT_PORTS_END
static INPUT_PORTS_START( f16s8l )
/*
============================================================================
- Findings Summary (current build)
+ Findings Summary (current build)
----------------------------------------------------------------------------
- • Maximum / Minimum Bet functions identified and operational
- • Key-In value table verified
- • Double-Up mode and percentage settings confirmed
- • Bet-Type switching functional
- • Coin A ratio verified — also applies to Coin D and determines
- hopper payout rate (tokens per unit)
- • Payout percentage and Odds Table behavior confirmed
-
- • Coin B input not present
- • Coin C produces sound only — no credit increment (likely disabled channel)
- • "Hold a Pair after Losing a Spin" feature not located in current code
-
- • Double-Up always active
- • Reel speed is stable
- • No limits detected on credit-in, hopper-out, or gameplay credits
+ • Maximum / Minimum Bet functions identified and operational
+ • Key-In value table verified
+ • Double-Up mode and percentage settings confirmed
+ • Bet-Type switching functional
+ • Coin A ratio verified — also applies to Coin D and determines
+ hopper payout rate (tokens per unit)
+ • Payout percentage and Odds Table behavior confirmed
+
+ • Coin B input not present
+ • Coin C produces sound only — no credit increment (likely disabled channel)
+ • "Hold a Pair after Losing a Spin" feature not located in current code
+
+ • Double-Up always active
+ • Reel speed is stable
+ • No limits detected on credit-in, hopper-out, or gameplay credits
----------------------------------------------------------------------------
- Gameplay characteristics and special features:
- • Mario JOK symbol acts as WILD for all symbols and triggers
- the on-screen message "GOLD JOKER"
- • Girl JP symbol: does not form combinations, but whenever it appears
- anywhere on the reels during a winning spin, the total win is DOUBLED
- • Random "LUCKY YOU" event grants 3 free spins at any time
- • "GOOD FEVER" event may activate randomly, doubling all wins
- on the fever payline
+ Gameplay characteristics and special features:
+ • Mario JOK symbol acts as WILD for all symbols and triggers
+ the on-screen message "GOLD JOKER"
+ • Girl JP symbol: does not form combinations, but whenever it appears
+ anywhere on the reels during a winning spin, the total win is DOUBLED
+ • Random "LUCKY YOU" event grants 3 free spins at any time
+ • "GOOD FEVER" event may activate randomly, doubling all wins
+ on the fever payline
============================================================================
- End of findings
+ End of findings
============================================================================
*/
PORT_INCLUDE( lucky8b )
@@ -8589,10 +8590,10 @@ static INPUT_PORTS_START( f16s8l )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x18, 0x18, "Double Up %" ) PORT_DIPLOCATION("DSW1:4,5")
- PORT_DIPSETTING( 0x18, "50%" )
- PORT_DIPSETTING( 0x10, "60%" )
- PORT_DIPSETTING( 0x08, "70%" )
- PORT_DIPSETTING( 0x00, "80%" )
+ PORT_DIPSETTING( 0x18, "50%" )
+ PORT_DIPSETTING( 0x10, "60%" )
+ PORT_DIPSETTING( 0x08, "70%" )
+ PORT_DIPSETTING( 0x00, "80%" )
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:6")
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
@@ -8605,10 +8606,10 @@ static INPUT_PORTS_START( f16s8l )
PORT_MODIFY("DSW2")
PORT_DIPNAME( 0x03, 0x03, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2")
- PORT_DIPSETTING( 0x03, "50%" )
- PORT_DIPSETTING( 0x02, "60%" )
- PORT_DIPSETTING( 0x01, "70%" )
- PORT_DIPSETTING( 0x00, "80%" )
+ PORT_DIPSETTING( 0x03, "50%" )
+ PORT_DIPSETTING( 0x02, "60%" )
+ PORT_DIPSETTING( 0x01, "70%" )
+ PORT_DIPSETTING( 0x00, "80%" )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:3")
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
@@ -8625,15 +8626,15 @@ static INPUT_PORTS_START( f16s8l )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, "Odds Table" ) PORT_DIPLOCATION("DSW2:8")
- PORT_DIPSETTING( 0x80, "Low" )
- PORT_DIPSETTING( 0x00, "High" )
+ PORT_DIPSETTING( 0x80, "Low" )
+ PORT_DIPSETTING( 0x00, "High" )
PORT_MODIFY("DSW3")
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("DSW3:1,2")
- PORT_DIPSETTING( 0x03, DEF_STR( 1C_10C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_10C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW3:3")
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
@@ -8655,28 +8656,28 @@ static INPUT_PORTS_START( f16s8l )
PORT_MODIFY("DSW4")
PORT_DIPNAME( 0x07, 0x06, "Key In Rate" ) PORT_DIPLOCATION("DSW4:1,2,3")
- PORT_DIPSETTING( 0x00, "1 Pulse / 5 Credits" )
- PORT_DIPSETTING( 0x04, "1 Pulse / 10 Credits" )
- PORT_DIPSETTING( 0x02, "1 Pulse / 20 Credits" )
- PORT_DIPSETTING( 0x06, "1 Pulse / 100 Credits" )
- PORT_DIPSETTING( 0x01, "1 Pulse / 110 Credits" )
- PORT_DIPSETTING( 0x05, "1 Pulse / 120 Credits" )
- PORT_DIPSETTING( 0x03, "1 Pulse / 130 Credits" )
- PORT_DIPSETTING( 0x07, "1 Pulse / 140 Credits" )
+ PORT_DIPSETTING( 0x00, "1 Pulse / 5 Credits" )
+ PORT_DIPSETTING( 0x04, "1 Pulse / 10 Credits" )
+ PORT_DIPSETTING( 0x02, "1 Pulse / 20 Credits" )
+ PORT_DIPSETTING( 0x06, "1 Pulse / 100 Credits" )
+ PORT_DIPSETTING( 0x01, "1 Pulse / 110 Credits" )
+ PORT_DIPSETTING( 0x05, "1 Pulse / 120 Credits" )
+ PORT_DIPSETTING( 0x03, "1 Pulse / 130 Credits" )
+ PORT_DIPSETTING( 0x07, "1 Pulse / 140 Credits" )
PORT_DIPNAME( 0x08, 0x08, "Double Up Type" ) PORT_DIPLOCATION("DSW4:4") // both are hi-lo with witches
- PORT_DIPSETTING( 0x00, "Type 1" )
- PORT_DIPSETTING( 0x08, "Type 2" )
+ PORT_DIPSETTING( 0x00, "Type 1" )
+ PORT_DIPSETTING( 0x08, "Type 2" )
PORT_DIPNAME( 0x10, 0x10, "Bet Type" ) PORT_DIPLOCATION("DSW4:5")
- PORT_DIPSETTING( 0x10, "Type 1" )
- PORT_DIPSETTING( 0x00, "Type 2" )
+ PORT_DIPSETTING( 0x10, "Type 1" )
+ PORT_DIPSETTING( 0x00, "Type 2" )
PORT_DIPNAME( 0x60, 0x00, "Maximum Bet" ) PORT_DIPLOCATION("DSW4:6,7")
- PORT_DIPSETTING( 0x60, "32" )
- PORT_DIPSETTING( 0x20, "64" )
- PORT_DIPSETTING( 0x40, "78" )
- PORT_DIPSETTING( 0x00, "80" )
+ PORT_DIPSETTING( 0x60, "32" )
+ PORT_DIPSETTING( 0x20, "64" )
+ PORT_DIPSETTING( 0x40, "78" )
+ PORT_DIPSETTING( 0x00, "80" )
PORT_DIPNAME( 0x80, 0x80, "Minimum Bet" ) PORT_DIPLOCATION("DSW4:8")
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x80, "8" )
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x80, "8" )
INPUT_PORTS_END
@@ -8815,63 +8816,63 @@ static INPUT_PORTS_START( wcat3 )
/*
The following info is from japanese manual
- //---------------- DSW5 is present in the daughterboard ----------------
- PORT_MODIFY("DSW5")
- PORT_DIPNAME( 0x03, 0x02, "Coin Limit" ) PORT_DIPLOCATION("DSW5:1,2")
- PORT_DIPSETTING( 0x03, "1,000" ) // off,off
- PORT_DIPSETTING( 0x02, "5,000" ) // on,off
- PORT_DIPSETTING( 0x01, "10,000" ) // off,on
- PORT_DIPSETTING( 0x00, "20,000" ) // on,on
- PORT_DIPNAME( 0x1c, 0x14, "Credit Limit" ) PORT_DIPLOCATION("DSW5:3,4,5")
- PORT_DIPSETTING( 0x1c, "5,000" ) // off,off,off
- PORT_DIPSETTING( 0x18, "10,000" ) // on,off,off
- PORT_DIPSETTING( 0x14, "20,000" ) // off,on,off
- PORT_DIPSETTING( 0x10, "30,000" ) // on,on,off
- PORT_DIPSETTING( 0x0c, "40,000" ) // off,off,on
- PORT_DIPSETTING( 0x08, "50,000" ) // on,off,on
- PORT_DIPSETTING( 0x04, "100,000" ) // off,on,on
- PORT_DIPSETTING( 0x00, "None" ) // on,on,on
- PORT_DIPNAME( 0x20, 0x00, "Reel Speed" ) PORT_DIPLOCATION("DSW5:6")
- PORT_DIPSETTING( 0x20, "Normal" ) // off
- PORT_DIPSETTING( 0x00, "High" ) // on
- PORT_DIPNAME( 0xc0, 0xc0, "Max Bet" ) PORT_DIPLOCATION("DSW5:7,8")
- PORT_DIPSETTING( 0xc0, "8 Bet" ) // off,off
- PORT_DIPSETTING( 0x80, "16 Bet" ) // on,off
- PORT_DIPSETTING( 0x40, "32 Bet" ) // off,on
- PORT_DIPSETTING( 0x00, "64 Bet" ) // on,on
-
- //---------------- DSW6 is present in the daughterboard ----------------
- PORT_MODIFY("DSW6")
- PORT_DIPNAME( 0x03, 0x03, "Bell Fever Line Count" ) PORT_DIPLOCATION("DSW6:1,2")
- PORT_DIPSETTING( 0x03, "3" ) // off,off
- PORT_DIPSETTING( 0x02, "5" ) // on,off
- PORT_DIPSETTING( 0x01, "7" ) // off,on
- PORT_DIPSETTING( 0x00, "9" ) // on,on
- PORT_DIPNAME( 0x04, 0x04, "Cat Bonus Count" ) PORT_DIPLOCATION("DSW6:3")
- PORT_DIPSETTING( 0x04, "7" ) // off
- PORT_DIPSETTING( 0x00, "9" ) // on
- PORT_DIPNAME( 0x10, 0x10, "Cat Bonus Multiplier" ) PORT_DIPLOCATION("DSW6:5")
- PORT_DIPSETTING( 0x00, "x2" ) // on
- PORT_DIPSETTING( 0x10, "x3" ) // off
- PORT_DIPNAME( 0x60, 0x60, "Bar Bonus Count (1/2/3 BAR)" ) PORT_DIPLOCATION("DSW6:6,7")
- PORT_DIPSETTING( 0x60, "3 / 6 / 8" ) // off,off
- PORT_DIPSETTING( 0x40, "4 / 8 / 12" ) // on,off
- PORT_DIPSETTING( 0x20, "5 / 10 / 14" ) // off,on
- PORT_DIPSETTING( 0x00, "6 / 12 / 16" ) // on,on
-
- //------------- Rotary Switch is present in the daughterboard -------------
- PORT_MODIFY("Rotary SW")
- PORT_DIPNAME( 0x0f, 0x05, "Wave Level" ) PORT_DIPLOCATION("SW7:1,2,3,4")
- PORT_DIPSETTING( 0x00, "0 (None)" ) // all off -> 0
- PORT_DIPSETTING( 0x01, "1" )
- PORT_DIPSETTING( 0x02, "2" )
- PORT_DIPSETTING( 0x03, "3" )
- PORT_DIPSETTING( 0x04, "4" )
- PORT_DIPSETTING( 0x05, "5" )
- PORT_DIPSETTING( 0x06, "6" )
- PORT_DIPSETTING( 0x07, "7" )
- PORT_DIPSETTING( 0x08, "8" )
- PORT_DIPSETTING( 0x09, "9 (Large)" )
+ //---------------- DSW5 is present in the daughterboard ----------------
+ PORT_MODIFY("DSW5")
+ PORT_DIPNAME( 0x03, 0x02, "Coin Limit" ) PORT_DIPLOCATION("DSW5:1,2")
+ PORT_DIPSETTING( 0x03, "1,000" ) // off,off
+ PORT_DIPSETTING( 0x02, "5,000" ) // on,off
+ PORT_DIPSETTING( 0x01, "10,000" ) // off,on
+ PORT_DIPSETTING( 0x00, "20,000" ) // on,on
+ PORT_DIPNAME( 0x1c, 0x14, "Credit Limit" ) PORT_DIPLOCATION("DSW5:3,4,5")
+ PORT_DIPSETTING( 0x1c, "5,000" ) // off,off,off
+ PORT_DIPSETTING( 0x18, "10,000" ) // on,off,off
+ PORT_DIPSETTING( 0x14, "20,000" ) // off,on,off
+ PORT_DIPSETTING( 0x10, "30,000" ) // on,on,off
+ PORT_DIPSETTING( 0x0c, "40,000" ) // off,off,on
+ PORT_DIPSETTING( 0x08, "50,000" ) // on,off,on
+ PORT_DIPSETTING( 0x04, "100,000" ) // off,on,on
+ PORT_DIPSETTING( 0x00, "None" ) // on,on,on
+ PORT_DIPNAME( 0x20, 0x00, "Reel Speed" ) PORT_DIPLOCATION("DSW5:6")
+ PORT_DIPSETTING( 0x20, "Normal" ) // off
+ PORT_DIPSETTING( 0x00, "High" ) // on
+ PORT_DIPNAME( 0xc0, 0xc0, "Max Bet" ) PORT_DIPLOCATION("DSW5:7,8")
+ PORT_DIPSETTING( 0xc0, "8 Bet" ) // off,off
+ PORT_DIPSETTING( 0x80, "16 Bet" ) // on,off
+ PORT_DIPSETTING( 0x40, "32 Bet" ) // off,on
+ PORT_DIPSETTING( 0x00, "64 Bet" ) // on,on
+
+ //---------------- DSW6 is present in the daughterboard ----------------
+ PORT_MODIFY("DSW6")
+ PORT_DIPNAME( 0x03, 0x03, "Bell Fever Line Count" ) PORT_DIPLOCATION("DSW6:1,2")
+ PORT_DIPSETTING( 0x03, "3" ) // off,off
+ PORT_DIPSETTING( 0x02, "5" ) // on,off
+ PORT_DIPSETTING( 0x01, "7" ) // off,on
+ PORT_DIPSETTING( 0x00, "9" ) // on,on
+ PORT_DIPNAME( 0x04, 0x04, "Cat Bonus Count" ) PORT_DIPLOCATION("DSW6:3")
+ PORT_DIPSETTING( 0x04, "7" ) // off
+ PORT_DIPSETTING( 0x00, "9" ) // on
+ PORT_DIPNAME( 0x10, 0x10, "Cat Bonus Multiplier" ) PORT_DIPLOCATION("DSW6:5")
+ PORT_DIPSETTING( 0x00, "x2" ) // on
+ PORT_DIPSETTING( 0x10, "x3" ) // off
+ PORT_DIPNAME( 0x60, 0x60, "Bar Bonus Count (1/2/3 BAR)" ) PORT_DIPLOCATION("DSW6:6,7")
+ PORT_DIPSETTING( 0x60, "3 / 6 / 8" ) // off,off
+ PORT_DIPSETTING( 0x40, "4 / 8 / 12" ) // on,off
+ PORT_DIPSETTING( 0x20, "5 / 10 / 14" ) // off,on
+ PORT_DIPSETTING( 0x00, "6 / 12 / 16" ) // on,on
+
+ //------------- Rotary Switch is present in the daughterboard -------------
+ PORT_MODIFY("Rotary SW")
+ PORT_DIPNAME( 0x0f, 0x05, "Wave Level" ) PORT_DIPLOCATION("SW7:1,2,3,4")
+ PORT_DIPSETTING( 0x00, "0 (None)" ) // all off -> 0
+ PORT_DIPSETTING( 0x01, "1" )
+ PORT_DIPSETTING( 0x02, "2" )
+ PORT_DIPSETTING( 0x03, "3" )
+ PORT_DIPSETTING( 0x04, "4" )
+ PORT_DIPSETTING( 0x05, "5" )
+ PORT_DIPSETTING( 0x06, "6" )
+ PORT_DIPSETTING( 0x07, "7" )
+ PORT_DIPSETTING( 0x08, "8" )
+ PORT_DIPSETTING( 0x09, "9 (Large)" )
*/
INPUT_PORTS_END
@@ -12090,7 +12091,7 @@ static INPUT_PORTS_START( bonusch )
PORT_START("DSW1")
PORT_DIPNAME( 0x03, 0x03, "Double-Up Type" )
PORT_DIPSETTING( 0x03, "1" ) // Hi-Lo Card Style
- PORT_DIPSETTING( 0x02, "2" ) // Hi-Lo With Reel Bonus
+ PORT_DIPSETTING( 0x02, "2" ) // Hi-Lo With Reel Bonus
PORT_DIPSETTING( 0x01, "3" ) // Hi-Lo With Poker Combo
PORT_DIPSETTING( 0x00, "None" )
PORT_DIPNAME( 0x04, 0x04, "Hopper SW" )
@@ -12167,7 +12168,7 @@ static INPUT_PORTS_START( bonusch )
PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x00, "1 Coin / 200 Credit" ) // add this to the core -> 1 Coin 200 Credits
+ PORT_DIPSETTING( 0x00, "1 Coin / 200 Credit" ) // add this to the core -> 1 Coin 200 Credits
PORT_DIPNAME( 0x80, 0x80, "Reel" )
PORT_DIPSETTING( 0x80, "Auto Stop" )
PORT_DIPSETTING( 0x00, "Manual Stop" )
@@ -23972,22 +23973,17 @@ ROM_START( nfb96se )
ROM_REGION( 0x10000, "user1", ROMREGION_ERASEFF )
ROM_REGION( 0x18000, "gfx1", 0 )
- ROM_LOAD( "dogd5.rom", 0x10000, 0x08000, CRC(c03b5632) SHA1(4f603ec5218adcbfce09ec6d3643ffb5006056dd) )
- ROM_LOAD( "dogd6.rom", 0x08000, 0x08000, CRC(c48e5b5c) SHA1(9d79631b54d9915cd161b5028c1be7879254d9be) )
ROM_LOAD( "dogd7.rom", 0x00000, 0x08000, CRC(2f03f1e2) SHA1(b221ad7177fcf4d6d65b8ee9c0f5e4289688c707) )
+ ROM_LOAD( "dogd6.rom", 0x08000, 0x08000, CRC(c48e5b5c) SHA1(9d79631b54d9915cd161b5028c1be7879254d9be) )
+ ROM_LOAD( "dogd5.rom", 0x10000, 0x08000, CRC(c03b5632) SHA1(4f603ec5218adcbfce09ec6d3643ffb5006056dd) )
ROM_REGION( 0x8000, "gfx2", 0 )
- ROM_LOAD( "dogd1.rom", 0x6000, 0x2000, CRC(0f9f77b1) SHA1(03719f79a39f93f38e4170143a5654bd74596206) )
- ROM_LOAD( "dogd2.rom", 0x4000, 0x2000, CRC(6ab19916) SHA1(f125365b3c5546d72662cf439311811ae761f225) )
- ROM_LOAD( "dogd3.rom", 0x2000, 0x2000, CRC(5d4810a5) SHA1(8e9e50c6c7c13010ecb726041a1ac8eccead96ce) )
ROM_LOAD( "dogd4.rom", 0x0000, 0x2000, CRC(be31f6fa) SHA1(b522ff520b3fbb34c55c7bb1fe7dfeecd593d6be) )
+ ROM_LOAD( "dogd3.rom", 0x2000, 0x2000, CRC(5d4810a5) SHA1(8e9e50c6c7c13010ecb726041a1ac8eccead96ce) )
+ ROM_LOAD( "dogd2.rom", 0x4000, 0x2000, CRC(6ab19916) SHA1(f125365b3c5546d72662cf439311811ae761f225) )
+ ROM_LOAD( "dogd1.rom", 0x6000, 0x2000, CRC(0f9f77b1) SHA1(03719f79a39f93f38e4170143a5654bd74596206) )
- // taken from new fruit bonus '96, might be wrong
- ROM_REGION( 0x200, "proms", 0 ) // palette
- ROM_LOAD( "chu19.bin", 0x0000, 0x0100, CRC(fafc43ad) SHA1(e94592b83f19e5f9b6205473c1e06b36405ebfc2) )
- ROM_LOAD( "chu20.bin", 0x0100, 0x0100, CRC(05224f73) SHA1(051c3ee9c63f5436e4f6c355fc308f37910a88ef) )
-
- ROM_REGION( 0x100, "proms2", 0 ) // colours again?
+ ROM_REGION( 0x200, "proms", 0 ) // colours
ROM_LOAD( "chu1920.bin", 0x0000, 0x0100, CRC(71b0e11d) SHA1(1d2a2a31d8571f580c0cb7f4833823841072b31f) )
ROM_END
@@ -24012,26 +24008,20 @@ ROM_START( nfb96sea )
ROM_CONTINUE(0xe000, 0x1000)
ROM_CONTINUE(0xf000, 0x1000)
- // the graphic roms on this set are a mess, the planes don't match up properly
ROM_REGION( 0x18000, "gfx1", 0 )
- ROM_LOAD( "dog_05.rom", 0x10000, 0x08000, CRC(c03b5632) SHA1(4f603ec5218adcbfce09ec6d3643ffb5006056dd) )
+ ROM_LOAD( "dog_07.rom", 0x00000, 0x08000, CRC(2f03f1e2) SHA1(b221ad7177fcf4d6d65b8ee9c0f5e4289688c707) )
ROM_LOAD( "dog_06.rom", 0x08000, 0x08000, CRC(c48e5b5c) SHA1(9d79631b54d9915cd161b5028c1be7879254d9be) )
- ROM_LOAD( "dog_07.rom", 0x00000, 0x08000, CRC(97033c70) SHA1(4d5746f43f8f4d374ba2f31d21defd21921d39bf) )
+ ROM_LOAD( "dog_05.rom", 0x10000, 0x08000, CRC(c03b5632) SHA1(4f603ec5218adcbfce09ec6d3643ffb5006056dd) )
ROM_REGION( 0x8000, "gfx2", 0 )
- ROM_LOAD( "dog_01.rom", 0x0000, 0x2000, CRC(26eb35ce) SHA1(564c775eda7a026841095b210257aea59288f042) )
- ROM_LOAD( "dog_02.rom", 0x2000, 0x2000, CRC(0e220d8a) SHA1(f84145250785dae78ea5af6388d91ad24b42ff9c) )
- ROM_LOAD( "dog_03.rom", 0x4000, 0x2000, CRC(01a7ff6f) SHA1(bfb4ad07d99807eadbb0cb85c5a6cf60a5875f2d) )
- ROM_LOAD( "dog_04.rom", 0x6000, 0x2000, CRC(be31f6fa) SHA1(b522ff520b3fbb34c55c7bb1fe7dfeecd593d6be) )
+ ROM_LOAD( "dog_04.rom", 0x0000, 0x2000, CRC(be31f6fa) SHA1(b522ff520b3fbb34c55c7bb1fe7dfeecd593d6be) )
+ ROM_LOAD( "dog_03.rom", 0x2000, 0x2000, CRC(5d4810a5) SHA1(8e9e50c6c7c13010ecb726041a1ac8eccead96ce) )
+ ROM_LOAD( "dog_02.rom", 0x4000, 0x2000, CRC(6ab19916) SHA1(f125365b3c5546d72662cf439311811ae761f225) )
+ ROM_LOAD( "dog_01.rom", 0x6000, 0x2000, CRC(0f9f77b1) SHA1(03719f79a39f93f38e4170143a5654bd74596206) )
ROM_REGION( 0x10000, "user1", ROMREGION_ERASEFF )
- // taken from new fruit bonus '96, might be wrong
- ROM_REGION( 0x200, "proms", 0 ) // palette
- ROM_LOAD( "chu19.bin", 0x0000, 0x0100, CRC(fafc43ad) SHA1(e94592b83f19e5f9b6205473c1e06b36405ebfc2) )
- ROM_LOAD( "chu20.bin", 0x0100, 0x0100, CRC(05224f73) SHA1(051c3ee9c63f5436e4f6c355fc308f37910a88ef) )
-
- ROM_REGION( 0x100, "proms2", 0 ) // colours again?
+ ROM_REGION( 0x200, "proms", 0 ) // colours
ROM_LOAD( "chu1920.bin", 0x0000, 0x0100, CRC(71b0e11d) SHA1(1d2a2a31d8571f580c0cb7f4833823841072b31f) )
ROM_END
@@ -24051,22 +24041,17 @@ ROM_START( nfb96seb )
ROM_REGION( 0x10000, "user1", ROMREGION_ERASEFF )
ROM_REGION( 0x18000, "gfx1", 0 )
- ROM_LOAD( "dogmx5", 0x10000, 0x08000, CRC(c03b5632) SHA1(4f603ec5218adcbfce09ec6d3643ffb5006056dd) )
- ROM_LOAD( "dogmx6", 0x08000, 0x08000, CRC(c48e5b5c) SHA1(9d79631b54d9915cd161b5028c1be7879254d9be) )
- ROM_LOAD( "dogmx7", 0x00000, 0x08000, CRC(97033c70) SHA1(4d5746f43f8f4d374ba2f31d21defd21921d39bf) ) // wagner video junk on this layer
+ ROM_LOAD( "dog_07.rom", 0x00000, 0x08000, CRC(2f03f1e2) SHA1(b221ad7177fcf4d6d65b8ee9c0f5e4289688c707) )
+ ROM_LOAD( "dog_06.rom", 0x08000, 0x08000, CRC(c48e5b5c) SHA1(9d79631b54d9915cd161b5028c1be7879254d9be) )
+ ROM_LOAD( "dog_05.rom", 0x10000, 0x08000, CRC(c03b5632) SHA1(4f603ec5218adcbfce09ec6d3643ffb5006056dd) )
ROM_REGION( 0x8000, "gfx2", 0 )
- ROM_LOAD( "dogmx1", 0x6000, 0x2000, CRC(b72d2c2c) SHA1(faf60ca0f522868e6dbf7c3ace5c84d8fd001df3) )
- ROM_LOAD( "dogmx2", 0x4000, 0x2000, CRC(a85f5516) SHA1(1564e6c490883c96bffc561d9115eb53450945ce) )
- ROM_LOAD( "dogmx3", 0x2000, 0x2000, CRC(f1a8aea8) SHA1(c20b779a73856d94e862d87ad337c9501da86691) )
- ROM_LOAD( "dogmx4", 0x0000, 0x2000, CRC(be31f6fa) SHA1(b522ff520b3fbb34c55c7bb1fe7dfeecd593d6be) )
-
- // taken from new fruit bonus '96, might be wrong
- ROM_REGION( 0x200, "proms", 0 ) // palette
- ROM_LOAD( "chu19.bin", 0x0000, 0x0100, CRC(fafc43ad) SHA1(e94592b83f19e5f9b6205473c1e06b36405ebfc2) )
- ROM_LOAD( "chu20.bin", 0x0100, 0x0100, CRC(05224f73) SHA1(051c3ee9c63f5436e4f6c355fc308f37910a88ef) )
+ ROM_LOAD( "dog_04.rom", 0x0000, 0x2000, CRC(be31f6fa) SHA1(b522ff520b3fbb34c55c7bb1fe7dfeecd593d6be) )
+ ROM_LOAD( "dog_03.rom", 0x2000, 0x2000, CRC(5d4810a5) SHA1(8e9e50c6c7c13010ecb726041a1ac8eccead96ce) )
+ ROM_LOAD( "dog_02.rom", 0x4000, 0x2000, CRC(6ab19916) SHA1(f125365b3c5546d72662cf439311811ae761f225) )
+ ROM_LOAD( "dog_01.rom", 0x6000, 0x2000, CRC(0f9f77b1) SHA1(03719f79a39f93f38e4170143a5654bd74596206) )
- ROM_REGION( 0x100, "proms2", 0 ) // colours again?
+ ROM_REGION( 0x200, "proms", 0 ) // colours
ROM_LOAD( "chu1920.bin", 0x0000, 0x0100, CRC(71b0e11d) SHA1(1d2a2a31d8571f580c0cb7f4833823841072b31f) )
ROM_END
@@ -24097,7 +24082,7 @@ ROM_START( nfb96sec )
ROM_CONTINUE( 0x08000, 0x08000 )
ROM_CONTINUE( 0x00000, 0x08000 )
- ROM_REGION( 0x10000, "gfx2", 0 ) // Same data as other sets, arranged differently
+ ROM_REGION( 0x8000, "gfx2", 0 ) // Same data as other sets, arranged differently
ROM_LOAD( "u35", 0x0000, 0x4000, CRC(ddd6b7cb) SHA1(ff5161d7d25b216fd507a43f9102cde1e1518593) ) // 0xxxxxxxxxxxxxx = 0xFF
ROM_CONTINUE( 0x2000, 0x2000 )
ROM_CONTINUE( 0x0000, 0x2000 )
@@ -24105,12 +24090,7 @@ ROM_START( nfb96sec )
ROM_CONTINUE( 0x6000, 0x2000 )
ROM_CONTINUE( 0x4000, 0x2000 )
- // taken from new fruit bonus '96, might be wrong
- ROM_REGION( 0x200, "proms", 0 ) // palette
- ROM_LOAD( "chu19.bin", 0x0000, 0x0100, CRC(fafc43ad) SHA1(e94592b83f19e5f9b6205473c1e06b36405ebfc2) )
- ROM_LOAD( "chu20.bin", 0x0100, 0x0100, CRC(05224f73) SHA1(051c3ee9c63f5436e4f6c355fc308f37910a88ef) )
-
- ROM_REGION( 0x100, "proms2", 0 ) // colours again?
+ ROM_REGION( 0x200, "proms", 0 ) // colours
ROM_LOAD( "chu1920.bin", 0x0000, 0x0100, CRC(71b0e11d) SHA1(1d2a2a31d8571f580c0cb7f4833823841072b31f) )
ROM_END
@@ -24138,26 +24118,21 @@ ROM_START( carb2002 )
ROM_REGION( 0x10000, "user1", ROMREGION_ERASEFF )
ROM_REGION( 0x18000, "gfx1", 0 )
- ROM_LOAD( "dogtai5", 0x10000, 0x08000, CRC(0c8a4afb) SHA1(994295eea7964d60b6a1db911679739a10be9bbe) )
- ROM_LOAD( "dogtai6", 0x08000, 0x08000, CRC(e9f5dc36) SHA1(6a4060c901f10202fe935701f1f1087c8477da56) )
ROM_LOAD( "dogtai7", 0x00000, 0x08000, CRC(73c4c1aa) SHA1(31a70861dc54b442a1e50adf3f013dbc38fbbbb1) )
+ ROM_LOAD( "dogtai6", 0x08000, 0x08000, CRC(e9f5dc36) SHA1(6a4060c901f10202fe935701f1f1087c8477da56) )
+ ROM_LOAD( "dogtai5", 0x10000, 0x08000, CRC(0c8a4afb) SHA1(994295eea7964d60b6a1db911679739a10be9bbe) )
// alt. replacements for roms 5+6?, erases the word 'slot' on the title screen?
- ROM_LOAD( "dogdif5", 0x10000, 0x08000, CRC(a1986e44) SHA1(3178de9c6063c9f33878b6070db95b2eeb12ffea) )
ROM_LOAD( "dogdif6", 0x08000, 0x08000, CRC(a5d389fc) SHA1(3db570c938a387708974f24a110cf25b9b52ac22) )
+ ROM_LOAD( "dogdif5", 0x10000, 0x08000, CRC(a1986e44) SHA1(3178de9c6063c9f33878b6070db95b2eeb12ffea) )
ROM_REGION( 0x8000, "gfx2", 0 )
- ROM_LOAD( "dogtai1", 0x6000, 0x2000, CRC(68ed1c26) SHA1(495a8b57c368b0b7c2a618d4f1e980d5187f411a) )
- ROM_LOAD( "dogtai2", 0x4000, 0x2000, CRC(b5e25d9b) SHA1(9374f7662f92c10ca6d1af570eaa4d161173283f) )
- ROM_LOAD( "dogtai3", 0x2000, 0x2000, CRC(df13aeb2) SHA1(942f742a722bab44dd3de270001b60d888c44111) )
ROM_LOAD( "dogtai4", 0x0000, 0x2000, CRC(170f07ce) SHA1(4b48841f9c5bdf7bfbc05113148666a5bcdd3d35) )
+ ROM_LOAD( "dogtai3", 0x2000, 0x2000, CRC(df13aeb2) SHA1(942f742a722bab44dd3de270001b60d888c44111) )
+ ROM_LOAD( "dogtai2", 0x4000, 0x2000, CRC(b5e25d9b) SHA1(9374f7662f92c10ca6d1af570eaa4d161173283f) )
+ ROM_LOAD( "dogtai1", 0x6000, 0x2000, CRC(68ed1c26) SHA1(495a8b57c368b0b7c2a618d4f1e980d5187f411a) )
- // taken from new fruit bonus '96, definitely wrong
- ROM_REGION( 0x200, "proms", 0 ) // palette
- ROM_LOAD( "chu19.bin", 0x0000, 0x0100, BAD_DUMP CRC(fafc43ad) SHA1(e94592b83f19e5f9b6205473c1e06b36405ebfc2) )
- ROM_LOAD( "chu20.bin", 0x0100, 0x0100, BAD_DUMP CRC(05224f73) SHA1(051c3ee9c63f5436e4f6c355fc308f37910a88ef) )
-
- ROM_REGION( 0x100, "proms2", 0 ) // colours again?
- ROM_LOAD( "chu1920.bin", 0x0000, 0x0100, BAD_DUMP CRC(71b0e11d) SHA1(1d2a2a31d8571f580c0cb7f4833823841072b31f) )
+ ROM_REGION( 0x200, "proms", 0 ) // colours
+ ROM_LOAD( "chu1920.bin", 0x0000, 0x0100, CRC(71b0e11d) SHA1(1d2a2a31d8571f580c0cb7f4833823841072b31f) )
ROM_END
@@ -24182,27 +24157,22 @@ ROM_START( carb2003 )
ROM_CONTINUE(0xf000, 0x1000)
ROM_REGION( 0x18000, "gfx1", 0 )
- ROM_LOAD( "timedog5.rom", 0x10000, 0x08000, CRC(cf05b66d) SHA1(a711a86f2a82dd685a379fda0cf7240b2ca2696e) )
- ROM_LOAD( "timedog6.rom", 0x08000, 0x08000, CRC(2d81bdbe) SHA1(56eaa9347014340b902d8f0bc38b719acf56c314) )
ROM_LOAD( "timedog7.rom", 0x00000, 0x08000, CRC(f8e410e5) SHA1(1edc863902cfb1605aca08f6970f9bd24147ca0b) )
+ ROM_LOAD( "timedog6.rom", 0x08000, 0x08000, CRC(2d81bdbe) SHA1(56eaa9347014340b902d8f0bc38b719acf56c314) )
+ ROM_LOAD( "timedog5.rom", 0x10000, 0x08000, CRC(cf05b66d) SHA1(a711a86f2a82dd685a379fda0cf7240b2ca2696e) )
ROM_REGION( 0x10000, "user1", ROMREGION_ERASEFF )
// these seem to contain mixed planes of different gfx sets.. not correct
ROM_REGION( 0x8000, "gfx2", 0 )
- ROM_LOAD( "timedog1.rom", 0x6000, 0x2000, CRC(d29e0217) SHA1(df978143ed313b33f848e7337097fe29c1fa4506) )
- ROM_LOAD( "timedog2.rom", 0x4000, 0x2000, CRC(fafb6a51) SHA1(57e79e5efd525cdf5a4475eedfee2c8fc1417b76) )
- ROM_LOAD( "timedog3.rom", 0x2000, 0x2000, CRC(6f305ac7) SHA1(55f0d73b783854584195658ab4e74770bc13ba0b) )
- ROM_LOAD( "timedog4.rom", 0x0000, 0x2000, CRC(807a16fc) SHA1(111e7d171f9278abea666d6ad41b02f2c8bf98d8) )
- ROM_IGNORE(0x2000)
-
- // taken from new fruit bonus '96, definitely wrong
- ROM_REGION( 0x200, "proms", 0 ) // palette
- ROM_LOAD( "chu19.bin", 0x0000, 0x0100, BAD_DUMP CRC(fafc43ad) SHA1(e94592b83f19e5f9b6205473c1e06b36405ebfc2) )
- ROM_LOAD( "chu20.bin", 0x0100, 0x0100, BAD_DUMP CRC(05224f73) SHA1(051c3ee9c63f5436e4f6c355fc308f37910a88ef) )
+ ROM_LOAD( "timedog4.rom", 0x0000, 0x2000, BAD_DUMP CRC(807a16fc) SHA1(111e7d171f9278abea666d6ad41b02f2c8bf98d8) )
+ ROM_IGNORE( 0x2000)
+ ROM_LOAD( "timedog3.rom", 0x2000, 0x2000, BAD_DUMP CRC(6f305ac7) SHA1(55f0d73b783854584195658ab4e74770bc13ba0b) )
+ ROM_LOAD( "timedog2.rom", 0x4000, 0x2000, BAD_DUMP CRC(fafb6a51) SHA1(57e79e5efd525cdf5a4475eedfee2c8fc1417b76) )
+ ROM_LOAD( "timedog1.rom", 0x6000, 0x2000, BAD_DUMP CRC(d29e0217) SHA1(df978143ed313b33f848e7337097fe29c1fa4506) )
- ROM_REGION( 0x100, "proms2", 0 ) // colours again?
- ROM_LOAD( "chu1920.bin", 0x0000, 0x0100, BAD_DUMP CRC(71b0e11d) SHA1(1d2a2a31d8571f580c0cb7f4833823841072b31f) )
+ ROM_REGION( 0x200, "proms", 0 ) // colours
+ ROM_LOAD( "chu1920.bin", 0x0000, 0x0100, CRC(71b0e11d) SHA1(1d2a2a31d8571f580c0cb7f4833823841072b31f) )
ROM_END
ROM_START( noved )
@@ -25468,10 +25438,10 @@ ROM_START( bonusch )
ROM_CONTINUE( 0x10000, 0x08000 )
ROM_REGION( 0x20000, "gfx2", 0 )
-// ROM_LOAD( "4.1p", 0x08000, 0x08000, CRC(530bdec2) SHA1(2ce0993386fe6b165363a053b54fc66d8bf385d7) )
-// ROM_CONTINUE( 0x00000, 0x08000 )
-// ROM_LOAD( "3.1m", 0x18000, 0x08000, CRC(2acac012) SHA1(59d879214c4e473fa6fedb4a08dcd9b3c6a881a3) )
-// ROM_CONTINUE( 0x10000, 0x08000 )
+// ROM_LOAD( "4.1p", 0x08000, 0x08000, CRC(530bdec2) SHA1(2ce0993386fe6b165363a053b54fc66d8bf385d7) )
+// ROM_CONTINUE( 0x00000, 0x08000 )
+// ROM_LOAD( "3.1m", 0x18000, 0x08000, CRC(2acac012) SHA1(59d879214c4e473fa6fedb4a08dcd9b3c6a881a3) )
+// ROM_CONTINUE( 0x10000, 0x08000 )
ROM_LOAD( "4.1p", 0x08000, 0x04000, CRC(530bdec2) SHA1(2ce0993386fe6b165363a053b54fc66d8bf385d7) )
ROM_CONTINUE( 0x0e000, 0x02000 ) // 3rd and 4th querters swapped
@@ -25512,10 +25482,10 @@ ROM_START( bonuscha )
ROM_CONTINUE( 0x10000, 0x08000 )
ROM_REGION( 0x20000, "gfx2", 0 )
-// ROM_LOAD( "4.1p", 0x08000, 0x08000, CRC(530bdec2) SHA1(2ce0993386fe6b165363a053b54fc66d8bf385d7) )
-// ROM_CONTINUE( 0x00000, 0x08000 )
-// ROM_LOAD( "3.1m", 0x18000, 0x08000, CRC(2acac012) SHA1(59d879214c4e473fa6fedb4a08dcd9b3c6a881a3) )
-// ROM_CONTINUE( 0x10000, 0x08000 )
+// ROM_LOAD( "4.1p", 0x08000, 0x08000, CRC(530bdec2) SHA1(2ce0993386fe6b165363a053b54fc66d8bf385d7) )
+// ROM_CONTINUE( 0x00000, 0x08000 )
+// ROM_LOAD( "3.1m", 0x18000, 0x08000, CRC(2acac012) SHA1(59d879214c4e473fa6fedb4a08dcd9b3c6a881a3) )
+// ROM_CONTINUE( 0x10000, 0x08000 )
ROM_LOAD( "4.1p", 0x08000, 0x04000, CRC(530bdec2) SHA1(2ce0993386fe6b165363a053b54fc66d8bf385d7) )
ROM_CONTINUE( 0x0e000, 0x02000 ) // 3rd and 4th querters swapped
@@ -28475,6 +28445,22 @@ void wingco_state::init_magoddsc()
}
+void cmaster_state::init_nfb96bl()
+{
+ // split the byte nibbles creating 4bit data for the whole game palette.
+ uint8_t *proms = memregion("proms")->base();
+
+ for (int i = 0; i < 0x100; i++)
+ {
+ uint8_t nibble1 = proms[i] >> 4;
+ uint8_t nibble2 = proms[i] & 0x0f;
+ proms[i] = nibble2;
+ proms[i + 0x100] = nibble1;
+ }
+
+ m_palette->update();
+}
+
void cmaster_state::init_nfb96sea()
{
uint8_t *rom = memregion("maincpu")->base();
@@ -28495,6 +28481,19 @@ void cmaster_state::init_nfb96sea()
rom[i] = x;
}
+
+ // split the byte nibbles creating 4bit data for the whole game palette.
+ uint8_t *proms = memregion("proms")->base();
+
+ for (int i = 0; i < 0x100; i++)
+ {
+ uint8_t nibble1 = proms[i] >> 4;
+ uint8_t nibble2 = proms[i] & 0x0f;
+ proms[i] = nibble2;
+ proms[i + 0x100] = nibble1;
+ }
+
+ m_palette->update();
}
@@ -29559,10 +29558,10 @@ void cmaster_state::init_cutya()
uint8_t *rom = memregion("maincpu")->base();
rom[0x02e6] = 0x83; // jp 0301h -> jp 8301h start
- rom[0x2a6e] = 0x83; // ld hl, 0301h -> 8301h start
+ rom[0x2a6e] = 0x83; // ld hl, 0301h -> 8301h start
rom[0x8f51] = 0x84; // jp 4423h -> jp 8423h loop attract
rom[0x0821] = 0x93; // 81fh jp 53CBh -> jp 93cbh
- rom[0x0927] = 0x5a; // 0926h call 0722h -> call 465ah - keep original program flow (as cutyline)
+ rom[0x0927] = 0x5a; // 0926h call 0722h -> call 465ah - keep original program flow (as cutyline)
rom[0x0928] = 0x46;
rom[0x9415] = 0xcd; // 9415h jp 8646h -> call 4d09h - keep original program flow (as cutyline)
rom[0x9416] = 0x09;
@@ -29606,7 +29605,12 @@ void wingco_state::init_cbaai()
void cmaster_state::init_noved()
{
uint8_t *rom = memregion("maincpu")->base();
- rom[0x5551] = 0x00; // avoids link error
+ rom[0x5551] = 0xaf; // avoids link error
+ rom[0x29ff] = 0x00;
+ rom[0x2b11] = 0x00;
+ rom[0xb98f] = 0x00;
+ rom[0xb9ba] = 0x00;
+ rom[0xbab4] = 0x00;
// split the byte nibbles creating 4bit data for the whole game palette.
uint8_t *proms = memregion("proms")->base();
@@ -29930,12 +29934,12 @@ GAME( 1996, roypok96c, roypok96, amcoe2, roypok96a, cmaster_state, init_rp9
// some sets are messy and appear to have mismatched graphic roms, they need to be sorted out properly.
// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS
-GAME( 1996, nfb96se, nfb96, amcoe2, nfb96bl, cmaster_state, empty_init, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 1, v97-3.3c Portuguese)", 0 )
-GAME( 1996, nfb96sea, nfb96, amcoe2, nfb96bl, cmaster_state, init_nfb96sea, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 2, v97-3.3c English)", MACHINE_WRONG_COLORS ) // encrypted program
-GAME( 1996, nfb96seb, nfb96, amcoe2, nfb96bl, cmaster_state, empty_init, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 3, v97-3.3c Portuguese)", MACHINE_WRONG_COLORS )
-GAME( 1996, nfb96sec, nfb96, amcoe2, nfb96bl, cmaster_state, empty_init, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 4, v97-3.3c English)", MACHINE_WRONG_COLORS )
-GAME( 2002, carb2002, nfb96, amcoe2, nfb96bl, cmaster_state, empty_init, ROT0, "bootleg", "Carriage Bonus 2002 (bootleg)", MACHINE_WRONG_COLORS )
-GAME( 2003, carb2003, nfb96, amcoe2, nfb96bl, cmaster_state, empty_init, ROT0, "bootleg", "Carriage Bonus 2003 (bootleg)", MACHINE_WRONG_COLORS )
+GAME( 1996, nfb96se, nfb96, amcoe2, nfb96bl, cmaster_state, init_nfb96bl, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 1, v97-3.3c Portuguese)", 0 )
+GAME( 1996, nfb96sea, nfb96, amcoe2, nfb96bl, cmaster_state, init_nfb96sea, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 2, v97-3.3c English)", 0 ) // encrypted program
+GAME( 1996, nfb96seb, nfb96, amcoe2, nfb96bl, cmaster_state, init_nfb96bl, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 3, v97-3.3c Portuguese)", 0 )
+GAME( 1996, nfb96sec, nfb96, amcoe2, nfb96bl, cmaster_state, init_nfb96bl, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 4, v97-3.3c English)", 0 )
+GAME( 2002, carb2002, nfb96, amcoe2, nfb96bl, cmaster_state, init_nfb96bl, ROT0, "bootleg", "Carriage Bonus 2002 (bootleg)", 0 )
+GAME( 2003, carb2003, nfb96, amcoe2, nfb96bl, cmaster_state, init_nfb96bl, ROT0, "bootleg", "Carriage Bonus 2003 (bootleg)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 2006, noved, nfb96, amcoe2, nfb96bl, cmaster_state, init_noved, ROT0, "bootleg (Kon)", "Nove Diamante (bootleg)", 0 )
GAME( 2003, nfm, 0, nfm, nfm, cmaster_state, empty_init, ROT0, "Ming-Yang Electronic / TSK", "Fruit Bonus 2002 (Ming-Yang Electronic / TSK, vFB02-07A)", MACHINE_NOT_WORKING ) // vFB02-07A "Copyright By Ms. Liu Orchis 2003/03/06", needs correct PROM and USER1 regions decode