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