ROM_END static DRIVER_INIT( boogwing ) { const UINT8* src = memory_region(machine, "gfx6"); UINT8* dst = memory_region(machine, "tiles2") + 0x200000; deco56_decrypt_gfx(machine, "tiles1"); deco56_decrypt_gfx(machine, "tiles2"); deco56_decrypt_gfx(machine, "tiles3"); deco56_remap_gfx(machine, "gfx6"); deco102_decrypt_cpu(machine, "maincpu", 0x42ba, 0x00, 0x18); memcpy(dst, src, 0x100000); }
ROM_END static DRIVER_INIT( dblewing ) { deco56_decrypt_gfx(machine, "gfx1"); deco102_decrypt_cpu(machine, "maincpu", 0x399d, 0x25, 0x3d); }
ROM_END DRIVER_INIT_MEMBER(dblewing_state,dblewing) { deco56_decrypt_gfx(machine(), "gfx1"); deco102_decrypt_cpu(machine(), "maincpu", 0x399d, 0x25, 0x3d); }
ROM_END DRIVER_INIT_MEMBER(dblewing_state,dblewing) { deco56_decrypt_gfx(machine(), "gfx1"); deco102_decrypt_cpu((UINT16 *)memregion("maincpu")->base(), m_decrypted_opcodes, 0x80000, 0x399d, 0x25, 0x3d); }
/* Diet Go Go */ ROM_START( dietgo ) ROM_REGION( 0x80000, "maincpu", 0 ) /* DE102 code (encrypted) */ ROM_LOAD16_BYTE( "jy_00-2.4h", 0x000001, 0x040000, CRC(014dcf62) SHA1(1a28ce4a643ec8b6f062b1200342ed4dc6db38a1) ) ROM_LOAD16_BYTE( "jy_01-2.5h", 0x000000, 0x040000, CRC(793ebd83) SHA1(b9178f18ce6e9fca848cbbf9dce3f3856672bf94) ) ROM_REGION( 0x10000, "audiocpu", 0 ) ROM_LOAD( "jy_02.14m", 0x00000, 0x10000, CRC(4e3492a5) SHA1(5f302bdbacbf95ea9f3694c48545a1d6bba4b019) ) ROM_REGION( 0x100000, "gfx1", 0 ) ROM_LOAD( "may-00.10a", 0x00000, 0x100000, CRC(234d1f8d) SHA1(42d23aad20df20cbd2359cc12bdd47636b2027d3) ) ROM_REGION( 0x200000, "gfx2", 0 ) ROM_LOAD16_BYTE( "may-01.14a", 0x000000, 0x100000, CRC(2da57d04) SHA1(3898e9fef365ecaa4d86aa11756b527a4fffb494) ) ROM_LOAD16_BYTE( "may-02.16a", 0x000001, 0x100000, CRC(3a66a713) SHA1(beeb99156332cf4870738f7769b719a02d7b40af) ) ROM_REGION( 0x80000, "oki", 0 ) /* Oki samples */ ROM_LOAD( "may-03.11l", 0x00000, 0x80000, CRC(b6e42bae) SHA1(c282cdf7db30fb63340cc609bf00f5ab63a75583) ) ROM_REGION( 0x0600, "plds", 0 ) ROM_LOAD( "pal16l8b_vd-00.6h", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ ROM_LOAD( "pal16l8b_vd-01.7h", 0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */ ROM_LOAD( "pal16r6a_vd-02.11h", 0x0400, 0x0104, NO_DUMP ) /* PAL is read protected */ ROM_END ROM_START( dietgoe ) // weird, still version 1.1 but different (earlier) date ROM_REGION( 0x80000, "maincpu", 0 ) /* DE102 code (encrypted) */ ROM_LOAD16_BYTE( "jy_00-1.4h", 0x000001, 0x040000, CRC(8bce137d) SHA1(55f5b1c89330803c6147f9656f2cabe8d1de8478) ) ROM_LOAD16_BYTE( "jy_01-1.5h", 0x000000, 0x040000, CRC(eca50450) SHA1(1a24117e3b1b66d7dbc5484c94cc2c627d34e6a3) ) ROM_REGION( 0x10000, "audiocpu", 0 ) ROM_LOAD( "jy_02.14m", 0x00000, 0x10000, CRC(4e3492a5) SHA1(5f302bdbacbf95ea9f3694c48545a1d6bba4b019) ) ROM_REGION( 0x100000, "gfx1", 0 ) ROM_LOAD( "may-00.10a", 0x00000, 0x100000, CRC(234d1f8d) SHA1(42d23aad20df20cbd2359cc12bdd47636b2027d3) ) ROM_REGION( 0x200000, "gfx2", 0 ) ROM_LOAD16_BYTE( "may-01.14a", 0x000000, 0x100000, CRC(2da57d04) SHA1(3898e9fef365ecaa4d86aa11756b527a4fffb494) ) ROM_LOAD16_BYTE( "may-02.16a", 0x000001, 0x100000, CRC(3a66a713) SHA1(beeb99156332cf4870738f7769b719a02d7b40af) ) ROM_REGION( 0x80000, "oki", 0 ) /* Oki samples */ ROM_LOAD( "may-03.11l", 0x00000, 0x80000, CRC(b6e42bae) SHA1(c282cdf7db30fb63340cc609bf00f5ab63a75583) ) ROM_REGION( 0x0600, "plds", 0 ) ROM_LOAD( "pal16l8b_vd-00.6h", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ ROM_LOAD( "pal16l8b_vd-01.7h", 0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */ ROM_LOAD( "pal16r6a_vd-02.11h", 0x0400, 0x0104, NO_DUMP ) /* PAL is read protected */ ROM_END ROM_START( dietgou ) ROM_REGION( 0x80000, "maincpu", 0 ) /* DE102 code (encrypted) */ ROM_LOAD16_BYTE( "jx_00-.4h", 0x000001, 0x040000, CRC(1a9de04f) SHA1(7ce1e7cf4cdce2b02da4df2a6ae9a9e665e24422) ) ROM_LOAD16_BYTE( "jx_01-.5h", 0x000000, 0x040000, CRC(79c097c8) SHA1(be49055ee324535e1118d243bd49e74ec1d2a2d7) ) ROM_REGION( 0x10000, "audiocpu", 0 ) ROM_LOAD( "jx_02.14m", 0x00000, 0x10000, CRC(4e3492a5) SHA1(5f302bdbacbf95ea9f3694c48545a1d6bba4b019) ) /* Same as other regions but different label */ ROM_REGION( 0x100000, "gfx1", 0 ) ROM_LOAD( "may-00.10a", 0x00000, 0x100000, CRC(234d1f8d) SHA1(42d23aad20df20cbd2359cc12bdd47636b2027d3) ) ROM_REGION( 0x200000, "gfx2", 0 ) ROM_LOAD16_BYTE( "may-01.14a", 0x000000, 0x100000, CRC(2da57d04) SHA1(3898e9fef365ecaa4d86aa11756b527a4fffb494) ) ROM_LOAD16_BYTE( "may-02.16a", 0x000001, 0x100000, CRC(3a66a713) SHA1(beeb99156332cf4870738f7769b719a02d7b40af) ) ROM_REGION( 0x80000, "oki", 0 ) /* Oki samples */ ROM_LOAD( "may-03.11l", 0x00000, 0x80000, CRC(b6e42bae) SHA1(c282cdf7db30fb63340cc609bf00f5ab63a75583) ) ROM_REGION( 0x0600, "plds", 0 ) ROM_LOAD( "pal16l8b_vd-00.6h", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ ROM_LOAD( "pal16l8b_vd-01.7h", 0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */ ROM_LOAD( "pal16r6a_vd-02.11h", 0x0400, 0x0104, NO_DUMP ) /* PAL is read protected */ ROM_END ROM_START( dietgoj ) ROM_REGION( 0x80000, "maincpu", 0 ) /* DE102 code (encrypted) */ ROM_LOAD16_BYTE( "jw_00-2.4h", 0x000001, 0x040000, CRC(e6ba6c49) SHA1(d5eaea81f1353c58c03faae67428f7ee98e766b1) ) ROM_LOAD16_BYTE( "jw_01-2.5h", 0x000000, 0x040000, CRC(684a3d57) SHA1(bd7a57ba837a1dc8f92b5ebcb46e50db1f98524f) ) ROM_REGION( 0x10000, "audiocpu", 0 ) ROM_LOAD( "jw_02.14m", 0x00000, 0x10000, CRC(4e3492a5) SHA1(5f302bdbacbf95ea9f3694c48545a1d6bba4b019) ) /* Same as other regions but different label */ ROM_REGION( 0x100000, "gfx1", 0 ) ROM_LOAD( "may-00.10a", 0x00000, 0x100000, CRC(234d1f8d) SHA1(42d23aad20df20cbd2359cc12bdd47636b2027d3) ) ROM_REGION( 0x200000, "gfx2", 0 ) ROM_LOAD16_BYTE( "may-01.14a", 0x000000, 0x100000, CRC(2da57d04) SHA1(3898e9fef365ecaa4d86aa11756b527a4fffb494) ) ROM_LOAD16_BYTE( "may-02.16a", 0x000001, 0x100000, CRC(3a66a713) SHA1(beeb99156332cf4870738f7769b719a02d7b40af) ) ROM_REGION( 0x80000, "oki", 0 ) /* Oki samples */ ROM_LOAD( "may-03.11l", 0x00000, 0x80000, CRC(b6e42bae) SHA1(c282cdf7db30fb63340cc609bf00f5ab63a75583) ) ROM_REGION( 0x0600, "plds", 0 ) ROM_LOAD( "pal16l8b_vd-00.6h", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */ ROM_LOAD( "pal16l8b_vd-01.7h", 0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */ ROM_LOAD( "pal16r6a_vd-02.11h", 0x0400, 0x0104, NO_DUMP ) /* PAL is read protected */ ROM_END DRIVER_INIT_MEMBER(dietgo_state,dietgo) { deco56_decrypt_gfx(machine(), "gfx1"); deco102_decrypt_cpu((uint16_t *)memregion("maincpu")->base(), m_decrypted_opcodes, 0x80000, 0xe9ba, 0x01, 0x19); }
ROM_END DRIVER_INIT_MEMBER(dietgo_state,dietgo) { deco56_decrypt_gfx(machine(), "gfx1"); deco102_decrypt_cpu(machine(), "maincpu", 0xe9ba, 0x01, 0x19); }
static DRIVER_INIT( tumblep ) { deco56_decrypt_gfx(machine, "gfx1"); #if TUMBLEP_HACK tumblep_patch_code(0x000132); #endif }
ROM_END static DRIVER_INIT( dietgo ) { deco56_decrypt_gfx(machine, "gfx1"); deco102_decrypt_cpu(machine, "maincpu", 0xe9ba, 0x01, 0x19); }
ROM_END static DRIVER_INIT( pktgaldx ) { deco56_decrypt_gfx(machine, "gfx1"); deco102_decrypt_cpu(machine, "maincpu", 0x42ba, 0x00, 0x00); }
ROM_END DRIVER_INIT_MEMBER(dblewing_state,dblewing) { deco56_decrypt_gfx(machine(), "gfx1"); deco102_decrypt_cpu((uint16_t *)memregion("maincpu")->base(), m_decrypted_opcodes, 0x80000, 0x399d, 0x25, 0x3d); save_item(NAME(m_soundlatch_pending)); }
ROM_END DRIVER_INIT_MEMBER(pktgaldx_state,pktgaldx) { deco56_decrypt_gfx(machine(), "gfx1"); deco102_decrypt_cpu(machine(), "maincpu", 0x42ba, 0x00, 0x00); }
ROM_END DRIVER_INIT_MEMBER(pktgaldx_state,pktgaldx) { deco56_decrypt_gfx(machine(), "gfx1"); deco102_decrypt_cpu((UINT16 *)memregion("maincpu")->base(), m_decrypted_opcodes, 0x80000, 0x42ba, 0x00, 0x00); }
ROM_END void pktgaldx_state::init_pktgaldx() { deco56_decrypt_gfx(machine(), "gfx1"); deco102_decrypt_cpu((uint16_t *)memregion("maincpu")->base(), m_decrypted_opcodes, 0x80000, 0x42ba, 0x00, 0x00); }
DRIVER_INIT_MEMBER( supbtime_state, tumblep ) { deco56_decrypt_gfx(machine(), "tiles"); #if TUMBLEP_HACK uint16_t *RAM = (uint16_t *)memregion("maincpu")->base(); RAM[(offset + 0)/2] = 0x0240; RAM[(offset + 2)/2] = 0xffff; // andi.w #$f3ff, D0 #endif }
DRIVER_INIT_MEMBER(deco156_state,wcvol95) { deco56_decrypt_gfx(machine(), "gfx1"); /* 141 */ deco156_decrypt(machine()); descramble_sound("ymz"); }
DRIVER_INIT_MEMBER(deco156_state,hvysmsh) { deco56_decrypt_gfx(machine(), "gfx1"); /* 141 */ deco156_decrypt(machine()); descramble_sound("oki2"); }
static DRIVER_INIT( wcvol95 ) { deco56_decrypt_gfx(machine, "gfx1"); /* 141 */ deco156_decrypt(machine); descramble_sound(machine, "ymz"); }
static DRIVER_INIT( hvysmsh ) { deco56_decrypt_gfx(machine, "gfx1"); /* 141 */ deco156_decrypt(machine); descramble_sound(machine, "oki2"); }
ROM_END DRIVER_INIT_MEMBER(miragemi_state,mirage) { deco56_decrypt_gfx(machine(), "gfx1"); }
void deco156_state::init_wcvol95() { deco56_decrypt_gfx(machine(), "gfx1"); /* 141 */ deco156_decrypt(machine()); descramble_sound("ymz"); }
ROM_END /* Cannon Dancer / Osman are odd, they don't init their own Eeprom... Roms on boths games are identical, and the Eeprom contains several settings the user isn't permitted to change, including region and button config.. the first 2 bytes must match the last first 2 bytes in the last block of 8 bytes, and the at 0x20 there must be 0088 or the game won't boot The second byte of Eeprom contains the following (Switch 0 in test mode) -bss llfr (byte 0x01 / 0x79 of eeprom) *- = unknown / unused (no observed effect) *b = button config (2 buttons, or 3 buttons) s = number of special weapons (bombs) l = lives f = flip (screen rotation) *r = region other settings Switch 1 (byte 0x00 / 0x78 of eeprom) ppdd -ecs p = number of players (health bar?) d = difficulty *- = unknown / unused (no observed effect) e = extend score c = continue s = demo sound Switch 2 (byte 0x7d of eeprom) cccC CCxb ccc = coin1 CCC = coin 2 *x = breaks attract mode / game.. b = blood items marked * the user can't configure in test mode I don't know if any of the other bytes in the eeprom are tested / used. 1 in eeprom is 0 in test mode Both games are currently configured to 3 buttons, its possible the game was never released with a 2 button configuration. NOTE: an actual read of the eeprom appears to be byteswapped vs. this data / the file MAME outputs */ DRIVER_INIT_MEMBER(simpl156_state,simpl156) { UINT8 *rom = memregion("okimusic")->base(); int length = memregion("okimusic")->bytes(); dynamic_buffer buf1(length); UINT32 x; /* hmm low address line goes to banking chip instead? */ for (x = 0; x < length; x++) { UINT32 addr; addr = BITSWAP24 (x,23,22,21,0, 20, 19,18,17,16, 15,14,13,12, 11,10,9, 8, 7, 6, 5, 4, 3, 2, 1 ); buf1[addr] = rom[x]; } memcpy(rom, &buf1[0], length); deco56_decrypt_gfx(machine(), "gfx1"); deco156_decrypt(machine()); }
ROM_END DRIVER_INIT_MEMBER(dreambal_state,dreambal) { deco56_decrypt_gfx(machine(), "gfx1"); }
void deco156_state::init_hvysmsh() { deco56_decrypt_gfx(machine(), "gfx1"); /* 141 */ deco156_decrypt(machine()); descramble_sound("oki2"); }