diff options
Diffstat (limited to 'src/mame/drivers/galpani3.cpp')
-rw-r--r-- | src/mame/drivers/galpani3.cpp | 207 |
1 files changed, 102 insertions, 105 deletions
diff --git a/src/mame/drivers/galpani3.cpp b/src/mame/drivers/galpani3.cpp index 0ffb68cd319..6e56e73c5db 100644 --- a/src/mame/drivers/galpani3.cpp +++ b/src/mame/drivers/galpani3.cpp @@ -190,7 +190,7 @@ void galpani3_state::video_start() uint32_t galpani3_state::screen_update_galpani3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - const pen_t *paldata = m_palette->pens(); + pen_t const *const paldata = m_palette->pens(); bitmap.fill(0, cliprect); @@ -198,137 +198,134 @@ uint32_t galpani3_state::screen_update_galpani3(screen_device &screen, bitmap_rg // popmessage("%02x %02x", m_grap2[0]->m_framebuffer_bright2, m_grap2[1]->m_framebuffer_bright2); + for (int drawy=cliprect.min_y;drawy<=cliprect.max_y;drawy++) { - int drawy, drawx; - for (drawy=cliprect.min_y;drawy<=cliprect.max_y;drawy++) - { - uint16_t* sprline = &m_sprite_bitmap.pix16(drawy); - uint16_t* srcline1 = m_grap2[0]->m_framebuffer.get() + ((drawy+m_grap2[0]->m_framebuffer_scrolly+11)&0x1ff) * 0x200; - uint16_t* srcline2 = m_grap2[1]->m_framebuffer.get() + ((drawy+m_grap2[1]->m_framebuffer_scrolly+11)&0x1ff) * 0x200; - uint16_t* srcline3 = m_grap2[2]->m_framebuffer.get() + ((drawy+m_grap2[2]->m_framebuffer_scrolly+11)&0x1ff) * 0x200; + uint16_t const *const sprline = &m_sprite_bitmap.pix(drawy); + uint16_t const *const srcline1 = m_grap2[0]->m_framebuffer.get() + ((drawy+m_grap2[0]->m_framebuffer_scrolly+11)&0x1ff) * 0x200; + uint16_t const *const srcline2 = m_grap2[1]->m_framebuffer.get() + ((drawy+m_grap2[1]->m_framebuffer_scrolly+11)&0x1ff) * 0x200; + uint16_t const *const srcline3 = m_grap2[2]->m_framebuffer.get() + ((drawy+m_grap2[2]->m_framebuffer_scrolly+11)&0x1ff) * 0x200; - uint16_t* priline = m_priority_buffer + ((drawy+m_priority_buffer_scrolly+11)&0x1ff) * 0x200; + uint16_t const *const priline = m_priority_buffer + ((drawy+m_priority_buffer_scrolly+11)&0x1ff) * 0x200; - uint32_t* dst = &bitmap.pix32(drawy & 0x3ff); + uint32_t *const dst = &bitmap.pix(drawy & 0x3ff); - for (drawx=cliprect.min_x;drawx<=cliprect.max_x;drawx++) - { - int sproffs = drawx & 0x3ff; - int srcoffs1 = (drawx+m_grap2[0]->m_framebuffer_scrollx+67)&0x1ff; - int srcoffs2 = (drawx+m_grap2[1]->m_framebuffer_scrollx+67)&0x1ff; - int srcoffs3 = (drawx+m_grap2[2]->m_framebuffer_scrollx+67)&0x1ff; + for (int drawx=cliprect.min_x;drawx<=cliprect.max_x;drawx++) + { + int sproffs = drawx & 0x3ff; + int srcoffs1 = (drawx+m_grap2[0]->m_framebuffer_scrollx+67)&0x1ff; + int srcoffs2 = (drawx+m_grap2[1]->m_framebuffer_scrollx+67)&0x1ff; + int srcoffs3 = (drawx+m_grap2[2]->m_framebuffer_scrollx+67)&0x1ff; - int prioffs = (drawx+m_priority_buffer_scrollx+66)&0x1ff; + int prioffs = (drawx+m_priority_buffer_scrollx+66)&0x1ff; - uint16_t sprdat = sprline[sproffs]; - uint8_t dat1 = srcline1[srcoffs1]; - uint8_t dat2 = srcline2[srcoffs2]; - uint8_t dat3 = srcline3[srcoffs3]; + uint16_t sprdat = sprline[sproffs]; + uint8_t dat1 = srcline1[srcoffs1]; + uint8_t dat2 = srcline2[srcoffs2]; + uint8_t dat3 = srcline3[srcoffs3]; - uint8_t pridat = priline[prioffs]; + uint8_t pridat = priline[prioffs]; - // TODO : Verify priorities, blendings from real PCB. - if (pridat==0x0f) // relates to the area you've drawn over + // TODO : Verify priorities, blendings from real PCB. + if (pridat==0x0f) // relates to the area you've drawn over + { + SPRITE_DRAW_PIXEL(0x0000); + if (m_grap2[2]->m_framebuffer_enable) { - SPRITE_DRAW_PIXEL(0x0000); - if (m_grap2[2]->m_framebuffer_enable) - { - FB_DRAW_PIXEL(2, dat3); - } - SPRITE_DRAW_PIXEL(0x4000); - if (dat1 && m_grap2[0]->m_framebuffer_enable) - { - FB_DRAW_PIXEL(0, dat1); - } - SPRITE_DRAW_PIXEL(0x8000); - if (dat2 && m_grap2[1]->m_framebuffer_enable) - { - FB_DRAW_PIXEL(1, dat2); - } - SPRITE_DRAW_PIXEL(0xc000); + FB_DRAW_PIXEL(2, dat3); } - else if (pridat==0xcf) // the girl + SPRITE_DRAW_PIXEL(0x4000); + if (dat1 && m_grap2[0]->m_framebuffer_enable) { - SPRITE_DRAW_PIXEL(0x0000); - if (m_grap2[0]->m_framebuffer_enable) - { - FB_DRAW_PIXEL(0, 0x100); - } - SPRITE_DRAW_PIXEL(0x4000); - if (m_grap2[1]->m_framebuffer_enable) - { - FB_DRAW_PIXEL(1, 0x100); - } - SPRITE_DRAW_PIXEL(0x8000); - if (dat3 && m_grap2[2]->m_framebuffer_enable) - { - FB_DRAW_PIXEL(2, dat3); - } - SPRITE_DRAW_PIXEL(0xc000); + FB_DRAW_PIXEL(0, dat1); } - else if (pridat==0x30) // during the 'gals boxes' on the intro + SPRITE_DRAW_PIXEL(0x8000); + if (dat2 && m_grap2[1]->m_framebuffer_enable) { - SPRITE_DRAW_PIXEL(0x0000); - if (m_grap2[1]->m_framebuffer_enable) // TODO : Opaqued and Swapped order? - { - FB_DRAW_PIXEL(1, dat2); - } - SPRITE_DRAW_PIXEL(0x4000); - if (dat1 && m_grap2[0]->m_framebuffer_enable) - { - FB_DRAW_PIXEL(0, dat1); - } - SPRITE_DRAW_PIXEL(0x8000); - if (dat3 && m_grap2[2]->m_framebuffer_enable) - { - FB_DRAW_PIXEL(2, dat3); - } - SPRITE_DRAW_PIXEL(0xc000); + FB_DRAW_PIXEL(1, dat2); } - else + SPRITE_DRAW_PIXEL(0xc000); + } + else if (pridat==0xcf) // the girl + { + SPRITE_DRAW_PIXEL(0x0000); + if (m_grap2[0]->m_framebuffer_enable) { - SPRITE_DRAW_PIXEL(0x0000); - if (m_grap2[0]->m_framebuffer_enable) // TODO : Opaque drawing 1st framebuffer in real PCB? - { - FB_DRAW_PIXEL(0, dat1); - } - SPRITE_DRAW_PIXEL(0x4000); - if (dat2 && m_grap2[1]->m_framebuffer_enable) - { - FB_DRAW_PIXEL(1, dat2); - } - SPRITE_DRAW_PIXEL(0x8000); - if (dat3 && m_grap2[2]->m_framebuffer_enable) - { - FB_DRAW_PIXEL(2, dat3); - } - SPRITE_DRAW_PIXEL(0xc000); + FB_DRAW_PIXEL(0, 0x100); } - - /* - else if (pridat==0x2f) // area outside of the girl + SPRITE_DRAW_PIXEL(0x4000); + if (m_grap2[1]->m_framebuffer_enable) { - //dst[drawx] = machine().rand()&0x3fff; + FB_DRAW_PIXEL(1, 0x100); } - - else if (pridat==0x00) // the initial line / box that gets drawn + SPRITE_DRAW_PIXEL(0x8000); + if (dat3 && m_grap2[2]->m_framebuffer_enable) + { + FB_DRAW_PIXEL(2, dat3); + } + SPRITE_DRAW_PIXEL(0xc000); + } + else if (pridat==0x30) // during the 'gals boxes' on the intro + { + SPRITE_DRAW_PIXEL(0x0000); + if (m_grap2[1]->m_framebuffer_enable) // TODO : Opaqued and Swapped order? + { + FB_DRAW_PIXEL(1, dat2); + } + SPRITE_DRAW_PIXEL(0x4000); + if (dat1 && m_grap2[0]->m_framebuffer_enable) + { + FB_DRAW_PIXEL(0, dat1); + } + SPRITE_DRAW_PIXEL(0x8000); + if (dat3 && m_grap2[2]->m_framebuffer_enable) { - //dst[drawx] = machine().rand()&0x3fff; + FB_DRAW_PIXEL(2, dat3); } - else if (pridat==0x30) // during the 'gals boxes' on the intro + SPRITE_DRAW_PIXEL(0xc000); + } + else + { + SPRITE_DRAW_PIXEL(0x0000); + if (m_grap2[0]->m_framebuffer_enable) // TODO : Opaque drawing 1st framebuffer in real PCB? { - //dst[drawx] = machine().rand()&0x3fff; + FB_DRAW_PIXEL(0, dat1); } - else if (pridat==0x0c) // 'nice' at end of level + SPRITE_DRAW_PIXEL(0x4000); + if (dat2 && m_grap2[1]->m_framebuffer_enable) { - //dst[drawx] = machine().rand()&0x3fff; + FB_DRAW_PIXEL(1, dat2); } - else + SPRITE_DRAW_PIXEL(0x8000); + if (dat3 && m_grap2[2]->m_framebuffer_enable) { - //printf("%02x, ",pridat); + FB_DRAW_PIXEL(2, dat3); } - */ + SPRITE_DRAW_PIXEL(0xc000); + } + + /* + else if (pridat==0x2f) // area outside of the girl + { + //dst[drawx] = machine().rand()&0x3fff; + } + + else if (pridat==0x00) // the initial line / box that gets drawn + { + //dst[drawx] = machine().rand()&0x3fff; + } + else if (pridat==0x30) // during the 'gals boxes' on the intro + { + //dst[drawx] = machine().rand()&0x3fff; + } + else if (pridat==0x0c) // 'nice' at end of level + { + //dst[drawx] = machine().rand()&0x3fff; + } + else + { + //printf("%02x, ",pridat); } + */ } } return 0; |