summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/neogeo/carts.cpp
blob: 356ddf6034037c5e7c1405178f8e39f84b41f27e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
// license:BSD-3-Clause
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
/**********************************************************************

**********************************************************************/

#include "emu.h"
#include "bus/neogeo/carts.h"
#include "bus/neogeo/rom.h"
#include "bus/neogeo/fatfury2.h"
#include "bus/neogeo/kof98.h"
#include "bus/neogeo/mslugx.h"
#include "bus/neogeo/cmc.h"
#include "bus/neogeo/sma.h"
#include "bus/neogeo/pcm2.h"
#include "bus/neogeo/kof2k2.h"
#include "bus/neogeo/pvc.h"
#include "bus/neogeo/boot_cthd.h"
#include "bus/neogeo/boot_misc.h"
#include "bus/neogeo/boot_svc.h"
#include "bus/neogeo/boot_kof2k2.h"
#include "bus/neogeo/boot_kof2k3.h"
#include "bus/neogeo/boot_kof10th.h"
#include "bus/neogeo/sbp.h"


void neogeo_cart(device_slot_interface &device)
{
	device.option_add_internal("rom",  NEOGEO_ROM);                     // Standard cart with banking

	device.option_add_internal("rom_vliner",  NEOGEO_VLINER_CART);      // Standard cart + RAM
	device.option_add_internal("rom_fatfur2", NEOGEO_FATFURY2_CART);    // Custom Fatal Fury 2 protection
	device.option_add_internal("rom_kof98",   NEOGEO_KOF98_CART);       // Custom King of Fighters 98 protection
	device.option_add_internal("rom_mslugx",  NEOGEO_MSLUGX_CART);      // Custom Metal Slug X protection

	// only CMC42 for gfx
	device.option_add_internal("cmc42_zupapa",   NEOGEO_CMC_ZUPAPA_CART);
	device.option_add_internal("cmc42_mslug3h",  NEOGEO_CMC_MSLUG3H_CART);
	device.option_add_internal("cmc42_ganryu",   NEOGEO_CMC_GANRYU_CART);
	device.option_add_internal("cmc42_s1945p",   NEOGEO_CMC_S1945P_CART);
	device.option_add_internal("cmc42_preisle2", NEOGEO_CMC_PREISLE2_CART);
	device.option_add_internal("cmc42_bangbead", NEOGEO_CMC_BANGBEAD_CART);
	device.option_add_internal("cmc42_nitd",     NEOGEO_CMC_NITD_CART);
	device.option_add_internal("cmc42_sengoku3", NEOGEO_CMC_SENGOKU3_CART);
	device.option_add_internal("cmc42_kof99k",   NEOGEO_CMC_KOF99K_CART);

	// only CMC50 for gfx + audiocpu
	device.option_add_internal("cmc50_kof2001",  NEOGEO_CMC_KOF2001_CART);
	device.option_add_internal("cmc50_kof2000n", NEOGEO_CMC_KOF2000N_CART);
	device.option_add_internal("cmc50_jockeygp", NEOGEO_CMC_JOCKEYGP_CART); // CMC50 + RAM

	// These use SMA for prg & CMC42 for gfx
	device.option_add_internal("sma_kof99",  NEOGEO_SMA_KOF99_CART);
	device.option_add_internal("sma_garou",  NEOGEO_SMA_GAROU_CART);
	device.option_add_internal("sma_garouh", NEOGEO_SMA_GAROUH_CART);
	device.option_add_internal("sma_mslug3", NEOGEO_SMA_MSLUG3_CART);
	// These use SMA for prg & CMC50 for gfx + audiocpu
	device.option_add_internal("sma_kof2k",  NEOGEO_SMA_KOF2000_CART);

	// CMC50 for gfx + audiocpu & NEOPCM2 for YM scramble
	device.option_add_internal("pcm2_mslug4", NEOGEO_PCM2_MSLUG4_CART);
	device.option_add_internal("pcm2_rotd",   NEOGEO_PCM2_ROTD_CART);
	device.option_add_internal("pcm2_pnyaa",  NEOGEO_PCM2_PNYAA_CART);
	device.option_add_internal("pcm2_ms4p",   NEOGEO_PCM2_MS4PLUS_CART); // regular encryption but external S1 rom = no audiocpu encryption from CMC

	// CMC50 for gfx + audiocpu & NEOPCM2 for YM scramble & additonal prg scramble
	device.option_add_internal("k2k2_kof2k2", NEOGEO_K2K2_KOF2002_CART);
	device.option_add_internal("k2k2_matrim", NEOGEO_K2K2_MATRIM_CART);
	device.option_add_internal("k2k2_samsh5", NEOGEO_K2K2_SAMSHO5_CART);
	device.option_add_internal("k2k2_sams5s", NEOGEO_K2K2_SAMSHO5SP_CART);
	device.option_add_internal("k2k2_kf2k2p", NEOGEO_K2K2_KF2K2PLS_CART); // regular encryption but external S1 rom = no audiocpu encryption from CMC

	// CMC50 for gfx + audiocpu & NEOPCM2 for YM scramble & PVC protection/encryption
	device.option_add_internal("pvc_mslug5", NEOGEO_PVC_MSLUG5_CART);
	device.option_add_internal("pvc_svc",    NEOGEO_PVC_SVC_CART);
	device.option_add_internal("pvc_kf2k3",  NEOGEO_PVC_KOF2003_CART);
	device.option_add_internal("pvc_kf2k3h", NEOGEO_PVC_KOF2003H_CART);

	// Bootleg logic for CTHD2K3 and clones
	device.option_add_internal("boot_cthd2k3",  NEOGEO_CTHD2K3_CART);
	device.option_add_internal("boot_ct2k3sp",  NEOGEO_CT2K3SP_CART);
	device.option_add_internal("boot_ct2k3sa",  NEOGEO_CT2K3SA_CART);
	device.option_add_internal("boot_matrimbl", NEOGEO_MATRIMBL_CART);  // this also uses a CMC for SFIX & additional prg scramble from kof2002

	// Bootleg logic for SVC clones
	device.option_add_internal("boot_svcboot",  NEOGEO_SVCBOOT_CART);   // this also uses a PVC protection/encryption
	device.option_add_internal("boot_svcplus",  NEOGEO_SVCPLUS_CART);
	device.option_add_internal("boot_svcplusa", NEOGEO_SVCPLUSA_CART);
	device.option_add_internal("boot_svcsplus", NEOGEO_SVCSPLUS_CART);  // this also uses a PVC protection/encryption

	// Bootleg logic for KOF2002 clones
	device.option_add_internal("boot_kf2k2b",   NEOGEO_KOF2002B_CART);
	device.option_add_internal("boot_kf2k2mp",  NEOGEO_KF2K2MP_CART);
	device.option_add_internal("boot_kf2k2mp2", NEOGEO_KF2K2MP2_CART);

	// Bootleg logic for KOF2003 clones
	device.option_add_internal("boot_kf2k3bl",  NEOGEO_KF2K3BL_CART);
	device.option_add_internal("boot_kf2k3pl",  NEOGEO_KF2K3PL_CART);
	device.option_add_internal("boot_kf2k3upl", NEOGEO_KF2K3UPL_CART);

	// Misc carts with bootleg logic
	device.option_add_internal("boot_garoubl",  NEOGEO_GAROUBL_CART);
	device.option_add_internal("boot_kof97oro", NEOGEO_KOF97ORO_CART);
	device.option_add_internal("boot_kf10thep", NEOGEO_KF10THEP_CART);
	device.option_add_internal("boot_kf2k5uni", NEOGEO_KF2K5UNI_CART);
	device.option_add_internal("boot_kf2k4se",  NEOGEO_KF2K4SE_CART);
	device.option_add_internal("boot_lans2004", NEOGEO_LANS2004_CART);
	device.option_add_internal("boot_samsho5b", NEOGEO_SAMSHO5B_CART);
	device.option_add_internal("boot_mslug3b6", NEOGEO_MSLUG3B6_CART);  // this also uses a CMC42 for gfx
	device.option_add_internal("boot_ms5plus",  NEOGEO_MS5PLUS_CART);   // this also uses a CMC50 for gfx + audiocpu & NEOPCM2 for YM scramble
	device.option_add_internal("boot_kog",      NEOGEO_KOG_CART);

	device.option_add_internal("boot_kf10th",   NEOGEO_KOF10TH_CART);
	device.option_add_internal("boot_sbp",      NEOGEO_SBP_CART);
}