예제 #1
0
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(machine());
	pgm_kov2p_decrypt(machine());
	kov2_latch_init(machine());

	UINT8 *mem8 = (UINT8 *)machine().root_device().memregion("user1")->base();
	mem8[0xDE] = 0xC0;
	mem8[0xDF] = 0x46;
	mem8[0x4ED8] = 0xA8;// B0
	mem8[0x4EDC] = 0x9C;// A4
	mem8[0x4EE0] = 0x5C;// 64
	mem8[0x4EE4] = 0x94;// 9C
	mem8[0x4EE8] = 0xE8;// F0
	mem8[0x4EEC] = 0x6C;// 74
	mem8[0x4EF0] = 0xD4;// DC
	mem8[0x4EF4] = 0x50;// 58
	mem8[0x4EF8] = 0x80;// 88
	mem8[0x4EFC] = 0x9C;// A4
	mem8[0x4F00] = 0x28;// 30
	mem8[0x4F04] = 0x30;// 38
	mem8[0x4F08] = 0x34;// 3C
	mem8[0x4F0C] = 0x1C;// 24
	mem8[0x1FFFFC] = 0x33;
	mem8[0x1FFFFD] = 0x99;

	// 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_legacy_write_handler(0x48000138, 0x4800013b, FUNC(kov2_arm_region_w));
}
예제 #2
0
DRIVER_INIT_MEMBER(pgm_arm_type2_state,martmast)
{
	pgm_basic_init(machine());
	pgm_mm_decrypt(machine());
	kov2_latch_init(machine());

	// we only have a USA / CHINA internal ROMs dumped for now, allow us to override that for debugging purposes.
	machine().device("prot")->memory().space(AS_PROGRAM).install_legacy_write_handler(0x48000138, 0x4800013b, FUNC(martmast_arm_region_w));
}
예제 #3
0
DRIVER_INIT_MEMBER(pgm_arm_type2_state,ddp2)
{
	pgm_basic_init();
	pgm_ddp2_decrypt(machine());
	kov2_latch_init();

	machine().device("prot")->memory().space(AS_PROGRAM).install_read_handler(0x1800300c, 0x1800300f, read32_delegate(FUNC(pgm_arm_type2_state::ddp2_speedup_r),this));
	m_maincpu->space(AS_PROGRAM).install_read_handler(0x80ee54, 0x80ee55, read16_delegate(FUNC(pgm_arm_type2_state::ddp2_main_speedup_r),this));
}
예제 #4
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));
}
예제 #5
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));
}
예제 #6
0
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));
}
예제 #7
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
}