summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Alex W. Jackson <alex.w.jackson@gmail.com>2014-11-10 02:34:30 -0500
committer Alex W. Jackson <alex.w.jackson@gmail.com>2014-11-10 02:34:30 -0500
commitb33ff1a10137c8ceb04e4bf3988713f2e31d3c7c (patch)
tree6f87f9eb050a8790f9e2dd82bf3aef5e899d1d00
parent970fc85e7ad80ee4f2f1c2c8e9aa3fe2363cb25b (diff)
Taito device tilemap assert fixes, and clean up of obsolete stuff (nw)
-rw-r--r--src/mame/drivers/darius.c8
-rw-r--r--src/mame/drivers/opwolf.c12
-rw-r--r--src/mame/drivers/rainbow.c4
-rw-r--r--src/mame/drivers/rastan.c2
-rw-r--r--src/mame/drivers/slapshot.c6
-rw-r--r--src/mame/drivers/taito_f2.c20
-rw-r--r--src/mame/drivers/topspeed.c2
-rw-r--r--src/mame/includes/darius.h1
-rw-r--r--src/mame/includes/ninjaw.h1
-rw-r--r--src/mame/includes/warriorb.h1
-rw-r--r--src/mame/video/darius.c16
-rw-r--r--src/mame/video/ninjaw.c8
-rw-r--r--src/mame/video/tc0080vco.c6
-rw-r--r--src/mame/video/tc0100scn.c79
-rw-r--r--src/mame/video/tc0100scn.h12
-rw-r--r--src/mame/video/tc0480scp.c40
-rw-r--r--src/mame/video/warriorb.c9
17 files changed, 73 insertions, 154 deletions
diff --git a/src/mame/drivers/darius.c b/src/mame/drivers/darius.c
index aa741cc5261..17b9ec163d3 100644
--- a/src/mame/drivers/darius.c
+++ b/src/mame/drivers/darius.c
@@ -676,9 +676,9 @@ static const gfx_layout char2layout =
};
static GFXDECODE_START( darius )
- GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 256 ) /* sprites */
- GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 256 ) /* scr tiles */
- GFXDECODE_ENTRY( "gfx3", 0, char2layout, 0, 256 ) /* top layer scr tiles */
+ GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 128 ) /* sprites */
+ GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 128 ) /* scr tiles */
+ GFXDECODE_ENTRY( "gfx3", 0, char2layout, 0, 128 ) /* top layer scr tiles */
GFXDECODE_END
@@ -764,7 +764,7 @@ static MACHINE_CONFIG_START( darius, darius_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", "palette", darius)
- MCFG_PALETTE_ADD("palette", 4096*2)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEFAULT_LAYOUT(layout_darius)
diff --git a/src/mame/drivers/opwolf.c b/src/mame/drivers/opwolf.c
index 86f4153543f..8e8adca6040 100644
--- a/src/mame/drivers/opwolf.c
+++ b/src/mame/drivers/opwolf.c
@@ -666,13 +666,13 @@ static const gfx_layout tilelayout_b =
};
static GFXDECODE_START( opwolf )
- GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 256 ) /* sprites */
- GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 256 ) /* scr tiles */
+ GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 128 ) /* sprites */
+ GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 128 ) /* scr tiles */
GFXDECODE_END
static GFXDECODE_START( opwolfb )
- GFXDECODE_ENTRY( "gfx2", 0, tilelayout_b, 0, 256 ) /* sprites */
- GFXDECODE_ENTRY( "gfx1", 0, charlayout_b, 0, 256 ) /* scr tiles */
+ GFXDECODE_ENTRY( "gfx2", 0, tilelayout_b, 0, 128 ) /* sprites */
+ GFXDECODE_ENTRY( "gfx1", 0, charlayout_b, 0, 128 ) /* scr tiles */
GFXDECODE_END
@@ -704,7 +704,7 @@ static MACHINE_CONFIG_START( opwolf, opwolf_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", opwolf)
- MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_DEVICE_ADD("pc080sn", PC080SN, 0)
@@ -770,7 +770,7 @@ static MACHINE_CONFIG_START( opwolfb, opwolf_state ) /* OSC clocks unknown for t
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", opwolfb)
- MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB)
MCFG_DEVICE_ADD("pc080sn", PC080SN, 0)
diff --git a/src/mame/drivers/rainbow.c b/src/mame/drivers/rainbow.c
index 9d3e275e6ad..b62cd0eaecc 100644
--- a/src/mame/drivers/rainbow.c
+++ b/src/mame/drivers/rainbow.c
@@ -646,7 +646,7 @@ static MACHINE_CONFIG_START( rbisland, rbisland_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", rbisland)
- MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD("pc080sn", PC080SN, 0)
@@ -697,7 +697,7 @@ static MACHINE_CONFIG_START( jumping, rbisland_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", jumping)
- MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
MCFG_VIDEO_START_OVERRIDE(rbisland_state,jumping)
diff --git a/src/mame/drivers/rastan.c b/src/mame/drivers/rastan.c
index 0b0af4f9e01..1b431ebc9ba 100644
--- a/src/mame/drivers/rastan.c
+++ b/src/mame/drivers/rastan.c
@@ -376,7 +376,7 @@ static MACHINE_CONFIG_START( rastan, rastan_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", rastan)
- MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_ADD("palette", 2048)
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_DEVICE_ADD("pc080sn", PC080SN, 0)
diff --git a/src/mame/drivers/slapshot.c b/src/mame/drivers/slapshot.c
index 3173bee068f..501fcb3bb75 100644
--- a/src/mame/drivers/slapshot.c
+++ b/src/mame/drivers/slapshot.c
@@ -446,7 +446,7 @@ static const gfx_layout slapshot_charlayout =
static GFXDECODE_START( slapshot )
GFXDECODE_ENTRY( "gfx2", 0x0, tilelayout, 0, 256 ) /* sprite parts */
- GFXDECODE_ENTRY( "gfx1", 0x0, slapshot_charlayout, 0, 256 ) /* sprites & playfield */
+ GFXDECODE_ENTRY( "gfx1", 0x0, slapshot_charlayout, 4096, 256 ) /* sprites & playfield */
GFXDECODE_END
@@ -514,7 +514,7 @@ static MACHINE_CONFIG_START( slapshot, slapshot_state )
MCFG_TC0480SCP_OFFSETS(30 + 3, 9)
MCFG_TC0480SCP_OFFSETS_TX(-1, -1)
MCFG_TC0480SCP_OFFSETS_FLIP(0, 2)
- MCFG_TC0480SCP_COL_BASE(256)
+ MCFG_TC0480SCP_COL_BASE(4096)
MCFG_TC0480SCP_GFXDECODE("gfxdecode")
MCFG_TC0480SCP_PALETTE("palette")
@@ -575,7 +575,7 @@ static MACHINE_CONFIG_START( opwolf3, slapshot_state )
MCFG_TC0480SCP_OFFSETS(30 + 3, 9)
MCFG_TC0480SCP_OFFSETS_TX(-1, -1)
MCFG_TC0480SCP_OFFSETS_FLIP(0, 2)
- MCFG_TC0480SCP_COL_BASE(256)
+ MCFG_TC0480SCP_COL_BASE(4096)
MCFG_TC0480SCP_GFXDECODE("gfxdecode")
MCFG_TC0480SCP_PALETTE("palette")
diff --git a/src/mame/drivers/taito_f2.c b/src/mame/drivers/taito_f2.c
index d31a7951db7..db2e04b8721 100644
--- a/src/mame/drivers/taito_f2.c
+++ b/src/mame/drivers/taito_f2.c
@@ -2792,17 +2792,27 @@ static const gfx_layout footchmpbl_tilelayout =
RGN_FRAC(1,4),
4, /* 4 bits per pixel */
{ RGN_FRAC(0,4), RGN_FRAC(1,4),RGN_FRAC(2,4),RGN_FRAC(3,4) },
- { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 },
- { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, 8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
+ { STEP16(0,1) },
+ { STEP16(0,16) },
16*16 /* every sprite takes 128 consecutive bytes */
};
+static const gfx_layout footchmpbl_charlayout =
+{
+ 8,8, /* 16*16 sprites */
+ 256, /* the ROMs are mostly empty */
+ 4, /* 4 bits per pixel */
+ { RGN_FRAC(0,4), RGN_FRAC(1,4),RGN_FRAC(2,4),RGN_FRAC(3,4) },
+ { STEP8(0,1) },
+ { STEP8(0,8) },
+ 8*8 /* every sprite takes 128 consecutive bytes */
+};
static GFXDECODE_START( footchmpbl )
GFXDECODE_ENTRY( "gfx2", 0, footchmpbl_tilelayout, 0, 256 ) /* sprites & playfield */
GFXDECODE_ENTRY( "gfx1", 0, footchmpbl_tilelayout, 0, 256 ) /* sprites & playfield */
- GFXDECODE_ENTRY( "gfx3", 0, footchmpbl_tilelayout, 0, 256 ) // gets wiped out by the dynamic decode atm
- GFXDECODE_ENTRY( "gfx3", 0, footchmpbl_tilelayout, 0, 256 ) // bootleg should clearly use this instead of the uploaded tiles
+ GFXDECODE_ENTRY( "gfx3", 0, footchmpbl_charlayout, 0, 256 ) // gets wiped out by the dynamic decode atm
+ GFXDECODE_ENTRY( "gfx3", 0, footchmpbl_charlayout, 0, 256 ) // bootleg should clearly use this instead of the uploaded tiles
GFXDECODE_END
@@ -3417,7 +3427,7 @@ static MACHINE_CONFIG_DERIVED( metalb, taito_f2_tc0510nio )
MCFG_TC0480SCP_OFFSETS(0x32 + 3, -0x04)
MCFG_TC0480SCP_OFFSETS_TX(1, 0)
MCFG_TC0480SCP_OFFSETS_FLIP(-1, 0)
- MCFG_TC0480SCP_COL_BASE(256)
+ MCFG_TC0480SCP_COL_BASE(4096)
MCFG_TC0480SCP_GFXDECODE("gfxdecode")
MCFG_TC0480SCP_PALETTE("palette")
diff --git a/src/mame/drivers/topspeed.c b/src/mame/drivers/topspeed.c
index 6da48253882..06c2d938794 100644
--- a/src/mame/drivers/topspeed.c
+++ b/src/mame/drivers/topspeed.c
@@ -516,7 +516,7 @@ static const gfx_layout charlayout =
static GFXDECODE_START( topspeed )
GFXDECODE_ENTRY( "gfx2", 0x0, tile16x8_layout, 0, 256 ) // Sprite parts
- GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0, 256 ) // Sprites & playfield
+ GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0, 512 ) // Sprites & playfield
// Road Lines gfxdecodable ?
GFXDECODE_END
diff --git a/src/mame/includes/darius.h b/src/mame/includes/darius.h
index 2a901c25549..66515a5eaa4 100644
--- a/src/mame/includes/darius.h
+++ b/src/mame/includes/darius.h
@@ -124,7 +124,6 @@ public:
UINT32 screen_update_darius_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_darius_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void darius_postload();
- inline void actual_get_fg_tile_info( tile_data &tileinfo, int tile_index, UINT16 *ram, int gfxnum );
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int primask, int x_offs, int y_offs );
UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs);
void parse_control( ) /* assumes Z80 sandwiched between 68Ks */;
diff --git a/src/mame/includes/ninjaw.h b/src/mame/includes/ninjaw.h
index 5942e1d7d83..e99c7bce423 100644
--- a/src/mame/includes/ninjaw.h
+++ b/src/mame/includes/ninjaw.h
@@ -70,7 +70,6 @@ public:
DECLARE_WRITE16_MEMBER(tc0100scn_triple_screen_w);
virtual void machine_start();
virtual void machine_reset();
- virtual void video_start();
UINT32 screen_update_ninjaw_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_ninjaw_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_ninjaw_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
diff --git a/src/mame/includes/warriorb.h b/src/mame/includes/warriorb.h
index fd81c7c2f30..84b99ea0057 100644
--- a/src/mame/includes/warriorb.h
+++ b/src/mame/includes/warriorb.h
@@ -64,7 +64,6 @@ public:
DECLARE_WRITE16_MEMBER(tc0100scn_dual_screen_w);
virtual void machine_start();
virtual void machine_reset();
- virtual void video_start();
UINT32 screen_update_warriorb_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_warriorb_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void reset_sound_region();
diff --git a/src/mame/video/darius.c b/src/mame/video/darius.c
index a0a9e47029b..a4bae112cb1 100644
--- a/src/mame/video/darius.c
+++ b/src/mame/video/darius.c
@@ -3,26 +3,22 @@
/***************************************************************************/
-inline void darius_state::actual_get_fg_tile_info( tile_data &tileinfo, int tile_index, UINT16 *ram, int gfxnum )
+TILE_GET_INFO_MEMBER(darius_state::get_fg_tile_info)
{
- UINT16 code = (ram[tile_index + 0x2000] & 0x7ff);
- UINT16 attr = ram[tile_index];
+ UINT16 code = (m_fg_ram[tile_index + 0x2000] & 0x7ff);
+ UINT16 attr = m_fg_ram[tile_index];
- SET_TILE_INFO_MEMBER(gfxnum,
+ SET_TILE_INFO_MEMBER(2,
code,
- ((attr & 0xff) << 2),
+ (attr & 0x7f),
TILE_FLIPYX((attr & 0xc000) >> 14));
}
-TILE_GET_INFO_MEMBER(darius_state::get_fg_tile_info)
-{
- actual_get_fg_tile_info(tileinfo, tile_index, m_fg_ram, 2);
-}
-
/***************************************************************************/
void darius_state::video_start()
{
+ m_gfxdecode->gfx(2)->set_granularity(16);
m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(darius_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,128,64);
m_fg_tilemap->set_transparent_pen(0);
diff --git a/src/mame/video/ninjaw.c b/src/mame/video/ninjaw.c
index 80b4aa415fd..8a1162dbc13 100644
--- a/src/mame/video/ninjaw.c
+++ b/src/mame/video/ninjaw.c
@@ -1,14 +1,6 @@
#include "emu.h"
#include "includes/ninjaw.h"
-/**********************************************************/
-
-void ninjaw_state::video_start()
-{
- /* Ensure palette from correct TC0110PCR used for each screen */
- m_tc0100scn_1->set_colbanks(0x0, 0x100, 0x200);
-}
-
/************************************************************
SPRITE DRAW ROUTINE
************************************************************/
diff --git a/src/mame/video/tc0080vco.c b/src/mame/video/tc0080vco.c
index 60350e3a0f1..9083f894f9b 100644
--- a/src/mame/video/tc0080vco.c
+++ b/src/mame/video/tc0080vco.c
@@ -191,7 +191,7 @@ void tc0080vco_device::device_start()
m_scroll_ram = m_ram + 0x20800 / 2;
/* create the char set (gfx will then be updated dynamically from RAM) */
- m_gfxdecode->set_gfx(m_txnum, global_alloc(gfx_element(m_palette, charlayout, (UINT8 *)m_char_ram, 0, 64, 0)));
+ m_gfxdecode->set_gfx(m_txnum, global_alloc(gfx_element(m_palette, charlayout, (UINT8 *)m_char_ram, 0, 1, 512)));
save_pointer(NAME(m_ram), TC0080VCO_RAM_SIZE / 2);
machine().save().register_postload(save_prepost_delegate(FUNC(tc0080vco_device::postload), this));
@@ -273,8 +273,8 @@ TILE_GET_INFO_MEMBER(tc0080vco_device::get_tx_tile_info)
SET_TILE_INFO_MEMBER(m_txnum,
tile,
- 0x40,
- 0); /* 0x20<<1 as 3bpp */
+ 0,
+ 0);
}
diff --git a/src/mame/video/tc0100scn.c b/src/mame/video/tc0100scn.c
index 8f1c351df87..ce784c19301 100644
--- a/src/mame/video/tc0100scn.c
+++ b/src/mame/video/tc0100scn.c
@@ -132,11 +132,8 @@ tc0100scn_device::tc0100scn_device(const machine_config &mconfig, const char *ta
m_bgscrolly(0),
m_fgscrollx(0),
m_fgscrolly(0),
- m_bg_col_mult(0),
m_bg_tilemask(0),
- m_tx_col_mult(0),
m_gfxbank(0),
- m_colbank(0),
m_bg0_colbank(0),
m_bg1_colbank(0),
m_tx_colbank(0),
@@ -257,27 +254,24 @@ void tc0100scn_device::device_start()
m_bg_tilemask = 0xffff; /* Mjnquest has 0x7fff tilemask */
- m_bg_col_mult = 1; /* multiplier for when bg gfx != 4bpp */
- m_tx_col_mult = 1; /* multiplier needed when bg gfx is 6bpp */
+ m_ram = auto_alloc_array_clear(machine(), UINT16, TC0100SCN_RAM_SIZE / 2);
- if (m_gfxdecode->gfx(m_gfxnum)->granularity() == 2) /* Yuyugogo, Yesnoj */
- m_bg_col_mult = 8;
+ set_layer_ptrs();
- if (m_gfxdecode->gfx(m_gfxnum)->granularity() == 0x40) /* Undrfire */
- m_tx_col_mult = 4;
+ /* create the char set (gfx will then be updated dynamically from RAM) */
+ m_gfxdecode->set_gfx(m_txnum, global_alloc(gfx_element(m_palette, tc0100scn_charlayout, (UINT8 *)m_char_ram, NATIVE_ENDIAN_VALUE_LE_BE(8,0), 256, 0)));
-//logerror("TC0100SCN bg gfx granularity %04x: multiplier %04x\n", m_gfxdecode->gfx(m_gfxnum)->granularity(), m_tx_col_mult);
+ gfx_element *gfx = m_gfxdecode->gfx(m_gfxnum);
+ gfx_element *txt = m_gfxdecode->gfx(m_txnum);
- m_ram = auto_alloc_array_clear(machine(), UINT16, TC0100SCN_RAM_SIZE / 2);
+ if (gfx->granularity() == 2) /* Yuyugogo, Yesnoj */
+ gfx->set_granularity(16);
- set_layer_ptrs();
+ txt->set_granularity(gfx->granularity());
set_colbanks(0, 0, 0); /* standard values, only Wgp & multiscreen games change them */
/* we call this here, so that they can be modified at video_start*/
- /* create the char set (gfx will then be updated dynamically from RAM) */
- m_gfxdecode->set_gfx(m_txnum, global_alloc(gfx_element(m_palette, tc0100scn_charlayout, (UINT8 *)m_char_ram, NATIVE_ENDIAN_VALUE_LE_BE(8,0), 64, 0)));
-
save_pointer(NAME(m_ram), TC0100SCN_RAM_SIZE / 2);
save_item(NAME(m_ctrl));
save_item(NAME(m_dblwidth));
@@ -292,7 +286,6 @@ void tc0100scn_device::device_start()
void tc0100scn_device::device_reset()
{
m_dblwidth = 0;
- m_colbank = 0;
m_gfxbank = 0; /* Mjnquest uniquely banks tiles */
for (int i = 0; i < 8; i++)
@@ -304,33 +297,11 @@ void tc0100scn_device::device_reset()
DEVICE HANDLERS
*****************************************************************************/
-void tc0100scn_device::common_get_bg0_tile_info( tile_data &tileinfo, int tile_index, UINT16 *ram, int gfxnum, int colbank, int dblwidth )
-{
- int code, attr;
-
- if (!dblwidth)
- {
- /* Mahjong Quest (F2 system) inexplicably has a banking feature */
- code = (ram[2 * tile_index + 1] & m_bg_tilemask) + (m_gfxbank << 15);
- attr = ram[2 * tile_index];
- }
- else
- {
- code = ram[2 * tile_index + 1] & m_bg_tilemask;
- attr = ram[2 * tile_index];
- }
-
- SET_TILE_INFO_MEMBER(gfxnum,
- code,
- (((attr * m_bg_col_mult) + m_bg0_colbank) & 0xff) + colbank,
- TILE_FLIPYX((attr & 0xc000) >> 14));
-}
-
-void tc0100scn_device::common_get_bg1_tile_info( tile_data &tileinfo, int tile_index, UINT16 *ram, int gfxnum, int colbank, int dblwidth )
+void tc0100scn_device::common_get_tile_info( tile_data &tileinfo, int tile_index, UINT16 *ram, int colbank )
{
int code, attr;
- if (!dblwidth)
+ if (!m_dblwidth)
{
/* Mahjong Quest (F2 system) inexplicably has a banking feature */
code = (ram[2 * tile_index + 1] & m_bg_tilemask) + (m_gfxbank << 15);
@@ -342,40 +313,30 @@ void tc0100scn_device::common_get_bg1_tile_info( tile_data &tileinfo, int tile_i
attr = ram[2 * tile_index];
}
- SET_TILE_INFO_MEMBER(gfxnum,
+ SET_TILE_INFO_MEMBER(m_gfxnum,
code,
- (((attr * m_bg_col_mult) + m_bg1_colbank) & 0xff) + colbank,
- TILE_FLIPYX((attr & 0xc000) >> 14));
-}
-
-void tc0100scn_device::common_get_tx_tile_info( tile_data &tileinfo, int tile_index, UINT16 *ram, int gfxnum, int colbank, int dblwidth )
-{
- int attr = ram[tile_index];
-
- SET_TILE_INFO_MEMBER(gfxnum,
- attr & 0xff,
- ((((attr >> 6) & 0xfc) * m_tx_col_mult + (m_tx_colbank << 2)) & 0x3ff) + colbank * 4,
+ ((attr + colbank) & 0xff),
TILE_FLIPYX((attr & 0xc000) >> 14));
}
TILE_GET_INFO_MEMBER(tc0100scn_device::get_bg_tile_info)
{
- common_get_bg0_tile_info(tileinfo, tile_index, m_bg_ram, m_gfxnum, m_colbank, m_dblwidth);
+ common_get_tile_info(tileinfo, tile_index, m_bg_ram, m_bg0_colbank);
}
TILE_GET_INFO_MEMBER(tc0100scn_device::get_fg_tile_info)
{
- common_get_bg1_tile_info(tileinfo, tile_index, m_fg_ram, m_gfxnum, m_colbank, m_dblwidth);
+ common_get_tile_info(tileinfo, tile_index, m_fg_ram, m_bg1_colbank);
}
TILE_GET_INFO_MEMBER(tc0100scn_device::get_tx_tile_info)
{
- common_get_tx_tile_info(tileinfo, tile_index, m_tx_ram, m_txnum, m_colbank, m_dblwidth);
-}
+ int attr = m_tx_ram[tile_index];
-void tc0100scn_device::set_colbank( int col )
-{
- m_colbank = col;
+ SET_TILE_INFO_MEMBER(m_txnum,
+ attr & 0x00ff,
+ ((attr & 0x3f00) >> 8) + m_tx_colbank,
+ TILE_FLIPYX((attr & 0xc000) >> 14));
}
void tc0100scn_device::set_colbanks( int bg0, int bg1, int tx )
diff --git a/src/mame/video/tc0100scn.h b/src/mame/video/tc0100scn.h
index 244b886146f..84f7f243788 100644
--- a/src/mame/video/tc0100scn.h
+++ b/src/mame/video/tc0100scn.h
@@ -39,10 +39,6 @@ public:
To change from the default (0,0,0) use after calling TC0100SCN_vh_start */
void set_colbanks(int bg0, int bg1, int tx);
- /* Function to set separate color banks for each TC0100SCN.
- To change from the default (0,0,0) use after calling TC0100SCN_vh_start */
- void set_colbank(int colbank);
-
/* Function to set bg tilemask < 0xffff */
void set_bg_tilemask(int mask);
@@ -92,8 +88,8 @@ private:
/* We keep two tilemaps for each of the 3 actual tilemaps: one at standard width, one double */
tilemap_t *m_tilemap[3][2];
- int m_bg_col_mult, m_bg_tilemask, m_tx_col_mult;
- INT32 m_gfxbank, m_colbank;
+ int m_bg_tilemask;
+ INT32 m_gfxbank;
INT32 m_bg0_colbank, m_bg1_colbank, m_tx_colbank;
int m_dblwidth;
@@ -112,9 +108,7 @@ private:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_tx_tile_info);
- void common_get_bg0_tile_info(tile_data &tileinfo, int tile_index, UINT16 *ram, int gfxnum, int colbank, int dblwidth);
- void common_get_bg1_tile_info(tile_data &tileinfo, int tile_index, UINT16 *ram, int gfxnum, int colbank, int dblwidth);
- void common_get_tx_tile_info(tile_data &tileinfo, int tile_index, UINT16 *ram, int gfxnum, int colbank, int dblwidth);
+ void common_get_tile_info(tile_data &tileinfo, int tile_index, UINT16 *ram, int colbank);
void tilemap_draw_fg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, tilemap_t* tmap, int flags, UINT32 priority);
void set_layer_ptrs();
diff --git a/src/mame/video/tc0480scp.c b/src/mame/video/tc0480scp.c
index 4418ad3c4db..1bc0effc66c 100644
--- a/src/mame/video/tc0480scp.c
+++ b/src/mame/video/tc0480scp.c
@@ -282,7 +282,8 @@ void tc0480scp_device::device_start()
set_layer_ptrs();
/* create the char set (gfx will then be updated dynamically from RAM) */
- m_gfxdecode->set_gfx(m_txnum, global_alloc(gfx_element(m_palette, tc0480scp_charlayout, (UINT8 *)m_char_ram, NATIVE_ENDIAN_VALUE_LE_BE(8,0), 64, 0)));
+ m_gfxdecode->set_gfx(m_txnum, global_alloc(gfx_element(m_palette, tc0480scp_charlayout, (UINT8 *)m_char_ram, NATIVE_ENDIAN_VALUE_LE_BE(8,0), 64, m_col_base)));
+ m_gfxdecode->gfx(m_gfxnum)->set_colorbase(m_col_base);
save_item(NAME(m_ram));
save_item(NAME(m_ctrl));
@@ -317,7 +318,7 @@ void tc0480scp_device::common_get_tc0480bg_tile_info( tile_data &tileinfo, int t
int attr = ram[2 * tile_index];
SET_TILE_INFO_MEMBER(gfxnum,
code,
- (attr & 0xff) + m_col_base,
+ (attr & 0xff),
TILE_FLIPYX((attr & 0xc000) >> 14));
}
@@ -326,7 +327,7 @@ void tc0480scp_device::common_get_tc0480tx_tile_info( tile_data &tileinfo, int t
int attr = ram[tile_index];
SET_TILE_INFO_MEMBER(gfxnum,
attr & 0xff,
- ((attr & 0x3f00) >> 8) + m_col_base,
+ ((attr & 0x3f00) >> 8),
TILE_FLIPYX((attr & 0xc000) >> 14));
}
@@ -654,10 +655,6 @@ void tc0480scp_device::tilemap_update()
TODO
----
-Broken for any rotation except ROT0. ROT180 support could probably
-be added without too much difficulty: machine_flip is there as a
-place-holder for this purpose.
-
Wouldn't work if y needs to be > 255 (i.e. if some game uses a
bigger than usual vertical visible area). Refer to tc0080vco
custom draw routine for an example of dealing with this.
@@ -709,7 +706,6 @@ void tc0480scp_device::bg01_draw( screen_device &screen, bitmap_ind16 &bitmap, c
int flip = m_pri_reg & 0x40;
int i, y, y_index, src_y_index, row_index;
int x_index, x_step;
- int machine_flip = 0; /* for ROT 180 ? */
UINT16 screen_width = 512; //cliprect.width();
UINT16 min_y = cliprect.min_y;
@@ -736,10 +732,7 @@ void tc0480scp_device::bg01_draw( screen_device &screen, bitmap_ind16 &bitmap, c
y_index -= (m_y_offset - min_y) * zoomy;
}
- if (!machine_flip)
- y = min_y;
- else
- y = max_y;
+ y = min_y;
do
{
@@ -781,12 +774,9 @@ void tc0480scp_device::bg01_draw( screen_device &screen, bitmap_ind16 &bitmap, c
taitoic_drawscanline(bitmap, cliprect, 0, y, scanline, (flags & TILEMAP_DRAW_OPAQUE) ? 0 : 1, ROT0, screen.priority(), priority);
y_index += zoomy;
- if (!machine_flip)
- y++;
- else
- y--;
+ y++;
}
- while ((!machine_flip && y <= max_y) || (machine_flip && y >= min_y));
+ while (y <= max_y);
}
}
@@ -798,10 +788,6 @@ void tc0480scp_device::bg01_draw( screen_device &screen, bitmap_ind16 &bitmap, c
TODO
----
-Broken for any rotation except ROT0. ROT180 support could probably
-be added without too much difficulty: machine_flip is there as a
-place-holder for this purpose.
-
Wouldn't work if y needs to be > 255 (i.e. if some game uses a
bigger than usual vertical visible area). Refer to tc0080vco
custom draw routine for an example of dealing with this.
@@ -844,7 +830,6 @@ void tc0480scp_device::bg23_draw(screen_device &screen, bitmap_ind16 &bitmap, co
UINT32 zoomx, zoomy;
UINT16 scanline[512];
int flipscreen = m_pri_reg & 0x40;
- int machine_flip = 0; /* for ROT 180 ? */
UINT16 screen_width = 512; //cliprect.width();
UINT16 min_y = cliprect.min_y;
@@ -878,11 +863,7 @@ void tc0480scp_device::bg23_draw(screen_device &screen, bitmap_ind16 &bitmap, co
y_index -= (m_y_offset - min_y) * zoomy;
}
-
- if (!machine_flip)
y = min_y;
- else
- y = max_y;
do
{
@@ -944,12 +925,9 @@ void tc0480scp_device::bg23_draw(screen_device &screen, bitmap_ind16 &bitmap, co
taitoic_drawscanline(bitmap, cliprect, 0, y, scanline, (flags & TILEMAP_DRAW_OPAQUE) ? 0 : 1, ROT0, screen.priority(), priority);
y_index += zoomy;
- if (!machine_flip)
- y++;
- else
- y--;
+ y++;
}
- while ((!machine_flip && y<=max_y) || (machine_flip && y>=min_y));
+ while (y<=max_y);
}
diff --git a/src/mame/video/warriorb.c b/src/mame/video/warriorb.c
index 3f0e1968ae4..f245c5beaa4 100644
--- a/src/mame/video/warriorb.c
+++ b/src/mame/video/warriorb.c
@@ -1,15 +1,6 @@
#include "emu.h"
#include "includes/warriorb.h"
-/**********************************************************/
-
-void warriorb_state::video_start()
-{
- /* Ensure palette from correct TC0110PCR used for each screen */
- m_tc0100scn_1->set_colbanks(0x0, 0x100, 0x0);
-}
-
-
/************************************************************
SPRITE DRAW ROUTINE
************************************************************/