Previous 199869 Revisions Next

r26555 Sunday 8th December, 2013 at 22:33:02 UTC by David Haywood
svgpcb: added igs027a rom, runs intro, dies trying to go in game, not sure why yet [rtw, David Haywood]
[src/mame/drivers]pgm.c
[src/mame/includes]pgm.h
[src/mame/machine]pgmprot_igs027a_type3.c

trunk/src/mame/machine/pgmprot_igs027a_type3.c
r26554r26555
251251   return m_arm_ram2[0x00c/4];
252252}
253253
254READ32_MEMBER(pgm_arm_type3_state::svg_speedup_r )
255{
256   int pc = space.device().safe_pc();
257   if (pc == 0x7d8) space.device().execute().eat_cycles(500);
258   //else printf("killbldp_speedup_r %08x\n", pc);
259   return m_arm_ram2[0x00c/4];
260}
254261
262
255263void pgm_arm_type3_state::pgm_create_dummy_internal_arm_region_theglad(void)
256264{
257265   UINT16 *temp16 = (UINT16 *)memregion("prot")->base();
r26554r26555
477485   machine().device("prot")->memory().space(AS_PROGRAM).install_read_handler(0x1000000c, 0x1000000f, read32_delegate(FUNC(pgm_arm_type3_state::theglad_speedup_r),this));
478486}
479487
488
480489void pgm_arm_type3_state::pgm_patch_external_arm_rom_jumptable_theglada(int base)
481490{
482491   // we don't have the correct internal ROM for this version, so insead we use the one we have and patch the jump table in the external ROM
r26554r26555
560569   svg_basic_init();
561570   pgm_svg_decrypt(machine());
562571   svg_latch_init();
563   pgm_create_dummy_internal_arm_region(0x4000);
572   pgm_create_dummy_internal_arm_region_theglad();
573
564574}
565575
566576DRIVER_INIT_MEMBER(pgm_arm_type3_state,svgpcb)
r26554r26555
568578   svg_basic_init();
569579   pgm_svgpcb_decrypt(machine());
570580   svg_latch_init();
571   pgm_create_dummy_internal_arm_region(0x4000);
581   pgm_create_dummy_internal_arm_region_theglad();
582
583//   machine().device("prot")->memory().space(AS_PROGRAM).install_read_handler(0x1000000c, 0x1000000f, read32_delegate(FUNC(pgm_arm_type3_state::svg_speedup_r),this));
584
572585}
573586
574587
trunk/src/mame/includes/pgm.h
r26554r26555
350350   DECLARE_READ16_MEMBER( dmnfrnt_main_speedup_r );
351351   DECLARE_READ32_MEMBER( killbldp_speedup_r );
352352   DECLARE_READ32_MEMBER( theglad_speedup_r );
353   DECLARE_READ32_MEMBER( svg_speedup_r );
353354   DECLARE_MACHINE_RESET(pgm_arm_type3_reset);
354355};
355356
trunk/src/mame/drivers/pgm.c
r26554r26555
36463646   ROM_LOAD16_WORD_SWAP( "svg_bios.u49",    0x000000, 0x020000, CRC(3346401f) SHA1(28bd730b6026c1e521c95072d33c7bdcd19c1460) )
36473647   ROM_LOAD16_WORD_SWAP( "svg_v100jp.u50",  0x100000, 0x080000, CRC(8d0405e4) SHA1(b6175c9ffeaac531d28e7845cb34c673476e286a) )
36483648
3649
36493650   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
3650   ROM_LOAD( "svg_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
3651#if 0
3652   /* temp, remove me once combined */
3653   ROM_LOAD16_WORD_SWAP( "page00", 0x00 * 0x9c, 0x9c, CRC(7a7d92b9)   )
3654   ROM_LOAD16_WORD_SWAP( "page01", 0x01 * 0x9c, 0x9c, CRC(7a7d92b9)   )
3655   ROM_LOAD16_WORD_SWAP( "page02", 0x02 * 0x9c, 0x9c, CRC(2e9d4165)   )
3656   ROM_LOAD16_WORD_SWAP( "page03", 0x03 * 0x9c, 0x9c, CRC(b51e0f9c)   )
3657   ROM_LOAD16_WORD_SWAP( "page04", 0x04 * 0x9c, 0x9c, CRC(5ee59414)   )
3658   ROM_LOAD16_WORD_SWAP( "page05", 0x05 * 0x9c, 0x9c, CRC(c0d1ea02)   )
3659   ROM_LOAD16_WORD_SWAP( "page06", 0x06 * 0x9c, 0x9c, CRC(bebe0afa)   )
3660   ROM_LOAD16_WORD_SWAP( "page07", 0x07 * 0x9c, 0x9c, CRC(84e17cdb)   )
3661   ROM_LOAD16_WORD_SWAP( "page08", 0x08 * 0x9c, 0x9c, CRC(6fffa4e8)   )
3662   ROM_LOAD16_WORD_SWAP( "page09", 0x09 * 0x9c, 0x9c, CRC(3800e317)   )
3663   ROM_LOAD16_WORD_SWAP( "page0a", 0x0a * 0x9c, 0x9c, CRC(abd76978)   )
3664   ROM_LOAD16_WORD_SWAP( "page0b", 0x0b * 0x9c, 0x9c, CRC(e6d83c06)   )
3665   ROM_LOAD16_WORD_SWAP( "page0c", 0x0c * 0x9c, 0x9c, CRC(3468e50c)   )
3666   ROM_LOAD16_WORD_SWAP( "page0d", 0x0d * 0x9c, 0x9c, CRC(cebbd3e9)   )
3667   ROM_LOAD16_WORD_SWAP( "page0e", 0x0e * 0x9c, 0x9c, CRC(bdcf150d)   )
3668   ROM_LOAD16_WORD_SWAP( "page0f", 0x0f * 0x9c, 0x9c, CRC(bd4dcbe9)   )
36513669
3670   ROM_LOAD16_WORD_SWAP( "page10", 0x10 * 0x9c, 0x9c, CRC(522e4166)   )
3671   ROM_LOAD16_WORD_SWAP( "page11", 0x11 * 0x9c, 0x9c, CRC(04ef2819)   )
3672   ROM_LOAD16_WORD_SWAP( "page12", 0x12 * 0x9c, 0x9c, CRC(2ebbe3b8)   )
3673   ROM_LOAD16_WORD_SWAP( "page13", 0x13 * 0x9c, 0x9c, CRC(084ad6e7)   )
3674   ROM_LOAD16_WORD_SWAP( "page14", 0x14 * 0x9c, 0x9c, CRC(344e4f98)   )
3675   ROM_LOAD16_WORD_SWAP( "page15", 0x15 * 0x9c, 0x9c, CRC(96bfb689)   )
3676   ROM_LOAD16_WORD_SWAP( "page16", 0x16 * 0x9c, 0x9c, CRC(778fd10f)   )
3677   ROM_LOAD16_WORD_SWAP( "page17", 0x17 * 0x9c, 0x9c, CRC(b51062b5)   )
3678   ROM_LOAD16_WORD_SWAP( "page18", 0x18 * 0x9c, 0x9c, CRC(828d598f)   )
3679   ROM_LOAD16_WORD_SWAP( "page19", 0x19 * 0x9c, 0x9c, CRC(93ecea91)   )
3680   ROM_LOAD16_WORD_SWAP( "page1a", 0x1a * 0x9c, 0x9c, CRC(06c3e100)   )
3681   ROM_LOAD16_WORD_SWAP( "page1b", 0x1b * 0x9c, 0x9c, CRC(608dbd52)   )
3682   ROM_LOAD16_WORD_SWAP( "page1c", 0x1c * 0x9c, 0x9c, CRC(c9e0813a)   )
3683   ROM_LOAD16_WORD_SWAP( "page1d", 0x1d * 0x9c, 0x9c, CRC(fff7aa20)   )
3684   ROM_LOAD16_WORD_SWAP( "page1e", 0x1e * 0x9c, 0x9c, CRC(3938c90d)   )
3685   ROM_LOAD16_WORD_SWAP( "page1f", 0x1f * 0x9c, 0x9c, CRC(9341f980)   )
3686
3687   ROM_LOAD16_WORD_SWAP( "page20", 0x20 * 0x9c, 0x9c, CRC(581d1a13)   )
3688   ROM_LOAD16_WORD_SWAP( "page21", 0x21 * 0x9c, 0x9c, CRC(78583484)   )
3689   ROM_LOAD16_WORD_SWAP( "page22", 0x22 * 0x9c, 0x9c, CRC(036ae38e)   )
3690   ROM_LOAD16_WORD_SWAP( "page23", 0x23 * 0x9c, 0x9c, CRC(4f82e8a3)   )
3691   ROM_LOAD16_WORD_SWAP( "page24", 0x24 * 0x9c, 0x9c, CRC(8373fbcb)   )
3692   ROM_LOAD16_WORD_SWAP( "page25", 0x25 * 0x9c, 0x9c, CRC(5ac73b85)   )
3693   ROM_LOAD16_WORD_SWAP( "page26", 0x26 * 0x9c, 0x9c, CRC(5b0aa40e)   )
3694   ROM_LOAD16_WORD_SWAP( "page27", 0x27 * 0x9c, 0x9c, CRC(b27464ea)   )
3695   ROM_LOAD16_WORD_SWAP( "page28", 0x28 * 0x9c, 0x9c, CRC(0e187e08)   )
3696   ROM_LOAD16_WORD_SWAP( "page29", 0x29 * 0x9c, 0x9c, CRC(1f62b715)   )
3697   ROM_LOAD16_WORD_SWAP( "page2a", 0x2a * 0x9c, 0x9c, CRC(aaa49bf9)   )
3698   ROM_LOAD16_WORD_SWAP( "page2b", 0x2b * 0x9c, 0x9c, CRC(231ecd40)   )
3699   ROM_LOAD16_WORD_SWAP( "page2c", 0x2c * 0x9c, 0x9c, CRC(9e4a4677)   )
3700   ROM_LOAD16_WORD_SWAP( "page2d", 0x2d * 0x9c, 0x9c, CRC(f124b6cf)   )
3701   ROM_LOAD16_WORD_SWAP( "page2e", 0x2e * 0x9c, 0x9c, CRC(dbea8517)   )
3702   ROM_LOAD16_WORD_SWAP( "page2f", 0x2f * 0x9c, 0x9c, CRC(df2223ca)   )
3703
3704   ROM_LOAD16_WORD_SWAP( "page30", 0x30 * 0x9c, 0x9c, CRC(da861aab)   )
3705   ROM_LOAD16_WORD_SWAP( "page31", 0x31 * 0x9c, 0x9c, CRC(ac9d70c4)   )
3706   ROM_LOAD16_WORD_SWAP( "page32", 0x32 * 0x9c, 0x9c, CRC(5d2631fa)   )
3707   ROM_LOAD16_WORD_SWAP( "page33", 0x33 * 0x9c, 0x9c, CRC(c3793fd4)   )
3708   ROM_LOAD16_WORD_SWAP( "page34", 0x34 * 0x9c, 0x9c, CRC(ce6df10e)   )
3709   ROM_LOAD16_WORD_SWAP( "page35", 0x35 * 0x9c, 0x9c, CRC(2a0df1c0)   )
3710   ROM_LOAD16_WORD_SWAP( "page36", 0x36 * 0x9c, 0x9c, CRC(13877e3f)   )
3711   ROM_LOAD16_WORD_SWAP( "page37", 0x37 * 0x9c, 0x9c, CRC(d41b8b56)   )
3712   ROM_LOAD16_WORD_SWAP( "page38", 0x38 * 0x9c, 0x9c, CRC(ba3faebb)   )
3713   ROM_LOAD16_WORD_SWAP( "page39", 0x39 * 0x9c, 0x9c, CRC(63f76afb)   )
3714   ROM_LOAD16_WORD_SWAP( "page3a", 0x3a * 0x9c, 0x9c, CRC(669351e3)   )
3715   ROM_LOAD16_WORD_SWAP( "page3b", 0x3b * 0x9c, 0x9c, CRC(0c456d7c)   )
3716   ROM_LOAD16_WORD_SWAP( "page3c", 0x3c * 0x9c, 0x9c, CRC(51312e64)   )
3717   ROM_LOAD16_WORD_SWAP( "page3d", 0x3d * 0x9c, 0x9c, CRC(7d60ca31)   )
3718   ROM_LOAD16_WORD_SWAP( "page3e", 0x3e * 0x9c, 0x9c, CRC(40201a66)   )
3719   ROM_LOAD16_WORD_SWAP( "page3f", 0x3f * 0x9c, 0x9c, CRC(eb1b2ec6)   )
3720
3721   ROM_LOAD16_WORD_SWAP( "page40", 0x40 * 0x9c, 0x9c, CRC(bb3dfff2)   )
3722   ROM_LOAD16_WORD_SWAP( "page41", 0x41 * 0x9c, 0x9c, CRC(c66a4986)   )
3723   ROM_LOAD16_WORD_SWAP( "page42", 0x42 * 0x9c, 0x9c, CRC(19d19cc4)   )
3724   ROM_LOAD16_WORD_SWAP( "page43", 0x43 * 0x9c, 0x9c, CRC(83c788f9)   )
3725   ROM_LOAD16_WORD_SWAP( "page44", 0x44 * 0x9c, 0x9c, CRC(237dfc25)   )
3726   ROM_LOAD16_WORD_SWAP( "page45", 0x45 * 0x9c, 0x9c, CRC(a0d63251)   )
3727   ROM_LOAD16_WORD_SWAP( "page46", 0x46 * 0x9c, 0x9c, CRC(f7ba4453)   )
3728   ROM_LOAD16_WORD_SWAP( "page47", 0x47 * 0x9c, 0x9c, CRC(76f296d2)   )
3729   ROM_LOAD16_WORD_SWAP( "page48", 0x48 * 0x9c, 0x9c, CRC(768f8882)   )
3730   ROM_LOAD16_WORD_SWAP( "page49", 0x49 * 0x9c, 0x9c, CRC(e3cc7b53)   )
3731   ROM_LOAD16_WORD_SWAP( "page4a", 0x4a * 0x9c, 0x9c, CRC(cd422fa9)   )
3732   ROM_LOAD16_WORD_SWAP( "page4b", 0x4b * 0x9c, 0x9c, CRC(4cdc65f8)   )
3733   ROM_LOAD16_WORD_SWAP( "page4c", 0x4c * 0x9c, 0x9c, CRC(3e8073f5)   )
3734   ROM_LOAD16_WORD_SWAP( "page4d", 0x4d * 0x9c, 0x9c, CRC(37e5a5df)   )
3735   ROM_LOAD16_WORD_SWAP( "page4e", 0x4e * 0x9c, 0x9c, CRC(e0d1bca7)   )
3736   ROM_LOAD16_WORD_SWAP( "page4f", 0x4f * 0x9c, 0x9c, CRC(66a2884a)   )
3737
3738   ROM_LOAD16_WORD_SWAP( "page50", 0x50 * 0x9c, 0x9c, CRC(01c4e7dd)   )
3739   ROM_LOAD16_WORD_SWAP( "page51", 0x51 * 0x9c, 0x9c, CRC(d359036c)   )
3740   ROM_LOAD16_WORD_SWAP( "page52", 0x52 * 0x9c, 0x9c, CRC(30ff2cff)   )
3741   ROM_LOAD16_WORD_SWAP( "page53", 0x53 * 0x9c, 0x9c, CRC(9ce7bafe)   )
3742   ROM_LOAD16_WORD_SWAP( "page54", 0x54 * 0x9c, 0x9c, CRC(179d750b)   )
3743   ROM_LOAD16_WORD_SWAP( "page55", 0x55 * 0x9c, 0x9c, CRC(e9c10e9f)   )
3744   ROM_LOAD16_WORD_SWAP( "page56", 0x56 * 0x9c, 0x9c, CRC(6afc9cf1)   )
3745   ROM_LOAD16_WORD_SWAP( "page57", 0x57 * 0x9c, 0x9c, CRC(b2b39a30)   )
3746   ROM_LOAD16_WORD_SWAP( "page58", 0x58 * 0x9c, 0x9c, CRC(41f0cc93)   )
3747   ROM_LOAD16_WORD_SWAP( "page59", 0x59 * 0x9c, 0x9c, CRC(2e917d23)   )
3748   ROM_LOAD16_WORD_SWAP( "page5a", 0x5a * 0x9c, 0x9c, CRC(c1efa6f2)   )
3749   ROM_LOAD16_WORD_SWAP( "page5b", 0x5b * 0x9c, 0x9c, CRC(c2989e24)   )
3750   ROM_LOAD16_WORD_SWAP( "page5c", 0x5c * 0x9c, 0x9c, CRC(fc903fab)   )
3751   ROM_LOAD16_WORD_SWAP( "page5d", 0x5d * 0x9c, 0x9c, CRC(afb51ff4)   )
3752   ROM_LOAD16_WORD_SWAP( "page5e", 0x5e * 0x9c, 0x9c, CRC(85b707d5)   )
3753   ROM_LOAD16_WORD_SWAP( "page5f", 0x5f * 0x9c, 0x9c, CRC(f9dc6148)   )
3754
3755   ROM_LOAD16_WORD_SWAP( "page60", 0x60 * 0x9c, 0x9c, CRC(5db0990b)   )
3756   ROM_LOAD16_WORD_SWAP( "page61", 0x61 * 0x9c, 0x9c, CRC(a02b5fda)   )
3757   ROM_LOAD16_WORD_SWAP( "page62", 0x62 * 0x9c, 0x9c, CRC(3932b150)   )
3758   ROM_LOAD16_WORD_SWAP( "page63", 0x63 * 0x9c, 0x9c, CRC(3932b150)   )
3759   ROM_LOAD16_WORD_SWAP( "page64", 0x64 * 0x9c, 0x9c, CRC(3932b150)   )
3760   ROM_LOAD16_WORD_SWAP( "page65", 0x65 * 0x9c, 0x9c, CRC(3932b150)   )
3761   ROM_LOAD16_WORD_SWAP( "page66", 0x66 * 0x9c, 0x9c, CRC(3932b150)   )
3762   ROM_LOAD16_WORD_SWAP( "page67", 0x67 * 0x9c, 0x9c, CRC(3932b150)   )
3763   ROM_LOAD16_WORD_SWAP( "page68", 0x68 * 0x9c, 0x9c, CRC(3932b150)   )
3764   ROM_LOAD16_WORD_SWAP( "page69", 0x69 * 0x9c, 0x9c, CRC(5aa51eb9)   )
3765   /* temp, remove me once cut off EO area */
3766   ROM_LOAD16_WORD_SWAP( "prot_svgpcb", 0x0000, 0x4000, CRC(1e487985) SHA1(a8f4c946f23d9d8dc7269680d04dfb0582b0b8f2)  )
3767#endif
3768   ROM_LOAD( "svg_igs027a_execute_only_area", 0x0000, 0x00188, NO_DUMP )
3769   ROM_LOAD( "svgcpb_igs027a_v100_japan.bin", 0x0188, 0x3e78, CRC(7a59da5d) SHA1(d67ba465db40ca716b4b901b1c8e762716fb954e) )
3770
3771
3772   
36523773   ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
36533774   ROM_LOAD( "svg_v100jp.u64", 0x000000, 0x400000, CRC(399d4a8b) SHA1(b120e8386a259e6fd7941acf3c33cf288eda616c) )
36543775   ROM_LOAD( "svg_v100jp.u65", 0x400000, 0x400000, CRC(6e1c33b1) SHA1(66f26b2f4c0b3dcf6d1bb1df48e2ddbcc9d9432d) )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team