Previous 199869 Revisions Next

r24787 Wednesday 7th August, 2013 at 12:28:45 UTC by Alex Jackson
neogeo.c: fix memory leak, clean up inputs a bit [Alex Jackson]
[src/mame/drivers]neogeo.c neogeo.inc
[src/mame/video]neogeo.c
[src/mess/drivers]ng_aes.c

trunk/src/mess/drivers/ng_aes.c
r24786r24787
453453      case 0x0140:
454454//          bprintf(PRINT_NORMAL, _T("  - NGCD OBJ BUSREQ -> 0 (PC: 0x%06X)\n"), SekGetPC(-1));
455455         m_has_sprite_bus = true;
456         video_reset();
456         optimize_sprite_data();
457457         break;
458458      case 0x0142:
459459//          bprintf(PRINT_NORMAL, _T("  - NGCD PCM BUSREQ -> 0 (PC: 0x%06X)\n"), SekGetPC(-1));
r24786r24787
468468      case 0x0148:
469469//          bprintf(PRINT_NORMAL, _T("  - NGCD FIX BUSREQ -> 0 (PC: 0x%06X)\n"), SekGetPC(-1));
470470         m_has_text_bus = true;
471         video_reset();
472471         break;
473472
474473      // CD mechanism communication
r24786r24787
12231222   AM_RANGE(0x2ffff0, 0x2fffff) AM_WRITE(main_cpu_bank_select_w)
12241223   AM_RANGE(0x300000, 0x300001) AM_MIRROR(0x01ff7e) AM_READ(aes_in0_r)
12251224   AM_RANGE(0x300080, 0x300081) AM_MIRROR(0x01ff7e) AM_READ_PORT("IN4")
1226   AM_RANGE(0x300000, 0x300001) AM_MIRROR(0x01ffe0) AM_READ(neogeo_unmapped_r) AM_WRITENOP // AES has no watchdog
1225   AM_RANGE(0x300000, 0x300001) AM_MIRROR(0x01ffe0) AM_WRITENOP // AES has no watchdog
12271226   AM_RANGE(0x320000, 0x320001) AM_MIRROR(0x01fffe) AM_READ_PORT("IN3") AM_WRITE(audio_command_w)
12281227   AM_RANGE(0x340000, 0x340001) AM_MIRROR(0x01fffe) AM_READ(aes_in1_r)
12291228   AM_RANGE(0x360000, 0x37ffff) AM_READ(neogeo_unmapped_r)
r24786r24787
13121311 *
13131312 *************************************/
13141313
1315#define STANDARD_DIPS                                                                       \
1316   PORT_DIPNAME( 0x0001, 0x0001, "Test Switch" ) PORT_DIPLOCATION("SW:1")                  \
1317   PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )                                          \
1318   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )                                           \
1319   PORT_DIPNAME( 0x0002, 0x0002, "Coin Chutes?" ) PORT_DIPLOCATION("SW:2")                 \
1320   PORT_DIPSETTING(      0x0000, "1?" )                                                    \
1321   PORT_DIPSETTING(      0x0002, "2?" )                                                    \
1322   PORT_DIPNAME( 0x0004, 0x0004, "Autofire (in some games)" ) PORT_DIPLOCATION("SW:3")     \
1323   PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )                                          \
1324   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )                                           \
1325   PORT_DIPNAME( 0x0018, 0x0018, "COMM Setting (Cabinet No.)" ) PORT_DIPLOCATION("SW:4,5") \
1326   PORT_DIPSETTING(      0x0018, "1" )                                                     \
1327   PORT_DIPSETTING(      0x0008, "2" )                                                     \
1328   PORT_DIPSETTING(      0x0010, "3" )                                                     \
1329   PORT_DIPSETTING(      0x0000, "4" )                                                     \
1330   PORT_DIPNAME( 0x0020, 0x0020, "COMM Setting (Link Enable)" ) PORT_DIPLOCATION("SW:6")   \
1331   PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )                                          \
1332   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )                                           \
1333   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW:7")           \
1334   PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )                                          \
1335   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )                                           \
1336   PORT_DIPNAME( 0x0080, 0x0080, "Freeze" ) PORT_DIPLOCATION("SW:8")                       \
1337   PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )                                          \
1338   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1339
1340#define STANDARD_IN2                                                                                \
1341   PORT_START("IN2")                                                                               \
1342   PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )                                                   \
1343   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )                                   \
1344   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON5) PORT_NAME("1P Select") PORT_CODE(KEYCODE_5) PORT_PLAYER(1)    \
1345   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START2 )                                   \
1346   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON5) PORT_NAME("2P Select") PORT_CODE(KEYCODE_6) PORT_PLAYER(2)    \
1314#define STANDARD_IN2                                              \
1315   PORT_START("IN2")                                             \
1316   PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )                 \
1317   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START ) PORT_PLAYER(1)   \
1318   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SELECT ) PORT_PLAYER(1)  \
1319   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START ) PORT_PLAYER(2)   \
1320   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SELECT ) PORT_PLAYER(2)  \
13471321   PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, ng_aes_state, get_memcard_status, NULL)         \
13481322   PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN )  /* Matrimelee expects this bit to be active high when on an AES */
13491323
r24786r24787
14821456   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
14831457   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
14841458   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1485
14861459INPUT_PORTS_END
14871460
14881461static INPUT_PORTS_START( aes )
trunk/src/mame/video/neogeo.c
r24786r24787
654654{
655655   /* convert the sprite graphics data into a format that
656656      allows faster blitting */
657   int i;
658   int len;
659657   UINT8 *src;
660658   UINT8 *dest;
659   UINT32 mask;
660   UINT32 len;
661661   UINT32 bit;
662662
663663   /* get mask based on the length rounded up to the nearest
664664      power of 2 */
665   m_sprite_gfx_address_mask = 0xffffffff;
665   mask = 0xffffffff;
666666
667667   len = m_region_sprites->bytes();
668668
669669   for (bit = 0x80000000; bit != 0; bit >>= 1)
670670   {
671      if (((len * 2) - 1) & bit)
671      if ((len * 2 - 1) & bit)
672672         break;
673673
674      m_sprite_gfx_address_mask >>= 1;
674      mask >>= 1;
675675   }
676676
677   m_sprite_gfx = auto_alloc_array_clear(machine(), UINT8, m_sprite_gfx_address_mask + 1);
677   if (mask > m_sprite_gfx_address_mask)
678   {
679      if (m_sprite_gfx != NULL)
680         auto_free(machine(), m_sprite_gfx);
681      m_sprite_gfx = auto_alloc_array_clear(machine(), UINT8, mask + 1);
682      m_sprite_gfx_address_mask = mask;
683   }
678684
679685   src = m_region_sprites->base();
680686   dest = m_sprite_gfx;
681687
682   for (i = 0; i < len; i += 0x80, src += 0x80)
688   for (unsigned i = 0; i < len; i += 0x80, src += 0x80)
683689   {
684      int y;
685
686      for (y = 0; y < 0x10; y++)
690      for (unsigned y = 0; y < 0x10; y++)
687691      {
688         int x;
689
690         for (x = 0; x < 8; x++)
692         for (unsigned x = 0; x < 8; x++)
691693         {
692694            *(dest++) = (((src[0x43 | (y << 2)] >> x) & 0x01) << 3) |
693695                     (((src[0x41 | (y << 2)] >> x) & 0x01) << 2) |
r24786r24787
695697                     (((src[0x40 | (y << 2)] >> x) & 0x01) << 0);
696698         }
697699
698         for (x = 0; x < 8; x++)
700         for (unsigned x = 0; x < 8; x++)
699701         {
700702            *(dest++) = (((src[0x03 | (y << 2)] >> x) & 0x01) << 3) |
701703                     (((src[0x01 | (y << 2)] >> x) & 0x01) << 2) |
r24786r24787
837839   compute_rgb_weights();
838840   create_sprite_line_timer();
839841   create_auto_animation_timer();
842
843   m_sprite_gfx = NULL;
844   m_sprite_gfx_address_mask = 0;
840845   optimize_sprite_data();
841846
842847   /* initialize values that are not modified on a reset */
r24786r24787
880885{
881886   start_sprite_line_timer();
882887   start_auto_animation_timer();
883   optimize_sprite_data();
884888}
885889
886890
trunk/src/mame/drivers/neogeo.c
r24786r24787
10801080   /* some games have protection devices in the 0x200000 region, it appears to map to cart space, not surprising, the ROM is read here too */
10811081   AM_RANGE(0x200000, 0x2fffff) AM_ROMBANK(NEOGEO_BANK_CARTRIDGE)
10821082   AM_RANGE(0x2ffff0, 0x2fffff) AM_WRITE(main_cpu_bank_select_w)
1083   AM_RANGE(0x300000, 0x300001) AM_MIRROR(0x01ff7e) AM_READ_PORT("IN0")
1084   AM_RANGE(0x300080, 0x300081) AM_MIRROR(0x01ff7e) AM_READ_PORT("IN4")
1085   AM_RANGE(0x300000, 0x300001) AM_MIRROR(0x01ffe0) AM_READ(neogeo_unmapped_r) AM_WRITE(watchdog_w)
1086   AM_RANGE(0x320000, 0x320001) AM_MIRROR(0x01fffe) AM_READ_PORT("IN3") AM_WRITE(audio_command_w)
1087   AM_RANGE(0x340000, 0x340001) AM_MIRROR(0x01fffe) AM_READ_PORT("IN1")
1083   AM_RANGE(0x300000, 0x300001) AM_MIRROR(0x01ff7e) AM_READ_PORT("P1/DSW")
1084   AM_RANGE(0x300080, 0x300081) AM_MIRROR(0x01ff7e) AM_READ_PORT("TEST")
1085   AM_RANGE(0x300000, 0x300001) AM_MIRROR(0x01ffe0) AM_WRITE(watchdog_w)
1086   AM_RANGE(0x320000, 0x320001) AM_MIRROR(0x01fffe) AM_READ_PORT("AUDIO/COIN") AM_WRITE(audio_command_w)
1087   AM_RANGE(0x340000, 0x340001) AM_MIRROR(0x01fffe) AM_READ_PORT("P2")
10881088   AM_RANGE(0x360000, 0x37ffff) AM_READ(neogeo_unmapped_r)
1089   AM_RANGE(0x380000, 0x380001) AM_MIRROR(0x01fffe) AM_READ_PORT("IN2")
1089   AM_RANGE(0x380000, 0x380001) AM_MIRROR(0x01fffe) AM_READ_PORT("SYSTEM")
10901090   AM_RANGE(0x380000, 0x38007f) AM_MIRROR(0x01ff80) AM_WRITE(io_control_w)
10911091   AM_RANGE(0x3a0000, 0x3a001f) AM_MIRROR(0x01ffe0) AM_READ(neogeo_unmapped_r) AM_WRITE(system_control_w)
10921092   AM_RANGE(0x3c0000, 0x3c0007) AM_MIRROR(0x01fff8) AM_READ(neogeo_video_register_r)
r24786r24787
11471147 *
11481148 *************************************/
11491149
1150#define STANDARD_DIPS                                                                       \
1151   PORT_DIPNAME( 0x0001, 0x0001, "Test Switch" ) PORT_DIPLOCATION("SW:1")                  \
1152   PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )                                          \
1153   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )                                           \
1154   PORT_DIPNAME( 0x0002, 0x0002, "Coin Chutes?" ) PORT_DIPLOCATION("SW:2")                 \
1155   PORT_DIPSETTING(      0x0000, "1?" )                                                    \
1156   PORT_DIPSETTING(      0x0002, "2?" )                                                    \
1157   PORT_DIPNAME( 0x0004, 0x0004, "Autofire (in some games)" ) PORT_DIPLOCATION("SW:3")     \
1158   PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )                                          \
1159   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )                                           \
1160   PORT_DIPNAME( 0x0018, 0x0018, "COMM Setting (Cabinet No.)" ) PORT_DIPLOCATION("SW:4,5") \
1161   PORT_DIPSETTING(      0x0018, "1" )                                                     \
1162   PORT_DIPSETTING(      0x0010, "2" )                                                     \
1163   PORT_DIPSETTING(      0x0008, "3" )                                                     \
1164   PORT_DIPSETTING(      0x0000, "4" )                                                     \
1165   PORT_DIPNAME( 0x0020, 0x0020, "COMM Setting (Link Enable)" ) PORT_DIPLOCATION("SW:6")   \
1166   PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )                                          \
1167   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )                                           \
1168   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW:7")           \
1169   PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )                                          \
1170   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )                                           \
1171   PORT_DIPNAME( 0x0080, 0x0080, "Freeze" ) PORT_DIPLOCATION("SW:8")                       \
1172   PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )                                          \
1150static INPUT_PORTS_START( neogeo )
1151   PORT_START("P1/DSW")
1152   PORT_SERVICE_DIPLOC( 0x0001, IP_ACTIVE_LOW, "SW:1" )
1153   PORT_DIPNAME( 0x0002, 0x0002, "Coin Chutes?" ) PORT_DIPLOCATION("SW:2")
1154   PORT_DIPSETTING(      0x0000, "1?" )
1155   PORT_DIPSETTING(      0x0002, "2?" )
1156   PORT_DIPNAME( 0x0004, 0x0004, "Autofire (in some games)" ) PORT_DIPLOCATION("SW:3")
1157   PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
11731158   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1174
1175
1176#define STANDARD_IN0                                                        \
1177   PORT_START("IN0")                                                       \
1178   STANDARD_DIPS                                                           \
1179   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)       \
1180   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)     \
1181   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)     \
1182   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)    \
1183   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)           \
1184   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)           \
1185   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)           \
1159   PORT_DIPNAME( 0x0018, 0x0018, "COMM Setting (Cabinet No.)" ) PORT_DIPLOCATION("SW:4,5")
1160   PORT_DIPSETTING(      0x0018, "1" )
1161   PORT_DIPSETTING(      0x0010, "2" )
1162   PORT_DIPSETTING(      0x0008, "3" )
1163   PORT_DIPSETTING(      0x0000, "4" )
1164   PORT_DIPNAME( 0x0020, 0x0020, "COMM Setting (Link Enable)" ) PORT_DIPLOCATION("SW:6")
1165   PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
1166   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1167   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW:7")
1168   PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
1169   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1170   PORT_DIPNAME( 0x0080, 0x0080, "Freeze" ) PORT_DIPLOCATION("SW:8")
1171   PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
1172   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1173   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
1174   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
1175   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
1176   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
1177   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
1178   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
1179   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
11861180   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
11871181
1188
1189#define STANDARD_IN1                                                        \
1190   PORT_START("IN1")                                                       \
1191   PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )                           \
1192   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)       \
1193   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)     \
1194   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)     \
1195   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)    \
1196   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)           \
1197   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)           \
1198   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)           \
1182   PORT_START("P2")
1183   PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )
1184   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
1185   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
1186   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
1187   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
1188   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1189   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
1190   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
11991191   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
12001192
1201
1202#define STANDARD_IN2                                                                                \
1203   PORT_START("IN2")                                                                               \
1204   PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )                                                   \
1205   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )                                                   \
1206   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Next Game") PORT_CODE(KEYCODE_7)        \
1207   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START2 )                                                   \
1208   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Previous Game") PORT_CODE(KEYCODE_8)    \
1209   PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_memcard_status, NULL)          \
1193   PORT_START("SYSTEM")
1194   PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )
1195   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
1196   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Next Game") PORT_CODE(KEYCODE_7)
1197   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START2 )
1198   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Previous Game") PORT_CODE(KEYCODE_8)
1199   PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_memcard_status, NULL)
12101200   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* In AES 'mode' nitd, kof2000, sengoku3, matrim and mslug5 check if this is ACTIVE_HIGH */
12111201
1212
1213#define STANDARD_IN3                                                                                \
1214   PORT_START("IN3")                                                                               \
1215   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )                                                    \
1216   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )                                                    \
1217   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )                                                 \
1218   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* having this ACTIVE_HIGH causes you to start with 2 credits using USA bios roms; if ACTIVE_HIGH + IN4 bit 6 ACTIVE_HIGH = AES 'mode' */    \
1219   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* having this ACTIVE_HIGH causes you to start with 2 credits using USA bios roms; if ACTIVE_HIGH + IN4 bit 6 ACTIVE_HIGH = AES 'mode' */    \
1220   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SPECIAL ) /* what is this? When ACTIVE_HIGH + IN4 bit 6 ACTIVE_LOW MVS-4 slot is detected */   \
1221   PORT_BIT( 0x00c0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_calendar_status, NULL)         \
1202   PORT_START("AUDIO/COIN")
1203   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
1204   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
1205   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
1206   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* having this ACTIVE_HIGH causes you to start with 2 credits using USA bios roms; if ACTIVE_HIGH + IN4 bit 6 ACTIVE_HIGH = AES 'mode' */
1207   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* having this ACTIVE_HIGH causes you to start with 2 credits using USA bios roms; if ACTIVE_HIGH + IN4 bit 6 ACTIVE_HIGH = AES 'mode' */
1208   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SPECIAL ) /* what is this? When ACTIVE_HIGH + IN4 bit 6 ACTIVE_LOW MVS-4 slot is detected */
1209   PORT_BIT( 0x00c0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_calendar_status, NULL)
12221210   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_audio_result, NULL)
12231211
1224
1225#define STANDARD_IN4                                                                            \
1226   PORT_START("IN4")                                                                           \
1227   PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_UNKNOWN )                                             \
1228   PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_UNKNOWN )                                             \
1229   PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_UNKNOWN )                                             \
1230   PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_UNKNOWN )                                             \
1231   PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_UNKNOWN )                                             \
1232   PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_UNKNOWN )                                             \
1233   PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* what is this? If ACTIVE_LOW, MVS-6 slot detected, when ACTIVE_HIGH MVS-1 slot (AES) detected */  \
1234   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Enter BIOS") PORT_CODE(KEYCODE_F2)  \
1212   PORT_START("TEST")
1213   PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1214   PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1215   PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1216   PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1217   PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1218   PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1219   PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* what is this? If ACTIVE_LOW, MVS-6 slot detected, when ACTIVE_HIGH MVS-1 slot (AES) detected */
1220   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F1)
12351221   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
1236
1237
1238static INPUT_PORTS_START( neogeo )
1239   STANDARD_IN0
1240
1241   STANDARD_IN1
1242
1243   STANDARD_IN2
1244
1245   STANDARD_IN3
1246
1247   STANDARD_IN4
12481222INPUT_PORTS_END
12491223
12501224
trunk/src/mame/drivers/neogeo.inc
r24786r24787
89868986****************************************************************************/
89878987
89888988
8989static INPUT_PORTS_START( svcpcb )
8990   STANDARD_IN0
8989static INPUT_PORTS_START( ms5pcb )
8990   PORT_INCLUDE( neogeo )
89918991
8992   STANDARD_IN1
8992   PORT_MODIFY("SYSTEM")
8993   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED )
8994   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED )
89938995
8994   STANDARD_IN2
8995
8996   STANDARD_IN3
8997
8998   STANDARD_IN4
8999
90008996   /* the rom banking is tied directly to the dipswitch?, or is there a bank write somewhere? */
90018997   PORT_START("HARDDIP")
90028998   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Region ) ) PORT_DIPLOCATION("HARDDIP:3")
r24786r24787
90059001INPUT_PORTS_END
90069002
90079003
9008static INPUT_PORTS_START( ms5pcb )
9009   STANDARD_IN0
9004static INPUT_PORTS_START( kf2k3pcb )
9005   PORT_INCLUDE( neogeo )
90109006
9011   STANDARD_IN1
9012
9013   STANDARD_IN2
9014
9015   STANDARD_IN3
9016
9017   STANDARD_IN4
9018
9019   /* the rom banking is tied directly to the dipswitch?, or is there a bank write somewhere? */
9020   PORT_START("HARDDIP")
9021   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Region ) ) PORT_DIPLOCATION("HARDDIP:3")
9022   PORT_DIPSETTING(    0x00, DEF_STR( Asia ) )
9023   PORT_DIPSETTING(    0x01, DEF_STR( Japan ) )
9007   PORT_MODIFY("SYSTEM")
9008   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED )
9009   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED )
90249010INPUT_PORTS_END
90259011
90269012
90279013static INPUT_PORTS_START( kog )
9028   STANDARD_IN0
9014   PORT_INCLUDE( neogeo )
90299015
9030   STANDARD_IN1
9031
9032   STANDARD_IN2
9033
9034   STANDARD_IN3
9035
9036   STANDARD_IN4
9037
90389016   /* a jumper on the pcb overlays a ROM address, very strange but that's how it works. */
90399017   PORT_START("JUMPER")
90409018   PORT_DIPNAME( 0x0001, 0x0001, "Title Language" ) PORT_DIPLOCATION("CART-JUMPER:1")
r24786r24787
90469024
90479025
90489026static INPUT_PORTS_START( mjneogeo )
9049   PORT_START("IN0")
9050   PORT_DIPNAME( 0x0001, 0x0001, "Test Switch" ) PORT_DIPLOCATION("SW:1")
9051   PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
9052   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
9053   PORT_DIPNAME( 0x0002, 0x0002, "Coin Chutes?" ) PORT_DIPLOCATION("SW:2")
9054   PORT_DIPSETTING(      0x0000, "1?" )
9055   PORT_DIPSETTING(      0x0002, "2?" )
9027   PORT_INCLUDE( neogeo )
9028
9029   PORT_MODIFY("P1/DSW")
90569030   PORT_DIPNAME( 0x0004, 0x0000, "Mahjong Control Panel" ) PORT_DIPLOCATION("SW:3")
90579031   PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
90589032   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
9059   PORT_DIPNAME( 0x0018, 0x0018, "COMM Setting (Cabinet No.)" ) PORT_DIPLOCATION("SW:4,5")
9060   PORT_DIPSETTING(      0x0018, "1" )
9061   PORT_DIPSETTING(      0x0008, "2" )
9062   PORT_DIPSETTING(      0x0010, "3" )
9063   PORT_DIPSETTING(      0x0000, "4" )
9064   PORT_DIPNAME( 0x0020, 0x0020, "COMM Setting (Link Enable)" ) PORT_DIPLOCATION("SW:6")
9065   PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
9066   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
9067   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW:7")
9068   PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
9069   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
9070   PORT_DIPNAME( 0x0080, 0x0080, "Freeze" ) PORT_DIPLOCATION("SW:8")
9071   PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
9072   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
90739033   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,mahjong_controller_r, NULL)
90749034
9075   STANDARD_IN1
9076
9077   STANDARD_IN2
9078
9079   STANDARD_IN3
9080
9081   STANDARD_IN4
9082
90839035   PORT_START("MAHJONG1")
90849036   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_A )
90859037   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_B )
r24786r24787
91279079
91289080
91299081static INPUT_PORTS_START( irrmaze )
9130   PORT_START("IN0")
9131   STANDARD_DIPS
9082   PORT_INCLUDE( neogeo )
9083
9084   PORT_MODIFY("P1/DSW")
91329085   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,multiplexed_controller_r, (void *)0)
91339086
9134   PORT_START("IN1")
9087   PORT_MODIFY("P2")
91359088   PORT_BIT( 0x0fff, IP_ACTIVE_LOW, IPT_UNUSED )
91369089   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
91379090   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
91389091   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
91399092   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
91409093
9141   PORT_START("IN2")
9142   PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )
9143   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
9094   PORT_MODIFY("SYSTEM")
91449095   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED )
9145   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START2 )
91469096   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED )
91479097   PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_memcard_status, NULL)
91489098   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
91499099
9150   STANDARD_IN3
9151
9152   PORT_START("IN4")
9153   PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_UNKNOWN )
9154   PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_UNKNOWN )
9155   PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_UNKNOWN )
9156   PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_UNKNOWN )
9157   PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_UNKNOWN )
9158   PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_UNKNOWN )
9159   PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNKNOWN )  /* this bit is used.. */
9160   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Enter BIOS") PORT_CODE(KEYCODE_F2)
9161   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
9162
91639100   PORT_START("IN0-0")
91649101   PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE
91659102
r24786r24787
91699106
91709107
91719108static INPUT_PORTS_START( popbounc )
9172   PORT_START("IN0")
9173   STANDARD_DIPS
9109   PORT_INCLUDE( neogeo )
9110
9111   PORT_MODIFY("P1/DSW")
91749112   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,multiplexed_controller_r, (void *)0)
91759113
9176   PORT_START("IN1")
9177   PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )
9114   PORT_MODIFY("P2")
91789115   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,multiplexed_controller_r, (void *)1)
91799116
9180   STANDARD_IN2
9181
9182   STANDARD_IN3
9183
9184   STANDARD_IN4
9185
91869117   /* Fake inputs read by CUSTOM_INPUT handlers */
91879118   PORT_START("IN0-0")
91889119   PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20)
r24786r24787
92119142
92129143
92139144static INPUT_PORTS_START( vliner )
9214   PORT_START("IN0")
9215   STANDARD_DIPS
9216   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
9217   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
9218   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
9219   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
9145   PORT_INCLUDE( neogeo )
9146
9147   PORT_MODIFY("P1/DSW")
92209148   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("View Payout Table/Big")
92219149   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Bet/Small")
92229150   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Stop/Double Up")
92239151   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Start/Collect")
92249152
9225   PORT_START("IN1")
9153   PORT_MODIFY("P2")
92269154   PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED )
92279155
9228   PORT_START("IN2")
9229   PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )
9156   PORT_MODIFY("SYSTEM")
92309157   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED )
92319158   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* this bit is used.. */
92329159   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED )
92339160   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* this bit is used.. */
9234   PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_memcard_status, NULL)
9235   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
92369161
9237   PORT_START("IN3")
9162   PORT_MODIFY("AUDIO/COIN")
92389163   PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNUSED )
9239   PORT_BIT( 0x00c0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_calendar_status, NULL)
9240   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_audio_result, NULL)
92419164
9242   STANDARD_IN4
9243
92449165   PORT_START("IN5")
92459166   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
92469167   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
r24786r24787
92609181
92619182
92629183static INPUT_PORTS_START( jockeygp )
9263   STANDARD_IN0
9184   PORT_INCLUDE( neogeo )
92649185
9265   STANDARD_IN1
9266
9267   PORT_START("IN2")
9268   PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )
9186   PORT_MODIFY("SYSTEM")
92699187   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* game freezes with this bit enabled */
9270   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Next Game") PORT_CODE(KEYCODE_7)
92719188   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* game freezes with this bit enabled */
9272   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Previous Game") PORT_CODE(KEYCODE_8)
9273   PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_memcard_status, NULL)
9274   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
9275
9276   STANDARD_IN3
9277
9278   STANDARD_IN4
92799189INPUT_PORTS_END
92809190
92819191
r24786r24787
1015710067GAME( 2003, mslug5h,    mslug5,   neogeo,   neogeo, neogeo_state,   mslug5,   ROT0, "SNK Playmore", "Metal Slug 5 (NGH-2680)", GAME_SUPPORTS_SAVE ) /* Also found in later MVS carts */
1015810068GAME( 2003, ms5pcb,     0,        neogeo,   ms5pcb, neogeo_state,   ms5pcb,   ROT0, "SNK Playmore", "Metal Slug 5 (JAMMA PCB)", GAME_SUPPORTS_SAVE )
1015910069GAME( 2003, ms5plus,    mslug5,   neogeo,   neogeo, neogeo_state,   ms5plus,  ROT0, "bootleg", "Metal Slug 5 Plus (bootleg)", GAME_SUPPORTS_SAVE )
10160GAME( 2003, svcpcb,     0,        neogeo,   svcpcb, neogeo_state,   svcpcb,   ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (JAMMA PCB, set 1)", GAME_SUPPORTS_SAVE ) // not a clone of neogeo because it's NOT a neogeo cart.
10161GAME( 2003, svcpcba,    svcpcb,   neogeo,   svcpcb, neogeo_state,   svcpcb,   ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (JAMMA PCB, set 2)" , GAME_SUPPORTS_SAVE ) /* Encrypted Code */
10070GAME( 2003, svcpcb,     0,        neogeo,   ms5pcb, neogeo_state,   svcpcb,   ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (JAMMA PCB, set 1)", GAME_SUPPORTS_SAVE ) // not a clone of neogeo because it's NOT a neogeo cart.
10071GAME( 2003, svcpcba,    svcpcb,   neogeo,   ms5pcb, neogeo_state,   svcpcb,   ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (JAMMA PCB, set 2)" , GAME_SUPPORTS_SAVE ) /* Encrypted Code */
1016210072GAME( 2003, svc,        neogeo,   neogeo,   neogeo, neogeo_state,   svc,      ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (NGM-2690)(NGH-2690)", GAME_SUPPORTS_SAVE )
1016310073GAME( 2003, svcboot,    svc,      neogeo,   neogeo, neogeo_state,   svcboot,  ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos (bootleg)", GAME_SUPPORTS_SAVE )
1016410074GAME( 2003, svcplus,    svc,      neogeo,   neogeo, neogeo_state,   svcplus,  ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 1)", GAME_SUPPORTS_SAVE )
r24786r24787
1016710077GAME( 2003, samsho5,    neogeo,   neogeo,   neogeo, neogeo_state,   samsho5,  ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGM-2700)", GAME_SUPPORTS_SAVE )
1016810078GAME( 2003, samsho5h,   samsho5,  neogeo,   neogeo, neogeo_state,   samsho5,  ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGH-2700)", GAME_SUPPORTS_SAVE )
1016910079GAME( 2003, samsho5b,   samsho5,  neogeo,   neogeo, neogeo_state,   samsho5b, ROT0, "bootleg", "Samurai Shodown V / Samurai Spirits Zero (bootleg)", GAME_SUPPORTS_SAVE ) // different program scrambling
10170GAME( 2003, kf2k3pcb,   0,        neogeo,   neogeo, neogeo_state,  kf2k3pcb, ROT0, "SNK Playmore", "The King of Fighters 2003 (Japan, JAMMA PCB)", GAME_SUPPORTS_SAVE ) // not a clone of neogeo because it's NOT a neogeo cart.
10080GAME( 2003, kf2k3pcb,   0,        neogeo,   kf2k3pcb, neogeo_state, kf2k3pcb, ROT0, "SNK Playmore", "The King of Fighters 2003 (Japan, JAMMA PCB)", GAME_SUPPORTS_SAVE ) // not a clone of neogeo because it's NOT a neogeo cart.
1017110081GAME( 2003, kof2003,    neogeo,   neogeo,   neogeo, neogeo_state,   kof2003,  ROT0, "SNK Playmore", "The King of Fighters 2003 (NGM-2710)", GAME_SUPPORTS_SAVE )
1017210082GAME( 2003, kof2003h,   kof2003,  neogeo,   neogeo, neogeo_state,   kof2003h, ROT0, "SNK Playmore", "The King of Fighters 2003 (NGH-2710)", GAME_SUPPORTS_SAVE )
1017310083GAME( 2003, kf2k3bl,    kof2003,  neogeo,   neogeo, neogeo_state,   kf2k3bl , ROT0, "bootleg", "The King of Fighters 2003 (bootleg set 1)", GAME_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart (unless it was a bootleg pcb with the new bios?)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team