diff options
author | Roberto Fresca <robertof@mamedev.org> | 2008-12-31 18:48:06 +0000 |
---|---|---|
committer | Roberto Fresca <robertof@mamedev.org> | 2008-12-31 18:48:06 +0000 |
commit | 0a855533678a2c52250118895106955fdb4af24d (patch) | |
tree | 62098c38f411c36a8dbc1254b6f3337105509fbf /src/mame/drivers/luckgrln.c | |
parent | c419b630191de955b57f876e55390da029d776b2 (diff) |
From David Haywood...
Skeleton driver for Lucky Girl (1991, Wing Co.Ltd.)
Diffstat (limited to 'src/mame/drivers/luckgrln.c')
-rw-r--r-- | src/mame/drivers/luckgrln.c | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/src/mame/drivers/luckgrln.c b/src/mame/drivers/luckgrln.c new file mode 100644 index 00000000000..6dcf53b3f36 --- /dev/null +++ b/src/mame/drivers/luckgrln.c @@ -0,0 +1,196 @@ +/* + + Lucky Girl (newer 1991 version on different hardware?) + -- there is an early 'Lucky Girl' which appears to be running on Nichibutsu like hardware. + + The program rom extracted from the Z180 also refers to this as Lucky 74.. + + + + + + Lucky Girl + Wing 1991 + + PCB labels + + "DREW'S UNDER WARRANTY IF REMOVED N3357" + "No.A 120307 LICENSE WING SEAL" + "EAGLE No.A 120307" + + ROMs + + 1C - EAGLE 1 27C010 equiv. mask ROM + 1E - EAGLE 2 27C010 equiv. mask ROM + 1H - EAGLE 3 27C010 equiv. mask ROM + 1L - FALCON 4 27C010 equiv. mask ROM + 1N - FALCON 5 27C010 equiv. mask ROM + 1P - FALCON 6 27C010 equiv. mask ROM + 1T - FALCON 13 27C010 EPROM + + * ROMs 1-6 may need redumping, they could be half size. + + RAMs + + 2x LH5186D-01L 28-pin PDIP Video RAM and work RAM (battery backed) + 2x CY7C128A-25PC 24-pin PDIP Probably color RAM + + Customs + + 2x 06B53P 28-pin PDIP Unknown + 1x 06B30P 40-pin PDIP Unknown + 1x 101810P 64-pin SDIP Unknown + 1x HG62E11B10P 64-pin SDIP Hitachi gate array (custom) + 1x CPU module 90-pin SDIP + + Others + + 1x HD6845SP 40-pin PDIP CRTC + 1x MB3771 8-pin PDIP Reset generator + 1x Oki M62X428 18-pin PDIP Real-time clock + + CPU module + + Text on label: + + [2] 9015 1994.12 + LUCKY GIRL DREW'S + + Text underneath label + + WE 300B 1H2 + + Looks like Hitachi part markings to me. + + Other notes + + Has some optocouplers, high voltage drivers, and what looks like additional + I/O conenctors. + + Reset switch cuts power supply going to Video/Work RAM. + + +*/ + + +#include "driver.h" +#include "cpu/z180/z180.h" + + +static ADDRESS_MAP_START( mainmap, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x00000, 0x03fff) AM_ROM + AM_RANGE(0x10000, 0x1ffff) AM_READ(SMH_BANK1) + AM_RANGE(0x0d800, 0x0dfff) AM_RAM + AM_RANGE(0x0f000, 0x0ffff) AM_RAM + AM_RANGE(0xf0000, 0xfffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( portmap, ADDRESS_SPACE_IO, 8 ) + ADDRESS_MAP_GLOBAL_MASK(0xff) // i think + AM_RANGE( 0x0000, 0x003f ) AM_RAM // Z180 internal regs +ADDRESS_MAP_END + + +static INPUT_PORTS_START( luckgrln ) +INPUT_PORTS_END + + +static const gfx_layout tiles8x8_layout = +{ + 8,8, + RGN_FRAC(1,6), + 6, + { RGN_FRAC(0,6),RGN_FRAC(1,6),RGN_FRAC(2,6),RGN_FRAC(3,6),RGN_FRAC(4,6),RGN_FRAC(5,6) }, + { 0,1,2,3,4,5,6,7 }, + { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8}, + 8*8 +}; +static GFXDECODE_START( luckgrln ) + GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 16 ) + GFXDECODE_ENTRY( "gfx2", 0, tiles8x8_layout, 0, 16 ) +GFXDECODE_END + +static VIDEO_START(luckgrln) +{ + +} + +static VIDEO_UPDATE(luckgrln) +{ + return 0; +} + +static MACHINE_DRIVER_START( luckgrln ) + MDRV_CPU_ADD("main", Z180,8000000) + MDRV_CPU_PROGRAM_MAP(mainmap,0) + MDRV_CPU_IO_MAP(portmap,0) + MDRV_CPU_VBLANK_INT("main", irq0_line_hold) + + 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(256, 256) + MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) + + MDRV_GFXDECODE(luckgrln) + MDRV_PALETTE_LENGTH(0x100) + + MDRV_VIDEO_START(luckgrln) + MDRV_VIDEO_UPDATE(luckgrln) +MACHINE_DRIVER_END + +DRIVER_INIT( luckgrln ) +{ + int i; + UINT8 x,v; + UINT8* rom = memory_region(machine,"user1"); + + for (i=0;i<0x20000;i++) + { + x = rom[i]; + v = 0xfe + (i & 0xf)*0x3b + ((i >> 4) & 0xf)*0x9c + ((i >> 8) & 0xf)*0xe1 + ((i >> 12) & 0x7)*0x10; + v += ((((i >> 4) & 0xf) + ((i >> 2) & 3)) >> 2) * 0x50; + x ^= ~v; + x = (x << (i & 7)) | (x >> (8-(i & 7))); + rom[i] = x; + } + + #if 0 + { + FILE *fp; + char filename[256]; + sprintf(filename,"decrypted_%s", machine->gamedrv->name); + fp=fopen(filename, "w+b"); + if (fp) + { + fwrite(rom, 0x20000, 1, fp); + fclose(fp); + } + } + #endif + + // ?? + memory_set_bankptr(machine, 1,&rom[0x010000]); +} + +ROM_START( luckgrln ) + ROM_REGION( 0x4000, "main", 0 ) // internal Z180 rom + ROM_LOAD( "lucky74.bin", 0x00000, 0x4000, CRC(fa128e05) SHA1(97a9534b8414f984159271db48b153b0724d22f9) ) + + ROM_REGION( 0x20000, "user1", 0 ) // external data / cpu rom + ROM_LOAD( "falcon.13", 0x00000, 0x20000, CRC(f7a717fd) SHA1(49a39b84620876ee2faf73aaa405a1e17cab2da2) ) + + ROM_REGION( 0x60000, "gfx1", 0 ) + ROM_LOAD( "eagle.1", 0x00000, 0x20000, CRC(37209082) SHA1(ffb30da5920886f37c6b97e03f5a8ec3b6265e68) ) + ROM_LOAD( "eagle.2", 0x20000, 0x20000, CRC(bdb2d694) SHA1(3e58fe3f6b447181e3a85f0fc2a0c996231bc8e8) ) + ROM_LOAD( "eagle.3", 0x40000, 0x20000, CRC(2c765389) SHA1(d5697c73cc939aa46f36c2dd87e90bba2536e347)) + + ROM_REGION( 0x60000, "gfx2", 0 ) // luckgrlns - 3bpp + ROM_LOAD( "falcon.4", 0x00000, 0x20000, CRC(369eaddf) SHA1(52387ea63e5c8fb0c27b796026152a06b68467af) ) + ROM_LOAD( "falcon.5", 0x20000, 0x20000, CRC(c9ac1fe7) SHA1(fc027002754b90cc49ca74fac5240a99a194c0b3)) + ROM_LOAD( "falcon.6", 0x40000, 0x20000, CRC(bfb02c87) SHA1(1b5ca562ed76eb3f1b4a52d379a6af07e79b6ee5)) +ROM_END + +GAME( 1991, luckgrln, 0, luckgrln, luckgrln, luckgrln, ROT0, "Wing", "Lucky Girl (newer Z180 based hardware)", GAME_NOT_WORKING|GAME_NO_SOUND ) + |