namcos1.c, namcos86.c: fix flipscreen after core changes, add SCREEN_RAW_PARAMs [Alex Jackson]

This commit is contained in:
Alex W. Jackson 2014-02-25 14:26:40 +00:00
parent c4ba73f743
commit 1819b3c8b8
4 changed files with 35 additions and 32 deletions

View File

@ -1073,19 +1073,19 @@ static const namco_interface namco_config =
static MACHINE_CONFIG_START( ns1, namcos1_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6809,49152000/32)
MCFG_CPU_ADD("maincpu", M6809,XTAL_49_152MHz/32)
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos1_state, irq0_line_assert)
MCFG_CPU_ADD("sub", M6809,49152000/32)
MCFG_CPU_ADD("sub", M6809,XTAL_49_152MHz/32)
MCFG_CPU_PROGRAM_MAP(sub_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos1_state, irq0_line_assert)
MCFG_CPU_ADD("audiocpu", M6809,49152000/32)
MCFG_CPU_ADD("audiocpu", M6809,XTAL_49_152MHz/32)
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos1_state, irq0_line_assert)
MCFG_CPU_ADD("mcu",HD63701,49152000/8)
MCFG_CPU_ADD("mcu",HD63701,XTAL_49_152MHz/8)
MCFG_CPU_PROGRAM_MAP(mcu_map)
MCFG_CPU_IO_MAP(mcu_port_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos1_state, irq0_line_assert)
@ -1099,10 +1099,7 @@ static MACHINE_CONFIG_START( ns1, namcos1_state )
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60.606060)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(9 + 8*8, 9 + 44*8-1, 2*8, 30*8-1)
MCFG_SCREEN_RAW_PARAMS(XTAL_49_152MHz/8, 384, 9+8*8, 9+44*8, 264, 2*8, 30*8)
MCFG_SCREEN_UPDATE_DRIVER(namcos1_state, screen_update_namcos1)
MCFG_SCREEN_VBLANK_DRIVER(namcos1_state, screen_eof_namcos1)
@ -1118,7 +1115,7 @@ static MACHINE_CONFIG_START( ns1, namcos1_state )
MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
MCFG_SOUND_ADD("namco", NAMCO_CUS30, 49152000/2048/2)
MCFG_SOUND_ADD("namco", NAMCO_CUS30, XTAL_49_152MHz/2048/2)
MCFG_SOUND_CONFIG(namco_config)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)

View File

