New clones

----------
Cherry Bonus III (alt) [David Haywood]

New non-working
---------------
Super Cherry Master / New Cherry Gold '99 [David Haywood]
Super Cherry Master / Super Cherry Gold [David Haywood]
Super Cherry Master / Grand Cherry Master [David Haywood]
This commit is contained in:
Aaron Giles 2009-05-28 15:09:52 +00:00
parent 0c0affd00e
commit 4df2ea5003
2 changed files with 238 additions and 1 deletions

View File

@ -12,6 +12,9 @@
Driver by Mirko Buffoni.
Additional Work: David Haywood & Roberto Fresca.
The vast majority of the sets in here are probably bootlegs and hacks
hence the slightly different PCBs, rom layouts, slightly hacked program roms
etc.
****************************************************************************
@ -195,7 +198,7 @@ static WRITE8_HANDLER( ncb3_port81_w )
// popmessage("ncb3_port81_w %02x\n",data);
}
// where is colour bank for 'all blue' in attract?
static ADDRESS_MAP_START( ncb3_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xb7ff) AM_ROM
AM_RANGE(0xb800, 0xbfff) AM_RAM AM_BASE(&nvram) AM_SIZE(&nvram_size)
@ -211,7 +214,9 @@ static ADDRESS_MAP_START( ncb3_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xf800, 0xf803) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) /* Input Ports */
AM_RANGE(0xf810, 0xf813) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) /* Input Ports */
AM_RANGE(0xf822, 0xf822) AM_WRITE(goldstar_fa00_w) // hack (connected to ppi output port?, needed for colour banking)
AM_RANGE(0xf820, 0xf823) AM_DEVREADWRITE("ppi8255_2", ppi8255_r, ppi8255_w) /* Input/Output Ports */
AM_RANGE(0xf830, 0xf830) AM_DEVREADWRITE("ay", ay8910_r, ay8910_data_w)
AM_RANGE(0xf840, 0xf840) AM_DEVWRITE("ay", ay8910_address_w)
// AM_RANGE(0xf850, 0xf850) AM_WRITE(ncb3_p1_flip_w) // need flip?
@ -449,6 +454,15 @@ static ADDRESS_MAP_START( ladylinr_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( unkch_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xc000, 0xc1ff) AM_READWRITE(SMH_RAM,paletteram_xBBBBBGGGGGRRRRR_split1_w) AM_BASE(&paletteram)
AM_RANGE(0xc800, 0xc9ff) AM_READWRITE(SMH_RAM,paletteram_xBBBBBGGGGGRRRRR_split2_w) AM_BASE(&paletteram_2)
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE(&nvram) AM_SIZE(&nvram_size)
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
static INPUT_PORTS_START( cmv801 )
PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
@ -4193,6 +4207,62 @@ static GFXDECODE_START( nfm )
GFXDECODE_ENTRY( "reelgfx", 0, tiles8x32_4bpp_layout, 0, 16 )
GFXDECODE_END
static const gfx_layout tiles8x8x3_miss1bpp_layout =
{
8,8,
RGN_FRAC(1,1),
3,
{ 1,2,3 },
{ 8,12,0,4,24,28,16,20 },
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
8*32
};
static const gfx_layout tiles8x8x4alt_layout =
{
8,8,
RGN_FRAC(1,1),
4,
{ 0, 1,2,3 },
{ 4,0,12,8,20,16,28,24 },
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
8*32
};
static const gfx_layout tiles8x32x4alt2_layout =
{
8,32,
RGN_FRAC(1,1),
4,
{ 0, 1,2,3 },
{ 4,0,12,8,20,16,28,24 },
{ STEP32(0,32) },
32*32
};
static GFXDECODE_START( unkch )
GFXDECODE_ENTRY( "gfx1", 0, tiles8x8x4alt_layout, 0, 16 )
GFXDECODE_ENTRY( "gfx2", 0, tiles8x32x4alt2_layout, 128, 8 )
GFXDECODE_END
static const gfx_layout tilescherrys_layout =
{
8,32,
RGN_FRAC(1,1),
4,
{ 3,2,1,0 },
{ 8,12,0,4,24,28,16,20 },
{ STEP32(0,32) },
32*32
};
static GFXDECODE_START(cherrys )
GFXDECODE_ENTRY( "gfx1", 0, tiles8x8x3_miss1bpp_layout, 0, 16 )
GFXDECODE_ENTRY( "gfx2", 0, tilescherrys_layout, 128, 8 )
GFXDECODE_END
/*************************************
* PPI 8255 (x3) Interfaces *
@ -4999,6 +5069,56 @@ static MACHINE_DRIVER_START( nfm )
MACHINE_DRIVER_END
VIDEO_START( unkch )
{
}
VIDEO_UPDATE( unkch )
{
return 0;
}
static MACHINE_DRIVER_START( unkch )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, CPU_CLOCK)
MDRV_CPU_PROGRAM_MAP(unkch_map)
//MDRV_CPU_IO_MAP(ncb3_readwriteport)
//MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse)
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
/* video hardware */
MDRV_SCREEN_ADD("screen", RASTER)
MDRV_SCREEN_REFRESH_RATE(60)
// MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MDRV_SCREEN_SIZE(64*8, 32*8)
MDRV_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
MDRV_GFXDECODE(unkch)
MDRV_PALETTE_LENGTH(512)
//MDRV_NVRAM_HANDLER(goldstar)
MDRV_VIDEO_START(unkch)
MDRV_VIDEO_UPDATE(unkch)
/* sound hardware */
MDRV_SPEAKER_STANDARD_MONO("mono")
MDRV_SOUND_ADD("ay", AY8910, AY_CLOCK)
MDRV_SOUND_CONFIG(ay8910_config)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( cherrys )
MDRV_IMPORT_FROM(ncb3)
MDRV_GFXDECODE(cherrys)
MACHINE_DRIVER_END
/***************************************************************************
Game driver(s)
@ -5257,6 +5377,28 @@ ROM_START( cb3a )
ROM_END
ROM_START( cb3b )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "adatabin.bin", 0x00000, 0x10000, CRC(db583c1b) SHA1(ea733e625922d6064ee4d8ceee4acfa6c1c7337e) )
ROM_REGION( 0x20000, "gfx1", ROMREGION_DISPOSE )
ROM_LOAD( "adatabin_2.bin", 0x00000, 0x10000, CRC(48fd96fb) SHA1(193ed2be51555af80a9f0478139f28963e9d0c5e) )
ROM_LOAD( "adatabin_3.bin", 0x10000, 0x10000, CRC(010462df) SHA1(53dd3060097f964c516d1cc5be2403a9bd5ee434) )
ROM_REGION( 0x08000, "gfx2", ROMREGION_DISPOSE )
ROM_LOAD( "adatabin_4.bin", 0x00000, 0x08000, CRC(3cb4642a) SHA1(8db03c0227836d988e99f6fe4719d871ea3749ca) )
ROM_REGION( 0x0200, "proms", ROMREGION_DISPOSE ) /* PROM from chrygld - wasn't in this set, is it correct?, none of the other proms have the colours? */
ROM_LOAD( "82s147.u2", 0x00000, 0x0200, BAD_DUMP CRC(5c8f2b8f) SHA1(67d2121e75813dd85d83858c5fc5ec6ad9cc2a7d) )
ROM_REGION( 0x0200, "proms2", ROMREGION_DISPOSE ) /* other roms */
ROM_LOAD( "adatabin_1.bin", 0x00000, 0x020, CRC(87dbc339) SHA1(e5c67bc29612c8ab93857639e46608a814d471f5) )
ROM_LOAD( "adatabin_5.bin", 0x00000, 0x180, CRC(ad267b0c) SHA1(a4cfec15ae0cde7d4fb8c278e977995680779058) )
ROM_LOAD( "adatabin_6.bin", 0x00000, 0x010, CRC(f3d9ed7a) SHA1(594fef6323530f68c7303dcdea77b44c331e5113) )
ROM_LOAD( "adatabin_0.bin", 0x00000, 0x100, CRC(f566e5e0) SHA1(754f04521b9eb73b34fe3de07e8f3679d1034870) )
ROM_END
ROM_START( cmv801 )
ROM_REGION( 0x10000, "maincpu", 0 )
@ -7090,6 +7232,52 @@ ROM_START( nfm )
ROM_END
ROM_START( unkch1 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "u6.bin", 0x0000, 0x10000, CRC(30309996) SHA1(290f35f587fdf78dcb4f09403c510deec533c9c2) )
ROM_REGION( 0x20000, "gfx1", 0 )
ROM_LOAD( "u29.bin", 0x00000, 0x20000, CRC(6db245a1) SHA1(e9f85ba29b0af483eae6f999f49f1e431d9d2e27) )
ROM_REGION( 0x40000, "gfx2", 0 )
ROM_LOAD( "u41.bin", 0x00000, 0x40000, CRC(b2bca15d) SHA1(57747c9c05e5ab54e40cbded2e420dfbfc929ce5) )
ROM_END
ROM_START( unkch2 ) // only gfx2 differs from unkch1
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "u6.bin", 0x0000, 0x10000, CRC(30309996) SHA1(290f35f587fdf78dcb4f09403c510deec533c9c2) )
ROM_REGION( 0x20000, "gfx1", 0 )
ROM_LOAD( "u29.bin", 0x00000, 0x20000, CRC(6db245a1) SHA1(e9f85ba29b0af483eae6f999f49f1e431d9d2e27) )
ROM_REGION( 0x40000, "gfx2", 0 )
ROM_LOAD( "u41.1", 0x00000, 0x40000, CRC(725b48c7) SHA1(2f21c33fb7d23ad9411e926130a65b75029b9112) )
ROM_END
ROM_START( unkch3 ) // gfx2 is the same as unkch1, others differ
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "u6.3", 0x0000, 0x10000, CRC(902f9e42) SHA1(ac5843089748d457f70ea52d15285a0ccda705ad) )
ROM_REGION( 0x20000, "gfx1", 0 )
ROM_LOAD( "u29.3", 0x00000, 0x20000, CRC(546929e6) SHA1(f97fe5687f8776f0abe68962a0246c9bbeb6acd1) )
ROM_REGION( 0x40000, "gfx2", 0 )
ROM_LOAD( "u41.bin", 0x00000, 0x40000, CRC(b2bca15d) SHA1(57747c9c05e5ab54e40cbded2e420dfbfc929ce5) )
ROM_END
ROM_START( unkch4 ) // all roms unique
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "u6.4", 0x0000, 0x10000, CRC(eb191efa) SHA1(3004f26f9af7633df572f609647716cc4ac75990) )
ROM_REGION( 0x20000, "gfx1", 0 )
ROM_LOAD( "u29.4", 0x00000, 0x20000, CRC(eaec0034) SHA1(6b2d3922873979eafcd4c71c52017263482b82ab) )
ROM_REGION( 0x40000, "gfx2", 0 )
ROM_LOAD( "u41.4", 0x00000, 0x40000, CRC(ef586512) SHA1(a720e40903dd04b2c498efad40d583618596e048) )
ROM_END
static DRIVER_INIT(goldstar)
{
int A;
@ -7667,7 +7855,42 @@ static DRIVER_INIT( match133 )
memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_IO), 0x1a, 0x1a, 0, 0, fixedvale4_r);
}
DRIVER_INIT(cherrys)
{
int i;
UINT8 *ROM = memory_region(machine, "maincpu");
unsigned char rawData[256] = {
0xCC, 0xCD, 0xCE, 0xCF, 0xC8, 0xC9, 0xCA, 0xCB, 0xC4, 0xC5, 0xC6, 0xC7,
0xC0, 0xC1, 0xC2, 0xC3, 0xDC, 0xDD, 0xDE, 0xDF, 0xD8, 0xD9, 0xDA, 0xDB,
0xD4, 0xD5, 0xD6, 0xD7, 0xD0, 0xD1, 0xD2, 0xD3, 0xEC, 0xED, 0xEE, 0xEF,
0xE8, 0xE9, 0xEA, 0xEB, 0xE4, 0xE5, 0xE6, 0xE7, 0xE0, 0xE1, 0xE2, 0xE3,
0xFC, 0xFD, 0xFE, 0xFF, 0xF8, 0xF9, 0xFA, 0xFB, 0xF4, 0xF5, 0xF6, 0xF7,
0xF0, 0xF1, 0xF2, 0xF3, 0x8C, 0x8D, 0x8E, 0x8F, 0x88, 0x89, 0x8A, 0x8B,
0x84, 0x85, 0x86, 0x87, 0x80, 0x81, 0x82, 0x83, 0x9C, 0x9D, 0x9E, 0x9F,
0x98, 0x99, 0x9A, 0x9B, 0x94, 0x95, 0x96, 0x97, 0x90, 0x91, 0x92, 0x93,
0xAC, 0xAD, 0xAE, 0xAF, 0xA8, 0xA9, 0xAA, 0xAB, 0xA4, 0xA5, 0xA6, 0xA7,
0xA0, 0xA1, 0xA2, 0xA3, 0xBC, 0xBD, 0xBE, 0xBF, 0xB8, 0xB9, 0xBA, 0xBB,
0xB4, 0xB5, 0xB6, 0xB7, 0xB0, 0xB1, 0xB2, 0xB3, 0x4C, 0x4D, 0x4E, 0x4F,
0x48, 0x49, 0x4A, 0x4B, 0x44, 0x45, 0x46, 0x47, 0x40, 0x41, 0x42, 0x43,
0x5C, 0x5D, 0x5E, 0x5F, 0x58, 0x59, 0x5A, 0x5B, 0x54, 0x55, 0x56, 0x57,
0x50, 0x51, 0x52, 0x53, 0x6C, 0x6D, 0x6E, 0x6F, 0x68, 0x69, 0x6A, 0x6B,
0x64, 0x65, 0x66, 0x67, 0x60, 0x61, 0x62, 0x63, 0x7C, 0x7D, 0x7E, 0x7F,
0x78, 0x79, 0x7A, 0x7B, 0x74, 0x75, 0x76, 0x77, 0x70, 0x71, 0x72, 0x73,
0x0C, 0x0D, 0x0E, 0x0F, 0x08, 0x09, 0x0A, 0x0B, 0x04, 0x05, 0x06, 0x07,
0x00, 0x01, 0x02, 0x03, 0x1C, 0x1D, 0x1E, 0x1F, 0x18, 0x19, 0x1A, 0x1B,
0x14, 0x15, 0x16, 0x17, 0x10, 0x11, 0x12, 0x13, 0x2C, 0x2D, 0x2E, 0x2F,
0x28, 0x29, 0x2A, 0x2B, 0x24, 0x25, 0x26, 0x27, 0x20, 0x21, 0x22, 0x23,
0x3C, 0x3D, 0x3E, 0x3F, 0x38, 0x39, 0x3A, 0x3B, 0x34, 0x35, 0x36, 0x37,
0x30, 0x31, 0x32, 0x33
};
for (i = 0;i < 0x10000;i++)
{
ROM[i] = ROM[i] ^ rawData[i&0xff];
}
}
/*********************************************
@ -7685,6 +7908,7 @@ GAME( 199?, chry10, 0, chrygld, chry10, chry10, ROT0, "bootleg",
GAME( 199?, ncb3, 0, ncb3, ncb3, 0, ROT0, "Dyna", "Cherry Bonus III (ver.1.40, set 1)", 0 )
GAME( 199?, cb3a, ncb3, ncb3, cb3a, 0, ROT0, "Dyna", "Cherry Bonus III (ver.1.40, set 2)", 0 )
GAME( 199?, cb3, ncb3, ncb3, ncb3, cb3, ROT0, "Dyna", "Cherry Bonus III (ver.1.40, encrypted)", 0 )
GAME( 199?, cb3b, ncb3, cherrys, ncb3, cherrys, ROT0, "Dyna", "Cherry Bonus III (alt)", 0 )
// cherry master hardware has a rather different mem map, but is basically the same
GAME( 198?, cmv801, 0, cm, cmv801, cm, ROT0, "Corsica", "Cherry Master (Corsica, ver.8.01)", 0 ) /* says ED-96 where the manufacturer is on some games.. */
@ -7745,6 +7969,14 @@ GAME( 2003, carb2003, nfb96, amcoe2, nfb96bl, 0, ROT0, "bootleg"
GAME( 2003, nfm, 0, nfm, nfb96bl, 0, ROT0, "Ming-Yang Electronic", "New Fruit Machine (Ming-Yang Electronic)", GAME_NOT_WORKING )
// these have 'cherry 1994' in the program roms, but also "Super Cherry / New Cherry Gold '99" probably hacks of a 1994 version of Cherry Bonus / Cherry Master (Super Cherry Master?)
GAME( 1999, unkch1, 0, unkch, ncb3, 0, ROT0, "bootleg", "Super Cherry Master / New Cherry Gold '99 (set 1)", GAME_NOT_WORKING )
GAME( 1999, unkch2, unkch1, unkch, ncb3, 0, ROT0, "bootleg", "Super Cherry Master / Super Cherry Gold", GAME_NOT_WORKING )
GAME( 1999, unkch3, unkch1, unkch, ncb3, 0, ROT0, "bootleg", "Super Cherry Master / New Cherry Gold '99 (set 2)", GAME_NOT_WORKING )
GAME( 1999, unkch4, unkch1, unkch, ncb3, 0, ROT0, "bootleg", "Super Cherry Master / Grand Cherry Master", GAME_NOT_WORKING )
/* possible stealth sets:
- cmv4a ---> see the 1fxx zone. put a bp in 1f9f to see the loop.

View File

@ -9060,6 +9060,7 @@ Other Sun games
DRIVER( ncb3 ) /* (c) 199? Dyna Electronics */
DRIVER( cb3a ) /* (c) 199? Dyna Electronics */
DRIVER( cb3 ) /* (c) 199? Dyna Electronics */
DRIVER( cb3b ) /* (c) 199? Dyna Electronics */
DRIVER( cmv801 ) /* (c) 198? Corsica */
DRIVER( cmv4 ) /* (c) 1992 Dyna Electronics */
DRIVER( cmv4a ) /* (c) 1992 Dyna Electronics */
@ -9121,6 +9122,10 @@ Other Sun games
DRIVER( carb2002 ) /* bootleg */
DRIVER( carb2003 ) /* bootleg */
DRIVER( nfm ) /* bootleg */
DRIVER( unkch1 ) /* bootleg */
DRIVER( unkch2 ) /* bootleg */
DRIVER( unkch3 ) /* bootleg */
DRIVER( unkch4 ) /* bootleg */
DRIVER( ladylinr ) /* (c) 198? TAB Austria */
DRIVER( kkojnoli ) /* 198? south korean hack */