m10.c: Fix crash; also fix flipscreen [Alex Jackson]

This commit is contained in:
Alex W. Jackson 2014-02-17 22:22:51 +00:00
parent 55ba10a8ed
commit 7ed883f195
2 changed files with 9 additions and 12 deletions

View File

@ -899,6 +899,7 @@ static MACHINE_CONFIG_START( m15, m10_state )
MCFG_SCREEN_RAW_PARAMS(IREMM15_PIXEL_CLOCK, IREMM15_HTOTAL, IREMM15_HBEND, IREMM15_HBSTART, IREMM15_VTOTAL, IREMM15_VBEND, IREMM15_VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(m10_state, screen_update_m15)
MCFG_GFXDECODE_ADD("gfxdecode", empty)
MCFG_PALETTE_LENGTH(2*8)
MCFG_PALETTE_INIT_OVERRIDE(m10_state,m10)
@ -1052,10 +1053,10 @@ ROM_START( greenber )
ROM_LOAD( "gb9", 0x3000, 0x0400, CRC(c27b9ba3) SHA1(a2f4f0c4b61eb03bba13ae5d25dc01009a4f86ee) ) // ok ?
ROM_END
GAME( 1979, andromed, 0, m11, skychut, m10_state, andromed, ROT270, "IPM", "Andromeda (Japan?)", GAME_NO_COCKTAIL | GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
GAME( 1979, ipminvad, 0, m10, ipminvad, driver_device, 0, ROT270, "IPM", "IPM Invader", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
GAME( 1979, andromed, 0, m11, skychut, m10_state, andromed, ROT270, "IPM", "Andromeda (Japan?)", GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
GAME( 1979, ipminvad, 0, m10, ipminvad, driver_device, 0, ROT270, "IPM", "IPM Invader", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
GAME( 1979, ipminvad1, ipminvad, m10, ipminvad, m10_state, ipminva1, ROT270, "IPM", "IPM Invader (Incomplete Dump)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
GAME( 1980, skychut, 0, m11, skychut, driver_device, 0, ROT270, "Irem", "Sky Chuter", GAME_NO_COCKTAIL | GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
GAME( 1979, spacbeam, 0, m15, spacbeam, driver_device, 0, ROT270, "Irem", "Space Beam", GAME_NO_COCKTAIL | GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE ) // IPM or Irem?
GAME( 1979, headoni, 0, headoni, headoni, driver_device, 0, ROT270, "Irem", "Head On (Irem, M-15 Hardware)", GAME_NO_COCKTAIL | GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
GAME( 1980, greenber, 0, m15, spacbeam, driver_device, 0, ROT270, "Irem", "Green Beret (Irem)", GAME_NO_COCKTAIL | GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
GAME( 1980, skychut, 0, m11, skychut, driver_device, 0, ROT270, "Irem", "Sky Chuter", GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
GAME( 1979, spacbeam, 0, m15, spacbeam, driver_device, 0, ROT270, "Irem", "Space Beam", GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE ) // IPM or Irem?
GAME( 1979, headoni, 0, headoni, headoni, driver_device, 0, ROT270, "Irem", "Head On (Irem, M-15 Hardware)", GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
GAME( 1980, greenber, 0, m15, spacbeam, driver_device, 0, ROT270, "Irem", "Green Beret (Irem)", GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )

View File

@ -89,7 +89,7 @@ inline void m10_state::plot_pixel_m10( bitmap_ind16 &bm, int x, int y, int col )
if (!m_flip)
bm.pix16(y, x) = col;
else
bm.pix16((IREMM10_VBSTART - 1) - (y - IREMM10_VBEND) + 6,
bm.pix16((IREMM10_VBSTART - 1) - (y - IREMM10_VBEND),
(IREMM10_HBSTART - 1) - (x - IREMM10_HBEND)) = col; // only when flip_screen(?)
}
@ -97,8 +97,6 @@ VIDEO_START_MEMBER(m10_state,m10)
{
m_tx_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(m10_state::get_tile_info),this), tilemap_mapper_delegate(FUNC(m10_state::tilemap_scan),this), 8, 8, 32, 32);
m_tx_tilemap->set_transparent_pen(0);
m_tx_tilemap->set_scrolldx(0, 62);
m_tx_tilemap->set_scrolldy(0, 0);
m_back_gfx = auto_alloc(machine(), gfx_element(machine(), backlayout, m_chargen, 8, 0));
@ -111,8 +109,6 @@ VIDEO_START_MEMBER(m10_state,m15)
m_gfxdecode->set_gfx(0,auto_alloc(machine(), gfx_element(machine(), charlayout, m_chargen, 8, 0)));
m_tx_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(m10_state::get_tile_info),this),tilemap_mapper_delegate(FUNC(m10_state::tilemap_scan),this), 8, 8, 32, 32);
m_tx_tilemap->set_scrolldx(0, 116);
m_tx_tilemap->set_scrolldy(0, 0);
return ;
}
@ -134,7 +130,7 @@ UINT32 m10_state::screen_update_m10(screen_device &screen, bitmap_ind16 &bitmap,
for (i = 0; i < 4; i++)
if (m_flip)
m_back_gfx->opaque(bitmap,cliprect, i, color[i], 1, 1, 31 * 8 - xpos[i], 6);
m_back_gfx->opaque(bitmap,cliprect, i, color[i], 1, 1, 31 * 8 - xpos[i], 0);
else
m_back_gfx->opaque(bitmap,cliprect, i, color[i], 0, 0, xpos[i], 0);