summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/neogeo/cmc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/neogeo/cmc.h')
-rw-r--r--src/devices/bus/neogeo/cmc.h148
1 files changed, 85 insertions, 63 deletions
diff --git a/src/devices/bus/neogeo/cmc.h b/src/devices/bus/neogeo/cmc.h
index 7ee808ad08c..78d0e29326d 100644
--- a/src/devices/bus/neogeo/cmc.h
+++ b/src/devices/bus/neogeo/cmc.h
@@ -1,200 +1,222 @@
// license:BSD-3-Clause
// copyright-holders:S. Smith,David Haywood,Fabio Priuli
-#ifndef __NEOGEO_CMC_H
-#define __NEOGEO_CMC_H
+#ifndef MAME_BUS_NEOGEO_CMC_H
+#define MAME_BUS_NEOGEO_CMC_H
+
+#pragma once
#include "slot.h"
#include "rom.h"
#include "prot_cmc.h"
-// ======================> neogeo_cmc_cart
+// ======================> neogeo_cmc_cart_device
-class neogeo_cmc_cart : public neogeo_rom_device
+class neogeo_cmc_cart_device : public neogeo_rom_device
{
public:
// construction/destruction
- neogeo_cmc_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source);
- neogeo_cmc_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock);
+ neogeo_cmc_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock);
- // device-level overrides
- virtual void device_start() override;
- virtual void device_reset() override;
virtual machine_config_constructor device_mconfig_additions() const override;
// reading and writing
- virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {}
- virtual int get_fixed_bank_type(void) override { return 0; }
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override { }
+ virtual int get_fixed_bank_type() override { return 0; }
- required_device<cmc_prot_device> m_prot;
-};
+protected:
+ neogeo_cmc_cart_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint16_t clock);
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ required_device<cmc_prot_device> m_prot;
+};
// device type definition
-extern const device_type NEOGEO_CMC_CART;
+DECLARE_DEVICE_TYPE(NEOGEO_CMC_CART, neogeo_cmc_cart_device)
/*************************************************
zupapa
**************************************************/
-class neogeo_cmc_zupapa_cart : public neogeo_cmc_cart
+class neogeo_cmc_zupapa_cart_device : public neogeo_cmc_cart_device
{
public:
- neogeo_cmc_zupapa_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ neogeo_cmc_zupapa_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
- virtual int get_fixed_bank_type(void) override { return 1; }
+ virtual int get_fixed_bank_type() override { return 1; }
};
-extern const device_type NEOGEO_CMC_ZUPAPA_CART;
+
+DECLARE_DEVICE_TYPE(NEOGEO_CMC_ZUPAPA_CART, neogeo_cmc_zupapa_cart_device)
+
/*************************************************
mslug3h
**************************************************/
-class neogeo_cmc_mslug3h_cart : public neogeo_cmc_cart
+class neogeo_cmc_mslug3h_cart_device : public neogeo_cmc_cart_device
{
public:
- neogeo_cmc_mslug3h_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ neogeo_cmc_mslug3h_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
- virtual int get_fixed_bank_type(void) override { return 1; }
+ virtual int get_fixed_bank_type() override { return 1; }
};
-extern const device_type NEOGEO_CMC_MSLUG3H_CART;
+
+DECLARE_DEVICE_TYPE(NEOGEO_CMC_MSLUG3H_CART, neogeo_cmc_mslug3h_cart_device)
/*************************************************
ganryu
**************************************************/
-class neogeo_cmc_ganryu_cart : public neogeo_cmc_cart
+class neogeo_cmc_ganryu_cart_device : public neogeo_cmc_cart_device
{
public:
- neogeo_cmc_ganryu_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ neogeo_cmc_ganryu_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
- virtual int get_fixed_bank_type(void) override { return 1; }
+ virtual int get_fixed_bank_type() override { return 1; }
};
-extern const device_type NEOGEO_CMC_GANRYU_CART;
+
+DECLARE_DEVICE_TYPE(NEOGEO_CMC_GANRYU_CART, neogeo_cmc_ganryu_cart_device)
+
/*************************************************
s1945p
**************************************************/
-class neogeo_cmc_s1945p_cart : public neogeo_cmc_cart
+class neogeo_cmc_s1945p_cart_device : public neogeo_cmc_cart_device
{
public:
- neogeo_cmc_s1945p_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ neogeo_cmc_s1945p_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
- virtual int get_fixed_bank_type(void) override { return 1; }
+ virtual int get_fixed_bank_type() override { return 1; }
};
-extern const device_type NEOGEO_CMC_S1945P_CART;
+
+DECLARE_DEVICE_TYPE(NEOGEO_CMC_S1945P_CART, neogeo_cmc_s1945p_cart_device)
/*************************************************
preisle2
**************************************************/
-class neogeo_cmc_preisle2_cart : public neogeo_cmc_cart
+class neogeo_cmc_preisle2_cart_device : public neogeo_cmc_cart_device
{
public:
- neogeo_cmc_preisle2_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ neogeo_cmc_preisle2_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
- virtual int get_fixed_bank_type(void) override { return 1; }
+ virtual int get_fixed_bank_type() override { return 1; }
};
-extern const device_type NEOGEO_CMC_PREISLE2_CART;
+
+DECLARE_DEVICE_TYPE(NEOGEO_CMC_PREISLE2_CART, neogeo_cmc_preisle2_cart_device)
+
/*************************************************
bangbead
**************************************************/
-class neogeo_cmc_bangbead_cart : public neogeo_cmc_cart
+class neogeo_cmc_bangbead_cart_device : public neogeo_cmc_cart_device
{
public:
- neogeo_cmc_bangbead_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ neogeo_cmc_bangbead_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
- virtual int get_fixed_bank_type(void) override { return 1; }
+ virtual int get_fixed_bank_type() override { return 1; }
};
-extern const device_type NEOGEO_CMC_BANGBEAD_CART;
+
+DECLARE_DEVICE_TYPE(NEOGEO_CMC_BANGBEAD_CART, neogeo_cmc_bangbead_cart_device)
/*************************************************
nitd
**************************************************/
-class neogeo_cmc_nitd_cart : public neogeo_cmc_cart
+class neogeo_cmc_nitd_cart_device : public neogeo_cmc_cart_device
{
public:
- neogeo_cmc_nitd_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ neogeo_cmc_nitd_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
- virtual int get_fixed_bank_type(void) override { return 1; }
+ virtual int get_fixed_bank_type() override { return 1; }
};
-extern const device_type NEOGEO_CMC_NITD_CART;
+
+DECLARE_DEVICE_TYPE(NEOGEO_CMC_NITD_CART, neogeo_cmc_nitd_cart_device)
+
/*************************************************
sengoku3
**************************************************/
-class neogeo_cmc_sengoku3_cart : public neogeo_cmc_cart
+class neogeo_cmc_sengoku3_cart_device : public neogeo_cmc_cart_device
{
public:
- neogeo_cmc_sengoku3_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ neogeo_cmc_sengoku3_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
- virtual int get_fixed_bank_type(void) override { return 1; }
+ virtual int get_fixed_bank_type() override { return 1; }
};
-extern const device_type NEOGEO_CMC_SENGOKU3_CART;
+
+DECLARE_DEVICE_TYPE(NEOGEO_CMC_SENGOKU3_CART, neogeo_cmc_sengoku3_cart_device)
+
/*************************************************
kof99k
**************************************************/
-class neogeo_cmc_kof99k_cart : public neogeo_cmc_cart
+class neogeo_cmc_kof99k_cart_device : public neogeo_cmc_cart_device
{
public:
- neogeo_cmc_kof99k_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ neogeo_cmc_kof99k_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
- virtual int get_fixed_bank_type(void) override { return 1; }
+ virtual int get_fixed_bank_type() override { return 1; }
};
-extern const device_type NEOGEO_CMC_KOF99K_CART;
+
+DECLARE_DEVICE_TYPE(NEOGEO_CMC_KOF99K_CART, neogeo_cmc_kof99k_cart_device)
+
/*************************************************
kof2001
**************************************************/
-class neogeo_cmc_kof2001_cart : public neogeo_cmc_cart
+class neogeo_cmc_kof2001_cart_device : public neogeo_cmc_cart_device
{
public:
- neogeo_cmc_kof2001_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ neogeo_cmc_kof2001_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
- virtual int get_fixed_bank_type(void) override { return 1; }
+ virtual int get_fixed_bank_type() override { return 1; }
};
-extern const device_type NEOGEO_CMC_KOF2001_CART;
+
+DECLARE_DEVICE_TYPE(NEOGEO_CMC_KOF2001_CART, neogeo_cmc_kof2001_cart_device)
+
/*************************************************
kof2000n
**************************************************/
-class neogeo_cmc_kof2000n_cart : public neogeo_cmc_cart
+class neogeo_cmc_kof2000n_cart_device : public neogeo_cmc_cart_device
{
public:
- neogeo_cmc_kof2000n_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ neogeo_cmc_kof2000n_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
- virtual int get_fixed_bank_type(void) override { return 2; }
+ virtual int get_fixed_bank_type() override { return 2; }
};
-extern const device_type NEOGEO_CMC_KOF2000N_CART;
+
+DECLARE_DEVICE_TYPE(NEOGEO_CMC_KOF2000N_CART, neogeo_cmc_kof2000n_cart_device)
/*************************************************
jockeygp
**************************************************/
-class neogeo_cmc_jockeygp_cart : public neogeo_cmc_cart
+class neogeo_cmc_jockeygp_cart_device : public neogeo_cmc_cart_device
{
public:
- neogeo_cmc_jockeygp_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ neogeo_cmc_jockeygp_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
- virtual int get_fixed_bank_type(void) override { return 1; }
+ virtual int get_fixed_bank_type() override { return 1; }
virtual DECLARE_READ16_MEMBER(ram_r) override { return m_ram[offset]; }
virtual DECLARE_WRITE16_MEMBER(ram_w) override { COMBINE_DATA(&m_ram[offset]); }
+protected:
virtual void device_start() override;
virtual void device_reset() override;
@@ -202,6 +224,6 @@ private:
uint16_t m_ram[0x1000];
};
-extern const device_type NEOGEO_CMC_JOCKEYGP_CART;
+DECLARE_DEVICE_TYPE(NEOGEO_CMC_JOCKEYGP_CART, neogeo_cmc_jockeygp_cart_device)
-#endif
+#endif // MAME_BUS_NEOGEO_CMC_H