From d567059cc7e078aa6b7fa5270ddcc7d931e0e702 Mon Sep 17 00:00:00 2001 From: davidhay Date: Thu, 13 Nov 2008 02:11:49 +0000 Subject: [PATCH] Kaneko update part 3: more Jackie Chan video improvements (view2 tilemaps) --- src/mame/drivers/jchan.c | 19 +++++++++++++------ src/mame/includes/kaneko16.h | 3 +++ src/mame/video/kaneko16.c | 19 ++++++++++++++++--- 3 files changed, 32 insertions(+), 9 deletions(-) diff --git a/src/mame/drivers/jchan.c b/src/mame/drivers/jchan.c index d6b0ff2ab47..8dd036998ec 100644 --- a/src/mame/drivers/jchan.c +++ b/src/mame/drivers/jchan.c @@ -411,6 +411,8 @@ static VIDEO_START(jchan) sprite_bitmap_2 = auto_bitmap_alloc(1024,1024,BITMAP_FORMAT_INDEXED16); suprnova_alt_enable_sprites = 1; + + VIDEO_START_CALL( kaneko16_1xVIEW2_tilemaps ); } @@ -429,6 +431,9 @@ static VIDEO_UPDATE(jchan) UINT16 pixdata2; fillbitmap(bitmap, get_black_pen(screen->machine), cliprect); + + VIDEO_UPDATE_CALL(jchan_view2); + //skns_draw_sprites(screen->machine,bitmap,cliprect); fillbitmap(sprite_bitmap_1, 0x0000, cliprect); fillbitmap(sprite_bitmap_2, 0x0000, cliprect); @@ -436,6 +441,7 @@ static VIDEO_UPDATE(jchan) skns_draw_sprites(screen->machine, sprite_bitmap_1, cliprect, jchan_sprite_ram32_1, 0x4000, memory_region(screen->machine,"gfx1"), memory_region_length (screen->machine, "gfx1"), jchan_sprite_regs32_1 ); skns_draw_sprites(screen->machine, sprite_bitmap_2, cliprect, jchan_sprite_ram32_2, 0x4000, memory_region(screen->machine,"gfx2"), memory_region_length (screen->machine, "gfx2"), jchan_sprite_regs32_2 ); + // ignoring priority bits for now.. for (y=0;y<240;y++) { src1 = BITMAP_ADDR16(sprite_bitmap_1, y, 0); @@ -589,11 +595,11 @@ static ADDRESS_MAP_START( jchan_sub, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x400000, 0x403fff) AM_RAM AM_BASE(&mainsub_shared_ram) AM_SHARE(1) /* VIEW2 Tilemap - [D] grid tested, cleared ($1d84), also cleared at startup ($810-$826) */ - AM_RANGE(0x500000, 0x500fff) AM_RAM // AM_RAM_WRITE(kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0 - AM_RANGE(0x501000, 0x501fff) AM_RAM // AM_RAM_WRITE(kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) // - AM_RANGE(0x502000, 0x502fff) AM_RAM // AM_RAM AM_BASE(&kaneko16_vscroll_1) // - AM_RANGE(0x503000, 0x503fff) AM_RAM // AM_RAM AM_BASE(&kaneko16_vscroll_0) // - AM_RANGE(0x600000, 0x60001f) AM_RAM // AM_RAM_WRITE(kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers 0 Regs + AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(kaneko16_vram_1_w) AM_BASE(&kaneko16_vram_1) // Layers 0 + AM_RANGE(0x501000, 0x501fff) AM_RAM_WRITE(kaneko16_vram_0_w) AM_BASE(&kaneko16_vram_0) // + AM_RANGE(0x502000, 0x502fff) AM_RAM AM_BASE(&kaneko16_vscroll_1) // + AM_RANGE(0x503000, 0x503fff) AM_RAM AM_BASE(&kaneko16_vscroll_0) // + AM_RANGE(0x600000, 0x60001f) AM_RAM_WRITE(kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // Layers 0 Regs /* 2nd sprite layer? - [C] grid tested, cleared ($1e2a), also cleared at startup ($7dc-$80a) */ AM_RANGE(0x700000, 0x703fff) AM_RAM AM_BASE(&jchan_spriteram_2) AM_WRITE(jchan_suprnova_sprite32_2_w) @@ -658,7 +664,8 @@ static const gfx_layout tilelayout = static GFXDECODE_START( jchan ) // GFXDECODE_ENTRY( "gfx1", 0, char2layout, 0, 512 ) // GFXDECODE_ENTRY( "gfx2", 0, char2layout, 0, 512 ) - GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 16384, 16384 ) + GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 0, 0x4000/16 ) + GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 0, 0x4000/16 ) // video/kaneko16.c is hardcoded to here for now GFXDECODE_END diff --git a/src/mame/includes/kaneko16.h b/src/mame/includes/kaneko16.h index f7737a9474d..6f815f772a1 100644 --- a/src/mame/includes/kaneko16.h +++ b/src/mame/includes/kaneko16.h @@ -98,7 +98,9 @@ extern kaneko16_priority_t kaneko16_priority; /* Machine */ + VIDEO_START( kaneko16_sprites ); +VIDEO_START( kaneko16_1xVIEW2_tilemaps ); VIDEO_START( kaneko16_1xVIEW2 ); VIDEO_START( kaneko16_2xVIEW2 ); VIDEO_START( berlwall ); @@ -108,6 +110,7 @@ VIDEO_START( sandscrp_1xVIEW2 ); VIDEO_UPDATE( kaneko16 ); VIDEO_UPDATE( sandscrp ); VIDEO_UPDATE( berlwall ); +VIDEO_UPDATE( jchan_view2 ); VIDEO_START( galsnew ); VIDEO_UPDATE( galsnew ); diff --git a/src/mame/video/kaneko16.c b/src/mame/video/kaneko16.c index 500458e2dde..5498e606d58 100644 --- a/src/mame/video/kaneko16.c +++ b/src/mame/video/kaneko16.c @@ -128,10 +128,8 @@ VIDEO_START( kaneko16_sprites ) spritelist.first_sprite = (struct tempsprite *)auto_malloc(0x400 * sizeof(spritelist.first_sprite[0])); } -VIDEO_START( kaneko16_1xVIEW2 ) +VIDEO_START( kaneko16_1xVIEW2_tilemaps ) { - VIDEO_START_CALL(kaneko16_sprites); - kaneko16_tmap_0 = tilemap_create( get_tile_info_0, tilemap_scan_rows, 16,16, 0x20,0x20 ); kaneko16_tmap_1 = tilemap_create( get_tile_info_1, tilemap_scan_rows, @@ -174,6 +172,15 @@ VIDEO_START( kaneko16_1xVIEW2 ) tilemap_set_scroll_rows(kaneko16_tmap_0, 0x200); // Line Scroll tilemap_set_scroll_rows(kaneko16_tmap_1, 0x200); } + +} + + +VIDEO_START( kaneko16_1xVIEW2 ) +{ + VIDEO_START_CALL(kaneko16_sprites); + + VIDEO_START_CALL(kaneko16_1xVIEW2_tilemaps); } VIDEO_START( kaneko16_2xVIEW2 ) @@ -1011,6 +1018,12 @@ VIDEO_UPDATE(berlwall) } +VIDEO_UPDATE( jchan_view2 ) +{ + VIDEO_UPDATE_CALL(common); + return 0; +} + VIDEO_UPDATE( kaneko16 ) {