diff options
author | Angelo Salese <angelosa@users.noreply.github.com> | 2010-02-19 17:11:34 +0000 |
---|---|---|
committer | Angelo Salese <angelosa@users.noreply.github.com> | 2010-02-19 17:11:34 +0000 |
commit | b266aa9e964de7b2f11212b8120458cd0ff2743a (patch) | |
tree | fe483c33f6f4ceb996ea446674b4f5a3c8805b0f /src/mame/drivers/luckgrln.c | |
parent | 6f58265f53e130b23ded448841aca89eee1d43ed (diff) |
Some improvements to Lucky Girl (New HW) [Angelo Salese]
Diffstat (limited to 'src/mame/drivers/luckgrln.c')
-rw-r--r-- | src/mame/drivers/luckgrln.c | 80 |
1 files changed, 57 insertions, 23 deletions
diff --git a/src/mame/drivers/luckgrln.c b/src/mame/drivers/luckgrln.c index 081dc7ea476..aa759a81a8f 100644 --- a/src/mame/drivers/luckgrln.c +++ b/src/mame/drivers/luckgrln.c @@ -5,9 +5,9 @@ The program rom extracted from the Z180 also refers to this as Lucky 74.. - - - + TODO: + - interrupt generation (nested NMIs? disabled for now) + - video emulation (uses tilexor) Lucky Girl Wing 1991 @@ -77,18 +77,62 @@ #include "cpu/z180/z180.h" #include "video/mc6845.h" +static UINT8 *luck_vram1,*luck_vram2,*luck_vram3; + +static VIDEO_START(luckgrln) +{ + +} + +static VIDEO_UPDATE(luckgrln) +{ + int y,x; + int count = 0; + + for (y=0;y<32;y++) + { + for (x=0;x<32;x++) + { + UINT16 tile = (luck_vram1[count] & 0xff) | ((luck_vram2[count] & 0x1f)<<8); + UINT8 col = 0; + //UINT8 region = (luck_vram2[count] & 0x20) >> 5; + + drawgfx_opaque(bitmap,cliprect,screen->machine->gfx[0],tile,col,0,0,x*8,y*8); + + count++; + } + } + return 0; +} static ADDRESS_MAP_START( mainmap, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x00000, 0x03fff) AM_ROM - AM_RANGE(0x10000, 0x1ffff) AM_ROMBANK("bank1") + AM_RANGE(0x10000, 0x1ffff) AM_ROM AM_REGION("rom_data",0x10000) + AM_RANGE(0x20000, 0x2ffff) AM_ROM AM_REGION("rom_data",0x00000) + + AM_RANGE(0x0c200, 0x0c5ff) AM_RAM + AM_RANGE(0x0ca00, 0x0cdff) AM_RAM + AM_RANGE(0x0d800, 0x0dfff) AM_RAM - AM_RANGE(0x0f000, 0x0ffff) AM_RAM + + AM_RANGE(0x0e000, 0x0e7ff) AM_RAM AM_BASE(&luck_vram1) + AM_RANGE(0x0e800, 0x0efff) AM_RAM AM_BASE(&luck_vram2) + AM_RANGE(0x0f000, 0x0f7ff) AM_RAM AM_BASE(&luck_vram3) + + AM_RANGE(0x0f800, 0x0ffff) AM_RAM AM_RANGE(0xf0000, 0xfffff) AM_RAM ADDRESS_MAP_END +/* +static WRITE8_HANDLER( output_w ) +{ + printf("%02x\n",data); +} +*/ 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 +// AM_RANGE(0x0060, 0x0060) AM_WRITE(output_w) AM_RANGE(0x00b0, 0x00b0) AM_DEVWRITE("crtc", mc6845_address_w) AM_RANGE(0x00b1, 0x00b1) AM_DEVWRITE("crtc", mc6845_register_w) ADDRESS_MAP_END @@ -104,25 +148,15 @@ static const gfx_layout tiles8x8_layout = 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 }, + { STEP8(0,1) }, { 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_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 16 ) GFXDECODE_END -static VIDEO_START(luckgrln) -{ - -} - -static VIDEO_UPDATE(luckgrln) -{ - return 0; -} - static const mc6845_interface mc6845_intf = { "screen", /* screen we are acting on */ @@ -141,7 +175,7 @@ static MACHINE_DRIVER_START( luckgrln ) MDRV_CPU_ADD("maincpu", Z180,8000000) MDRV_CPU_PROGRAM_MAP(mainmap) MDRV_CPU_IO_MAP(portmap) - MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) +// MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse) MDRV_MC6845_ADD("crtc", H46505, 6000000/4, mc6845_intf) /* unknown clock, hand tuned to get ~60 fps */ @@ -150,8 +184,8 @@ static MACHINE_DRIVER_START( luckgrln ) 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_SCREEN_SIZE(512, 256) + MDRV_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) MDRV_GFXDECODE(luckgrln) MDRV_PALETTE_LENGTH(0x100) @@ -164,7 +198,7 @@ static DRIVER_INIT( luckgrln ) { int i; UINT8 x,v; - UINT8* rom = memory_region(machine,"user1"); + UINT8* rom = memory_region(machine,"rom_data"); for (i=0;i<0x20000;i++) { @@ -191,14 +225,14 @@ static DRIVER_INIT( luckgrln ) #endif // ?? - memory_set_bankptr(machine, "bank1",&rom[0x010000]); +// memory_set_bankptr(machine, "bank1",&rom[0x010000]); } ROM_START( luckgrln ) ROM_REGION( 0x4000, "maincpu", 0 ) // internal Z180 rom ROM_LOAD( "lucky74.bin", 0x00000, 0x4000, CRC(fa128e05) SHA1(97a9534b8414f984159271db48b153b0724d22f9) ) - ROM_REGION( 0x20000, "user1", 0 ) // external data / cpu rom + ROM_REGION( 0x20000, "rom_data", 0 ) // external data / cpu rom ROM_LOAD( "falcon.13", 0x00000, 0x20000, CRC(f7a717fd) SHA1(49a39b84620876ee2faf73aaa405a1e17cab2da2) ) ROM_REGION( 0x60000, "gfx1", 0 ) |