summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2015-01-26 22:42:17 +0100
committer Olivier Galibert <galibert@pobox.com>2015-01-26 22:41:56 +0100
commit5e9c24767fe1511213b1ee967f1cf1005582730e (patch)
tree99a2d30b1d9e702e59ee9ce3ce4a914687b6e64f
parent65523cb53fba90208cf81992c81e466b6145bcb7 (diff)
m1 (nw)
-rw-r--r--src/mame/drivers/hikaru.c3
-rw-r--r--src/mame/drivers/naomi.c38
-rw-r--r--src/mame/machine/naomibd.h1
-rw-r--r--src/mame/machine/naomicrypt.c65
-rw-r--r--src/mame/machine/naomicrypt.h15
-rw-r--r--src/mame/machine/naomim1.c22
-rw-r--r--src/mame/machine/naomim1.h9
-rw-r--r--src/mame/mame.mak2
8 files changed, 37 insertions, 118 deletions
diff --git a/src/mame/drivers/hikaru.c b/src/mame/drivers/hikaru.c
index 8ab674e2d29..6d6849e315c 100644
--- a/src/mame/drivers/hikaru.c
+++ b/src/mame/drivers/hikaru.c
@@ -381,7 +381,6 @@ Notes:
#include "emu.h"
#include "cpu/sh4/sh4.h"
-#include "machine/naomicrypt.h"
#define CPU_CLOCK (200000000)
/* MD2 MD1 MD0 MD6 MD4 MD3 MD5 MD7 MD8 */
@@ -740,7 +739,7 @@ ROM_START( sgnascar )
// 317-0283-COM Actel A54SX32
// ID 0x4252
- _NAOMI_M1_KEYFILE( "sgnascar-key.bin", CRC(f1452f9e) SHA1(86fb0f278a2eb0aba66a24032fb683f7a516b32b) )
+ ROM_PARAMETER( ":rom_board:key", "56dedf33" )
ROM_END
GAME( 2000, hikaru, 0, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Hikaru Bios", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_IS_BIOS_ROOT )
diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c
index 537941d4797..253e4665ebf 100644
--- a/src/mame/drivers/naomi.c
+++ b/src/mame/drivers/naomi.c
@@ -1509,7 +1509,6 @@ Sushi Bar
#include "machine/jvs13551.h"
#include "includes/dc.h"
#include "includes/naomi.h"
-#include "machine/naomicrypt.h"
#define CPU_CLOCK (200000000)
@@ -2654,7 +2653,7 @@ MACHINE_CONFIG_END
*/
static MACHINE_CONFIG_DERIVED( naomim1, naomi_base )
- MCFG_NAOMI_M1_BOARD_ADD("rom_board", ":rom_key", "naomibd_eeprom", ":boardid", WRITE8(dc_state, g1_irq))
+ MCFG_NAOMI_M1_BOARD_ADD("rom_board", "naomibd_eeprom", ":boardid", WRITE8(dc_state, g1_irq))
MACHINE_CONFIG_END
/*
@@ -4075,7 +4074,8 @@ ROM_START( gram2000 )
ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
- _NAOMI_M1_KEYFILE( "gram2000-key.bin", CRC(179314d9) SHA1(3dbbc04e9ff62800d08c4a239af3a83252a28dc0) )
+ // 840-0039 2000
+ ROM_PARAMETER( ":rom_board:key", "3f5c807f" )
ROM_END
ROM_START( tduno )
@@ -4116,7 +4116,8 @@ ROM_START( tduno2 )
ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
- _NAOMI_M1_KEYFILE("tduno2.key", CRC(8e0f0f3b) SHA1(914d3db8746c806d559539cc0851169161d32c04) )
+ // 840-0022 2000
+ ROM_PARAMETER( ":rom_board:key", "2f6f0f8d" )
ROM_END
ROM_START( mtkob2 )
@@ -4134,7 +4135,8 @@ ROM_START( mtkob2 )
ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
- _NAOMI_M1_KEYFILE("mtkob2-key.bin", CRC(db088208) SHA1(14d65ad2555183a445abcd93907c85df4032b41d) )
+ // 840-0150 2003
+ ROM_PARAMETER( ":rom_board:key", "3892fb3a" )
ROM_END
ROM_START( mushi2k5 )
@@ -4498,7 +4500,8 @@ ROM_START( mvsc2 )
ROM_COPY( "rom_board", 0x1200000, 0x400000, 0x400000 )
- _NAOMI_M1_KEYFILE( "mvsc2-key.bin", CRC(76f095b4) SHA1(773fd67e1eb471a989b3ee6e969a3d33bf61e779) )
+ // 841-0007-02 2000
+ ROM_PARAMETER( ":rom_board:key", "7c6e8bc1" )
ROM_END
/* toy fighter - 1999 sega */
@@ -5102,7 +5105,8 @@ ROM_START( qmegamis )
ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
- _NAOMI_M1_KEYFILE("qmegamis-key.bin", CRC(b08650c0) SHA1(9e6b0fac6fb05209da9e01bb1a5437949d218078) )
+ // 840-0030 2000
+ ROM_PARAMETER( ":rom_board:key", "96489bcd" )
ROM_END
/*
@@ -5233,7 +5237,8 @@ ROM_START( shootopl )
ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
- _NAOMI_M1_KEYFILE( "shootopl-key.bin", CRC(45547e02) SHA1(4f79f478ff1eea14bc939a67ff570143cb56a4bf) )
+ // 840-0098 2002
+ ROM_PARAMETER( ":rom_board:key", "a77cf3a0" )
ROM_END
// Shootout Pool Prize
@@ -5250,7 +5255,8 @@ ROM_START( shootpl )
ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
- _NAOMI_M1_KEYFILE( "shootpl-key.bin", CRC(03c30b17) SHA1(e8e8659aa27b3d1cac2268850d3973d9afeaeba9) )
+ // 840-0128 2002
+ ROM_PARAMETER( ":rom_board:key", "cde98d9d" )
ROM_END
// Shootout Pool Prize Ver. B
@@ -5267,7 +5273,8 @@ ROM_START( shootplm )
ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
- _NAOMI_M1_KEYFILE( "shootpl-key.bin", CRC(03c30b17) SHA1(e8e8659aa27b3d1cac2268850d3973d9afeaeba9) )
+ // 840-0128 2002
+ ROM_PARAMETER( ":rom_board:key", "cde98d9d" )
ROM_END
/* Oinori-daimyoujin Matsuri (medal) */
@@ -6249,7 +6256,8 @@ ROM_START( vtenis2c )
ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
- _NAOMI_M1_KEYFILE("vtenis2c-key.bin", CRC(b8c5b510) SHA1(f36d037a62a576e71211093e075f0ffa7e312c2d) )
+ // 840-0084 2001
+ ROM_PARAMETER( ":rom_board:key", "43472d2d" )
ROM_END
ROM_START( kick4csh )
@@ -6278,7 +6286,8 @@ ROM_START( kick4csh )
ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
- _NAOMI_M1_KEYFILE( "kick4csh-key.bin", CRC(889d2ea1) SHA1(daf7acf41b6bc607d443a93221a3e4554b99547f) )
+ // 840-0140 2004
+ ROM_PARAMETER( ":rom_board:key", "c9570882" )
ROM_END
ROM_START( wrungp )
@@ -6587,7 +6596,7 @@ ROM_START( puyofevp )
ROM_COPY( "rom_board", 0x01000000, 0x400000, 0xc00000 )
// M1 board, but it doesn't appear the protection is used
- _NAOMI_M1_KEYFILE_UNUSED
+ ROM_PARAMETER( ":rom_board:key", "0" )
// this dump can't be used as main_eeprom, because that's exactly 0x80 bytes
ROM_REGION(0x84, "some_eeprom", 0)
@@ -7949,7 +7958,8 @@ ROM_START( vf4evoct )
ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
- _NAOMI_M1_KEYFILE( "vf4evoct-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111) )
+ // 840-0106 2002
+ ROM_PARAMETER( ":rom_board:key", "cdb05b1e" )
ROM_END
ROM_START( hopper )
diff --git a/src/mame/machine/naomibd.h b/src/mame/machine/naomibd.h
index b7b4100e1c9..c3484a436af 100644
--- a/src/mame/machine/naomibd.h
+++ b/src/mame/machine/naomibd.h
@@ -2,7 +2,6 @@
#define _NAOMIBD_H_
#include "machine/naomig1.h"
-#include "machine/naomicrypt.h"
#define MCFG_NAOMI_BOARD_ADD(_tag, type, _eeprom_tag, _actel_tag, _irq_cb) \
MCFG_NAOMI_G1_ADD(_tag, type, _irq_cb) \
diff --git a/src/mame/machine/naomicrypt.c b/src/mame/machine/naomicrypt.c
deleted file mode 100644
index d7654025906..00000000000
--- a/src/mame/machine/naomicrypt.c
+++ /dev/null
@@ -1,65 +0,0 @@
-
-/* Sega 'M1' type encryption ( using an Actel A54SX32 )
-
- see naomim1.c for Naomi hokup details
-
- The keys here are totally arbitrary and have nothing to do with the real keys.
-
- used by
- Naomi
- Hikaru
-
-
-
- */
-
-
-#include "emu.h"
-#include "naomicrypt.h"
-
-struct game_keys
-{
- const char *name; /* game driver name */
- const UINT32 key;
-
-};
-
-static const struct game_keys keys_table[] =
-{
- // name key gameid # year
-// M1
- { "tduno2", 0x2f6f0f8d }, // 840-0022 2000
- { "qmegamis", 0x96489bcd }, // 840-0030 2000
- { "gram2000", 0x3f5c807f }, // 840-0039 2000
- { "vtenis2c", 0x43472d2d }, // 840-0084 2001
- { "shootopl", 0xa77cf3a0 }, // 840-0098 2002
- { "vf4evoct", 0xcdb05b1e }, // 840-0106 2002
- { "shootpl", 0xcde98d9d }, // 840-0128 2002
- { "shootplm", 0xcde98d9d }, // 840-0136 2002
- { "kick4csh", 0xc9570882 }, // 840-0140 2004
- { "mtkob2", 0x3892fb3a }, // 840-0150 2003
- { "mvsc2", 0x7c6e8bc1 }, // 841-0007-02 2000
-// sgnascar (Hikaru)
- { NULL, 0 } // end of table
-};
-
-
-UINT32 get_naomi_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/naomicrypt.h b/src/mame/machine/naomicrypt.h
deleted file mode 100644
index 55e01456ce2..00000000000
--- a/src/mame/machine/naomicrypt.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* naomicrypt.h */
-
-// use internal M1 key tables, or external files (0 = external files)
-#define USE_NAOMICRYPT 0
-
-UINT32 get_naomi_key(running_machine &machine);
-
-#define _NAOMI_M1_KEYFILE(name,hash) \
- ROM_REGION( 4, "rom_key", 0 ) \
- ROM_LOAD( name, 0, 4, hash )
-
-
-#define _NAOMI_M1_KEYFILE_UNUSED \
- ROM_REGION( 4, "rom_key", ROMREGION_ERASE00 ) \
-
diff --git a/src/mame/machine/naomim1.c b/src/mame/machine/naomim1.c
index 696d88e61ea..6250d87ee07 100644
--- a/src/mame/machine/naomim1.c
+++ b/src/mame/machine/naomim1.c
@@ -13,13 +13,6 @@ ADDRESS_MAP_END
naomi_m1_board::naomi_m1_board(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: naomi_board(mconfig, NAOMI_M1_BOARD, "Sega NAOMI M1 Board", tag, owner, clock, "naomi_m1_board", __FILE__)
{
- key_tag = 0;
-}
-
-void naomi_m1_board::static_set_tags(device_t &device, const char *_key_tag)
-{
- naomi_m1_board &dev = downcast<naomi_m1_board &>(device);
- dev.key_tag = _key_tag;
}
READ16_MEMBER(naomi_m1_board::actel_id_r)
@@ -37,12 +30,15 @@ void naomi_m1_board::device_start()
{
naomi_board::device_start();
-#if USE_NAOMICRYPT
- key = get_naomi_key(machine());
-#else
- const UINT8 *key_data = memregion(key_tag)->base();
- key = (key_data[0] << 24) | (key_data[1] << 16) | (key_data[2] << 8) | key_data[3];
-#endif
+ astring skey = parameter("key");
+ if(skey)
+ key = strtoll(skey.cstr(), 0, 16);
+ else
+ {
+ logerror("%s: Warning: key not provided\n", tag());
+ key = 0;
+ }
+
buffer = auto_alloc_array(machine(), UINT8, BUFFER_SIZE);
save_pointer(NAME(buffer), BUFFER_SIZE);
diff --git a/src/mame/machine/naomim1.h b/src/mame/machine/naomim1.h
index 2bf063a1eab..4044c119d9d 100644
--- a/src/mame/machine/naomim1.h
+++ b/src/mame/machine/naomim1.h
@@ -3,17 +3,14 @@
#include "naomibd.h"
-#define MCFG_NAOMI_M1_BOARD_ADD(_tag, _key_tag, _eeprom_tag, _actel_tag, _irq_cb) \
- MCFG_NAOMI_BOARD_ADD(_tag, NAOMI_M1_BOARD, _eeprom_tag, _actel_tag, _irq_cb) \
- naomi_m1_board::static_set_tags(*device, _key_tag);
+#define MCFG_NAOMI_M1_BOARD_ADD(_tag, _eeprom_tag, _actel_tag, _irq_cb) \
+ MCFG_NAOMI_BOARD_ADD(_tag, NAOMI_M1_BOARD, _eeprom_tag, _actel_tag, _irq_cb)
class naomi_m1_board : public naomi_board
{
public:
naomi_m1_board(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- static void static_set_tags(device_t &device, const char *_key_tag);
-
virtual DECLARE_ADDRESS_MAP(submap, 16);
DECLARE_READ16_MEMBER(actel_id_r);
@@ -28,8 +25,6 @@ protected:
private:
enum { BUFFER_SIZE = 32768 };
-
- const char *key_tag;
UINT32 key;
UINT8 *buffer;
diff --git a/src/mame/mame.mak b/src/mame/mame.mak
index 6193ab61f7e..61eb7ee6ea9 100644
--- a/src/mame/mame.mak
+++ b/src/mame/mame.mak
@@ -1721,7 +1721,7 @@ $(MAMEOBJ)/sega.a: \
$(DRIVERS)/monacogp.o \
$(DRIVERS)/naomi.o $(MACHINE)/dc.o $(VIDEO)/powervr2.o $(MACHINE)/naomi.o \
$(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)/naomim1.o $(MACHINE)/naomim2.o $(MACHINE)/naomim4.o \
$(MACHINE)/315-5881_crypt.o \
$(MACHINE)/awboard.o \
$(MACHINE)/mie.o $(MACHINE)/maple-dc.o $(MACHINE)/mapledev.o $(MACHINE)/dc-ctrl.o $(MACHINE)/jvs13551.o \