From bd741103e922d3f3f5dde93f7558fdfa31088a3e Mon Sep 17 00:00:00 2001 From: davidhay Date: Wed, 18 Feb 2009 23:10:21 +0000 Subject: [PATCH] Multifish for reconsideration as the HW is the same era as 'Fever Soccer' which was added in u4. Some of these sets might not be available, they're based off operator manuals, so should be accurate. The sets which are not available will be disabled once it's been firmly established exactly which ones they are I'm not 100% sure. No credit wanted / anonymous submission --- .gitattributes | 1 + src/mame/drivers/multfish.c | 705 ++++++++++++++++++++++++++++++++++++ src/mame/mame.mak | 1 + src/mame/mamedriv.c | 18 + 4 files changed, 725 insertions(+) create mode 100644 src/mame/drivers/multfish.c diff --git a/.gitattributes b/.gitattributes index f26ad527349..daf58713e59 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1768,6 +1768,7 @@ src/mame/drivers/mrjong.c svneol=native#text/plain src/mame/drivers/ms32.c svneol=native#text/plain src/mame/drivers/msisaac.c svneol=native#text/plain src/mame/drivers/mugsmash.c svneol=native#text/plain +src/mame/drivers/multfish.c svneol=native#text/plain src/mame/drivers/multigam.c svneol=native#text/plain src/mame/drivers/munchmo.c svneol=native#text/plain src/mame/drivers/murogem.c svneol=native#text/plain diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c new file mode 100644 index 00000000000..9096f7a4bc7 --- /dev/null +++ b/src/mame/drivers/multfish.c @@ -0,0 +1,705 @@ +/* 'Multifish' hardware + + four ALTERA chips - they are probably video processors + main CPU is z80 for sure, ROM is placed near it + there are banked ROMs 8kb each, consisted of several banks + RAM has E000 address + the sound is PSG - AY3-8910 analog (http://pt.wikipedia.org/wiki/KC89C72) + z80 CPU is complete with indexed registers + video - VGA + + Note, + + Payout doesn't currently work and causes 'Call Attendant' to be displayed + Lamps not hooked up + + To Init the games + + Press 'F2' (Turn Service Mode ON) + Press 'F3' (Reset) + Use 'C' (3 Lines) to move pointer to INIT + press 'M' (Start) to enter INIT menu + hold 'Z' (Bet/Double) for 5 seconds while counter counts down + press 'F2' (Turn Service Mode OFF) + Press 'F3' (Reset) + + RTC not emulated? + Lights not emulated? + Payout not emulated + + +*/ + +// revision information comes from dat files, not all of them can be tested +// for some only MD5 and CRC information is present +#define ALL_REVISIONS 1 + +#include "driver.h" +#include "sound/ay8910.h" +#include "cpu/z80/z80.h" +#include "deprecat.h" + +#define multfish_VIDRAM_SIZE (0x2000*0x10) +#define multfish_BRAM_SIZE (0x2000*0x10) + +static UINT8* multfish_vid; +static UINT8* multfish_bram; + +static int multfish_disp_enable; + +/* Video Part */ +static VIDEO_START(multfish) +{ + multfish_vid = auto_malloc(multfish_VIDRAM_SIZE); + memset(multfish_vid,0x00,multfish_VIDRAM_SIZE); + state_save_register_global_pointer(machine, multfish_vid, multfish_VIDRAM_SIZE); + + multfish_bram = auto_malloc(multfish_BRAM_SIZE); + memset(multfish_bram,0x00,multfish_BRAM_SIZE); + state_save_register_global_pointer(machine, multfish_bram, multfish_BRAM_SIZE); +} + +static VIDEO_UPDATE(multfish) +{ + int y,x,count; + gfx_element* gfx = screen->machine->gfx[0]; + bitmap_fill(bitmap, cliprect, get_black_pen(screen->machine)); + + if (!multfish_disp_enable) return 0; + + /* Draw lower part of static tilemap (low pri tiles) */ + count = 0x0000; + for (y=0;y<64;y++) + { + for (x=0;x<64;x++) + { + int tile, pal; + + tile = multfish_vid[count*2+0] | (multfish_vid[count*2+1] << 8); + pal = multfish_vid[count*2+0+0x1000] | (multfish_vid[count*2+1+0x1000] << 8); + if ((pal & 0x0100)) + { + tile &=0x1fff; + pal &=0x7; + drawgfx(bitmap,gfx,tile,pal,0,0,x*16,y*16,cliprect,TRANSPARENCY_PEN,255); + } + count++; + } + } + + /* Draw scrollable tilemap (used for reels etc.) */ + count = 0x1000; + for (y=0;y<64;y++) + { + for (x=0;x<64;x++) + { + int tile, pal; + int colscroll; + colscroll = (multfish_vid[x*2] | multfish_vid[x*2+1] << 8); + tile = multfish_vid[count*2+0] | (multfish_vid[count*2+1] << 8); + pal = tile>>14; + + tile &=0x1fff; + tile |=0x2000; + drawgfx(bitmap,gfx,tile,pal+8,0,0,x*16,(y*16-colscroll)&0x3ff,cliprect,TRANSPARENCY_PEN,255); + + count++; + + } + } + + /* Draw upper part of static tilemap (high pri tiles) */ + count = 0x0000; + for (y=0;y<64;y++) + { + for (x=0;x<64;x++) + { + int tile, pal; + + tile = multfish_vid[count*2+0] | (multfish_vid[count*2+1] << 8); + pal = multfish_vid[count*2+0+0x1000] | (multfish_vid[count*2+1+0x1000] << 8); + if (!(pal & 0x0100)) + { + tile &=0x1fff; + pal &=0x7; + drawgfx(bitmap,gfx,tile,pal,0,0,x*16,y*16,cliprect,TRANSPARENCY_PEN,255); + } + count++; + } + } + + /* set palette */ + { + int z; + int c = 0x4000; + + for (z=0;z<0x1000;z++) + { + int r,g,b; + int coldat; + + coldat = multfish_vid[c+z*2+0] | (multfish_vid[c+z*2+1] << 8); + + r = ( (coldat &0x001f)>> 0); + g = ( (coldat &0x1f00)>> 8); + b = ( (coldat &0x00e0)>> (5)); + b|= ( (coldat &0xe000)>> (8+5-3)); + + palette_set_color_rgb(screen->machine, z, r<<3, g<<3, b<<2); + + } + } + return 0; +} + +static WRITE8_HANDLER( multfish_vid_w ) +{ + multfish_vid[offset]=data; +} + +static WRITE8_HANDLER( multfish_bank_w ) +{ + memory_set_bank(space->machine, 1, data & 0x0f); +} + +static UINT8 rambk = 0; +static UINT8 otherrambk = 0; + +static READ8_HANDLER( bankedram_r ) +{ + if ((otherrambk & 0x80) == 0x00) + { + return multfish_bram[offset+0x2000*rambk]; + } + else + { + return multfish_vid[offset+0x2000*rambk]; + } + +} + +static WRITE8_HANDLER( bankedram_w ) +{ + if ((otherrambk & 0x80) == 0x00) + { + multfish_bram[offset+0x2000*rambk] = data; + } + else + { + multfish_vid[offset+0x2000*rambk] = data; + } +} + +static WRITE8_HANDLER( multfish_rambank_w ) +{ + rambk = data & 0x0f; + otherrambk = data & 0xf0; +} + + +static READ8_HANDLER( ray_r ) +{ + // the games read the raster beam position as part of the hardware checks.. + // with a 6mhz clock and 640x480 resolution this seems to give the right results. + return video_screen_get_vpos(space->machine->primary_screen); +} + + + +static ADDRESS_MAP_START( multfish_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) + AM_RANGE(0x0000, 0x7fff) AM_WRITE( multfish_vid_w ) + AM_RANGE(0x8000, 0xbfff) AM_READWRITE(SMH_BANK1, SMH_ROM ) + AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) + AM_RANGE(0xe000, 0xffff) AM_READWRITE(bankedram_r, bankedram_w) +ADDRESS_MAP_END + +// According to the self test the 7 user buttons are arranged as +// Bet/Cancel | 1 Line | 3 Lines | 5 Lines | 7 Lines | 9 Lines | Start + + +INPUT_PORTS_START( multfish ) + PORT_START("IN0") + PORT_DIPNAME( 0x01, 0x01, "Key In (35 A)" ) // Key In ( 35 A ) + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) // COIN B (18 B) + PORT_DIPNAME( 0x04, 0x04, "S Reserve (14 B)" ) // S Reserve ( 14 B ) + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Hopper 3 ( 10 B )" ) // Hooper 3 ( 10 B ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("7 Lines") PORT_CODE(KEYCODE_B) + PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) // unused? + + PORT_START("IN1") + PORT_DIPNAME( 0x01, 0x01, "Hopper SW (22 B)" ) + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x02, "BK Door (17 A)" ) + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x04, "P Reserve (13 A)" ) + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Start") PORT_CODE(KEYCODE_M) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN8 ) // BILL 4 (07 A) + PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) // unused? + + + PORT_START("IN2") + PORT_DIPNAME( 0x01, 0x01, "Unused??" ) // unused? + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x02, "Call Att (17 A)" ) + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x04, "S Reserve (13 B)" ) + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Hopper 2 (09 B)" ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("5 Lines") PORT_CODE(KEYCODE_V) + PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) // unused? + + + PORT_START("IN3") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_NAME("Pay Out") PORT_CODE(KEYCODE_D) // not currently working! + PORT_DIPNAME( 0x02, 0x02, "S Reserve (16 B)" ) + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x04, "Ticket (12 B)" ) + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "Hopper 1 (08 B)" ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN5 ) // BILL 1 (04 B) + PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) // unused? + + + PORT_START("IN4") + PORT_DIPNAME( 0x01, 0x01, "S Reserve (35 B)" ) + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN3 ) // COIN C (19 A) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_NAME("Help") PORT_CODE(KEYCODE_S) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("9 Lines") PORT_CODE(KEYCODE_N) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("1 Line") PORT_CODE(KEYCODE_X) + PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) // unused? + + + PORT_START("IN5") + PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN4 ) // COIN D (19 B) + PORT_DIPNAME( 0x04, 0x04, "S Reserve (16 B)" ) + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Bet / Double / Cancel") PORT_CODE(KEYCODE_Z) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN6 ) // BILL 2 (05 A) + PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) // unused? + + PORT_START("IN6") + PORT_DIPNAME( 0x01, 0x01, "Short St (20 A)") + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) // COIN A (18 A) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Max Bet") PORT_CODE(KEYCODE_A) + PORT_DIPNAME( 0x08, 0x08, "Hopper 4 (11 A)" ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("3 Lines") PORT_CODE(KEYCODE_C) + PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) // unused? + + PORT_START("IN7") + PORT_DIPNAME( 0x01, 0x01, "Key Out (21 B)" ) + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x02, "Fr Door (16 A)" ) + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x04, "P Reserve (12 A)" ) + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "P Reserve (11 A)" ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN7 ) // BILL 3 (06 A) + PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) // unused? +INPUT_PORTS_END + + +WRITE8_HANDLER( multfish_f3_w ) +{ + //popmessage("multfish_f3_w %02x",data); +} + + +WRITE8_HANDLER( multfish_f4_w ) +{ + //popmessage("multfish_f4_w %02x",data); // display enable? + multfish_disp_enable = data; +} + +static ADDRESS_MAP_START( multfish_portmap, ADDRESS_SPACE_IO, 8 ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0x10, 0x10) AM_READ(input_port_0_r) + AM_RANGE(0x11, 0x11) AM_READ(input_port_1_r) + AM_RANGE(0x12, 0x12) AM_READ(input_port_2_r) + AM_RANGE(0x13, 0x13) AM_READ(input_port_3_r) + AM_RANGE(0x14, 0x14) AM_READ(input_port_4_r) + AM_RANGE(0x15, 0x15) AM_READ(input_port_5_r) + AM_RANGE(0x16, 0x16) AM_READ(input_port_6_r) + AM_RANGE(0x17, 0x17) AM_READ(input_port_7_r) + + /* Write ports not hooked up yet (lights etc.) */ +// AM_RANGE(0x30, 0x30) AM_WRITE(multfish_port30_w) +// AM_RANGE(0x31, 0x31) AM_WRITE(multfish_port31_w) +// AM_RANGE(0x32, 0x32) AM_WRITE(multfish_port32_w) +// AM_RANGE(0x33, 0x33) AM_WRITE(multfish_port33_w) +// AM_RANGE(0x34, 0x34) AM_WRITE(multfish_port34_w) +// AM_RANGE(0x35, 0x35) AM_WRITE(multfish_port35_w) +// AM_RANGE(0x36, 0x36) AM_WRITE(multfish_port36_w) +// AM_RANGE(0x37, 0x37) AM_WRITE(multfish_watchdog_reset_w) + AM_RANGE(0x38, 0x38) AM_DEVWRITE(SOUND, "ay", ay8910_address_w) + AM_RANGE(0x39, 0x39) AM_DEVWRITE(SOUND, "ay", ay8910_data_w) + AM_RANGE(0x3a, 0x3a) AM_DEVREAD(SOUND, "ay", ay8910_r) + + AM_RANGE(0x90, 0x90) AM_READ(ray_r) + + AM_RANGE(0xe1, 0xe1) AM_WRITE(multfish_bank_w) + AM_RANGE(0xe5, 0xe5) AM_WRITE(multfish_bank_w) + + AM_RANGE(0xf1, 0xf1) AM_WRITE(multfish_rambank_w) + AM_RANGE(0xf3, 0xf3) AM_WRITE(multfish_f3_w) // from 00->01 at startup, irq enable maybe? + AM_RANGE(0xf4, 0xf4) AM_WRITE(multfish_f4_w) // display enable? + + /* mirrors of the rom banking */ + AM_RANGE(0xf8, 0xf8) AM_WRITE(multfish_bank_w) + AM_RANGE(0xf9, 0xf9) AM_WRITE(multfish_bank_w) + AM_RANGE(0xfa, 0xfa) AM_WRITE(multfish_bank_w) + AM_RANGE(0xfb, 0xfb) AM_WRITE(multfish_bank_w) + AM_RANGE(0xfc, 0xfc) AM_WRITE(multfish_bank_w) + AM_RANGE(0xfd, 0xfd) AM_WRITE(multfish_bank_w) + +ADDRESS_MAP_END + + + + +static const gfx_layout tiles16x16_layout = +{ + 16,16, + RGN_FRAC(1,4), + 8, + { RGN_FRAC(2,4)+0, RGN_FRAC(2,4)+1,RGN_FRAC(2,4)+2, RGN_FRAC(2,4)+3,0,1,2,3 }, + { 0,4, + RGN_FRAC(1,4)+0, RGN_FRAC(1,4)+4, + 8, 12, + RGN_FRAC(1,4)+8, RGN_FRAC(1,4)+12, + 16, 20, + RGN_FRAC(1,4)+16, RGN_FRAC(1,4)+20, + 24, 28, + RGN_FRAC(1,4)+24,RGN_FRAC(1,4)+28 }, + { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,8*32,9*32,10*32,11*32,12*32,13*32,14*32,15*32 }, + 8*64 +}; + + + +static GFXDECODE_START( multfish ) + GFXDECODE_ENTRY( "gfx", 0, tiles16x16_layout, 0, 16 ) +GFXDECODE_END + +MACHINE_RESET( multfish ) +{ + memory_configure_bank(machine, 1, 0, 16, memory_region(machine, "main"), 0x4000); + memory_set_bank(machine, 1, 0); +} + +static const ay8910_interface ay8910_config = +{ + AY8910_LEGACY_OUTPUT, + AY8910_DEFAULT_LOADS, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL +}; + + +MACHINE_DRIVER_START( multfish ) + /* basic machine hardware */ + MDRV_CPU_ADD("main", Z80,6000000) /* 6 MHz? */ + MDRV_CPU_PROGRAM_MAP(multfish_map,0) + MDRV_CPU_IO_MAP(multfish_portmap,0) + MDRV_CPU_VBLANK_INT("main",irq0_line_hold) + + MDRV_MACHINE_RESET( multfish ) + /* video hardware */ + MDRV_SCREEN_ADD("main", RASTER) + MDRV_SCREEN_REFRESH_RATE(60) + MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) + MDRV_SCREEN_SIZE(64*16, 32*16) + MDRV_SCREEN_VISIBLE_AREA(17*16, 1024-16*7-1, 1*16, 32*16-1*16-1) + MDRV_GFXDECODE(multfish) + MDRV_PALETTE_LENGTH(0x1000) + + MDRV_NVRAM_HANDLER(generic_0fill) + + MDRV_VIDEO_START(multfish) + MDRV_VIDEO_UPDATE(multfish) + + MDRV_SPEAKER_STANDARD_MONO("mono") + MDRV_SOUND_ADD("ay", AY8910, 6000000/4) + MDRV_SOUND_CONFIG(ay8910_config) + MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) +MACHINE_DRIVER_END + + + +/********************************************************* + Multifish (14 sets) +**********************************************************/ + +#if ALL_REVISIONS +ROM_START( mfish ) // 040316 + ROM_REGION( 0x40000, "main", 0 ) + ROM_LOAD( "mf040316.rom", 0x00000, 0x40000, MD5(66019927201954518261652147b05e43) SHA1(c1f4d1c51632a45b533d19c8b6f63d337d84d9cd) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROM_LOAD( "1", 0x000000, 0x80000, CRC(2f2a7367) SHA1(ce7ee9ca4f374ec61edc3b89d4752f0edb64a910) ) + ROM_LOAD( "2", 0x100000, 0x80000, CRC(606acd73) SHA1(ce5f7b1366dbb16d57fe4b7f395f08725e3cf756) ) + ROM_LOAD( "3", 0x200000, 0x80000, CRC(33759c2a) SHA1(6afcee2e00a27542fc9751702abcc84cd7d3a2a8) ) + ROM_LOAD( "4", 0x300000, 0x80000, CRC(d0053546) SHA1(01c69be0c594947d57648f491904a3b6938a5570) ) + ROM_LOAD( "5", 0x080000, 0x80000, CRC(6f632872) SHA1(949661cb234855a9c86403e9893c5d9f465ddd79) ) + ROM_LOAD( "6", 0x180000, 0x80000, CRC(023c1193) SHA1(98cf2732f9542b0bb3bee324611f6d3143ef1dc4) ) + ROM_LOAD( "7", 0x280000, 0x80000, CRC(9afdc2d3) SHA1(b112fd2005354c9f97d77030bdb6f99d7b5c8050) ) + ROM_LOAD( "8", 0x380000, 0x80000, CRC(29f1a326) SHA1(5e268411cab888c0727aaf8ae7d0b435d2efd189) ) +ROM_END +#endif + +ROM_START( mfish_2 ) // 040308 + ROM_REGION( 0x40000, "main", 0 ) + ROM_LOAD( "mf040308.rom", 0x00000, 0x40000, CRC(adb9c1d9) SHA1(88c69f48766dc7c98a6f03c1a0a4aa63b76560b6) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROM_LOAD( "1", 0x000000, 0x80000, CRC(2f2a7367) SHA1(ce7ee9ca4f374ec61edc3b89d4752f0edb64a910) ) + ROM_LOAD( "2", 0x100000, 0x80000, CRC(606acd73) SHA1(ce5f7b1366dbb16d57fe4b7f395f08725e3cf756) ) + ROM_LOAD( "3", 0x200000, 0x80000, CRC(33759c2a) SHA1(6afcee2e00a27542fc9751702abcc84cd7d3a2a8) ) + ROM_LOAD( "4", 0x300000, 0x80000, CRC(d0053546) SHA1(01c69be0c594947d57648f491904a3b6938a5570) ) + ROM_LOAD( "5", 0x080000, 0x80000, CRC(6f632872) SHA1(949661cb234855a9c86403e9893c5d9f465ddd79) ) + ROM_LOAD( "6", 0x180000, 0x80000, CRC(023c1193) SHA1(98cf2732f9542b0bb3bee324611f6d3143ef1dc4) ) + ROM_LOAD( "7", 0x280000, 0x80000, CRC(9afdc2d3) SHA1(b112fd2005354c9f97d77030bdb6f99d7b5c8050) ) + ROM_LOAD( "8", 0x380000, 0x80000, CRC(29f1a326) SHA1(5e268411cab888c0727aaf8ae7d0b435d2efd189) ) +ROM_END + +ROM_START( mfish_2a ) // 040308 + ROM_REGION( 0x40000, "main", 0 ) + ROM_LOAD( "mf040308_alt.rom", 0x00000, 0x40000, CRC(44537648) SHA1(7bce6085778ff0b21c052ae91703de3b78b8eed0)) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROM_LOAD( "1", 0x000000, 0x80000, CRC(2f2a7367) SHA1(ce7ee9ca4f374ec61edc3b89d4752f0edb64a910) ) + ROM_LOAD( "2", 0x100000, 0x80000, CRC(606acd73) SHA1(ce5f7b1366dbb16d57fe4b7f395f08725e3cf756) ) + ROM_LOAD( "3", 0x200000, 0x80000, CRC(33759c2a) SHA1(6afcee2e00a27542fc9751702abcc84cd7d3a2a8) ) + ROM_LOAD( "4", 0x300000, 0x80000, CRC(d0053546) SHA1(01c69be0c594947d57648f491904a3b6938a5570) ) + ROM_LOAD( "5", 0x080000, 0x80000, CRC(6f632872) SHA1(949661cb234855a9c86403e9893c5d9f465ddd79) ) + ROM_LOAD( "6", 0x180000, 0x80000, CRC(023c1193) SHA1(98cf2732f9542b0bb3bee324611f6d3143ef1dc4) ) + ROM_LOAD( "7", 0x280000, 0x80000, CRC(9afdc2d3) SHA1(b112fd2005354c9f97d77030bdb6f99d7b5c8050) ) + ROM_LOAD( "8", 0x380000, 0x80000, CRC(29f1a326) SHA1(5e268411cab888c0727aaf8ae7d0b435d2efd189) ) +ROM_END + +#if ALL_REVISIONS +ROM_START( mfish_3 ) // 031124 + ROM_REGION( 0x40000, "main", 0 ) + ROM_LOAD( "mf031124.rom", 0x00000, 0x40000, MD5(9cd800719c6e4a2267e3c140467238d3) SHA1(c0d1b541c4b076bbc810ad637acb4a2663a919ba) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROM_LOAD( "1", 0x000000, 0x80000, CRC(2f2a7367) SHA1(ce7ee9ca4f374ec61edc3b89d4752f0edb64a910) ) + ROM_LOAD( "2", 0x100000, 0x80000, CRC(606acd73) SHA1(ce5f7b1366dbb16d57fe4b7f395f08725e3cf756) ) + ROM_LOAD( "3", 0x200000, 0x80000, CRC(33759c2a) SHA1(6afcee2e00a27542fc9751702abcc84cd7d3a2a8) ) + ROM_LOAD( "4", 0x300000, 0x80000, CRC(d0053546) SHA1(01c69be0c594947d57648f491904a3b6938a5570) ) + ROM_LOAD( "5", 0x080000, 0x80000, CRC(6f632872) SHA1(949661cb234855a9c86403e9893c5d9f465ddd79) ) + ROM_LOAD( "6", 0x180000, 0x80000, CRC(023c1193) SHA1(98cf2732f9542b0bb3bee324611f6d3143ef1dc4) ) + ROM_LOAD( "7", 0x280000, 0x80000, CRC(9afdc2d3) SHA1(b112fd2005354c9f97d77030bdb6f99d7b5c8050) ) + ROM_LOAD( "8", 0x380000, 0x80000, CRC(29f1a326) SHA1(5e268411cab888c0727aaf8ae7d0b435d2efd189) ) +ROM_END + +ROM_START( mfish_4 ) // 031117 + ROM_REGION( 0x40000, "main", 0 ) + ROM_LOAD( "mf031117.rom", 0x00000, 0x40000, MD5(531a3e63c46be33a151c06bdd9479655) SHA1(1d244a332af0fb6aa593a246211ff2b6d2c48a59) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROM_LOAD( "1", 0x000000, 0x80000, CRC(2f2a7367) SHA1(ce7ee9ca4f374ec61edc3b89d4752f0edb64a910) ) + ROM_LOAD( "2", 0x100000, 0x80000, CRC(606acd73) SHA1(ce5f7b1366dbb16d57fe4b7f395f08725e3cf756) ) + ROM_LOAD( "3", 0x200000, 0x80000, CRC(33759c2a) SHA1(6afcee2e00a27542fc9751702abcc84cd7d3a2a8) ) + ROM_LOAD( "4", 0x300000, 0x80000, CRC(d0053546) SHA1(01c69be0c594947d57648f491904a3b6938a5570) ) + ROM_LOAD( "5", 0x080000, 0x80000, CRC(6f632872) SHA1(949661cb234855a9c86403e9893c5d9f465ddd79) ) + ROM_LOAD( "6", 0x180000, 0x80000, CRC(023c1193) SHA1(98cf2732f9542b0bb3bee324611f6d3143ef1dc4) ) + ROM_LOAD( "7", 0x280000, 0x80000, CRC(9afdc2d3) SHA1(b112fd2005354c9f97d77030bdb6f99d7b5c8050) ) + ROM_LOAD( "8", 0x380000, 0x80000, CRC(29f1a326) SHA1(5e268411cab888c0727aaf8ae7d0b435d2efd189) ) +ROM_END + +ROM_START( mfish_5 ) // 031026 + ROM_REGION( 0x40000, "main", 0 ) + ROM_LOAD( "mf031026.rom", 0x00000, 0x40000, MD5(a0a31829705ad78786f7c1bd36cee0cf) SHA1(451b390793f89188afe2b6e82fc02b474fb97a7c) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROM_LOAD( "1", 0x000000, 0x80000, CRC(2f2a7367) SHA1(ce7ee9ca4f374ec61edc3b89d4752f0edb64a910) ) + ROM_LOAD( "2", 0x100000, 0x80000, CRC(606acd73) SHA1(ce5f7b1366dbb16d57fe4b7f395f08725e3cf756) ) + ROM_LOAD( "3", 0x200000, 0x80000, CRC(33759c2a) SHA1(6afcee2e00a27542fc9751702abcc84cd7d3a2a8) ) + ROM_LOAD( "4", 0x300000, 0x80000, CRC(d0053546) SHA1(01c69be0c594947d57648f491904a3b6938a5570) ) + ROM_LOAD( "5", 0x080000, 0x80000, CRC(6f632872) SHA1(949661cb234855a9c86403e9893c5d9f465ddd79) ) + ROM_LOAD( "6", 0x180000, 0x80000, CRC(023c1193) SHA1(98cf2732f9542b0bb3bee324611f6d3143ef1dc4) ) + ROM_LOAD( "7", 0x280000, 0x80000, CRC(9afdc2d3) SHA1(b112fd2005354c9f97d77030bdb6f99d7b5c8050) ) + ROM_LOAD( "8", 0x380000, 0x80000, CRC(29f1a326) SHA1(5e268411cab888c0727aaf8ae7d0b435d2efd189) ) +ROM_END + +ROM_START( mfish_6 ) // 030522 + ROM_REGION( 0x40000, "main", 0 ) + ROM_LOAD( "mf030522.rom", 0x00000, 0x40000, MD5(17dc6bf0308a4ac53bdff0ade1216235) SHA1(fa80e12275b960374c84518bcaa1e32d0a4ff437) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROM_LOAD( "1", 0x000000, 0x80000, CRC(2f2a7367) SHA1(ce7ee9ca4f374ec61edc3b89d4752f0edb64a910) ) + ROM_LOAD( "2", 0x100000, 0x80000, CRC(606acd73) SHA1(ce5f7b1366dbb16d57fe4b7f395f08725e3cf756) ) + ROM_LOAD( "3", 0x200000, 0x80000, CRC(33759c2a) SHA1(6afcee2e00a27542fc9751702abcc84cd7d3a2a8) ) + ROM_LOAD( "4", 0x300000, 0x80000, CRC(d0053546) SHA1(01c69be0c594947d57648f491904a3b6938a5570) ) + ROM_LOAD( "5", 0x080000, 0x80000, CRC(6f632872) SHA1(949661cb234855a9c86403e9893c5d9f465ddd79) ) + ROM_LOAD( "6", 0x180000, 0x80000, CRC(023c1193) SHA1(98cf2732f9542b0bb3bee324611f6d3143ef1dc4) ) + ROM_LOAD( "7", 0x280000, 0x80000, CRC(9afdc2d3) SHA1(b112fd2005354c9f97d77030bdb6f99d7b5c8050) ) + ROM_LOAD( "8", 0x380000, 0x80000, CRC(29f1a326) SHA1(5e268411cab888c0727aaf8ae7d0b435d2efd189) ) +ROM_END + +ROM_START( mfish_7 ) // 030511 + ROM_REGION( 0x40000, "main", 0 ) + ROM_LOAD( "mf030511.rom", 0x00000, 0x40000, MD5(a910910ce7963a4385e31769789842f7) SHA1(06b3e3875f036782983e29e305f67a36f78a4f06) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROM_LOAD( "1", 0x000000, 0x80000, CRC(2f2a7367) SHA1(ce7ee9ca4f374ec61edc3b89d4752f0edb64a910) ) + ROM_LOAD( "2", 0x100000, 0x80000, CRC(606acd73) SHA1(ce5f7b1366dbb16d57fe4b7f395f08725e3cf756) ) + ROM_LOAD( "3", 0x200000, 0x80000, CRC(33759c2a) SHA1(6afcee2e00a27542fc9751702abcc84cd7d3a2a8) ) + ROM_LOAD( "4", 0x300000, 0x80000, CRC(d0053546) SHA1(01c69be0c594947d57648f491904a3b6938a5570) ) + ROM_LOAD( "5", 0x080000, 0x80000, CRC(6f632872) SHA1(949661cb234855a9c86403e9893c5d9f465ddd79) ) + ROM_LOAD( "6", 0x180000, 0x80000, CRC(023c1193) SHA1(98cf2732f9542b0bb3bee324611f6d3143ef1dc4) ) + ROM_LOAD( "7", 0x280000, 0x80000, CRC(9afdc2d3) SHA1(b112fd2005354c9f97d77030bdb6f99d7b5c8050) ) + ROM_LOAD( "8", 0x380000, 0x80000, CRC(29f1a326) SHA1(5e268411cab888c0727aaf8ae7d0b435d2efd189) ) +ROM_END + +ROM_START( mfish_8 ) // 030124 + ROM_REGION( 0x40000, "main", 0 ) + ROM_LOAD( "mf030124.rom", 0x00000, 0x40000, MD5(4772becb7c2b3220492c690501e174a7) SHA1(b119b086bad3f6f8acc64a5809ce449800615406) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROM_LOAD( "1", 0x000000, 0x80000, CRC(2f2a7367) SHA1(ce7ee9ca4f374ec61edc3b89d4752f0edb64a910) ) + ROM_LOAD( "2", 0x100000, 0x80000, CRC(606acd73) SHA1(ce5f7b1366dbb16d57fe4b7f395f08725e3cf756) ) + ROM_LOAD( "3", 0x200000, 0x80000, CRC(33759c2a) SHA1(6afcee2e00a27542fc9751702abcc84cd7d3a2a8) ) + ROM_LOAD( "4", 0x300000, 0x80000, CRC(d0053546) SHA1(01c69be0c594947d57648f491904a3b6938a5570) ) + ROM_LOAD( "5", 0x080000, 0x80000, CRC(6f632872) SHA1(949661cb234855a9c86403e9893c5d9f465ddd79) ) + ROM_LOAD( "6", 0x180000, 0x80000, CRC(023c1193) SHA1(98cf2732f9542b0bb3bee324611f6d3143ef1dc4) ) + ROM_LOAD( "7", 0x280000, 0x80000, CRC(9afdc2d3) SHA1(b112fd2005354c9f97d77030bdb6f99d7b5c8050) ) + ROM_LOAD( "8", 0x380000, 0x80000, CRC(29f1a326) SHA1(5e268411cab888c0727aaf8ae7d0b435d2efd189) ) +ROM_END + +ROM_START( mfish_9 ) // 021227 + ROM_REGION( 0x40000, "main", 0 ) + ROM_LOAD( "mf021227.rom", 0x00000, 0x40000, MD5(1bbdff5bd2b89a0c9c474286c55d16db) SHA1(58b74c41a88a781da01dba52744dc74e41deae70) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROM_LOAD( "1", 0x000000, 0x80000, CRC(2f2a7367) SHA1(ce7ee9ca4f374ec61edc3b89d4752f0edb64a910) ) + ROM_LOAD( "2", 0x100000, 0x80000, CRC(606acd73) SHA1(ce5f7b1366dbb16d57fe4b7f395f08725e3cf756) ) + ROM_LOAD( "3", 0x200000, 0x80000, CRC(33759c2a) SHA1(6afcee2e00a27542fc9751702abcc84cd7d3a2a8) ) + ROM_LOAD( "4", 0x300000, 0x80000, CRC(d0053546) SHA1(01c69be0c594947d57648f491904a3b6938a5570) ) + ROM_LOAD( "5", 0x080000, 0x80000, CRC(6f632872) SHA1(949661cb234855a9c86403e9893c5d9f465ddd79) ) + ROM_LOAD( "6", 0x180000, 0x80000, CRC(023c1193) SHA1(98cf2732f9542b0bb3bee324611f6d3143ef1dc4) ) + ROM_LOAD( "7", 0x280000, 0x80000, CRC(9afdc2d3) SHA1(b112fd2005354c9f97d77030bdb6f99d7b5c8050) ) + ROM_LOAD( "8", 0x380000, 0x80000, CRC(29f1a326) SHA1(5e268411cab888c0727aaf8ae7d0b435d2efd189) ) +ROM_END + +ROM_START( mfish_10 ) // 021219 + ROM_REGION( 0x40000, "main", 0 ) + ROM_LOAD( "mf021219.rom", 0x00000, 0x40000, MD5(c8810d803d320d9fefa46588c8ef28c0) SHA1(887d456b2ba89560329457d9eaea26fb72223a38) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROM_LOAD( "1", 0x000000, 0x80000, CRC(2f2a7367) SHA1(ce7ee9ca4f374ec61edc3b89d4752f0edb64a910) ) + ROM_LOAD( "2", 0x100000, 0x80000, CRC(606acd73) SHA1(ce5f7b1366dbb16d57fe4b7f395f08725e3cf756) ) + ROM_LOAD( "3", 0x200000, 0x80000, CRC(33759c2a) SHA1(6afcee2e00a27542fc9751702abcc84cd7d3a2a8) ) + ROM_LOAD( "4", 0x300000, 0x80000, CRC(d0053546) SHA1(01c69be0c594947d57648f491904a3b6938a5570) ) + ROM_LOAD( "5", 0x080000, 0x80000, CRC(6f632872) SHA1(949661cb234855a9c86403e9893c5d9f465ddd79) ) + ROM_LOAD( "6", 0x180000, 0x80000, CRC(023c1193) SHA1(98cf2732f9542b0bb3bee324611f6d3143ef1dc4) ) + ROM_LOAD( "7", 0x280000, 0x80000, CRC(9afdc2d3) SHA1(b112fd2005354c9f97d77030bdb6f99d7b5c8050) ) + ROM_LOAD( "8", 0x380000, 0x80000, CRC(29f1a326) SHA1(5e268411cab888c0727aaf8ae7d0b435d2efd189) ) +ROM_END + +ROM_START( mfish_11 ) // 021124 + ROM_REGION( 0x40000, "main", 0 ) + ROM_LOAD( "mf021124.rom", 0x00000, 0x40000, MD5(a3bfe235ca1d2efa51cc55465a8161e4) SHA1(ea132f68e9c09c40369d4cc02c670ee6e26bdcbe) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROM_LOAD( "1", 0x000000, 0x80000, CRC(2f2a7367) SHA1(ce7ee9ca4f374ec61edc3b89d4752f0edb64a910) ) + ROM_LOAD( "2", 0x100000, 0x80000, CRC(606acd73) SHA1(ce5f7b1366dbb16d57fe4b7f395f08725e3cf756) ) + ROM_LOAD( "3", 0x200000, 0x80000, CRC(33759c2a) SHA1(6afcee2e00a27542fc9751702abcc84cd7d3a2a8) ) + ROM_LOAD( "4", 0x300000, 0x80000, CRC(d0053546) SHA1(01c69be0c594947d57648f491904a3b6938a5570) ) + ROM_LOAD( "5", 0x080000, 0x80000, CRC(6f632872) SHA1(949661cb234855a9c86403e9893c5d9f465ddd79) ) + ROM_LOAD( "6", 0x180000, 0x80000, CRC(023c1193) SHA1(98cf2732f9542b0bb3bee324611f6d3143ef1dc4) ) + ROM_LOAD( "7", 0x280000, 0x80000, CRC(9afdc2d3) SHA1(b112fd2005354c9f97d77030bdb6f99d7b5c8050) ) + ROM_LOAD( "8", 0x380000, 0x80000, CRC(29f1a326) SHA1(5e268411cab888c0727aaf8ae7d0b435d2efd189) ) +ROM_END + +ROM_START( mfish_12 ) // 021121 + ROM_REGION( 0x40000, "main", 0 ) + ROM_LOAD( "mf021121.rom", 0x00000, 0x40000, MD5(727dc01459f6745caa2b19fbd4432055) SHA1(87a1fb81330cf4b66e17702c22fda694ebff58eb) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROM_LOAD( "1", 0x000000, 0x80000, CRC(2f2a7367) SHA1(ce7ee9ca4f374ec61edc3b89d4752f0edb64a910) ) + ROM_LOAD( "2", 0x100000, 0x80000, CRC(606acd73) SHA1(ce5f7b1366dbb16d57fe4b7f395f08725e3cf756) ) + ROM_LOAD( "3", 0x200000, 0x80000, CRC(33759c2a) SHA1(6afcee2e00a27542fc9751702abcc84cd7d3a2a8) ) + ROM_LOAD( "4", 0x300000, 0x80000, CRC(d0053546) SHA1(01c69be0c594947d57648f491904a3b6938a5570) ) + ROM_LOAD( "5", 0x080000, 0x80000, CRC(6f632872) SHA1(949661cb234855a9c86403e9893c5d9f465ddd79) ) + ROM_LOAD( "6", 0x180000, 0x80000, CRC(023c1193) SHA1(98cf2732f9542b0bb3bee324611f6d3143ef1dc4) ) + ROM_LOAD( "7", 0x280000, 0x80000, CRC(9afdc2d3) SHA1(b112fd2005354c9f97d77030bdb6f99d7b5c8050) ) + ROM_LOAD( "8", 0x380000, 0x80000, CRC(29f1a326) SHA1(5e268411cab888c0727aaf8ae7d0b435d2efd189) ) +ROM_END + +ROM_START( mfish_13 ) // 021120 + ROM_REGION( 0x40000, "main", 0 ) + ROM_LOAD( "mf021120.rom", 0x00000, 0x40000, MD5(6021e2bfa67abdfc0beb7f291fdc9d9c) SHA1(eb7eb5aae00a77edcf328f460970eb180d86d058) ) + + ROM_REGION( 0x400000, "gfx", 0 ) + ROM_LOAD( "1", 0x000000, 0x80000, CRC(2f2a7367) SHA1(ce7ee9ca4f374ec61edc3b89d4752f0edb64a910) ) + ROM_LOAD( "2", 0x100000, 0x80000, CRC(606acd73) SHA1(ce5f7b1366dbb16d57fe4b7f395f08725e3cf756) ) + ROM_LOAD( "3", 0x200000, 0x80000, CRC(33759c2a) SHA1(6afcee2e00a27542fc9751702abcc84cd7d3a2a8) ) + ROM_LOAD( "4", 0x300000, 0x80000, CRC(d0053546) SHA1(01c69be0c594947d57648f491904a3b6938a5570) ) + ROM_LOAD( "5", 0x080000, 0x80000, CRC(6f632872) SHA1(949661cb234855a9c86403e9893c5d9f465ddd79) ) + ROM_LOAD( "6", 0x180000, 0x80000, CRC(023c1193) SHA1(98cf2732f9542b0bb3bee324611f6d3143ef1dc4) ) + ROM_LOAD( "7", 0x280000, 0x80000, CRC(9afdc2d3) SHA1(b112fd2005354c9f97d77030bdb6f99d7b5c8050) ) + ROM_LOAD( "8", 0x380000, 0x80000, CRC(29f1a326) SHA1(5e268411cab888c0727aaf8ae7d0b435d2efd189) ) +ROM_END +#endif + +#if ALL_REVISIONS /* Multifish sets verified against dat */ +GAME( 2004, mfish, 0, multfish, multfish, 0, ROT0, "Igro", "Multi Fish (040316)", 0 ) +GAME( 2004, mfish_2, mfish, multfish, multfish, 0, ROT0, "Igro", "Multi Fish (040308, set 1)", 0 ) +GAME( 2004, mfish_2a, mfish, multfish, multfish, 0, ROT0, "Igro", "Multi Fish (040308, set 2, hack?)", 0 ) +GAME( 2003, mfish_3, mfish, multfish, multfish, 0, ROT0, "Igro", "Multi Fish (031124)", 0 ) +GAME( 2003, mfish_4, mfish, multfish, multfish, 0, ROT0, "Igro", "Multi Fish (031117)", 0 ) +GAME( 2003, mfish_5, mfish, multfish, multfish, 0, ROT0, "Igro", "Multi Fish (031026)", 0 ) +GAME( 2003, mfish_6, mfish, multfish, multfish, 0, ROT0, "Igro", "Multi Fish (030522)", 0 ) +GAME( 2003, mfish_7, mfish, multfish, multfish, 0, ROT0, "Igro", "Multi Fish (030511)", 0 ) +GAME( 2003, mfish_8, mfish, multfish, multfish, 0, ROT0, "Igro", "Multi Fish (030124)", 0 ) +GAME( 2002, mfish_9, mfish, multfish, multfish, 0, ROT0, "Igro", "Multi Fish (021227)", 0 ) +GAME( 2002, mfish_10, mfish, multfish, multfish, 0, ROT0, "Igro", "Multi Fish (021219)", 0 ) +GAME( 2002, mfish_11, mfish, multfish, multfish, 0, ROT0, "Igro", "Multi Fish (021124)", 0 ) +GAME( 2002, mfish_12, mfish, multfish, multfish, 0, ROT0, "Igro", "Multi Fish (021121)", 0 ) +GAME( 2002, mfish_13, mfish, multfish, multfish, 0, ROT0, "Igro", "Multi Fish (021120)", 0 ) +#else /* Multifish sets for which SHA1 information is available */ +GAME( 2004, mfish_2, 0, multfish, multfish, 0, ROT0, "Igro", "Multi Fish (040308, set 1)", 0 ) +GAME( 2004, mfish_2a, mfish_2, multfish, multfish, 0, ROT0, "Igro", "Multi Fish (040308, set 2, hack?)", 0 ) +#endif + + + + + diff --git a/src/mame/mame.mak b/src/mame/mame.mak index d54b8ed059a..34cbc01ba76 100644 --- a/src/mame/mame.mak +++ b/src/mame/mame.mak @@ -1685,6 +1685,7 @@ $(MAMEOBJ)/misc.a: \ $(DRIVERS)/hikaru.o \ $(DRIVERS)/cb2001.o \ $(DRIVERS)/sfbonus.o \ + $(DRIVERS)/multfish.o \ #------------------------------------------------- # layout dependencies diff --git a/src/mame/mamedriv.c b/src/mame/mamedriv.c index 19a155510a7..b19b5eed6f9 100644 --- a/src/mame/mamedriv.c +++ b/src/mame/mamedriv.c @@ -8830,6 +8830,24 @@ Other Sun games /* Sanki Denshi Kogyo */ DRIVER( pachifev ) /* (c) 1983? */ + /* Igro */ + DRIVER( mfish ) + DRIVER( mfish_2 ) + DRIVER( mfish_2a ) + DRIVER( mfish_3 ) + DRIVER( mfish_4 ) + DRIVER( mfish_5 ) + DRIVER( mfish_6 ) + DRIVER( mfish_7 ) + DRIVER( mfish_8 ) + DRIVER( mfish_9 ) + DRIVER( mfish_10 ) + DRIVER( mfish_11 ) + DRIVER( mfish_12 ) + DRIVER( mfish_13 ) + + + /* Drivers below are mechanical games, usually with no video display, requiring external artwork to function. These are currently mostly 'fruit machine' style games, although this may later be extended to system logic emulation for pinball machiens.