diff --git a/src/mame/namco/namcos10.cpp b/src/mame/namco/namcos10.cpp index 8c98f332d57..f4c59b25384 100644 --- a/src/mame/namco/namcos10.cpp +++ b/src/mame/namco/namcos10.cpp @@ -2313,7 +2313,27 @@ void namcos10_memn_state::ns10_panikuru(machine_config &config) namcos10_memn_base(config); namcos10_nand_k9f2808u0b(config, 3); - // NS10_TYPE2_DECRYPTER(config, m_decrypter, 0, logic); + NS10_TYPE2_DECRYPTER(config, m_decrypter, 0, ns10_type2_decrypter_device::ns10_crypto_logic{ + { + 0x00000000000130,0x00000018802004,0x00b04a04781081,0x00000006802000, + 0x00000000000c02,0x00000042040020,0x00000000000003,0x00b040c00c0940, + 0x00000000000009,0x001020a0010400,0x00000010204104,0x0000005a840004, + 0x00000000000290,0x00000010204380,0x00000000001041,0x00000000006100 + }, { + 0x00000000000120,0x00000028002004,0x00010800480001,0x00000006040100, + 0x00000000000c00,0x00000042000820,0x00000000001003,0x00910212040100, + 0x00000000008009,0x00900021018000,0x00000090004104,0x0000006a004004, + 0x00000000000214,0x00000090004190,0x00000000001040,0x00000000006008 + }, + 0x7c29, + [] (uint64_t previous_cipherwords, uint64_t previous_plainwords) -> uint16_t { + return (1 & ((gf2_reduce(0x0000000088300281ull & previous_cipherwords) ^ gf2_reduce(0x0000000004600281ull & previous_plainwords))) & ((gf2_reduce(0x0000a13140090000ull & previous_cipherwords) ^ gf2_reduce(0x0000806240090000ull & previous_plainwords)))) << 2; + }, + [] (int iv) -> uint64_t { + constexpr uint64_t values[16]{ 0x0000, 0x020e, 0x0412, 0x0411, 0x0204, 0x001b, 0x0009, 0x0207, 0x2040, 0x2440, 0x0012, 0x0001, 0x0614, 0x000a, 0x0214, 0x041b }; + return values[iv]; + } + }); } void namcos10_memn_state::ns10_ptblank3(machine_config &config) @@ -2723,6 +2743,11 @@ void namcos10_memp3_state::ns10_squizchs(machine_config &config) [] (uint64_t previous_cipherwords, uint64_t previous_plainwords) -> uint16_t { uint64_t previous_masks = previous_cipherwords ^ previous_plainwords; return (1 & (previous_masks>>12) & (gf2_reduce(previous_cipherwords & 0x140840000000ULL) ^ gf2_reduce(previous_plainwords & 0x141040000000ULL))) << 14; + }, + [] (int iv) -> uint64_t { + constexpr int UNKNOWN = 16; + constexpr uint64_t values[16]{ UNKNOWN, 0x9000, 0x9101, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN }; + return values[iv]; } }); } @@ -3047,6 +3072,24 @@ static INPUT_PORTS_START( nicetsuk ) INPUT_PORTS_END +static INPUT_PORTS_START( squizchs ) + PORT_INCLUDE(namcos10) + + PORT_MODIFY("IN1") + PORT_BIT( 0x0fff7070, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) + + PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) + PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) + PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) + +INPUT_PORTS_END + // MEM(M) ROM_START( mrdrilr2 ) ROM_REGION32_LE( 0x400000, "maincpu:rom", 0 ) @@ -3330,7 +3373,7 @@ ROM_START( panikuru ) ROM_FILL( 0x0000000, 0x400000, 0x55 ) ROM_REGION32_LE( 0x1080000, "nand0", 0 ) - ROM_LOAD( "0.8e", 0x0000000, 0x1080000, CRC(3aa66da4) SHA1(3f6ff164981e2c1825766c775442608fbf86d702) ) + ROM_LOAD( "0.8e", 0x0000000, 0x1080000, CRC(a68b0965) SHA1(037e41e80a62675ffe1c820060c8bb414fb84c30) ) ROM_REGION32_LE( 0x1080000, "nand1", 0 ) ROM_LOAD( "1.8d", 0x0000000, 0x1080000, CRC(18e5135d) SHA1(a7b1533a1df71be5498718e301d1c9c548551fb4) ) @@ -3555,7 +3598,7 @@ ROM_START( squizchs ) ROM_FILL( 0x0000000, 0x400000, 0x55 ) ROM_REGION32_LE( 0x1080000, "nand0", 0 ) - ROM_LOAD( "chs1vera_0.2j", 0x0000000, 0x1080000, CRC(2b1a1392) SHA1(fd5a0e448d8bc7ba8ca57db3008196c9c9433231) ) + ROM_LOAD( "chs1vera_0.2j", 0x0000000, 0x1080000, CRC(2e92071c) SHA1(51e0bf8989b8a8fdf0d915df2d2227f3e425684a) ) ROM_REGION32_LE( 0x1080000, "nand1", 0 ) ROM_LOAD( "chs1vera_1.1j", 0x0000000, 0x1080000, CRC(85212a85) SHA1(3c8c1d1671d65d594d30da546e8f4c2dcdfca840) ) @@ -3617,7 +3660,7 @@ GAME( 2001, mrdrilrg, 0, ns10_mrdrilrg, mrdrilr2, namcos10_memn_sta GAME( 2002, chocovdr, 0, ns10_chocovdr, namcos10, namcos10_memn_state, init_chocovdr, ROT0, "Namco", "Uchuu Daisakusen: Chocovader Contactee (Japan, CVC1 Ver.A)", MACHINE_IMPERFECT_SOUND ) GAME( 2002, gamshara, 0, ns10_gamshara, gamshara, namcos10_memn_state, init_gamshara, ROT0, "Mitchell", "Gamshara (World, 20020912A / 10021 Ver.A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) // Ver. 20020912A ETC GAME( 2002, gamsharaj, gamshara, ns10_gamshara, gamshara, namcos10_memn_state, init_gamshara, ROT0, "Mitchell", "Gamshara (Japan, 20020716A / 10021 Ver.A)", MACHINE_IMPERFECT_SOUND ) -GAME( 2002, panikuru, 0, ns10_panikuru, namcos10, namcos10_memn_state, init_panikuru, ROT0, "Namco", "Panicuru Panekuru (Japan, PPA1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) +GAME( 2002, panikuru, 0, ns10_panikuru, namcos10, namcos10_memn_state, init_panikuru, ROT0, "Namco", "Panicuru Panekuru (Japan, PPA1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) GAME( 2002, puzzball, 0, ns10_puzzball, mgexio_medal, namcos10_memn_state, init_puzzball, ROT0, "Namco", "Puzz Ball (Japan, PZB1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // title guessed based on known game list and PCB sticker GAME( 2002, startrgn, 0, ns10_startrgn, startrgn, namcos10_memn_state, init_startrgn, ROT0, "Namco", "Star Trigon (Japan, STT1 Ver.A)", MACHINE_IMPERFECT_SOUND ) GAME( 2002, sugorotc, 0, ns10_sugorotic, mgexio_medal, namcos10_memn_state, init_sugorotic, ROT0, "Namco", "Sugorotic JAPAN (STJ1 Ver.C)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // uses MGEXIO @@ -3628,7 +3671,7 @@ GAME( 2004, sekaikh, 0, ns10_sekaikh, mgexio_medal, namcos10_memn_sta GAME( 2004, sekaikha, sekaikh, ns10_sekaikh, mgexio_medal, namcos10_memn_state, init_sekaikh, ROT0, "Namco", "Sekai Kaseki Hakken (Japan, SKH1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_SOUND ) GAME( 2005, ballpom, 0, ns10_ballpom, mgexio_medal, namcos10_memn_state, init_ballpom, ROT0, "Namco", "Ball Pom Line", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_SOUND ) // ROM VER. B0 FEB 09 2005 15:29:02 in test mode, boots but requires MGEXIO to proceed GAME( 2005, medalnt, 0, ns10_medalnt, namcos10, namcos10_memn_state, init_medalnt, ROT0, "Namco", "Medal no Tatsujin Doki! Ooatari-Darake no Sugoroku Matsuri (MTL1 SPR0B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME( 2006, keroro, 0, ns10_keroro, mgexio_medal, namcos10_memn_state, init_keroro, ROT0, "Namco", "Keroro Gunso Chikyu Shinryaku Shirei Dearimasu! (KRG1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // ケロロ軍曹 地球侵略指令…であります! +GAME( 2006, keroro, 0, ns10_keroro, mgexio_medal, namcos10_memn_state, init_keroro, ROT0, "Namco / Banpresto", "Keroro Gunso Chikyu Shinryaku Shirei Dearimasu! (KRG1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // ケロロ軍曹 地球侵略指令…であります! GAME( 2007, gegemdb, 0, ns10_gegemdb, mgexio_medal, namcos10_memn_state, empty_init, ROT0, "Namco", "Gegege no Kitaro Yokai Yokocho Matsuri de Battle Ja (GYM1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) // ゲゲゲの鬼太郎 妖怪横丁まつりでバトルじゃ GAME( 2007, medalnt2, 0, ns10_medalnt2, namcos10, namcos10_memn_state, init_medalnt2, ROT0, "Namco", "Medal no Tatsujin 2 Atsumare! Go! Go! Sugoroku Sentai Don Ranger Five (MTA1 STMPR0A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // メダルの達人2 あつまれ!ゴー!ゴー!双六戦隊ドンレンジャーファイブ MTA100-1-ST-MPR0-A00 2007/01/30 19:51:54 @@ -3641,4 +3684,4 @@ GAME( 2004, taiko6, 0, ns10_taiko6, taiko, namcos10_memn_sta // MEM(P3) GAME( 2001, g13jnr, 0, ns10_g13jnr, g13jnr, namcos10_memp3_state, init_g13jnr, ROT0, "Eighting / Raizing / Namco", "Golgo 13: Juusei no Requiem (Japan, GLT1 VER.A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) GAME( 2002, nicetsuk, 0, ns10_nicetsuk, nicetsuk, namcos10_memp3_state, init_nicetsuk, ROT0, "Namco / Metro", "Tsukkomi Yousei Gips Nice Tsukkomi (NTK1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) -GAME( 2003, squizchs, 0, ns10_squizchs, namcos10, namcos10_memp3_state, init_squizchs, ROT0, "Namco", "Seishun-Quiz Colorful High School (CHS1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +GAME( 2003, squizchs, 0, ns10_squizchs, squizchs, namcos10_memp3_state, init_squizchs, ROT0, "Namco", "Seishun-Quiz Colorful High School (CHS1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )