summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author David Haywood <mamehaze@users.noreply.github.com>2014-10-09 23:17:14 +0000
committer David Haywood <mamehaze@users.noreply.github.com>2014-10-09 23:17:14 +0000
commite9aea92d1a292d6488ceb5bb654b5adae3f3c5a6 (patch)
tree78223490cada429062f0c6a3f1d9dfaacfd2d89e
parent2bc159c9312c9f9b42af6f7e2adc12b574606e63 (diff)
make the orlegend111t set work [iq_132]
-rw-r--r--src/mame/drivers/pgm.c2
-rw-r--r--src/mame/includes/pgm.h1
-rw-r--r--src/mame/machine/pgmprot_orlegend.c24
3 files changed, 21 insertions, 6 deletions
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 )