Previous 199869 Revisions Next

r34628 Monday 26th January, 2015 at 21:41:56 UTC by Olivier Galibert
m1 (nw)
[src/mame]mame.mak
[src/mame/drivers]hikaru.c naomi.c
[src/mame/machine]naomibd.h naomicrypt.c naomicrypt.h naomim1.c naomim1.h

trunk/src/mame/drivers/hikaru.c
r243139r243140
381381
382382#include "emu.h"
383383#include "cpu/sh4/sh4.h"
384#include "machine/naomicrypt.h"
385384
386385#define CPU_CLOCK (200000000)
387386                           /* MD2 MD1 MD0 MD6 MD4 MD3 MD5 MD7 MD8 */
r243139r243140
740739
741740   // 317-0283-COM Actel A54SX32
742741   // ID 0x4252
743   _NAOMI_M1_KEYFILE( "sgnascar-key.bin", CRC(f1452f9e) SHA1(86fb0f278a2eb0aba66a24032fb683f7a516b32b) )
742   ROM_PARAMETER( ":rom_board:key", "56dedf33" )
744743ROM_END
745744
746745GAME( 2000, hikaru,   0,        hikaru,   hikaru, driver_device,   0, ROT0, "Sega",            "Hikaru Bios", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_IS_BIOS_ROOT )
trunk/src/mame/drivers/naomi.c
r243139r243140
15091509#include "machine/jvs13551.h"
15101510#include "includes/dc.h"
15111511#include "includes/naomi.h"
1512#include "machine/naomicrypt.h"
15131512
15141513#define CPU_CLOCK (200000000)
15151514
r243139r243140
26542653 */
26552654
26562655static MACHINE_CONFIG_DERIVED( naomim1, naomi_base )
2657   MCFG_NAOMI_M1_BOARD_ADD("rom_board", ":rom_key", "naomibd_eeprom", ":boardid", WRITE8(dc_state, g1_irq))
2656   MCFG_NAOMI_M1_BOARD_ADD("rom_board", "naomibd_eeprom", ":boardid", WRITE8(dc_state, g1_irq))
26582657MACHINE_CONFIG_END
26592658
26602659/*
r243139r243140
40754074
40764075   ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
40774076
4078   _NAOMI_M1_KEYFILE( "gram2000-key.bin", CRC(179314d9) SHA1(3dbbc04e9ff62800d08c4a239af3a83252a28dc0) )
4077   // 840-0039    2000
4078   ROM_PARAMETER( ":rom_board:key", "3f5c807f" )
40794079ROM_END
40804080
40814081ROM_START( tduno )
r243139r243140
41164116
41174117   ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
41184118
4119   _NAOMI_M1_KEYFILE("tduno2.key", CRC(8e0f0f3b) SHA1(914d3db8746c806d559539cc0851169161d32c04) )
4119   // 840-0022    2000
4120   ROM_PARAMETER( ":rom_board:key", "2f6f0f8d" )
41204121ROM_END
41214122
41224123ROM_START( mtkob2 )
r243139r243140
41344135
41354136   ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
41364137
4137   _NAOMI_M1_KEYFILE("mtkob2-key.bin", CRC(db088208) SHA1(14d65ad2555183a445abcd93907c85df4032b41d) )
4138   // 840-0150    2003
4139   ROM_PARAMETER( ":rom_board:key", "3892fb3a" )
41384140ROM_END
41394141
41404142ROM_START( mushi2k5 )
r243139r243140
44984500
44994501   ROM_COPY( "rom_board", 0x1200000, 0x400000, 0x400000 )
45004502
4501   _NAOMI_M1_KEYFILE( "mvsc2-key.bin", CRC(76f095b4) SHA1(773fd67e1eb471a989b3ee6e969a3d33bf61e779) )
4503   // 841-0007-02 2000
4504   ROM_PARAMETER( ":rom_board:key", "7c6e8bc1" )
45024505ROM_END
45034506
45044507/* toy fighter - 1999 sega */
r243139r243140
51025105
51035106   ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
51045107
5105   _NAOMI_M1_KEYFILE("qmegamis-key.bin", CRC(b08650c0) SHA1(9e6b0fac6fb05209da9e01bb1a5437949d218078) )
5108   // 840-0030    2000
5109   ROM_PARAMETER( ":rom_board:key", "96489bcd" )
51065110ROM_END
51075111
51085112/*
r243139r243140
52335237
52345238   ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
52355239
5236   _NAOMI_M1_KEYFILE( "shootopl-key.bin", CRC(45547e02) SHA1(4f79f478ff1eea14bc939a67ff570143cb56a4bf) )
5240   // 840-0098    2002
5241   ROM_PARAMETER( ":rom_board:key", "a77cf3a0" )
52375242ROM_END
52385243
52395244// Shootout Pool Prize
r243139r243140
52505255
52515256   ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
52525257
5253   _NAOMI_M1_KEYFILE( "shootpl-key.bin", CRC(03c30b17) SHA1(e8e8659aa27b3d1cac2268850d3973d9afeaeba9) )
5258   // 840-0128    2002
5259   ROM_PARAMETER( ":rom_board:key", "cde98d9d" )
52545260ROM_END
52555261
52565262// Shootout Pool Prize Ver. B
r243139r243140
52675273
52685274   ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
52695275
5270   _NAOMI_M1_KEYFILE( "shootpl-key.bin", CRC(03c30b17) SHA1(e8e8659aa27b3d1cac2268850d3973d9afeaeba9) )
5276   // 840-0128    2002
5277   ROM_PARAMETER( ":rom_board:key", "cde98d9d" )
52715278ROM_END
52725279
52735280/* Oinori-daimyoujin Matsuri (medal) */
r243139r243140
62496256
62506257   ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
62516258
6252   _NAOMI_M1_KEYFILE("vtenis2c-key.bin", CRC(b8c5b510) SHA1(f36d037a62a576e71211093e075f0ffa7e312c2d) )
6259   // 840-0084    2001
6260   ROM_PARAMETER( ":rom_board:key", "43472d2d" )
62536261ROM_END
62546262
62556263ROM_START( kick4csh )
r243139r243140
62786286
62796287   ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
62806288
6281   _NAOMI_M1_KEYFILE( "kick4csh-key.bin", CRC(889d2ea1) SHA1(daf7acf41b6bc607d443a93221a3e4554b99547f) )
6289   // 840-0140    2004
6290   ROM_PARAMETER( ":rom_board:key", "c9570882" )
62826291ROM_END
62836292
62846293ROM_START( wrungp )
r243139r243140
65876596   ROM_COPY( "rom_board", 0x01000000, 0x400000, 0xc00000 )
65886597
65896598   // M1 board, but it doesn't appear the protection is used
6590   _NAOMI_M1_KEYFILE_UNUSED
6599   ROM_PARAMETER( ":rom_board:key", "0" )
65916600
65926601   // this dump can't be used as main_eeprom, because that's exactly 0x80 bytes
65936602   ROM_REGION(0x84, "some_eeprom", 0)
r243139r243140
79497958
79507959   ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
79517960
7952   _NAOMI_M1_KEYFILE( "vf4evoct-key.bin", CRC(11111111) SHA1(1111111111111111111111111111111111111111) )
7961   // 840-0106    2002
7962   ROM_PARAMETER( ":rom_board:key", "cdb05b1e" )
79537963ROM_END
79547964
79557965ROM_START( hopper )
trunk/src/mame/machine/naomibd.h
r243139r243140
22#define _NAOMIBD_H_
33
44#include "machine/naomig1.h"
5#include "machine/naomicrypt.h"
65
76#define MCFG_NAOMI_BOARD_ADD(_tag, type, _eeprom_tag, _actel_tag, _irq_cb)    \
87   MCFG_NAOMI_G1_ADD(_tag, type, _irq_cb)                        \
trunk/src/mame/machine/naomicrypt.c
r243139r243140
1
2/* Sega 'M1' type encryption ( using an Actel A54SX32 )
3
4 see naomim1.c for Naomi hokup details
5
6 The keys here are totally arbitrary and have nothing to do with the real keys.
7
8 used by
9 Naomi
10 Hikaru
11
12
13
14 */
15
16
17#include "emu.h"
18#include "naomicrypt.h"
19
20struct game_keys
21{
22   const char *name;             /* game driver name */
23   const UINT32 key;
24
25};
26
27static const struct game_keys keys_table[] =
28{
29   // name             key              gameid #         year
30// M1
31   { "tduno2",          0x2f6f0f8d }, // 840-0022    2000
32   { "qmegamis",        0x96489bcd }, // 840-0030    2000
33   { "gram2000",        0x3f5c807f }, // 840-0039    2000
34   { "vtenis2c",        0x43472d2d }, // 840-0084    2001
35   { "shootopl",        0xa77cf3a0 }, // 840-0098    2002
36   { "vf4evoct",        0xcdb05b1e }, // 840-0106    2002
37   { "shootpl",         0xcde98d9d }, // 840-0128    2002
38   { "shootplm",        0xcde98d9d }, // 840-0136    2002
39   { "kick4csh",        0xc9570882 }, // 840-0140    2004
40   { "mtkob2",          0x3892fb3a }, // 840-0150    2003
41   { "mvsc2",           0x7c6e8bc1 }, // 841-0007-02 2000
42//   sgnascar  (Hikaru)
43   { NULL, 0 }    // end of table
44};
45
46
47UINT32 get_naomi_key(running_machine &machine)
48{
49   const char *gamename = machine.system().name;
50   const struct game_keys *k = &keys_table[0];
51
52   while (k->name)
53   {
54      if (strcmp(k->name, gamename) == 0)
55      {
56         // we have a proper key so return it
57         return k->key;
58      }
59      ++k;
60   }
61
62   printf("get_naomi_key : KEY NOT FOUND\n");
63
64   return 0;
65}
trunk/src/mame/machine/naomicrypt.h
r243139r243140
1/* naomicrypt.h */
2
3// use internal M1 key tables, or external files (0 = external files)
4#define USE_NAOMICRYPT 0
5
6UINT32 get_naomi_key(running_machine &machine);
7
8#define _NAOMI_M1_KEYFILE(name,hash) \
9   ROM_REGION( 4, "rom_key", 0 ) \
10   ROM_LOAD( name, 0, 4, hash )
11
12
13#define _NAOMI_M1_KEYFILE_UNUSED \
14   ROM_REGION( 4, "rom_key", ROMREGION_ERASE00 ) \
15
trunk/src/mame/machine/naomim1.c
r243139r243140
1313naomi_m1_board::naomi_m1_board(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
1414   : naomi_board(mconfig, NAOMI_M1_BOARD, "Sega NAOMI M1 Board", tag, owner, clock, "naomi_m1_board", __FILE__)
1515{
16   key_tag = 0;
1716}
1817
19void naomi_m1_board::static_set_tags(device_t &device, const char *_key_tag)
20{
21   naomi_m1_board &dev = downcast<naomi_m1_board &>(device);
22   dev.key_tag = _key_tag;
23}
24
2518READ16_MEMBER(naomi_m1_board::actel_id_r)
2619{
2720   if (rombdid_tag && memregion(rombdid_tag) != NULL)
r243139r243140
3730{
3831   naomi_board::device_start();
3932
40#if USE_NAOMICRYPT
41   key = get_naomi_key(machine());
42#else
43   const UINT8 *key_data = memregion(key_tag)->base();
44   key = (key_data[0] << 24) | (key_data[1] << 16) | (key_data[2] << 8) | key_data[3];
45#endif
33   astring skey = parameter("key");
34   if(skey)
35      key = strtoll(skey.cstr(), 0, 16);
36   else
37   {
38      logerror("%s: Warning: key not provided\n", tag());
39      key = 0;
40   }
41
4642   buffer = auto_alloc_array(machine(), UINT8, BUFFER_SIZE);
4743
4844   save_pointer(NAME(buffer), BUFFER_SIZE);
trunk/src/mame/machine/naomim1.h
r243139r243140
33
44#include "naomibd.h"
55
6#define MCFG_NAOMI_M1_BOARD_ADD(_tag, _key_tag, _eeprom_tag, _actel_tag, _irq_cb) \
7   MCFG_NAOMI_BOARD_ADD(_tag, NAOMI_M1_BOARD, _eeprom_tag, _actel_tag, _irq_cb) \
8   naomi_m1_board::static_set_tags(*device, _key_tag);
6#define MCFG_NAOMI_M1_BOARD_ADD(_tag, _eeprom_tag, _actel_tag, _irq_cb) \
7   MCFG_NAOMI_BOARD_ADD(_tag, NAOMI_M1_BOARD, _eeprom_tag, _actel_tag, _irq_cb)
98
109class naomi_m1_board : public naomi_board
1110{
1211public:
1312   naomi_m1_board(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
1413
15   static void static_set_tags(device_t &device, const char *_key_tag);
16
1714   virtual DECLARE_ADDRESS_MAP(submap, 16);
1815
1916   DECLARE_READ16_MEMBER(actel_id_r);
r243139r243140
2825
2926private:
3027   enum { BUFFER_SIZE = 32768 };
31
32   const char *key_tag;
3328   UINT32 key;
3429
3530   UINT8 *buffer;
trunk/src/mame/mame.mak
r243139r243140
17211721   $(DRIVERS)/monacogp.o \
17221722   $(DRIVERS)/naomi.o $(MACHINE)/dc.o $(VIDEO)/powervr2.o $(MACHINE)/naomi.o \
17231723   $(MACHINE)/naomig1.o $(MACHINE)/naomibd.o $(MACHINE)/naomirom.o $(MACHINE)/naomigd.o \
1724   $(MACHINE)/naomicrypt.o $(MACHINE)/naomim1.o $(MACHINE)/naomim2.o $(MACHINE)/naomim4.o \
1724   $(MACHINE)/naomim1.o $(MACHINE)/naomim2.o $(MACHINE)/naomim4.o \
17251725   $(MACHINE)/315-5881_crypt.o \
17261726   $(MACHINE)/awboard.o \
17271727   $(MACHINE)/mie.o $(MACHINE)/maple-dc.o $(MACHINE)/mapledev.o $(MACHINE)/dc-ctrl.o $(MACHINE)/jvs13551.o \


Previous 199869 Revisions Next


© 1997-2024 The MAME Team