mirror of
https://github.com/holub/mame
synced 2025-04-25 01:40:16 +03:00
midtunit modernization and some cleanup (nw)
This commit is contained in:
parent
78adfc7d42
commit
73c4f5f86e
@ -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 ) );
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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 */
|
||||
|
@ -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();
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user