diff options
author | 2015-01-25 22:12:59 +0100 | |
---|---|---|
committer | 2015-01-25 22:12:59 +0100 | |
commit | 41408bae3b2d761ea53a0f9f826855d4c2542e87 (patch) | |
tree | 8019511b2870a9453789867309fca2980886bcd0 | |
parent | 36c9bba47db88ab3e42e422d26a35de3536d1d76 (diff) | |
parent | 35947ff256bc7e066f8b49ad45c7383b14a9e8ee (diff) |
Merge branch 'master' of https://github.com/mamedev/mame.git
34 files changed, 809 insertions, 429 deletions
diff --git a/src/emu/cpu/i386/pentops.inc b/src/emu/cpu/i386/pentops.inc index 66494a6968d..2195ba9fccb 100644 --- a/src/emu/cpu/i386/pentops.inc +++ b/src/emu/cpu/i386/pentops.inc @@ -2249,26 +2249,30 @@ void i386_device::mmx_packuswb_r64_rm64() // Opcode 0f 67 MMXPROLOG(); UINT8 modrm = FETCH(); if( modrm >= 0xc0 ) { + MMX_REG ds, sd; int s,d; s=modrm & 0x7; d=(modrm >> 3) & 0x7; - MMX(d).b[0]=SaturatedSignedWordToUnsignedByte(MMX(d).s[0]); - MMX(d).b[1]=SaturatedSignedWordToUnsignedByte(MMX(d).s[1]); - MMX(d).b[2]=SaturatedSignedWordToUnsignedByte(MMX(d).s[2]); - MMX(d).b[3]=SaturatedSignedWordToUnsignedByte(MMX(d).s[3]); - MMX(d).b[4]=SaturatedSignedWordToUnsignedByte(MMX(s).s[0]); - MMX(d).b[5]=SaturatedSignedWordToUnsignedByte(MMX(s).s[1]); - MMX(d).b[6]=SaturatedSignedWordToUnsignedByte(MMX(s).s[2]); - MMX(d).b[7]=SaturatedSignedWordToUnsignedByte(MMX(s).s[3]); - } else { - MMX_REG s; + ds.q = MMX(d).q; + sd.q = MMX(s).q; + MMX(d).b[0]=SaturatedSignedWordToUnsignedByte(ds.s[0]); + MMX(d).b[1]=SaturatedSignedWordToUnsignedByte(ds.s[1]); + MMX(d).b[2]=SaturatedSignedWordToUnsignedByte(ds.s[2]); + MMX(d).b[3]=SaturatedSignedWordToUnsignedByte(ds.s[3]); + MMX(d).b[4]=SaturatedSignedWordToUnsignedByte(sd.s[0]); + MMX(d).b[5]=SaturatedSignedWordToUnsignedByte(sd.s[1]); + MMX(d).b[6]=SaturatedSignedWordToUnsignedByte(sd.s[2]); + MMX(d).b[7]=SaturatedSignedWordToUnsignedByte(sd.s[3]); + } else { + MMX_REG s,t; int d=(modrm >> 3) & 0x7; UINT32 ea = GetEA(modrm, 0); READMMX(ea, s); - MMX(d).b[0]=SaturatedSignedWordToUnsignedByte(MMX(d).s[0]); - MMX(d).b[1]=SaturatedSignedWordToUnsignedByte(MMX(d).s[1]); - MMX(d).b[2]=SaturatedSignedWordToUnsignedByte(MMX(d).s[2]); - MMX(d).b[3]=SaturatedSignedWordToUnsignedByte(MMX(d).s[3]); + t.q = MMX(d).q; + MMX(d).b[0]=SaturatedSignedWordToUnsignedByte(t.s[0]); + MMX(d).b[1]=SaturatedSignedWordToUnsignedByte(t.s[1]); + MMX(d).b[2]=SaturatedSignedWordToUnsignedByte(t.s[2]); + MMX(d).b[3]=SaturatedSignedWordToUnsignedByte(t.s[3]); MMX(d).b[4]=SaturatedSignedWordToUnsignedByte(s.s[0]); MMX(d).b[5]=SaturatedSignedWordToUnsignedByte(s.s[1]); MMX(d).b[6]=SaturatedSignedWordToUnsignedByte(s.s[2]); @@ -2362,21 +2366,30 @@ void i386_device::mmx_packssdw_r64_rm64() // Opcode 0f 6b UINT8 modrm = FETCH(); if( modrm >= 0xc0 ) { int s,d; + INT32 t1, t2, t3, t4; s=modrm & 0x7; d=(modrm >> 3) & 0x7; - MMX(d).s[0]=SaturatedSignedDwordToSignedWord(MMX(d).i[0]); - MMX(d).s[1]=SaturatedSignedDwordToSignedWord(MMX(d).i[1]); - MMX(d).s[2]=SaturatedSignedDwordToSignedWord(MMX(s).i[0]); - MMX(d).s[3]=SaturatedSignedDwordToSignedWord(MMX(s).i[1]); - } else { + t1 = MMX(d).i[0]; + t2 = MMX(d).i[1]; + t3 = MMX(s).i[0]; + t4 = MMX(s).i[1]; + MMX(d).s[0] = SaturatedSignedDwordToSignedWord(t1); + MMX(d).s[1] = SaturatedSignedDwordToSignedWord(t2); + MMX(d).s[2] = SaturatedSignedDwordToSignedWord(t3); + MMX(d).s[3] = SaturatedSignedDwordToSignedWord(t4); + } + else { MMX_REG s; + INT32 t1, t2; int d=(modrm >> 3) & 0x7; UINT32 ea = GetEA(modrm, 0); READMMX(ea, s); - MMX(d).s[0]=SaturatedSignedDwordToSignedWord(MMX(d).i[0]); - MMX(d).s[1]=SaturatedSignedDwordToSignedWord(MMX(d).i[1]); - MMX(d).s[2]=SaturatedSignedDwordToSignedWord(s.i[0]); - MMX(d).s[3]=SaturatedSignedDwordToSignedWord(s.i[1]); + t1 = MMX(d).i[0]; + t2 = MMX(d).i[1]; + MMX(d).s[0] = SaturatedSignedDwordToSignedWord(t1); + MMX(d).s[1] = SaturatedSignedDwordToSignedWord(t2); + MMX(d).s[2] = SaturatedSignedDwordToSignedWord(s.i[0]); + MMX(d).s[3] = SaturatedSignedDwordToSignedWord(s.i[1]); } CYCLES(1); // TODO: correct cycle count } @@ -2711,9 +2724,11 @@ void i386_device::sse_movlps_r128_m64() // Opcode 0f 12 { UINT8 modrm = FETCH(); if( modrm >= 0xc0 ) { - // unsupported by cpu + // MOVHLPS opcode + XMM((modrm >> 3) & 0x7).q[0] = XMM(modrm & 0x7).q[1]; CYCLES(1); // TODO: correct cycle count } else { + // MOVLPS opcode UINT32 ea = GetEA(modrm, 0); READXMM_LO64(ea, XMM((modrm >> 3) & 0x7)); CYCLES(1); // TODO: correct cycle count @@ -2737,9 +2752,11 @@ void i386_device::sse_movhps_r128_m64() // Opcode 0f 16 { UINT8 modrm = FETCH(); if( modrm >= 0xc0 ) { - // unsupported by cpu + // MOVLHPS opcode + XMM((modrm >> 3) & 0x7).q[1] = XMM(modrm & 0x7).q[0]; CYCLES(1); // TODO: correct cycle count } else { + // MOVHPS opcode UINT32 ea = GetEA(modrm, 0); READXMM_HI64(ea, XMM((modrm >> 3) & 0x7)); CYCLES(1); // TODO: correct cycle count @@ -3367,7 +3384,7 @@ void i386_device::sse_ucomiss_r128_r128m32() // Opcode 0f 2e CYCLES(1); // TODO: correct cycle count } -void i386_device::sse_shufps() // Opcode 0f 67 +void i386_device::sse_shufps() // Opcode 0f c6 { UINT8 modrm = FETCH(); UINT8 sel = FETCH(); @@ -3380,20 +3397,24 @@ void i386_device::sse_shufps() // Opcode 0f 67 s=modrm & 0x7; d=(modrm >> 3) & 0x7; if( modrm >= 0xc0 ) { - UINT32 t; - t=XMM(d).d[m1]; - XMM(d).d[1]=XMM(d).d[m2]; - XMM(d).d[0]=t; - XMM(d).d[2]=XMM(s).d[m3]; - XMM(d).d[3]=XMM(s).d[m4]; - } else { - UINT32 t; + UINT32 t1,t2,t3,t4; + t1=XMM(d).d[m1]; + t2=XMM(d).d[m2]; + t3=XMM(s).d[m3]; + t4=XMM(s).d[m4]; + XMM(d).d[0]=t1; + XMM(d).d[1]=t2; + XMM(d).d[2]=t3; + XMM(d).d[3]=t4; + } else { + UINT32 t1,t2; XMM_REG src; UINT32 ea = GetEA(modrm, 0); READXMM(ea, src); - t=XMM(d).d[m1]; - XMM(d).d[1]=XMM(d).d[m2]; - XMM(d).d[0]=t; + t1=XMM(d).d[m1]; + t2=XMM(d).d[m2]; + XMM(d).d[0]=t1; + XMM(d).d[1]=t2; XMM(d).d[2]=src.d[m3]; XMM(d).d[3]=src.d[m4]; } @@ -3404,19 +3425,25 @@ void i386_device::sse_unpcklps_r128_rm128() // Opcode 0f 14 { UINT8 modrm = FETCH(); int s,d; + UINT32 t1, t2, t3, t4; s=modrm & 0x7; d=(modrm >> 3) & 0x7; if( modrm >= 0xc0 ) { - XMM(d).d[3]=XMM(s).d[1]; - XMM(d).d[2]=XMM(d).d[1]; - XMM(d).d[1]=XMM(s).d[0]; - //XMM(d).d[0]=XMM(d).d[0]; + t1 = XMM(s).d[1]; + t2 = XMM(d).d[1]; + t3 = XMM(s).d[0]; + t4 = XMM(d).d[0]; + XMM(d).d[3]=t1; + XMM(d).d[2]=t2; + XMM(d).d[1]=t3; + XMM(d).d[0]=t4; } else { XMM_REG src; UINT32 ea = GetEA(modrm, 0); READXMM(ea, src); + t2 = XMM(d).d[1]; XMM(d).d[3]=src.d[1]; - XMM(d).d[2]=XMM(d).d[1]; + XMM(d).d[2]=t2; XMM(d).d[1]=src.d[0]; } CYCLES(1); // TODO: correct cycle count @@ -3426,20 +3453,27 @@ void i386_device::sse_unpckhps_r128_rm128() // Opcode 0f 15 { UINT8 modrm = FETCH(); int s,d; + UINT32 t1, t2, t3, t4; s=modrm & 0x7; d=(modrm >> 3) & 0x7; if( modrm >= 0xc0 ) { - XMM(d).d[0]=XMM(d).d[2]; - XMM(d).d[1]=XMM(s).d[2]; - XMM(d).d[2]=XMM(d).d[3]; - XMM(d).d[3]=XMM(s).d[3]; + t1 = XMM(d).d[2]; + t2 = XMM(s).d[2]; + t3 = XMM(d).d[3]; + t4 = XMM(s).d[3]; + XMM(d).d[0]=t1; + XMM(d).d[1]=t2; + XMM(d).d[2]=t3; + XMM(d).d[3]=t4; } else { XMM_REG src; UINT32 ea = GetEA(modrm, 0); READXMM(ea, src); - XMM(d).d[0]=XMM(d).d[2]; + t1 = XMM(d).d[2]; + t3 = XMM(d).d[3]; + XMM(d).d[0]=t1; XMM(d).d[1]=src.d[2]; - XMM(d).d[2]=XMM(d).d[3]; + XMM(d).d[2]=t3; XMM(d).d[3]=src.d[3]; } CYCLES(1); // TODO: correct cycle count diff --git a/src/emu/cpu/mips/mips3drc.c b/src/emu/cpu/mips/mips3drc.c index 94036cbb919..effe2154468 100644 --- a/src/emu/cpu/mips/mips3drc.c +++ b/src/emu/cpu/mips/mips3drc.c @@ -1013,7 +1013,7 @@ void mips3_device::generate_update_mode(drcuml_block *block) an exception if out -------------------------------------------------*/ -void mips3_device::generate_update_cycles(drcuml_block *block, compiler_state *compiler, parameter param, int allow_exception) +void mips3_device::generate_update_cycles(drcuml_block *block, compiler_state *compiler, uml::parameter param, int allow_exception) { /* check software interrupts if pending */ if (compiler->checksoftints) diff --git a/src/emu/cpu/powerpc/ppcdrc.c b/src/emu/cpu/powerpc/ppcdrc.c index 61037b8de9a..561dec685bf 100644 --- a/src/emu/cpu/powerpc/ppcdrc.c +++ b/src/emu/cpu/powerpc/ppcdrc.c @@ -57,7 +57,7 @@ extern offs_t ppc_dasm_one(char *buffer, UINT32 pc, UINT32 op); ***************************************************************************/ #define R32(reg) m_regmap[reg] -#define R32Z(reg) (((reg) == 0) ? parameter(0) : m_regmap[reg]) +#define R32Z(reg) (((reg) == 0) ? uml::parameter(0) : m_regmap[reg]) #define F64(reg) m_fdregmap[reg] #define CR32(reg) mem(&m_core->cr[reg]) #define FPSCR32 mem(&m_core->fpscr) @@ -1549,7 +1549,7 @@ void ppc_device::generate_update_mode(drcuml_block *block) an exception if out -------------------------------------------------*/ -void ppc_device::generate_update_cycles(drcuml_block *block, compiler_state *compiler, parameter param, int allow_exception) +void ppc_device::generate_update_cycles(drcuml_block *block, compiler_state *compiler, uml::parameter param, int allow_exception) { /* check full interrupts if pending */ if (compiler->checkints) diff --git a/src/emu/cpu/rsp/rspdrc.c b/src/emu/cpu/rsp/rspdrc.c index 44a0a22542a..f684717f7d4 100644 --- a/src/emu/cpu/rsp/rspdrc.c +++ b/src/emu/cpu/rsp/rspdrc.c @@ -641,7 +641,7 @@ void rsp_device::static_generate_memory_accessor(int size, int iswrite, const ch subtract cycles from the icount and generate an exception if out -------------------------------------------------*/ -void rsp_device::generate_update_cycles(drcuml_block *block, compiler_state *compiler, parameter param, int allow_exception) +void rsp_device::generate_update_cycles(drcuml_block *block, compiler_state *compiler, uml::parameter param, int allow_exception) { /* account for cycles */ if (compiler->cycles > 0) 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 @@ -186,6 +186,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<astring> 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; } @@ -218,6 +222,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 -------------------------------------------------*/ @@ -229,6 +261,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/emu/video/h63484.c b/src/emu/video/h63484.c index 6eefec617ee..34a0258974e 100644 --- a/src/emu/video/h63484.c +++ b/src/emu/video/h63484.c @@ -2001,6 +2001,8 @@ WRITE8_MEMBER( h63484_device::data_w ) void h63484_device::device_start() { m_display_cb.bind_relative_to(*owner()); + + register_save_state(); } //------------------------------------------------- @@ -2125,3 +2127,64 @@ UINT32 h63484_device::update_screen(screen_device &screen, bitmap_ind16 &bitmap, } return 0; } + +void h63484_device::register_save_state() +{ + save_item(NAME(m_ar)); + save_item(NAME(m_vreg)); + save_item(NAME(m_sr)); + save_item(NAME(m_fifo)); + save_item(NAME(m_fifo_ptr)); + save_item(NAME(m_fifo_r)); + save_item(NAME(m_fifo_r_ptr)); + save_item(NAME(m_cr)); + save_item(NAME(m_pr)); + save_item(NAME(m_param_ptr)); + save_item(NAME(m_rwp)); + save_item(NAME(m_rwp_dn)); + save_item(NAME(m_org_dpa)); + save_item(NAME(m_org_dn)); + save_item(NAME(m_org_dpd)); + save_item(NAME(m_cl0)); + save_item(NAME(m_cl1)); + save_item(NAME(m_ccmp)); + save_item(NAME(m_mask)); + save_item(NAME(m_cpx)); + save_item(NAME(m_cpy)); + save_item(NAME(m_mwr)); + save_item(NAME(m_mwr_chr)); + save_item(NAME(m_sar)); + save_item(NAME(m_sda)); + save_item(NAME(m_pram)); + save_item(NAME(m_dn)); + save_item(NAME(m_ccr)); + save_item(NAME(m_omr)); + save_item(NAME(m_edg)); + save_item(NAME(m_dcr)); + save_item(NAME(m_hc)); + save_item(NAME(m_hds)); + save_item(NAME(m_hdw)); + save_item(NAME(m_hws)); + save_item(NAME(m_hww)); + save_item(NAME(m_sp)); + save_item(NAME(m_hsw)); + save_item(NAME(m_vc)); + save_item(NAME(m_vws)); + save_item(NAME(m_vww)); + save_item(NAME(m_vds)); + save_item(NAME(m_vsw)); + save_item(NAME(m_ppy)); + save_item(NAME(m_pzcy)); + save_item(NAME(m_ppx)); + save_item(NAME(m_pzcx)); + save_item(NAME(m_psx)); + save_item(NAME(m_pex)); + save_item(NAME(m_pzx)); + save_item(NAME(m_psy)); + save_item(NAME(m_pzy)); + save_item(NAME(m_pey)); + save_item(NAME(m_xmin)); + save_item(NAME(m_ymin)); + save_item(NAME(m_xmax)); + save_item(NAME(m_ymax)); +} diff --git a/src/emu/video/h63484.h b/src/emu/video/h63484.h index 0e0bccb3848..97429d1dd20 100644 --- a/src/emu/video/h63484.h +++ b/src/emu/video/h63484.h @@ -107,6 +107,8 @@ private: void video_registers_w(int offset); int translate_command(UINT16 data); void draw_graphics_line(bitmap_ind16 &bitmap, const rectangle &cliprect, int vs, int y, int layer_n, bool active, bool ins_window); + + void register_save_state(); h63484_display_delegate m_display_cb; diff --git a/src/lib/util/astring.h b/src/lib/util/astring.h index 639591e04f2..0851aa0c006 100644 --- a/src/lib/util/astring.h +++ b/src/lib/util/astring.h @@ -32,7 +32,7 @@ public: ~astring(); // construction with copy - astring(const char *string) { init().cpy(string); } + astring(const char *string) { init(); if(string) cpy(string); } astring(const char *string, int length) { init().cpy(string, length); } astring(const char *str1, const char *str2) { init().cpy(str1).cat(str2); } astring(const char *str1, const char *str2, const char *str3) { init().cpy(str1).cat(str2).cat(str3); } 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/segajw.c b/src/mame/drivers/segajw.c index b6b4715d6bf..a382ea585ca 100644 --- a/src/mame/drivers/segajw.c +++ b/src/mame/drivers/segajw.c @@ -368,6 +368,12 @@ INPUT_PORTS_END void segajw_state::machine_start() { + save_item(NAME(m_coin_start_cycles)); + save_item(NAME(m_hopper_start_cycles)); + save_item(NAME(m_coin_counter)); + save_item(NAME(m_coin_lockout)); + save_item(NAME(m_hopper_ctrl)); + save_item(NAME(m_lamps)); } @@ -438,4 +444,4 @@ ROM_START( segajw ) ROM_END -GAMEL( 1991, segajw, 0, segajw, segajw, driver_device, 0, ROT0, "Sega", "Golden Poker Series \"Joker's Wild\" (Rev. B)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS, layout_segajw ) // TODO: correct title +GAMEL( 1991, segajw, 0, segajw, segajw, driver_device, 0, ROT0, "Sega", "Golden Poker Series \"Joker's Wild\" (Rev. B)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_segajw ) // TODO: correct title 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<UINT16 (UINT32)> 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<naomi_m2_board &>(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<sega_315_5881_crypt_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 \ diff --git a/src/mess/drivers/slicer.c b/src/mess/drivers/slicer.c new file mode 100644 index 00000000000..db0d12cc0ec --- /dev/null +++ b/src/mess/drivers/slicer.c @@ -0,0 +1,140 @@ +// Slicer Computers Slicer 80186 SBC +// The bios makefile refers to a "exe3bin" utility, this can be substituted with FreeDOS exe2bin and the /l=0xf800 option +// which will fixup the relocations + +#include "emu.h" +#include "cpu/i86/i186.h" +#include "machine/wd_fdc.h" +#include "machine/mc68681.h" +#include "bus/rs232/rs232.h" +#include "bus/isa/isa.h" +#include "bus/scsi/scsi.h" + +class slicer_state : public driver_device +{ +public: + slicer_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_fdc(*this, "fdc"), + m_sasi(*this, "sasi") + {} + + required_device<fd1797_t> m_fdc; + required_device<SCSI_PORT_DEVICE> m_sasi; + + DECLARE_WRITE8_MEMBER(sio_out_w); + DECLARE_WRITE8_MEMBER(drive_sel_w); +}; + +WRITE8_MEMBER(slicer_state::sio_out_w) +{ + floppy_image_device *floppy; + int state = (data & 0x80) ? 0 : 1; + char devname[8]; + + for(int i = 0; i < 4; i++) + { + sprintf(devname, "%d", i); + floppy = m_fdc->subdevice<floppy_connector>(devname)->get_device(); + if(floppy) + floppy->mon_w(state); + } +} + +WRITE8_MEMBER(slicer_state::drive_sel_w) +{ + data &= 1; + switch(offset) + { + case 0: + m_sasi->write_sel(data); + break; + case 1: + m_sasi->write_rst(data); + break; + case 7: + m_fdc->dden_w(data); + break; + + default: + { + floppy_image_device *floppy; + char devname[8]; + unsigned int drive = 3 - (offset - 2); + if((drive > 3) || !data) + break; + + sprintf(devname, "%d", drive); + floppy = m_fdc->subdevice<floppy_connector>(devname)->get_device(); + m_fdc->set_floppy(floppy); + break; + } + } +} + +static ADDRESS_MAP_START( slicer_map, AS_PROGRAM, 16, slicer_state ) + AM_RANGE(0x00000, 0x3ffff) AM_RAM // fixed 256k for now + AM_RANGE(0xf8000, 0xfffff) AM_ROM AM_REGION("bios", 0) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( slicer_io, AS_IO, 16, slicer_state ) + ADDRESS_MAP_UNMAP_HIGH + AM_RANGE(0x0000, 0x007f) AM_DEVREADWRITE8("fdc", fd1797_t, read, write, 0x00ff) //PCS0 + AM_RANGE(0x0080, 0x00ff) AM_DEVREADWRITE8("sc2681", mc68681_device, read, write, 0x00ff) //PCS1 + AM_RANGE(0x0100, 0x017f) AM_WRITE8(drive_sel_w, 0x00ff) //PCS2 + // TODO: 0x180 sets ack + AM_RANGE(0x0180, 0x0181) AM_DEVREAD8("sasi_data_in", input_buffer_device, read, 0x00ff) AM_DEVWRITE8("sasi_data_out", output_latch_device, write, 0x00ff) //PCS3 + AM_RANGE(0x0180, 0x0181) AM_DEVREAD8("sasi_ctrl_in", input_buffer_device, read, 0xff00) + AM_RANGE(0x0184, 0x0185) AM_DEVREAD8("sasi_data_in", input_buffer_device, read, 0x00ff) AM_DEVWRITE8("sasi_data_out", output_latch_device, write, 0x00ff) + AM_RANGE(0x0184, 0x0185) AM_DEVREAD8("sasi_ctrl_in", input_buffer_device, read, 0xff00) +ADDRESS_MAP_END + +static SLOT_INTERFACE_START( slicer_floppies ) + SLOT_INTERFACE("525dd", FLOPPY_525_DD) + SLOT_INTERFACE("8dsdd", FLOPPY_8_DSDD) +SLOT_INTERFACE_END + +static MACHINE_CONFIG_START( slicer, slicer_state ) + MCFG_CPU_ADD("maincpu", I80186, XTAL_16MHz / 2) + MCFG_CPU_PROGRAM_MAP(slicer_map) + MCFG_CPU_IO_MAP(slicer_io) + + MCFG_MC68681_ADD("sc2681", XTAL_3_6864MHz) + MCFG_MC68681_IRQ_CALLBACK(DEVWRITELINE("maincpu", i80186_cpu_device, int0_w)) + MCFG_MC68681_A_TX_CALLBACK(DEVWRITELINE("rs232_1", rs232_port_device, write_txd)) + MCFG_MC68681_B_TX_CALLBACK(DEVWRITELINE("rs232_2", rs232_port_device, write_txd)) + MCFG_MC68681_OUTPORT_CALLBACK(WRITE8(slicer_state, sio_out_w)) + + MCFG_RS232_PORT_ADD("rs232_1", default_rs232_devices, "terminal") + MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sc2681", mc68681_device, rx_a_w)) + MCFG_RS232_PORT_ADD("rs232_2", default_rs232_devices, NULL) + MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sc2681", mc68681_device, rx_b_w)) + + MCFG_FD1797x_ADD("fdc", XTAL_16MHz/2/8) + MCFG_WD_FDC_INTRQ_CALLBACK(DEVWRITELINE("maincpu", i80186_cpu_device, int1_w)) + MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE("maincpu", i80186_cpu_device, drq0_w)) + MCFG_FLOPPY_DRIVE_ADD("fdc:0", slicer_floppies, "525dd", floppy_image_device::default_floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:1", slicer_floppies, NULL, floppy_image_device::default_floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:2", slicer_floppies, NULL, floppy_image_device::default_floppy_formats) + MCFG_FLOPPY_DRIVE_ADD("fdc:3", slicer_floppies, NULL, floppy_image_device::default_floppy_formats) + + MCFG_DEVICE_ADD("sasi", SCSI_PORT, 0) + MCFG_SCSI_DATA_INPUT_BUFFER("sasi_data_in") + MCFG_SCSI_BSY_HANDLER(DEVWRITELINE("sasi_ctrl_in", input_buffer_device, write_bit3)) + MCFG_SCSI_MSG_HANDLER(DEVWRITELINE("sasi_ctrl_in", input_buffer_device, write_bit4)) + MCFG_SCSI_CD_HANDLER(DEVWRITELINE("sasi_ctrl_in", input_buffer_device, write_bit5)) + MCFG_SCSI_REQ_HANDLER(DEVWRITELINE("sasi_ctrl_in", input_buffer_device, write_bit6)) + MCFG_SCSI_IO_HANDLER(DEVWRITELINE("sasi_ctrl_in", input_buffer_device, write_bit7)) + + MCFG_SCSI_OUTPUT_LATCH_ADD("sasi_data_out", "sasi") + MCFG_DEVICE_ADD("sasi_data_in", INPUT_BUFFER, 0) + MCFG_DEVICE_ADD("sasi_ctrl_in", INPUT_BUFFER, 0) +MACHINE_CONFIG_END + +ROM_START( slicer ) + ROM_REGION(0x8001, "bios", 0) + // built from sources, reset.asm adds an extra byte + ROM_LOAD("epbios.bin", 0x0000, 0x8001, CRC(96fe9dd4) SHA1(5fc43454fe7d51f2ae97aef822155dcd28eb7f23)) +ROM_END + +COMP( 1983, slicer, 0, 0, slicer, 0, driver_device, 0, "Slicer Computers", "Slicer", GAME_NOT_WORKING | GAME_NO_SOUND) diff --git a/src/mess/mess.lst b/src/mess/mess.lst index 63dc3a62701..cd85b6f3fe4 100644 --- a/src/mess/mess.lst +++ b/src/mess/mess.lst @@ -771,13 +771,16 @@ europc // 1988 Schneider Euro PC (CGA or Hercules) compc1 // 1984 Commodore PC-1 pc10iii // 1987 Commodore PC-10 III pc7000 // 1985 Sharp PC-7000 -pcd // Siemens PC-D olypeopl // Olympia People PC sx16 // Sanyo SX-16 mbc16 // Sanyo MBC-16 ataripc3 ssam88s +// Non-PC msdos +pcd // Siemens PC-D +slicer // 1983 Slicer Computers + // PC Junior ibmpcjr // 1984 IBM PC Jr ibmpcjx // 1985 IBM PC JX diff --git a/src/mess/mess.mak b/src/mess/mess.mak index 10f96f0cd16..13ae90f2b22 100644 --- a/src/mess/mess.mak +++ b/src/mess/mess.mak @@ -796,6 +796,7 @@ DRVLIBS += \ $(MESSOBJ)/siemens.a \ $(MESSOBJ)/sinclair.a \ $(MESSOBJ)/skeleton.a \ + $(MESSOBJ)/slicer.a \ $(MESSOBJ)/snk.a \ $(MESSOBJ)/sony.a \ $(MESSOBJ)/sord.a \ @@ -1648,6 +1649,9 @@ $(MESSOBJ)/sinclair.a: \ $(MESSOBJ)/siemens.a: \ $(MESS_DRIVERS)/pcd.o \ +$(MESSOBJ)/slicer.a: \ + $(MESS_DRIVERS)/slicer.o \ + $(MESSOBJ)/snk.a: \ $(MESS_DRIVERS)/ng_aes.o \ $(MESS_DRIVERS)/ngp.o $(MESS_VIDEO)/k1ge.o \ |