Previous 199869 Revisions Next

r26144 Wednesday 13th November, 2013 at 19:22:36 UTC by David Haywood
changed so that the intro runs, but it can no longer be started.. but at least this is a more proper flow.. (nw)
[src/mame/drivers]pgm.c
[src/mame/machine]pgmprot_igs027a_type3.c

trunk/src/mame/machine/pgmprot_igs027a_type3.c
r26143r26144
234234
235235   UINT16 *temp16 = (UINT16 *)memregion("prot")->base();
236236
237   int i;
238   for (i=0;i<0x188/2;i+=2)
239   {
240      temp16[i] = 0xFFFE;
241      temp16[i+1] = 0xEAFF;
237242
243   }
238244
245   
239246
240247
241248
242249
243
244250   // the interrupt code appears to be at 0x08000010
245251   // so point the FIQ vector to jump there, the actual internal EO area code
246252   // would not look like this because this reads from the EO area to get the jump address which is verified
r26143r26144
340346   temp16[(base) /2] = 0xE080; base += 2;
341347   temp16[(base) /2] = 0x6000; base += 2;
342348   temp16[(base) /2] = 0xE587; base += 2;
343   temp16[(base) /2] = 0x002c; base += 2;
349   
350   
351   temp16[(base) /2] = 0x002b; base += 2; // jump to 0x184
344352   temp16[(base) /2] = 0xEA00; base += 2;
345353
346354
r26143r26144
394402   temp16[(base) /2] = 0xff1e; base += 2;
395403   temp16[(base) /2] = 0xe12f; base += 2;
396404
405   // the non-EO area starts in the middle of a function that seems similar to those  at 000037E4 / 000037D4 in killbldp.. by setting this up we allow the intro to run, but can no longer can get in game..
406   // it sets '0x10000038' to a value ot 1
407   // maybe this flag needs to be flipped on interrupts or similar??
408   base = 0x184;
409   temp16[(base) /2] = 0x105c; base += 2;
410   temp16[(base) /2] = 0xE59F; base += 2;
397411
398#if 0
412
413
414
415#if 1
399416   m_svg_ram_sel = 1;
400417
401   for (int i = 0; i < 0x100; i++)
418   for (int i = 0; i < 0x8000; i++)
402419   {
403420      UINT16 *share16;
404421      share16 = (UINT16 *)(m_svg_shareram[1]);
405      share16[i / 2] = 0x0002;
422      share16[i / 2] = 0x0003;
406423      share16 = (UINT16 *)(m_svg_shareram[0]);
407      share16[i / 2] = 0x0002;
424      share16[i / 2] = 0x0003;
408425   }
409426#endif
410427
r26143r26144
444461
445462   machine().device("prot")->memory().space(AS_PROGRAM).install_read_handler(0x1000000c, 0x1000000f, read32_delegate(FUNC(pgm_arm_type3_state::killbldp_speedup_r),this));
446463
464   UINT16 *temp16 = (UINT16 *)memregion("prot")->base();
465   int base = 0xfc;
466   temp16[(base) /2] = 0x0000; base += 2;   
467   temp16[(base) /2] = 0xE1A0; base += 2;   
468   
469   base = 0xd4;
470   temp16[(base) /2] = 0x0000; base += 2;   
471   temp16[(base) /2] = 0xE1A0; base += 2;   
472
473//   base = 0x120;
474//   temp16[(base) /2] = 0x0000; base += 2;   
475//   temp16[(base) /2] = 0xE1A0; base += 2;   
476
447477}
448478
449479READ32_MEMBER(pgm_arm_type3_state::dmnfrnt_speedup_r )
trunk/src/mame/drivers/pgm.c
r26143r26144
482482{
483483   int scanline = param;
484484
485   if(scanline == 224)
486      m_maincpu->set_input_line(6, HOLD_LINE);
485// already being generated  by MCFG_CPU_VBLANK_INT_DRIVER("screen", pgm_state,  irq6_line_hold)
486//   if(scanline == 224)
487//      m_maincpu->set_input_line(6, HOLD_LINE);
487488
488489   if(scanline == 0)
489490      if (!m_irq4_disabled) m_maincpu->set_input_line(4, HOLD_LINE);
r26143r26144
32233224   ROM_LOAD16_WORD_SWAP( "u6.rom",       0x100000, 0x080000, CRC(14c85212) SHA1(8d2489708e176a2c460498a13173be01f645b79e) )
32243225
32253226   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
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'
3227   ROM_LOAD( "theglada_igs027a.bin", 0x0000, 0x4000, NO_DUMP ) // this set clearly uses a different internal rom, the pointers in the external ROM are wrong for the v100 rom.
32283228
32293229   ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */
32303230   ROM_LOAD( "u2.rom", 0x000000, 0x200000,  CRC(c7bcf2ae) SHA1(10bc012c83987f594d5375a51bc4be2e17568a81) )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team