Previous 199869 Revisions Next

r26112 Tuesday 12th November, 2013 at 04:19:05 UTC by David Haywood
added partial dump of internal rom from IGS game 'The Gladiator' - it's missing the first 0x188 bytes which are execute-only, unfortunately the code jumps to them in multiple places and it appears to be important so it still doesn't work (nw)
[src/mame/drivers]pgm.c
[src/mame/includes]pgm.h
[src/mame/machine]pgmprot_igs027a_type3.c

trunk/src/mame/drivers/pgm.c
r26111r26112
31933193   ROM_LOAD16_WORD_SWAP( "v101.u6",      0x100000, 0x080000, CRC(f799e866) SHA1(dccc3c903357c40c3cf85ac0ae8fc12fb0f853a6) )
31943194
31953195   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
3196   ROM_LOAD( "theglad_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
3196   ROM_LOAD( "thegladpcb_igs027a_execute_only_area", 0x0000, 0x00188, NO_DUMP )
3197   ROM_LOAD( "thegladpcb_igs027a.bin", 0x0188, 0x3e78, CRC(d7f06e2d) SHA1(9c3aca7a487f5329d84731e2c63d5ed591bf9d24) )    // from 'thegladpcb set'
31973198
31983199   ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */
31993200   ROM_LOAD( "v107.u26", 0x000000, 0x200000,  CRC(f7c61357) SHA1(52d31c464dfc83c5371b078cb6b73c0d0e0d57e3) )
r26111r26112
32223223   ROM_LOAD16_WORD_SWAP( "u6.rom",       0x100000, 0x080000, CRC(14c85212) SHA1(8d2489708e176a2c460498a13173be01f645b79e) )
32233224
32243225   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
3225   ROM_LOAD( "theglad_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
3226   ROM_LOAD( "thegladpcb_igs027a_execute_only_area", 0x0000, 0x00188, NO_DUMP )
3227   ROM_LOAD( "thegladpcb_igs027a.bin", 0x0188, 0x3e78, CRC(d7f06e2d) SHA1(9c3aca7a487f5329d84731e2c63d5ed591bf9d24) )    // from 'thegladpcb set'
32263228
32273229   ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */
32283230   ROM_LOAD( "u2.rom", 0x000000, 0x200000,  CRC(c7bcf2ae) SHA1(10bc012c83987f594d5375a51bc4be2e17568a81) )
r26111r26112
32483250ROM_START( thegladpcb )
32493251   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
32503252   ROM_LOAD16_WORD_SWAP( "bios.42",    0x000000, 0x020000, CRC(517cf7a2) SHA1(f5720b29e3be6ec22be03a768618cb2a1aa4ade7) )
3251   ROM_LOAD16_WORD_SWAP( "glad_v100.43",  0x100000, 0x080000, CRC(bcf3b172) SHA1(df7e2808c0341be0a59eefa852c857a3a919223e) )
3253   ROM_LOAD16_WORD_SWAP( "glad_v100.43",  0x100000, 0x080000, CRC(bcf3b172) SHA1(df7e2808c0341be0a59eefa852c857a3a919223e) )
32523254
32533255   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
3254   ROM_LOAD( "theglad_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
3256   ROM_LOAD( "thegladpcb_igs027a_execute_only_area", 0x0000, 0x00188, NO_DUMP )
3257   ROM_LOAD( "thegladpcb_igs027a.bin", 0x0188, 0x3e78, CRC(d7f06e2d) SHA1(9c3aca7a487f5329d84731e2c63d5ed591bf9d24) )    // from 'thegladpcb set'
32553258
32563259   ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */
32573260   ROM_LOAD( "igs.62", 0x000000, 0x200000, CRC(0f3f511e) SHA1(28dd8d27495cec86e968a3ea549c5b30513dbb6e) )
trunk/src/mame/machine/pgmprot_igs027a_type3.c
r26111r26112
178178   save_item(NAME(m_svg_ram_sel));
179179}
180180
181void pgm_arm_type3_state::pgm_create_dummy_internal_arm_region()
181void pgm_arm_type3_state::pgm_create_dummy_internal_arm_region(int size)
182182{
183183   UINT16 *temp16 = (UINT16 *)memregion("prot")->base();
184184
185185   // fill with RX 14
186186   int i;
187   for (i=0;i<0x4000/2;i+=2)
187   for (i=0;i<size/2;i+=2)
188188   {
189189      temp16[i] = 0xff1e;
190190      temp16[i+1] = 0xe12f;
r26111r26112
219219   svg_basic_init();
220220   pgm_theglad_decrypt(machine());
221221   svg_latch_init();
222   pgm_create_dummy_internal_arm_region();
222   pgm_create_dummy_internal_arm_region(0x188);
223223}
224224
225225DRIVER_INIT_MEMBER(pgm_arm_type3_state,svg)
r26111r26112
227227   svg_basic_init();
228228   pgm_svg_decrypt(machine());
229229   svg_latch_init();
230   pgm_create_dummy_internal_arm_region();
230   pgm_create_dummy_internal_arm_region(0x4000);
231231}
232232
233233DRIVER_INIT_MEMBER(pgm_arm_type3_state,svgpcb)
r26111r26112
235235   svg_basic_init();
236236   pgm_svgpcb_decrypt(machine());
237237   svg_latch_init();
238   pgm_create_dummy_internal_arm_region();
238   pgm_create_dummy_internal_arm_region(0x4000);
239239}
240240
241241
r26111r26112
281281   svg_latch_init();
282282
283283   /* put some fake code for the ARM here ... */
284   pgm_create_dummy_internal_arm_region();
284   pgm_create_dummy_internal_arm_region(0x4000);
285285
286286   machine().device("prot")->memory().space(AS_PROGRAM).install_read_handler(0x18000444, 0x18000447, read32_delegate(FUNC(pgm_arm_type3_state::dmnfrnt_speedup_r),this));
287287   m_maincpu->space(AS_PROGRAM).install_read_handler(0x80a03c, 0x80a03d, read16_delegate(FUNC(pgm_arm_type3_state::dmnfrnt_main_speedup_r),this));
r26111r26112
303303   svg_basic_init();
304304   pgm_happy6_decrypt(machine());
305305   svg_latch_init();
306   pgm_create_dummy_internal_arm_region();
306   pgm_create_dummy_internal_arm_region(0x4000);
307307}
trunk/src/mame/includes/pgm.h
r26111r26112
377377   DECLARE_READ32_MEMBER( svg_latch_arm_r );
378378   DECLARE_WRITE32_MEMBER( svg_latch_arm_w );
379379   void svg_basic_init();
380   void pgm_create_dummy_internal_arm_region();
380   void pgm_create_dummy_internal_arm_region(int size);
381381   void svg_latch_init();
382382   DECLARE_READ32_MEMBER( dmnfrnt_speedup_r );
383383   DECLARE_READ16_MEMBER( dmnfrnt_main_speedup_r );

Previous 199869 Revisions Next


© 1997-2024 The MAME Team