1 // license:BSD-3-Clause
2 // copyright-holders:S. Smith,David Haywood,Fabio Priuli
3
4 #ifndef MAME_BUS_NEOGEO_PROT_KOF2K3BL_H
5 #define MAME_BUS_NEOGEO_PROT_KOF2K3BL_H
6
7 #pragma once
8
DECLARE_DEVICE_TYPE(NG_KOF2K3BL_PROT,kof2k3bl_prot_device)9 DECLARE_DEVICE_TYPE(NG_KOF2K3BL_PROT, kof2k3bl_prot_device)
10
11
12 class kof2k3bl_prot_device : public device_t
13 {
14 public:
15 // construction/destruction
16 kof2k3bl_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
17
18 uint16_t protection_r(offs_t offset);
19 void kof2003_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
20 void kof2003p_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
21 uint16_t overlay_r();
22 void bl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
23 void pl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
24 void upl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
25 uint32_t get_bank_base() {return m_bank_base; }
26
27 protected:
28 virtual void device_start() override;
29 virtual void device_reset() override;
30
31 private:
32 uint16_t m_overlay;
33 uint32_t m_bank_base;
34 uint16_t m_cartridge_ram[0x1000]; // bootlegs
35 };
36
37 #endif // MAME_BUS_NEOGEO_PROT_KOF2K3BL_H
38