segas16b.cpp: Replace MCU simulations with real code from a decapped/dumped MCU for Dynamite Dux (set 1) (8751 317-0095) [TeamEurope, Brian Troha, The Dumping Unionn]

This commit is contained in:
braintro 2019-10-11 15:08:06 -05:00
parent 6e98146ef4
commit 03c0a63bb4
2 changed files with 2 additions and 31 deletions

View File

@ -1354,27 +1354,6 @@ void segas16b_state::altbeasj_i8751_sim()
}
//-------------------------------------------------
// ddux_i8751_sim - simulate the I8751
// from Dynamite Dux
//-------------------------------------------------
void segas16b_state::ddux_i8751_sim()
{
// signal a VBLANK to the main CPU
m_maincpu->set_input_line(4, HOLD_LINE);
// process any new sound data
uint16_t temp = m_workram[0x0bd0/2];
if ((temp & 0xff00) != 0x0000)
{
address_space &space = m_maincpu->space(AS_PROGRAM);
m_mapper->write(space, 0x03, temp >> 8);
m_workram[0x0bd0/2] = temp & 0x00ff;
}
}
//-------------------------------------------------
// tturf_i8751_sim - simulate the I8751
// from Tough Turf
@ -6203,7 +6182,7 @@ ROM_START( ddux1 )
ROM_LOAD( "epr-11916.a10", 0x0000, 0x8000, CRC(7ab541cf) SHA1(feb88022ca1796d020e53e95ad345159bd415530) )
ROM_REGION( 0x1000, "mcu", 0 ) // Intel i8751 protection MCU
ROM_LOAD( "317-0095.c2", 0x00000, 0x1000, NO_DUMP )
ROM_LOAD( "317-0095.c2", 0x00000, 0x1000, CRC(b06b4ca7) SHA1(563807dd8194179e25a2186f3572fb3738537c33) )
ROM_END
@ -9392,12 +9371,6 @@ void segas16b_state::init_altbeas4_5521()
downcast<mc8123_device &>(*m_soundcpu).decode(memregion("soundcpu")->base(), m_sound_decrypted_opcodes, 0x8000);
}
void segas16b_state::init_ddux_5704()
{
init_generic_5704();
m_i8751_vblank_hook = i8751_sim_delegate(&segas16b_state::ddux_i8751_sim, this);
}
void segas16b_state::init_dunkshot_5358_small()
{
init_generic_5358_small();
@ -9551,7 +9524,7 @@ GAME( 1991, cottonja, cotton, system16b_fd1094, cotton, segas16b_stat
GAME( 1988, ddux, 0, system16b_fd1094, ddux, segas16b_state, init_generic_5521, ROT0, "Sega", "Dynamite Dux (set 3, World) (FD1094 317-0096)", 0 )
GAME( 1988, dduxj, ddux, system16b_fd1094, ddux, segas16b_state, init_generic_5521, ROT0, "Sega", "Dynamite Dux (set 2, Japan) (FD1094 317-0094)", 0 )
GAME( 1988, ddux1, ddux, system16b_i8751, ddux, segas16b_state, init_ddux_5704, ROT0, "Sega", "Dynamite Dux (set 1) (8751 317-0095)", 0 )
GAME( 1988, ddux1, ddux, system16b_i8751, ddux, segas16b_state, init_generic_5704, ROT0, "Sega", "Dynamite Dux (set 1) (8751 317-0095)", 0 )
GAME( 1987, dunkshot, 0, system16b_fd1089a, dunkshot, segas16b_state, init_dunkshot_5358_small,ROT0, "Sega", "Dunk Shot (Rev C, FD1089A 317-0022)", 0 )
GAME( 1987, dunkshota, dunkshot, system16b_fd1089a, dunkshot, segas16b_state, init_dunkshot_5358_small,ROT0, "Sega", "Dunk Shot (Rev A, FD1089A 317-0022)", 0 )

View File

@ -111,7 +111,6 @@ public:
void init_sdi_5358_small();
void init_fpointbla();
void init_altbeasj_5521();
void init_ddux_5704();
void init_snapper();
void init_shinobi4_5521();
void init_defense_5358_small();
@ -226,7 +225,6 @@ protected:
// i8751 simulations
void altbeast_common_i8751_sim(offs_t soundoffs, offs_t inputoffs, int alt_bank);
void altbeasj_i8751_sim();
void ddux_i8751_sim();
void tturf_i8751_sim();
void wb3_i8751_sim();