summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/neogeo/prot_cmc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/neogeo/prot_cmc.cpp')
-rw-r--r--src/devices/bus/neogeo/prot_cmc.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/devices/bus/neogeo/prot_cmc.cpp b/src/devices/bus/neogeo/prot_cmc.cpp
index 77591827f54..ffd86a1934e 100644
--- a/src/devices/bus/neogeo/prot_cmc.cpp
+++ b/src/devices/bus/neogeo/prot_cmc.cpp
@@ -4,6 +4,8 @@
#include "emu.h"
#include "prot_cmc.h"
+#include <algorithm>
+
DEFINE_DEVICE_TYPE(NG_CMC_PROT, cmc_prot_device, "ng_cmc_prot", "Neo Geo CMC42/CMC40 Protection")
@@ -703,11 +705,10 @@ int cmc_prot_device::m1_address_scramble(int address, uint16_t key)
}
-void cmc_prot_device::cmc50_m1_decrypt(uint8_t* romcrypt, uint32_t romcrypt_size, uint8_t* romaudio, uint32_t romaudio_size)
+void cmc_prot_device::cmc50_m1_decrypt(uint8_t* romaudio, uint32_t romaudio_size)
{
- uint8_t* rom = romcrypt;
- size_t rom_size = 0x80000;
- uint8_t* rom2 = romaudio;
+ uint8_t* rom = romaudio;
+ size_t rom_size = romaudio_size;
std::vector<uint8_t> buffer(rom_size);
@@ -718,10 +719,7 @@ void cmc_prot_device::cmc50_m1_decrypt(uint8_t* romcrypt, uint32_t romcrypt_size
for (uint32_t i = 0; i < rom_size; i++)
buffer[i] = rom[m1_address_scramble(i,key)];
- memcpy(rom, &buffer[0], rom_size);
-
- memcpy(rom2,rom, 0x10000);
- memcpy(rom2 + 0x10000, rom, 0x80000);
+ std::copy(buffer.begin(), buffer.end(), &rom[0]);
#if 0
{