diff --git a/.gitattributes b/.gitattributes index e88c6347600..242fa608a84 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1470,6 +1470,7 @@ src/mame/drivers/cultures.c svneol=native#text/plain src/mame/drivers/cvs.c svneol=native#text/plain src/mame/drivers/cyberbal.c svneol=native#text/plain src/mame/drivers/cybertnk.c svneol=native#text/plain +src/mame/drivers/cyclemb.c svneol=native#text/plain src/mame/drivers/d9final.c svneol=native#text/plain src/mame/drivers/dacholer.c svneol=native#text/plain src/mame/drivers/dambustr.c svneol=native#text/plain diff --git a/src/mame/drivers/cyclemb.c b/src/mame/drivers/cyclemb.c new file mode 100644 index 00000000000..adb6cda874a --- /dev/null +++ b/src/mame/drivers/cyclemb.c @@ -0,0 +1,247 @@ +/*************************************************************************** +Cycle Mahbou +(c)1984 Taito/Seta + +---------------------------------------- +Top +P1-002A +---------------------------------------- +P0_20.3D [53e3a36e] +P0_21.3E [a7dab6d8] + + +---------------------------------------- +Bottom +P0-001A +CPU :Z80A x2 +OSC :18.000MHz +Other:AP-001,AP-004,AP-005,AP-006,P7,P8,P9 +---------------------------------------- +P0_1.1A [a1588264] +P0_2.1B [04141837] +P0_3.1C [a9dd4b22] +P0_4.1E [456a30df] +P0_5.1F [a3b9c297] +P0_6.1H [ec76a0a6] +P0_7.1K [6507d23f] +P0_10.1N [a98415db] +P0_11.1R [626556fe] +P0_12.1S [1e08902c] +P0_13.1T [086639c1] +P0_14.1U [3f5fe2b6] + +P0_15.10C [9cc52c32] +P0_16.10D [8d03227e] + +AP-002.7B [Not Dump] 8741 +AP-003.7C [Not Dump] / + +P1.2E [6297104c] 82S123 +P2.4E [70a09cc5] / + +P0_3.11T [be89c1f7] 82S129 +P0_4.11U [4886d832] / + + + +--- Team Japump!!! --- +Dumped by Chack'n +27/Nov/2009 +28/Nov/2009 + +***************************************************************************/ + +#include "driver.h" +#include "cpu/z80/z80.h" +#include "sound/ay8910.h" + +static UINT8 *cyclemb_vram,*cyclemb_cram; + +static PALETTE_INIT( cyclemb ) +{ + int i,r,g,b,val; + int bit0,bit1,bit2; + + for (i = 0; i < 256; i++) + { + val = (color_prom[i+0x100]) | (color_prom[i+0x000]<<4); + + bit0 = 0; + bit1 = (val >> 6) & 0x01; + bit2 = (val >> 7) & 0x01; + b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; + bit0 = (val >> 3) & 0x01; + bit1 = (val >> 4) & 0x01; + bit2 = (val >> 5) & 0x01; + g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; + bit0 = (val >> 0) & 0x01; + bit1 = (val >> 1) & 0x01; + bit2 = (val >> 2) & 0x01; + r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2; + + palette_set_color(machine, i, MAKE_RGB(r, g, b)); + } +} + +static VIDEO_START( cyclemb ) +{ + +} + +static VIDEO_UPDATE( cyclemb ) +{ + int x,y,count; + const gfx_element *gfx = screen->machine->gfx[0]; + + count = 0; + + for (y=0;y<32;y++) + { + for (x=0;x<32;x++) + { + //int attr = cyclemb_cram[count]; + int tile = cyclemb_vram[count]; + + drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,(x*8),(y*8)); + count++; + } + } + return 0; +} + +static WRITE8_HANDLER( cyclemb_bankswitch_w ) +{ + memory_set_bank(space->machine, "bank1", data & 7); +} + +static READ8_HANDLER( mcu_status_r ) +{ + return 1; +} + +static ADDRESS_MAP_START( cyclemb_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0x8fff) AM_ROMBANK("bank1") + AM_RANGE(0x9000, 0x97ff) AM_RAM AM_BASE(&cyclemb_vram) + AM_RANGE(0x9800, 0x9fff) AM_RAM AM_BASE(&cyclemb_cram) + AM_RANGE(0xa000, 0xa7ff) AM_RAM //0RAM1 (only a000-a3ff tested) + AM_RANGE(0xa800, 0xafff) AM_RAM //0RAM2 (only a800-abff tested) + AM_RANGE(0xb000, 0xbfff) AM_RAM //WRAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( cyclemb_io, ADDRESS_SPACE_IO, 8 ) +// ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0xc000, 0xc000) AM_WRITE(cyclemb_bankswitch_w) + AM_RANGE(0xc09f, 0xc09f) AM_READ(mcu_status_r) + +ADDRESS_MAP_END + +static ADDRESS_MAP_START( cyclemb_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x6000, 0x63ff) AM_RAM + +ADDRESS_MAP_END + +static ADDRESS_MAP_START( cyclemb_sound_io, ADDRESS_SPACE_IO, 8 ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0x00, 0x01) AM_DEVWRITE("aysnd", ay8910_address_data_w) +ADDRESS_MAP_END + +static INPUT_PORTS_START( cyclemb ) +INPUT_PORTS_END + +static const gfx_layout charlayout = +{ + 8,8, + RGN_FRAC(1,1), + 2, + { 0, 4 }, + { 0,1,2,3,64,65,66,67 }, + { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8 }, + 16*8 +}; + +static GFXDECODE_START( cyclemb ) + GFXDECODE_ENTRY( "tilemap_data", 0, charlayout, 0, 8 ) + GFXDECODE_ENTRY( "sprite_data", 0, charlayout, 0, 8 ) + +GFXDECODE_END + +static MACHINE_DRIVER_START( cyclemb ) + /* basic machine hardware */ + MDRV_CPU_ADD("maincpu",Z80,18000000/8) + MDRV_CPU_PROGRAM_MAP(cyclemb_map) + MDRV_CPU_IO_MAP(cyclemb_io) + MDRV_CPU_VBLANK_INT("screen",irq0_line_hold) + + MDRV_CPU_ADD("audiocpu",Z80,18000000/8) + MDRV_CPU_PROGRAM_MAP(cyclemb_sound_map) + MDRV_CPU_IO_MAP(cyclemb_sound_io) + + + /* 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(32*8, 32*8) + MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) + MDRV_GFXDECODE(cyclemb) + MDRV_PALETTE_LENGTH(512) + MDRV_PALETTE_INIT(cyclemb) + + MDRV_VIDEO_START(cyclemb) + MDRV_VIDEO_UPDATE(cyclemb) + + /* sound hardware */ + MDRV_SPEAKER_STANDARD_MONO("mono") + MDRV_SOUND_ADD("aysnd", AY8910, 18000000/16) + MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) +MACHINE_DRIVER_END + +/*************************************************************************** + + Game driver(s) + +***************************************************************************/ + +ROM_START( cyclemb ) + ROM_REGION( 0x18000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "p0_1.1a", 0x00000, 0x2000, CRC(a1588264) SHA1(ff17df61207e39443a8ea62be1fce102c163d8e1) ) + ROM_LOAD( "p0_2.1b", 0x02000, 0x2000, CRC(04141837) SHA1(18d2f17fd5334b306ca13a1c26780f4a868a4ac8) ) + ROM_LOAD( "p0_3.1c", 0x04000, 0x2000, CRC(a9dd4b22) SHA1(8d3535ecd43aa0eccf3856b7cbad8702d17dd576) ) + ROM_LOAD( "p0_4.1e", 0x06000, 0x2000, CRC(456a30df) SHA1(75594178e6299ef5a81c134138ac1f1231a36caa) ) + ROM_LOAD( "p0_5.1f", 0x10000, 0x2000, CRC(a3b9c297) SHA1(edbab8639cb73e1376306ef70ef4ae451a75e4a9) ) + ROM_LOAD( "p0_6.1h", 0x12000, 0x2000, CRC(ec76a0a6) SHA1(9d1d3c050c76df42da53896f38ae53c5f79b0c5c) ) + ROM_LOAD( "p0_7.1k", 0x14000, 0x2000, CRC(6507d23f) SHA1(1640b25a6efa0976f13ed7838f31ef53c37c8d2d) ) + + ROM_REGION( 0x4000, "audiocpu", 0 ) + ROM_LOAD( "p0_15.10c", 0x0000, 0x2000, CRC(9cc52c32) SHA1(05d4e7c8ce8fdfc995013c0ed693b4d4778acc25) ) + ROM_LOAD( "p0_16.10d", 0x2000, 0x2000, CRC(8d03227e) SHA1(7e90437cbe5e854025e799348bb2cbca98368bd9) ) + + ROM_REGION( 0x4000, "tilemap_data", 0 ) + ROM_LOAD( "p0_21.3e", 0x0000, 0x2000, CRC(a7dab6d8) SHA1(c5802e76abd394a2ce1526815bfbfc12e5e57587) ) + ROM_LOAD( "p0_20.3d", 0x2000, 0x2000, CRC(53e3a36e) SHA1(d95c1dfe216bb8b1f3e14c72a480eb2befa9d1dd) ) + + ROM_REGION( 0xa000, "sprite_data", 0 ) + ROM_LOAD( "p0_10.1n", 0x0000, 0x2000, CRC(a98415db) SHA1(218a1d3ad27c30263daf87be87b4d5e06d5ac604) ) + ROM_LOAD( "p0_11.1r", 0x2000, 0x2000, CRC(626556fe) SHA1(ebd08a407fe466af14813bdeeb852d6816da932e) ) + ROM_LOAD( "p0_12.1s", 0x4000, 0x2000, CRC(1e08902c) SHA1(3d5f620580dc1fc43cd5f99b2a1e62a6d749f8b9) ) + ROM_LOAD( "p0_13.1t", 0x6000, 0x2000, CRC(086639c1) SHA1(3afbe76bb466d4c5916ef85d4cfc42e0c3f69883) ) + ROM_LOAD( "p0_14.1u", 0x8000, 0x2000, CRC(3f5fe2b6) SHA1(a7d1d0bc449f557ba827936b0fdbcccf7b1ee629) ) + + ROM_REGION( 0x200, "proms", 0 ) + ROM_LOAD( "p0_3.11t", 0x0000, 0x100, CRC(be89c1f7) SHA1(7fb2d9fccf6c74130c3e0db4ea4269aeb45359e3) ) + ROM_LOAD( "p0_4.11u", 0x0100, 0x100, CRC(4886d832) SHA1(49e77923b7e2a0d5e9d990706dac258ecfd7720e) ) + + ROM_REGION( 0x40, "timing_proms", 0 ) //??? + ROM_LOAD( "p1.2e", 0x000, 0x020, CRC(6297104c) SHA1(f2a40811505625a7a7ef4a7e4168c556c263449b) ) + ROM_LOAD( "p2.4e", 0x020, 0x020, CRC(70a09cc5) SHA1(82c0f3122d2c1e8be74b857737380c2e978adeef) ) +ROM_END + +static DRIVER_INIT( cyclemb ) +{ + memory_configure_bank(machine, "bank1", 0, 8, memory_region(machine, "maincpu") + 0x10000, 0x1000); +} + +GAME( 1984, cyclemb, 0, cyclemb, cyclemb, cyclemb, ROT0, "Taito Corporation", "Cycle Mahbou (Japan)", GAME_NOT_WORKING ) diff --git a/src/mame/mame.mak b/src/mame/mame.mak index e04a055c48b..4dcbfca94ad 100644 --- a/src/mame/mame.mak +++ b/src/mame/mame.mak @@ -1261,6 +1261,7 @@ $(MAMEOBJ)/taito.a: \ $(DRIVERS)/champbwl.o \ $(DRIVERS)/changela.o $(VIDEO)/changela.o \ $(DRIVERS)/crbaloon.o $(VIDEO)/crbaloon.o $(AUDIO)/crbaloon.o \ + $(DRIVERS)/cyclemb.o \ $(DRIVERS)/darius.o $(VIDEO)/darius.o \ $(DRIVERS)/darkmist.o $(VIDEO)/darkmist.o \ $(DRIVERS)/exzisus.o $(VIDEO)/exzisus.o \ diff --git a/src/mame/mamedriv.c b/src/mame/mamedriv.c index ea3e846a90c..22a07789b8f 100644 --- a/src/mame/mamedriv.c +++ b/src/mame/mamedriv.c @@ -1692,6 +1692,7 @@ const game_driver * const drivers[] = DRIVER( josvolly ) /* AA (c) 1983 Taito Corporation */ DRIVER( gsword ) /* AC (c) 1984 Taito Corporation */ DRIVER( gsword2 ) /* AC (c) 1984 Taito Corporation */ + DRIVER( cyclemb ) /* P0 (c) 1984 Taito Corporation [+ Seta] */ DRIVER( pitnrun ) /* PR (c) 1984 Taito Corporation */ DRIVER( pitnruna ) /* PR (c) 1984 Taito Corporation */ DRIVER( lkage ) /* A54 (c) 1984 Taito Corporation */