make the orlegend111t set work [iq_132]

This commit is contained in:
David Haywood 2014-10-09 23:17:14 +00:00
parent 2bc159c931
commit e9aea92d1a
3 changed files with 21 additions and 6 deletions

View File

@ -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 )

View File

@ -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 );

View File

@ -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 )