specific initial z80 banks only applies to NEOCD, normally set to 0 on boot

This commit is contained in:
Michaël Banaan Ananas 2014-03-14 13:59:25 +00:00
parent b59ef368a2
commit 691024fcec
3 changed files with 16 additions and 37 deletions

View File

@ -173,13 +173,10 @@
void neogeo_state::adjust_display_position_interrupt_timer()
{
if ((m_display_counter + 1) != 0)
{
attotime period = attotime::from_hz(NEOGEO_PIXEL_CLOCK) * (m_display_counter + 1);
if (LOG_VIDEO_SYSTEM) logerror("adjust_display_position_interrupt_timer current y: %02x current x: %02x target y: %x target x: %x\n", m_screen->vpos(), m_screen->hpos(), (m_display_counter + 1) / NEOGEO_HTOTAL, (m_display_counter + 1) % NEOGEO_HTOTAL);
attotime period = attotime::from_hz(NEOGEO_PIXEL_CLOCK) * (m_display_counter + 1);
if (LOG_VIDEO_SYSTEM) logerror("adjust_display_position_interrupt_timer current y: %02x current x: %02x target y: %x target x: %x\n", m_screen->vpos(), m_screen->hpos(), (m_display_counter + 1) / NEOGEO_HTOTAL, (m_display_counter + 1) % NEOGEO_HTOTAL);
m_display_position_interrupt_timer->adjust(period);
}
m_display_position_interrupt_timer->adjust(period);
}
@ -213,9 +210,9 @@ void neogeo_state::neogeo_set_display_counter_lsb( UINT16 data )
void neogeo_state::update_interrupts()
{
m_maincpu->set_input_line(m_vblank_level, m_vblank_interrupt_pending ? ASSERT_LINE : CLEAR_LINE);
m_maincpu->set_input_line(m_raster_level, m_display_position_interrupt_pending ? ASSERT_LINE : CLEAR_LINE);
m_maincpu->set_input_line(3, m_irq3_pending ? ASSERT_LINE : CLEAR_LINE);
m_maincpu->set_input_line(m_raster_level, m_display_position_interrupt_pending ? ASSERT_LINE : CLEAR_LINE);
m_maincpu->set_input_line(m_vblank_level, m_vblank_interrupt_pending ? ASSERT_LINE : CLEAR_LINE);
}
@ -686,18 +683,15 @@ void neogeo_state::neogeo_audio_cpu_banking_init()
}
}
/* set initial audio banks --
how does this really work, or is it even necessary? */
m_bank_audio_cart[0]->set_entry(0x1e);
m_bank_audio_cart[1]->set_entry(0x0e);
m_bank_audio_cart[2]->set_entry(0x06);
m_bank_audio_cart[3]->set_entry(0x02);
// set initial audio banks
m_bank_audio_cart[0]->set_entry(0);
m_bank_audio_cart[1]->set_entry(0);
m_bank_audio_cart[2]->set_entry(0);
m_bank_audio_cart[3]->set_entry(0);
}
/*************************************
*
* System control register
@ -853,10 +847,6 @@ void neogeo_state::neogeo_postload()
}
void neogeo_state::machine_start()
{
m_type = NEOGEO_MVS;

View File

@ -863,22 +863,6 @@ void neogeo_state::svcsplus_px_hack()
mem16[0xa110/2] = 0x9750;
}
#ifdef UNUSED_FUNCTION
UINT16 mv0_bank_ram[ 0x10/2 ];
READ16_MEMBER( neogeo_state::mv0_bankswitch_r )
{
return mv0_bank_ram[ offset ];
}
WRITE16_MEMBER( neogeo_state::mv0_bankswitch_w )
{
UINT32 bankaddress = (mv0_bank_ram[ 0 ] >> 8) + (mv0_bank_ram[ 1 ] << 8) + 0x100000;
COMBINE_DATA( &mv0_bank_ram[ offset ] );
neogeo_set_main_cpu_bank_address( bankaddress );
}
#endif
/* The King of Fighters 2003 (bootleg set 1) */

View File

@ -1030,11 +1030,16 @@ MACHINE_START_MEMBER(ng_aes_state,neocd)
m_type = NEOGEO_CD;
common_machine_start();
// set initial audio banks (different on NEOCD)
m_bank_audio_cart[0]->set_entry(0x1e);
m_bank_audio_cart[1]->set_entry(0x0e);
m_bank_audio_cart[2]->set_entry(0x06);
m_bank_audio_cart[3]->set_entry(0x02);
/* irq levels for NEOCD (swapped compared to MVS / AES) */
m_vblank_level = 2;
m_raster_level = 1;
/* initialize the memcard data structure */
/* NeoCD doesn't have memcard slots, rather, it has a larger internal memory which works the same */
m_memcard_data = auto_alloc_array_clear(machine(), UINT8, 0x2000);