From 5e9c24767fe1511213b1ee967f1cf1005582730e Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Mon, 26 Jan 2015 22:42:17 +0100 Subject: [PATCH] m1 (nw) --- src/mame/drivers/hikaru.c | 3 +- src/mame/drivers/naomi.c | 38 ++++++++++++-------- src/mame/machine/naomibd.h | 1 - src/mame/machine/naomicrypt.c | 65 ----------------------------------- src/mame/machine/naomicrypt.h | 15 -------- src/mame/machine/naomim1.c | 22 +++++------- src/mame/machine/naomim1.h | 9 ++--- src/mame/mame.mak | 2 +- 8 files changed, 37 insertions(+), 118 deletions(-) delete mode 100644 src/mame/machine/naomicrypt.c delete mode 100644 src/mame/machine/naomicrypt.h 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(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 \