diff --git a/src/mame/drivers/ertictac.c b/src/mame/drivers/ertictac.c index 5815a1ca0eb..bb9661b70f4 100644 --- a/src/mame/drivers/ertictac.c +++ b/src/mame/drivers/ertictac.c @@ -313,6 +313,29 @@ ROM_START( ertictaca ) /* PCB had sticker printed "092121 EROTICTAC" */ ROM_REGION(0x200000, "vram", ROMREGION_ERASE00) ROM_END +ROM_START( ertictacb ) + ROM_REGION(0x800000, "maincpu", 0 ) + ROM_LOAD32_BYTE( "1.bin", 0x00000, 0x10000, CRC(b8eee693) SHA1(12a7c50040ccbc14bac0beb2938d79322aa01a28) ) + ROM_LOAD32_BYTE( "2.bin", 0x00001, 0x10000, CRC(e22618ef) SHA1(cf6a6ba37400a2b3f4235a02d70cfb6258d52a16) ) + ROM_LOAD32_BYTE( "3.bin", 0x00002, 0x10000, CRC(15683de7) SHA1(b9d478437fe927e05632c6e03b65e5e953fce3a3) ) + ROM_LOAD32_BYTE( "4.bin", 0x00003, 0x10000, CRC(7949e19c) SHA1(af5bf745d4266368b129ca25d623b724f0a23603) ) + ROM_LOAD32_BYTE( "eroti_ver01_-05-", 0x40000, 0x10000, CRC(d08a6c89) SHA1(17b0f5fb2094126146b09d69c91bf413737b0c9e) ) + ROM_LOAD32_BYTE( "eroti_ver01_-06-", 0x40001, 0x10000, CRC(d727bcd8) SHA1(4627f8d4d6e6f323445b3ffcfc0d9c699a9a4f89) ) + ROM_LOAD32_BYTE( "eroti_ver01_-07-", 0x40002, 0x10000, CRC(23b75de2) SHA1(e18f5339ca2dd362298784ff3e5479d780d823f8) ) + ROM_LOAD32_BYTE( "eroti_ver01_-08-", 0x40003, 0x10000, CRC(9448ccdf) SHA1(75fe3c31625f8ba1eedd806b52993e92b1f585b6) ) + ROM_LOAD32_BYTE( "eroti_ver01_-09-", 0x80000, 0x10000, CRC(2bfb312e) SHA1(af7a4a1926c9c3d0b3ad41a4729a17383581c070) ) + ROM_LOAD32_BYTE( "eroti_ver01_-10-", 0x80001, 0x10000, CRC(e7a05477) SHA1(0ec6f94a35b87e1e4529dea194fce1fde9a5b0ad) ) + ROM_LOAD32_BYTE( "eroti_ver01_-11-", 0x80002, 0x10000, CRC(3722591c) SHA1(e0c4075bc4b1c90a6decba3005a1f8298bd61bd1) ) + ROM_LOAD32_BYTE( "eroti_ver01_-12-", 0x80003, 0x10000, CRC(fe022b7e) SHA1(056f7283bc54eff555fd1db91410c020fd905063) ) + ROM_LOAD32_BYTE( "eroti_ver01_-13-", 0xc0000, 0x10000, CRC(83550842) SHA1(0fee78dbf13ba970e0544c48f8939550f9347822) ) + ROM_LOAD32_BYTE( "eroti_ver01_-14-", 0xc0001, 0x10000, CRC(3029567c) SHA1(6d49bea3a3f6f11f4182a602d37b53f1f896c154) ) + ROM_LOAD32_BYTE( "eroti_ver01_-15-", 0xc0002, 0x10000, CRC(500997ab) SHA1(028c7b3ca03141e5b596ab1e2ab98d0ccd9bf93a) ) + ROM_LOAD32_BYTE( "eroti_ver01_-16-", 0xc0003, 0x10000, CRC(70a8d136) SHA1(50b11f5701ed5b79a5d59c9a3c7d5b7528e66a4d) ) + + ROM_REGION(0x200000, "vram", ROMREGION_ERASE00) +ROM_END + + ROM_START( poizone ) ROM_REGION(0x800000, "maincpu", 0 ) ROM_LOAD32_BYTE( "p_son01.bin", 0x00000, 0x10000, CRC(28793c9f) SHA1(2d9f7d667203e745b47cd2cc97501ae961ae1a66) ) @@ -338,4 +361,5 @@ ROM_END GAME( 1990, ertictac, 0, ertictac, ertictac, ertictac_state, ertictac, ROT0, "Sisteme", "Erotictac/Tactic" ,GAME_IMPERFECT_SOUND) GAME( 1990, ertictaca, ertictac, ertictac, ertictac, ertictac_state, ertictac, ROT0, "Sisteme", "Erotictac/Tactic (ver 01)" ,GAME_IMPERFECT_SOUND) +GAME( 1990, ertictacb, ertictac, ertictac, ertictac, ertictac_state, ertictac, ROT0, "Sisteme", "Erotictac/Tactic (set 2)" ,GAME_IMPERFECT_SOUND) GAME( 1991, poizone, 0, ertictac, poizone, ertictac_state, ertictac, ROT0, "Eterna" ,"Poizone" ,GAME_IMPERFECT_SOUND|GAME_IMPERFECT_GRAPHICS) diff --git a/src/mame/drivers/sderby.c b/src/mame/drivers/sderby.c index a6dcb7c205f..38d15f7bca7 100644 --- a/src/mame/drivers/sderby.c +++ b/src/mame/drivers/sderby.c @@ -87,6 +87,22 @@ READ16_MEMBER(sderby_state::sderby_input_r) return 0xffff; } +READ16_MEMBER(sderby_state::sderby2_input_r) +{ + switch (offset) + { + case 0x00 >> 1: + return ioport("IN0")->read(); + case 0x02 >> 1: + return 0xffff; // to avoid game to reset (needs more work) + } + + logerror("sderby_input_r : offset = %x - PC = %06x\n",offset*2,space.device().safe_pc()); + + return 0xffff; +} + + READ16_MEMBER(sderby_state::roulette_input_r) { switch (offset) @@ -292,6 +308,24 @@ static ADDRESS_MAP_START( sderby_map, AS_PROGRAM, 16, sderby_state ) AM_RANGE(0xffc000, 0xffffff) AM_RAM ADDRESS_MAP_END +static ADDRESS_MAP_START( sderby2_map, AS_PROGRAM, 16, sderby_state ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM + AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(sderby_videoram_w) AM_SHARE("videoram") /* bg */ + AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(sderby_md_videoram_w) AM_SHARE("md_videoram") /* mid */ + AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(sderby_fg_videoram_w) AM_SHARE("fg_videoram") /* fg */ + AM_RANGE(0x104000, 0x10400b) AM_WRITE(sderby_scroll_w) + AM_RANGE(0x10400c, 0x10400d) AM_WRITENOP /* ??? - check code at 0x000456 (executed once at startup) */ + AM_RANGE(0x10400e, 0x10400f) AM_WRITENOP /* ??? - check code at 0x000524 (executed once at startup) */ + AM_RANGE(0x200000, 0x200fff) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x308000, 0x30800d) AM_READ(sderby2_input_r) + AM_RANGE(0x308008, 0x308009) AM_WRITE(sderby_out_w) /* output port */ + AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) + AM_RANGE(0x380000, 0x380fff) AM_WRITE(paletteram_RRRRRGGGGGBBBBBx_word_w) AM_SHARE("paletteram") + AM_RANGE(0x300000, 0x300001) AM_WRITENOP /* unknown... write 0x01 in game, and 0x00 on reset */ //MOD + AM_RANGE(0xcf0000, 0xcf07ff) AM_RAM AM_SHARE("nvram") + AM_RANGE(0xcfc000, 0xcfffff) AM_RAM //MOD +ADDRESS_MAP_END + static ADDRESS_MAP_START( luckboom_map, AS_PROGRAM, 16, sderby_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM @@ -378,6 +412,26 @@ static INPUT_PORTS_START( sderby ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END +static INPUT_PORTS_START( sderby2 ) + PORT_START("IN0") /* 0x308000.w */ + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Bet") + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Collect") + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) // Adds n credits depending on settings in service menu + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START1 ) + PORT_SERVICE_NO_TOGGLE(0x1000, IP_ACTIVE_LOW) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // check code at 0x00765e + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + static INPUT_PORTS_START( luckboom ) PORT_START("IN0") /* 0x308000.w */ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) @@ -516,6 +570,31 @@ static MACHINE_CONFIG_START( sderby, sderby_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END +static MACHINE_CONFIG_START( sderby2, sderby_state ) + + MCFG_CPU_ADD("maincpu", M68000, 12000000) + MCFG_CPU_PROGRAM_MAP(sderby2_map) + MCFG_CPU_VBLANK_INT_DRIVER("screen", sderby_state, irq2_line_hold) + + MCFG_NVRAM_ADD_0FILL("nvram") + + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MCFG_SCREEN_SIZE(64*8, 64*8) + MCFG_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1) + MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_sderby) + + MCFG_GFXDECODE(sderby) + MCFG_PALETTE_LENGTH(0x1000) + + MCFG_SPEAKER_STANDARD_MONO("mono") + MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */ + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) +MACHINE_CONFIG_END + + + static MACHINE_CONFIG_START( luckboom, sderby_state ) MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -631,6 +710,23 @@ ROM_START( sderby ) ROM_LOAD( "28.bin", 0x80000, 0x20000, CRC(39ca3b52) SHA1(9a03e73d88a1551cd3cfe616ab71e67dced1272a) ) ROM_END +ROM_START( sderby2 ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ + ROM_LOAD16_BYTE( "22.u16", 0x00000, 0x20000, CRC(5baadc33) SHA1(475843d3f99f5a6aa25bdba75b251ad6be32802f) ) + ROM_LOAD16_BYTE( "23.u15", 0x00001, 0x20000, CRC(04518b8c) SHA1(97598c43c1cb0a757bca70c0a498838144b2302b) ) + + ROM_REGION( 0x080000, "oki", 0 ) /* Samples */ + ROM_LOAD( "274001.u147", 0x00000, 0x80000, CRC(6f9f2f2b) SHA1(9778439979bc21b3e49f0c16353488a33b93c01b) ) + + ROM_REGION( 0x140000, "gfx1", 0 ) /* Sprites */ + ROM_LOAD( "24.u141", 0x000000, 0x40000, CRC(54234f72) SHA1(c2e3e547255174daa9a6acad743c210b92ded385) ) + ROM_LOAD( "25.u142", 0x040000, 0x40000, CRC(1bd98cf7) SHA1(67143a16e2cf01868fac3d8d6d9db423f77d09b9) ) + ROM_LOAD( "26.u143", 0x080000, 0x40000, CRC(21bf2004) SHA1(7f7cbdcd89807c9e8ca64023a0060b18ef9b6536) ) + ROM_LOAD( "27.u144", 0x0c0000, 0x40000, CRC(097e0b27) SHA1(26ea6c0996a62e52241b335be64f46d7586f997a) ) + ROM_LOAD( "28.u145", 0x100000, 0x40000, CRC(580daff7) SHA1(2813faa3509d86ad1f721381fa600f28f8f51e09) ) +ROM_END + + /* Scacco Matto / Space Win Playmark, 1996. @@ -831,6 +927,7 @@ ROM_END /* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS LAYOUT */ GAMEL( 1996, sderby, 0, sderby, sderby, driver_device, 0, ROT0, "Playmark", "Super Derby", 0, layout_sderby ) +GAMEL( 1996, sderby2, sderby, sderby2, sderby2, driver_device, 0, ROT0, "Playmark", "Super Derby (v.10.04)", 0, layout_sderby ) GAMEL( 1996, spacewin, 0, spacewin, spacewin, driver_device, 0, ROT0, "Playmark", "Scacco Matto / Space Win", 0, layout_spacewin ) GAMEL( 1997, croupier, 0, pmroulet, pmroulet, driver_device, 0, ROT0, "Playmark", "Croupier (Playmark Roulette v.20.05)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING, layout_pmroulet ) GAMEL( 1997, croupiera, croupier, pmroulet, pmroulet, driver_device, 0, ROT0, "Playmark", "Croupier (Playmark Roulette v.09.04)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING, layout_pmroulet ) diff --git a/src/mame/includes/sderby.h b/src/mame/includes/sderby.h index cf7f9191d9f..b9961c42931 100644 --- a/src/mame/includes/sderby.h +++ b/src/mame/includes/sderby.h @@ -20,6 +20,7 @@ public: UINT16 m_scroll[6]; DECLARE_READ16_MEMBER(sderby_input_r); + DECLARE_READ16_MEMBER(sderby2_input_r); DECLARE_READ16_MEMBER(roulette_input_r); DECLARE_READ16_MEMBER(rprot_r); DECLARE_WRITE16_MEMBER(rprot_w); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index dfad3194d57..7d7fc431093 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -8966,6 +8966,7 @@ hrdtimes // (c) 1994 hrdtimesa // (c) 1994 drtomy // (c) 1993 no copyright message (1993 on pcb), some code taken from 'Big Karnak' sderby // (c) 1996 +sderby2 // (c) 1996 croupier // (c) 1997 Playmark croupiera // (c) 1997 Playmark spacewin @@ -10209,6 +10210,7 @@ pntnpuzl // Century? trucocl // (c) 1991 Miky SRL ertictac // (c) 1992 Sisteme ertictaca // (c) 1992 Sisteme +ertictacb // (c) 1992 Sisteme poizone // (c) 1990 Sisteme ssfindo // (c) 1999 Icarus ppcar // (c) 1999 Icarus