From cf96ab97bd9061b7d6fb6fe1a6ddcffe8e7599c1 Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Sun, 25 Jan 2015 20:34:59 +0100 Subject: [PATCH] core: Add per-game parameters [O. Galibert] Per-game parameters are (tag, value) pairs that follow the same tag structure than everything else. They're added within a ROM section with ROM_PARAMETER(tag, value). You look them up through the device method parameter(tag) which returns the string, or "" if not present. A *lot* of drivers can benefit from that stuff. It should kill most game-name keyed tables, and the alternative approach of bazillon-of-driver-inits. Possible evolutions, if someone wants to do it: - output them in -listxml - push the softlist parameters present in the xml through that - maybe allow to change/set them through the command line --- src/emu/device.c | 17 ++ src/emu/device.h | 1 + src/emu/emu.h | 1 + src/emu/emu.mak | 1 + src/emu/machine.c | 1 + src/emu/machine.h | 2 + src/emu/parameters.c | 27 +++ src/emu/parameters.h | 48 +++++ src/emu/romload.c | 62 +++++++ src/emu/romload.h | 20 +- src/mame/drivers/hikaru.c | 15 +- src/mame/drivers/model2.c | 41 +++- src/mame/drivers/model3.c | 71 ++++++- src/mame/drivers/naomi.c | 289 ++++++++++++++++++----------- src/mame/drivers/stv.c | 18 ++ src/mame/machine/315-5881_crypt.c | 14 +- src/mame/machine/315-5881_crypt.h | 3 - src/mame/machine/315-5881_helper.c | 183 ------------------ src/mame/machine/315-5881_helper.h | 33 ---- src/mame/machine/naomim2.c | 14 -- src/mame/machine/naomim2.h | 11 +- src/mame/machine/stvprot.c | 3 - src/mame/mame.mak | 1 - 23 files changed, 502 insertions(+), 374 deletions(-) create mode 100644 src/emu/parameters.c create mode 100644 src/emu/parameters.h delete mode 100644 src/mame/machine/315-5881_helper.c delete mode 100644 src/mame/machine/315-5881_helper.h diff --git a/src/emu/device.c b/src/emu/device.c index ea43ad04269..25687338338 100644 --- a/src/emu/device.c +++ b/src/emu/device.c @@ -185,6 +185,23 @@ ioport_port *device_t::ioport(const char *tag) const } +//------------------------------------------------- +// ioport - return a pointer to the I/O port +// object for a given port name +//------------------------------------------------- + +astring device_t::parameter(const char *tag) const +{ + // safety first + if (this == NULL) + return NULL; + + // build a fully-qualified name and look it up + astring fullpath; + return machine().parameters().lookup(subtag(fullpath, tag)); +} + + //------------------------------------------------- // static_set_clock - set/change the clock on // a device diff --git a/src/emu/device.h b/src/emu/device.h index 9060081d899..10ada7ded2f 100644 --- a/src/emu/device.h +++ b/src/emu/device.h @@ -130,6 +130,7 @@ public: UINT8 default_bios() const { return m_default_bios; } UINT8 system_bios() const { return m_system_bios; } astring default_bios_tag() const { return m_default_bios_tag; } + astring parameter(const char *tag) const; // interface helpers device_interface *first_interface() const { return m_interface_list; } diff --git a/src/emu/emu.h b/src/emu/emu.h index 56fedce1913..93015100645 100644 --- a/src/emu/emu.h +++ b/src/emu/emu.h @@ -82,6 +82,7 @@ typedef device_t * (*machine_config_constructor)(machine_config &config, device_ // machine and driver configuration #include "mconfig.h" #include "gamedrv.h" +#include "parameters.h" // timers, CPU and scheduling #include "devcpu.h" diff --git a/src/emu/emu.mak b/src/emu/emu.mak index 56fbe7e6cff..24062a093c0 100644 --- a/src/emu/emu.mak +++ b/src/emu/emu.mak @@ -99,6 +99,7 @@ EMUOBJS = \ $(EMUOBJ)/memarray.o \ $(EMUOBJ)/memory.o \ $(EMUOBJ)/network.o \ + $(EMUOBJ)/parameters.o \ $(EMUOBJ)/output.o \ $(EMUOBJ)/render.o \ $(EMUOBJ)/rendfont.o \ diff --git a/src/emu/machine.c b/src/emu/machine.c index d50667f365a..7ef17f8c462 100644 --- a/src/emu/machine.c +++ b/src/emu/machine.c @@ -142,6 +142,7 @@ running_machine::running_machine(const machine_config &_config, machine_manager m_save(*this), m_memory(*this), m_ioport(*this), + m_parameters(*this), m_scheduler(*this) { memset(&m_base_time, 0, sizeof(m_base_time)); diff --git a/src/emu/machine.h b/src/emu/machine.h index fb813938e05..30ca9a633ed 100644 --- a/src/emu/machine.h +++ b/src/emu/machine.h @@ -165,6 +165,7 @@ public: save_manager &save() { return m_save; } memory_manager &memory() { return m_memory; } ioport_manager &ioport() { return m_ioport; } + parameters_manager ¶meters() { return m_parameters; } cheat_manager &cheat() const { assert(m_cheat != NULL); return *m_cheat; } render_manager &render() const { assert(m_render != NULL); return *m_render; } input_manager &input() const { assert(m_input != NULL); return *m_input; } @@ -357,6 +358,7 @@ private: save_manager m_save; // save manager memory_manager m_memory; // memory manager ioport_manager m_ioport; // I/O port manager + parameters_manager m_parameters; // parameters manager device_scheduler m_scheduler; // scheduler object emu_timer *m_autoboot_timer; // autoboot timer }; diff --git a/src/emu/parameters.c b/src/emu/parameters.c new file mode 100644 index 00000000000..86bf9616bef --- /dev/null +++ b/src/emu/parameters.c @@ -0,0 +1,27 @@ +// license:BSD-3-Clause +// copyright-holders:Olivier Galibert, Aaron Giles +/*************************************************************************** + + parameters.c + + Per-game parameters handling. + +***************************************************************************/ + +#include "emu.h" + +parameters_manager::parameters_manager(running_machine &machine) + : m_machine(machine) +{ +} + +astring parameters_manager::lookup(astring tag) const +{ + return m_parameters.find(tag); +} + +void parameters_manager::add(astring tag, astring value) +{ + m_parameters.add(tag, value); +} + diff --git a/src/emu/parameters.h b/src/emu/parameters.h new file mode 100644 index 00000000000..03c41386769 --- /dev/null +++ b/src/emu/parameters.h @@ -0,0 +1,48 @@ +// license:BSD-3-Clause +// copyright-holders:Olivier Galibert,Aaron Giles +/*************************************************************************** + + parameters.h + + Per-game parameters handling. + +***************************************************************************/ + +#pragma once + +#ifndef __EMU_H__ +#error Dont include this file directly; include emu.h instead. +#endif + +#ifndef __PARAMETERS_H__ +#define __PARAMETERS_H__ + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> parameters_manager + +class parameters_manager +{ + DISABLE_COPYING(parameters_manager); + +public: + // construction/destruction + parameters_manager(running_machine &machine); + + // getters + running_machine &machine() const { return m_machine; } + astring lookup(astring tag) const; + + // setters + void add(astring tag, astring value); + +private: + // internal state + running_machine & m_machine; // reference to owning machine + tagmap_t m_parameters; +}; + +#endif // __INPTPORT_H__ */ diff --git a/src/emu/romload.c b/src/emu/romload.c index 279a3755b8f..f7c59bf2a5f 100644 --- a/src/emu/romload.c +++ b/src/emu/romload.c @@ -171,6 +171,8 @@ int set_disk_handle(running_machine &machine, const char *region, const char *fu const rom_entry *rom_first_region(const device_t &device) { const rom_entry *romp = device.rom_region(); + while (romp && ROMENTRY_ISPARAMETER(romp)) + romp++; return (romp != NULL && !ROMENTRY_ISEND(romp)) ? romp : NULL; } @@ -185,6 +187,8 @@ const rom_entry *rom_next_region(const rom_entry *romp) romp++; while (!ROMENTRY_ISREGIONEND(romp)) romp++; + while (ROMENTRY_ISPARAMETER(romp)) + romp++; return ROMENTRY_ISEND(romp) ? NULL : romp; } @@ -217,6 +221,34 @@ const rom_entry *rom_next_file(const rom_entry *romp) } +/*------------------------------------------------- + rom_first_parameter - return pointer to the first + per-game parameter +-------------------------------------------------*/ + +const rom_entry *rom_first_parameter(const device_t &device) +{ + const rom_entry *romp = device.rom_region(); + while (romp && !ROMENTRY_ISEND(romp) && !ROMENTRY_ISPARAMETER(romp)) + romp++; + return (romp != NULL && !ROMENTRY_ISEND(romp)) ? romp : NULL; +} + + +/*------------------------------------------------- + rom_next_parameter - return pointer to the next + per-game parameter +-------------------------------------------------*/ + +const rom_entry *rom_next_parameter(const rom_entry *romp) +{ + romp++; + while (!ROMENTRY_ISREGIONEND(romp) && !ROMENTRY_ISPARAMETER(romp)) + romp++; + return ROMENTRY_ISEND(romp) ? NULL : romp; +} + + /*------------------------------------------------- rom_region_name - return the appropriate name for a rom region @@ -228,6 +260,28 @@ astring &rom_region_name(astring &result, const device_t &device, const rom_entr } +/*------------------------------------------------- + rom_parameter_name - return the appropriate name + for a per-game parameter +-------------------------------------------------*/ + +astring &rom_parameter_name(astring &result, const device_t &device, const rom_entry *romp) +{ + return device.subtag(result, romp->_name); +} + + +/*------------------------------------------------- + rom_parameter_name - return the value for a + per-game parameter +-------------------------------------------------*/ + +astring rom_parameter_value(const rom_entry *romp) +{ + return romp->_hashdata; +} + + /*------------------------------------------------- rom_file_size - return the expected size of a file given the ROM description @@ -1454,6 +1508,14 @@ static void process_region_list(romload_private *romdata) rom_region_name(regiontag, *device, region); region_post_process(romdata, regiontag, ROMREGION_ISINVERTED(region)); } + + /* and finally register all per-game parameters */ + for (device_t *device = deviter.first(); device != NULL; device = deviter.next()) + for (const rom_entry *param = rom_first_parameter(*device); param != NULL; param = rom_next_parameter(param)) + { + rom_parameter_name(regiontag, *device, param); + romdata->machine().parameters().add(regiontag, rom_parameter_value(param)); + } } diff --git a/src/emu/romload.h b/src/emu/romload.h index dbf8f1bce32..290a8ba447b 100644 --- a/src/emu/romload.h +++ b/src/emu/romload.h @@ -39,6 +39,7 @@ enum ROMENTRYTYPE_IGNORE, /* this entry continues loading the previous ROM but throws the data away */ ROMENTRYTYPE_SYSTEM_BIOS, /* this entry specifies a bios */ ROMENTRYTYPE_DEFAULT_BIOS, /* this entry specifies a default bios */ + ROMENTRYTYPE_PARAMETER, /* this entry specifies a per-game parameter */ ROMENTRYTYPE_COUNT }; @@ -152,7 +153,8 @@ struct rom_entry #define ROMENTRY_ISIGNORE(r) (ROMENTRY_GETTYPE(r) == ROMENTRYTYPE_IGNORE) #define ROMENTRY_ISSYSTEM_BIOS(r) (ROMENTRY_GETTYPE(r) == ROMENTRYTYPE_SYSTEM_BIOS) #define ROMENTRY_ISDEFAULT_BIOS(r) (ROMENTRY_GETTYPE(r) == ROMENTRYTYPE_DEFAULT_BIOS) -#define ROMENTRY_ISREGIONEND(r) (ROMENTRY_ISREGION(r) || ROMENTRY_ISEND(r)) +#define ROMENTRY_ISPARAMETER(r) (ROMENTRY_GETTYPE(r) == ROMENTRYTYPE_PARAMETER) +#define ROMENTRY_ISREGIONEND(r) (ROMENTRY_ISREGION(r) || ROMENTRY_ISPARAMETER(r) || ROMENTRY_ISEND(r)) /* ----- per-region macros ----- */ #define ROMREGION_GETTAG(r) ((r)->_name) @@ -243,6 +245,9 @@ struct rom_entry #define ROM_DEFAULT_BIOS(name) { name, NULL, 0, 0, ROMENTRYTYPE_DEFAULT_BIOS }, +/* ----- game parameter macro ----- */ +#define ROM_PARAMETER(tag, value) { tag, value, 0, 0, ROMENTRYTYPE_PARAMETER }, + /* ----- disk loading macros ----- */ #define DISK_REGION(tag) ROM_REGION(1, tag, ROMREGION_DATATYPEDISK) #define DISK_IMAGE(name,idx,hash) ROMX_LOAD(name, idx, 0, hash, DISK_READWRITE) @@ -277,7 +282,7 @@ file_error common_process_file(emu_options &options, const char *location, bool /* ----- ROM iteration ----- */ /* return pointer to the first ROM region within a source */ -const rom_entry *rom_first_region(const device_t &romp); +const rom_entry *rom_first_region(const device_t &device); /* return pointer to the next ROM region within a source */ const rom_entry *rom_next_region(const rom_entry *romp); @@ -294,6 +299,17 @@ UINT32 rom_file_size(const rom_entry *romp); /* return the appropriate name for a rom region */ astring &rom_region_name(astring &result, const device_t &device, const rom_entry *romp); +/* return pointer to the first per-game parameter */ +const rom_entry *rom_first_parameter(const device_t &device); + +/* return pointer to the next per-game parameter */ +const rom_entry *rom_next_parameter(const rom_entry *romp); + +/* return the appropriate name for a per-game parameter */ +astring &rom_parameter_name(astring &result, const device_t &device, const rom_entry *romp); + +/* return the value for a per-game parameter */ +astring rom_parameter_value(const rom_entry *romp); /* ----- disk handling ----- */ diff --git a/src/mame/drivers/hikaru.c b/src/mame/drivers/hikaru.c index ae393ae13c6..8ab674e2d29 100644 --- a/src/mame/drivers/hikaru.c +++ b/src/mame/drivers/hikaru.c @@ -382,7 +382,6 @@ Notes: #include "emu.h" #include "cpu/sh4/sh4.h" #include "machine/naomicrypt.h" -#include "machine/315-5881_helper.h" #define CPU_CLOCK (200000000) /* MD2 MD1 MD0 MD6 MD4 MD3 MD5 MD7 MD8 */ @@ -572,8 +571,8 @@ ROM_START( airtrix ) /* ic65 unpopulated */ /* ic66 unpopulated */ - // 315-5881 security IC key - _315_5881_KEYFILE("airtrix-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 834-14149 2000 317-0294-COM Hikaru + ROM_PARAMETER( ":rom_board:segam2crypt:key", "091b02c7" ) ROM_END @@ -610,8 +609,8 @@ ROM_START( pharrier ) ROM_LOAD32_WORD( "mpr-23560.ic65", 0xe000000, 0x1000000, CRC(24bb7072) SHA1(dad5135c89d292e4a1f96bd0ad28be6a17154be0) ) ROM_LOAD32_WORD( "mpr-23564.ic66", 0xe000002, 0x1000000, CRC(255724b6) SHA1(1b382fad165831de3f2e39352c031146759dfc69) ) - // 315-5881 security IC key - _315_5881_KEYFILE("pharrier-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 834-14144 2001 317-0297-COM Hikaru + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0912c68a" ) ROM_END ROM_START( podrace ) @@ -664,7 +663,8 @@ ROM_START( podrace ) ROM_LOAD32_WORD("mpr-23117.ic68s" , 0xf000002, 0x0800000, CRC(9d4d3529) SHA1(66008445629681ebf2f26b3f181d8524a8576d2f)) // current 315-5881 decryption simulation code can't produce valid output data with any of keys - ROM_REGION( 4, "rom_key", ROMREGION_ERASE00 ) + // 834-14002 2001 317-0277-COM Hikaru + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0903dad5" ) ROM_END ROM_START( braveff ) @@ -708,8 +708,7 @@ ROM_START( braveff ) ROM_LOAD32_WORD( "mpr-22022.ic59s", 0xb000000, 0x800000, CRC(abd3d888) SHA1(9654c3a38feab46b4983a602831fb29cccdd0526) ) ROM_LOAD32_WORD( "mpr-22023.ic60s", 0xb000002, 0x800000, CRC(07f00869) SHA1(92282d09d72d3e65a91128e06bb0d4426bb90be5) ) - // 315-5881 not populated - _315_5881_UNUSED + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0" ) // 315-5881 not populated ROM_END ROM_START( sgnascar ) diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c index 8d4de7dbe33..10eff60e155 100644 --- a/src/mame/drivers/model2.c +++ b/src/mame/drivers/model2.c @@ -2842,6 +2842,9 @@ ROM_START( zeroguna ) /* Zero Gunner (Export), Model 2A */ ROM_LOAD("mpr-20303.32", 0x000000, 0x200000, CRC(c040973f) SHA1(57a496c5dcc1a3931b6e41bf8d41e45d6dac0c31) ) ROM_LOAD("mpr-20304.33", 0x200000, 0x200000, CRC(6decfe83) SHA1(d73adafceff2f1776c93e53bd5677d67f1c2c08f) ) + // 1997 317-5038-COM Model 2 + ROM_PARAMETER( ":315_5881:key", "042c0d13" ) + MODEL2_CPU_BOARD MODEL2A_VID_BOARD ROM_END @@ -2874,6 +2877,9 @@ ROM_START( zerogunaj ) /* Zero Gunner (Japan), Model 2A - Sega game ID# 833-1134 ROM_LOAD("mpr-20303.32", 0x000000, 0x200000, CRC(c040973f) SHA1(57a496c5dcc1a3931b6e41bf8d41e45d6dac0c31) ) ROM_LOAD("mpr-20304.33", 0x200000, 0x200000, CRC(6decfe83) SHA1(d73adafceff2f1776c93e53bd5677d67f1c2c08f) ) + // 1997 317-5038-COM Model 2 + ROM_PARAMETER( ":315_5881:key", "042c0d13" ) + MODEL2_CPU_BOARD MODEL2A_VID_BOARD ROM_END @@ -2905,6 +2911,9 @@ ROM_START( zerogun ) /* Zero Gunner (Export), Model 2B */ ROM_REGION( 0x400000, "scsp", 0 ) // Samples ROM_LOAD("mpr-20303.32", 0x000000, 0x200000, CRC(c040973f) SHA1(57a496c5dcc1a3931b6e41bf8d41e45d6dac0c31) ) ROM_LOAD("mpr-20304.33", 0x200000, 0x200000, CRC(6decfe83) SHA1(d73adafceff2f1776c93e53bd5677d67f1c2c08f) ) + + // 1997 317-5038-COM Model 2 + ROM_PARAMETER( ":315_5881:key", "042c0d13" ) ROM_END ROM_START( zerogunj ) /* Zero Gunner (Japan), Model 2B */ @@ -2934,6 +2943,9 @@ ROM_START( zerogunj ) /* Zero Gunner (Japan), Model 2B */ ROM_REGION( 0x400000, "scsp", 0 ) // Samples ROM_LOAD("mpr-20303.32", 0x000000, 0x200000, CRC(c040973f) SHA1(57a496c5dcc1a3931b6e41bf8d41e45d6dac0c31) ) ROM_LOAD("mpr-20304.33", 0x200000, 0x200000, CRC(6decfe83) SHA1(d73adafceff2f1776c93e53bd5677d67f1c2c08f) ) + + // 1997 317-5038-COM Model 2 + ROM_PARAMETER( ":315_5881:key", "042c0d13" ) ROM_END ROM_START( gunblade ) /* Gunblade NY Revision A, Model 2B, Sega game ID# 833-12562 GUN BLADE, Sega ROM board ID# 834-12563 */ @@ -3669,6 +3681,9 @@ ROM_START( dynamcop ) /* Dynamite Cop (Export), Model 2A, Sega Game ID# 833-1134 ROM_LOAD("mpr-20814.36", 0x400000, 0x200000, CRC(e8ebc74c) SHA1(731ce721bb9e148f3a9f7fbe569522567a681c4e) ) ROM_LOAD("mpr-20815.37", 0x600000, 0x200000, CRC(1b5aaae4) SHA1(32b4bf6c096fdccdd5d8f1ddb6c27d3389a52234) ) + // 1998 317-0236-COM Model 2 + ROM_PARAMETER( ":315_5881:key", "0c2a4a93" ) + MODEL2_CPU_BOARD MODEL2A_VID_BOARD ROM_END @@ -3717,6 +3732,9 @@ ROM_START( dyndeka2 ) /* Dynamite Deka 2 (Japan), Model 2A */ ROM_LOAD("mpr-20814.36", 0x400000, 0x200000, CRC(e8ebc74c) SHA1(731ce721bb9e148f3a9f7fbe569522567a681c4e) ) ROM_LOAD("mpr-20815.37", 0x600000, 0x200000, CRC(1b5aaae4) SHA1(32b4bf6c096fdccdd5d8f1ddb6c27d3389a52234) ) + // 1998 317-0236-COM Model 2 + ROM_PARAMETER( ":315_5881:key", "0c2a4a93" ) + MODEL2_CPU_BOARD MODEL2A_VID_BOARD ROM_END @@ -3764,6 +3782,9 @@ ROM_START( dynamcopb ) /* Dynamite Cop (Export), Model 2B */ ROM_LOAD("mpr-20813.32", 0x200000, 0x200000, CRC(1908679c) SHA1(32913385f09da2e43af0c4a4612b955527bfe759) ) ROM_LOAD("mpr-20814.36", 0x400000, 0x200000, CRC(e8ebc74c) SHA1(731ce721bb9e148f3a9f7fbe569522567a681c4e) ) ROM_LOAD("mpr-20815.37", 0x600000, 0x200000, CRC(1b5aaae4) SHA1(32b4bf6c096fdccdd5d8f1ddb6c27d3389a52234) ) + + // 1998 317-0236-COM Model 2 + ROM_PARAMETER( ":315_5881:key", "0c2a4a93" ) ROM_END ROM_START( dyndeka2b ) /* Dynamite Deka 2 (Japan), Model 2B */ @@ -3809,6 +3830,9 @@ ROM_START( dyndeka2b ) /* Dynamite Deka 2 (Japan), Model 2B */ ROM_LOAD("mpr-20813.32", 0x200000, 0x200000, CRC(1908679c) SHA1(32913385f09da2e43af0c4a4612b955527bfe759) ) ROM_LOAD("mpr-20814.36", 0x400000, 0x200000, CRC(e8ebc74c) SHA1(731ce721bb9e148f3a9f7fbe569522567a681c4e) ) ROM_LOAD("mpr-20815.37", 0x600000, 0x200000, CRC(1b5aaae4) SHA1(32b4bf6c096fdccdd5d8f1ddb6c27d3389a52234) ) + + // 1998 317-0236-COM Model 2 + ROM_PARAMETER( ":315_5881:key", "0c2a4a93" ) ROM_END ROM_START( dynamcopc ) /* Dynamite Cop (USA), Model 2C */ @@ -3854,6 +3878,9 @@ ROM_START( dynamcopc ) /* Dynamite Cop (USA), Model 2C */ ROM_LOAD("mpr-20813.32", 0x200000, 0x200000, CRC(1908679c) SHA1(32913385f09da2e43af0c4a4612b955527bfe759) ) /* Located at position 33 on 2C-CRX rom board */ ROM_LOAD("mpr-20814.36", 0x400000, 0x200000, CRC(e8ebc74c) SHA1(731ce721bb9e148f3a9f7fbe569522567a681c4e) ) /* Located at position 34 on 2C-CRX rom board */ ROM_LOAD("mpr-20815.37", 0x600000, 0x200000, CRC(1b5aaae4) SHA1(32b4bf6c096fdccdd5d8f1ddb6c27d3389a52234) ) /* Located at position 35 on 2C-CRX rom board */ + + // 1998 317-0236-COM Model 2 + ROM_PARAMETER( ":315_5881:key", "0c2a4a93" ) ROM_END ROM_START( schamp ) /* Sonic Championship, Model 2B - Sega ROM board ID# 834-12786 */ @@ -4396,6 +4423,9 @@ ROM_START( pltkidsa ) /* Pilot Kids, Model 2A */ ROM_LOAD("mpr-21279.sd3", 0x0400000, 0x200000, CRC(3a8dcf68) SHA1(312496b45b699051c8b4dd0e5d94e73fe5f3ad8d) ) ROM_LOAD("mpr-21280.sd4", 0x0600000, 0x200000, CRC(aa548124) SHA1(a94adfe16b5c3236746451c181ccd3e1c27432f4) ) + // 1998 317-5044-COM Model 2 + ROM_PARAMETER( ":315_5881:key", "042e2dc1" ) + MODEL2_CPU_BOARD MODEL2A_VID_BOARD ROM_END @@ -4435,6 +4465,9 @@ ROM_START( pltkids ) /* Pilot Kids Revision A, Model 2B */ ROM_LOAD("mpr-21278.sd2", 0x0200000, 0x200000, CRC(27e18e08) SHA1(254c0ad4d6bd572ff0efc3ea80489e73716a31a7) ) ROM_LOAD("mpr-21279.sd3", 0x0400000, 0x200000, CRC(3a8dcf68) SHA1(312496b45b699051c8b4dd0e5d94e73fe5f3ad8d) ) ROM_LOAD("mpr-21280.sd4", 0x0600000, 0x200000, CRC(aa548124) SHA1(a94adfe16b5c3236746451c181ccd3e1c27432f4) ) + + // 1998 317-5044-COM Model 2 + ROM_PARAMETER( ":315_5881:key", "042e2dc1" ) ROM_END ROM_START( indy500 ) /* Defaults to Twin (Stand Alone) Cab version. 2 credits to start - Can be set to Deluxe setting in service mode, Sega Game ID# 833-12361, ROM board ID# 834-12362 */ @@ -5968,15 +6001,13 @@ ROM_START( desert ) /* Desert Tank, Model 2 */ ROM_END DRIVER_INIT_MEMBER(model2_state,genprot) -{ - - INT64 key = get_315_5881_key(machine()); +{ + astring key = parameter(":315_5881:key"); - if (key != -1) + if (key) { m_maincpu->space(AS_PROGRAM).install_ram(0x01d80000, 0x01d8ffff); m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x01d90000, 0x01d9ffff, read32_delegate(FUNC(model2_state::model2_5881prot_r), this), write32_delegate(FUNC(model2_state::model2_5881prot_w), this)); - m_cryptdevice->set_key(key); } else { diff --git a/src/mame/drivers/model3.c b/src/mame/drivers/model3.c index 2b702793727..2c6211ed78c 100644 --- a/src/mame/drivers/model3.c +++ b/src/mame/drivers/model3.c @@ -3437,6 +3437,9 @@ ROM_START( vs298 ) /* Step 2.0, Sega ID# 833-13346, ROM board ID# 834-13347 */ ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0237-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "09234e96" ) ROM_END ROM_START( vs29815 ) /* Step 1.5, ROM board ID# 834-13495 VS2 VER98 STEP 1.5 */ @@ -3587,6 +3590,9 @@ ROM_START( vs2v991 ) /* Step 2.0 */ ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0245-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "09222ac8" ) ROM_END ROM_START( vs299b ) /* Step 2.0 */ @@ -3662,6 +3668,9 @@ ROM_START( vs299b ) /* Step 2.0 */ ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0245-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "09222ac8" ) ROM_END ROM_START( vs299a ) /* Step 2.0 */ @@ -3737,6 +3746,9 @@ ROM_START( vs299a ) /* Step 2.0 */ ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0245-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "09222ac8" ) ROM_END ROM_START( vs299 ) /* Step 2.0 */ @@ -3812,6 +3824,9 @@ ROM_START( vs299 ) /* Step 2.0 */ ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0245-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "09222ac8" ) ROM_END ROM_START( von2 ) /* Step 2.0 */ @@ -3888,6 +3903,9 @@ ROM_START( von2 ) /* Step 2.0 */ ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0234-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "092a0e97" ) ROM_END ROM_START( von254g ) /* Step 2.0, Sega game ID# is 833-13789 */ @@ -3964,6 +3982,9 @@ ROM_START( von254g ) /* Step 2.0, Sega game ID# is 833-13789 */ ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0234-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "092a0e97" ) ROM_END ROM_START( skichamp ) /* Step 2.0 */ @@ -4108,6 +4129,9 @@ ROM_START( swtrilgy ) /* Step 2.1, Sega game ID# is 833-13586, ROM board ID# 8 ROM_REGION( 0x10000, "ffcpu", 0 ) /* force feedback controller prg */ ROM_LOAD( "epr21119.ic8", 0x00000, 0x10000, CRC(65082b14) SHA1(6c3c192dd6ef3780c6202dd63fc6086328928818) ) + + // ???? 317-0241-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "11272a01" ) ROM_END ROM_START( swtrilgya ) /* Step 2.1, Sega game ID# is 833-13586, ROM board ID# 834-13587 STAR WARS TRILOGY, Security board ID# 837-13588-COM */ @@ -4177,6 +4201,9 @@ ROM_START( swtrilgya ) /* Step 2.1, Sega game ID# is 833-13586, ROM board ID# 8 ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0241-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "11272a01" ) ROM_END ROM_START( dirtdvls ) /* Step 2.1, Sega game ID# is 833-13427, ROM board ID# 834-13528 DRT */ @@ -4238,6 +4265,9 @@ ROM_START( dirtdvls ) /* Step 2.1, Sega game ID# is 833-13427, ROM board ID# 8 ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0238-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "09290f17" ) ROM_END ROM_START( dirtdvlsa ) /* Step 2.1 */ @@ -4299,6 +4329,9 @@ ROM_START( dirtdvlsa ) /* Step 2.1 */ ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0238-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "09290f17" ) ROM_END ROM_START( daytona2 ) /* Step 2.1, ROM board ID# 834-13428 DAYTONA USA2, Security board ID# 837-13507-COM */ @@ -4379,6 +4412,9 @@ ROM_START( daytona2 ) /* Step 2.1, ROM board ID# 834-13428 DAYTONA USA2, Secur ROM_REGION( 0x10000, "drivebd", 0 ) /* drive board ROM */ ROM_LOAD( "epr-20985.bin", 0x000000, 0x010000, CRC(b139481d) SHA1(05fca7db7c8b084c53bd157ba3e8296f1a961a99) ) + + // ???? 317-0239-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "09250e16" ) ROM_END ROM_START( dayto2pe ) /* Step 2.1, Sega game ID# is 833-13610 DAYTONA USA2 SP, ROM board ID# 834-13609 DAYTONA USA2 SP, Security board ID# 837-13645-COM */ @@ -4459,6 +4495,9 @@ ROM_START( dayto2pe ) /* Step 2.1, Sega game ID# is 833-13610 DAYTONA USA2 SP, ROM_REGION( 0x10000, "drivebd", 0 ) /* drive board ROM */ ROM_LOAD( "epr-20985.bin", 0x000000, 0x010000, CRC(b139481d) SHA1(05fca7db7c8b084c53bd157ba3e8296f1a961a99) ) + + // ???? 317-5045-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "0" ) // unknown ROM_END ROM_START( srally2 ) /* Step 2.0, Sega game ID# is 833-13373, ROM board ID# 834-13374 SRT TWIN */ @@ -4811,6 +4850,9 @@ ROM_START( fvipers2 ) /* Step 2.0 */ ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0235-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "09260e96" ) ROM_END ROM_START( spikeout ) /* Step 2.1 */ @@ -4888,6 +4930,9 @@ ROM_START( spikeout ) /* Step 2.1 */ ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0240-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "092f2b04" ) ROM_END ROM_START( spikeofe ) /* Step 2.1, Sega game ID# is 833-13746, ROM board ID# 834-13747 SPK F/E, Security board ID# 837-13726-COM */ @@ -4965,6 +5010,9 @@ ROM_START( spikeofe ) /* Step 2.1, Sega game ID# is 833-13746, ROM board ID# 8 ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0247-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "09236fc8" ) ROM_END ROM_START( eca ) /* Step 2.1, ROM board ID# 834-13946-01 ECA */ @@ -5033,6 +5081,9 @@ ROM_START( eca ) /* Step 2.1, ROM board ID# 834-13946-01 ECA */ ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0265-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "0923aa91" ) ROM_END ROM_START( ecax ) /* Step 2.1 */ @@ -5101,6 +5152,9 @@ ROM_START( ecax ) /* Step 2.1 */ ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0265-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "0923aa91" ) ROM_END ROM_START( ecap ) /* Step 2.1 - Proto or Location test - No security dongle */ @@ -5172,6 +5226,9 @@ ROM_START( ecap ) /* Step 2.1 - Proto or Location test - No security dongle */ ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0265-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "0923aa91" ) ROM_END ROM_START( magtruck ) /* Step 2.1, Sega game ID# is 833-13601-01 (Export), ROM board ID# 834-13600-01 RCS EXP (Export), Security board ID# 837-13599-COM */ @@ -5228,6 +5285,9 @@ ROM_START( magtruck ) /* Step 2.1, Sega game ID# is 833-13601-01 (Export), ROM ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0243-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "09266e45" ) ROM_END ROM_START( oceanhun ) /* Step 2.0, Sega game ID# is 833-13571, ROM board ID# 834-13572 THE OCEAN HUNTER, 317-0242-COM security chip (837-13576-COM security board) */ @@ -5296,6 +5356,9 @@ ROM_START( oceanhun ) /* Step 2.0, Sega game ID# is 833-13571, ROM board ID# 8 ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0242-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "092b6a01" ) ROM_END ROM_START( lamachin ) /* Step 2.0, Sega game ID# is 833-13664, ROM board ID# 834-13665 L.A.MACHINEGUNS, 317-0244-COM security chip (837-13666-COM security board) */ @@ -5365,6 +5428,9 @@ ROM_START( lamachin ) /* Step 2.0, Sega game ID# is 833-13664, ROM board ID# 8 ROM_REGION( 0x80000, "scsp2", 0 ) /* second SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 ) + + // ???? 317-0244-COM Model 3 + ROM_PARAMETER( ":315_5881:key", "092a2bc5" ) ROM_END /* Model 3 sound board emulation */ @@ -5666,13 +5732,12 @@ static void interleave_vroms(running_machine &machine) DRIVER_INIT_MEMBER(model3_state, genprot) { - INT64 key = get_315_5881_key(machine()); + astring key = parameter(":315_5881:key"); m_maincpu->space(AS_PROGRAM).install_ram(0xf0180000, 0xf019ffff, 0, 0x0e000000); - if (key != -1) + if (key) { - m_cryptdevice->set_key(key); m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf01a0000, 0xf01a003f, 0, 0x0e000000, read64_delegate(FUNC(model3_state::model3_5881prot_r), this), write64_delegate(FUNC(model3_state::model3_5881prot_w), this) ); } else diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c index d14354c6438..537941d4797 100644 --- a/src/mame/drivers/naomi.c +++ b/src/mame/drivers/naomi.c @@ -1510,7 +1510,6 @@ Sushi Bar #include "includes/dc.h" #include "includes/naomi.h" #include "machine/naomicrypt.h" -#include "machine/315-5881_helper.h" #define CPU_CLOCK (200000000) @@ -2663,7 +2662,7 @@ MACHINE_CONFIG_END */ static MACHINE_CONFIG_DERIVED( naomim2, naomi_base ) - MCFG_NAOMI_M2_BOARD_ADD("rom_board", ":315_5881key", "naomibd_eeprom", ":boardid", WRITE8(dc_state, g1_irq)) + MCFG_NAOMI_M2_BOARD_ADD("rom_board", "naomibd_eeprom", ":boardid", WRITE8(dc_state, g1_irq)) MACHINE_CONFIG_END /* @@ -3106,7 +3105,8 @@ ROM_START( cspike ) ROM_LOAD("mpr-23208.ic11", 0x5800000, 0x0800000, CRC(b9494f4b) SHA1(2f35b25edf5210a82d4b67e639eeae11440d065a) ) ROM_LOAD("mpr-23209.ic12s",0x6000000, 0x0800000, CRC(560188c0) SHA1(77f14c9a031c6e5414ffa854d20c40115361d715) ) - _315_5881_KEYFILE("cspike-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 841-0012 2000 317-5060-COM Naomi + ROM_PARAMETER( "rom_board:segam2crypt:key", "000e2010" ) ROM_END /* @@ -3149,7 +3149,8 @@ ROM_START( capsnk ) ROM_LOAD( "mpr-23509.ic6", 0x5800000, 0x1000000, CRC(281d633d) SHA1(d773be8e95f7bf9212ee1061f3076220d4fce9e0) ) ROM_LOAD( "mpr-23510.ic7", 0x6800000, 0x1000000, CRC(b856fef5) SHA1(0634f86740c438b40286256a0269570d24cb845a) ) - _315_5881_KEYFILE("capsnk-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 841-0011 2000 317-5059-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "00000000" ) ROM_END // ver 000804 @@ -3167,7 +3168,8 @@ ROM_START( capsnka ) ROM_LOAD( "mpr-23509.ic6", 0x5800000, 0x1000000, CRC(281d633d) SHA1(d773be8e95f7bf9212ee1061f3076220d4fce9e0) ) ROM_LOAD( "mpr-23510.ic7", 0x6800000, 0x1000000, CRC(b856fef5) SHA1(0634f86740c438b40286256a0269570d24cb845a) ) - _315_5881_KEYFILE("capsnk-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 841-0011 2000 317-5059-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "00000000" ) ROM_END // ver 000802 @@ -3185,7 +3187,8 @@ ROM_START( capsnkb ) ROM_LOAD( "mpr-23509.ic6", 0x5800000, 0x1000000, CRC(281d633d) SHA1(d773be8e95f7bf9212ee1061f3076220d4fce9e0) ) ROM_LOAD( "mpr-23510.ic7", 0x6800000, 0x1000000, CRC(b856fef5) SHA1(0634f86740c438b40286256a0269570d24cb845a) ) - _315_5881_KEYFILE("capsnk-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 841-0011 2000 317-5059-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "00000000" ) ROM_END /* @@ -3225,7 +3228,8 @@ ROM_START( csmash ) ROM_LOAD("mpr-23426.ic7", 0x3800000, 0x0800000, CRC(7f91b13f) SHA1(2d534f77291ebfedc011bf0e803a1b9243fb477f) ) ROM_LOAD("mpr-23427.ic8", 0x4000000, 0x0800000, CRC(5851d525) SHA1(1cb1073542d75a3bcc0d363ed31d49bcaf1fd494) ) - _315_5881_KEYFILE("csmash-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0044 2000 317-0289-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "08103347" ) ROM_END ROM_START( csmasho ) @@ -3243,7 +3247,8 @@ ROM_START( csmasho ) ROM_LOAD("mpr-23426.ic7", 0x3800000, 0x0800000, CRC(7f91b13f) SHA1(2d534f77291ebfedc011bf0e803a1b9243fb477f) ) ROM_LOAD("mpr-23427.ic8", 0x4000000, 0x0800000, CRC(5851d525) SHA1(1cb1073542d75a3bcc0d363ed31d49bcaf1fd494) ) - _315_5881_KEYFILE("csmasho-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0044 2000 317-0289-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "08103347" ) ROM_END /* @@ -3272,7 +3277,8 @@ ROM_START( deathcox ) ROM_LOAD("mpr-23522.ic9", 0x4800000, 0x0800000, CRC(7ae6716e) SHA1(658b794ae6e3898885524582a207faa1076a65ca) ) ROM_LOAD("mpr-23523.ic10",0x5000000, 0x0800000, CRC(c91efb67) SHA1(3d79870551310da7a641858ffec3840714e9cc22) ) - _315_5881_KEYFILE("deathcox-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 841-0016 2000 317-5066-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "000b64d0" ) ROM_END /* @@ -3337,7 +3343,8 @@ ROM_START( doa2 ) ROM_LOAD("mpr-22119.ic20s",0xa000000, 0x0800000, CRC(d608fa86) SHA1(54c8107cccec8cbb536f13cda5b220b7972190b7) ) ROM_LOAD("mpr-22120.ic21s",0xa800000, 0x0800000, CRC(a30facb4) SHA1(70415ca34095c795297486bce1f956f6a8d4817f) ) - _315_5881_KEYFILE("doa2-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 841-0003 1999 317-5048-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0008ad01" ) // on-cart X76F100 eeprom contents ROM_REGION( 0x84, "naomibd_eeprom", 0 ) @@ -3408,7 +3415,8 @@ ROM_START( doa2m ) ROM_LOAD("mpr-22119.ic20s",0xa000000, 0x0800000, CRC(d608fa86) SHA1(54c8107cccec8cbb536f13cda5b220b7972190b7) ) ROM_LOAD("mpr-22120.ic21s",0xa800000, 0x0800000, CRC(a30facb4) SHA1(70415ca34095c795297486bce1f956f6a8d4817f) ) - _315_5881_KEYFILE("doa2m-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 841-0003 1999 317-5048-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0008ad01" ) // on-cart X76F100 eeprom contents ROM_REGION( 0x84, "naomibd_eeprom", 0 ) @@ -3464,7 +3472,8 @@ ROM_START( derbyoc ) ROM_LOAD("mpr-22097.ic13s", 0x6800000, 0x0800000, CRC(f1dedac5) SHA1(9d4499cbafe80dd0b36be617de7994a96e1e9a01) ) ROM_LOAD("mpr-22098.ic14s", 0x7000000, 0x0800000, CRC(f9824d2e) SHA1(f20f8cc2b1bef9077ede1cb874da8f2a335d39de) ) - _315_5881_KEYFILE("derbyoc-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0016 1999 317-0262-JPN Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "080fee35" ) ROM_END ROM_START( derbyocw ) @@ -3481,7 +3490,7 @@ ROM_START( derbyocw ) ROM_LOAD( "mpr-22337.ic6", 0x5800000, 0x1000000, CRC(87ca3a2f) SHA1(2ffc01597107eb60dfa7aa49d51f203b51a44334) ) ROM_LOAD( "mpr-22338.ic7", 0x6800000, 0x1000000, CRC(4bda7303) SHA1(db27d91ef811d741cfdb5c0196e61be722c2f5bd) ) - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown ROM_END ROM_START( drbyocwc ) @@ -3498,7 +3507,7 @@ ROM_START( drbyocwc ) ROM_LOAD( "mpr-22333.ic6", 0x5800000, 0x1000000, CRC(96f324aa) SHA1(bc41e2097c1841771d786ba9ad1a31df1494a856) ) ROM_LOAD( "mpr-22334.ic7", 0x6800000, 0x1000000, CRC(5389b05a) SHA1(e206e4d82d7b1a59c33043ec0812eb69be08d9b3) ) - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown ROM_END /* @@ -3526,7 +3535,7 @@ ROM_START( derbyoc2 ) ROM_LOAD( "mpr-22304.ic10", 0x9800000, 0x1000000, CRC(46c1fb1f) SHA1(6daca76a75df3501f77e473eb065d48804fcc64a) ) ROM_LOAD( "mpr-22305.ic11", 0xa800000, 0x1000000, CRC(027d0e7b) SHA1(e3c874e60cabb6f9ce686696d9055a0c0d5289ae) ) - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown ROM_END /* @@ -3605,7 +3614,8 @@ ROM_START( dybbnao ) ROM_LOAD("mpr-21573.ic20s", 0xa000000, 0x0800000, CRC(5d822e63) SHA1(8412980b288531c294d5cf9a6394aa0b9503d7df) ) ROM_LOAD("mpr-21574.ic21s", 0xa800000, 0x0800000, CRC(d794a42c) SHA1(a79c7818c6ec993e718494b1d5407eb270a29abe) ) - _315_5881_KEYFILE("dynabbnao-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0001 1998 317-0246-JPN Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "080e6ae1" ) ROM_END /* @@ -3668,7 +3678,8 @@ ROM_START( dybb99 ) ROM_LOAD("mpr-22139.ic18s", 0x9000000, 0x0800000, CRC(92faa2ca) SHA1(4953f0219c3ae62de0a89473cb7b9dd30b33fcfb) ) ROM_LOAD("mpr-22140.ic19s", 0x9800000, 0x0800000, CRC(4cb54893) SHA1(a99b39cc3c82c3cf90f794bb8c8ba60638a6f921) ) - _315_5881_KEYFILE("dyb99-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0019 1999 317-0269-JPN Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0804ae71" ) ROM_END ROM_START( smlg99 ) @@ -3700,7 +3711,8 @@ ROM_START( smlg99 ) ROM_LOAD( "mpr-22057.ic20s", 0xa000000, 0x800000, CRC(a056c109) SHA1(637e80c2d605851265430b0fa771a4ad5233be8a) ) ROM_LOAD( "mpr-22058.ic21s", 0xa800000, 0x800000, CRC(f16edaa0) SHA1(e093f5594df43c592a9acd45002ecc65035c2435) ) - _315_5881_KEYFILE("sml99-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0012 1999 317-0259-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "08048a01" ) ROM_END /* @@ -3741,7 +3753,8 @@ ROM_START( f355 ) ROM_LOAD("mpr-21900.ic20s", 0xa000000, 0x0800000, CRC(81901130) SHA1(1573b5c4360e29ba1a4b4901af49d5399fa1e635) ) ROM_LOAD("mpr-21901.ic21s", 0xa800000, 0x0800000, CRC(266a3eea) SHA1(795ecc5589a0152b9cf1e03e454ed1ea01501942) ) - _315_5881_KEYFILE("f355-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 834-13842 1999 317-0254-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "080e8f84" ) ROM_REGION( 0x10000, "drivebd", 0 ) /* drive board ROM */ ROM_LOAD( "epr-21867.bin", 0x000000, 0x010000, CRC(4f93a2a0) SHA1(875907e7fcfc44850e2c60c12268ac61c742f217) ) @@ -3775,7 +3788,8 @@ ROM_START( f355twin ) ROM_LOAD( "mpr-22846.ic20s", 0xa000000, 0x800000, CRC(d4148f39) SHA1(b6598ce52bcaa42805c581de326c953d27c1b2b4) ) ROM_LOAD( "mpr-22847.ic21s", 0xa800000, 0x800000, CRC(955ad42e) SHA1(e396ca02b5786557434632c4fac56af3a4a9f8ce) ) - _315_5881_KEYFILE("f355twin-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 834-13950 1999 317-0267-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0806efd4" ) ROM_END // There is also a development cart (171-7885A). Content is the same. @@ -3807,7 +3821,8 @@ ROM_START( f355twn2 ) ROM_LOAD( "mpr-23397.ic20s", 0xa000000, 0x800000, CRC(28d2caf6) SHA1(67a3bc19abccf7f211c3aae67e751815857bd564) ) ROM_LOAD( "mpr-23398.ic21s", 0xa800000, 0x800000, CRC(ea4d4d2a) SHA1(3dc9c7164516ae7f3b988c088ab819d8fd40d75e) ) - _315_5881_KEYFILE("f355twn2-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0042 2001 317-0287-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "081666c6" ) ROM_END ROM_START( alpiltdx ) @@ -3828,7 +3843,8 @@ ROM_START( alpiltdx ) ROM_LOAD( "mpr-21737.ic10", 0x5000000, 0x800000, CRC(260aaa98) SHA1(d1082587afe9d79f286df8b107a553ee51c27643) ) ROM_LOAD( "mpr-21738.ic11", 0x5800000, 0x800000, CRC(95a592e8) SHA1(862dce467e8805381bab001df68262f1baf3c498) ) - _315_5881_KEYFILE("alpltdx-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 834-????? 1999 317-0251-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "08070e41" ) // on-cart X76F100 eeprom contents ROM_REGION( 0x84, "naomibd_eeprom", 0 ) @@ -3853,7 +3869,8 @@ ROM_START( alpilota ) ROM_LOAD( "mpr-21737.ic10", 0x5000000, 0x800000, CRC(260aaa98) SHA1(d1082587afe9d79f286df8b107a553ee51c27643) ) ROM_LOAD( "mpr-21738.ic11", 0x5800000, 0x800000, CRC(95a592e8) SHA1(862dce467e8805381bab001df68262f1baf3c498) ) - _315_5881_KEYFILE("alpilota-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0005 1999 317-0251-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "08070e41" ) ROM_END ROM_START( hotd2 ) @@ -3887,7 +3904,7 @@ ROM_START( hotd2 ) ROM_LOAD( "mpr-21404.ic19s", 0x9800000, 0x800000, CRC(6cf6e705) SHA1(68d7e9becefe27b556e0c5d7ba00efd2d1fb71ca) ) ROM_LOAD( "mpr-21405.ic20s", 0xa000000, 0x800000, CRC(495e6265) SHA1(57936367fec0000691641525682fb8aefc4e4f56) ) - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown ROM_END ROM_START( hotd2o ) @@ -3921,7 +3938,7 @@ ROM_START( hotd2o ) ROM_LOAD( "mpr-21404.ic19s", 0x9800000, 0x800000, CRC(6cf6e705) SHA1(68d7e9becefe27b556e0c5d7ba00efd2d1fb71ca) ) ROM_LOAD( "mpr-21405.ic20s", 0xa000000, 0x800000, CRC(495e6265) SHA1(57936367fec0000691641525682fb8aefc4e4f56) ) - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown ROM_END ROM_START( hotd2p ) @@ -3955,7 +3972,7 @@ ROM_START( hotd2p ) ROM_LOAD( "mpr-21404.ic19s", 0x9800000, 0x800000, CRC(6cf6e705) SHA1(68d7e9becefe27b556e0c5d7ba00efd2d1fb71ca) ) ROM_LOAD( "mpr-21405.ic20s", 0xa000000, 0x800000, CRC(495e6265) SHA1(57936367fec0000691641525682fb8aefc4e4f56) ) - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown ROM_END /* @@ -3990,7 +4007,8 @@ ROM_START( ggram2 ) ROM_LOAD("mpr-21830.ic10", 0x5000000, 0x0800000, CRC(e01ceb86) SHA1(dd5703d7712cfc0053bddfff63e78dda372b6ff2) ) ROM_LOAD("mpr-21831.ic11", 0x5800000, 0x0800000, CRC(751848d0) SHA1(9c2267fd3c6f9ea5f2679bb2ca20d511a49b2845) ) - _315_5881_KEYFILE("ggram2-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0007 1999 317-0253-JPN Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "08074a61" ) ROM_END /* @@ -4078,7 +4096,8 @@ ROM_START( tduno ) ROM_REGION( 0x84, "naomibd_eeprom", 0 ) ROM_LOAD( "x76f100.ic37", 0x000000, 0x000084, CRC(c79251d5) SHA1(3e70bbbb6d28bade7eec7e27d716463045656f98) ) - _315_5881_KEYFILE("tduno-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0008 1999 317-0255-JPN Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "08028ea5" ) ROM_END ROM_START( tduno2 ) @@ -4132,7 +4151,7 @@ ROM_START( mushi2k5 ) ROM_LOAD( "mpr-24281.ic6", 0x5800000, 0x1000000, CRC(39133c32) SHA1(09ea8c1a98ba0fac36e18ae14ed5302feaeb89ca) ) ROM_LOAD( "mpr-24282.ic7", 0x6800000, 0x1000000, CRC(9aa4ad5a) SHA1(2d81f99a579477c5db725f71c51f18afc15abce7) ) - _315_5881_UNUSED_OR_UNKNOWN // or M1? + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown // or M1? ROM_END ROM_START( crackndj ) @@ -4152,7 +4171,8 @@ ROM_START( crackndj ) ROM_LOAD( "mpr-23533.ic9", 0x8800000, 0x1000000, CRC(fc909c00) SHA1(9cf22a97ea272c4586f3942aefdb803bd0e6ede7) ) ROM_LOAD( "mpr-23534.ic10", 0x9800000, 0x1000000, CRC(62ed85b6) SHA1(b88336bc6115c92a839981cb0c0d0a67b1f7eda5) ) - _315_5881_KEYFILE("crackndj-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0043 2000 317-0288-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "081c2347" ) ROM_END ROM_START( crakndj2 ) @@ -4185,7 +4205,8 @@ ROM_START( crakndj2 ) ROM_LOAD( "rom19.ic19s", 0x9800000, 0x800000, CRC(31f816ba) SHA1(354f8271eef20eb131f83fb9641002cfcd31c8cd) ) ROM_LOAD( "rom20.ic20s", 0xa000000, 0x800000, CRC(aabcd580) SHA1(9455e218ab381c7ad5adb2884da39ca7948169d5) ) - _315_5881_KEYFILE("crackndj2-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0068 2001 317-0311-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "08428247" ) ROM_END ROM_START( samba2k ) @@ -4206,7 +4227,8 @@ ROM_START( samba2k ) ROM_LOAD( "mpr-23598.ic10", 0x09800000, 0x1000000, CRC(e06ee3dd) SHA1(21985e45e1ab5e3a79dd52492a582324a1a36d56) ) ROM_LOAD( "mpr-23599.ic11", 0x0a800000, 0x1000000, CRC(1fd2e792) SHA1(6f299e527be529f85d0e8b4ce0e7a06ac0d25fe9) ) - _315_5881_KEYFILE("samba2k-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0047 2000 317-0295-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "081702cf" ) ROM_END ROM_START( alienfnt ) @@ -4221,7 +4243,8 @@ ROM_START( alienfnt ) ROM_LOAD( "mpr-23584.ic4", 0x3800000, 0x1000000, CRC(8d444756) SHA1(89c480f9ed1239c8ae565c85fa0fd50324264b20) ) ROM_LOAD( "mpr-23585.ic5", 0x4800000, 0x1000000, CRC(883a6482) SHA1(e3145710df793b7fd67f02707904416210a71978) ) - _315_5881_KEYFILE("alienfnt-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0048 2001 317-0293-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "08174343" ) ROM_END ROM_START( alienfnta ) @@ -4236,7 +4259,8 @@ ROM_START( alienfnta ) ROM_LOAD( "mpr-23584.ic4", 0x3800000, 0x1000000, CRC(8d444756) SHA1(89c480f9ed1239c8ae565c85fa0fd50324264b20) ) ROM_LOAD( "mpr-23585.ic5", 0x4800000, 0x1000000, CRC(883a6482) SHA1(e3145710df793b7fd67f02707904416210a71978) ) - _315_5881_KEYFILE("alienfnt-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0048 2001 317-0293-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "08174343" ) ROM_END /* @@ -4267,7 +4291,8 @@ ROM_START( ggx ) ROM_LOAD("mpr-23354.ic13s",0x6800000, 0x0800000, CRC(cea127f7) SHA1(11f12472ebfc93eb72b764c780e30afd4812dbe9) ) ROM_LOAD("mpr-23355.ic14s",0x7000000, 0x0800000, CRC(e809685f) SHA1(dc052b4eb4fdcfdc22c4807316ce34ee7a0d58a6) ) - _315_5881_KEYFILE("ggx-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 841-0013 2000 317-5063-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "00076110" ) ROM_END /* @@ -4312,7 +4337,8 @@ ROM_START( hmgeo ) ROM_LOAD("mpr-23714.ic10",0x5000000, 0x0800000, CRC(da462c44) SHA1(ca450b6c07f939f96eba7b44c45b4e38abd598aa) ) ROM_LOAD("mpr-23715.ic11",0x5800000, 0x0800000, CRC(c750abbd) SHA1(2a5bedc2b21cd3f991c7145ccfd8c7a9e7f647ae) ) - _315_5881_KEYFILE("hmgeo-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // HMG016007 2001 317-5071-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "00038510" ) ROM_END /* @@ -4350,7 +4376,8 @@ ROM_START( gwing2 ) ROM_LOAD("mpr-22274.ic4", 0x3800000, 0x1000000, CRC(f8daaaf3) SHA1(8854d3f8e3d55715ede33ee918b641e251f752b4) ) ROM_LOAD("mpr-22275.ic5", 0x4800000, 0x1000000, CRC(61aa1521) SHA1(7d9f5790e72a9151d128ac7887e236526fdf72a0) ) - _315_5881_KEYFILE("gwing2-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 841-0014 2000 317-5064-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "000b25d0" ) ROM_END /* @@ -4399,7 +4426,8 @@ ROM_START( suchie3 ) ROM_LOAD("mpr-21992.ic13s",0x6800000, 0x0800000, CRC(599a2fb8) SHA1(2a0007064ad2ee1e1a0fda1d5676df4ff19a9f2f) ) ROM_LOAD("mpr-21993.ic14s",0x7000000, 0x0400000, CRC(fb28cf0a) SHA1(d51b1d4514a93074d1f77bd1bc5995739604cf56) ) - _315_5881_KEYFILE("suchie3-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 841-0002 1999 317-5047-JPN Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "000368e1" ) ROM_END /* @@ -4428,7 +4456,8 @@ ROM_START( shangril ) ROM_LOAD("mpr-22071.ic11", 0x5800000, 0x0800000, CRC(1ab1f1ab) SHA1(bb8fa8d5a681115a82e9598ebe599b106f7aae9d) ) ROM_LOAD("mpr-22072.ic12s",0x6000000, 0x0800000, CRC(cb8d2634) SHA1(03ac8fb3a1acb1f8e32d9325c4da42417752f934) ) - _315_5881_UNUSED_OR_UNKNOWN + // 841-0004 1999 317-5050-JPN Naomi seems not used by game + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") ROM_END /* @@ -4492,7 +4521,8 @@ ROM_START( toyfight ) ROM_LOAD("mpr-22033.ic9", 0x4800000, 0x0800000, CRC(5fe5586e) SHA1(3ff41ae1f81469597684faadd88e62b5e0634352) ) ROM_LOAD("mpr-22034.ic10",0x5000000, 0x0800000, CRC(3aa5ce5e) SHA1(f00a906235e4522d6fc2ac771324114346875314) ) - _315_5881_KEYFILE("toyfight-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0011 1999 317-0257-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0802ca85" ) ROM_END /* Crazy Taxi */ @@ -4516,7 +4546,8 @@ ROM_START( crzytaxi ) ROM_LOAD( "mpr-21682.ic14s", 0x7000000, 0x800000, CRC(54c0290e) SHA1(6e07ab6e95c29a2aabed0ba1a7af0d7d605e0309) ) ROM_LOAD( "mpr-21683.ic15s", 0x7800000, 0x800000, CRC(ac8a27e0) SHA1(8e71d853a102dd6c164d5326e6d157ccfb8c7b36) ) - _315_5881_KEYFILE("crzytaxi-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0002 1999 317-0248-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "080d2f45" ) ROM_END /* Jambo! Safari */ @@ -4535,7 +4566,8 @@ ROM_START( jambo ) ROM_LOAD( "mpr-22824.ic7", 0x3800000, 0x800000, CRC(cc55304a) SHA1(e548d8de83469e5816c55dbbb00afbb894282fd6) ) ROM_LOAD( "mpr-22825.ic8", 0x4000000, 0x800000, CRC(85bada10) SHA1(b6e15d8f1d6bca12ffa4816ed0393c04ca500fba) ) - _315_5881_KEYFILE("jambo-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0013 1999 317-0264-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "080fab95" ) ROM_END /* 18 Wheeler (deluxe) (Rev A) */ @@ -4566,7 +4598,8 @@ ROM_START( 18wheelr ) ROM_LOAD( "mpr-22182.ic19s", 0x9800000, 0x800000, CRC(c5606c42) SHA1(5871104ff1c7acde0493e13b9a4d0abdf8a40728) ) ROM_LOAD( "mpr-22183.ic20s", 0xa000000, 0x800000, CRC(776af308) SHA1(7d29cb4dce75d34c622549fea7e102868d0da60a) ) - _315_5881_KEYFILE("18wheelr-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0023 2000 317-0273-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0807cf54" ) // JVS I/O board 837-13844, code is for a Z80 of unknown type (it's inside the big Sega ASIC) ROM_REGION( 0x20000, "jvsio", ROMREGION_ERASEFF) @@ -4607,7 +4640,8 @@ ROM_START( 18wheels ) ROM_LOAD( "mpr-22182.ic19s", 0x9800000, 0x800000, CRC(c5606c42) SHA1(5871104ff1c7acde0493e13b9a4d0abdf8a40728) ) ROM_LOAD( "mpr-22183.ic20s", 0xa000000, 0x800000, CRC(776af308) SHA1(7d29cb4dce75d34c622549fea7e102868d0da60a) ) - _315_5881_KEYFILE("18wheelr-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0023 2000 317-0273-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0807cf54" ) // JVS I/O board 837-13844, code is for a Z80 of unknown type (it's inside the big Sega ASIC) ROM_REGION( 0x20000, "jvsio", ROMREGION_ERASEFF) @@ -4648,7 +4682,8 @@ ROM_START( 18wheelu ) ROM_LOAD( "mpr-22182.ic19s", 0x9800000, 0x800000, CRC(c5606c42) SHA1(5871104ff1c7acde0493e13b9a4d0abdf8a40728) ) ROM_LOAD( "mpr-22183.ic20s", 0xa000000, 0x800000, CRC(776af308) SHA1(7d29cb4dce75d34c622549fea7e102868d0da60a) ) - _315_5881_KEYFILE("18wheelr-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0023 2000 317-0273-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0807cf54" ) // JVS I/O board 837-13844, code is for a Z80 of unknown type (it's inside the big Sega ASIC) ROM_REGION( 0x20000, "jvsio", ROMREGION_ERASEFF) @@ -4680,7 +4715,8 @@ ROM_START( marstv ) ROM_LOAD( "mpr-22991.ic14s", 0x7000000, 0x800000, CRC(0c20f313) SHA1(ac335d3015ef348c91319ae0e98b79a60e92f452) ) ROM_LOAD( "mpr-22992.ic15s", 0x7800000, 0x800000, CRC(5eb6c4c6) SHA1(5dc1bced7ebd7d7e01f74d03706ec4a96585628d) ) - _315_5881_KEYFILE("marstv-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0025 1999 317-0274-JPN Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "080b8ef5" ) ROM_END /* Sega Strike Fighter */ @@ -4711,7 +4747,8 @@ ROM_START( sstrkfgt ) ROM_LOAD( "mpr-23320.ic19s", 0x9800000, 0x800000, CRC(5ec75a45) SHA1(696e5d14678c794dec67246507bd580f7e5b5043) ) ROM_LOAD( "mpr-23321.ic20s", 0xa000000, 0x800000, CRC(018627d4) SHA1(2519f39ad046d14f602648fed39bc3719185b55e) ) - _315_5881_KEYFILE("sstrkfgt-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0035 2000 317-0281-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "08132303" ) ROM_END // EPR ROM have different number, possible updated/bugfixed re-release or STD/DLX version, difference with original set is unknown, have "Rev.A" label too @@ -4742,7 +4779,8 @@ ROM_START( sstrkfgta ) ROM_LOAD( "mpr-23320.ic19s", 0x9800000, 0x800000, CRC(5ec75a45) SHA1(696e5d14678c794dec67246507bd580f7e5b5043) ) ROM_LOAD( "mpr-23321.ic20s", 0xa000000, 0x800000, CRC(018627d4) SHA1(2519f39ad046d14f602648fed39bc3719185b55e) ) - _315_5881_KEYFILE("sstrkfgt-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0035 2000 317-0281-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "08132303" ) ROM_END @@ -4761,7 +4799,8 @@ ROM_START( sgtetris ) ROM_LOAD( "mpr-22914.ic5", 0x2800000, 0x800000, CRC(77844b60) SHA1(65d71febb8a160d00778ac7b53e082253cad9834) ) ROM_LOAD( "mpr-22915.ic6", 0x3000000, 0x800000, CRC(e48148ac) SHA1(c1273353eeaf9bb6b185f133281d7d04271bc895) ) - _315_5881_KEYFILE("sgtetri-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0018 1999 317-0268-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0808ae51" ) ROM_END /* @@ -4817,7 +4856,8 @@ ROM_START( slasho ) ROM_LOAD("mpr-23339.ic16s",0x8000000, 0x0800000, CRC(fd8c2736) SHA1(34ae1a4e35b4aac6666719fb4fc0959bd64ff3d6) ) ROM_LOAD("mpr-23340.ic17s",0x8800000, 0x0800000, CRC(001604f8) SHA1(615ec027d383d44d4aadb1175be6320e4139d7d1) ) - _315_5881_KEYFILE("slasho-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0041 2000 317-0286-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "081a66ca" ) ROM_END @@ -4874,7 +4914,8 @@ ROM_START( pjustic ) ROM_LOAD( "mpr-23546.ic10", 0x9800000, 0x1000000, CRC(85db2248) SHA1(37845c269a2e65ee6181a8e7500c2e7dd9b2e343) ) ROM_LOAD( "mpr-23547.ic11", 0xa800000, 0x1000000, CRC(18b369c7) SHA1(b61cb3fda8cc685865684f7afc7dad0b29d93ca5) ) - _315_5881_KEYFILE("pjustic-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 841-0015 2000 317-5065-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "000725d0" ) ROM_END /* @@ -4915,7 +4956,8 @@ ROM_START( pstone ) ROM_LOAD("mpr-21595.ic7", 0x3800000, 0x0800000, CRC(7ab218f7) SHA1(c5c022e63f926cce09d49331647cde20e8e42ab3) ) ROM_LOAD("mpr-21596.ic8", 0x4000000, 0x0800000, CRC(f27dbdc5) SHA1(d54717d62897546968de2f049239f68bee49bdd8) ) - _315_5881_KEYFILE("pston-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 841-0001 1999 317-5046-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "000e69c1" ) ROM_END /* @@ -4957,7 +4999,8 @@ ROM_START( pstone2 ) ROM_LOAD("mpr-23125.ic8", 0x4000000, 0x0800000, CRC(b9938bbc) SHA1(d55d7adecb5a5a4a276a5a17c12808085d980fd9) ) ROM_LOAD("mpr-23126.ic9", 0x4800000, 0x0800000, CRC(fbb0325b) SHA1(21b965519d7508d84344641d43e8af2c3ca29ba4) ) - _315_5881_KEYFILE("pstone2-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 841-0008 2000 317-5054-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "000b8dc0" ) ROM_END @@ -5021,7 +5064,8 @@ ROM_START( otrigger ) ROM_LOAD("mpr-22159.ic18s",0x9000000, 0x0800000, CRC(f8b5e99d) SHA1(bb174a6a80967d0ff05c3a7512e4f0f9c921d130) ) ROM_LOAD("mpr-22160.ic19s",0x9800000, 0x0800000, CRC(579eef4e) SHA1(bfcabd57f623647053afcedcabfbc74e5736819f) ) - _315_5881_KEYFILE("outrigger-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0017 1999 317-0266-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "080fea94" ) ROM_END /* @@ -5112,7 +5156,8 @@ ROM_START( samba ) ROM_LOAD("mpr-22964.ic15s",0x7800000, 0x0800000, CRC(f581d5a3) SHA1(8cf769f5b0a48951246bb60e9cf58232bcee7bc8) ) ROM_LOAD("mpr-22965.ic16s",0x8000000, 0x0800000, CRC(8f7bfa8a) SHA1(19f137b1552978d232785c4408805b71835585c6) ) - _315_5881_KEYFILE("samba-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0020 1999 317-0270-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "080a8b5d" ) ROM_END // prototype - only works with US BIOS @@ -5139,7 +5184,8 @@ ROM_START( sambap ) ROM_LOAD("mpr-22964.ic15s",0x7800000, 0x0800000, CRC(f581d5a3) SHA1(8cf769f5b0a48951246bb60e9cf58232bcee7bc8) ) ROM_LOAD("mpr-22965.ic16s",0x8000000, 0x0800000, CRC(8f7bfa8a) SHA1(19f137b1552978d232785c4408805b71835585c6) ) - _315_5881_KEYFILE("samba-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0020 1999 317-0270-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "080a8b5d" ) ROM_END /* @@ -5170,7 +5216,7 @@ ROM_START( smarinef ) ROM_LOAD("mpr-22218.ic11", 0x5800000, 0x0800000, CRC(f9ca31b8) SHA1(ea3d0f38ca1a46c896c06f038a6362ad3c9f90b2) ) ROM_LOAD("mpr-22219.ic12s", 0x6000000, 0x0800000, CRC(b3b45811) SHA1(045e7236b814f848d4c9767618ddcd4344d880ec) ) - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown ROM_END // Shootout Pool @@ -5237,7 +5283,7 @@ ROM_START( oinori ) ROM_LOAD( "mpr-24057.ic4", 0x3800000, 0x1000000, CRC(6dec3518) SHA1(3e65065df22680e2bbf2d3db22da413f347a1abe) ) ROM_LOAD( "mpr-24058.ic5", 0x4800000, 0x1000000, CRC(0eba9049) SHA1(a71ca72aeaf17180cde59d7c7b42c97a1b4259ab) ) - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown ROM_END /* @@ -5281,7 +5327,8 @@ ROM_START( spawn ) ROM_LOAD("mpr-22975.ic9", 0x4800000, 0x0800000, CRC(0d3c70d1) SHA1(22920bc5fd1dda760b5cb17482e9181be899bc08) ) ROM_LOAD("mpr-22976.ic10", 0x5000000, 0x0800000, CRC(092d8063) SHA1(14fafd3f4c4f2b37172453d1c815fb9b8f4814f4) ) - _315_5881_KEYFILE("spawn-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 841-0005 1999 317-5051-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "00078d01" ) ROM_END /* @@ -5322,7 +5369,7 @@ ROM_START( totd ) ROM_LOAD("mpr-23020.ic20s", 0xa000000, 0x0800000, CRC(b5943007) SHA1(d0e95084aec5e05027c21a6b4a3331408853781b) ) //ic21 not populated - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown ROM_END /* @@ -5386,7 +5433,7 @@ ROM_START( virnba ) ROM_LOAD("mpr-22947.ic20s", 0xa000000, 0x0800000, CRC(5e5eb595) SHA1(401d4a11d436988d716bb014b36233f171dc576d) ) ROM_LOAD("mpr-22948.ic21s", 0xa800000, 0x0800000, CRC(1b0de917) SHA1(fd1742ea9bb2f1ce871ee3266171f26634e1c8e7) ) - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown ROM_END ROM_START( virnbao ) @@ -5417,7 +5464,8 @@ ROM_START( virnbao ) ROM_LOAD("mpr-22947.ic20s", 0xa000000, 0x0800000, CRC(5e5eb595) SHA1(401d4a11d436988d716bb014b36233f171dc576d) ) ROM_LOAD("mpr-22948.ic21s", 0xa800000, 0x0800000, CRC(1b0de917) SHA1(fd1742ea9bb2f1ce871ee3266171f26634e1c8e7) ) - _315_5881_KEYFILE("virnbao-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0021 2000 317-0271-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "08068b58" ) ROM_END ROM_START( virnbap ) @@ -5448,7 +5496,8 @@ ROM_START( virnbap ) ROM_LOAD("mpr-22947.ic20s", 0xa000000, 0x0800000, CRC(5e5eb595) SHA1(401d4a11d436988d716bb014b36233f171dc576d) ) ROM_LOAD("mpr-22948.ic21s", 0xa800000, 0x0800000, CRC(1b0de917) SHA1(fd1742ea9bb2f1ce871ee3266171f26634e1c8e7) ) - _315_5881_KEYFILE("virnbao-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0021 2000 317-0271-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "08068b58" ) ROM_END /* @@ -5500,7 +5549,8 @@ ROM_START( vs2_2k ) ROM_LOAD("mpr-21922.ic14s",0x7000000, 0x0800000, CRC(a1901e1e) SHA1(2281f91ac696cc14886bcdf4b0685ce2f5bb8117) ) ROM_LOAD("mpr-21923.ic15s",0x7800000, 0x0400000, CRC(d127d9a5) SHA1(78c95357344ea15469b84fa8b1332e76521892cd) ) - _315_5881_KEYFILE("vs2_2k-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0010 1999 317-0258-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "08088b08" ) ROM_END /* @@ -5544,7 +5594,8 @@ ROM_START( vtennis ) ROM_LOAD("mpr-22925.ic10",0x5000000, 0x0800000, CRC(81057e42) SHA1(d41137ae28c64dbdb50150db8cf25851bc0709c4) ) ROM_LOAD("mpr-22926.ic11",0x5800000, 0x0800000, CRC(57eec89d) SHA1(dd8f9a9155e51ee5260f559449fb0ea245077952) ) - _315_5881_KEYFILE("vtennis-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0015 1999 317-0263-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0803eb15" ) ROM_END /* @@ -5569,7 +5620,8 @@ ROM_START( wwfroyal ) ROM_LOAD( "mpr-22268.ic7", 0x6800000, 0x1000000, CRC(536f5eea) SHA1(f1de8624f82595adf75693b604fb026bf3f778ee) ) ROM_LOAD( "mpr-22269.ic8", 0x7800000, 0x1000000, CRC(6c0cf740) SHA1(da10b33a6e54afbe1d7e52801216e7119b0b33b1) ) - _315_5881_KEYFILE("wwfroyal-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0040 2000 317-0285-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "081627c3" ) ROM_END ROM_START( mushik2e ) @@ -5885,7 +5937,8 @@ ROM_START( zombrvn ) ROM_LOAD("mpr-21725.ic18s",0x9000000, 0x0800000, CRC(2202077b) SHA1(0893a85379f994277083c0bc5b178dd34508f816) ) ROM_LOAD("mpr-21726.ic19s",0x9800000, 0x0800000, CRC(429bf290) SHA1(6733e1bcf100e73ab43273f6feedc187fcaa55d4) ) - _315_5881_KEYFILE("zombrvn-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0003 1999 317-0249-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "08012b41" ) ROM_END ROM_START( gunsur2 ) @@ -5909,7 +5962,8 @@ ROM_START( gunsur2 ) ROM_LOAD( "bhf1ma14.6m", 0xe000000, 0x1000000, CRC(d06c9bd7) SHA1(54668a2fd31059976890da92709c18f308634887) ) ROM_LOAD( "bhf1ma15.6l", 0xf000000, 0x1000000, CRC(db3c396b) SHA1(da0e125d627ce890906ca100081ab0685e11c0ef) ) - _315_5881_KEYFILE("bhf1-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 25709801 2001 317-5075-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "000680d0" ) ROM_END ROM_START( gunsur2e ) @@ -5933,7 +5987,8 @@ ROM_START( gunsur2e ) ROM_LOAD( "bhf1ma14.6m", 0xe000000, 0x1000000, CRC(d06c9bd7) SHA1(54668a2fd31059976890da92709c18f308634887) ) ROM_LOAD( "bhf1ma15.6l", 0xf000000, 0x1000000, CRC(db3c396b) SHA1(da0e125d627ce890906ca100081ab0685e11c0ef) ) - _315_5881_KEYFILE("bhf1-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 25709801 2001 317-5075-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "000680d0" ) ROM_END ROM_START( wldkicks ) @@ -5954,7 +6009,8 @@ ROM_START( wldkicks ) ROM_LOAD( "wk1ma9.4d", 0x9000000, 0x1000000, CRC(29635a54) SHA1(a3109d0f8f271e2183316846df2a6a819f6a9b20) ) ROM_LOAD( "wk1ma10.4c", 0xa000000, 0x1000000, CRC(e96f312c) SHA1(0a92640277111aef5c6e9dab4218a8ae2196ce61) ) - _315_5881_KEYFILE("wldkicks-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 25209801 2000 317-5040-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "052e2901" ) ROM_END ROM_START( wldkicksa ) @@ -5975,7 +6031,8 @@ ROM_START( wldkicksa ) ROM_LOAD( "wk1ma9.4d", 0x9000000, 0x1000000, CRC(29635a54) SHA1(a3109d0f8f271e2183316846df2a6a819f6a9b20) ) ROM_LOAD( "wk1ma10.4c", 0xa000000, 0x1000000, CRC(e96f312c) SHA1(0a92640277111aef5c6e9dab4218a8ae2196ce61) ) - _315_5881_KEYFILE("wldkicks-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 25209801 2000 317-5040-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "052e2901" ) ROM_END ROM_START( wldkicksb ) @@ -5996,7 +6053,8 @@ ROM_START( wldkicksb ) ROM_LOAD( "wk1ma9.4d", 0x9000000, 0x1000000, CRC(29635a54) SHA1(a3109d0f8f271e2183316846df2a6a819f6a9b20) ) ROM_LOAD( "wk1ma10.4c", 0xa000000, 0x1000000, CRC(e96f312c) SHA1(0a92640277111aef5c6e9dab4218a8ae2196ce61) ) - _315_5881_KEYFILE("wldkicks-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 25209801 2000 317-5040-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "052e2901" ) ROM_END ROM_START( toukon4 ) @@ -6022,7 +6080,8 @@ ROM_START( toukon4 ) ROM_LOAD( "trf1ma14.6m", 0xe000000, 0x1000000, CRC(87cb31a0) SHA1(27aef9ac571a0b5e3a76e4ee22f5bc5d0ae962f2) ) ROM_LOAD( "trf1ma15.6l", 0xf000000, 0x1000000, CRC(42d318c5) SHA1(f9fe82ffbfc51fcb52333f94c55a7092e7124fb4) ) - _315_5881_KEYFILE("tr4a-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 25349801 2000 317-5040-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "052e2901" ) ROM_END ROM_START( ninjaslt ) @@ -6043,7 +6102,8 @@ ROM_START( ninjaslt ) ROM_LOAD( "nja1ma9.4c", 0x9000000, 0x1000000, CRC(8abed815) SHA1(5e1b208d23a17ba743d0507d963be42e7828755f) ) ROM_LOAD( "nja1ma10.4b", 0xa000000, 0x1000000, CRC(f14d2073) SHA1(b4a8cd585794be149b616119df3f75c0fb30e2f0) ) - _315_5881_KEYFILE("nja3-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 25469801 2000 317-5068-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "000ca510" ) ROM_REGION( 0x20000, "jyu_io", 0 ) // H8/3334-based I/O board ROM, eventually should be separated out ROM_LOAD( "jyu1_prg0a.ic3", 0x000000, 0x020000, CRC(aec4dbc1) SHA1(bddd4f345baf7f594998a39c09da18b3834f0ac2) ) @@ -6067,7 +6127,8 @@ ROM_START( ninjaslt1 ) ROM_LOAD( "nja1ma9.4c", 0x9000000, 0x1000000, CRC(8abed815) SHA1(5e1b208d23a17ba743d0507d963be42e7828755f) ) ROM_LOAD( "nja1ma10.4b", 0xa000000, 0x1000000, CRC(f14d2073) SHA1(b4a8cd585794be149b616119df3f75c0fb30e2f0) ) - _315_5881_KEYFILE("nja3-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 25469801 2000 317-5068-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "000ca510" ) ROM_REGION( 0x20000, "jyu_io", 0 ) // H8/3334-based I/O board ROM, eventually should be separated out ROM_LOAD( "jyu1_prg0a.ic3", 0x000000, 0x020000, CRC(aec4dbc1) SHA1(bddd4f345baf7f594998a39c09da18b3834f0ac2) ) @@ -6091,7 +6152,8 @@ ROM_START( ninjaslt2 ) ROM_LOAD( "nja1ma9.4c", 0x9000000, 0x1000000, CRC(8abed815) SHA1(5e1b208d23a17ba743d0507d963be42e7828755f) ) ROM_LOAD( "nja1ma10.4b", 0xa000000, 0x1000000, CRC(f14d2073) SHA1(b4a8cd585794be149b616119df3f75c0fb30e2f0) ) - _315_5881_KEYFILE("nja3-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 25469801 2000 317-5068-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "000ca510" ) ROM_REGION( 0x20000, "jyu_io", 0 ) // H8/3334-based I/O board ROM, eventually should be separated out ROM_LOAD( "jyu1_prg0a.ic3", 0x000000, 0x020000, CRC(aec4dbc1) SHA1(bddd4f345baf7f594998a39c09da18b3834f0ac2) ) @@ -6115,7 +6177,8 @@ ROM_START( ninjaslt4 ) ROM_LOAD( "nja1ma9.4c", 0x9000000, 0x1000000, CRC(8abed815) SHA1(5e1b208d23a17ba743d0507d963be42e7828755f) ) ROM_LOAD( "nja1ma10.4b", 0xa000000, 0x1000000, CRC(f14d2073) SHA1(b4a8cd585794be149b616119df3f75c0fb30e2f0) ) - _315_5881_KEYFILE("nja3-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 25469801 2000 317-5068-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "000ca510" ) ROM_REGION( 0x20000, "jyu_io", 0 ) // H8/3334-based I/O board ROM, eventually should be separated out ROM_LOAD( "jyu1_prg0a.ic3", 0x000000, 0x020000, CRC(aec4dbc1) SHA1(bddd4f345baf7f594998a39c09da18b3834f0ac2) ) @@ -6136,7 +6199,8 @@ ROM_START( mazan ) ROM_LOAD( "maz1ma7.4e", 0x7000000, 0x1000000, CRC(6103ad9c) SHA1(e4abbb5867cae6a9bf9067ab3a091ef7b18fa0cd) ) ROM_LOAD( "maz1ma8.4d", 0x8000000, 0x1000000, CRC(d46c9f40) SHA1(45eec7fa3d4261f12438e841254fa75d572331b3) ) - _315_5881_KEYFILE("maz1-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 25869812 2002 317-0266-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "080fea94" ) ROM_END ROM_START( mazana ) @@ -6154,7 +6218,8 @@ ROM_START( mazana ) ROM_LOAD( "maz1ma7.4e", 0x7000000, 0x1000000, CRC(6103ad9c) SHA1(e4abbb5867cae6a9bf9067ab3a091ef7b18fa0cd) ) ROM_LOAD( "maz1ma8.4d", 0x8000000, 0x1000000, CRC(d46c9f40) SHA1(45eec7fa3d4261f12438e841254fa75d572331b3) ) - _315_5881_KEYFILE("maz1-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 25869812 2002 317-0266-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "080fea94" ) ROM_END ROM_START( vtenis2c ) @@ -6229,7 +6294,7 @@ ROM_START( wrungp ) ROM_LOAD( "mpr-23723.ic5", 0x4800000, 0x1000000, CRC(651610eb) SHA1(4dfe4f876a5440bd1034f41a4d76e1d6bd3e0e32) ) ROM_LOAD( "mpr-23724.ic6", 0x5800000, 0x1000000, CRC(c633c45a) SHA1(23b45140f965428d33e2424b0574715c0b952d05) ) - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown ROM_END ROM_START( gundmct ) @@ -6249,7 +6314,8 @@ ROM_START( gundmct ) ROM_LOAD( "mpr-23636.ic9", 0x8800000, 0x1000000, CRC(57199e9f) SHA1(73a6f20ee7b3133ed4c6286e477e2ff9757106bd) ) ROM_LOAD( "mpr-23637.ic10", 0x9800000, 0x1000000, CRC(737b5dff) SHA1(0a405b711ffb096a3e6d52ececed73a5f93ebf02) ) - _315_5881_KEYFILE("gundmct-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 841-0017 2001 317-5070-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "000e8010" ) ROM_END ROM_START( puyoda ) @@ -6279,7 +6345,8 @@ ROM_START( puyoda ) ROM_LOAD( "mpr-22204.ic19s", 0x9800000, 0x800000, CRC(2c5e5140) SHA1(7887fc19459dc85ca78256e0c50c762eea001e51) ) ROM_LOAD( "mpr-22205.ic20s", 0xa000000, 0x800000, CRC(7d523ae5) SHA1(7495082b7e83b6ee8f47660baba4c604d8ba2ff1) ) - _315_5881_KEYFILE("puyoda-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 841-0006 1999 317-5052-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "000acd40" ) ROM_END ROM_START( zerogu2 ) @@ -6294,7 +6361,8 @@ ROM_START( zerogu2 ) ROM_LOAD( "mpr-23687.ic4", 0x3800000, 0x1000000, CRC(e125439a) SHA1(07e7339f3f53aeb0ebddf7a8ac3eb6d8f3fe9de6) ) ROM_LOAD( "mpr-23688.ic5", 0x4800000, 0x1000000, CRC(38412edf) SHA1(9cae06cf46e134531f47e64deedace449664f69a) ) - _315_5881_KEYFILE("zerogu2-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 841-0020 2001 317-5073-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0007c010" ) ROM_END ROM_START( inunoos ) @@ -6321,7 +6389,8 @@ ROM_START( inunoos ) ROM_LOAD( "ic15s.bin", 0x7800000, 0x800000, CRC(b85e13ef) SHA1(974f6b8f24efe79d72ea9d7a2cfccf479704243d) ) ROM_LOAD( "ic16s.bin", 0x8000000, 0x800000, CRC(b8493dbe) SHA1(b641417e1bda49341e7ff86340072d74e3330665) ) - _315_5881_KEYFILE("inuoos-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0073 2001 317-0316-JPN Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "094bc3e3" ) ROM_END ROM_START( ringout ) @@ -6341,7 +6410,8 @@ ROM_START( ringout ) ROM_LOAD( "mpr-21769.ic9", 0x4800000, 0x800000, CRC(6d22d29d) SHA1(382dcd62065437b34fe101144b1c047eb261f047) ) ROM_LOAD( "mpr-21770.ic10", 0x5000000, 0x800000, CRC(c5308e61) SHA1(e51f8026351d5ffbda2a5bed39aeef543366febf) ) - _315_5881_KEYFILE("ringout-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0004 1999 317-0250-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "080b1e40" ) ROM_END ROM_START( vonot ) @@ -6364,7 +6434,8 @@ ROM_START( vonot ) ROM_LOAD( "mpr-23193.ic12s", 0x6000000, 0x800000, CRC(c86a5b9b) SHA1(4b8dda85003289e1464e12c3abf449bb8df20e3a) ) ROM_LOAD( "mpr-23194.ic13s", 0x6800000, 0x800000, CRC(5adea0bd) SHA1(f8614ba83d5f61556c3db1a1796a02ed2c51ce2a) ) - _315_5881_KEYFILE("vonot-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0028 2000 317-0279-COM Naomi + ROM_PARAMETER( ":rom_board:segam2crypt:key", "08010715" ) ROM_END ROM_START( derbyo2k ) @@ -6390,7 +6461,7 @@ ROM_START( derbyo2k ) ROM_LOAD( "mpr-22237.ic15s", 0x7800000, 0x800000, CRC(718dd6bf) SHA1(6b71bb6970b582865f53d26e9579587fce86439e) ) ROM_LOAD( "mpr-22238.ic16s", 0x8000000, 0x800000, CRC(fb3e55da) SHA1(d547ee5b47e6e6fec9e447460300c828fbff8f2e) ) - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown ROM_END ROM_START( starhrse ) @@ -6404,7 +6475,7 @@ ROM_START( starhrse ) ROM_LOAD( "mpr-23233.ic3", 0x2800000, 0x1000000, CRC(d6451cab) SHA1(6508e27d0370b19df01150da7baf4875479c166a) ) ROM_LOAD( "mpr-23234.ic4", 0x3800000, 0x1000000, CRC(44044c14) SHA1(4934cb8d5f9b4085ffb5ddc711343f488aae4c4d) ) - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown // this dump can't be used as main_eeprom, because that's exactly 0x80 bytes ROM_REGION(0x84, "some_eeprom", 0) @@ -6437,7 +6508,7 @@ ROM_START( starhrct ) ROM_LOAD( "ic17s.bin", 0x8800000, 0x800000, CRC(b4c40606) SHA1(4f187dfe44bd89c90b6fa4b90f16222bc0a74d22) ) // .18s chip is not present but is tested for an FF fill (pull-up resistors on the PCB's data bus presumably accomplish this) - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown // this dump can't be used as main_eeprom, because that's exactly 0x80 bytes ROM_REGION(0x84, "some_eeprom", 0) @@ -6458,7 +6529,7 @@ ROM_START( starhrcl ) ROM_LOAD( "mpr-23280.ic6", 0x5800000, 0x1000000, CRC(b1c8daa2) SHA1(a05fb374156ea013e35502abccc92f5117c39daa) ) ROM_LOAD( "mpr-23281.ic7", 0x6800000, 0x0800000, CRC(c0378369) SHA1(c728a181eddb01b9f8574669d4550baed559a5a4) ) - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown // this dump can't be used as main_eeprom, because that's exactly 0x80 bytes ROM_REGION(0x84, "some_eeprom", 0) @@ -6480,7 +6551,7 @@ ROM_START( starhrsp ) ROM_LOAD( "mpr-24128.ic6", 0x5800000, 0x1000000, CRC(bfdbb853) SHA1(bfbeb6ab634201af68d1427dea4f50163673fc2c) ) ROM_LOAD( "mpr-24129.ic7", 0x6800000, 0x1000000, CRC(c3f0f06a) SHA1(152324f2dbbde5560ae3adb1f9394a273fedbe9c) ) - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown ROM_END /* prototype cartridges for games released on GD-ROM */ @@ -7727,7 +7798,8 @@ ROM_START( vstrik3c ) ROM_LOAD( "mpr-23661.ic10", 0x9800000, 0x1000000, CRC(7d44dc74) SHA1(cfd6253eab3c1a039629b4873946c9dbc7ed6872) ) ROM_LOAD( "mpr-23662.ic11", 0xa800000, 0x0800000, CRC(d6ef7d68) SHA1(4ee396af6c5caf4c5af6e9ad0e03a7ac2c5039f4) ) - _315_5881_KEYFILE("vstrik2c-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0061 2001 317-0310-COM Naomi 2 + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0cee834a" ) ROM_END ROM_START( vstrik3cb ) @@ -7748,7 +7820,8 @@ ROM_START( vstrik3cb ) ROM_LOAD( "mpr-23661.ic10", 0x9800000, 0x1000000, CRC(7d44dc74) SHA1(cfd6253eab3c1a039629b4873946c9dbc7ed6872) ) ROM_LOAD( "mpr-23662.ic11", 0xa800000, 0x0800000, CRC(d6ef7d68) SHA1(4ee396af6c5caf4c5af6e9ad0e03a7ac2c5039f4) ) - _315_5881_KEYFILE("vstrik3c-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0061 2001 317-0310-COM Naomi 2 + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0cee834a" ) ROM_END ROM_START( wldrider ) @@ -7768,7 +7841,8 @@ ROM_START( wldrider ) ROM_LOAD( "mpr-23619.ic9", 0x8800000, 0x1000000, CRC(a5f4f6af) SHA1(bb89d3f0f5bbaf7c40fa43680c7e51ef93f7ed26) ) ROM_LOAD( "mpr-23620.ic10", 0x9800000, 0x1000000, CRC(67aa15a9) SHA1(42c24cbf7069c27430a71509a872cd1c4224aaeb) ) - _315_5881_KEYFILE("wldridr-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0046 2001 317-0301-COM Naomi 2 + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0ce7a703" ) ROM_END ROM_START( vf4cart ) @@ -7789,7 +7863,8 @@ ROM_START( vf4cart ) ROM_LOAD( "mpr-23783.ic10", 0x9800000, 0x1000000, CRC(c8d4f6f9) SHA1(9e9df605c050b3780d7df34bd5041d30bc084d2d) ) ROM_LOAD( "mpr-23784.ic11", 0xa800000, 0x1000000, CRC(f74f2fee) SHA1(84b07baa6d116727e66ef27e24ba6484c3393891) ) - _315_5881_KEYFILE("vf4cart-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0080 2002 317-0324-COM Naomi 2 + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0eef2f96" ) ROM_END // There is also a development cart (171-7885A) with 20x 64Mb FlashROMs instead of 10x 128Mb MaskROMs. Content is the same. @@ -7810,7 +7885,7 @@ ROM_START( kingrt66 ) ROM_LOAD("mpr-23816.ic9", 0x08800000, 0x01000000, CRC(bbaf0765) SHA1(3b79a4eff504b2156bea8b86c6cdd8e41e7bf268) ) ROM_LOAD("mpr-23817.ic10", 0x09800000, 0x01000000, CRC(e179cfb6) SHA1(1120036238439f8ac1041150396e4b60e4a243bc) ) - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown ROM_END ROM_START( soulsurf ) @@ -7842,7 +7917,7 @@ ROM_START( soulsurf ) ROM_LOAD( "ic20s.bin", 0xa000000, 0x800000, CRC(c90b960d) SHA1(66e9f09d1f7f6a991371574a2e095c0e22fb7031) ) ROM_LOAD( "ic21s.bin", 0xa800000, 0x800000, CRC(1477c064) SHA1(87fb8d8a91d6bed70b246a8df88fa77fbf3db443) ) - _315_5881_UNUSED_OR_UNKNOWN + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0") // Unused or unknown ROM_END ROM_START( vf4evoct ) @@ -7874,7 +7949,7 @@ ROM_START( vf4evoct ) ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 ) - _315_5881_KEYFILE("vf4evoct-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + _NAOMI_M1_KEYFILE( "vf4evoct-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111) ) ROM_END ROM_START( hopper ) @@ -7910,7 +7985,8 @@ ROM_START( clubkrte ) ROM_LOAD( "mpr-23702.ic10", 0x9800000, 0x1000000, CRC(e302b582) SHA1(787192ed9f9a08541eecc3128855485cad802a42) ) ROM_LOAD( "mpr-23703.ic11", 0xa800000, 0x1000000, CRC(702b8b4a) SHA1(3a8dfde458f341e7db20664382b9fce2b6e5d462) ) - _315_5881_KEYFILE("clubkrte-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0062 2001 317-0313-COM Naomi 2 + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0ce7d742" ) ROM_END ROM_START( clubkrtd ) @@ -7931,7 +8007,8 @@ ROM_START( clubkrtd ) ROM_LOAD( "mpr-23702.ic10", 0x9800000, 0x1000000, CRC(e302b582) SHA1(787192ed9f9a08541eecc3128855485cad802a42) ) ROM_LOAD( "mpr-23703.ic11", 0xa800000, 0x1000000, CRC(702b8b4a) SHA1(3a8dfde458f341e7db20664382b9fce2b6e5d462) ) - _315_5881_KEYFILE("clubkrte-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0062 2001 317-0313-COM Naomi 2 + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0ce7d742" ) ROM_END ROM_START( clubkrtc ) @@ -7952,7 +8029,8 @@ ROM_START( clubkrtc ) ROM_LOAD( "mpr-23702.ic10", 0x9800000, 0x1000000, CRC(e302b582) SHA1(787192ed9f9a08541eecc3128855485cad802a42) ) ROM_LOAD( "mpr-23703.ic11", 0xa800000, 0x1000000, CRC(702b8b4a) SHA1(3a8dfde458f341e7db20664382b9fce2b6e5d462) ) - _315_5881_KEYFILE("clubkrte-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0062 2001 317-0313-COM Naomi 2 + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0ce7d742" ) ROM_END ROM_START( clubkprz ) @@ -7984,7 +8062,8 @@ ROM_START( clubkprz ) ROM_REGION(0x84, "some_eeprom", 0) ROM_LOAD( "at25010.ic3s", 0x000000, 0x000084, CRC(0142d8be) SHA1(5922b6c47b12b19e1fa7bbe9aae391905038a7ff) ) - _315_5881_KEYFILE("clubkprz-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0062 2001 317-0313-COM Naomi 2 + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0ce7d742" ) ROM_END ROM_START( clubkpzb ) @@ -8012,7 +8091,8 @@ ROM_START( clubkpzb ) ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 ) - _315_5881_KEYFILE("clubkprz-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0062 2001 317-0313-COM Naomi 2 + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0ce7d742" ) // this dump can't be used as main_eeprom, because that's exactly 0x80 bytes ROM_REGION(0x84, "some_eeprom", 0) @@ -8046,7 +8126,8 @@ ROM_START( clubk2k3 ) ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 ) - _315_5881_KEYFILE("clubk2k3-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111)) + // 840-0062 2001 317-0313-COM Naomi 2 + ROM_PARAMETER( ":rom_board:segam2crypt:key", "0ce7d742" ) ROM_END // uses the same mask roms data as clubk2k3, but not in 32bit dissected form, EPR doesn't have checksumms for them, so rom test shows all roms as BAD diff --git a/src/mame/drivers/stv.c b/src/mame/drivers/stv.c index fc3291e41c8..0cb390080a5 100644 --- a/src/mame/drivers/stv.c +++ b/src/mame/drivers/stv.c @@ -1824,6 +1824,9 @@ ROM_START( astrass ) ROM_LOAD16_WORD_SWAP( "mpr20826.1", 0x1800000, 0x0400000, CRC(bdc4b941) SHA1(c5e8b1b186324c2ccab617915f7bdbfe6897ca9f) ) // good (was .17) ROM_LOAD16_WORD_SWAP( "mpr20832.8", 0x1c00000, 0x0400000, CRC(af1b0985) SHA1(d7a0e4e0a8b0556915f924bdde8c3d14e5b3423e) ) // good (was .18s) ROM_LOAD16_WORD_SWAP( "mpr20833.9", 0x2000000, 0x0400000, CRC(cb6af231) SHA1(4a2e5d7c2fd6179c19cdefa84a03f9a34fbb9e70) ) // good (was .19s) + + // 25349801 1998 317-5040-COM ST-V (yes, the 317-5040-COM chip was reused for 3 different games and on both Naomi and ST-V!) + ROM_PARAMETER( ":315_5881:key", "052e2901" ) ROM_END ROM_START( bakubaku ) @@ -1968,6 +1971,9 @@ ROM_START( elandore ) ROM_LOAD16_WORD_SWAP( "mpr21305.6", 0x1400000, 0x0400000, CRC(46cfc2a2) SHA1(8ca26bf8fa5ced040e815c125c13dd06d599e189) ) // good (was .16) ROM_LOAD16_WORD_SWAP( "mpr21306.1", 0x1800000, 0x0400000, CRC(87a5929c) SHA1(b259341d7b0e1fa98959bf52d23db5c308a8efdd) ) // good (was .17) ROM_LOAD16_WORD_SWAP( "mpr21308.8", 0x1c00000, 0x0400000, CRC(336ec1a4) SHA1(20d1fce050cf6132d284b91853a4dd5626372ef0) ) // good (was .18s) + + // 1998 317-5043-COM ST-V + ROM_PARAMETER( ":315_5881:key", "05226d41" ) ROM_END ROM_START( ffreveng ) @@ -1981,6 +1987,9 @@ ROM_START( ffreveng ) ROM_LOAD16_WORD_SWAP( "mpr21876.5", 0x1000000, 0x0400000, CRC(bb92a7fc) SHA1(d9e0fab1104a46adeb0a0cfc0d070d4c63a28d55) ) // good (was .15) ROM_LOAD16_WORD_SWAP( "mpr21877.6", 0x1400000, 0x0400000, CRC(c22a4a75) SHA1(3276bc0628e71b432f21ba9a4f5ff7ccc8769cd9) ) // good (was .16) ROM_LOAD16_WORD_SWAP( "opr21878.1", 0x1800000, 0x0200000, CRC(2ea4a64d) SHA1(928a973dce5eba0a1628d61ba56a530de990a946) ) // good (was .17) + + // 1998 317-5049-COM ST-V + ROM_PARAMETER( ":315_5881:key", "0524ac01" ) ROM_END /* set system to 1 player to test rom */ @@ -2237,6 +2246,9 @@ ROM_START( rsgun ) ROM_LOAD16_WORD_SWAP( "mpr20960.3", 0x0800000, 0x0400000, CRC(b5ab9053) SHA1(87c5d077eb1219c35fa65b4e11d5b62e826f5236) ) // good (was .13) ROM_LOAD16_WORD_SWAP( "mpr20961.4", 0x0c00000, 0x0400000, CRC(0e06295c) SHA1(0ec2842622f3e9dc5689abd58aeddc7e5603b97a) ) // good (was .14) ROM_LOAD16_WORD_SWAP( "mpr20962.5", 0x1000000, 0x0400000, CRC(f1e6c7fc) SHA1(0ba0972f1bc7c56f4e0589d3e363523cea988bb0) ) // good (was .15) + + // 1998 317-5041-COM ST-V + ROM_PARAMETER( ":315_5881:key", "05272d01" ) ROM_END ROM_START( sandor ) @@ -2425,6 +2437,9 @@ ROM_START( sss ) ROM_REGION16_BE( 0x80, "eeprom", 0 ) // preconfigured to 1 player ROM_LOAD( "sss.nv", 0x0000, 0x0080, CRC(3473b2f3) SHA1(6480b4b321af8ee6e967710e74f2556c17bfca97) ) + + // 1998 317-5042-COM ST-V + ROM_PARAMETER( ":315_5881:key", "052b6901" ) ROM_END ROM_START( suikoenb ) @@ -2455,6 +2470,9 @@ ROM_START( twcup98 ) ROM_LOAD16_WORD_SWAP( "mpr20822.3", 0x0800000, 0x0400000, CRC(8b33a5e2) SHA1(d5689ac8aad63509febe9aa4077351be09b2d8d4) ) // ic3 good (was .13) ROM_LOAD16_WORD_SWAP( "mpr20823.4", 0x0c00000, 0x0400000, CRC(6e6d4e95) SHA1(c387d03ba27580c62ac0bf780915fdf41552df6f) ) // ic4 good (was .14) ROM_LOAD16_WORD_SWAP( "mpr20824.5", 0x1000000, 0x0400000, CRC(4cf18a25) SHA1(310961a5f114fea8938a3f514dffd5231e910a5a) ) // ic5 good (was .15) + + // 25209801 1998 317-5039-COM ST-V + ROM_PARAMETER( ":315_5881:key", "05200913" ) ROM_END ROM_START( vfkids ) diff --git a/src/mame/machine/315-5881_crypt.c b/src/mame/machine/315-5881_crypt.c index db2b2311be9..153a4a50011 100644 --- a/src/mame/machine/315-5881_crypt.c +++ b/src/mame/machine/315-5881_crypt.c @@ -45,6 +45,14 @@ void sega_315_5881_crypt_device::device_start() save_item(NAME(line_buffer_pos)); save_item(NAME(line_buffer_size)); + astring skey = parameter("key"); + if(skey) + key = strtoll(skey.cstr(), 0, 16); + else + { + logerror("%s: Warning: key not provided\n", tag()); + key = 0; + } } void sega_315_5881_crypt_device::device_reset() @@ -112,12 +120,6 @@ void sega_315_5881_crypt_device::set_subkey(UINT16 data) enc_ready = false; } -void sega_315_5881_crypt_device::set_key(UINT32 data) -{ - key = data; - enc_ready = false; -} - /*************************************************************************** DECRYPTION EMULATION diff --git a/src/mame/machine/315-5881_crypt.h b/src/mame/machine/315-5881_crypt.h index 3fb0f01bde1..7b8b5088362 100644 --- a/src/mame/machine/315-5881_crypt.h +++ b/src/mame/machine/315-5881_crypt.h @@ -4,8 +4,6 @@ #ifndef __SEGA315_5881_CRYPT__ #define __SEGA315_5881_CRYPT__ -#include "315-5881_helper.h" - typedef device_delegate sega_m2_read_delegate; extern const device_type SEGA315_5881_CRYPT; @@ -25,7 +23,6 @@ public: void set_addr_low(UINT16 data); void set_addr_high(UINT16 data); void set_subkey(UINT16 data); - void set_key(UINT32 data); sega_m2_read_delegate m_read; diff --git a/src/mame/machine/315-5881_helper.c b/src/mame/machine/315-5881_helper.c deleted file mode 100644 index 70c3ab942ac..00000000000 --- a/src/mame/machine/315-5881_helper.c +++ /dev/null @@ -1,183 +0,0 @@ - -/* Sega 315-5881 support file - - This encryption chip was used on various games running on - ST-V - Naomi - Naomi 2 - Hikaru - Model 2 - Model 3 - (more?) - - As the encryption isn't fully understood yet this file holds the current keys, these are subject to change. - */ - - -#include "emu.h" -#include "315-5881_helper.h" - -struct game_keys -{ - const char *name; /* game driver name */ - const INT64 key; // INT64 so we can use -1 for unknown keys - -}; - -// chip numbers based on Guru's list at -// http://members.iinet.net.au/~lantra9jp1/gurudumps/sega-security/sega_security.html -// (todo , complete it ) - - -static const struct game_keys keys_table[] = -{ - // name key gameid # year chip label platform - { "twcup98", 0x05200913 }, // 25209801 1998 317-5039-COM ST-V - { "astrass", 0x052e2901 }, // 25349801 1998 317-5040-COM ST-V (yes, the 317-5040-COM chip was reused for 3 different games and on both Naomi and ST-V!) - { "rsgun", 0x05272d01 }, // 1998 317-5041-COM ST-V - { "sss", 0x052b6901 }, // 1998 317-5042-COM ST-V - { "elandore", 0x05226d41 }, // 1998 317-5043-COM ST-V - { "ffreveng", 0x0524ac01 }, // 1998 317-5049-COM ST-V - - { "dybbnao", 0x080e6ae1 }, // 840-0001 1998 317-0246-JPN Naomi - { "crzytaxi", 0x080d2f45 }, // 840-0002 1999 317-0248-COM Naomi - { "zombrvn", 0x08012b41 }, // 840-0003 1999 317-0249-COM Naomi - { "ringout", 0x080b1e40 }, // 840-0004 1999 317-0250-COM Naomi - { "alpilota", 0x08070e41 }, // 840-0005 1999 317-0251-COM Naomi - { "alpiltdx", 0x08070e41 }, // 834-????? 1999 317-0251-COM Naomi - { "ggram2", 0x08074a61 }, // 840-0007 1999 317-0253-JPN Naomi - { "f355", 0x080e8f84 }, // 834-13842 1999 317-0254-COM Naomi - { "tduno", 0x08028ea5 }, // 840-0008 1999 317-0255-JPN Naomi - { "toyfight", 0x0802ca85 }, // 840-0011 1999 317-0257-COM Naomi - { "vs2_2k", 0x08088b08 }, // 840-0010 1999 317-0258-COM Naomi - { "smlg99", 0x08048a01 }, // 840-0012 1999 317-0259-COM Naomi - { "derbyoc", 0x080fee35 }, // 840-0016 1999 317-0262-JPN Naomi - { "vtennis", 0x0803eb15 }, // 840-0015 1999 317-0263-COM Naomi - { "jambo", 0x080fab95 }, // 840-0013 1999 317-0264-COM Naomi - { "mazan", 0x080fea94 }, // 25869812 2002 317-0266-COM Naomi - { "mazana", 0x080fea94 }, // 25869812 2002 317-0266-COM Naomi - { "otrigger", 0x080fea94 }, // 840-0017 1999 317-0266-COM Naomi - { "f355twin", 0x0806efd4 }, // 834-13950 1999 317-0267-COM Naomi - { "sgtetris", 0x0808ae51 }, // 840-0018 1999 317-0268-COM Naomi - { "dybb99", 0x0804ae71 }, // 840-0019 1999 317-0269-JPN Naomi - { "samba", 0x080a8b5d }, // 840-0020 1999 317-0270-COM Naomi - { "sambap", 0x080a8b5d }, // 840-0020 1999 317-0270-COM Naomi - { "virnbao", 0x08068b58 }, // 840-0021 2000 317-0271-COM Naomi - { "virnbap", 0x08068b58 }, // 840-0021 2000 317-0271-COM Naomi - { "18wheelr", 0x0807cf54 }, // 840-0023 2000 317-0273-COM Naomi - { "18wheels", 0x0807cf54 }, // 840-0036 2000 317-0273-COM Naomi - { "18wheelu", 0x0807cf54 }, // 840-0037 2000 317-0273-COM Naomi - { "marstv", 0x080b8ef5 }, // 840-0025 1999 317-0274-JPN Naomi - { "vonot", 0x08010715 }, // 840-0028 2000 317-0279-COM Naomi - { "sstrkfgt", 0x08132303 }, // 840-0035 2000 317-0281-COM Naomi - { "sstrkfgta", 0x08132303 }, // 840-0035 2000 317-0281-COM Naomi - { "wwfroyal", 0x081627c3 }, // 840-0040 2000 317-0285-COM Naomi - { "slasho", 0x081a66ca }, // 840-0041 2000 317-0286-COM Naomi - { "f355twn2", 0x081666c6 }, // 840-0042 2001 317-0287-COM Naomi - { "crackndj", 0x081c2347 }, // 840-0043 2000 317-0288-COM Naomi - { "csmash", 0x08103347 }, // 840-0044 2000 317-0289-COM Naomi - { "csmasho", 0x08103347 }, // 840-0044 2000 317-0289-COM Naomi - { "alienfnt", 0x08174343 }, // 840-0048 2001 317-0293-COM Naomi - { "alienfnta", 0x08174343 }, // 840-0048 2001 317-0293-COM Naomi - { "samba2k", 0x081702cf }, // 840-0047 2000 317-0295-COM Naomi - { "wldrider", 0x0ce7a703 }, // 840-0046 2001 317-0301-COM Naomi 2 - { "vstrik3c", 0x0cee834a }, // 840-0061 2001 317-0310-COM Naomi 2 - { "vstrik3cb", 0x0cee834a }, // 840-0061 2001 317-0310-COM Naomi 2 - { "crackdj2", 0x08428247 }, // 840-0068 2001 317-0311-COM Naomi - { "clubkrtc", 0x0ce7d742 }, // 840-0062 2001 317-0313-COM Naomi 2 - { "clubkrtd", 0x0ce7d742 }, // 840-0062 2001 317-0313-COM Naomi 2 - { "clubkrte", 0x0ce7d742 }, // 840-0062 2001 317-0313-COM Naomi 2 - { "inunoos", 0x094bc3e3 }, // 840-0073 2001 317-0316-JPN Naomi - { "vf4cart", 0x0eef2f96 }, // 840-0080 2002 317-0324-COM Naomi 2 - { "toukon4", 0x052e2901 }, // 25349801 2000 317-5040-COM Naomi - { "wldkicks", 0x052e2901 }, // 25209801 2000 317-5040-COM Naomi - { "wldkicksa", 0x052e2901 }, // 25209801 2000 317-5040-COM Naomi - { "wldkicksb", 0x052e2901 }, // 25209801 2000 317-5040-COM Naomi - { "pstone", 0x000e69c1 }, // 841-0001 1999 317-5046-COM Naomi - { "suchie3", 0x000368e1 }, // 841-0002 1999 317-5047-JPN Naomi - { "doa2", 0x0008ad01 }, // 841-0003 1999 317-5048-COM Naomi - { "doa2m", 0x0008ad01 }, // 841-0003 1999 317-5048-COM Naomi - { "shangril", -1 }, // 841-0004 1999 317-5050-JPN Naomi seems not used by game - { "spawn", 0x00078d01 }, // 841-0005 1999 317-5051-COM Naomi - { "puyoda", 0x000acd40 }, // 841-0006 1999 317-5052-COM Naomi - { "pstone2", 0x000b8dc0 }, // 841-0008 2000 317-5054-COM Naomi - { "capsnk", 0x00000000 }, // 841-0011 2000 317-5059-COM Naomi - { "capsnka", 0x00000000 }, // 841-0011 2000 317-5059-COM Naomi - { "capsnkb", 0x00000000 }, // 841-0011 2000 317-5059-COM Naomi - { "cspike", 0x000e2010 }, // 841-0012 2000 317-5060-COM Naomi - { "ggx", 0x00076110 }, // 841-0013 2000 317-5063-COM Naomi - { "gwing2", 0x000b25d0 }, // 841-0014 2000 317-5064-COM Naomi - { "pjustic", 0x000725d0 }, // 841-0015 2000 317-5065-COM Naomi - { "deathcox", 0x000b64d0 }, // 841-0016 2000 317-5066-COM Naomi - { "ninjaslt", 0x000ca510 }, // 25469801 2000 317-5068-COM Naomi - { "ninjaslt1", 0x000ca510 }, // 25469801 2000 317-5068-COM Naomi - { "ninjaslt2", 0x000ca510 }, // 25469801 2000 317-5068-COM Naomi - { "ninjaslt4", 0x000ca510 }, // 25469801 2000 317-5068-COM Naomi - { "gundmct", 0x000e8010 }, // 841-0017 2001 317-5070-COM Naomi - { "hmgeo", 0x00038510 }, // HMG016007 2001 317-5071-COM Naomi - { "zerogu2", 0x0007c010 }, // 841-0020 2001 317-5073-COM Naomi - { "gunsur2", 0x000680d0 }, // 25709801 2001 317-5075-COM Naomi - { "gunsur2e", 0x000680d0 }, // 25709801 2001 317-5075-COM Naomi - - { "podrace", 0x0903dad5 }, // 834-14002 2001 317-0277-COM Hikaru - { "airtrix", 0x091b02c7 }, // 834-14149 2000 317-0294-COM Hikaru - { "pharrier", 0x0912c68a }, // 834-14144 2001 317-0297-COM Hikaru - - { "dynamcop", 0x0c2a4a93 }, // 1998 317-0236-COM Model 2 - { "dyndeka2", 0x0c2a4a93 }, // 1998 317-0236-COM Model 2 - { "dynamcopb", 0x0c2a4a93 }, // 1998 317-0236-COM Model 2 - { "dyndeka2b", 0x0c2a4a93 }, // 1998 317-0236-COM Model 2 - { "dynamcopc", 0x0c2a4a93 }, // 1998 317-0236-COM Model 2 - { "zerogun", 0x042c0d13 }, // 1997 317-5038-COM Model 2 - { "zerogunj", 0x042c0d13 }, // 1997 317-5038-COM Model 2 - { "zeroguna", 0x042c0d13 }, // 1997 317-5038-COM Model 2 - { "zerogunaj", 0x042c0d13 }, // 1997 317-5038-COM Model 2 - { "pltkids", 0x042e2dc1 }, // 1998 317-5044-COM Model 2 - { "pltkidsa", 0x042e2dc1 }, // 1998 317-5044-COM Model 2 - - { "von2", 0x092a0e97 }, // ???? 317-0234-COM Model 3 - { "von254g", 0x092a0e97 }, // ???? 317-0234-COM Model 3 - { "fvipers2", 0x09260e96 }, // ???? 317-0235-COM Model 3 - { "vs298", 0x09234e96 }, // ???? 317-0237-COM Model 3 - { "dirtdvls", 0x09290f17 }, // ???? 317-0238-COM Model 3 - { "dirtdvlsa", 0x09290f17 }, // ???? 317-0238-COM Model 3 - { "daytona2", 0x09250e16 }, // ???? 317-0239-COM Model 3 - { "spikeout", 0x092f2b04 }, // ???? 317-0240-COM Model 3 - { "swtrilgy", 0x11272a01 }, // ???? 317-0241-COM Model 3 - { "swtrilgya", 0x11272a01 }, // ???? 317-0241-COM Model 3 - { "oceanhun", 0x092b6a01 }, // ???? 317-0242-COM Model 3 - { "magtruck", 0x09266e45 }, // ???? 317-0243-COM Model 3 - { "lamachin", 0x092a2bc5 }, // ???? 317-0244-COM Model 3 - { "vs299", 0x09222ac8 }, // ???? 317-0245-COM Model 3 - { "vs2v991", 0x09222ac8 }, // ???? 317-0245-COM Model 3 - { "vs299b", 0x09222ac8 }, // ???? 317-0245-COM Model 3 - { "vs299a", 0x09222ac8 }, // ???? 317-0245-COM Model 3 - { "spikeofe", 0x09236fc8 }, // ???? 317-0247-COM Model 3 - { "eca", 0x0923aa91 }, // ???? 317-0265-COM Model 3 - { "ecax", 0x0923aa91 }, // ???? 317-0265-COM Model 3 - { "ecap", 0x0923aa91 }, // ???? 317-0265-COM Model 3 - { "dayto2pe", -1 }, // ???? 317-5045-COM Model 3 - - { NULL, 0 } // end of table -}; - - -INT64 get_315_5881_key(running_machine &machine) -{ - const char *gamename = machine.system().name; - const struct game_keys *k = &keys_table[0]; - - while (k->name) - { - if (strcmp(k->name, gamename) == 0) - { - // we have a proper key so return it - return k->key; - } - ++k; - } - - printf("get_naomi_key : KEY NOT FOUND\n"); - - return 0; -} diff --git a/src/mame/machine/315-5881_helper.h b/src/mame/machine/315-5881_helper.h deleted file mode 100644 index 3c3ef4b463b..00000000000 --- a/src/mame/machine/315-5881_helper.h +++ /dev/null @@ -1,33 +0,0 @@ - -// use the internal key list, or external files? -#define USE_315_5881_HELPER 1 - -INT64 get_315_5881_key(running_machine &machine); - -#if USE_315_5881_HELPER - -#define _315_5881_KEYFILE(name,hash) \ - /* nothing */ - -#define _315_5881_UNUSED_OR_UNKNOWN \ - /* nothing */ - -#define _315_5881_UNUSED \ - /* nothing */ - - -#else - -#define _315_5881_KEYFILE(name,hash) \ - ROM_REGION( 4, "315_5881key", 0 ) \ - ROM_LOAD( name, 0, 4, hash ) - -#define _315_5881_UNUSED_OR_UNKNOWN \ - ROM_REGION( 4, "315_5881key", ROMREGION_ERASE00 ) - -#define _315_5881_UNUSED \ - ROM_REGION( 4, "315_5881key", ROMREGION_ERASE00 ) - - - -#endif \ No newline at end of file diff --git a/src/mame/machine/naomim2.c b/src/mame/machine/naomim2.c index 82a83f09156..e52fd5548f5 100644 --- a/src/mame/machine/naomim2.c +++ b/src/mame/machine/naomim2.c @@ -108,13 +108,6 @@ naomi_m2_board::naomi_m2_board(const machine_config &mconfig, const char *tag, d : naomi_board(mconfig, NAOMI_M2_BOARD, "Sega NAOMI M2 Board", tag, owner, clock, "naomi_m2_board", __FILE__), m_cryptdevice(*this, "segam2crypt") { - key_tag = 0; -} - -void naomi_m2_board::static_set_tags(device_t &device, const char *_key_tag) -{ - naomi_m2_board &dev = downcast(device); - dev.key_tag = _key_tag; } void naomi_m2_board::device_start() @@ -134,13 +127,6 @@ void naomi_m2_board::device_reset() memset(ram, 0, RAM_SIZE); rom_cur_address = 0; - -#if USE_315_5881_HELPER - m_cryptdevice->set_key(get_315_5881_key(machine())); -#else - const UINT8 *key_data = memregion(key_tag)->base(); - m_cryptdevice->set_key((key_data[0] << 24) | (key_data[1] << 16) | (key_data[2] << 8) | key_data[3]); -#endif } void naomi_m2_board::board_setup_address(UINT32 address, bool is_dma) diff --git a/src/mame/machine/naomim2.h b/src/mame/machine/naomim2.h index 9bfd1f9a29c..acbd94fc64d 100644 --- a/src/mame/machine/naomim2.h +++ b/src/mame/machine/naomim2.h @@ -5,9 +5,8 @@ #include "315-5881_crypt.h" -#define MCFG_NAOMI_M2_BOARD_ADD(_tag, _key_tag, _eeprom_tag, _actel_tag, _irq_cb) \ - MCFG_NAOMI_BOARD_ADD(_tag, NAOMI_M2_BOARD, _eeprom_tag, _actel_tag, _irq_cb) \ - naomi_m2_board::static_set_tags(*device, _key_tag); +#define MCFG_NAOMI_M2_BOARD_ADD(_tag, _eeprom_tag, _actel_tag, _irq_cb) \ + MCFG_NAOMI_BOARD_ADD(_tag, NAOMI_M2_BOARD, _eeprom_tag, _actel_tag, _irq_cb) class naomi_m2_board : public naomi_board { @@ -17,7 +16,6 @@ public: static const int RAM_SIZE = 65536; UINT8* ram; - static void static_set_tags(device_t &device, const char *_key_tag); UINT16 read_callback(UINT32 addr); protected: @@ -31,11 +29,6 @@ protected: virtual void board_write(offs_t offset, UINT16 data); private: - - - const char *key_tag; - - required_device m_cryptdevice; }; diff --git a/src/mame/machine/stvprot.c b/src/mame/machine/stvprot.c index 716f2bfa6ac..4513c9de06d 100644 --- a/src/mame/machine/stvprot.c +++ b/src/mame/machine/stvprot.c @@ -83,9 +83,6 @@ WRITE32_MEMBER ( stv_state::common_prot_w ) void stv_state::install_common_protection() { m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x4fffff0, 0x4ffffff, read32_delegate(FUNC(stv_state::common_prot_r), this), write32_delegate(FUNC(stv_state::common_prot_w), this)); - - INT64 key = get_315_5881_key(machine()); - m_cryptdevice->set_key(key); } void stv_state::stv_register_protection_savestates() diff --git a/src/mame/mame.mak b/src/mame/mame.mak index 47f401997e7..7bf393a5727 100644 --- a/src/mame/mame.mak +++ b/src/mame/mame.mak @@ -1723,7 +1723,6 @@ $(MAMEOBJ)/sega.a: \ $(MACHINE)/naomig1.o $(MACHINE)/naomibd.o $(MACHINE)/naomirom.o $(MACHINE)/naomigd.o \ $(MACHINE)/naomicrypt.o $(MACHINE)/naomim1.o $(MACHINE)/naomim2.o $(MACHINE)/naomim4.o \ $(MACHINE)/315-5881_crypt.o \ - $(MACHINE)/315-5881_helper.o \ $(MACHINE)/awboard.o \ $(MACHINE)/mie.o $(MACHINE)/maple-dc.o $(MACHINE)/mapledev.o $(MACHINE)/dc-ctrl.o $(MACHINE)/jvs13551.o \ $(DRIVERS)/triforce.o \