midtunit modernization and some cleanup (nw)

This commit is contained in:
Miodrag Milanovic 2013-05-08 12:56:31 +00:00
parent 78adfc7d42
commit 73c4f5f86e
5 changed files with 114 additions and 113 deletions

View File

@ -568,36 +568,36 @@ void psxgpu_device::psx_gpu_init( int n_gputype )
machine().save().save_memory( "globals", NULL, 0, "m_packet", (UINT8 *)&m_packet, 1, sizeof( m_packet ) );
state_save_register_global_pointer( machine(), p_vram, width * height );
state_save_register_global( machine(), n_gpu_buffer_offset );
state_save_register_global( machine(), n_vramx );
state_save_register_global( machine(), n_vramy );
state_save_register_global( machine(), n_twy );
state_save_register_global( machine(), n_twx );
state_save_register_global( machine(), n_tww );
state_save_register_global( machine(), n_drawarea_x1 );
state_save_register_global( machine(), n_drawarea_y1 );
state_save_register_global( machine(), n_drawarea_x2 );
state_save_register_global( machine(), n_drawarea_y2 );
state_save_register_global( machine(), n_horiz_disstart );
state_save_register_global( machine(), n_horiz_disend );
state_save_register_global( machine(), n_vert_disstart );
state_save_register_global( machine(), n_vert_disend );
state_save_register_global( machine(), b_reverseflag );
state_save_register_global( machine(), n_drawoffset_x );
state_save_register_global( machine(), n_drawoffset_y );
state_save_register_global( machine(), m_n_displaystartx );
state_save_register_global( machine(), n_displaystarty );
state_save_register_global( machine(), n_gpustatus );
state_save_register_global( machine(), n_gpuinfo );
state_save_register_global( machine(), n_lightgun_x );
state_save_register_global( machine(), n_lightgun_y );
state_save_register_global( machine(), m_n_tx );
state_save_register_global( machine(), m_n_ty );
state_save_register_global( machine(), n_abr );
state_save_register_global( machine(), n_tp );
state_save_register_global( machine(), n_ix );
state_save_register_global( machine(), n_iy );
state_save_register_global( machine(), n_ti );
state_save_register_global(machine(), n_gpu_buffer_offset );
state_save_register_global(machine(), n_vramx );
state_save_register_global(machine(), n_vramy );
state_save_register_global(machine(), n_twy );
state_save_register_global(machine(), n_twx );
state_save_register_global(machine(), n_tww );
state_save_register_global(machine(), n_drawarea_x1 );
state_save_register_global(machine(), n_drawarea_y1 );
state_save_register_global(machine(), n_drawarea_x2 );
state_save_register_global(machine(), n_drawarea_y2 );
state_save_register_global(machine(), n_horiz_disstart );
state_save_register_global(machine(), n_horiz_disend );
state_save_register_global(machine(), n_vert_disstart );
state_save_register_global(machine(), n_vert_disend );
state_save_register_global(machine(), b_reverseflag );
state_save_register_global(machine(), n_drawoffset_x );
state_save_register_global(machine(), n_drawoffset_y );
state_save_register_global(machine(), m_n_displaystartx );
state_save_register_global(machine(), n_displaystarty );
state_save_register_global(machine(), n_gpustatus );
state_save_register_global(machine(), n_gpuinfo );
state_save_register_global(machine(), n_lightgun_x );
state_save_register_global(machine(), n_lightgun_y );
state_save_register_global(machine(), m_n_tx );
state_save_register_global(machine(), m_n_ty );
state_save_register_global(machine(), n_abr );
state_save_register_global(machine(), n_tp );
state_save_register_global(machine(), n_ix );
state_save_register_global(machine(), n_iy );
state_save_register_global(machine(), n_ti );
machine().save().register_postload( save_prepost_delegate( FUNC( psxgpu_device::updatevisiblearea ), this ) );
}

View File

