diff options
author | Michael Zapf <Michael.Zapf@mizapf.de> | 2015-03-17 21:37:21 +0100 |
---|---|---|
committer | Michael Zapf <Michael.Zapf@mizapf.de> | 2015-03-17 21:37:21 +0100 |
commit | 7ef3198fc1b7d6e47edc92b20b6f61267acf58eb (patch) | |
tree | b10106d779d9802c6db59edea63acbc52e23c6c6 | |
parent | d498d5cedfaa93a485f41ce85482114d1ffe916e (diff) | |
parent | 5b170fd5aba4bd6561796edd406459c92e8455c2 (diff) |
Merge branch 'master' of https://github.com/mamedev/mame
-rw-r--r-- | src/emu/cpu/hmcs40/hmcs40.c | 66 | ||||
-rw-r--r-- | src/emu/cpu/hmcs40/hmcs40op.inc | 4 | ||||
-rw-r--r-- | src/mame/drivers/psikyo.c | 40 | ||||
-rw-r--r-- | src/mame/mame.lst | 1 |
4 files changed, 85 insertions, 26 deletions
diff --git a/src/emu/cpu/hmcs40/hmcs40.c b/src/emu/cpu/hmcs40/hmcs40.c index 66663da73c0..f3b7f9a17dc 100644 --- a/src/emu/cpu/hmcs40/hmcs40.c +++ b/src/emu/cpu/hmcs40/hmcs40.c @@ -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 increment_pc(); + // handle opcode + switch (m_op) + { /* op_ayy(); - @@ -585,45 +588,68 @@ op_alem(); - 324 124 op_blem(); - 267 024 op_lay(); - 118 + */ - // handle opcode - switch (m_op) - { case 0x118: op_lay(); // probably lay break; + + case 0x046: + op_daa(); + break; + case 0x045: + op_das(); + break; + + case 0x267: - op_blem(); break; // bnem or blem + op_blem(); // bnem or blem + break; + case 0x124: op_alem(); // alem or anem break; case 0x324: - op_anem(); break; // " + op_anem(); // " + break; + case 0x024: //op_nega(); //op_am(); op_illegal(); break; - case 0x234: - // sm? -#if 0 - m_a = ram_r() - m_a; - m_s = ~m_a >> 4 & 1; - m_a &= 0xf; -#else - op_am(); -#endif + + case 0x04b: + op_illegal(); + //op_rec(); break; case 0x04c: - op_illegal(); - //m_c ^= 1; - //op_lat(); + op_rec(); + 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; + + + /* 0x000 */ case 0x000: case 0x001: case 0x002: case 0x003: @@ -637,15 +663,11 @@ op_lay(); - 118 /* ok */ op_lmiiy(); break; case 0x020: case 0x021: case 0x022: case 0x023: op_lbm(); break; - case 0x030: - op_amc(); break; case 0x03c: op_lta(); break; case 0x040: /* ok */ op_lxa(); break; - case 0x04b: - op_rec(); break; case 0x04f: op_sec(); break; case 0x050: @@ -751,8 +773,6 @@ op_lay(); - 118 /* ok */ op_rotr(); break; case 0x225: /* ok */ op_rotl(); break; - case 0x230: - op_smc(); break; case 0x23c: op_lat(); break; diff --git a/src/emu/cpu/hmcs40/hmcs40op.inc b/src/emu/cpu/hmcs40/hmcs40op.inc index 15c6d309755..74c8b5a1efa 100644 --- a/src/emu/cpu/hmcs40/hmcs40op.inc +++ b/src/emu/cpu/hmcs40/hmcs40op.inc @@ -662,13 +662,13 @@ void hmcs40_cpu_device::op_p() if (o & 0x100) { // 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; } if (o & 0x200) { // 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(3, o >> 4 & 0xf); } diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c index e94c6b2c122..a53c7788fdf 100644 --- a/src/mame/drivers/psikyo.c +++ b/src/mame/drivers/psikyo.c @@ -1406,6 +1406,40 @@ ROM_START( btlkroad ) 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) @@ -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, 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, 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, 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, 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, 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, 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, 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 diff --git a/src/mame/mame.lst b/src/mame/mame.lst index ffff6c5ac71..f55f0badb6b 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -8773,6 +8773,7 @@ gunbird // (c) 1994 gunbirdk // (c) 1994 gunbirdj // (c) 1994 btlkroad // (c) 1994 +btlkroadk // (c) 1994 s1945 // (c) 1995 s1945a // (c) 1995 s1945j // (c) 1995 |