summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2025-07-23 14:02:28 +0200
committer hap <happppp@users.noreply.github.com>2025-07-23 14:02:28 +0200
commit12c8d8a4dda535c65f96fc335538176aa162a945 (patch)
treece7a401d781700c2295536e2bdab7a7fbb4b0dc3 /src
parentefb0e49db45c316350418e2aed3b710825b6eb48 (diff)
m92_v: update flipscreen before screen update,
m90_v: small cleanup
Diffstat (limited to 'src')
-rw-r--r--src/mame/irem/m90_v.cpp58
-rw-r--r--src/mame/irem/m92.cpp6
-rw-r--r--src/mame/irem/m92_v.cpp16
3 files changed, 51 insertions, 29 deletions
diff --git a/src/mame/irem/m90_v.cpp b/src/mame/irem/m90_v.cpp
index aef96abfbf7..c6daae240b6 100644
--- a/src/mame/irem/m90_v.cpp
+++ b/src/mame/irem/m90_v.cpp
@@ -37,10 +37,9 @@
TILE_GET_INFO_MEMBER(m90_state::get_tile_info)
{
uint16_t *vram = (uint16_t*)tilemap.user_data();
- int tile,color;
- tile=vram[tile_index<<1];
- color=vram[(tile_index<<1)|1];
+ int tile=vram[tile_index<<1];
+ int color=vram[(tile_index<<1)|1];
tileinfo.set(0,
tile,
color&0xf,
@@ -117,6 +116,7 @@ void m90_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const r
for (i = 0;i < y_multi;i++)
if (m_video_control_data[7] & 0x01)
+ {
m_gfxdecode->gfx(1)->prio_transpen(bitmap,cliprect,
sprite + (fy ? y_multi-1 - i : i),
colour,
@@ -124,7 +124,9 @@ void m90_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const r
x,y+i*16,
screen.priority(),
(colour & 0x08) ? 0x00 : 0x02,0);
+ }
else if (m_video_control_data[7] & 0x02)
+ {
m_gfxdecode->gfx(1)->prio_transpen(bitmap,cliprect,
sprite + (fy ? y_multi-1 - i : i),
colour,
@@ -132,7 +134,9 @@ void m90_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const r
x,y+i*16,
screen.priority(),
((colour & 0x0c)==0x0c) ? 0x00 : 0x02,0);
+ }
else
+ {
m_gfxdecode->gfx(1)->prio_transpen(bitmap,cliprect,
sprite + (fy ? y_multi-1 - i : i),
colour,
@@ -140,6 +144,7 @@ void m90_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const r
x,y+i*16,
screen.priority(),
0x02,0);
+ }
}
}
@@ -253,10 +258,10 @@ uint32_t m90_state::screen_update_m90(screen_device &screen, bitmap_ind16 &bitma
int const clip_miny = std::min(cliprect.min_y, 511);
int const clip_maxy = std::min(cliprect.max_y, 511);
-// m_pf_layer[0][0]->enable(pf_enable[0]);
-// m_pf_layer[1][0]->enable(pf_enable[1]);
-// m_pf_layer[0][1]->enable(pf_enable[0]);
-// m_pf_layer[1][1]->enable(pf_enable[1]);
+ // m_pf_layer[0][0]->enable(pf_enable[0]);
+ // m_pf_layer[1][0]->enable(pf_enable[1]);
+ // m_pf_layer[0][1]->enable(pf_enable[0]);
+ // m_pf_layer[1][1]->enable(pf_enable[1]);
constexpr int rowscroll_offs[2] = { 0xf000 >> 1, 0xf400 >> 1 };
constexpr int rowscroll_bias[2] = { 2, -2 };
@@ -401,32 +406,38 @@ uint32_t m90_state::screen_update_m90(screen_device &screen, bitmap_ind16 &bitma
uint32_t m90_state::screen_update_bomblord(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- int i;
screen.priority().fill(0, cliprect);
bitmap.fill(m_palette->black_pen(), cliprect);
/* Setup scrolling */
- if (m_video_control_data[6]&0x20) {
+ if (m_video_control_data[6]&0x20)
+ {
m_pf_layer[0][0]->set_scroll_rows(512);
m_pf_layer[0][1]->set_scroll_rows(512);
- for (i=std::min(cliprect.min_y,511); i<=std::min(cliprect.max_y,511); i++) {
+ for (int i=std::min(cliprect.min_y,511); i<=std::min(cliprect.max_y,511); i++)
+ {
m_pf_layer[0][0]->set_scrollx(i, m_video_data[0xf400/2+i]-12);
m_pf_layer[0][1]->set_scrollx(i, m_video_data[0xf400/2+i]-12+256);
}
- } else {
+ }
+ else
+ {
m_pf_layer[0][0]->set_scroll_rows(1);
m_pf_layer[0][1]->set_scroll_rows(1);
m_pf_layer[0][0]->set_scrollx(0, m_video_data[0xf004/2]-12);
m_pf_layer[0][1]->set_scrollx(0, m_video_data[0xf004/2]-12);
}
- if (m_video_control_data[6] & 0x02) {
+ if (m_video_control_data[6] & 0x02)
+ {
m_pf_layer[1][1]->mark_all_dirty();
m_pf_layer[1][1]->set_scrollx(0, m_video_data[0xf000/2]-16 );
m_pf_layer[1][1]->set_scrolly(0, m_video_data[0xf008/2]+388);
m_pf_layer[1][1]->draw(screen, bitmap, cliprect, 0,0);
m_pf_layer[1][1]->draw(screen, bitmap, cliprect, 1,1);
- } else {
+ }
+ else
+ {
m_pf_layer[1][0]->mark_all_dirty();
m_pf_layer[1][0]->set_scrollx(0, m_video_data[0xf000/2]-16 );
m_pf_layer[1][0]->set_scrolly(0, m_video_data[0xf008/2]-120);
@@ -434,12 +445,15 @@ uint32_t m90_state::screen_update_bomblord(screen_device &screen, bitmap_ind16 &
m_pf_layer[1][0]->draw(screen, bitmap, cliprect, 1,1);
}
- if (m_video_control_data[6] & 0x04) {
+ if (m_video_control_data[6] & 0x04)
+ {
m_pf_layer[0][1]->mark_all_dirty();
m_pf_layer[0][1]->set_scrolly(0, m_video_data[0xf00c/2]+392);
m_pf_layer[0][1]->draw(screen, bitmap, cliprect, 0,0);
m_pf_layer[0][1]->draw(screen, bitmap, cliprect, 1,1);
- } else {
+ }
+ else
+ {
m_pf_layer[0][0]->mark_all_dirty();
m_pf_layer[0][0]->set_scrolly(0, m_video_data[0xf00c/2]-116);
m_pf_layer[0][0]->draw(screen, bitmap, cliprect, 0,0);
@@ -456,14 +470,17 @@ uint32_t m90_state::screen_update_dynablsb(screen_device &screen, bitmap_ind16 &
screen.priority().fill(0, cliprect);
bitmap.fill(m_palette->black_pen(), cliprect);
- if (!(m_video_data[0xf008/2] & 0x4000)) {
+ if (!(m_video_data[0xf008/2] & 0x4000))
+ {
m_pf_layer[0][1]->mark_all_dirty();
m_pf_layer[0][1]->set_scroll_rows(1);
m_pf_layer[0][1]->set_scrollx(0, m_video_data[0xf004/2]+64);
m_pf_layer[0][1]->set_scrolly(0, m_video_data[0xf006/2]+512);
m_pf_layer[0][1]->draw(screen, bitmap, cliprect, 0,0);
m_pf_layer[0][1]->draw(screen, bitmap, cliprect, 1,1);
- } else {
+ }
+ else
+ {
m_pf_layer[0][0]->mark_all_dirty();
m_pf_layer[0][0]->set_scroll_rows(1);
m_pf_layer[0][0]->set_scrollx(0, m_video_data[0xf004/2]+64);
@@ -472,14 +489,17 @@ uint32_t m90_state::screen_update_dynablsb(screen_device &screen, bitmap_ind16 &
m_pf_layer[0][0]->draw(screen, bitmap, cliprect, 1,1);
}
- if (!(m_video_data[0xf008/2] & 0x8000)) {
+ if (!(m_video_data[0xf008/2] & 0x8000))
+ {
m_pf_layer[1][1]->mark_all_dirty();
m_pf_layer[1][1]->set_scroll_rows(1);
m_pf_layer[1][1]->set_scrollx(0, m_video_data[0xf000/2]+68);
m_pf_layer[1][1]->set_scrolly(0, m_video_data[0xf002/2]+512);
m_pf_layer[1][1]->draw(screen, bitmap, cliprect, 0,0);
m_pf_layer[1][1]->draw(screen, bitmap, cliprect, 1,1);
- } else {
+ }
+ else
+ {
m_pf_layer[1][0]->mark_all_dirty();
m_pf_layer[1][0]->set_scroll_rows(1);
m_pf_layer[1][0]->set_scrollx(0, m_video_data[0xf000/2]+68);
diff --git a/src/mame/irem/m92.cpp b/src/mame/irem/m92.cpp
index fe80fa04249..6600ac689c6 100644
--- a/src/mame/irem/m92.cpp
+++ b/src/mame/irem/m92.cpp
@@ -2586,9 +2586,9 @@ void ppan_state::init_ppan()
/***************************************************************************/
-GAME( 1991, gunforce, 0, gunforce, gunforce, m92_state, empty_init, ROT0, "Irem", "Gunforce - Battle Fire Engulfed Terror Island (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
-GAME( 1991, gunforcej, gunforce, gunforce, gunforce, m92_state, empty_init, ROT0, "Irem", "Gunforce - Battle Fire Engulfed Terror Island (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
-GAME( 1991, gunforceu, gunforce, gunforce, gunforce, m92_state, empty_init, ROT0, "Irem America", "Gunforce - Battle Fire Engulfed Terror Island (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1991, gunforce, 0, gunforce, gunforce, m92_state, empty_init, ROT0, "Irem", "Gunforce: Battle Fire Engulfed Terror Island (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1991, gunforcej, gunforce, gunforce, gunforce, m92_state, empty_init, ROT0, "Irem", "Gunforce: Battle Fire Engulfed Terror Island (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1991, gunforceu, gunforce, gunforce, gunforce, m92_state, empty_init, ROT0, "Irem America", "Gunforce: Battle Fire Engulfed Terror Island (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
GAME( 1991, bmaster, 0, bmaster, bmaster, m92_state, empty_init, ROT0, "Irem", "Blade Master (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
GAME( 1991, crossbld, bmaster, bmaster, bmaster, m92_state, empty_init, ROT0, "Irem", "Cross Blades! (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL)
diff --git a/src/mame/irem/m92_v.cpp b/src/mame/irem/m92_v.cpp
index 5767128c7ec..93e16c9bf5d 100644
--- a/src/mame/irem/m92_v.cpp
+++ b/src/mame/irem/m92_v.cpp
@@ -64,7 +64,7 @@ void m92_state::spritecontrol_w(offs_t offset, uint16_t data, uint16_t mem_mask)
// offset5: ?
/* Sprite control - display all sprites, or partial list */
- if (offset==2 && ACCESSING_BITS_0_7)
+ if (offset == 2 && ACCESSING_BITS_0_7)
{
if ((data & 0xff) == 8)
m_sprite_list = (((0x100 - m_spritecontrol[0]) & 0xff) * 4);
@@ -75,7 +75,7 @@ void m92_state::spritecontrol_w(offs_t offset, uint16_t data, uint16_t mem_mask)
}
/* Sprite buffer - the data written doesn't matter (confirmed by several games) */
- if (offset==4)
+ if (offset == 4)
{
/* this implementation is not accurate: still some delayed sprites in gunforc2 (might be another issue?) */
m_spriteram->copy();
@@ -523,19 +523,21 @@ void m92_state::m92_draw_tiles(screen_device &screen, bitmap_ind16 &bitmap, cons
uint32_t m92_state::screen_update_m92(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
+ /* Flipscreen appears hardwired to the dipswitch - strange */
+ if (m_dsw->read() & 0x100)
+ flip_screen_set(0);
+ else
+ flip_screen_set(1);
+
screen.priority().fill(0, cliprect);
bitmap.fill(0, cliprect);
+
m92_update_scroll_positions();
m92_draw_tiles(screen, bitmap, cliprect);
if (~m_videocontrol & 0x80)
draw_sprites(screen, bitmap, cliprect);
- /* Flipscreen appears hardwired to the dipswitch - strange */
- if (m_dsw->read() & 0x100)
- flip_screen_set(0);
- else
- flip_screen_set(1);
return 0;
}