@ -68,6 +68,29 @@ public:
DECLARE_VIDEO_START(midtunit);
TIMER_CALLBACK_MEMBER(dma_callback);
required_device<cpu_device> m_maincpu;
void register_state_saving();
void init_tunit_generic(int sound);
void init_nbajam_common(int te_protection);
/* CMOS-related variables */
UINT8 cmos_write_enable;
/* sound-related variables */
UINT8 chip_type;
UINT8 fake_sound_state;
/* protection */
UINT8 mk_prot_index;
UINT16 mk2_prot_data;
const UINT32 *nbajam_prot_table;
UINT16 nbajam_prot_queue[5];
UINT8 nbajam_prot_index;
const UINT8 *jdredd_prot_table;
UINT8 jdredd_prot_index;
UINT8 jdredd_prot_max;
};
/*----------- defined in video/midtunit.c -----------*/
extern UINT8 midtunit_gfx_rom_large;

View File

@ -20,43 +20,22 @@
#define SOUND_DCS 3
/* CMOS-related variables */
static UINT8 cmos_write_enable;
/* sound-related variables */
static UINT8 chip_type;
static UINT8 fake_sound_state;
/* protection */
static UINT8 mk_prot_index;
static UINT16 mk2_prot_data;
static const UINT32 *nbajam_prot_table;
static UINT16 nbajam_prot_queue[5];
static UINT8 nbajam_prot_index;
static const UINT8 *jdredd_prot_table;
static UINT8 jdredd_prot_index;
static UINT8 jdredd_prot_max;
/*************************************
*
* State saving
*
*************************************/
static void register_state_saving(running_machine &machine)
void midtunit_state::register_state_saving()
{
state_save_register_global(machine, cmos_write_enable);
state_save_register_global(machine, fake_sound_state);
state_save_register_global(machine, mk_prot_index);
state_save_register_global(machine, mk2_prot_data);
state_save_register_global_array(machine, nbajam_prot_queue);
state_save_register_global(machine, nbajam_prot_index);
state_save_register_global(machine, jdredd_prot_index);
state_save_register_global(machine, jdredd_prot_max);
state_save_register_global(machine(), cmos_write_enable);
state_save_register_global(machine(), fake_sound_state);
state_save_register_global(machine(), mk_prot_index);
state_save_register_global(machine(), mk2_prot_data);
state_save_register_global_array(machine(), nbajam_prot_queue);
state_save_register_global(machine(), nbajam_prot_index);
state_save_register_global(machine(), jdredd_prot_index);
state_save_register_global(machine(), jdredd_prot_max);
}
@ -407,10 +386,10 @@ READ16_MEMBER(midtunit_state::jdredd_hack_r)
*
*************************************/
static void init_tunit_generic(running_machine &machine, int sound)
void midtunit_state::init_tunit_generic(int sound)
{
/* register for state saving */
register_state_saving(machine);
register_state_saving();
/* load sound ROMs and set up sound handlers */
chip_type = sound;
@ -421,7 +400,7 @@ static void init_tunit_generic(running_machine &machine, int sound)
break;
case SOUND_DCS:
dcs_init(machine);
dcs_init(machine());
break;
}
@ -442,7 +421,7 @@ static void init_tunit_generic(running_machine &machine, int sound)
DRIVER_INIT_MEMBER(midtunit_state,mktunit)
{
/* common init */
init_tunit_generic(machine(), SOUND_ADPCM);
init_tunit_generic(SOUND_ADPCM);
/* protection */
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b00000, 0x1b6ffff, read16_delegate(FUNC(midtunit_state::mk_prot_r),this), write16_delegate(FUNC(midtunit_state::mk_prot_w),this));
@ -460,45 +439,44 @@ DRIVER_INIT_MEMBER(midtunit_state,mkturbo)
}
static void init_nbajam_common(running_machine &machine, int te_protection)
void midtunit_state::init_nbajam_common(int te_protection)
{
/* common init */
init_tunit_generic(machine, SOUND_ADPCM_LARGE);
midtunit_state *state = machine.driver_data<midtunit_state>();
init_tunit_generic(SOUND_ADPCM_LARGE);
/* protection */
if (!te_protection)
{
nbajam_prot_table = nbajam_prot_values;
state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b14020, 0x1b2503f, read16_delegate(FUNC(midtunit_state::nbajam_prot_r),state), write16_delegate(FUNC(midtunit_state::nbajam_prot_w),state));
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b14020, 0x1b2503f, read16_delegate(FUNC(midtunit_state::nbajam_prot_r),this), write16_delegate(FUNC(midtunit_state::nbajam_prot_w),this));
}
else
{
nbajam_prot_table = nbajamte_prot_values;
state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b15f40, 0x1b37f5f, read16_delegate(FUNC(midtunit_state::nbajam_prot_r),state), write16_delegate(FUNC(midtunit_state::nbajam_prot_w),state));
state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b95f40, 0x1bb7f5f, read16_delegate(FUNC(midtunit_state::nbajam_prot_r),state), write16_delegate(FUNC(midtunit_state::nbajam_prot_w),state));
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b15f40, 0x1b37f5f, read16_delegate(FUNC(midtunit_state::nbajam_prot_r),this), write16_delegate(FUNC(midtunit_state::nbajam_prot_w),this));
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b95f40, 0x1bb7f5f, read16_delegate(FUNC(midtunit_state::nbajam_prot_r),this), write16_delegate(FUNC(midtunit_state::nbajam_prot_w),this));
}
/* sound chip protection (hidden RAM) */
if (!te_protection)
machine.device("adpcm:cpu")->memory().space(AS_PROGRAM).install_ram(0xfbaa, 0xfbd4);
machine().device("adpcm:cpu")->memory().space(AS_PROGRAM).install_ram(0xfbaa, 0xfbd4);
else
machine.device("adpcm:cpu")->memory().space(AS_PROGRAM).install_ram(0xfbec, 0xfc16);
machine().device("adpcm:cpu")->memory().space(AS_PROGRAM).install_ram(0xfbec, 0xfc16);
}
DRIVER_INIT_MEMBER(midtunit_state,nbajam)
{
init_nbajam_common(machine(), 0);
init_nbajam_common(0);
}
DRIVER_INIT_MEMBER(midtunit_state,nbajamte)
{
init_nbajam_common(machine(), 1);
init_nbajam_common(1);
}
DRIVER_INIT_MEMBER(midtunit_state,jdreddp)
{
/* common init */
init_tunit_generic(machine(), SOUND_ADPCM_LARGE);
init_tunit_generic(SOUND_ADPCM_LARGE);
/* looks like the watchdog needs to be disabled */
m_maincpu->space(AS_PROGRAM).nop_write(0x01d81060, 0x01d8107f);
@ -530,7 +508,7 @@ DRIVER_INIT_MEMBER(midtunit_state,jdreddp)
DRIVER_INIT_MEMBER(midtunit_state,mk2)
{
/* common init */
init_tunit_generic(machine(), SOUND_DCS);
init_tunit_generic(SOUND_DCS);
midtunit_gfx_rom_large = 1;
/* protection */

View File

@ -340,7 +340,7 @@ void thomson_state::to7_5p14_reset()
void thomson_state::to7_5p14_init()
{
LOG(( "to7_5p14_init: CD 90-640 controller\n" ));
state_save_register_global( machine(), to7_5p14_select );
state_save_register_global(machine(), to7_5p14_select );
}
@ -447,7 +447,7 @@ const mc6843_interface to7_6843_itf = { NULL };
void thomson_state::to7_5p14sd_init()
{
LOG(( "to7_5p14sd_init: CD 90-015 controller\n" ));
state_save_register_global( machine(), to7_5p14sd_select );
state_save_register_global(machine(), to7_5p14sd_select );
}
@ -858,17 +858,17 @@ void thomson_state::to7_qdd_init()
to7qdd = auto_alloc(machine(), to7qdd_t);
state_save_register_global( machine(), to7qdd->status );
state_save_register_global( machine(), to7qdd->ctrl1 );
state_save_register_global( machine(), to7qdd->ctrl2 );
state_save_register_global( machine(), to7qdd->ctrl3 );
state_save_register_global( machine(), to7qdd->drive );
state_save_register_global( machine(), to7qdd->data_idx );
state_save_register_global( machine(), to7qdd->start_idx );
state_save_register_global( machine(), to7qdd->data_size );
state_save_register_global( machine(), to7qdd->data_crc );
state_save_register_global( machine(), to7qdd->index_pulse );
state_save_register_global_array( machine(), to7qdd->data );
state_save_register_global(machine(), to7qdd->status );
state_save_register_global(machine(), to7qdd->ctrl1 );
state_save_register_global(machine(), to7qdd->ctrl2 );
state_save_register_global(machine(), to7qdd->ctrl3 );
state_save_register_global(machine(), to7qdd->drive );
state_save_register_global(machine(), to7qdd->data_idx );
state_save_register_global(machine(), to7qdd->start_idx );
state_save_register_global(machine(), to7qdd->data_size );
state_save_register_global(machine(), to7qdd->data_crc );
state_save_register_global(machine(), to7qdd->index_pulse );
state_save_register_global_array(machine(), to7qdd->data );
}
@ -1554,24 +1554,24 @@ void thomson_state::thmfc_floppy_init()
thmfc_floppy_cmd = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(thomson_state::thmfc_floppy_cmd_complete_cb),this));
state_save_register_global( machine(), thmfc1->op );
state_save_register_global( machine(), thmfc1->sector );
state_save_register_global( machine(), thmfc1->sector_id );
state_save_register_global( machine(), thmfc1->track );
state_save_register_global( machine(), thmfc1->side );
state_save_register_global( machine(), thmfc1->drive );
state_save_register_global( machine(), thmfc1->sector_size );
state_save_register_global( machine(), thmfc1->formatting );
state_save_register_global( machine(), thmfc1->ipl );
state_save_register_global( machine(), thmfc1->data_idx );
state_save_register_global( machine(), thmfc1->data_size );
state_save_register_global( machine(), thmfc1->data_finish );
state_save_register_global( machine(), thmfc1->stat0 );
state_save_register_global( machine(), thmfc1->data_raw_idx );
state_save_register_global( machine(), thmfc1->data_raw_size );
state_save_register_global( machine(), thmfc1->data_crc );
state_save_register_global( machine(), thmfc1->wsync );
state_save_register_global_array( machine(), thmfc1->data );
state_save_register_global(machine(), thmfc1->op );
state_save_register_global(machine(), thmfc1->sector );
state_save_register_global(machine(), thmfc1->sector_id );
state_save_register_global(machine(), thmfc1->track );
state_save_register_global(machine(), thmfc1->side );
state_save_register_global(machine(), thmfc1->drive );
state_save_register_global(machine(), thmfc1->sector_size );
state_save_register_global(machine(), thmfc1->formatting );
state_save_register_global(machine(), thmfc1->ipl );
state_save_register_global(machine(), thmfc1->data_idx );
state_save_register_global(machine(), thmfc1->data_size );
state_save_register_global(machine(), thmfc1->data_finish );
state_save_register_global(machine(), thmfc1->stat0 );
state_save_register_global(machine(), thmfc1->data_raw_idx );
state_save_register_global(machine(), thmfc1->data_raw_size );
state_save_register_global(machine(), thmfc1->data_crc );
state_save_register_global(machine(), thmfc1->wsync );
state_save_register_global_array(machine(), thmfc1->data );
}
@ -1752,8 +1752,8 @@ UINT8 to7_floppy_bank;
void thomson_state::to7_floppy_init( void* base )
{
membank( THOM_FLOP_BANK )->configure_entries( 0, TO7_NB_FLOP_BANK, base, 0x800 );
state_save_register_global( machine(), to7_controller_type );
state_save_register_global( machine(), to7_floppy_bank );
state_save_register_global(machine(), to7_controller_type );
state_save_register_global(machine(), to7_floppy_bank );
to7_5p14sd_init();
to7_5p14_init();
to7_qdd_init();

View File

@ -1326,9 +1326,9 @@ void thomson_state::to7_midi_init( )
{
LOG (( "to7_midi_init\n" ));
to7_midi_chardev = chardev_open( &machine, "/dev/snd/midiC0D0", "/dev/snd/midiC0D1", &to7_midi_interface );
state_save_register_global( machine, to7_midi_status );
state_save_register_global( machine, to7_midi_overrun );
state_save_register_global( machine, to7_midi_intr );
state_save_register_global(machine(), to7_midi_status );
state_save_register_global(machine(), to7_midi_overrun );
state_save_register_global(machine(), to7_midi_intr );
}
@ -2297,7 +2297,7 @@ void thomson_state::to9_palette_init()
m_to9_palette_idx = 0;
memset( m_to9_palette_data, 0, sizeof( m_to9_palette_data ) );
save_item(NAME(m_to9_palette_idx));
state_save_register_global_array( machine(), m_to9_palette_data );
state_save_register_global_array(machine(), m_to9_palette_data);
}