diff --git a/src/mame/jpm/guab.cpp b/src/mame/jpm/guab.cpp index b1e3fe5f739..d4389439886 100644 --- a/src/mame/jpm/guab.cpp +++ b/src/mame/jpm/guab.cpp @@ -10,12 +10,12 @@ * Give us a Break [8 sets] * Criss Cross (Sweden) [non-working - need disk image] * Ten Up [2 sets] + * Treasure Trail [non-working - need disk image] Looking for: * Numbers Game * Pac Quiz * Suit Pursuit - * Treasure Trail? Known issues: * Coin data has to go through the datalogger to be counted @@ -559,6 +559,14 @@ ROM_START( tenup ) ROM_LOAD16_BYTE( "tu-14.bin", 0x10001, 0x8000, CRC(fd8a0c3c) SHA1(f87289ce6f0d2bc9b7d3a0b6deff38ba3aadf391) ) ROM_END +ROM_START( ttrail ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "ic49.bin", 0x00000, 0x8000, CRC(01395ff1) SHA1(69e0f0d9893c2b4edf7f2c4547bf7674ddeb10ef) ) + ROM_LOAD16_BYTE( "ic48.bin", 0x00001, 0x8000, CRC(8dfd2165) SHA1(a239258b2b9e9773f97937506e04680422c6c396) ) + ROM_LOAD16_BYTE( "ic57.bin", 0x10000, 0x8000, CRC(82775064) SHA1(17437022f76bd8faebdbcc94be8ace482a145382) ) + ROM_LOAD16_BYTE( "ic56.bin", 0x10001, 0x8000, CRC(70264d8a) SHA1(107b9eb72fd587deb1ba9821645f3ab86e6040c8) ) +ROM_END + } // anonymous namespace @@ -570,3 +578,4 @@ ROM_END GAME( 1986, guab, 0, guab, guab, guab_state, empty_init, ROT0, "JPM", "Give us a Break", 0 ) GAME( 1986, crisscrs, 0, guab, guab, guab_state, empty_init, ROT0, "JPM", "Criss Cross (Sweden)", MACHINE_NOT_WORKING ) GAME( 1988, tenup, 0, guab, tenup, guab_state, empty_init, ROT0, "JPM", "Ten Up", 0 ) +GAME( 198?, ttrail, 0, guab, guab, guab_state, empty_init, ROT0, "JPM", "Treasure Trail (JPM)", MACHINE_NOT_WORKING ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 10b78aa755e..a028637a4c5 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -22228,6 +22228,7 @@ vjslap crisscrs guab tenup +ttrail @source:jpm/jpmimpct.cpp buzzundr diff --git a/src/mame/misc/39in1.cpp b/src/mame/misc/39in1.cpp index 5cf3a675500..c4257741d27 100644 --- a/src/mame/misc/39in1.cpp +++ b/src/mame/misc/39in1.cpp @@ -29,6 +29,8 @@ * from the CPLD (probably) * - 19in1, 48in1, 48in1a, 48in1b, 48in1c, 60in1 have more conditional XORs, * encryption isn't completely beaten yet + * - fruitwld, fruitwlda, jumanjia show 'HW_002 ERROR', probably missing CPLD + * emulation * * * 39in1 notes: @@ -64,18 +66,19 @@ public: , m_dsw(*this, "DSW") { } - void _39in1(machine_config &config); - void base(machine_config &config); + void _39in1(machine_config &config) ATTR_COLD; + void base(machine_config &config) ATTR_COLD; + void iam(machine_config &config) ATTR_COLD; - void init_4in1a(); - void init_4in1b(); - void init_19in1(); - void init_39in1(); - void init_48in1(); - void init_48in1a(); - void init_48in1c(); - void init_60in1(); - void init_rodent(); + void init_4in1a() ATTR_COLD; + void init_4in1b() ATTR_COLD; + void init_19in1() ATTR_COLD; + void init_39in1() ATTR_COLD; + void init_48in1() ATTR_COLD; + void init_48in1a() ATTR_COLD; + void init_48in1c() ATTR_COLD; + void init_60in1() ATTR_COLD; + void init_rodent() ATTR_COLD; // I.A.M. slots void init_fruitwld(); @@ -110,9 +113,10 @@ private: void _39in1_map(address_map &map) ATTR_COLD; void base_map(address_map &map) ATTR_COLD; + void iam_map(address_map &map) ATTR_COLD; - void decrypt(u8 xor00, u8 xor02, u8 xor04, u8 xor08, u8 xor10, u8 xor20, u8 xor40, u8 xor80, u8 bit7, u8 bit6, u8 bit5, u8 bit4, u8 bit3, u8 bit2, u8 bit1, u8 bit0); - void further_decrypt(u8 xor400, u8 xor800, u8 xor1000, u8 xor2000, u8 xor4000, u8 xor8000); + void decrypt(u8 xor00, u8 xor02, u8 xor04, u8 xor08, u8 xor10, u8 xor20, u8 xor40, u8 xor80, u8 bit7, u8 bit6, u8 bit5, u8 bit4, u8 bit3, u8 bit2, u8 bit1, u8 bit0) ATTR_COLD; + void further_decrypt(u8 xor400, u8 xor800, u8 xor1000, u8 xor2000, u8 xor4000, u8 xor8000) ATTR_COLD; }; void _39in1_state::machine_reset() @@ -230,6 +234,15 @@ void _39in1_state::_39in1_map(address_map &map) map(0xa0151648, 0xa015164b).r(FUNC(_39in1_state::prot_cheater_r)); } +void _39in1_state::iam_map(address_map &map) +{ + base_map(map); + + map(0x04800000, 0x04ffffff).ram(); // CPLD here? + map(0xa0800000, 0xa3ffffff).ram(); // TODO: probably not really all RAM +} + + static INPUT_PORTS_START( 39in1 ) PORT_START("MCUIPT") PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_START1 ) @@ -379,6 +392,14 @@ void _39in1_state::_39in1(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &_39in1_state::_39in1_map); } +void _39in1_state::iam(machine_config &config) +{ + base(config); + + m_maincpu->set_addrmap(AS_PROGRAM, &_39in1_state::iam_map); +} + + ROM_START( 39in1 ) // main program, encrypted ROM_REGION( 0x80000, "maincpu", 0 ) @@ -606,9 +627,9 @@ GAME(2004, 60in1, 39in1, base, 39in1, _39in1_state, init_60in1, ROT9 GAME(2005, rodent, 0, base, 39in1, _39in1_state, init_rodent, ROT0, "The Game Room", "Rodent Exterminator", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // I.A.M. slots. Versions are taken from program ROM stickers or ROM strings, where available -GAME(2008, fruitwld, 0, base, 39in1, _39in1_state, init_fruitwld, ROT0, "I.A.M.", "Fruit World (V111)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // FRUIT_V111.BIN 2008-04-30 15:59:21 -GAME(2007, fruitwlda, fruitwld, base, 39in1, _39in1_state, init_fruitwld, ROT0, "I.A.M.", "Fruit World (V110)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // FRUIT_V110.BIN 2007-07-26 13:46:30 -GAME(2007, jumanji, 0, base, 39in1, _39in1_state, init_jumanji, ROT0, "I.A.M.", "Jumanji (V502)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // CHZ_V502.BIN 2007-07-26 13:49:35 in clear text at the end of the main CPU ROM -GAME(2007, jumanjia, jumanji, base, 39in1, _39in1_state, init_jumanjia, ROT0, "I.A.M.", "Jumanji (V113)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // JUMANJI_V113.BIN 2007-07-25 10:54:33 -GAME(200?, plutus, 0, base, 39in1, _39in1_state, init_plutus, ROT0, "I.A.M.", "Plutus (V100)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // no string -GAME(200?, pokrwild, 0, base, 39in1, _39in1_state, init_pokrwild, ROT0, "I.A.M.", "Poker's Wild (V117)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // no string +GAME(2008, fruitwld, 0, iam, 39in1, _39in1_state, init_fruitwld, ROT0, "I.A.M.", "Fruit World (V111)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // FRUIT_V111.BIN 2008-04-30 15:59:21 +GAME(2007, fruitwlda, fruitwld, iam, 39in1, _39in1_state, init_fruitwld, ROT0, "I.A.M.", "Fruit World (V110)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // FRUIT_V110.BIN 2007-07-26 13:46:30 +GAME(2007, jumanji, 0, iam, 39in1, _39in1_state, init_jumanji, ROT0, "I.A.M.", "Jumanji (V502)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // CHZ_V502.BIN 2007-07-26 13:49:35 in clear text at the end of the main CPU ROM +GAME(2007, jumanjia, jumanji, iam, 39in1, _39in1_state, init_jumanjia, ROT0, "I.A.M.", "Jumanji (V113)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // JUMANJI_V113.BIN 2007-07-25 10:54:33 +GAME(200?, plutus, 0, iam, 39in1, _39in1_state, init_plutus, ROT0, "I.A.M.", "Plutus (V100)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // no string +GAME(200?, pokrwild, 0, iam, 39in1, _39in1_state, init_pokrwild, ROT0, "I.A.M.", "Poker's Wild (V117)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // no string diff --git a/src/mame/misc/ddz.cpp b/src/mame/misc/ddz.cpp index bd3d25d0937..603befcb829 100644 --- a/src/mame/misc/ddz.cpp +++ b/src/mame/misc/ddz.cpp @@ -181,7 +181,7 @@ ROM_START( crzclass ) // rom4 not populated ROM_END -ROM_START( baibians ) // same PCB as crzclass +ROM_START( baibians ) // 百变双扣, same PCB as crzclass ROM_REGION32_LE( 0x1000000, "ipl", ROMREGION_ERASEFF ) ROM_REGION( 0x1000000, "enc_data", ROMREGION_ERASEFF ) @@ -191,7 +191,7 @@ ROM_START( baibians ) // same PCB as crzclass // rom4 not populated ROM_END -ROM_START( cjmx ) // same PCB as crzclass, but this one has an Amazon LF instead of the VRenderZero +ROM_START( cjmx ) // 超级明星, same PCB as crzclass, but this one has an Amazon LF instead of the VRenderZero ROM_REGION32_LE( 0x1000000, "ipl", ROMREGION_ERASEFF ) ROM_REGION( 0x1000000, "enc_data", ROMREGION_ERASEFF )