1 // license:BSD-3-Clause
2 // copyright-holders:S. Smith,David Haywood,Fabio Priuli
3
4 #ifndef MAME_BUS_NEOGEO_PROT_PVC_H
5 #define MAME_BUS_NEOGEO_PROT_PVC_H
6
7 #pragma once
8
DECLARE_DEVICE_TYPE(NG_PVC_PROT,pvc_prot_device)9 DECLARE_DEVICE_TYPE(NG_PVC_PROT, pvc_prot_device)
10
11
12 class pvc_prot_device : public device_t
13 {
14 public:
15 // construction/destruction
16 pvc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
17
18 void pvc_write_unpack_color();
19 void pvc_write_pack_color();
20 // void pvc_write_bankswitch(address_space &space);
21 uint32_t get_bank_base();
22 uint16_t protection_r(offs_t offset);
23 void protection_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
24
25 uint16_t m_cart_ram[0x1000];
26
27 void mslug5_decrypt_68k(uint8_t* rom, uint32_t size);
28 void svc_px_decrypt(uint8_t* rom, uint32_t size);
29 void kf2k3pcb_decrypt_68k(uint8_t* rom, uint32_t size);
30 void kof2003_decrypt_68k(uint8_t* rom, uint32_t size);
31 void kof2003h_decrypt_68k(uint8_t* rom, uint32_t size);
32
33 protected:
34 virtual void device_start() override;
35 virtual void device_reset() override;
36 };
37
38 #endif // MAME_BUS_NEOGEO_PROT_PVC_H
39