summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/magmax.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/magmax.cpp')
-rw-r--r--src/mame/video/magmax.cpp55
1 files changed, 21 insertions, 34 deletions
diff --git a/src/mame/video/magmax.cpp b/src/mame/video/magmax.cpp
index b7a9ec495c4..d3a04f03441 100644
--- a/src/mame/video/magmax.cpp
+++ b/src/mame/video/magmax.cpp
@@ -29,10 +29,9 @@ Additional tweaking by Jarek Burczynski
PALETTE_INIT_MEMBER(magmax_state, magmax)
{
const uint8_t *color_prom = memregion("proms")->base();
- int i;
/* create a lookup table for the palette */
- for (i = 0; i < 0x100; i++)
+ for (int i = 0; i < 0x100; i++)
{
int r = pal4bit(color_prom[i + 0x000]);
int g = pal4bit(color_prom[i + 0x100]);
@@ -45,25 +44,24 @@ PALETTE_INIT_MEMBER(magmax_state, magmax)
color_prom += 0x300;
/* characters use colors 0-0x0f */
- for (i = 0; i < 0x10; i++)
+ for (int i = 0; i < 0x10; i++)
palette.set_pen_indirect(i, i);
/*sprites use colors 0x10-0x1f, color 0x1f being transparent*/
- for (i = 0x10; i < 0x110; i++)
+ for (int i = 0x10; i < 0x110; i++)
{
uint8_t ctabentry = (color_prom[i - 0x10] & 0x0f) | 0x10;
palette.set_pen_indirect(i, ctabentry);
}
/* background uses all colors (no lookup table) */
- for (i = 0x110; i < 0x210; i++)
+ for (int i = 0x110; i < 0x210; i++)
palette.set_pen_indirect(i, i - 0x110);
}
void magmax_state::video_start()
{
- int i,v;
uint8_t * prom14D = memregion("user2")->base();
/* Set up save state */
@@ -74,21 +72,17 @@ void magmax_state::video_start()
m_screen->register_screen_bitmap(m_bitmap);
/* Allocate temporary bitmap */
- for (i=0; i<256; i++)
+ for (int i = 0; i < 256; i++)
{
- v = (prom14D[i] << 4) + prom14D[i + 0x100];
+ int v = (prom14D[i] << 4) + prom14D[i + 0x100];
m_prom_tab[i] = ((v&0x1f)<<8) | ((v&0x10)<<10) | ((v&0xe0)>>1); /*convert data into more useful format*/
}
}
-uint32_t magmax_state::screen_update_magmax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+uint32_t magmax_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- uint16_t *videoram = m_videoram;
- uint16_t *spriteram16 = m_spriteram;
- int offs;
-
/* bit 2 flip screen */
m_flipscreen = *m_vreg & 0x04;
@@ -97,17 +91,14 @@ uint32_t magmax_state::screen_update_magmax(screen_device &screen, bitmap_ind16
bitmap.fill(0, cliprect);
else
{
- int v;
- uint8_t * rom18B = memregion("user1")->base();
uint32_t scroll_h = (*m_scroll_x) & 0x3fff;
uint32_t scroll_v = (*m_scroll_y) & 0xff;
/*clear background-over-sprites bitmap*/
m_bitmap.fill(0);
- for (v = 2*8; v < 30*8; v++) /*only for visible area*/
+ for (int v = 2*8; v < 30*8; v++) /*only for visible area*/
{
- int h;
uint16_t line_data[256];
uint32_t map_v_scr_100 = (scroll_v + v) & 0x100;
@@ -117,7 +108,7 @@ uint32_t magmax_state::screen_update_magmax(screen_device &screen, bitmap_ind16
pen_t pen_base = 0x110 + 0x20 + (map_v_scr_100>>1);
- for (h = 0; h < 0x100; h++)
+ for (int h = 0; h < 0x100; h++)
{
uint32_t graph_data;
uint32_t graph_color;
@@ -129,9 +120,9 @@ uint32_t magmax_state::screen_update_magmax(screen_device &screen, bitmap_ind16
if (!map_v_scr_100)
{
if (h & 0x80)
- LS283 = LS283 + (rom18B[ map_v_scr_1fe_6 + (h ^ 0xff) ] ^ 0xff);
+ LS283 = LS283 + (m_rom18B[ map_v_scr_1fe_6 + (h ^ 0xff) ] ^ 0xff);
else
- LS283 = LS283 + rom18B[ map_v_scr_1fe_6 + h ] + 0xff01;
+ LS283 = LS283 + m_rom18B[ map_v_scr_1fe_6 + h ] + 0xff01;
}
prom_data = m_prom_tab[ (LS283 >> 6) & 0xff ];
@@ -140,12 +131,12 @@ uint32_t magmax_state::screen_update_magmax(screen_device &screen, bitmap_ind16
rom18D_addr += (prom_data & 0x1f00) + ((LS283 & 0x38) >>3);
rom15F_addr &= 0x201c;
- rom15F_addr += (rom18B[0x4000 + rom18D_addr ]<<5) + ((LS283 & 0x6)>>1);
+ rom15F_addr += (m_rom18B[0x4000 + rom18D_addr ]<<5) + ((LS283 & 0x6)>>1);
rom15F_addr += (prom_data & 0x4000);
graph_color = (prom_data & 0x0070);
- graph_data = rom18B[0x8000 + rom15F_addr];
+ graph_data = m_rom18B[0x8000 + rom15F_addr];
if ((LS283 & 1))
graph_data >>= 4;
graph_data &= 0x0f;
@@ -159,9 +150,8 @@ uint32_t magmax_state::screen_update_magmax(screen_device &screen, bitmap_ind16
if (m_flipscreen)
{
- int i;
uint16_t line_data_flip_x[256];
- for (i=0; i<256; i++)
+ for (int i = 0; i < 256; i++)
line_data_flip_x[i] = line_data[255-i];
draw_scanline16(bitmap, 0, 255-v, 256, line_data_flip_x, nullptr);
}
@@ -171,21 +161,19 @@ uint32_t magmax_state::screen_update_magmax(screen_device &screen, bitmap_ind16
}
/* draw the sprites */
- for (offs = 0; offs < m_spriteram.bytes()/2; offs += 4)
+ for (int offs = 0; offs < m_spriteram.bytes()/2; offs += 4)
{
- int sx, sy;
-
- sy = spriteram16[offs] & 0xff;
+ int sy = m_spriteram[offs] & 0xff;
if (sy)
{
- int code = spriteram16[offs + 1] & 0xff;
- int attr = spriteram16[offs + 2] & 0xff;
+ int code = m_spriteram[offs + 1] & 0xff;
+ int attr = m_spriteram[offs + 2] & 0xff;
int color = (attr & 0xf0) >> 4;
int flipx = attr & 0x04;
int flipy = attr & 0x08;
- sx = (spriteram16[offs + 3] & 0xff) - 0x80 + 0x100 * (attr & 0x01);
+ int sx = (m_spriteram[offs + 3] & 0xff) - 0x80 + 0x100 * (attr & 0x01);
sy = 239 - sy;
if (m_flipscreen)
@@ -212,12 +200,11 @@ uint32_t magmax_state::screen_update_magmax(screen_device &screen, bitmap_ind16
copybitmap_trans(bitmap, m_bitmap, m_flipscreen,m_flipscreen,0,0, cliprect, 0);
/* draw the foreground characters */
- for (offs = 32*32-1; offs >= 0; offs -= 1)
+ for (int offs = 32*32-1; offs >= 0; offs -= 1)
{
//int page = (*m_vreg>>3) & 0x1;
- int code;
+ int code = m_videoram[offs /*+ page*/] & 0xff;
- code = videoram[offs /*+ page*/] & 0xff;
if (code)
{
int sx = (offs % 32);