diff --git a/src/mame/drivers/pgm.c b/src/mame/drivers/pgm.c index 3980602c901..66819404782 100644 --- a/src/mame/drivers/pgm.c +++ b/src/mame/drivers/pgm.c @@ -4105,7 +4105,7 @@ GAME( 1997, orlegende, orlegend, pgm_asic3, orlegend, pgm_asic3_state, o GAME( 1997, orlegendc, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 112, Chinese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // V0001 05/05/97 10:08:21 - runs as World, Korea, China GAME( 1997, orlegendca, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. ???, Chinese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // V0001 04/02/97 13:35:43 - runs as HongKong, China, China GAME( 1997, orlegend111c, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 111, Chinese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // V0001 no date! - runs as HongKong, China, China -GAME( 1997, orlegend111t, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 111, Taiwanese Board)", GAME_NOT_WORKING ) // V0001 no date! - needs a different protection sequence +GAME( 1997, orlegend111t, orlegend, pgm_asic3, orlegendt,pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 111, Taiwanese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )// V0001 no date! - needs a different protection sequence GAME( 1997, orlegend105k, orlegend, pgm_asic3, orld105k, pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 105, Korean Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // V0000 no date! - runs as Korea GAME( 1997, drgw2, pgm, pgm_012_025_drgw2, pgm, pgm_012_025_state, drgw2, ROT0, "IGS", "Dragon World II (ver. 110X, Export)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) diff --git a/src/mame/includes/pgm.h b/src/mame/includes/pgm.h index 1bbbaaa927c..50d72359681 100644 --- a/src/mame/includes/pgm.h +++ b/src/mame/includes/pgm.h @@ -471,6 +471,7 @@ ADDRESS_MAP_EXTERN( pgm_base_mem, 16 ); INPUT_PORTS_EXTERN( orlegend ); +INPUT_PORTS_EXTERN( orlegendt ); INPUT_PORTS_EXTERN( orld105k ); MACHINE_CONFIG_EXTERN( pgm_asic3 ); diff --git a/src/mame/machine/pgmprot_orlegend.c b/src/mame/machine/pgmprot_orlegend.c index 6e98fda279e..a9f96018119 100644 --- a/src/mame/machine/pgmprot_orlegend.c +++ b/src/mame/machine/pgmprot_orlegend.c @@ -21,7 +21,6 @@ void pgm_asic3_state::asic3_compute_hold(int y, int z) m_asic3_hold ^= 0x2bad; m_asic3_hold ^= BIT(z, y); - m_asic3_hold ^= BIT(m_asic3_x, 1) << 6; m_asic3_hold ^= BIT(m_asic3_x, 2) << 10; m_asic3_hold ^= BIT(old, 5); @@ -29,19 +28,22 @@ void pgm_asic3_state::asic3_compute_hold(int y, int z) { case 0: case 1: - m_asic3_hold ^= BIT(old, 10) ^ BIT(old, 8) ^ (BIT(m_asic3_x, 0) << 1) ^ (BIT(m_asic3_x, 3) << 14); + m_asic3_hold ^= BIT(old, 10) ^ BIT(old, 8) ^ (BIT(m_asic3_x, 0) << 1) ^ (BIT(m_asic3_x, 1) << 6) ^ (BIT(m_asic3_x, 3) << 14); break; case 2: - m_asic3_hold ^= BIT(old, 10) ^ BIT(old, 8) ^ (BIT(m_asic3_x, 0) << 4) ^ (BIT(m_asic3_x, 3) << 12); + m_asic3_hold ^= BIT(old, 10) ^ BIT(old, 8) ^ (BIT(m_asic3_x, 0) << 4) ^ (BIT(m_asic3_x, 1) << 6) ^ (BIT(m_asic3_x, 3) << 12); break; case 3: - m_asic3_hold ^= BIT(old, 7) ^ BIT(old, 6) ^ (BIT(m_asic3_x, 0) << 4) ^ (BIT(m_asic3_x, 3) << 12); + m_asic3_hold ^= BIT(old, 7) ^ BIT(old, 6) ^ (BIT(m_asic3_x, 0) << 4) ^ (BIT(m_asic3_x, 1) << 6) ^ (BIT(m_asic3_x, 3) << 12); + break; + + case 4: // orlegend111t + m_asic3_hold ^= BIT(old, 7) ^ BIT(old, 6) ^ (BIT(m_asic3_x, 0) << 3) ^ (BIT(m_asic3_x, 1) << 8) ^ (BIT(m_asic3_x, 3) << 14); break; } } - READ16_MEMBER(pgm_asic3_state::pgm_asic3_r) { switch (m_asic3_reg) @@ -189,6 +191,18 @@ INPUT_PORTS_START( orlegend ) PORT_CONFSETTING( 0x0003, DEF_STR( China ) ) INPUT_PORTS_END +INPUT_PORTS_START( orlegendt ) + PORT_INCLUDE ( pgm ) + + PORT_MODIFY("Region") + PORT_DIPNAME( 0x0007, 0x0004, DEF_STR( Region ) ) + PORT_CONFSETTING( 0x0000, "Invalid 00?" ) + PORT_CONFSETTING( 0x0001, "Invalid 01?" ) + PORT_CONFSETTING( 0x0002, "Invalid 02?" ) + PORT_CONFSETTING( 0x0003, "Invalid 03?" ) + PORT_CONFSETTING( 0x0004, DEF_STR( Taiwan ) ) +INPUT_PORTS_END + INPUT_PORTS_START( orld105k ) PORT_INCLUDE ( pgm )