Previous 199869 Revisions Next

r44430 Sunday 24th January, 2016 at 23:19:34 UTC by David Haywood
unsurprisingly, there's decent protection, really need the dallas rom :/ (nw)
[src/mame/drivers]gaelco2.cpp
[src/mame/includes]gaelco2.h

trunk/src/mame/drivers/gaelco2.cpp
r252941r252942
6767   AM_RANGE(0x30004a, 0x30004b) AM_WRITENOP                                                                /* Sound muting? */
6868   AM_RANGE(0x320000, 0x320001) AM_READ_PORT("COIN")                                                       /* COINSW + SERVICESW */
6969   AM_RANGE(0x500000, 0x500001) AM_WRITE(gaelco2_coin_w)                                                   /* Coin lockout + counters */
70   AM_RANGE(0xfe0000, 0xfeffff) AM_RAM                                                                     /* Work RAM */
70   AM_RANGE(0xfe0000, 0xfeffff) AM_RAM AM_SHARE("shareram")                                                /* Work RAM */
7171ADDRESS_MAP_END
7272
7373
r252941r252942
14531453   ROM_LOAD( "palce16v8h.u29",  0x0000, 0x0117, BAD_DUMP CRC(4a0a6f39) SHA1(57351e471649391c9abf110828fe2f128fe84eee) )
14541454ROM_END
14551455
1456
1457READ16_MEMBER(gaelco2_state::maniacsqa_prot_r)
1458{
1459   int pc = space.device().safe_pc();
1460   
1461   // if -1 is returned at any point on these checks the game instantly reports 'power failure'
1462   // these are generally done right before the other checks
1463   if (pc == 0x3dbc) return 0x0000; // must not be -1
1464   if (pc == 0x5ce4) return 0x0000; // must not be -1
1465   if (pc == 0x5d08) return 0x0000; // must not be -1 (stores 5 here just before)
1466   if (pc == 0xaa90) return 0x0000; // must not be -1
1467   if (pc == 0xaab2) return 0x0000; // must not be -1
1468   if (pc == 0x9f10) return 0x0000; // must not be -1
1469   if (pc == 0x3b86) return 0x0000; // must not be -1
1470
1471   if (pc == 0x3dce) return 0x0000; // must be 0
1472
1473   if (pc == 0x25c2) return 0x0000; // writes 0 to 0xfe45fa then expects this to be 0
1474   
1475   if (pc == 0x5cf6) return 0x0000; // must be 0
1476   if (pc == 0x5d1a) return 0x0000; // must be 0
1477   if (pc == 0xaaa0) return 0x0000; // must be 0?
1478
1479   if (pc == 0xaac4) return 0x0000; // checks for 0, 2 possible code paths after - happens when piece is dropped
1480   if (pc == 0xaad0) return 0x0a00; // if above ISN'T 0 this must be 0x0a00 (but code then dies, probably wants some data filled?)
1481   // other code path just results in no more pieces dropping? maybe the MCU does the matching algorithm?
1482
1483   
1484   
1485
1486
1487   printf("read at PC %08x\n", pc);
1488   return m_shareram[(0xfedaa2 - 0xfe0000) / 2];
1489
1490}
1491
1492DRIVER_INIT_MEMBER(gaelco2_state,maniacsqa)
1493{
1494   m_maincpu->space(AS_PROGRAM).install_read_handler(0xfedaa2, 0xfedaa3, read16_delegate(FUNC(gaelco2_state::maniacsqa_prot_r), this) );
1495}
1496
1497
14561498GAME( 1994, aligator,  0,       alighunt, alighunt, gaelco2_state, alighunt, ROT0, "Gaelco", "Alligator Hunt", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
14571499GAME( 1994, aligatorun,aligator,alighunt, alighunt, gaelco2_state, alighunt, ROT0, "Gaelco", "Alligator Hunt (unprotected)", 0 )
14581500GAME( 1995, touchgo,  0,        touchgo,  touchgo,  gaelco2_state, touchgo,  ROT0, "Gaelco", "Touch & Go (World)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
r252941r252942
14601502GAME( 1995, touchgoe, touchgo,  touchgo,  touchgo,  gaelco2_state, touchgo,  ROT0, "Gaelco", "Touch & Go (earlier revision)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
14611503GAME( 1995, wrally2,  0,        wrally2,  wrally2,  driver_device, 0,        ROT0, "Gaelco", "World Rally 2: Twin Racing", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
14621504GAME( 1996, maniacsq, 0,        maniacsq, maniacsq, driver_device, 0,        ROT0, "Gaelco", "Maniac Square (unprotected)", 0 )
1463GAME( 1996, maniacsqa,maniacsq, maniacsq, maniacsq, driver_device, 0,        ROT0, "Gaelco", "Maniac Square (protected)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
1505GAME( 1996, maniacsqa,maniacsq, maniacsq, maniacsq, gaelco2_state, maniacsqa,ROT0, "Gaelco", "Maniac Square (protected)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
14641506GAME( 1996, snowboar, 0,        snowboar, snowboar, driver_device, 0,        ROT0, "Gaelco", "Snow Board Championship (Version 2.1)", 0 )
14651507GAME( 1996, snowboara,snowboar, snowboar, snowboar, gaelco2_state, snowboar, ROT0, "Gaelco", "Snow Board Championship (Version 2.0)", 0 )
14661508GAME( 1998, bang,     0,        bang,     bang,     bang_state,    bang,     ROT0, "Gaelco", "Bang!", 0 )
trunk/src/mame/includes/gaelco2.h
r252941r252942
1616      m_eeprom(*this, "eeprom"),
1717      m_gfxdecode(*this, "gfxdecode"),
1818      m_palette(*this, "palette"),
19      m_generic_paletteram_16(*this, "paletteram") { }
19      m_generic_paletteram_16(*this, "paletteram"),
20      m_shareram(*this, "shareram")
21   { }
2022
2123   required_device<m68000_device> m_maincpu;
2224   required_device<buffered_spriteram16_device> m_spriteram;
r252941r252942
2628   required_device<gfxdecode_device> m_gfxdecode;
2729   required_device<palette_device> m_palette;
2830   required_shared_ptr<UINT16> m_generic_paletteram_16;
31   optional_shared_ptr<UINT16> m_shareram;
2932
33   
34
3035   UINT32 snowboard_latch;
3136
3237
r252941r252942
3439   tilemap_t *m_pant[2];
3540   int m_dual_monitor;
3641
37   DECLARE_READ16_MEMBER(dallas_kludge_r);
42   DECLARE_READ16_MEMBER(dallas_kludge_r);   
43   DECLARE_READ16_MEMBER(maniacsqa_prot_r);
44
3845   DECLARE_WRITE16_MEMBER(gaelco2_coin_w);
3946   DECLARE_WRITE16_MEMBER(gaelco2_coin2_w);
4047   DECLARE_WRITE16_MEMBER(touchgo_coin_w);
r252941r252942
4552   DECLARE_DRIVER_INIT(touchgo);
4653   DECLARE_DRIVER_INIT(snowboar);
4754   DECLARE_DRIVER_INIT(alighunt);
55   DECLARE_DRIVER_INIT(maniacsqa);
4856   TILE_GET_INFO_MEMBER(get_tile_info_gaelco2_screen0);
4957   TILE_GET_INFO_MEMBER(get_tile_info_gaelco2_screen1);
5058   TILE_GET_INFO_MEMBER(get_tile_info_gaelco2_screen0_dual);


Previous 199869 Revisions Next


© 1997-2024 The MAME Team