diff options
Diffstat (limited to 'src/mame/video/magmax.cpp')
-rw-r--r-- | src/mame/video/magmax.cpp | 55 |
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); |