This commit is contained in:
Michael Zapf 2015-03-17 21:37:21 +01:00
commit 7ef3198fc1
4 changed files with 85 additions and 26 deletions

View File

@ -570,6 +570,9 @@ void hmcs40_cpu_device::execute_run()
m_i = BITSWAP8(m_op,7,6,5,4,0,1,2,3) & 0xf; // reversed bit-order for immediate param m_i = BITSWAP8(m_op,7,6,5,4,0,1,2,3) & 0xf; // reversed bit-order for immediate param
increment_pc(); increment_pc();
// handle opcode
switch (m_op)
{
/* /*
op_ayy(); - op_ayy(); -
@ -585,42 +588,65 @@ op_alem(); - 324 124
op_blem(); - 267 024 op_blem(); - 267 024
op_lay(); - 118 op_lay(); - 118
*/ */
// handle opcode
switch (m_op)
{
case 0x118: case 0x118:
op_lay(); // probably lay op_lay(); // probably lay
break; break;
case 0x046:
op_daa();
break;
case 0x045:
op_das();
break;
case 0x267: case 0x267:
op_blem(); break; // bnem or blem op_blem(); // bnem or blem
break;
case 0x124: case 0x124:
op_alem(); // alem or anem op_alem(); // alem or anem
break; break;
case 0x324: case 0x324:
op_anem(); break; // " op_anem(); // "
break;
case 0x024: case 0x024:
//op_nega(); //op_nega();
//op_am(); //op_am();
op_illegal(); op_illegal();
break; break;
case 0x234:
// sm? case 0x04b:
#if 0 op_illegal();
m_a = ram_r() - m_a; //op_rec();
m_s = ~m_a >> 4 & 1;
m_a &= 0xf;
#else
op_am();
#endif
break; break;
case 0x04c: case 0x04c:
op_illegal(); op_rec();
//m_c ^= 1;
//op_lat();
break; break;
case 0x030:
op_amc();
break;
case 0x034:
//op_illegal();
op_amc(); // mirror?
break;
case 0x230:
op_smc();
break;
case 0x234:
//op_illegal();
op_smc(); // mirror?
break;
@ -637,15 +663,11 @@ op_lay(); - 118
/* ok */ op_lmiiy(); break; /* ok */ op_lmiiy(); break;
case 0x020: case 0x021: case 0x022: case 0x023: case 0x020: case 0x021: case 0x022: case 0x023:
op_lbm(); break; op_lbm(); break;
case 0x030:
op_amc(); break;
case 0x03c: case 0x03c:
op_lta(); break; op_lta(); break;
case 0x040: case 0x040:
/* ok */ op_lxa(); break; /* ok */ op_lxa(); break;
case 0x04b:
op_rec(); break;
case 0x04f: case 0x04f:
op_sec(); break; op_sec(); break;
case 0x050: case 0x050:
@ -751,8 +773,6 @@ op_lay(); - 118
/* ok */ op_rotr(); break; /* ok */ op_rotr(); break;
case 0x225: case 0x225:
/* ok */ op_rotl(); break; /* ok */ op_rotl(); break;
case 0x230:
op_smc(); break;
case 0x23c: case 0x23c:
op_lat(); break; op_lat(); break;

View File

@ -662,13 +662,13 @@ void hmcs40_cpu_device::op_p()
if (o & 0x100) if (o & 0x100)
{ {
// B3 B2 B1 B0 A0 A1 A2 A3 // B3 B2 B1 B0 A0 A1 A2 A3
m_a = BITSWAP8((UINT8)o,7,6,5,4,0,1,2,3) & 0xf; m_a = BITSWAP8(o,7,6,5,4,0,1,2,3) & 0xf;
m_b = o >> 4 & 0xf; m_b = o >> 4 & 0xf;
} }
if (o & 0x200) if (o & 0x200)
{ {
// R20 R21 R22 R23 R30 R31 R32 R33 // R20 R21 R22 R23 R30 R31 R32 R33
o = BITSWAP8((UINT8)o,0,1,2,3,4,5,6,7); o = BITSWAP8(o,0,1,2,3,4,5,6,7);
write_r(2, o & 0xf); write_r(2, o & 0xf);
write_r(3, o >> 4 & 0xf); write_r(3, o >> 4 & 0xf);
} }

View File

@ -1406,6 +1406,40 @@ ROM_START( btlkroad )
ROM_END ROM_END
ROM_START( btlkroadk )
ROM_REGION( 0x100000, "maincpu", 0 ) /* Main CPU Code */
ROM_LOAD32_WORD_SWAP( "4(dot).u46", 0x000000, 0x040000, CRC(e724d429) SHA1(8b5f80366fd22d6f7e7d8a9623de4fe231303267) ) // 1&0
ROM_LOAD32_WORD_SWAP( "5(dot).u39", 0x000002, 0x040000, CRC(c0d65765) SHA1(a6a26e6b9693a2ef245e9aaa4c9daa888aebb360)) // 3&2
ROM_REGION( 0x020000, "audiocpu", 0 ) /* Sound CPU Code */
ROM_LOAD( "3(k).u71", 0x00000, 0x20000, CRC(e0f0c597) SHA1(cc337633f1f579baf0f8ba1dd65c5d51122a7e97) )
ROM_REGION( 0x700000, "gfx1", 0 ) /* Sprites */
ROM_LOAD( "u14.bin", 0x000000, 0x200000, CRC(282d89c3) SHA1(3b4b17f4a37efa2f7e232488aaba7c77d10c84d2) )
ROM_LOAD( "u24.bin", 0x200000, 0x200000, CRC(bbe9d3d1) SHA1(9da0b0b993e8271a8119e9c2f602e52325983f79) )
ROM_LOAD( "u15.bin", 0x400000, 0x200000, CRC(d4d1b07c) SHA1(232109db8f6e137fbc8826f38a96057067cb19dc) )
// ROM_LOAD( "u25.bin", 0x600000, 0x100000 NOT PRESENT
ROM_REGION( 0x200000, "gfx2", 0 ) /* Layers 0 + 1 */
ROM_LOAD( "u33.bin", 0x000000, 0x200000, CRC(4c8577f1) SHA1(d27043514632954a06667ac63f4a4e4a31870511) )
ROM_REGION( 0x100000, "ymsnd", 0 ) /* ADPCM Samples */
ROM_LOAD( "u56.bin", 0x000000, 0x100000, CRC(51d73682) SHA1(562038d08e9a4389ffa39f3a659b2a29b94dc156) )
ROM_REGION( 0x080000, "ymsnd.deltat", 0 ) /* DELTA-T Samples */
ROM_LOAD( "u64.bin", 0x000000, 0x080000, CRC(0f33049f) SHA1(ca4fd5f3906685ace1af40b75f5678231d7324e8) )
ROM_REGION( 0x040000, "spritelut", 0 ) /* Sprites LUT */
ROM_LOAD( "u3.bin", 0x000000, 0x040000, CRC(30d541ed) SHA1(6f7fb5f5ecbce7c086185392de164ebb6887e780) )
ROM_REGION( 0x0400, "plds", 0 )
ROM_LOAD( "tibpal16l8.u69", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */
ROM_LOAD( "tibpal16l8.u19", 0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */
ROM_END
/*************************************************************************** /***************************************************************************
Strikers 1945 (Japan, unprotected) Strikers 1945 (Japan, unprotected)
@ -1956,18 +1990,22 @@ DRIVER_INIT_MEMBER(psikyo_state,s1945bl)
***************************************************************************/ ***************************************************************************/
/* Working Games */
GAME( 1993, samuraia, 0, sngkace, samuraia, psikyo_state, sngkace, ROT270, "Psikyo", "Samurai Aces (World)", GAME_SUPPORTS_SAVE ) // Banpresto? GAME( 1993, samuraia, 0, sngkace, samuraia, psikyo_state, sngkace, ROT270, "Psikyo", "Samurai Aces (World)", GAME_SUPPORTS_SAVE ) // Banpresto?
GAME( 1993, sngkace, samuraia, sngkace, sngkace, psikyo_state, sngkace, ROT270, "Psikyo", "Sengoku Ace (Japan)", GAME_SUPPORTS_SAVE ) // Banpresto? GAME( 1993, sngkace, samuraia, sngkace, sngkace, psikyo_state, sngkace, ROT270, "Psikyo", "Sengoku Ace (Japan)", GAME_SUPPORTS_SAVE ) // Banpresto?
GAME( 1994, gunbird, 0, gunbird, gunbird, psikyo_state, gunbird, ROT270, "Psikyo", "Gunbird (World)", GAME_SUPPORTS_SAVE ) GAME( 1994, gunbird, 0, gunbird, gunbird, psikyo_state, gunbird, ROT270, "Psikyo", "Gunbird (World)", GAME_SUPPORTS_SAVE )
GAME( 1994, gunbirdk, gunbird, gunbird, gunbirdj, psikyo_state, gunbird, ROT270, "Psikyo", "Gunbird (Korea)", GAME_SUPPORTS_SAVE ) GAME( 1994, gunbirdk, gunbird, gunbird, gunbirdj, psikyo_state, gunbird, ROT270, "Psikyo", "Gunbird (Korea)", GAME_SUPPORTS_SAVE )
GAME( 1994, gunbirdj, gunbird, gunbird, gunbirdj, psikyo_state, gunbird, ROT270, "Psikyo", "Gunbird (Japan)", GAME_SUPPORTS_SAVE ) GAME( 1994, gunbirdj, gunbird, gunbird, gunbirdj, psikyo_state, gunbird, ROT270, "Psikyo", "Gunbird (Japan)", GAME_SUPPORTS_SAVE )
GAME( 1994, btlkroad, 0, gunbird, btlkroad, psikyo_state, gunbird, ROT0, "Psikyo", "Battle K-Road", GAME_SUPPORTS_SAVE ) GAME( 1994, btlkroad, 0, gunbird, btlkroad, psikyo_state, gunbird, ROT0, "Psikyo", "Battle K-Road", GAME_SUPPORTS_SAVE )
GAME( 1994, btlkroadk, btlkroad,gunbird, btlkroad, psikyo_state, gunbird, ROT0, "Psikyo", "Battle K-Road (Korean PCB)", GAME_SUPPORTS_SAVE ) // game code is still multi-region, but sound rom appears to be Korea specific at least
GAME( 1995, s1945, 0, s1945, s1945, psikyo_state, s1945, ROT270, "Psikyo", "Strikers 1945 (World)", GAME_SUPPORTS_SAVE ) GAME( 1995, s1945, 0, s1945, s1945, psikyo_state, s1945, ROT270, "Psikyo", "Strikers 1945 (World)", GAME_SUPPORTS_SAVE )
GAME( 1995, s1945a, s1945, s1945, s1945a, psikyo_state, s1945a, ROT270, "Psikyo", "Strikers 1945 (Japan / World)", GAME_SUPPORTS_SAVE ) // Region dip - 0x0f=Japan, anything else=World GAME( 1995, s1945a, s1945, s1945, s1945a, psikyo_state, s1945a, ROT270, "Psikyo", "Strikers 1945 (Japan / World)", GAME_SUPPORTS_SAVE ) // Region dip - 0x0f=Japan, anything else=World
GAME( 1995, s1945j, s1945, s1945, s1945j, psikyo_state, s1945j, ROT270, "Psikyo", "Strikers 1945 (Japan)", GAME_SUPPORTS_SAVE ) GAME( 1995, s1945j, s1945, s1945, s1945j, psikyo_state, s1945j, ROT270, "Psikyo", "Strikers 1945 (Japan)", GAME_SUPPORTS_SAVE )
GAME( 1995, s1945jn, s1945, gunbird, s1945j, psikyo_state, s1945jn, ROT270, "Psikyo", "Strikers 1945 (Japan, unprotected)", GAME_SUPPORTS_SAVE ) GAME( 1995, s1945jn, s1945, gunbird, s1945j, psikyo_state, s1945jn, ROT270, "Psikyo", "Strikers 1945 (Japan, unprotected)", GAME_SUPPORTS_SAVE )
GAME( 1995, s1945k, s1945, s1945, s1945j, psikyo_state, s1945, ROT270, "Psikyo", "Strikers 1945 (Korea)", GAME_SUPPORTS_SAVE ) GAME( 1995, s1945k, s1945, s1945, s1945j, psikyo_state, s1945, ROT270, "Psikyo", "Strikers 1945 (Korea)", GAME_SUPPORTS_SAVE )
GAME( 1995, s1945bl, s1945, s1945bl, s1945bl, psikyo_state, s1945bl, ROT270, "bootleg","Strikers 1945 (Hong Kong, bootleg)", GAME_SUPPORTS_SAVE ) GAME( 1995, s1945bl, s1945, s1945bl, s1945bl, psikyo_state, s1945bl, ROT270, "bootleg","Strikers 1945 (Hong Kong, bootleg)", GAME_SUPPORTS_SAVE )
GAME( 1996, tengai, 0, s1945, tengai, psikyo_state, tengai, ROT0, "Psikyo", "Tengai (World)", GAME_SUPPORTS_SAVE ) GAME( 1996, tengai, 0, s1945, tengai, psikyo_state, tengai, ROT0, "Psikyo", "Tengai (World)", GAME_SUPPORTS_SAVE )
GAME( 1996, tengaij, tengai, s1945, tengaij, psikyo_state, tengai, ROT0, "Psikyo", "Sengoku Blade: Sengoku Ace Episode II / Tengai", GAME_SUPPORTS_SAVE ) // Region dip - 0x0f=Japan, anything else=World GAME( 1996, tengaij, tengai, s1945, tengaij, psikyo_state, tengai, ROT0, "Psikyo", "Sengoku Blade: Sengoku Ace Episode II / Tengai", GAME_SUPPORTS_SAVE ) // Region dip - 0x0f=Japan, anything else=World

View File

@ -8773,6 +8773,7 @@ gunbird // (c) 1994
gunbirdk // (c) 1994 gunbirdk // (c) 1994
gunbirdj // (c) 1994 gunbirdj // (c) 1994
btlkroad // (c) 1994 btlkroad // (c) 1994
btlkroadk // (c) 1994
s1945 // (c) 1995 s1945 // (c) 1995
s1945a // (c) 1995 s1945a // (c) 1995
s1945j // (c) 1995 s1945j // (c) 1995