new WORKING game

Happy 6-in-1 (ver. 101CN) [rtw, iq_132, David Haywood]
This commit is contained in:
David Haywood 2014-01-08 10:19:15 +00:00
parent e3a409d9bd
commit d411bdd758
3 changed files with 16 additions and 5 deletions

View File

@ -3688,7 +3688,7 @@ ROM_START( happy6 )
// ROM_LOAD( "happy6_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
// for testing only, this is from the gladiator and wrong for this game.
ROM_LOAD( "happy6_igs027a_execute_only_area", 0x0000, 0x00188, NO_DUMP )
ROM_LOAD( "happy6_igs027a_v100_japan.bin", 0x0188, 0x3e78, BAD_DUMP CRC(d7f06e2d) SHA1(9c3aca7a487f5329d84731e2c63d5ed591bf9d24) ) // from 'thegladpcb set'
ROM_LOAD( "happy6_igs027a_v100_china.bin", 0x0188, 0x3e78, CRC(ed530445) SHA1(05c92d649701be2541557b1334dd6c820ca1009e) )
ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
@ -4181,6 +4181,8 @@ GAME( 2003, thegladpcb, theglad, pgm_arm_type3, pgm, pgm_arm_type3_st
GAME( 2005, svgpcb, svg, pgm_arm_type3, svg, pgm_arm_type3_state, svgpcb, ROT0, "IGS / Idea Factory", "S.V.G. - Spectral vs Generation (M68k label V100JP) (ARM label V100JP ROM 05/12/05 S.V.G V100) (Japan, JAMMA PCB)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )// ARM time: 15:31:35 // PCB version only released in Japan?
GAME( 2004, happy6, pgm, pgm_arm_type3, happy6, pgm_arm_type3_state, happy6, ROT0, "IGS", "Happy 6-in-1 (ver. 101CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
/* -----------------------------------------------------------------------------------------------------------------------
Partially Working, playable, but some imperfections
-----------------------------------------------------------------------------------------------------------------------*/
@ -4237,7 +4239,7 @@ GAME( 2004, kovlsjb, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_sta
GAME( 2004, kovlsjba, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovlsqh2, ROT0, "bootleg", "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN, set 2)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
GAME( 2004, happy6, pgm, pgm_arm_type3, happy6, pgm_arm_type3_state, happy6, ROT0, "IGS", "Happy 6-in-1 (ver. 101CN)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
// this is kludged to boot but isn't really going to work properly without the real internal ROM
GAME( 2005, svg, pgm, pgm_arm_type3, pgm, pgm_arm_type3_state, svg, ROT0, "IGS / Idea Factory", "S.V.G. - Spectral vs Generation (M68k label V200) (ARM label V200, ROM 10/11/05 S.V.G V201)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // label was 200, but it's code rev 201? // ARM time: 10:07:20

View File

@ -353,6 +353,7 @@ public:
DECLARE_READ16_MEMBER( dmnfrnt_main_speedup_r );
DECLARE_READ32_MEMBER( killbldp_speedup_r );
DECLARE_READ32_MEMBER( theglad_speedup_r );
DECLARE_READ32_MEMBER( happy6_speedup_r );
DECLARE_READ32_MEMBER( svg_speedup_r );
DECLARE_MACHINE_RESET(pgm_arm_type3_reset);
};

View File

@ -161,7 +161,7 @@ MACHINE_RESET_MEMBER(pgm_arm_type3_state, pgm_arm_type3_reset)
if (!strcmp(machine().system().name, "theglad")) base = 0x3316;
if (!strcmp(machine().system().name, "theglad100")) base = 0x3316;
if (!strcmp(machine().system().name, "theglad101")) base = 0x3316;
if (!strcmp(machine().system().name, "happy6")) base = 0x3316;
if (!strcmp(machine().system().name, "happy6")) base = 0x3586;
if (!strcmp(machine().system().name, "svgpcb")) base = 0x3a8e;
if (base != -1)
@ -255,6 +255,15 @@ READ32_MEMBER(pgm_arm_type3_state::theglad_speedup_r )
return m_arm_ram2[0x00c/4];
}
READ32_MEMBER(pgm_arm_type3_state::happy6_speedup_r )
{
int pc = space.device().safe_pc();
if (pc == 0x0a08) space.device().execute().eat_cycles(500);
//else printf("theglad_speedup_r %08x\n", pc);
return m_arm_ram2[0x00c/4];
}
// installed over rom
READ32_MEMBER(pgm_arm_type3_state::svg_speedup_r )
{
@ -832,7 +841,6 @@ DRIVER_INIT_MEMBER(pgm_arm_type3_state,happy6)
pgm_happy6_decrypt(machine());
svg_latch_init();
pgm_create_dummy_internal_arm_region_theglad(0);
pgm_patch_external_arm_rom_jumptable_theglada(0x5f1c0);
machine().device("prot")->memory().space(AS_PROGRAM).install_read_handler(0x1000000c, 0x1000000f, read32_delegate(FUNC(pgm_arm_type3_state::theglad_speedup_r),this));
machine().device("prot")->memory().space(AS_PROGRAM).install_read_handler(0x1000000c, 0x1000000f, read32_delegate(FUNC(pgm_arm_type3_state::happy6_speedup_r),this));
}