mirror of
https://github.com/holub/mame
synced 2025-04-23 17:00:53 +03:00
m1 (nw)
This commit is contained in:
parent
65523cb53f
commit
5e9c24767f
@ -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 )
|
||||
|
@ -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 )
|
||||
|
@ -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) \
|
||||
|
@ -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;
|
||||
}
|
@ -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 ) \
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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 \
|
||||
|
Loading…
Reference in New Issue
Block a user