From 4cb47e2333b8b143a6e3260a3340e53044b588e9 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Fri, 6 Sep 2019 14:52:34 +0200 Subject: igspoker.cpp: decrypted cpoker300us. Still needs inputs fixed (nw) --- src/mame/drivers/igspoker.cpp | 61 ++++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 24 deletions(-) diff --git a/src/mame/drivers/igspoker.cpp b/src/mame/drivers/igspoker.cpp index d14052dbd2a..281cb1f3661 100644 --- a/src/mame/drivers/igspoker.cpp +++ b/src/mame/drivers/igspoker.cpp @@ -113,6 +113,7 @@ public: void init_chleague(); void init_cska(); void init_cpoker(); + void init_cpoker300us(); void init_igs_ncs2(); void init_cpokerpk(); void init_kungfu(); @@ -2103,6 +2104,18 @@ void igspoker_state::init_cpoker() } } +void igspoker_state::init_cpoker300us() +{ + uint8_t *rom = memregion("maincpu")->base(); + for (int A = 0; A < 0x10000; A++) + { + rom[A] ^= 0x01; + if ((A & 0x00e0) == 0x00a0) rom[A] ^= 0x20; + if ((A & 0x0282) == 0x0282) rom[A] ^= 0x01; + if ((A & 0x0940) == 0x0940) rom[A] ^= 0x02; + } +} + void igspoker_state::init_cpokert() { uint8_t *rom = memregion("maincpu")->base(); @@ -2917,36 +2930,36 @@ void igspoker_state::init_kungfu() } -GAMEL( 1993?,cpoker, 0, igspoker, cpoker, igspoker_state, init_cpoker, ROT0, "IGS", "Champion Poker (v220I)", 0, layout_igspoker ) -GAMEL( 1993?,cpokert, cpoker, igspoker, cpoker, igspoker_state, init_cpokert, ROT0, "IGS (Tuning license)", "Champion Poker (v200G)", 0, layout_igspoker ) -GAMEL( 1993, cpokerx, cpoker, igspoker, cpokerx, igspoker_state, init_cpokert, ROT0, "IGS", "Champion Poker (v100)", 0, layout_igspoker ) -GAMEL( 1993, cpoker101, cpoker, igspoker, cpokerx, igspoker_state, init_cpokert, ROT0, "IGS", "Champion Poker (v101)", MACHINE_NOT_WORKING, layout_igspoker ) // need to verify protection handling and inputs/outputs on these -GAMEL( 1993, cpoker201f, cpoker, igspoker, cpokerx, igspoker_state, init_cpokert, ROT0, "IGS", "Champion Poker (v201F)", MACHINE_NOT_WORKING, layout_igspoker ) -GAMEL( 1993, cpoker210ks, cpoker, igspoker, cpokerx, igspoker_state, init_cpokert, ROT0, "IGS", "Champion Poker (v210KS)", MACHINE_NOT_WORKING, layout_igspoker ) -GAMEL( 1993, cpoker300us, cpoker, igspoker, cpokerx, igspoker_state, init_cpokert, ROT0, "IGS", "Champion Poker (v300US)", MACHINE_NOT_WORKING, layout_igspoker ) // different encryption or mapping? +GAMEL( 1993?,cpoker, 0, igspoker, cpoker, igspoker_state, init_cpoker, ROT0, "IGS", "Champion Poker (v220I)", 0, layout_igspoker ) +GAMEL( 1993?,cpokert, cpoker, igspoker, cpoker, igspoker_state, init_cpokert, ROT0, "IGS (Tuning license)", "Champion Poker (v200G)", 0, layout_igspoker ) +GAMEL( 1993, cpokerx, cpoker, igspoker, cpokerx, igspoker_state, init_cpokert, ROT0, "IGS", "Champion Poker (v100)", 0, layout_igspoker ) +GAMEL( 1993, cpoker101, cpoker, igspoker, cpokerx, igspoker_state, init_cpokert, ROT0, "IGS", "Champion Poker (v101)", MACHINE_NOT_WORKING, layout_igspoker ) // need to verify protection handling and inputs/outputs +GAMEL( 1993, cpoker201f, cpoker, igspoker, cpokerx, igspoker_state, init_cpokert, ROT0, "IGS", "Champion Poker (v201F)", MACHINE_NOT_WORKING, layout_igspoker ) // " +GAMEL( 1993, cpoker210ks, cpoker, igspoker, cpokerx, igspoker_state, init_cpokert, ROT0, "IGS", "Champion Poker (v210KS)", MACHINE_NOT_WORKING, layout_igspoker ) // " +GAMEL( 1993, cpoker300us, cpoker, igspoker, cpokerx, igspoker_state, init_cpoker300us, ROT0, "IGS", "Champion Poker (v300US)", MACHINE_NOT_WORKING, layout_igspoker ) // " -GAMEL( 2000, chleague, 0, igspoker, chleague, igspoker_state, init_chleague, ROT0, "IGS", "Champion League (v220I, Poker)", 0, layout_igspoker ) -GAMEL( 2000, chleagul, chleague, igspoker, chleague, igspoker_state, init_chleague, ROT0, "IGS", "Champion League (v220I, Lattine)", 0, layout_igspoker ) -GAMEL( 1998, chleagxa, chleague, igspoker, chleague, igspoker_state, init_chleague, ROT0, "PlayMark SRL", "Champion League (v220I, dual program, set 1)", 0, layout_igspoker ) -GAMEL( 1998, chleagxb, chleague, igspoker, chleague, igspoker_state, init_chleague, ROT0, "PlayMark SRL", "Champion League (v220I, dual program, set 2)", 0, layout_igspoker ) +GAMEL( 2000, chleague, 0, igspoker, chleague, igspoker_state, init_chleague, ROT0, "IGS", "Champion League (v220I, Poker)", 0, layout_igspoker ) +GAMEL( 2000, chleagul, chleague, igspoker, chleague, igspoker_state, init_chleague, ROT0, "IGS", "Champion League (v220I, Lattine)", 0, layout_igspoker ) +GAMEL( 1998, chleagxa, chleague, igspoker, chleague, igspoker_state, init_chleague, ROT0, "PlayMark SRL", "Champion League (v220I, dual program, set 1)", 0, layout_igspoker ) +GAMEL( 1998, chleagxb, chleague, igspoker, chleague, igspoker_state, init_chleague, ROT0, "PlayMark SRL", "Champion League (v220I, dual program, set 2)", 0, layout_igspoker ) -GAMEL( 198?, csk227it, 0, csk227it, csk227, igspoker_state, init_cska, ROT0, "IGS", "Champion Skill (with Ability)", 0, layout_igspoker ) /* SU 062 */ -GAMEL( 198?, csk234it, csk227it, csk234it, csk234, igspoker_state, init_cska, ROT0, "IGS", "Champion Skill (Ability, Poker & Symbols)", 0, layout_igspoker ) /* SU 062 */ +GAMEL( 198?, csk227it, 0, csk227it, csk227, igspoker_state, init_cska, ROT0, "IGS", "Champion Skill (with Ability)", 0, layout_igspoker ) /* SU 062 */ +GAMEL( 198?, csk234it, csk227it, csk234it, csk234, igspoker_state, init_cska, ROT0, "IGS", "Champion Skill (Ability, Poker & Symbols)", 0, layout_igspoker ) /* SU 062 */ -GAMEL( 2000, number10, 0, number10, number10, igspoker_state, init_number10, ROT0, "PlayMark SRL", "Number Dieci (Poker)", 0, layout_igspoker ) -GAMEL( 2000, numbr10l, number10, number10, number10, igspoker_state, init_number10, ROT0, "PlayMark SRL", "Number Dieci (Lattine)", 0, layout_igspoker ) +GAMEL( 2000, number10, 0, number10, number10, igspoker_state, init_number10, ROT0, "PlayMark SRL", "Number Dieci (Poker)", 0, layout_igspoker ) +GAMEL( 2000, numbr10l, number10, number10, number10, igspoker_state, init_number10, ROT0, "PlayMark SRL", "Number Dieci (Lattine)", 0, layout_igspoker ) -GAMEL( 198?, igs_ncs, 0, igs_ncs, igs_ncs, igspoker_state, init_igs_ncs, ROT0, "IGS", "New Champion Skill (v100n)", 0, layout_igspoker ) /* SU 062 */ +GAMEL( 198?, igs_ncs, 0, igs_ncs, igs_ncs, igspoker_state, init_igs_ncs, ROT0, "IGS", "New Champion Skill (v100n)", 0, layout_igspoker ) /* SU 062 */ -GAMEL( 199?, cpokerpk, 0, cpokerpk, cpokerpk, igspoker_state, init_cpokerpk, ROT0, "bootleg (SGS)", "Champion Italian PK (bootleg, blue board)", 0, layout_igspoker ) -GAMEL( 199?, cpokerpkg, cpokerpk, cpokerpk, cpokerpk, igspoker_state, init_cpokerpk, ROT0, "bootleg (SGS)", "Champion Italian PK (bootleg, green board)", 0, layout_igspoker ) -GAMEL( 199?, citalcup, cpokerpk, cpokerpk, cpokerpk, igspoker_state, init_cpokerpk, ROT0, "bootleg (SGS)", "Champion Italian Cup (bootleg V220IT)", 0, layout_igspoker ) +GAMEL( 199?, cpokerpk, 0, cpokerpk, cpokerpk, igspoker_state, init_cpokerpk, ROT0, "bootleg (SGS)", "Champion Italian PK (bootleg, blue board)", 0, layout_igspoker ) +GAMEL( 199?, cpokerpkg, cpokerpk, cpokerpk, cpokerpk, igspoker_state, init_cpokerpk, ROT0, "bootleg (SGS)", "Champion Italian PK (bootleg, green board)", 0, layout_igspoker ) +GAMEL( 199?, citalcup, cpokerpk, cpokerpk, cpokerpk, igspoker_state, init_cpokerpk, ROT0, "bootleg (SGS)", "Champion Italian Cup (bootleg V220IT)", 0, layout_igspoker ) -GAMEL( 2000, igs_ncs2, 0, igs_ncs, igs_ncs, igspoker_state, init_igs_ncs2, ROT0, "IGS", "New Champion Skill (v100n 2000)", MACHINE_IMPERFECT_GRAPHICS, layout_igspoker ) +GAMEL( 2000, igs_ncs2, 0, igs_ncs, igs_ncs, igspoker_state, init_igs_ncs2, ROT0, "IGS", "New Champion Skill (v100n 2000)", MACHINE_IMPERFECT_GRAPHICS, layout_igspoker ) -GAMEL( 1998, stellecu, 0, number10, number10, igspoker_state, empty_init, ROT0, "Sure", "Stelle e Cubi (Italy)", MACHINE_NOT_WORKING, layout_igspoker ) +GAMEL( 1998, stellecu, 0, number10, number10, igspoker_state, empty_init, ROT0, "Sure", "Stelle e Cubi (Italy)", MACHINE_NOT_WORKING, layout_igspoker ) -GAMEL( 1993?,pktet346, 0, pktetris, pktet346, igspoker_state, init_pktet346, ROT0, "IGS", "PK Tetris (v346I)", 0, layout_igspoker ) -GAMEL( 199?, igstet341, pktet346, pktetris, igstet341,igspoker_state, init_tet341, ROT0, "IGS", "Tetris (v341R)", 0, layout_igspoker ) +GAMEL( 1993?,pktet346, 0, pktetris, pktet346, igspoker_state, init_pktet346, ROT0, "IGS", "PK Tetris (v346I)", 0, layout_igspoker ) +GAMEL( 199?, igstet341, pktet346, pktetris, igstet341,igspoker_state, init_tet341, ROT0, "IGS", "Tetris (v341R)", 0, layout_igspoker ) -GAMEL( 1992, kungfu, 0, igspoker, cpoker, igspoker_state, init_kungfu, ROT0, "IGS", "Kung Fu (IGS, v100)", MACHINE_NOT_WORKING, layout_igspoker ) +GAMEL( 1992, kungfu, 0, igspoker, cpoker, igspoker_state, init_kungfu, ROT0, "IGS", "Kung Fu (IGS, v100)", MACHINE_NOT_WORKING, layout_igspoker ) -- cgit v1.2.3