diff --git a/src/emu/drawgfx.c b/src/emu/drawgfx.c index a1a2a3f9d05..178ea4276bf 100644 --- a/src/emu/drawgfx.c +++ b/src/emu/drawgfx.c @@ -161,8 +161,9 @@ static void calc_penusage(gfx_element *gfx, int num) on a specified layout -------------------------------------------------*/ -void decodechar(gfx_element *gfx, int num, const UINT8 *src, const gfx_layout *gl) +void decodechar(gfx_element *gfx, int num, const UINT8 *src) { + const gfx_layout *gl = &gfx->layout; int israw = (gl->planeoffset[0] == GFX_RAW); int planes = gl->planes; UINT32 charincrement = gl->charincrement; @@ -332,7 +333,7 @@ void decodegfx(gfx_element *gfx, const UINT8 *src, UINT32 first, UINT32 count) else { for (c = first; c <= last; c++) - decodechar(gfx, c, src, &gfx->layout); + decodechar(gfx, c, src); } } diff --git a/src/emu/drawgfx.h b/src/emu/drawgfx.h index d8608904f42..b715d6bfe72 100644 --- a/src/emu/drawgfx.h +++ b/src/emu/drawgfx.h @@ -197,7 +197,7 @@ extern int pdrawgfx_shadow_lowpri; void drawgfx_init(running_machine *machine); -void decodechar(gfx_element *gfx,int num,const unsigned char *src,const gfx_layout *gl); +void decodechar(gfx_element *gfx,int num,const unsigned char *src); gfx_element *allocgfx(const gfx_layout *gl); void decodegfx(gfx_element *gfx, const UINT8 *src, UINT32 first, UINT32 count); void freegfx(gfx_element *gfx); diff --git a/src/emu/video/s2636.c b/src/emu/video/s2636.c index 19e3a1219f5..c215218ee3f 100644 --- a/src/emu/video/s2636.c +++ b/src/emu/video/s2636.c @@ -227,7 +227,7 @@ void s2636_update_bitmap(running_machine *machine,mame_bitmap *bitmap,UINT8 *wor colour = (colour & 7) + 7; - decodechar(machine->gfx[Graphics_Bank],charno,workram,machine->drv->gfxdecodeinfo[Graphics_Bank].gfxlayout); + decodechar(machine->gfx[Graphics_Bank],charno,workram); drawgfxzoom(bitmap,machine->gfx[Graphics_Bank], charno, diff --git a/src/mame/drivers/2mindril.c b/src/mame/drivers/2mindril.c index 039527de58b..55d70f6c6b2 100644 --- a/src/mame/drivers/2mindril.c +++ b/src/mame/drivers/2mindril.c @@ -83,7 +83,7 @@ static VIDEO_UPDATE( drill ) for (i=0; i<256; i++) { - decodechar(machine->gfx[1],i,(UINT8*)&charram[0],machine->drv->gfxdecodeinfo[1].gfxlayout); + decodechar(machine->gfx[1],i,(UINT8*)&charram[0]); } DRAW_MAP(map1ram,0) diff --git a/src/mame/drivers/ace.c b/src/mame/drivers/ace.c index 09243a0d34c..86fe58d1ff1 100644 --- a/src/mame/drivers/ace.c +++ b/src/mame/drivers/ace.c @@ -63,13 +63,13 @@ static VIDEO_UPDATE( ace ) { int offs; - decodechar(machine->gfx[1], 0, ace_characterram, machine->drv->gfxdecodeinfo[1].gfxlayout); - decodechar(machine->gfx[2], 0, ace_characterram, machine->drv->gfxdecodeinfo[2].gfxlayout); - decodechar(machine->gfx[3], 0, ace_characterram, machine->drv->gfxdecodeinfo[3].gfxlayout); + decodechar(machine->gfx[1], 0, ace_characterram); + decodechar(machine->gfx[2], 0, ace_characterram); + decodechar(machine->gfx[3], 0, ace_characterram); for (offs = 0; offs < 8; offs++) { - decodechar(machine->gfx[4], offs, ace_scoreram, machine->drv->gfxdecodeinfo[4].gfxlayout); + decodechar(machine->gfx[4], offs, ace_scoreram); } /* first of all, fill the screen with the background color */ diff --git a/src/mame/drivers/cps3.c b/src/mame/drivers/cps3.c index afddb79f52d..ae409482c1b 100644 --- a/src/mame/drivers/cps3.c +++ b/src/mame/drivers/cps3.c @@ -859,7 +859,7 @@ static void decode_ssram(void) { if (cps3_ss_ram_dirty[i]) { - decodechar(Machine->gfx[0], i, (UINT8*)cps3_ss_ram, &cps3_tiles8x8_layout); + decodechar(Machine->gfx[0], i, (UINT8*)cps3_ss_ram); cps3_ss_ram_dirty[i] = 0; } } @@ -879,7 +879,7 @@ static void decode_charram(void) { if (cps3_char_ram_dirty[i]) { - decodechar(Machine->gfx[1], i, (UINT8*)cps3_char_ram, &cps3_tiles16x16_layout); + decodechar(Machine->gfx[1], i, (UINT8*)cps3_char_ram); cps3_char_ram_dirty[i] = 0; } } @@ -1019,7 +1019,7 @@ static void cps3_draw_tilemapsprite_line(int tmnum, int drawline, mame_bitmap *b if (cps3_char_ram_dirty[tileno]) { - decodechar(Machine->gfx[1], tileno, (UINT8*)cps3_char_ram, &cps3_tiles16x16_layout); + decodechar(Machine->gfx[1], tileno, (UINT8*)cps3_char_ram); cps3_char_ram_dirty[tileno] = 0; } cps3_drawgfxzoom(bitmap, Machine->gfx[1],tileno,colour,xflip,yflip,(x*16)-scrollx%16,drawline-tilesubline,&clip,CPS3_TRANSPARENCY_PEN_INDEX,0, 0x10000, 0x10000, NULL, 0); @@ -1269,7 +1269,7 @@ static VIDEO_UPDATE(cps3) if (cps3_char_ram_dirty[realtileno]) { - decodechar(machine->gfx[1], realtileno, (UINT8*)cps3_char_ram, &cps3_tiles16x16_layout); + decodechar(machine->gfx[1], realtileno, (UINT8*)cps3_char_ram); cps3_char_ram_dirty[realtileno] = 0; } @@ -1348,7 +1348,7 @@ static VIDEO_UPDATE(cps3) if (cps3_ss_ram_dirty[tile]) { - decodechar(machine->gfx[0], tile, (UINT8*)cps3_ss_ram, &cps3_tiles8x8_layout); + decodechar(machine->gfx[0], tile, (UINT8*)cps3_ss_ram); cps3_ss_ram_dirty[tile] = 0; } diff --git a/src/mame/drivers/f1gp.c b/src/mame/drivers/f1gp.c index 830ddaab5eb..073ca6d7c16 100644 --- a/src/mame/drivers/f1gp.c +++ b/src/mame/drivers/f1gp.c @@ -502,6 +502,24 @@ static const gfx_layout tilelayout = 64*16 }; +static const gfx_layout tilelayout2 = +{ + 16,16, + 0x800, + 4, + { 0, 1, 2, 3 }, +#ifdef LSB_FIRST + { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4, + 10*4, 11*4, 8*4, 9*4, 14*4, 15*4, 12*4, 13*4 }, +#else + { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, + 8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4 }, +#endif + { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, + 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, + 64*16 +}; + static const gfx_layout spritelayout = { 16,16, @@ -519,7 +537,7 @@ static GFXDECODE_START( f1gp ) GFXDECODE_ENTRY( REGION_GFX1, 0, charlayout, 0x000, 1 ) GFXDECODE_ENTRY( REGION_GFX2, 0, spritelayout, 0x100, 16 ) GFXDECODE_ENTRY( REGION_GFX3, 0, spritelayout, 0x200, 16 ) - GFXDECODE_ENTRY( REGION_GFX4, 0, tilelayout, 0x300, 16 ) /* changed at runtime */ + GFXDECODE_ENTRY( REGION_GFX4, 0, tilelayout2, 0x300, 16 ) GFXDECODE_END static GFXDECODE_START( f1gp2 ) diff --git a/src/mame/drivers/hornet.c b/src/mame/drivers/hornet.c index 8f53173edb3..c1d84881008 100644 --- a/src/mame/drivers/hornet.c +++ b/src/mame/drivers/hornet.c @@ -360,7 +360,7 @@ static void K037122_tile_update(running_machine *machine, int chip) if (K037122_dirty_map[chip][i]) { K037122_dirty_map[chip][i] = 0; - decodechar(machine->gfx[K037122_gfx_index[chip]], i, (UINT8 *)K037122_char_ram[chip], &K037122_char_layout); + decodechar(machine->gfx[K037122_gfx_index[chip]], i, (UINT8 *)K037122_char_ram[chip]); } } tilemap_mark_all_tiles_dirty(K037122_layer[chip][0]); diff --git a/src/mame/drivers/madalien.c b/src/mame/drivers/madalien.c index f7581183796..6444e13b903 100644 --- a/src/mame/drivers/madalien.c +++ b/src/mame/drivers/madalien.c @@ -248,8 +248,7 @@ static VIDEO_UPDATE( madalien ) for (i = 0; i < 256; i++) { - decodechar(machine->gfx[0], i, madalien_charram, - machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0], i, madalien_charram); } tilemap_mark_all_tiles_dirty(tilemap_fg); diff --git a/src/mame/drivers/mastboy.c b/src/mame/drivers/mastboy.c index 43421e313db..5b3a475239f 100644 --- a/src/mame/drivers/mastboy.c +++ b/src/mame/drivers/mastboy.c @@ -562,7 +562,7 @@ static WRITE8_HANDLER( banked_ram_w ) mastboy_vram[offs] = data^0xff; /* Decode the new tile */ - decodechar(Machine->gfx[0], offs/32, mastboy_vram, Machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(Machine->gfx[0], offs/32, mastboy_vram); } } else diff --git a/src/mame/drivers/mlanding.c b/src/mame/drivers/mlanding.c index 6f5cc5e95ad..c22e9b05484 100644 --- a/src/mame/drivers/mlanding.c +++ b/src/mame/drivers/mlanding.c @@ -37,7 +37,7 @@ static void updateChars(running_machine *machine) if(dirtychar[i]) { dirtychar[i]=0; - decodechar(machine->gfx[0], i,(UINT8 *) ml_tileram, machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0], i,(UINT8 *) ml_tileram); } } } diff --git a/src/mame/drivers/mogura.c b/src/mame/drivers/mogura.c index 968f997add8..d3054ecf2fe 100644 --- a/src/mame/drivers/mogura.c +++ b/src/mame/drivers/mogura.c @@ -114,7 +114,7 @@ static WRITE8_HANDLER ( mogura_gfxram_w ) { mogura_gfxram[offset] = data ; - decodechar(Machine->gfx[0], offset/16, mogura_gfxram, Machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(Machine->gfx[0], offset/16, mogura_gfxram); tilemap_mark_all_tiles_dirty(mogura_tilemap); } diff --git a/src/mame/drivers/mpu4drvr.c b/src/mame/drivers/mpu4drvr.c index b6ec553be22..e580eef6945 100644 --- a/src/mame/drivers/mpu4drvr.c +++ b/src/mame/drivers/mpu4drvr.c @@ -446,10 +446,10 @@ VIDEO_UPDATE( mpu4_vid ) { if (mpu4_vid_vidram_is_dirty[i]==1) { - decodechar(machine->gfx[mpu4_gfx_index+0], i, (UINT8 *)mpu4_vid_vidram, &mpu4_vid_char_8x8_layout); - decodechar(machine->gfx[mpu4_gfx_index+1], i, (UINT8 *)mpu4_vid_vidram, &mpu4_vid_char_8x16_layout); - decodechar(machine->gfx[mpu4_gfx_index+2], i, (UINT8 *)mpu4_vid_vidram, &mpu4_vid_char_16x8_layout); - decodechar(machine->gfx[mpu4_gfx_index+3], i, (UINT8 *)mpu4_vid_vidram, &mpu4_vid_char_16x16_layout); + decodechar(machine->gfx[mpu4_gfx_index+0], i, (UINT8 *)mpu4_vid_vidram); + decodechar(machine->gfx[mpu4_gfx_index+1], i, (UINT8 *)mpu4_vid_vidram); + decodechar(machine->gfx[mpu4_gfx_index+2], i, (UINT8 *)mpu4_vid_vidram); + decodechar(machine->gfx[mpu4_gfx_index+3], i, (UINT8 *)mpu4_vid_vidram); mpu4_vid_vidram_is_dirty[i]=0; } } diff --git a/src/mame/drivers/namcoic.c b/src/mame/drivers/namcoic.c index a5af7c46702..93d28c1a20b 100644 --- a/src/mame/drivers/namcoic.c +++ b/src/mame/drivers/namcoic.c @@ -1589,8 +1589,7 @@ UpdateRoad(running_machine *machine) decodechar( machine->gfx[mRoadGfxBank], i, - 0x10000+(UINT8 *)mpRoadRAM, - &RoadTileLayout ); + 0x10000+(UINT8 *)mpRoadRAM); mpRoadDirty[i] = 0; } } diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c index 5591cc13646..19d0461ecdd 100644 --- a/src/mame/drivers/namcos23.c +++ b/src/mame/drivers/namcos23.c @@ -523,13 +523,11 @@ static VIDEO_UPDATE( ss23 ) return 0; } -static const gfx_layout namcos23_cg_layout; - static WRITE32_HANDLER( s23_txtchar_w ) { COMBINE_DATA(&namcos23_charram[offset] ); - decodechar( Machine->gfx[0],offset/32,(UINT8 *)namcos23_charram,&namcos23_cg_layout ); + decodechar( Machine->gfx[0],offset/32,(UINT8 *)namcos23_charram ); tilemap_mark_all_tiles_dirty(bgtilemap); } diff --git a/src/mame/drivers/nwk-tr.c b/src/mame/drivers/nwk-tr.c index fca61e280e0..5f5db479396 100644 --- a/src/mame/drivers/nwk-tr.c +++ b/src/mame/drivers/nwk-tr.c @@ -302,8 +302,7 @@ void K001604_tile_update(running_machine *machine, int chip) if(K001604_dirty_map[chip][0][i]) { K001604_dirty_map[chip][0][i] = 0; - decodechar(machine->gfx[K001604_gfx_index[chip][0]], i, - (UINT8*)&K001604_char_ram[chip][0], &K001604_char_layout_layer_8x8); + decodechar(machine->gfx[K001604_gfx_index[chip][0]], i, (UINT8*)&K001604_char_ram[chip][0]); } } tilemap_mark_all_tiles_dirty(K001604_layer_8x8[chip][0]); @@ -324,8 +323,7 @@ void K001604_tile_update(running_machine *machine, int chip) if(K001604_dirty_map[chip][1][i]) { K001604_dirty_map[chip][1][i] = 0; - decodechar(machine->gfx[K001604_gfx_index[chip][1]], i, - (UINT8*)&K001604_char_ram[chip][0], &K001604_char_layout_layer_16x16); + decodechar(machine->gfx[K001604_gfx_index[chip][1]], i, (UINT8*)&K001604_char_ram[chip][0]); } } diff --git a/src/mame/drivers/srmp6.c b/src/mame/drivers/srmp6.c index fc978bdae77..1354f132a69 100644 --- a/src/mame/drivers/srmp6.c +++ b/src/mame/drivers/srmp6.c @@ -152,7 +152,7 @@ static void srmp6_decode_charram(void) int i; for (i=0;i<(0x100000*16)/0x40;i++) { - decodechar(Machine->gfx[0], i, (UINT8*)tileram, &tiles8x8_layout); + decodechar(Machine->gfx[0], i, (UINT8*)tileram); dirty_tileram[i] = 0; } } @@ -272,7 +272,7 @@ static VIDEO_UPDATE(srmp6) if (dirty_tileram[tileno]) { - decodechar(machine->gfx[0], tileno, (UINT8*)tileram, &tiles8x8_layout); + decodechar(machine->gfx[0], tileno, (UINT8*)tileram); dirty_tileram[tileno] = 0; } diff --git a/src/mame/drivers/taito_l.c b/src/mame/drivers/taito_l.c index d7c3d058419..8de81397147 100644 --- a/src/mame/drivers/taito_l.c +++ b/src/mame/drivers/taito_l.c @@ -155,10 +155,8 @@ static void machine_init(running_machine *machine) for(i=0;i<512;i++) { - decodechar(machine->gfx[2], i, taitol_rambanks, - machine->drv->gfxdecodeinfo[2].gfxlayout); - decodechar(machine->gfx[2], i+512, taitol_rambanks + 0x4000, - machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar(machine->gfx[2], i, taitol_rambanks); + decodechar(machine->gfx[2], i+512, taitol_rambanks + 0x4000); } } diff --git a/src/mame/drivers/trvmadns.c b/src/mame/drivers/trvmadns.c index e0b35afc738..a1c918bb703 100644 --- a/src/mame/drivers/trvmadns.c +++ b/src/mame/drivers/trvmadns.c @@ -141,7 +141,7 @@ static WRITE8_HANDLER( trvmadns_banking_w ) static WRITE8_HANDLER( trvmadns_gfxram_w ) { trvmadns_gfxram[offset] = data; - decodechar(Machine->gfx[0], offset/16, trvmadns_gfxram, Machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(Machine->gfx[0], offset/16, trvmadns_gfxram); tilemap_mark_all_tiles_dirty(bg_tilemap); } diff --git a/src/mame/video/20pacgal.c b/src/mame/video/20pacgal.c index ff2a8b4377b..276e58a9ad6 100644 --- a/src/mame/video/20pacgal.c +++ b/src/mame/video/20pacgal.c @@ -88,7 +88,7 @@ WRITE8_HANDLER( pacgal_charram_w ) { pacgal_charram[offset] = data; - decodechar(Machine->gfx[0],offset/16,pacgal_charram,Machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(Machine->gfx[0],offset/16,pacgal_charram); } WRITE8_HANDLER( pacgal_sprram_w ) @@ -96,7 +96,7 @@ WRITE8_HANDLER( pacgal_sprram_w ) offset = (offset & 0x1f83) | ((offset & 0x078) >> 1) | ((offset & 0x004) << 4); pacgal_sprram[offset] = data; - decodechar(Machine->gfx[1],offset/64,pacgal_sprram,Machine->drv->gfxdecodeinfo[1].gfxlayout); + decodechar(Machine->gfx[1],offset/64,pacgal_sprram); } diff --git a/src/mame/video/battlera.c b/src/mame/video/battlera.c index 99d3f132d4d..a17638300b7 100644 --- a/src/mame/video/battlera.c +++ b/src/mame/video/battlera.c @@ -313,12 +313,12 @@ static void screenrefresh(running_machine *machine, mame_bitmap *bitmap,const re /* Dynamically decode chars if dirty */ for (code = 0x0000;code < 0x1000;code++) if (tile_dirty[code]) - decodechar(machine->gfx[0],code,HuC6270_vram,machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0],code,HuC6270_vram); /* Dynamically decode sprites if dirty */ for (code = 0x0000;code < 0x400;code++) if (sprite_dirty[code]) - decodechar(machine->gfx[1],code,HuC6270_vram,machine->drv->gfxdecodeinfo[1].gfxlayout); + decodechar(machine->gfx[1],code,HuC6270_vram); /* NB: If first 0x1000 byte is always tilemap, no need to decode the first batch of tiles/sprites */ diff --git a/src/mame/video/btime.c b/src/mame/video/btime.c index 2cbd0d9f6b7..e7e36327b62 100644 --- a/src/mame/video/btime.c +++ b/src/mame/video/btime.c @@ -453,7 +453,7 @@ static void decode_modified(running_machine *machine, UINT8 *sprite_ram, int int if (char_dirty[code]) { - decodechar(machine->gfx[0],code,deco_charram,machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0],code,deco_charram); char_dirty[code] = 0; } @@ -468,7 +468,7 @@ static void decode_modified(running_machine *machine, UINT8 *sprite_ram, int int if (sprite_dirty[code]) { - decodechar(machine->gfx[1],code,deco_charram,machine->drv->gfxdecodeinfo[1].gfxlayout); + decodechar(machine->gfx[1],code,deco_charram); sprite_dirty[code] = 0; } diff --git a/src/mame/video/buggychl.c b/src/mame/video/buggychl.c index 4b93edd304d..99a42c9a145 100644 --- a/src/mame/video/buggychl.c +++ b/src/mame/video/buggychl.c @@ -259,7 +259,7 @@ VIDEO_UPDATE( buggychl ) for (code = 0;code < 256;code++) { if (dirtychar[code]) - decodechar(machine->gfx[0],code,buggychl_character_ram,machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0],code,buggychl_character_ram); } if (bg_on) diff --git a/src/mame/video/bwing.c b/src/mame/video/bwing.c index 10e7bd52828..9b50086c27a 100644 --- a/src/mame/video/bwing.c +++ b/src/mame/video/bwing.c @@ -108,10 +108,10 @@ WRITE8_HANDLER( bwing_scrollreg_w ) if (bp_ready == 7 && !srbank) { src = srbase[1]; - for (i=0; igfx[4] = allocgfx(&empty_layout8x8); - decodechar(machine->gfx[4], 0, (UINT8 *)empty_tile, &empty_layout8x8); + decodechar(machine->gfx[4], 0, (UINT8 *)empty_tile); machine->gfx[4]->total_colors = 0x100; } diff --git a/src/mame/video/cvs.c b/src/mame/video/cvs.c index 7ee3eb8fe64..1b1c504852d 100644 --- a/src/mame/video/cvs.c +++ b/src/mame/video/cvs.c @@ -233,13 +233,11 @@ VIDEO_UPDATE( cvs ) /* ROM based tiles first */ for (code = 0; code < ram_based_char_start_indecies[character_banking_mode]; code++) - decodechar(machine->gfx[0], code, memory_region(REGION_GFX1), - machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0], code, memory_region(REGION_GFX1)); /* now the RAM based ones */ for (; code < 0x100; code++) - decodechar(machine->gfx[0], code, cvs_character_ram, - machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0], code, cvs_character_ram); /* draw the background */ diff --git a/src/mame/video/decocass.c b/src/mame/video/decocass.c index 04329dd08b3..72fa56ebe5d 100644 --- a/src/mame/video/decocass.c +++ b/src/mame/video/decocass.c @@ -519,7 +519,7 @@ static void decode_modified(running_machine* machine, UINT8 *sprite_ram, int int switch (char_dirty[code]) { case 1: - decodechar(machine->gfx[0],code,decocass_charram,machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0],code,decocass_charram); char_dirty[code] = 2; /* fall through */ case 2: @@ -546,7 +546,7 @@ static void decode_modified(running_machine* machine, UINT8 *sprite_ram, int int { sprite_dirty[code] = 0; - decodechar(machine->gfx[1],code,decocass_charram,machine->drv->gfxdecodeinfo[1].gfxlayout); + decodechar(machine->gfx[1],code,decocass_charram); } } @@ -559,7 +559,7 @@ static void decode_modified(running_machine* machine, UINT8 *sprite_ram, int int { tile_dirty[code] = 0; - decodechar(machine->gfx[2],code,decocass_tileram,machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar(machine->gfx[2],code,decocass_tileram); /* mark all visible tiles dirty */ for (i = offs; i < decocass_bgvideoram_size; i++) @@ -571,8 +571,8 @@ static void decode_modified(running_machine* machine, UINT8 *sprite_ram, int int /* decode object if it is dirty */ if (object_dirty) { - decodechar(machine->gfx[3], 0, decocass_objectram, machine->drv->gfxdecodeinfo[3].gfxlayout); - decodechar(machine->gfx[3], 1, decocass_objectram, machine->drv->gfxdecodeinfo[3].gfxlayout); + decodechar(machine->gfx[3], 0, decocass_objectram); + decodechar(machine->gfx[3], 1, decocass_objectram); object_dirty = 0; } } diff --git a/src/mame/video/f1gp.c b/src/mame/video/f1gp.c index fbee23d2261..853691ef74a 100644 --- a/src/mame/video/f1gp.c +++ b/src/mame/video/f1gp.c @@ -330,25 +330,6 @@ static void f1gpb_draw_sprites(running_machine *machine, mame_bitmap *bitmap,con VIDEO_UPDATE( f1gp ) { - static const gfx_layout tilelayout = - { - 16,16, - TOTAL_CHARS, - 4, - { 0, 1, 2, 3 }, -#ifdef LSB_FIRST - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4, - 10*4, 11*4, 8*4, 9*4, 14*4, 15*4, 12*4, 13*4 }, -#else - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, - 8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4 }, -#endif - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 64*16, - }; - - if (dirtygfx) { int i; @@ -360,7 +341,7 @@ VIDEO_UPDATE( f1gp ) if (dirtychar[i]) { dirtychar[i] = 0; - decodechar(machine->gfx[3],i,(UINT8 *)zoomdata,&tilelayout); + decodechar(machine->gfx[3],i,(UINT8 *)zoomdata); } } @@ -394,25 +375,6 @@ VIDEO_UPDATE( f1gpb ) UINT32 startx,starty; int incxx,incxy,incyx,incyy; - static const gfx_layout tilelayout = - { - 16,16, - TOTAL_CHARS, - 4, - { 0, 1, 2, 3 }, -#ifdef LSB_FIRST - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4, - 10*4, 11*4, 8*4, 9*4, 14*4, 15*4, 12*4, 13*4 }, -#else - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, - 8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4 }, -#endif - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 64*16, - }; - - if (dirtygfx) { int i; @@ -424,7 +386,7 @@ VIDEO_UPDATE( f1gpb ) if (dirtychar[i]) { dirtychar[i] = 0; - decodechar(machine->gfx[3],i,(UINT8 *)zoomdata,&tilelayout); + decodechar(machine->gfx[3],i,(UINT8 *)zoomdata); } } diff --git a/src/mame/video/gottlieb.c b/src/mame/video/gottlieb.c index 7282707de33..501ea4ef7e5 100644 --- a/src/mame/video/gottlieb.c +++ b/src/mame/video/gottlieb.c @@ -141,8 +141,7 @@ WRITE8_HANDLER( gottlieb_charram_w ) { gottlieb_charram[offset] = data; - decodechar(Machine->gfx[0], offset / 32, gottlieb_charram, - Machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(Machine->gfx[0], offset / 32, gottlieb_charram); tilemap_mark_all_tiles_dirty(bg_tilemap); } diff --git a/src/mame/video/gradius3.c b/src/mame/video/gradius3.c index 14b75ecfc1f..203e3354d14 100644 --- a/src/mame/video/gradius3.c +++ b/src/mame/video/gradius3.c @@ -63,26 +63,13 @@ static void gradius3_sprite_callback(int *code,int *color,int *priority_mask,int VIDEO_START( gradius3 ) { int i; - static const gfx_layout spritelayout = - { - 16,16, - TOTAL_SPRITES, - 4, - { 0, 1, 2, 3 }, - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4, - 32*8+2*4, 32*8+3*4, 32*8+0*4, 32*8+1*4, 32*8+6*4, 32*8+7*4, 32*8+4*4, 32*8+5*4 }, - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, - 64*8+0*32, 64*8+1*32, 64*8+2*32, 64*8+3*32, 64*8+4*32, 64*8+5*32, 64*8+6*32, 64*8+7*32 }, - 128*8 - }; - layer_colorbase[0] = 0; layer_colorbase[1] = 32; layer_colorbase[2] = 48; sprite_colorbase = 16; - K052109_vh_start(machine,REGION_GFX1,NORMAL_PLANE_ORDER,gradius3_tile_callback); - K051960_vh_start(machine,REGION_GFX2,REVERSE_PLANE_ORDER,gradius3_sprite_callback); + K052109_vh_start(machine,REGION_GFX1,GRADIUS3_PLANE_ORDER,gradius3_tile_callback); + K051960_vh_start(machine,REGION_GFX2,GRADIUS3_PLANE_ORDER,gradius3_sprite_callback); K052109_set_layer_offsets(2, -2, 0); K051960_set_sprite_offsets(2, 0); @@ -90,7 +77,7 @@ VIDEO_START( gradius3 ) /* re-decode the sprites because the ROMs are connected to the custom IC differently from how they are connected to the CPU. */ for (i = 0;i < TOTAL_SPRITES;i++) - decodechar(machine->gfx[1],i,memory_region(REGION_GFX2),&spritelayout); + decodechar(machine->gfx[1],i,memory_region(REGION_GFX2)); dirtychar = auto_malloc(TOTAL_CHARS); memset(dirtychar,1,TOTAL_CHARS); @@ -132,21 +119,6 @@ WRITE16_HANDLER( gradius3_gfxram_w ) VIDEO_UPDATE( gradius3 ) { - static const gfx_layout charlayout = - { - 8,8, - TOTAL_CHARS, - 4, - { 0, 1, 2, 3 }, -#ifdef LSB_FIRST - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }, -#else - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 }, -#endif - { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, - 32*8 - }; - /* TODO: this kludge enforces the char banks. For some reason, they don't work otherwise. */ K052109_w(0x1d80,0x10); K052109_w(0x1f00,0x32); @@ -162,7 +134,7 @@ VIDEO_UPDATE( gradius3 ) if (dirtychar[i]) { dirtychar[i] = 0; - decodechar(machine->gfx[0],i,(UINT8 *)gradius3_gfxram,&charlayout); + decodechar(machine->gfx[0],i,(UINT8 *)gradius3_gfxram); } } diff --git a/src/mame/video/konamiic.c b/src/mame/video/konamiic.c index 4b274bce264..836ae154aae 100644 --- a/src/mame/video/konamiic.c +++ b/src/mame/video/konamiic.c @@ -1990,6 +1990,20 @@ void K052109_vh_start(running_machine *machine,int gfx_memory_region,int plane_o { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, 32*8 }; + static const gfx_layout charlayout_gradius3 = + { + 8,8, + 0, + 4, + { 0, 1, 2, 3 }, +#ifdef LSB_FIRST + { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }, +#else + { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 }, +#endif + { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, + 32*8 + }; /* find first empty slot to decode gfx */ @@ -2006,6 +2020,11 @@ void K052109_vh_start(running_machine *machine,int gfx_memory_region,int plane_o decode_gfx(machine, gfx_index, memory_region(gfx_memory_region), total, &charlayout, 4); break; + case GRADIUS3_PLANE_ORDER: + total = 0x1000; + decode_gfx(machine, gfx_index, memory_region(gfx_memory_region), total, &charlayout_gradius3, 4); + break; + default: fatalerror("Unsupported plane_order"); } @@ -2475,6 +2494,18 @@ void K051960_vh_start(running_machine *machine,int gfx_memory_region,int plane_o 16*32, 17*32, 18*32, 19*32, 20*32, 21*32, 22*32, 23*32 }, 128*8 }; + static const gfx_layout spritelayout_gradius3 = + { + 16,16, + 0, + 4, + { 0, 1, 2, 3 }, + { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4, + 32*8+2*4, 32*8+3*4, 32*8+0*4, 32*8+1*4, 32*8+6*4, 32*8+7*4, 32*8+4*4, 32*8+5*4 }, + { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, + 64*8+0*32, 64*8+1*32, 64*8+2*32, 64*8+3*32, 64*8+4*32, 64*8+5*32, 64*8+6*32, 64*8+7*32 }, + 128*8 + }; /* find first empty slot to decode gfx */ for (gfx_index = 0; gfx_index < MAX_GFX_ELEMENTS; gfx_index++) @@ -2496,6 +2527,11 @@ void K051960_vh_start(running_machine *machine,int gfx_memory_region,int plane_o decode_gfx(machine, gfx_index, memory_region(gfx_memory_region), total, &spritelayout_reverse, 4); break; + case GRADIUS3_PLANE_ORDER: + total = 0x4000; + decode_gfx(machine, gfx_index, memory_region(gfx_memory_region), total, &spritelayout_gradius3, 4); + break; + default: fatalerror("Unknown plane_order"); } @@ -4597,6 +4633,23 @@ static void K051316_vh_start(running_machine *machine,int chip, int gfx_memory_r 8*128, 9*128, 10*128, 11*128, 12*128, 13*128, 14*128, 15*128 }, 256*8 }; + static const gfx_layout charlayout_tail2nos = + { + 16,16, + 0, + 4, + { 0, 1, 2, 3 }, +#ifdef LSB_FIRST + { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4, + 10*4, 11*4, 8*4, 9*4, 14*4, 15*4, 12*4, 13*4 }, +#else + { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, + 8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4 }, +#endif + { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, + 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, + 128*8 + }; static const tile_get_info_callback get_tile_info[3] = { K051316_get_tile_info0,K051316_get_tile_info1,K051316_get_tile_info2 }; /* find first empty slot to decode gfx */ @@ -4608,6 +4661,12 @@ static void K051316_vh_start(running_machine *machine,int chip, int gfx_memory_r /* decode the graphics */ switch (bpp) { + case -4: + total = 0x400; + bpp = 4; + decode_gfx(machine, gfx_index, memory_region(gfx_memory_region), total, &charlayout_tail2nos, 4); + break; + case 4: total = memory_region_length(gfx_memory_region) / 128; decode_gfx(machine, gfx_index, memory_region(gfx_memory_region), total, &charlayout4, 4); diff --git a/src/mame/video/konamiic.h b/src/mame/video/konamiic.h index 3805c4284b0..865a7a1380f 100644 --- a/src/mame/video/konamiic.h +++ b/src/mame/video/konamiic.h @@ -46,6 +46,7 @@ permutations which may be required). */ #define NORMAL_PLANE_ORDER 0x0123 #define REVERSE_PLANE_ORDER 0x3210 +#define GRADIUS3_PLANE_ORDER 0x1111 /* diff --git a/src/mame/video/lemmings.c b/src/mame/video/lemmings.c index 10886630fe7..7e34ad90423 100644 --- a/src/mame/video/lemmings.c +++ b/src/mame/video/lemmings.c @@ -171,7 +171,7 @@ VIDEO_UPDATE( lemmings ) /* Decode any characters that have changed in vram */ for (i=0; i<2048; i++) { if (vram_dirty[i]) { - decodechar(machine->gfx[2],i,vram_buffer,machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar(machine->gfx[2],i,vram_buffer); tilemap_mark_tile_dirty(vram_tilemap,i); vram_dirty[i]=0; } diff --git a/src/mame/video/namcona1.c b/src/mame/video/namcona1.c index 86e28b83132..66cca49f864 100644 --- a/src/mame/video/namcona1.c +++ b/src/mame/video/namcona1.c @@ -207,8 +207,8 @@ static void update_gfx(running_machine *machine) if( dirtychar[i] ) { dirtychar[i] = 0; - decodechar(machine->gfx[0],i,(UINT8 *)cgram,&cg_layout); - decodechar(machine->gfx[1],i,(UINT8 *)shaperam,&shape_layout); + decodechar(machine->gfx[0],i,(UINT8 *)cgram); + decodechar(machine->gfx[1],i,(UINT8 *)shaperam); } } dirtygfx = 0; diff --git a/src/mame/video/namcos22.c b/src/mame/video/namcos22.c index 90e467addec..270c2ebc820 100644 --- a/src/mame/video/namcos22.c +++ b/src/mame/video/namcos22.c @@ -1571,7 +1571,7 @@ static void DrawCharacterLayer(running_machine *machine, mame_bitmap *bitmap, co { if( cgdirty[i] ) { - decodechar( machine->gfx[GFX_CHAR],i,(UINT8 *)namcos22_cgram,&namcos22_cg_layout ); + decodechar( machine->gfx[GFX_CHAR],i,(UINT8 *)namcos22_cgram ); cgdirty[i] = 0; } } diff --git a/src/mame/video/nemesis.c b/src/mame/video/nemesis.c index 5e8ad3a365d..8b0b684d468 100644 --- a/src/mame/video/nemesis.c +++ b/src/mame/video/nemesis.c @@ -237,8 +237,7 @@ VIDEO_START( nemesis ) blank_characterdata = auto_malloc(32*8/8*(2048+1)); memset(blank_characterdata,0x00,32*8/8*(2048+1)); - decodechar(machine->gfx[0],0x800,(UINT8 *)blank_characterdata, - machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0],0x800,(UINT8 *)blank_characterdata); flipscreen = 0; tilemap_flip = 0; @@ -341,8 +340,7 @@ static void update_gfx(running_machine *machine) { if (sprite_dirty[4][offs]) { - decodechar(machine->gfx[0],offs,(UINT8 *)nemesis_characterram, - machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0],offs,(UINT8 *)nemesis_characterram); bAnyDirty = 1; sprite_dirty[4][offs] = 0; } @@ -376,8 +374,7 @@ static void update_gfx(running_machine *machine) char_type = sprite_data[idx].char_type; if (sprite_dirty[idx][code] == 1) { - decodechar(machine->gfx[char_type],code,(UINT8 *)nemesis_characterram, - machine->drv->gfxdecodeinfo[char_type].gfxlayout); + decodechar(machine->gfx[char_type],code,(UINT8 *)nemesis_characterram); sprite_dirty[idx][code] = 0; } } diff --git a/src/mame/video/polyplay.c b/src/mame/video/polyplay.c index 7a85b46793e..c5fed0aa086 100644 --- a/src/mame/video/polyplay.c +++ b/src/mame/video/polyplay.c @@ -57,7 +57,7 @@ VIDEO_UPDATE( polyplay ) if (dirtycharacter[code]) { - decodechar(machine->gfx[1], code & 0x7f, polyplay_characterram, machine->drv->gfxdecodeinfo[1].gfxlayout); + decodechar(machine->gfx[1], code & 0x7f, polyplay_characterram); dirtycharacter[code] = 0; } diff --git a/src/mame/video/ppu2c0x.c b/src/mame/video/ppu2c0x.c index 618005383a3..365a5f5ac34 100644 --- a/src/mame/video/ppu2c0x.c +++ b/src/mame/video/ppu2c0x.c @@ -895,7 +895,7 @@ logerror("vlbank starting\n"); { if ( dirtyarray[i] ) { - decodechar( gfx, i, vram, &ppu_charlayout); + decodechar( gfx, i, vram ); dirtyarray[i] = 0; } } diff --git a/src/mame/video/redalert.c b/src/mame/video/redalert.c index 3b1cd86cdf8..90e47d7af5e 100644 --- a/src/mame/video/redalert.c +++ b/src/mame/video/redalert.c @@ -184,8 +184,7 @@ VIDEO_UPDATE( redalert ) /* decode modified background */ if (redalert_dirtyback[offs] == 1) { - decodechar(machine->gfx[0],offs,redalert_backram, - machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0],offs,redalert_backram); redalert_dirtyback[offs] = 2; } @@ -193,18 +192,15 @@ VIDEO_UPDATE( redalert ) if (redalert_dirtycharacter[charcode] == 1) { if (charcode < 0x80) - decodechar(machine->gfx[1],charcode,redalert_characterram, - machine->drv->gfxdecodeinfo[1].gfxlayout); + decodechar(machine->gfx[1],charcode,redalert_characterram); else - decodechar(machine->gfx[2],charcode-0x80,redalert_spriteram1, - machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar(machine->gfx[2],charcode-0x80,redalert_spriteram1); redalert_dirtycharacter[charcode] = 2; } if (redalert_dirtycharacter2[charcode] == 1) { - decodechar(machine->gfx[3],charcode-0x80,redalert_spriteram3, - machine->drv->gfxdecodeinfo[3].gfxlayout); + decodechar(machine->gfx[3],charcode-0x80,redalert_spriteram3); redalert_dirtycharacter2[charcode] = 2; } diff --git a/src/mame/video/rockola.c b/src/mame/video/rockola.c index 1f34917b6a9..fb07854e84c 100644 --- a/src/mame/video/rockola.c +++ b/src/mame/video/rockola.c @@ -168,8 +168,7 @@ static TILE_GET_INFO( get_fg_tile_info ) int code = rockola_videoram2[tile_index]; int color = colorram[tile_index] & 0x07; - decodechar(machine->gfx[0], code, rockola_charram, - machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0], code, rockola_charram); SET_TILE_INFO(0, code, color, 0); } @@ -292,8 +291,7 @@ static TILE_GET_INFO( satansat_get_fg_tile_info ) int code = rockola_videoram2[tile_index]; int color = colorram[tile_index] & 0x03; - decodechar(machine->gfx[0], code, rockola_charram, - machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0], code, rockola_charram); SET_TILE_INFO(0, code, color, 0); } diff --git a/src/mame/video/segag80r.c b/src/mame/video/segag80r.c index 5cfb5e401e7..9b1e0223525 100644 --- a/src/mame/video/segag80r.c +++ b/src/mame/video/segag80r.c @@ -661,7 +661,7 @@ static void draw_videoram(running_machine *machine, mame_bitmap *bitmap, const r /* if the tile is dirty, decode it */ if (dirtychar[tile]) { - decodechar(machine->gfx[0], tile, &videoram[0x800], machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0], tile, &videoram[0x800]); dirtychar[tile] = 0; } diff --git a/src/mame/video/segaic24.c b/src/mame/video/segaic24.c index b0790cdc178..5355be8a774 100644 --- a/src/mame/video/segaic24.c +++ b/src/mame/video/segaic24.c @@ -182,7 +182,7 @@ void sys24_tile_update(running_machine *machine) for(i=0; igfx[sys24_char_gfx_index], i, (UINT8 *)sys24_char_ram, &sys24_char_layout); + decodechar(machine->gfx[sys24_char_gfx_index], i, (UINT8 *)sys24_char_ram); } } tilemap_mark_all_tiles_dirty(sys24_tile_layer[0]); diff --git a/src/mame/video/skychut.c b/src/mame/video/skychut.c index ee4570b50a2..2a187c1b213 100644 --- a/src/mame/video/skychut.c +++ b/src/mame/video/skychut.c @@ -73,7 +73,7 @@ WRITE8_HANDLER( iremm15_chargen_w ) { state->chargen[offset] = data; /* not very effective ... dirty would be better */ - decodechar(Machine->gfx[0],offset >> 3,state->chargen, &Machine->gfx[0]->layout); + decodechar(Machine->gfx[0],offset >> 3,state->chargen); } } diff --git a/src/mame/video/ssv.c b/src/mame/video/ssv.c index f50c87828c7..c6cbb126ffc 100644 --- a/src/mame/video/ssv.c +++ b/src/mame/video/ssv.c @@ -930,8 +930,8 @@ VIDEO_UPDATE( eaglshot ) { eaglshot_dirty_tile[tile] = 0; - decodechar(machine->gfx[0], tile, (UINT8 *)eaglshot_gfxram, machine->drv->gfxdecodeinfo[0].gfxlayout); - decodechar(machine->gfx[1], tile, (UINT8 *)eaglshot_gfxram, machine->drv->gfxdecodeinfo[1].gfxlayout); + decodechar(machine->gfx[0], tile, (UINT8 *)eaglshot_gfxram); + decodechar(machine->gfx[1], tile, (UINT8 *)eaglshot_gfxram); } } } @@ -1120,7 +1120,7 @@ VIDEO_UPDATE( gdfs ) { eaglshot_dirty_tile[tile] = 0; - decodechar(machine->gfx[2], tile, (UINT8 *)eaglshot_gfxram, machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar(machine->gfx[2], tile, (UINT8 *)eaglshot_gfxram); } } } diff --git a/src/mame/video/st0016.c b/src/mame/video/st0016.c index ec93155a2b1..1ef6c085639 100644 --- a/src/mame/video/st0016.c +++ b/src/mame/video/st0016.c @@ -116,7 +116,7 @@ READ8_HANDLER(st0016_character_ram_r) WRITE8_HANDLER(st0016_character_ram_w) { st0016_charram[ST0016_CHAR_BANK_SIZE*st0016_char_bank+offset]=data; - decodechar(Machine->gfx[st0016_ramgfx], st0016_char_bank,(UINT8 *) st0016_charram, &charlayout); + decodechar(Machine->gfx[st0016_ramgfx], st0016_char_bank,(UINT8 *) st0016_charram); } READ8_HANDLER(st0016_vregs_r) @@ -422,7 +422,7 @@ static void st0016_postload(void) int i; st0016_rom_bank_w(0,st0016_rom_bank); for(i=0;igfx[st0016_ramgfx], i,(UINT8 *) st0016_charram, &charlayout); + decodechar(Machine->gfx[st0016_ramgfx], i,(UINT8 *) st0016_charram); } diff --git a/src/mame/video/stactics.c b/src/mame/video/stactics.c index 8b8d85e7592..7a47df4c389 100644 --- a/src/mame/video/stactics.c +++ b/src/mame/video/stactics.c @@ -282,8 +282,7 @@ VIDEO_START( stactics ) { decodechar(machine->gfx[4], i, - firechar, - machine->drv->gfxdecodeinfo[4].gfxlayout); + firechar); } /* Decode the Fire Beam ROM for later */ @@ -312,8 +311,7 @@ VIDEO_START( stactics ) { decodechar(machine->gfx[5], i, - stactics_special_chars, - machine->drv->gfxdecodeinfo[5].gfxlayout); + stactics_special_chars); } stactics_vblank_count = 0; @@ -517,8 +515,7 @@ VIDEO_UPDATE( stactics ) { decodechar(machine->gfx[3], char_number, - stactics_chardata_d, - machine->drv->gfxdecodeinfo[3].gfxlayout); + stactics_chardata_d); dirty_chardata_d[char_number] = 2; dirty_videoram_d[offs] = 1; } @@ -546,8 +543,7 @@ VIDEO_UPDATE( stactics ) { decodechar(machine->gfx[2], char_number, - stactics_chardata_e, - machine->drv->gfxdecodeinfo[2].gfxlayout); + stactics_chardata_e); dirty_chardata_e[char_number] = 2; dirty_videoram_e[offs] = 1; } @@ -575,8 +571,7 @@ VIDEO_UPDATE( stactics ) { decodechar(machine->gfx[1], char_number, - stactics_chardata_f, - machine->drv->gfxdecodeinfo[1].gfxlayout); + stactics_chardata_f); dirty_chardata_f[char_number] = 2; dirty_videoram_f[offs] = 1; } @@ -604,8 +599,7 @@ VIDEO_UPDATE( stactics ) { decodechar(machine->gfx[0], char_number, - stactics_chardata_b, - machine->drv->gfxdecodeinfo[0].gfxlayout); + stactics_chardata_b); dirty_chardata_b[char_number] = 2; dirty_videoram_b[offs] = 1; } diff --git a/src/mame/video/stvvdp2.c b/src/mame/video/stvvdp2.c index 2135ca2bd50..d792bc7aa0f 100644 --- a/src/mame/video/stvvdp2.c +++ b/src/mame/video/stvvdp2.c @@ -3640,14 +3640,14 @@ static void stv_vdp2_draw_basic_tilemap(running_machine *machine, mame_bitmap *b tilecode &=0x3fff; if (stv2_current_tilemap.tile_size==1) { /* we're treating 16x16 tiles as 4 8x8's atm */ - if (stv_vdp2_vram_dirty_8x8x8[tilecode] == 1) { stv_vdp2_vram_dirty_8x8x8[tilecode] = 0; decodechar(machine->gfx[2], tilecode, stv_vdp2_gfx_decode + gfx_mem_offset, machine->drv->gfxdecodeinfo[2].gfxlayout); }; - if (stv_vdp2_vram_dirty_8x8x8[tilecode+1] == 1) { stv_vdp2_vram_dirty_8x8x8[tilecode+1] = 0; decodechar(machine->gfx[2], tilecode+1, stv_vdp2_gfx_decode + gfx_mem_offset, machine->drv->gfxdecodeinfo[2].gfxlayout); }; - if (stv_vdp2_vram_dirty_8x8x8[tilecode+2] == 1) { stv_vdp2_vram_dirty_8x8x8[tilecode+2] = 0; decodechar(machine->gfx[2], tilecode+2, stv_vdp2_gfx_decode + gfx_mem_offset, machine->drv->gfxdecodeinfo[2].gfxlayout); }; - if (stv_vdp2_vram_dirty_8x8x8[tilecode+3] == 1) { stv_vdp2_vram_dirty_8x8x8[tilecode+3] = 0; decodechar(machine->gfx[2], tilecode+3, stv_vdp2_gfx_decode + gfx_mem_offset, machine->drv->gfxdecodeinfo[2].gfxlayout); }; + if (stv_vdp2_vram_dirty_8x8x8[tilecode] == 1) { stv_vdp2_vram_dirty_8x8x8[tilecode] = 0; decodechar(machine->gfx[2], tilecode, stv_vdp2_gfx_decode + gfx_mem_offset); }; + if (stv_vdp2_vram_dirty_8x8x8[tilecode+1] == 1) { stv_vdp2_vram_dirty_8x8x8[tilecode+1] = 0; decodechar(machine->gfx[2], tilecode+1, stv_vdp2_gfx_decode + gfx_mem_offset); }; + if (stv_vdp2_vram_dirty_8x8x8[tilecode+2] == 1) { stv_vdp2_vram_dirty_8x8x8[tilecode+2] = 0; decodechar(machine->gfx[2], tilecode+2, stv_vdp2_gfx_decode + gfx_mem_offset); }; + if (stv_vdp2_vram_dirty_8x8x8[tilecode+3] == 1) { stv_vdp2_vram_dirty_8x8x8[tilecode+3] = 0; decodechar(machine->gfx[2], tilecode+3, stv_vdp2_gfx_decode + gfx_mem_offset); }; } else { - if (stv_vdp2_vram_dirty_8x8x8[tilecode] == 1) { stv_vdp2_vram_dirty_8x8x8[tilecode] = 0; decodechar(machine->gfx[2], tilecode, stv_vdp2_gfx_decode + gfx_mem_offset, machine->drv->gfxdecodeinfo[2].gfxlayout); }; + if (stv_vdp2_vram_dirty_8x8x8[tilecode] == 1) { stv_vdp2_vram_dirty_8x8x8[tilecode] = 0; decodechar(machine->gfx[2], tilecode, stv_vdp2_gfx_decode + gfx_mem_offset); }; } } @@ -3659,14 +3659,14 @@ static void stv_vdp2_draw_basic_tilemap(running_machine *machine, mame_bitmap *b tilecode &=0x7fff; if (stv2_current_tilemap.tile_size==1) { /* we're treating 16x16 tiles as 4 8x8's atm */ - if (stv_vdp2_vram_dirty_8x8x4[tilecode] == 1) { stv_vdp2_vram_dirty_8x8x4[tilecode] = 0; decodechar(machine->gfx[0], tilecode, stv_vdp2_gfx_decode, machine->drv->gfxdecodeinfo[0].gfxlayout); }; - if (stv_vdp2_vram_dirty_8x8x4[tilecode+1] == 1) { stv_vdp2_vram_dirty_8x8x4[tilecode+1] = 0; decodechar(machine->gfx[0], tilecode+1, stv_vdp2_gfx_decode, machine->drv->gfxdecodeinfo[0].gfxlayout); }; - if (stv_vdp2_vram_dirty_8x8x4[tilecode+2] == 1) { stv_vdp2_vram_dirty_8x8x4[tilecode+2] = 0; decodechar(machine->gfx[0], tilecode+2, stv_vdp2_gfx_decode, machine->drv->gfxdecodeinfo[0].gfxlayout); }; - if (stv_vdp2_vram_dirty_8x8x4[tilecode+3] == 1) { stv_vdp2_vram_dirty_8x8x4[tilecode+3] = 0; decodechar(machine->gfx[0], tilecode+3, stv_vdp2_gfx_decode, machine->drv->gfxdecodeinfo[0].gfxlayout); }; + if (stv_vdp2_vram_dirty_8x8x4[tilecode] == 1) { stv_vdp2_vram_dirty_8x8x4[tilecode] = 0; decodechar(machine->gfx[0], tilecode, stv_vdp2_gfx_decode); }; + if (stv_vdp2_vram_dirty_8x8x4[tilecode+1] == 1) { stv_vdp2_vram_dirty_8x8x4[tilecode+1] = 0; decodechar(machine->gfx[0], tilecode+1, stv_vdp2_gfx_decode); }; + if (stv_vdp2_vram_dirty_8x8x4[tilecode+2] == 1) { stv_vdp2_vram_dirty_8x8x4[tilecode+2] = 0; decodechar(machine->gfx[0], tilecode+2, stv_vdp2_gfx_decode); }; + if (stv_vdp2_vram_dirty_8x8x4[tilecode+3] == 1) { stv_vdp2_vram_dirty_8x8x4[tilecode+3] = 0; decodechar(machine->gfx[0], tilecode+3, stv_vdp2_gfx_decode); }; } else { - if (stv_vdp2_vram_dirty_8x8x4[tilecode] == 1) { stv_vdp2_vram_dirty_8x8x4[tilecode] = 0; decodechar(machine->gfx[0], tilecode, stv_vdp2_gfx_decode, machine->drv->gfxdecodeinfo[0].gfxlayout); }; + if (stv_vdp2_vram_dirty_8x8x4[tilecode] == 1) { stv_vdp2_vram_dirty_8x8x4[tilecode] = 0; decodechar(machine->gfx[0], tilecode, stv_vdp2_gfx_decode); }; } } /* TILES ARE NOW DECODED */ diff --git a/src/mame/video/suprnova.c b/src/mame/video/suprnova.c index 6f05978bc10..f653b6dee18 100644 --- a/src/mame/video/suprnova.c +++ b/src/mame/video/suprnova.c @@ -898,7 +898,7 @@ VIDEO_UPDATE(skns) { if (skns_v3t_dirty[i] == 1) { - decodechar(machine->gfx[1], i, (UINT8*)btiles, machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[1], i, (UINT8*)btiles); skns_v3t_dirty[i] = 0; } @@ -924,7 +924,7 @@ VIDEO_UPDATE(skns) { if (skns_v3t_4bppdirty[i] == 1) { - decodechar(machine->gfx[3], i, (UINT8*)btiles, machine->drv->gfxdecodeinfo[3].gfxlayout); + decodechar(machine->gfx[3], i, (UINT8*)btiles); skns_v3t_4bppdirty[i] = 0; } diff --git a/src/mame/video/tail2nos.c b/src/mame/video/tail2nos.c index 261659890de..c6406f8335f 100644 --- a/src/mame/video/tail2nos.c +++ b/src/mame/video/tail2nos.c @@ -54,7 +54,7 @@ VIDEO_START( tail2nos ) { bg_tilemap = tilemap_create(get_tile_info,tilemap_scan_rows,TILEMAP_TYPE_PEN,8,8,64,32); - K051316_vh_start_0(machine,REGION_GFX3,4,TRUE,0,zoom_callback); + K051316_vh_start_0(machine,REGION_GFX3,-4,TRUE,0,zoom_callback); dirtychar = auto_malloc(TOTAL_CHARS); memset(dirtychar,1,TOTAL_CHARS); @@ -164,25 +164,6 @@ static void draw_sprites(running_machine *machine, mame_bitmap *bitmap,const rec VIDEO_UPDATE( tail2nos ) { - static const gfx_layout tilelayout = - { - 16,16, - TOTAL_CHARS, - 4, - { 0, 1, 2, 3 }, -#ifdef LSB_FIRST - { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4, - 10*4, 11*4, 8*4, 9*4, 14*4, 15*4, 12*4, 13*4 }, -#else - { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4, - 8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4 }, -#endif - { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, - 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 }, - 128*8 - }; - - if (dirtygfx) { int i; @@ -194,7 +175,7 @@ VIDEO_UPDATE( tail2nos ) if (dirtychar[i]) { dirtychar[i] = 0; - decodechar(machine->gfx[2],i,(UINT8 *)zoomdata,&tilelayout); + decodechar(machine->gfx[2],i,(UINT8 *)zoomdata); } } diff --git a/src/mame/video/taito_f3.c b/src/mame/video/taito_f3.c index b82411d3b9b..b778cb3fc55 100644 --- a/src/mame/video/taito_f3.c +++ b/src/mame/video/taito_f3.c @@ -3246,7 +3246,7 @@ VIDEO_UPDATE( f3 ) if (vram_changed) for (tile = 0;tile < 256;tile++) if (vram_dirty[tile]) { - decodechar(machine->gfx[0],tile,(UINT8 *)f3_vram,machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0],tile,(UINT8 *)f3_vram); tilemap_mark_all_tiles_dirty(vram_layer); // TODO //tilemap_mark_tile_dirty(vram_layer,tile); vram_dirty[tile]=0; @@ -3256,7 +3256,7 @@ VIDEO_UPDATE( f3 ) if (pivot_changed) for (tile = 0;tile < 2048;tile++) if (pivot_dirty[tile]) { - decodechar(machine->gfx[3],tile,(UINT8 *)f3_pivot_ram,machine->drv->gfxdecodeinfo[3].gfxlayout); + decodechar(machine->gfx[3],tile,(UINT8 *)f3_pivot_ram); tilemap_mark_tile_dirty(pixel_layer,tile); pivot_dirty[tile]=0; } diff --git a/src/mame/video/taito_l.c b/src/mame/video/taito_l.c index cd2c0378b9d..8b2771a73d4 100644 --- a/src/mame/video/taito_l.c +++ b/src/mame/video/taito_l.c @@ -159,57 +159,49 @@ READ8_HANDLER( taitol_control_r ) void taitol_chardef14_m(int offset) { - decodechar(Machine->gfx[2], offset/32, taitol_rambanks, - Machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar(Machine->gfx[2], offset/32, taitol_rambanks); tilemap_mark_all_tiles_dirty(ch1a_tilemap); } void taitol_chardef15_m(int offset) { - decodechar(Machine->gfx[2], offset/32+128, taitol_rambanks, - Machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar(Machine->gfx[2], offset/32+128, taitol_rambanks); tilemap_mark_all_tiles_dirty(ch1a_tilemap); } void taitol_chardef16_m(int offset) { - decodechar(Machine->gfx[2], offset/32+256, taitol_rambanks, - Machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar(Machine->gfx[2], offset/32+256, taitol_rambanks); tilemap_mark_all_tiles_dirty(ch1a_tilemap); } void taitol_chardef17_m(int offset) { - decodechar(Machine->gfx[2], offset/32+384, taitol_rambanks, - Machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar(Machine->gfx[2], offset/32+384, taitol_rambanks); tilemap_mark_all_tiles_dirty(ch1a_tilemap); } void taitol_chardef1c_m(int offset) { - decodechar(Machine->gfx[2], offset/32+512, taitol_rambanks + 0x4000, - Machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar(Machine->gfx[2], offset/32+512, taitol_rambanks + 0x4000); tilemap_mark_all_tiles_dirty(ch1a_tilemap); } void taitol_chardef1d_m(int offset) { - decodechar(Machine->gfx[2], offset/32+640, taitol_rambanks + 0x4000, - Machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar(Machine->gfx[2], offset/32+640, taitol_rambanks + 0x4000); tilemap_mark_all_tiles_dirty(ch1a_tilemap); } void taitol_chardef1e_m(int offset) { - decodechar(Machine->gfx[2], offset/32+768, taitol_rambanks + 0x4000, - Machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar(Machine->gfx[2], offset/32+768, taitol_rambanks + 0x4000); tilemap_mark_all_tiles_dirty(ch1a_tilemap); } void taitol_chardef1f_m(int offset) { - decodechar(Machine->gfx[2], offset/32+896, taitol_rambanks + 0x4000, - Machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar(Machine->gfx[2], offset/32+896, taitol_rambanks + 0x4000); tilemap_mark_all_tiles_dirty(ch1a_tilemap); } diff --git a/src/mame/video/taitoic.c b/src/mame/video/taitoic.c index 70dfcbbddfa..ffe39ee9e0c 100644 --- a/src/mame/video/taitoic.c +++ b/src/mame/video/taitoic.c @@ -1749,7 +1749,7 @@ void TC0080VCO_tilemap_update(running_machine *machine) { if (TC0080VCO_char_dirty[j]) decodechar(machine->gfx[TC0080VCO_tx_gfx],j, - (UINT8 *)TC0080VCO_char_ram,&TC0080VCO_charlayout); + (UINT8 *)TC0080VCO_char_ram); TC0080VCO_char_dirty[j] = 0; } TC0080VCO_chars_dirty = 0; @@ -2677,7 +2677,7 @@ void TC0100SCN_tilemap_update(running_machine *machine) { if (TC0100SCN_char_dirty[chip][j]) decodechar(machine->gfx[TC0100SCN_tx_gfx[chip]],j, - (UINT8 *)TC0100SCN_char_ram[chip],&TC0100SCN_charlayout); + (UINT8 *)TC0100SCN_char_ram[chip]); TC0100SCN_char_dirty[chip][j] = 0; } TC0100SCN_chars_dirty[chip] = 0; @@ -3545,7 +3545,7 @@ void TC0480SCP_tilemap_update(running_machine *machine) { if (TC0480SCP_char_dirty[j]) decodechar(machine->gfx[TC0480SCP_tx_gfx],j, - (UINT8 *)TC0480SCP_char_ram,&TC0480SCP_charlayout); + (UINT8 *)TC0480SCP_char_ram); TC0480SCP_char_dirty[j] = 0; } TC0480SCP_chars_dirty = 0; diff --git a/src/mame/video/taitojc.c b/src/mame/video/taitojc.c index 5a3808fa2d2..305d4d7457d 100644 --- a/src/mame/video/taitojc.c +++ b/src/mame/video/taitojc.c @@ -61,7 +61,7 @@ static void taitojc_tile_update(running_machine *machine) if (taitojc_dirty_map[i]) { taitojc_dirty_map[i] = 0; - decodechar(Machine->gfx[taitojc_gfx_index], i, (UINT8 *)taitojc_char_ram, &taitojc_char_layout); + decodechar(Machine->gfx[taitojc_gfx_index], i, (UINT8 *)taitojc_char_ram); } } tilemap_mark_all_tiles_dirty(taitojc_tilemap); diff --git a/src/mame/video/taitosj.c b/src/mame/video/taitosj.c index 5a520b5484e..4d69c1b1a5f 100644 --- a/src/mame/video/taitosj.c +++ b/src/mame/video/taitosj.c @@ -813,13 +813,13 @@ VIDEO_UPDATE( taitosj ) { if (dirtycharacter1[offs] == 1) { - decodechar(machine->gfx[0],offs,taitosj_characterram,machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0],offs,taitosj_characterram); dirtycharacter1[offs] = 0; alldirty = 1; } if (dirtycharacter2[offs] == 1) { - decodechar(machine->gfx[2],offs,taitosj_characterram + 0x1800,machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar(machine->gfx[2],offs,taitosj_characterram + 0x1800); dirtycharacter2[offs] = 0; alldirty = 1; } @@ -838,12 +838,12 @@ VIDEO_UPDATE( taitosj ) { if (dirtysprite1[offs] == 1) { - decodechar(machine->gfx[1],offs,taitosj_characterram,machine->drv->gfxdecodeinfo[1].gfxlayout); + decodechar(machine->gfx[1],offs,taitosj_characterram); dirtysprite1[offs] = 0; } if (dirtysprite2[offs] == 1) { - decodechar(machine->gfx[3],offs,taitosj_characterram + 0x1800,machine->drv->gfxdecodeinfo[3].gfxlayout); + decodechar(machine->gfx[3],offs,taitosj_characterram + 0x1800); dirtysprite2[offs] = 0; } } diff --git a/src/mame/video/tatsumi.c b/src/mame/video/tatsumi.c index 1c118d6afad..ab6ba6de968 100644 --- a/src/mame/video/tatsumi.c +++ b/src/mame/video/tatsumi.c @@ -51,8 +51,7 @@ WRITE16_HANDLER(roundup5_vram_w) offset=offset%0xc000; - decodechar(Machine->gfx[1],offset/0x10,(UINT8 *)roundup5_vram, - Machine->drv->gfxdecodeinfo[1].gfxlayout); + decodechar(Machine->gfx[1],offset/0x10,(UINT8 *)roundup5_vram); } diff --git a/src/mame/video/tiamc1.c b/src/mame/video/tiamc1.c index 1acf462fd15..e5da43484e9 100644 --- a/src/mame/video/tiamc1.c +++ b/src/mame/video/tiamc1.c @@ -123,8 +123,7 @@ static TILE_GET_INFO( get_bg1_tile_info ) { int code = tiamc1_tileram[tile_index]; - decodechar(machine->gfx[0], code, tiamc1_charram, - machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0], code, tiamc1_charram); SET_TILE_INFO(0, code, 0, 0); } @@ -133,8 +132,7 @@ static TILE_GET_INFO( get_bg2_tile_info ) { int code = tiamc1_tileram[tile_index + 1024]; - decodechar(machine->gfx[0], code, tiamc1_charram, - machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(machine->gfx[0], code, tiamc1_charram); SET_TILE_INFO(0, code, 0, 0); } diff --git a/src/mame/video/toaplan2.c b/src/mame/video/toaplan2.c index d8d77ac1407..c016ba6ece0 100644 --- a/src/mame/video/toaplan2.c +++ b/src/mame/video/toaplan2.c @@ -655,8 +655,7 @@ WRITE16_HANDLER( toaplan2_tx_gfxram16_w ) { int code = offset/32; COMBINE_DATA(&toaplan2_tx_gfxram16[offset]); - decodechar(Machine->gfx[2], code, toaplan2_tx_gfxram, - Machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar(Machine->gfx[2], code, toaplan2_tx_gfxram); tilemap_mark_all_tiles_dirty(tx_tilemap); } @@ -699,7 +698,7 @@ WRITE16_HANDLER( batrider_textdata_decode ) /* Decode text characters */ for (code = 0; code < 1024; code++) - decodechar (Machine->gfx[2], code, raizing_tx_gfxram, Machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar (Machine->gfx[2], code, raizing_tx_gfxram); tilemap_mark_all_tiles_dirty(tx_tilemap); } diff --git a/src/mame/video/tryout.c b/src/mame/video/tryout.c index 315d5447079..d67328f271b 100644 --- a/src/mame/video/tryout.c +++ b/src/mame/video/tryout.c @@ -140,7 +140,7 @@ WRITE8_HANDLER( tryout_vram_w ) break; } - decodechar(Machine->gfx[2],(offset-0x400/64)&0x7f,tryout_vram_gfx,Machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar(Machine->gfx[2],(offset-0x400/64)&0x7f,tryout_vram_gfx); tilemap_mark_all_tiles_dirty(bg_tilemap); } diff --git a/src/mame/video/usgames.c b/src/mame/video/usgames.c index 5cb13ffa71c..12de56ecf57 100644 --- a/src/mame/video/usgames.c +++ b/src/mame/video/usgames.c @@ -60,7 +60,7 @@ WRITE8_HANDLER( usg_charram_w ) { usg_charram[offset] = data; - decodechar(Machine->gfx[0], offset/8, usg_charram, Machine->drv->gfxdecodeinfo[0].gfxlayout); + decodechar(Machine->gfx[0], offset/8, usg_charram); tilemap_mark_all_tiles_dirty(usg_tilemap); } diff --git a/src/mame/video/zac2650.c b/src/mame/video/zac2650.c index 6257d87e92d..c9461cb7b2e 100644 --- a/src/mame/video/zac2650.c +++ b/src/mame/video/zac2650.c @@ -167,10 +167,10 @@ static void draw_sprites(running_machine *machine, mame_bitmap *bitmap) int x,y; /* 16x8 version */ - decodechar(machine->gfx[1],spriteno,s2636_1_ram,machine->drv->gfxdecodeinfo[1].gfxlayout); + decodechar(machine->gfx[1],spriteno,s2636_1_ram); /* 16x16 version */ - decodechar(machine->gfx[2],spriteno,s2636_1_ram,machine->drv->gfxdecodeinfo[2].gfxlayout); + decodechar(machine->gfx[2],spriteno,s2636_1_ram); /* Sprite->Background collision detection */ drawgfx(bitmap,machine->gfx[expand],