@ -989,15 +989,15 @@ static const namco_interface namco_config =
static MACHINE_CONFIG_START( hopmappy, namcos86_state )
/* basic machine hardware */
MCFG_CPU_ADD("cpu1", M6809, 49152000/32)
MCFG_CPU_ADD("cpu1", M6809, XTAL_49_152MHz/32)
MCFG_CPU_PROGRAM_MAP(cpu1_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos86_state, irq0_line_assert)
MCFG_CPU_ADD("cpu2", M6809, 49152000/32)
MCFG_CPU_ADD("cpu2", M6809, XTAL_49_152MHz/32)
MCFG_CPU_PROGRAM_MAP(hopmappy_cpu2_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos86_state, irq0_line_assert)
MCFG_CPU_ADD("mcu", HD63701, 49152000/8) /* or compatible 6808 with extra instructions */
MCFG_CPU_ADD("mcu", HD63701, XTAL_49_152MHz/8) /* or compatible 6808 with extra instructions */
MCFG_CPU_PROGRAM_MAP(hopmappy_mcu_map)
MCFG_CPU_IO_MAP(mcu_port_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos86_state, irq0_line_hold) /* ??? */
@ -1007,10 +1007,7 @@ static MACHINE_CONFIG_START( hopmappy, namcos86_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60.606060)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(3 + 8*8, 3 + 44*8-1, 2*8, 30*8-1)
MCFG_SCREEN_RAW_PARAMS(XTAL_49_152MHz/8, 384, 3+8*8, 3+44*8, 264, 2*8, 30*8)
MCFG_SCREEN_UPDATE_DRIVER(namcos86_state, screen_update_namcos86)
MCFG_SCREEN_VBLANK_DRIVER(namcos86_state, screen_eof_namcos86)
@ -1025,7 +1022,7 @@ static MACHINE_CONFIG_START( hopmappy, namcos86_state )
MCFG_SOUND_ROUTE(0, "mono", 0.0)
MCFG_SOUND_ROUTE(1, "mono", 0.60) /* only right channel is connected */
MCFG_SOUND_ADD("namco", NAMCO_CUS30, 49152000/2048)
MCFG_SOUND_ADD("namco", NAMCO_CUS30, XTAL_49_152MHz/2048)
MCFG_SOUND_CONFIG(namco_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END

View File

@ -126,10 +126,18 @@ void namcos1_state::video_start()
m_bg_tilemap[4] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(namcos1_state::fg_get_info4),this),TILEMAP_SCAN_ROWS,8,8,36,28);
m_bg_tilemap[5] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(namcos1_state::fg_get_info5),this),TILEMAP_SCAN_ROWS,8,8,36,28);
m_bg_tilemap[4]->set_scrolldx(73,512-73);
m_bg_tilemap[5]->set_scrolldx(73,512-73);
m_bg_tilemap[4]->set_scrolldy(0x10,0x110);
m_bg_tilemap[5]->set_scrolldy(0x10,0x110);
for (i = 0; i < 4; i++)
{
static const int xdisp[] = { 25, 27, 28, 29 };
m_bg_tilemap[i]->set_scrolldx(xdisp[i], 434 - xdisp[i]);
m_bg_tilemap[i]->set_scrolldy(-8, 256 + 8);
}
m_bg_tilemap[4]->set_scrolldx(73, 73);
m_bg_tilemap[5]->set_scrolldx(73, 73);
m_bg_tilemap[4]->set_scrolldy(16, 16);
m_bg_tilemap[5]->set_scrolldy(16, 16);
/* register videoram to the save state system (post-allocation) */
save_pointer(NAME(m_videoram), 0x8000);
@ -395,11 +403,9 @@ UINT32 namcos1_state::screen_update_namcos1(screen_device &screen, bitmap_ind16
for (i = 0;i < 4;i++)
{
static const int disp_x[] = { 25, 27, 28, 29 };
j = i << 2;
scrollx = ( m_playfield_control[j+1] + (m_playfield_control[j+0]<<8) ) - disp_x[i];
scrolly = ( m_playfield_control[j+3] + (m_playfield_control[j+2]<<8) ) + 8;
scrollx = ( m_playfield_control[j+1] + (m_playfield_control[j+0]<<8) );
scrolly = ( m_playfield_control[j+3] + (m_playfield_control[j+2]<<8) );
if (flip_screen())
{

View File

@ -137,10 +137,14 @@ void namcos86_state::video_start()
m_bg_tilemap[2] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info2),this),TILEMAP_SCAN_ROWS,8,8,64,32);
m_bg_tilemap[3] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info3),this),TILEMAP_SCAN_ROWS,8,8,64,32);
m_bg_tilemap[0]->set_transparent_pen(7);
m_bg_tilemap[1]->set_transparent_pen(7);
m_bg_tilemap[2]->set_transparent_pen(7);
m_bg_tilemap[3]->set_transparent_pen(7);
for (int i = 0; i < 4; i++)
{
static const int xdisp[] = { 47, 49, 46, 48 };
m_bg_tilemap[i]->set_scrolldx(xdisp[i], 422 - xdisp[i]);
m_bg_tilemap[i]->set_scrolldy(-9, 9);
m_bg_tilemap[i]->set_transparent_pen(7);
}
m_spriteram = m_rthunder_spriteram + 0x1800;
}
@ -333,11 +337,10 @@ static void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rect
static void set_scroll(running_machine &machine, int layer)
{
namcos86_state *state = machine.driver_data<namcos86_state>();
static const int xdisp[4] = { 47, 49, 46, 48 };
int scrollx,scrolly;
scrollx = state->m_xscroll[layer] - xdisp[layer];
scrolly = state->m_yscroll[layer] + 9;
scrollx = state->m_xscroll[layer];
scrolly = state->m_yscroll[layer];
if (state->flip_screen())
{
scrollx = -scrollx;