Beispiel #1
0
static void drgwld2_common_init(running_machine &machine)
{
	pgm_basic_init(machine);
	pgm_dw2_decrypt(machine);

	machine.device("maincpu")->memory().space(AS_PROGRAM).install_legacy_read_handler(0xd80000, 0xd80003, FUNC(dw2_d80000_r));
	machine.device("maincpu")->memory().space(AS_PROGRAM).install_legacy_write_handler(0xd80000, 0xd80003, FUNC(dw2_d80000_w));
	machine.device("maincpu")->memory().space(AS_PROGRAM).install_legacy_write_handler(0xd00000, 0xd00fff, FUNC(dw2_unk_w));
}
Beispiel #2
0
DRIVER_INIT_MEMBER(pgm_arm_type2_state,kov2)
{
	pgm_basic_init();
	pgm_kov2_decrypt(machine());
	kov2_latch_init();

	// we only have a HK internal ROM dumped for now, allow us to override that for debugging purposes.
	machine().device("prot")->memory().space(AS_PROGRAM).install_write_handler(0x48000138, 0x4800013b, write32_delegate(FUNC(pgm_arm_type2_state::kov2_arm_region_w),this));
}
Beispiel #3
0
DRIVER_INIT_MEMBER(pgm_022_025_state,drgw3)
{
	pgm_basic_init();
	pgm_dw3_decrypt();

	// install and configure protection device(s)
	m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xda5610, 0xda5613, read16_delegate(FUNC(igs025_device::killbld_igs025_prot_r), (igs025_device*)m_igs025), write16_delegate(FUNC(igs025_device::killbld_igs025_prot_w), (igs025_device*)m_igs025));
	m_igs022->m_sharedprotram = m_sharedprotram;
	m_igs025->m_kb_source_data = dw3_source_data;
}
void pgm_022_025_state::init_killbld()
{
	pgm_basic_init();
	pgm_killbld_decrypt();

	// install and configure protection device(s)
	m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd40000, 0xd40003, read16_delegate(FUNC(igs025_device::killbld_igs025_prot_r), (igs025_device*)m_igs025), write16_delegate(FUNC(igs025_device::killbld_igs025_prot_w), (igs025_device*)m_igs025));
	m_igs022->m_sharedprotram = m_sharedprotram;
	m_igs025->m_kb_source_data = killbld_source_data;
}
DRIVER_INIT_MEMBER(pgm_028_025_state,olds)
{
	pgm_basic_init();

	m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xdcb400, 0xdcb403, read16_delegate(FUNC(igs025_device::olds_r), (igs025_device*)m_igs025), write16_delegate(FUNC(igs025_device::olds_w), (igs025_device*)m_igs025));
	m_maincpu->space(AS_PROGRAM).install_read_handler(0x8178f4, 0x8178f5, read16_delegate(FUNC(pgm_028_025_state::olds_prot_swap_r), this));
	m_igs028->m_sharedprotram = m_sharedprotram;
	m_igs025->m_kb_source_data = m_olds_source_data;

}
Beispiel #6
0
DRIVER_INIT_MEMBER(pgm_arm_type2_state,ddp2)
{
	pgm_basic_init(machine());
	pgm_ddp2_decrypt(machine());
	kov2_latch_init(machine());

	// we only have a Japan internal ROM dumped for now, allow us to override that for debugging purposes.
	machine().device("prot")->memory().space(AS_PROGRAM).install_legacy_write_handler(0x48000000, 0x48000003, FUNC(ddp2_arm_region_w));

	machine().device("prot")->memory().space(AS_PROGRAM).install_legacy_read_handler(0x1800300c, 0x1800300f, FUNC(ddp2_speedup_r));
	machine().device("maincpu")->memory().space(AS_PROGRAM).install_legacy_read_handler(0x80ee54, 0x80ee55, FUNC(ddp2_main_speedup_r));
}
DRIVER_INIT_MEMBER(pgm_arm_type2_state,kov2p)
{
	// this hacks the identification of the kov2 rom to return the string required for kov2p
	// this isn't guaranteed to work properly (and definitely wouldn't on real hardware due to the internal
	// ROM uploading the encryption table)  The internal ROM should be dumped properly.
	pgm_basic_init();
	pgm_kov2p_decrypt(machine());
	kov2_latch_init();

	// we only have a China internal ROM dumped for now, allow us to override that for debugging purposes.
	machine().device("prot")->memory().space(AS_PROGRAM).install_write_handler(0x48000138, 0x4800013b, write32_delegate(FUNC(pgm_arm_type2_state::kov2p_arm_region_w),this));
}
void pgm_012_025_state::drgw2_common_init()
{
	m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xd80000, 0xd80003, read16_delegate(FUNC(igs025_device::killbld_igs025_prot_r), (igs025_device*)m_igs025), write16_delegate(FUNC(igs025_device::drgw2_d80000_protection_w), (igs025_device*)m_igs025));


	m_igs025->m_kb_source_data = drgw2_source_data;

	pgm_basic_init();
	pgm_drgw2_decrypt();


}
Beispiel #9
0
static void drgwld2_common_init(running_machine &machine)
{
	pgm_basic_init(machine);
	pgm_dw2_decrypt(machine);
	/*
    Info from Elsemi
    Here is how to "bypass" the dw2 hang protection, it fixes the mode
    select and after failing in the 2nd stage (probably there are other checks
    out there).
    */
	machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xd80000, 0xd80003, FUNC(dw2_d80000_r));
}
MACHINE_CONFIG_END



void pgm_arm_type3_state::svg_basic_init()
{
    pgm_basic_init();
    m_svg_shareram[0] = std::make_unique<uint32_t[]>(0x20000 / 4);
    m_svg_shareram[1] = std::make_unique<uint32_t[]>(0x20000 / 4);
    m_svg_ram_sel = 0;

    save_pointer(NAME(m_svg_shareram[0].get()), 0x20000 / 4);
    save_pointer(NAME(m_svg_shareram[1].get()), 0x20000 / 4);
    save_item(NAME(m_svg_ram_sel));
}
MACHINE_CONFIG_END



void pgm_arm_type3_state::svg_basic_init()
{
	pgm_basic_init();
	m_svg_shareram[0] = auto_alloc_array(machine(), UINT32, 0x20000 / 4);
	m_svg_shareram[1] = auto_alloc_array(machine(), UINT32, 0x20000 / 4);
	m_svg_ram_sel = 0;

	save_pointer(NAME(m_svg_shareram[0]), 0x20000 / 4);
	save_pointer(NAME(m_svg_shareram[1]), 0x20000 / 4);
	save_item(NAME(m_svg_ram_sel));
}
Beispiel #12
0
MACHINE_CONFIG_END



static void svg_basic_init(running_machine &machine)
{
	pgm_arm_type3_state *state = machine.driver_data<pgm_arm_type3_state>();

	pgm_basic_init(machine);
	state->m_svg_shareram[0] = auto_alloc_array(machine, UINT32, 0x10000 / 4);
	state->m_svg_shareram[1] = auto_alloc_array(machine, UINT32, 0x10000 / 4);
	state->m_svg_ram_sel = 0;

	state->save_pointer(NAME(state->m_svg_shareram[0]), 0x10000 / 4);
	state->save_pointer(NAME(state->m_svg_shareram[1]), 0x10000 / 4);
	state->save_item(NAME(state->m_svg_ram_sel));
}
Beispiel #13
0
DRIVER_INIT_MEMBER(pgm_arm_type2_state,dwpc)
{
	pgm_basic_init(machine());
	kov2_latch_init(machine());
	pgm_mm_decrypt(machine()); // encryption is the same as martial masters
}