the Videotron bootlegs are more 'Moon Cresta' than 'Super Cobra' now working.

Removed fake ROMs from hustlerb3 too, it plays sounds through the discrete system (as does the frogger), sound comms code in there is just a leftover.
This commit is contained in:
mamehaze 2015-03-12 11:19:05 +00:00
parent b2333ef332
commit 60af9983cd
2 changed files with 183 additions and 119 deletions

View File

@ -463,6 +463,32 @@ static ADDRESS_MAP_START( mooncrst_map, AS_PROGRAM, 8, galaxold_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( hustlerb3_map, AS_PROGRAM, 8, galaxold_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
AM_RANGE(0x9840, 0x985f) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x9860, 0x987f) AM_RAM AM_SHARE("bulletsram")
AM_RANGE(0x9880, 0x98ff) AM_RAM
AM_RANGE(0xb001, 0xb001) AM_WRITE(galaxold_nmi_enable_w)
AM_RANGE(0xb006, 0xb006) AM_WRITE(galaxold_flip_screen_y_w)
AM_RANGE(0xb007, 0xb007) AM_WRITE(galaxold_flip_screen_x_w)
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN1")
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW0")
AM_RANGE(0xb800, 0xb800) AM_READ(watchdog_reset_r)
AM_RANGE(0xa004, 0xa007) AM_DEVWRITE("cust", galaxian_sound_device, lfo_freq_w)
AM_RANGE(0xa800, 0xa802) AM_DEVWRITE("cust", galaxian_sound_device, background_enable_w)
AM_RANGE(0xa803, 0xa803) AM_DEVWRITE("cust", galaxian_sound_device, noise_enable_w)
AM_RANGE(0xa805, 0xa805) AM_DEVWRITE("cust", galaxian_sound_device, fire_enable_w)
AM_RANGE(0xa806, 0xa807) AM_DEVWRITE("cust", galaxian_sound_device, vol_w)
AM_RANGE(0xb800, 0xb800) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( rockclim_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_READWRITE(rockclim_videoram_r, rockclim_videoram_w) AM_SHARE("rockclim_vram")//4800 - 4803 = bg scroll ?
@ -1046,6 +1072,107 @@ static INPUT_PORTS_START( vpool )
INPUT_PORTS_END
static INPUT_PORTS_START( hustlerb3 )
PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_START("IN1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
// 6-pos dipswitch on mainboard K4
PORT_DIPNAME( 0x40, 0x00, "Half Coinage" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) )
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) )
PORT_START("DSW0")
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Coin_A ) )
PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x40)
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x00)
PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x40)
PORT_DIPSETTING( 0x01, DEF_STR( 1C_6C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x00)
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Coin_B ) )
PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x40)
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x00)
PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x40)
PORT_DIPSETTING( 0x02, DEF_STR( 1C_6C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x00)
PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
PORT_DIPSETTING( 0x00, "1" )
PORT_DIPSETTING( 0x04, "2" )
PORT_DIPSETTING( 0x08, "3" )
PORT_DIPSETTING( 0x0c, "Infinite (Cheat)" )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
INPUT_PORTS_END
static INPUT_PORTS_START( froggerv )
PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
PORT_START("IN1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_COCKTAIL
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
// 6-pos dipswitch on mainboard K4
PORT_DIPNAME( 0x40, 0x00, "Half Coinage" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) )
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) )
PORT_START("DSW0")
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Coin_A ) )
PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x40)
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x00)
PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x40)
PORT_DIPSETTING( 0x01, DEF_STR( 1C_6C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x00)
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Coin_B ) )
PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x40)
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x00)
PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x40)
PORT_DIPSETTING( 0x02, DEF_STR( 1C_6C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x00)
PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
PORT_DIPSETTING( 0x00, "1" )
PORT_DIPSETTING( 0x04, "2" )
PORT_DIPSETTING( 0x08, "3" )
PORT_DIPSETTING( 0x0c, "Infinite (Cheat)" )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
INPUT_PORTS_END
/* verified from Z80 code */
static INPUT_PORTS_START( rockclim )
PORT_START("IN0")
@ -2379,6 +2506,22 @@ static MACHINE_CONFIG_DERIVED( mooncrst, galaxian )
MCFG_VIDEO_START_OVERRIDE(galaxold_state,mooncrst)
MACHINE_CONFIG_END
// 'Videotron'
// this is a 'cartridge' based system, taking plug-in game boards.
// a large sub-PCB actually contains an additional Z80 and AY8910 (with a socket for another AY8910)
// but neither of the games we have (froggerv and hustlerb3) make use of either. There are a number
// of unpopulated positions on the game board which presumably can be populated with code for the
// 2nd Z80.
static MACHINE_CONFIG_DERIVED( videotron, galaxian )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(hustlerb3_map)
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(galaxold_state,mooncrst)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( porter, mooncrst )
@ -2710,6 +2853,41 @@ ROM_START( vpool )
ROM_LOAD( "hustler.clr", 0x0000, 0x0020, CRC(aa1f7f5e) SHA1(311dd17aa11490a1173c76223e4ccccf8ea29850) )
ROM_END
ROM_START( hustlerb3 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "billiard_ic4.a4", 0x0000, 0x2000, CRC(545a27fd) SHA1(8b064dd6a9a82248301e0f53dc1c4fd91e506025) )
ROM_LOAD( "billiard_ic3.a3", 0x2000, 0x2000, CRC(bec503b1) SHA1(cdbe650b829cd4424141058467cd64cfffe1b1e1) )
ROM_REGION( 0x1000, "gfx1", 0 )
ROM_LOAD( "billiard_ic11.d1", 0x0000, 0x0800, CRC(0bdfad0e) SHA1(8e6f1737604f3801c03fa2e9a5e6a2778b54bae8) )
ROM_LOAD( "billiard_ic12.d2", 0x0800, 0x0800, CRC(8e062177) SHA1(7e52a1669804b6c2f694cfc64b04abc8246bb0c2) )
ROM_REGION( 0x0020, "proms", 0 )
ROM_LOAD( "ic10.c3", 0x0000, 0x0020, CRC(aa1f7f5e) SHA1(311dd17aa11490a1173c76223e4ccccf8ea29850) )
ROM_REGION( 0x0020, "user1", 0 ) /* decode PROMs */
ROM_LOAD( "ic7.b3", 0x0000, 0x0020, CRC(4ac17114) SHA1(1fa34a556fe445a6bdabfe75b4b679cab6553c8b) )
ROM_END
// https://www.youtube.com/watch?v=r7di0_Yt1l8
ROM_START( froggerv )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "rana_ic4.ic4", 0x0000, 0x2000, CRC(ed39f6d8) SHA1(8ca60be30dfc5c54fbc129fa0024987d853aad39) )
ROM_LOAD( "rana_ic3.ic3", 0x2000, 0x2000, CRC(f8313d5d) SHA1(76f8e382d5cfad4eafbcd8d42bc9a9f03a5eb5f8) )
ROM_REGION( 0x1000, "gfx1", 0 )
ROM_LOAD( "rana_ic11.ic11", 0x0000, 0x0800, CRC(a1199087) SHA1(4492b021a6b5ae9a9e2ab97914ce1a5e5e5b64ab) )
ROM_LOAD( "rana_ic12.ic12", 0x0800, 0x0800, CRC(c1690dfc) SHA1(c6fdb1b9ec4fb7da2566b0c71e3e2f931cdece68) )
ROM_REGION( 0x0020, "proms", 0 )
ROM_LOAD( "ic10", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
ROM_REGION( 0x0020, "user1", 0 ) /* decode PROMs */
ROM_LOAD( "ic7", 0x0000, 0x0020, CRC(4ac17114) SHA1(1fa34a556fe445a6bdabfe75b4b679cab6553c8b) )
ROM_END
ROM_START( rockclim )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "lc01.a1", 0x0000, 0x1000, CRC(8601ae8d) SHA1(6e0c3b34ce5e6879ce7a116c5c2660889a68320d) )
@ -3542,6 +3720,10 @@ GAME( 1983, ozon1, 0, ozon1, ozon1, driver_device, 0,
GAME( 1983, ladybugg, ladybug, batman2, ladybugg, galaxold_state, ladybugg, ROT270, "bootleg", "Lady Bug (bootleg on Galaxian hardware)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1982, guttangt, locomotn, guttang, guttangt, galaxold_state, guttangt, ROT270, "bootleg (Recreativos Franco?)", "Guttang Gottong (bootleg on Galaxian type hardware)", GAME_NOT_WORKING | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) // or by 'Tren' ?
// Videotron cartridge system
GAME( 1981, hustlerb3, hustler, videotron, hustlerb3, driver_device, 0, ROT90, "bootleg (Videotron)", "Video Pool (Video Hustler bootleg)", GAME_SUPPORTS_SAVE )
GAME( 1981, froggerv, frogger, videotron, froggerv, driver_device, 0, ROT90, "bootleg (Videotron / Gamepack)", "Frogger (Videotron bootleg)", GAME_SUPPORTS_SAVE )
/* S2650 games */
// YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY, FULLNAME, FLAGS, LAYOUT
GAME( 1983, hunchbkg, hunchbak, hunchbkg, hunchbkg, driver_device, 0, ROT90, "Century Electronics", "Hunchback (Galaxian hardware)", GAME_SUPPORTS_SAVE )

View File

@ -177,28 +177,6 @@ static ADDRESS_MAP_START( hustlerb_map, AS_PROGRAM, 8, scobra_state )
AM_RANGE(0xc200, 0xc203) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
ADDRESS_MAP_END
static ADDRESS_MAP_START( hustlerb3_map, AS_PROGRAM, 8, scobra_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
AM_RANGE(0x9840, 0x985f) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x9860, 0x987f) AM_RAM AM_SHARE("bulletsram")
AM_RANGE(0x9880, 0x98ff) AM_RAM
AM_RANGE(0xb001, 0xb001) AM_WRITE(galaxold_nmi_enable_w)
AM_RANGE(0xb006, 0xb006) AM_WRITE(galaxold_flip_screen_y_w)
AM_RANGE(0xb007, 0xb007) AM_WRITE(galaxold_flip_screen_x_w)
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN1")
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("IN2")
AM_RANGE(0xb800, 0xb800) AM_READ(watchdog_reset_r)
// NOTE: hardware does not have any 8255 chip. Is this handled through TTL, or a leftover?
// Is b800 the actual sound comms? The soundroms are not dumped, so we can't know...
// AM_RANGE(0xb800, 0xb800) AM_WRITENOP
AM_RANGE(0xc200, 0xc203) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mimonkey_map, AS_PROGRAM, 8, scobra_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
@ -596,54 +574,6 @@ static INPUT_PORTS_START( hustler )
INPUT_PORTS_END
static INPUT_PORTS_START( hustlerb3 )
PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_START("IN1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
// 6-pos dipswitch on mainboard K4
PORT_DIPNAME( 0x40, 0x00, "Half Coinage" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) )
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) )
PORT_START("IN2")
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Coin_A ) )
PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x40)
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x00)
PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x40)
PORT_DIPSETTING( 0x01, DEF_STR( 1C_6C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x00)
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Coin_B ) )
PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x40)
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x00)
PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x40)
PORT_DIPSETTING( 0x02, DEF_STR( 1C_6C ) ) PORT_CONDITION("IN1", 0x40, EQUALS, 0x00)
PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
PORT_DIPSETTING( 0x00, "1" )
PORT_DIPSETTING( 0x04, "2" )
PORT_DIPSETTING( 0x08, "3" )
PORT_DIPSETTING( 0x0c, "Infinite (Cheat)" )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
INPUT_PORTS_END
static INPUT_PORTS_START( mimonkey )
@ -919,12 +849,6 @@ static MACHINE_CONFIG_DERIVED( hustlerb4, hustler )
MCFG_CPU_PROGRAM_MAP(hustlerb_map)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( hustlerb3, hustler )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(hustlerb3_map)
MACHINE_CONFIG_END
/***************************************************************************
@ -1231,47 +1155,6 @@ ROM_START( hustlerb2 )
ROM_LOAD( "27s19.bin", 0x0000, 0x0020, CRC(aa1f7f5e) SHA1(311dd17aa11490a1173c76223e4ccccf8ea29850) )
ROM_END
ROM_START( hustlerb3 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "billiard_ic4.a4", 0x0000, 0x2000, CRC(545a27fd) SHA1(8b064dd6a9a82248301e0f53dc1c4fd91e506025) )
ROM_LOAD( "billiard_ic3.a3", 0x2000, 0x2000, CRC(bec503b1) SHA1(cdbe650b829cd4424141058467cd64cfffe1b1e1) )
ROM_REGION( 0x10000, "audiocpu", 0 )
// the frogger below which appears to be the same hw had no sound roms either.. I suspect something else is going on here
ROM_LOAD( "hustler.6", 0x0000, 0x0800, BAD_DUMP CRC(7a946544) SHA1(7ee2ad3fdf996f08534fb87fc02b619c168f420c) ) // not found on board - taken from parent
ROM_LOAD( "hustler.7", 0x0800, 0x0800, BAD_DUMP CRC(3db57351) SHA1(e5075a7130a80d2bf24f0556c2589dff0625ee60) ) // not found on board - taken from parent
ROM_REGION( 0x1000, "gfx1", 0 )
ROM_LOAD( "billiard_ic11.d1", 0x0000, 0x0800, CRC(0bdfad0e) SHA1(8e6f1737604f3801c03fa2e9a5e6a2778b54bae8) )
ROM_LOAD( "billiard_ic12.d2", 0x0800, 0x0800, CRC(8e062177) SHA1(7e52a1669804b6c2f694cfc64b04abc8246bb0c2) )
ROM_REGION( 0x0020, "proms", 0 )
ROM_LOAD( "ic10.c3", 0x0000, 0x0020, CRC(aa1f7f5e) SHA1(311dd17aa11490a1173c76223e4ccccf8ea29850) )
ROM_REGION( 0x0020, "user1", 0 ) /* decode PROMs */
ROM_LOAD( "ic7.b3", 0x0000, 0x0020, CRC(4ac17114) SHA1(1fa34a556fe445a6bdabfe75b4b679cab6553c8b) )
ROM_END
// https://www.youtube.com/watch?v=r7di0_Yt1l8
ROM_START( froggerv )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "rana_ic4.ic4", 0x0000, 0x2000, CRC(ed39f6d8) SHA1(8ca60be30dfc5c54fbc129fa0024987d853aad39) )
ROM_LOAD( "rana_ic3.ic3", 0x2000, 0x2000, CRC(f8313d5d) SHA1(76f8e382d5cfad4eafbcd8d42bc9a9f03a5eb5f8) )
ROM_REGION( 0x10000, "audiocpu", ROMREGION_ERASE00 )
// no roms for 2nd z80 present, has very different sound to original..
ROM_REGION( 0x1000, "gfx1", 0 )
ROM_LOAD( "rana_ic11.ic11", 0x0000, 0x0800, CRC(a1199087) SHA1(4492b021a6b5ae9a9e2ab97914ce1a5e5e5b64ab) )
ROM_LOAD( "rana_ic12.ic12", 0x0800, 0x0800, CRC(c1690dfc) SHA1(c6fdb1b9ec4fb7da2566b0c71e3e2f931cdece68) )
ROM_REGION( 0x0020, "proms", 0 )
ROM_LOAD( "ic10", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
ROM_REGION( 0x0020, "user1", 0 ) /* decode PROMs */
ROM_LOAD( "ic7", 0x0000, 0x0020, CRC(4ac17114) SHA1(1fa34a556fe445a6bdabfe75b4b679cab6553c8b) )
ROM_END
ROM_START( hustlerb4 )
@ -1297,6 +1180,7 @@ ROM_START( hustlerb4 )
ROM_REGION( 0x0800, "unk", 0 )
ROM_LOAD( "top.c5", 0x0000, 0x0800, CRC(88226086) SHA1(fe2da172313063e5b056fc8c8d8b2a5c64db5179) )
ROM_END
ROM_START( mimonkey )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "mm1.2e", 0x0000, 0x1000, CRC(9019f1b1) SHA1(0c45f64e39b9a182f6162ab520ced6ef0686466c) )
@ -1365,10 +1249,8 @@ GAME( 1981, hustlerd, hustler, hustler, hustler, scramble_state, hustlerd
GAME( 1981, billiard, hustler, hustler, hustler, scramble_state, billiard, ROT90, "bootleg", "The Billiards (Video Hustler bootleg)", GAME_SUPPORTS_SAVE )
GAME( 1981, hustlerb, hustler, hustlerb, hustler, driver_device, 0, ROT90, "bootleg (Digimatic)", "Video Hustler (bootleg, set 1)", GAME_SUPPORTS_SAVE )
GAME( 1981, hustlerb2, hustler, hustler, hustler, scramble_state, hustlerd, ROT90, "bootleg", "Fatsy Gambler (Video Hustler bootleg)", GAME_SUPPORTS_SAVE )
GAME( 1981, hustlerb3, hustler, hustlerb3, hustlerb3, scramble_state, hustlerd, ROT90, "bootleg (Videotron)", "Video Pool (Video Hustler bootleg)", GAME_SUPPORTS_SAVE )
GAME( 1981, hustlerb4, hustler, hustlerb4, hustler, driver_device, 0, ROT90, "bootleg", "Video Hustler (bootleg, set 2)", GAME_SUPPORTS_SAVE )
GAME( 1982, mimonkey, 0, mimonkey, mimonkey, scramble_state, mimonkey, ROT90, "Universal Video Games", "Mighty Monkey", GAME_SUPPORTS_SAVE )
GAME( 1982, mimonsco, mimonkey, mimonkey, mimonsco, scramble_state, mimonsco, ROT90, "bootleg", "Mighty Monkey (bootleg on Super Cobra hardware)", GAME_SUPPORTS_SAVE )
GAME( 1981, froggerv, frogger, hustlerb3, hustlerb3, scramble_state, hustlerd, ROT90, "bootleg (Videotron / Gamepack)", "Frogger (Videotron bootleg)", GAME_NOT_WORKING )