From: Atari Ace [mailto:atari_ace@verizon.net]

Subject: [patch] fd1089 external keys
Hi mamedev,

The attached patch moves the fd1089 decryption keys out of the source
of MAME and into the ROM files.  Nicola suggested this would now be
reasonable, so long as the incomplete ones were marked with BAD_DUMP.

~aa
This commit is contained in:
Aaron Giles 2008-08-20 01:26:42 +00:00
parent 01c0923170
commit 44019c7433
7 changed files with 234 additions and 5881 deletions

View File

@ -15,12 +15,136 @@
#include <ctype.h> #include <ctype.h>
/*************************************
*
* Constants
*
*************************************/
enum
{
CMD_SCAN_REVERSE,
CMD_SCAN_REVERSE_END,
CMD_STEP_REVERSE,
CMD_SCAN_FORWARD,
CMD_SCAN_FORWARD_END,
CMD_STEP_FORWARD,
CMD_PLAY,
CMD_PAUSE,
CMD_DISPLAY_ON,
CMD_DISPLAY_OFF,
CMD_0,
CMD_1,
CMD_2,
CMD_3,
CMD_4,
CMD_5,
CMD_6,
CMD_7,
CMD_8,
CMD_9,
CMD_SEARCH
};
/*************************************
*
* Globals
*
*************************************/
static astring *filename; static astring *filename;
static input_port_value last_controls; static input_port_value last_controls;
static UINT8 playing; static UINT8 playing;
static UINT8 displaying; static UINT8 displaying;
static void (*execute_command)(const device_config *laserdisc, int command);
/*************************************
*
* LD-V1000 implementation
*
*************************************/
static void ldv1000_execute(const device_config *laserdisc, int command)
{
static const UINT8 digits[10] = { 0x3f, 0x0f, 0x8f, 0x4f, 0x2f, 0xaf, 0x6f, 0x1f, 0x9f, 0x5f };
switch (command)
{
case CMD_SCAN_REVERSE:
laserdisc_data_w(laserdisc, 0xf8);
playing = TRUE;
break;
case CMD_SCAN_REVERSE_END:
laserdisc_data_w(laserdisc, 0xfd);
playing = TRUE;
break;
case CMD_STEP_REVERSE:
laserdisc_data_w(laserdisc, 0xfe);
playing = FALSE;
break;
case CMD_SCAN_FORWARD:
laserdisc_data_w(laserdisc, 0xf0);
playing = TRUE;
break;
case CMD_SCAN_FORWARD_END:
laserdisc_data_w(laserdisc, 0xfd);
playing = TRUE;
break;
case CMD_STEP_FORWARD:
laserdisc_data_w(laserdisc, 0xf6);
playing = FALSE;
break;
case CMD_PLAY:
laserdisc_data_w(laserdisc, 0xfd);
playing = TRUE;
break;
case CMD_PAUSE:
laserdisc_data_w(laserdisc, 0xa0);
playing = FALSE;
break;
case CMD_DISPLAY_ON:
laserdisc_data_w(laserdisc, digits[1]);
laserdisc_data_w(laserdisc, 0xf1);
break;
case CMD_DISPLAY_OFF:
laserdisc_data_w(laserdisc, digits[0]);
laserdisc_data_w(laserdisc, 0xf1);
break;
case CMD_0:
case CMD_1:
case CMD_2:
case CMD_3:
case CMD_4:
case CMD_5:
case CMD_6:
case CMD_7:
case CMD_8:
case CMD_9:
laserdisc_data_w(laserdisc, digits[command - CMD_0]);
break;
case CMD_SEARCH:
laserdisc_data_w(laserdisc, 0xf7);
playing = FALSE;
break;
}
}
/************************************* /*************************************
@ -31,7 +155,6 @@ static UINT8 displaying;
static void process_commands(const device_config *laserdisc) static void process_commands(const device_config *laserdisc)
{ {
static const UINT8 digits[10] = { 0x3f, 0x0f, 0x8f, 0x4f, 0x2f, 0xaf, 0x6f, 0x1f, 0x9f, 0x5f };
input_port_value controls = input_port_read(laserdisc->machine, "controls"); input_port_value controls = input_port_read(laserdisc->machine, "controls");
int number; int number;
@ -39,56 +162,52 @@ static void process_commands(const device_config *laserdisc)
if (!(last_controls & 0x01) && (controls & 0x01)) if (!(last_controls & 0x01) && (controls & 0x01))
{ {
if (playing) if (playing)
laserdisc_data_w(laserdisc, 0xf8); (*execute_command)(laserdisc, CMD_SCAN_REVERSE);
else else
laserdisc_data_w(laserdisc, 0xfe); (*execute_command)(laserdisc, CMD_STEP_REVERSE);
} }
else if ((last_controls & 0x01) && !(controls & 0x01)) else if ((last_controls & 0x01) && !(controls & 0x01))
{ {
if (playing) if (playing)
laserdisc_data_w(laserdisc, 0xfd); (*execute_command)(laserdisc, CMD_SCAN_REVERSE_END);
} }
/* scan/step forwards */ /* scan/step forwards */
if (!(last_controls & 0x02) && (controls & 0x02)) if (!(last_controls & 0x02) && (controls & 0x02))
{ {
if (playing) if (playing)
laserdisc_data_w(laserdisc, 0xf0); (*execute_command)(laserdisc, CMD_SCAN_FORWARD);
else else
laserdisc_data_w(laserdisc, 0xf6); (*execute_command)(laserdisc, CMD_STEP_FORWARD);
} }
else if ((last_controls & 0x02) && !(controls & 0x02)) else if ((last_controls & 0x02) && !(controls & 0x02))
{ {
if (playing) if (playing)
laserdisc_data_w(laserdisc, 0xfd); (*execute_command)(laserdisc, CMD_SCAN_FORWARD_END);
} }
/* play/pause */ /* play/pause */
if (!(last_controls & 0x10) && (controls & 0x10)) if (!(last_controls & 0x10) && (controls & 0x10))
{ {
playing = !playing; playing = !playing;
laserdisc_data_w(laserdisc, playing ? 0xfd : 0xa0); (*execute_command)(laserdisc, playing ? CMD_PLAY : CMD_PAUSE);
} }
/* toggle display */ /* toggle display */
if (!(last_controls & 0x20) && (controls & 0x20)) if (!(last_controls & 0x20) && (controls & 0x20))
{ {
displaying = !displaying; displaying = !displaying;
laserdisc_data_w(laserdisc, digits[displaying]); (*execute_command)(laserdisc, displaying ? CMD_DISPLAY_ON : CMD_DISPLAY_OFF);
laserdisc_data_w(laserdisc, 0xf1);
} }
/* numbers */ /* numbers */
for (number = 0; number < 10; number++) for (number = 0; number < 10; number++)
if (!(last_controls & (0x100 << number)) && (controls & (0x100 << number))) if (!(last_controls & (0x100 << number)) && (controls & (0x100 << number)))
laserdisc_data_w(laserdisc, digits[number]); (*execute_command)(laserdisc, CMD_0 + number);
/* enter */ /* enter */
if (!(last_controls & 0x40000) && (controls & 0x40000)) if (!(last_controls & 0x40000) && (controls & 0x40000))
{ (*execute_command)(laserdisc, CMD_SEARCH);
playing = FALSE;
laserdisc_data_w(laserdisc, 0xf7);
}
last_controls = controls; last_controls = controls;
} }
@ -286,10 +405,14 @@ static DRIVER_INIT( ldplayer )
static DRIVER_INIT( ldv1000 ) { execute_command = ldv1000_execute; DRIVER_INIT_CALL(ldplayer); }
/************************************* /*************************************
* *
* Game drivers * Game drivers
* *
*************************************/ *************************************/
GAME( 2008, ldv1000, 0, ldv1000, ldplayer, ldplayer, ROT0, "MAME", "LDV-1000 Simulator", 0 ) GAME( 2008, ldv1000, 0, ldv1000, ldplayer, ldv1000, ROT0, "MAME", "LDV-1000 Simulator", 0 )

View File

@ -1400,7 +1400,7 @@ ROM_END
************************************************************************************************************************** **************************************************************************************************************************
************************************************************************************************************************** **************************************************************************************************************************
Enduro Racer Enduro Racer
CPU: FD1089A (317-0013A) CPU: FD1089B (317-0013A)
YM2151 sound board YM2151 sound board
ASSY CPU BD 837-6001-01 ASSY CPU BD 837-6001-01
@ -1472,11 +1472,14 @@ ROM_START( enduror )
ROM_REGION( 0x2000, "proms", 0 ) /* zoom table */ ROM_REGION( 0x2000, "proms", 0 ) /* zoom table */
ROM_LOAD( "epr-6844.ic123", 0x0000, 0x2000, CRC(e3ec7bd6) SHA1(feec0fe664e16fac0fde61cf64b401b9b0575323) ) ROM_LOAD( "epr-6844.ic123", 0x0000, 0x2000, CRC(e3ec7bd6) SHA1(feec0fe664e16fac0fde61cf64b401b9b0575323) )
ROM_REGION( 0x2000, "fd1089b_key", 0 ) /* decryption key */
ROM_LOAD( "317-0013a.key", 0x0000, 0x2000, CRC(295e6737) SHA1(2eff36f1f24db1154cf970d4c9fd481ae4f9a57c) )
ROM_END ROM_END
/************************************************************************************************************************** /**************************************************************************************************************************
Enduro Racer Enduro Racer
CPU: FD1089A (317-0013A) CPU: FD1089B (317-0013A)
YM2203 sound board YM2203 sound board
ASSY CPU BD 837-6001-01 ASSY CPU BD 837-6001-01
@ -1549,6 +1552,9 @@ ROM_START( enduror1 )
ROM_REGION( 0x2000, "proms", 0 ) /* zoom table */ ROM_REGION( 0x2000, "proms", 0 ) /* zoom table */
ROM_LOAD( "epr-6844.ic123", 0x0000, 0x2000, CRC(e3ec7bd6) SHA1(feec0fe664e16fac0fde61cf64b401b9b0575323) ) ROM_LOAD( "epr-6844.ic123", 0x0000, 0x2000, CRC(e3ec7bd6) SHA1(feec0fe664e16fac0fde61cf64b401b9b0575323) )
ROM_REGION( 0x2000, "fd1089b_key", 0 ) /* decryption key */
ROM_LOAD( "317-0013a.key", 0x0000, 0x2000, CRC(295e6737) SHA1(2eff36f1f24db1154cf970d4c9fd481ae4f9a57c) )
ROM_END ROM_END
/************************************************************************************************************************** /**************************************************************************************************************************
@ -1723,7 +1729,7 @@ static DRIVER_INIT( sharrier )
static DRIVER_INIT( enduror ) static DRIVER_INIT( enduror )
{ {
hangon_generic_init(); hangon_generic_init();
fd1089_decrypt_0013A(machine); fd1089b_decrypt(machine);
} }

View File

@ -1554,6 +1554,9 @@ ROM_START( shangon3 )
ROM_RELOAD( 0x28000, 0x08000 ) ROM_RELOAD( 0x28000, 0x08000 )
ROM_LOAD( "epr-10646.69", 0x30000, 0x08000, CRC(473cc411) SHA1(04ca2d047eb59581cd5d76e0ac6eca8b19eef497) ) ROM_LOAD( "epr-10646.69", 0x30000, 0x08000, CRC(473cc411) SHA1(04ca2d047eb59581cd5d76e0ac6eca8b19eef497) )
ROM_RELOAD( 0x38000, 0x08000 ) ROM_RELOAD( 0x38000, 0x08000 )
ROM_REGION( 0x2000, "fd1089b_key", 0 ) /* decryption key */
ROM_LOAD( "317-0034.key", 0x0000, 0x2000, CRC(263ca773) SHA1(8e80d69d61cf54fd02b0ca59dd397fa60c713f3d) )
ROM_END ROM_END
/************************************************************************************************************************** /**************************************************************************************************************************
@ -1612,6 +1615,9 @@ ROM_START( shangon2 )
ROM_RELOAD( 0x28000, 0x08000 ) ROM_RELOAD( 0x28000, 0x08000 )
ROM_LOAD( "epr-10646.69", 0x30000, 0x08000, CRC(473cc411) SHA1(04ca2d047eb59581cd5d76e0ac6eca8b19eef497) ) ROM_LOAD( "epr-10646.69", 0x30000, 0x08000, CRC(473cc411) SHA1(04ca2d047eb59581cd5d76e0ac6eca8b19eef497) )
ROM_RELOAD( 0x38000, 0x08000 ) ROM_RELOAD( 0x38000, 0x08000 )
ROM_REGION( 0x2000, "fd1089b_key", 0 ) /* decryption key */
ROM_LOAD( "317-0034.key", 0x0000, 0x2000, CRC(263ca773) SHA1(8e80d69d61cf54fd02b0ca59dd397fa60c713f3d) )
ROM_END ROM_END
/************************************************************************************************************************** /**************************************************************************************************************************
@ -1670,6 +1676,9 @@ ROM_START( shangon1 )
ROM_RELOAD( 0x28000, 0x08000 ) ROM_RELOAD( 0x28000, 0x08000 )
ROM_LOAD( "epr-10646.69", 0x30000, 0x08000, CRC(473cc411) SHA1(04ca2d047eb59581cd5d76e0ac6eca8b19eef497) ) ROM_LOAD( "epr-10646.69", 0x30000, 0x08000, CRC(473cc411) SHA1(04ca2d047eb59581cd5d76e0ac6eca8b19eef497) )
ROM_RELOAD( 0x38000, 0x08000 ) ROM_RELOAD( 0x38000, 0x08000 )
ROM_REGION( 0x2000, "fd1089b_key", 0 ) /* decryption key */
ROM_LOAD( "317-0034.key", 0x0000, 0x2000, CRC(263ca773) SHA1(8e80d69d61cf54fd02b0ca59dd397fa60c713f3d) )
ROM_END ROM_END
/************************************************************************************************************************** /**************************************************************************************************************************
@ -1800,7 +1809,7 @@ static DRIVER_INIT( shangon )
static DRIVER_INIT( shangon3 ) static DRIVER_INIT( shangon3 )
{ {
outrun_generic_init(machine); outrun_generic_init(machine);
fd1089_decrypt_0034(machine); fd1089b_decrypt(machine);
custom_io_r = shangon_custom_io_r; custom_io_r = shangon_custom_io_r;
custom_io_w = shangon_custom_io_w; custom_io_w = shangon_custom_io_w;
} }

View File

@ -1927,6 +1927,9 @@ ROM_START( afighter )
ROM_REGION( 0x10000, "sound", 0 ) /* sound CPU */ ROM_REGION( 0x10000, "sound", 0 ) /* sound CPU */
ROM_LOAD( "10284", 0x00000, 0x8000, CRC(8ff09116) SHA1(8b99b6d2499897cfbd037a7e7cf5bc53bce8a63a) ) ROM_LOAD( "10284", 0x00000, 0x8000, CRC(8ff09116) SHA1(8b99b6d2499897cfbd037a7e7cf5bc53bce8a63a) )
ROM_REGION( 0x2000, "fd1089a_key", 0 ) /* decryption key */
ROM_LOAD( "317-0018.key", 0x0000, 0x2000, CRC(fee04be8) SHA1(c58d78299ef4cede517be823a8a8a90e46c6ba0d) )
ROM_END ROM_END
@ -2004,13 +2007,16 @@ ROM_START( alexkid1 )
ROM_REGION( 0x10000, "n7751data", 0 ) /* 7751 sound data (not used yet) */ ROM_REGION( 0x10000, "n7751data", 0 ) /* 7751 sound data (not used yet) */
ROM_LOAD( "10435.1", 0x0000, 0x8000, CRC(ad89f6e3) SHA1(812a132142065b0fe13b5f0ac534b6d8830ba102) ) ROM_LOAD( "10435.1", 0x0000, 0x8000, CRC(ad89f6e3) SHA1(812a132142065b0fe13b5f0ac534b6d8830ba102) )
ROM_LOAD( "10436.2", 0x8000, 0x8000, CRC(96c76613) SHA1(fe3e4e649fd2cb2453eec0c92015bd54b3b9a1b5) ) ROM_LOAD( "10436.2", 0x8000, 0x8000, CRC(96c76613) SHA1(fe3e4e649fd2cb2453eec0c92015bd54b3b9a1b5) )
ROM_REGION( 0x2000, "fd1089a_key", 0 ) /* decryption key */
ROM_LOAD( "317-0021.key", 0x0000, 0x2000, BAD_DUMP CRC(85be8eac) SHA1(3857bf43b3b0ab60c04223e2393d99504a730d73) )
ROM_END ROM_END
/************************************************************************************************************************** /**************************************************************************************************************************
************************************************************************************************************************** **************************************************************************************************************************
************************************************************************************************************************** **************************************************************************************************************************
Alien Syndrome, System 16A Alien Syndrome, System 16A
CPU: FD1089B CPU: FD1089B 317-0037
*/ */
ROM_START( aliensy5 ) ROM_START( aliensy5 )
@ -2055,6 +2061,9 @@ ROM_START( aliensy5 )
ROM_LOAD( "10706", 0x00000, 0x8000, CRC(aa114acc) SHA1(81a2b3586ae90bc7fc55b82478ffe182ac49983e) ) ROM_LOAD( "10706", 0x00000, 0x8000, CRC(aa114acc) SHA1(81a2b3586ae90bc7fc55b82478ffe182ac49983e) )
ROM_LOAD( "10707", 0x08000, 0x8000, CRC(800c1d82) SHA1(aac4123bd35f87da09264649f4cf8326b2ba3cb8) ) ROM_LOAD( "10707", 0x08000, 0x8000, CRC(800c1d82) SHA1(aac4123bd35f87da09264649f4cf8326b2ba3cb8) )
ROM_LOAD( "10708", 0x10000, 0x8000, CRC(5921ef52) SHA1(eff9978361692e6e60a9c6caf5740dd6182cfe4a) ) ROM_LOAD( "10708", 0x10000, 0x8000, CRC(5921ef52) SHA1(eff9978361692e6e60a9c6caf5740dd6182cfe4a) )
ROM_REGION( 0x2000, "fd1089b_key", 0 ) /* decryption key */
ROM_LOAD( "317-0037.key", 0x0000, 0x2000, CRC(49e882e5) SHA1(29d87af8fc775b22a9a546c112f8f5e7f700ac1a) )
ROM_END ROM_END
@ -2062,7 +2071,7 @@ ROM_END
************************************************************************************************************************** **************************************************************************************************************************
************************************************************************************************************************** **************************************************************************************************************************
Alien Syndrome, pre-System 16 Alien Syndrome, pre-System 16
CPU: FD1089A CPU: FD1089A 317-0033
*/ */
ROM_START( aliensy2 ) ROM_START( aliensy2 )
ROM_REGION( 0x40000, "main", 0 ) /* 68000 code */ ROM_REGION( 0x40000, "main", 0 ) /* 68000 code */
@ -2106,6 +2115,9 @@ ROM_START( aliensy2 )
ROM_LOAD( "10706", 0x00000, 0x8000, CRC(aa114acc) SHA1(81a2b3586ae90bc7fc55b82478ffe182ac49983e) ) ROM_LOAD( "10706", 0x00000, 0x8000, CRC(aa114acc) SHA1(81a2b3586ae90bc7fc55b82478ffe182ac49983e) )
ROM_LOAD( "10707", 0x08000, 0x8000, CRC(800c1d82) SHA1(aac4123bd35f87da09264649f4cf8326b2ba3cb8) ) ROM_LOAD( "10707", 0x08000, 0x8000, CRC(800c1d82) SHA1(aac4123bd35f87da09264649f4cf8326b2ba3cb8) )
ROM_LOAD( "10708", 0x10000, 0x8000, CRC(5921ef52) SHA1(eff9978361692e6e60a9c6caf5740dd6182cfe4a) ) ROM_LOAD( "10708", 0x10000, 0x8000, CRC(5921ef52) SHA1(eff9978361692e6e60a9c6caf5740dd6182cfe4a) )
ROM_REGION( 0x2000, "fd1089a_key", 0 ) /* decryption key */
ROM_LOAD( "317-0033.key", 0x0000, 0x2000, CRC(49e882e5) SHA1(29d87af8fc775b22a9a546c112f8f5e7f700ac1a) )
ROM_END ROM_END
/************************************************************************************************************************** /**************************************************************************************************************************
@ -2154,6 +2166,9 @@ ROM_START( aliensy1 )
ROM_LOAD( "10706", 0x00000, 0x8000, CRC(aa114acc) SHA1(81a2b3586ae90bc7fc55b82478ffe182ac49983e) ) ROM_LOAD( "10706", 0x00000, 0x8000, CRC(aa114acc) SHA1(81a2b3586ae90bc7fc55b82478ffe182ac49983e) )
ROM_LOAD( "10707", 0x08000, 0x8000, CRC(800c1d82) SHA1(aac4123bd35f87da09264649f4cf8326b2ba3cb8) ) ROM_LOAD( "10707", 0x08000, 0x8000, CRC(800c1d82) SHA1(aac4123bd35f87da09264649f4cf8326b2ba3cb8) )
ROM_LOAD( "10708", 0x10000, 0x8000, CRC(5921ef52) SHA1(eff9978361692e6e60a9c6caf5740dd6182cfe4a) ) ROM_LOAD( "10708", 0x10000, 0x8000, CRC(5921ef52) SHA1(eff9978361692e6e60a9c6caf5740dd6182cfe4a) )
ROM_REGION( 0x2000, "fd1089a_key", 0 ) /* decryption key */
ROM_LOAD( "317-0033.key", 0x0000, 0x2000, CRC(49e882e5) SHA1(29d87af8fc775b22a9a546c112f8f5e7f700ac1a) )
ROM_END ROM_END
@ -2632,6 +2647,9 @@ ROM_START( sdi )
ROM_REGION( 0x10000, "sound", 0 ) /* sound CPU */ ROM_REGION( 0x10000, "sound", 0 ) /* sound CPU */
ROM_LOAD( "epr10759.12", 0x0000, 0x8000, CRC(d7f9649f) SHA1(ce4abe7dd7e33da048569d7817063345fab75ea7) ) ROM_LOAD( "epr10759.12", 0x0000, 0x8000, CRC(d7f9649f) SHA1(ce4abe7dd7e33da048569d7817063345fab75ea7) )
ROM_REGION( 0x2000, "fd1089b_key", 0 ) /* decryption key */
ROM_LOAD( "317-0027.key", 0x0000, 0x2000, BAD_DUMP CRC(9a5307b2) SHA1(2fcc576ed95b96ff6ea71252c3fab33b8b3fc1f5) )
ROM_END ROM_END
@ -2832,6 +2850,9 @@ ROM_START( sjryuko1 )
ROM_LOAD( "epr12229.2", 0x08000, 0x8000, CRC(b7aa015c) SHA1(0ef023f73722e27180c271b207a5097220f40b5e) ) ROM_LOAD( "epr12229.2", 0x08000, 0x8000, CRC(b7aa015c) SHA1(0ef023f73722e27180c271b207a5097220f40b5e) )
ROM_LOAD( "epr12230.4", 0x10000, 0x8000, CRC(d0f61fd4) SHA1(e6f29459d7395122f26957f56e38926aebd9004c) ) ROM_LOAD( "epr12230.4", 0x10000, 0x8000, CRC(d0f61fd4) SHA1(e6f29459d7395122f26957f56e38926aebd9004c) )
ROM_LOAD( "epr12231.5", 0x18000, 0x8000, CRC(780bdc57) SHA1(8c859043bba389292604385b88c743728180f9a9) ) ROM_LOAD( "epr12231.5", 0x18000, 0x8000, CRC(780bdc57) SHA1(8c859043bba389292604385b88c743728180f9a9) )
ROM_REGION( 0x2000, "fd1089b_key", 0 ) /* decryption key */
ROM_LOAD( "317-5021.key", 0x0000, 0x2000, BAD_DUMP CRC(4a3422e4) SHA1(69a32a6987ff2481f6d6cbbe399269a2461b8bad) )
ROM_END ROM_END
@ -2998,6 +3019,9 @@ ROM_START( timesca1 )
ROM_REGION( 0x08000, "n7751data", 0 ) /* 7751 sound data */ ROM_REGION( 0x08000, "n7751data", 0 ) /* 7751 sound data */
ROM_LOAD( "epr10547.1", 0x0000, 0x8000, CRC(d24ffc4b) SHA1(3b250e1f026664f7a37f65d1c1a07381e88f11e8) ) ROM_LOAD( "epr10547.1", 0x0000, 0x8000, CRC(d24ffc4b) SHA1(3b250e1f026664f7a37f65d1c1a07381e88f11e8) )
ROM_REGION( 0x2000, "fd1089b_key", 0 ) /* decryption key */
ROM_LOAD( "317-0024.key", 0x0000, 0x2000, BAD_DUMP CRC(ee42ec18) SHA1(cb65dd681f38ce20440ddcb01a935c2c8eecc77f) )
ROM_END ROM_END
@ -3082,6 +3106,9 @@ ROM_START( wb35 )
ROM_REGION( 0x10000, "sound", 0 ) /* sound CPU */ ROM_REGION( 0x10000, "sound", 0 ) /* sound CPU */
ROM_LOAD( "epr12089.12", 0x0000, 0x8000, CRC(8321eb0b) SHA1(61cf95833c0aa38e35fc18db39d4ec74e4aaf01e) ) ROM_LOAD( "epr12089.12", 0x0000, 0x8000, CRC(8321eb0b) SHA1(61cf95833c0aa38e35fc18db39d4ec74e4aaf01e) )
ROM_REGION( 0x2000, "fd1089a_key", 0 ) /* decryption key */
ROM_LOAD( "317-wb35.key", 0x0000, 0x2000, BAD_DUMP CRC(8a2e0575) SHA1(e43a2c8ca102ec38871067685a860da53d748765) )
ROM_END ROM_END
/************************************* /*************************************
@ -3103,32 +3130,20 @@ static DRIVER_INIT( aceattaa )
} }
static DRIVER_INIT( afighter ) static DRIVER_INIT( fd1089a_16a )
{ {
system16a_generic_init(machine); system16a_generic_init(machine);
fd1089_decrypt_0018(machine); fd1089a_decrypt(machine);
} }
static DRIVER_INIT( alexkid1 ) static DRIVER_INIT( fd1089b_16a )
{ {
system16a_generic_init(machine); system16a_generic_init(machine);
fd1089_decrypt_0021(machine); fd1089b_decrypt(machine);
} }
static DRIVER_INIT( aliensy1 )
{
system16a_generic_init(machine);
fd1089_decrypt_0033(machine);
}
static DRIVER_INIT( aliensy5 )
{
system16a_generic_init(machine);
fd1089_decrypt_0037(machine);
}
static DRIVER_INIT( bodyslam ) static DRIVER_INIT( bodyslam )
{ {
system16a_generic_init(machine); system16a_generic_init(machine);
@ -3158,7 +3173,7 @@ static DRIVER_INIT( quartet )
static DRIVER_INIT( sdi ) static DRIVER_INIT( sdi )
{ {
system16a_generic_init(machine); system16a_generic_init(machine);
fd1089_decrypt_0027(machine); fd1089b_decrypt(machine);
custom_io_r = sdi_custom_io_r; custom_io_r = sdi_custom_io_r;
} }
@ -3166,24 +3181,12 @@ static DRIVER_INIT( sdi )
static DRIVER_INIT( sjryukoa ) static DRIVER_INIT( sjryukoa )
{ {
system16a_generic_init(machine); system16a_generic_init(machine);
fd1089_decrypt_5021(machine); fd1089b_decrypt(machine);
custom_io_r = sjryuko_custom_io_r; custom_io_r = sjryuko_custom_io_r;
lamp_changed_w = sjryuko_lamp_changed_w; lamp_changed_w = sjryuko_lamp_changed_w;
} }
static DRIVER_INIT( timesca1 )
{
system16a_generic_init(machine);
fd1089_decrypt_0024(machine);
}
static DRIVER_INIT( wb35 )
{
system16a_generic_init(machine);
fd1089_decrypt_wb35(machine);
}
/************************************* /*************************************
* *
* Game driver(s) * Game driver(s)
@ -3200,13 +3203,13 @@ GAME( 1986, quart21, quartet, system16a_8751, quart2, quartet, ROT0,
GAME( 1986, quart2, quartet, system16a, quart2, generic_16a, ROT0, "Sega", "Quartet 2 (unprotected)", 0 ) GAME( 1986, quart2, quartet, system16a, quart2, generic_16a, ROT0, "Sega", "Quartet 2 (unprotected)", 0 )
/* System 16A */ /* System 16A */
GAME( 1987, aliensy5, aliensyn, system16a, aliensyn, aliensy5, ROT0, "Sega", "Alien Syndrome (set 5, System 16A, FD1089B 317-0037)", 0 ) GAME( 1987, aliensy5, aliensyn, system16a, aliensyn, fd1089b_16a, ROT0, "Sega", "Alien Syndrome (set 5, System 16A, FD1089B 317-0037)", 0 )
GAME( 1987, aliensy2, aliensyn, system16a, aliensyn, aliensy1, ROT0, "Sega", "Alien Syndrome (set 2, System 16A, FD1089A 317-0033)", 0 ) GAME( 1987, aliensy2, aliensyn, system16a, aliensyn, fd1089a_16a, ROT0, "Sega", "Alien Syndrome (set 2, System 16A, FD1089A 317-0033)", 0 )
GAME( 1987, aliensy1, aliensyn, system16a, aliensy1, aliensy1, ROT0, "Sega", "Alien Syndrome (set 1, System 16A, FD1089A 317-0033)", 0 ) GAME( 1987, aliensy1, aliensyn, system16a, aliensy1, fd1089a_16a, ROT0, "Sega", "Alien Syndrome (set 1, System 16A, FD1089A 317-0033)", 0 )
GAME( 1988, aceattaa, aceattac, system16a , aceattaa, aceattaa, ROT270, "Sega", "Ace Attacker (Japan, System 16A, FD1094 317-0060)", 0 ) GAME( 1988, aceattaa, aceattac, system16a , aceattaa, aceattaa, ROT270, "Sega", "Ace Attacker (Japan, System 16A, FD1094 317-0060)", 0 )
GAME( 1986, afighter, 0, system16a_no7751, afighter, afighter, ROT270, "Sega", "Action Fighter (FD1089A 317-0018)", 0 ) GAME( 1986, afighter, 0, system16a_no7751, afighter, fd1089a_16a, ROT270, "Sega", "Action Fighter (FD1089A 317-0018)", 0 )
GAME( 1986, alexkidd, 0, system16a, alexkidd, generic_16a, ROT0, "Sega", "Alex Kidd: The Lost Stars (set 2, unprotected)", 0 ) GAME( 1986, alexkidd, 0, system16a, alexkidd, generic_16a, ROT0, "Sega", "Alex Kidd: The Lost Stars (set 2, unprotected)", 0 )
GAME( 1986, alexkid1, alexkidd, system16a, alexkidd, alexkid1, ROT0, "Sega", "Alex Kidd: The Lost Stars (set 1, FD1089A 317-0021)", 0 ) GAME( 1986, alexkid1, alexkidd, system16a, alexkidd, fd1089a_16a, ROT0, "Sega", "Alex Kidd: The Lost Stars (set 1, FD1089A 317-0021)", 0 )
GAME( 1986, fantzone, 0, system16a_no7751, fantzone, generic_16a, ROT0, "Sega", "Fantasy Zone (set 2, unprotected)", 0 ) GAME( 1986, fantzone, 0, system16a_no7751, fantzone, generic_16a, ROT0, "Sega", "Fantasy Zone (set 2, unprotected)", 0 )
GAME( 1986, fantzon1, fantzone, system16a_no7751, fantzone, generic_16a, ROT0, "Sega", "Fantasy Zone (set 1, unprotected)", 0 ) GAME( 1986, fantzon1, fantzone, system16a_no7751, fantzone, generic_16a, ROT0, "Sega", "Fantasy Zone (set 1, unprotected)", 0 )
GAME( 1988, pshot16a, passsht, system16a, pshot16a, pshot16a, ROT270, "Sega", "Passing Shot (Japan, 4 Players, System 16A, FD1094 317-0071)", 0 ) GAME( 1988, pshot16a, passsht, system16a, pshot16a, pshot16a, ROT270, "Sega", "Passing Shot (Japan, 4 Players, System 16A, FD1094 317-0071)", 0 )
@ -3217,6 +3220,6 @@ GAME( 1987, shinobls, shinobi, system16a, shinobi, generic_16a, ROT0,
GAME( 1987, sjryuko1, sjryuko, system16a, sjryuko, sjryukoa, ROT0, "White Board", "Sukeban Jansi Ryuko (set 1, System 16A, FD1089B 317-5021)", 0 ) GAME( 1987, sjryuko1, sjryuko, system16a, sjryuko, sjryukoa, ROT0, "White Board", "Sukeban Jansi Ryuko (set 1, System 16A, FD1089B 317-5021)", 0 )
GAME( 1988, tetris, 0, system16a_no7751, tetris, generic_16a, ROT0, "Sega", "Tetris (set 4, Japan, System 16A, FD1094 317-0093)", 0 ) GAME( 1988, tetris, 0, system16a_no7751, tetris, generic_16a, ROT0, "Sega", "Tetris (set 4, Japan, System 16A, FD1094 317-0093)", 0 )
GAME( 1988, tetris3, tetris, system16a_no7751, tetris, generic_16a, ROT0, "Sega", "Tetris (set 3, Japan, System 16A, FD1094 317-0093a)", 0 ) GAME( 1988, tetris3, tetris, system16a_no7751, tetris, generic_16a, ROT0, "Sega", "Tetris (set 3, Japan, System 16A, FD1094 317-0093a)", 0 )
GAME( 1987, timesca1, timescan, system16a, timescan, timesca1, ROT270, "Sega", "Time Scanner (set 1, System 16A, FD1089B 317-0024)", 0 ) GAME( 1987, timesca1, timescan, system16a, timescan, fd1089b_16a, ROT270, "Sega", "Time Scanner (set 1, System 16A, FD1089B 317-0024)", 0 )
GAME( 1988, wb31, wb3, system16a_no7751, wb3, generic_16a, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 1, System 16A, FD1094 317-0084)", 0 ) GAME( 1988, wb31, wb3, system16a_no7751, wb3, generic_16a, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 1, System 16A, FD1094 317-0084)", 0 )
GAME( 1988, wb35, wb3, system16a_no7751, wb3, wb35, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 5, System 16A, FD1089A 317-xxxx)", GAME_NOT_WORKING ) GAME( 1988, wb35, wb3, system16a_no7751, wb3, fd1089a_16a, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 5, System 16A, FD1089A 317-xxxx)", GAME_NOT_WORKING )

View File

@ -3406,7 +3406,7 @@ ROM_END
/************************************************************************************************************************** /**************************************************************************************************************************
Alien Syndrome, Sega System 16B Alien Syndrome, Sega System 16B
CPU: ???? CPU: FD1089A (317-0033)
ROM Board: 171-5358? ROM Board: 171-5358?
*/ */
ROM_START( aliensy3 ) ROM_START( aliensy3 )
@ -3438,6 +3438,9 @@ ROM_START( aliensy3 )
ROM_LOAD( "epr10724.a8", 0x10000, 0x8000, CRC(f971a817) SHA1(502c95638e4fd5f87e5fc837cb44b39a5d62f4e4) ) ROM_LOAD( "epr10724.a8", 0x10000, 0x8000, CRC(f971a817) SHA1(502c95638e4fd5f87e5fc837cb44b39a5d62f4e4) )
ROM_LOAD( "epr10725.a9", 0x20000, 0x8000, CRC(6a50e08f) SHA1(d34b2ccadb8b07d5ad99cab5c5b5b79642c65574) ) ROM_LOAD( "epr10725.a9", 0x20000, 0x8000, CRC(6a50e08f) SHA1(d34b2ccadb8b07d5ad99cab5c5b5b79642c65574) )
ROM_LOAD( "epr10726.a10", 0x30000, 0x8000, CRC(d50b7736) SHA1(b1f8e3b0cf2ffee5382098100cfabe21b383cd51) ) ROM_LOAD( "epr10726.a10", 0x30000, 0x8000, CRC(d50b7736) SHA1(b1f8e3b0cf2ffee5382098100cfabe21b383cd51) )
ROM_REGION( 0x2000, "fd1089a_key", 0 ) /* decryption key */
ROM_LOAD( "317-0033.key", 0x0000, 0x2000, CRC(49e882e5) SHA1(29d87af8fc775b22a9a546c112f8f5e7f700ac1a) )
ROM_END ROM_END
@ -3864,6 +3867,9 @@ ROM_START( aurail1 )
ROM_LOAD( "epr13448.a10", 0x00000, 0x08000, CRC(b5183fb9) SHA1(c8372b57fa486256d49dc5851d6b17c92de593fb) ) ROM_LOAD( "epr13448.a10", 0x00000, 0x08000, CRC(b5183fb9) SHA1(c8372b57fa486256d49dc5851d6b17c92de593fb) )
ROM_LOAD( "mpr13449.a11", 0x10000, 0x20000, CRC(d3d9aaf9) SHA1(0fb3a8cb11033accceb3a43a691fb424cf8b9619) ) ROM_LOAD( "mpr13449.a11", 0x10000, 0x20000, CRC(d3d9aaf9) SHA1(0fb3a8cb11033accceb3a43a691fb424cf8b9619) )
ROM_RELOAD( 0x30000, 0x20000 ) ROM_RELOAD( 0x30000, 0x20000 )
ROM_REGION( 0x2000, "fd1089b_key", 0 ) /* decryption key */
ROM_LOAD( "317-0168.key", 0x0000, 0x2000, CRC(bc2d1792) SHA1(e66d2582eb74ae35f27715fcc9df3e77aba67509) )
ROM_END ROM_END
/************************************************************************************************************************** /**************************************************************************************************************************
@ -3929,6 +3935,9 @@ ROM_START( aurailj )
ROM_LOAD( "epr13448.a10", 0x00000, 0x08000, CRC(b5183fb9) SHA1(c8372b57fa486256d49dc5851d6b17c92de593fb) ) ROM_LOAD( "epr13448.a10", 0x00000, 0x08000, CRC(b5183fb9) SHA1(c8372b57fa486256d49dc5851d6b17c92de593fb) )
ROM_LOAD( "mpr13449.a11", 0x10000, 0x20000, CRC(d3d9aaf9) SHA1(0fb3a8cb11033accceb3a43a691fb424cf8b9619) ) ROM_LOAD( "mpr13449.a11", 0x10000, 0x20000, CRC(d3d9aaf9) SHA1(0fb3a8cb11033accceb3a43a691fb424cf8b9619) )
ROM_RELOAD( 0x30000, 0x20000 ) ROM_RELOAD( 0x30000, 0x20000 )
ROM_REGION( 0x2000, "fd1089a_key", 0 ) /* decryption key */
ROM_LOAD( "317-0167.key", 0x0000, 0x2000, CRC(bc2d1792) SHA1(e66d2582eb74ae35f27715fcc9df3e77aba67509) )
ROM_END ROM_END
@ -4278,6 +4287,9 @@ ROM_START( dunkshot )
ROM_LOAD( "epr10474.a8", 0x10000, 0x08000, CRC(419a656e) SHA1(aa734ae835761badeb069f99acc5fded2a19b3a3) ) ROM_LOAD( "epr10474.a8", 0x10000, 0x08000, CRC(419a656e) SHA1(aa734ae835761badeb069f99acc5fded2a19b3a3) )
ROM_LOAD( "epr10475.a9", 0x20000, 0x08000, CRC(17d55e85) SHA1(0c414bafecbfaa82679cc155f15f5255c186358d) ) ROM_LOAD( "epr10475.a9", 0x20000, 0x08000, CRC(17d55e85) SHA1(0c414bafecbfaa82679cc155f15f5255c186358d) )
ROM_LOAD( "epr10476.a10", 0x30000, 0x08000, CRC(a6be0956) SHA1(fc4d6e25e0b46679f94fddbb1850fb0b02f8d84b) ) ROM_LOAD( "epr10476.a10", 0x30000, 0x08000, CRC(a6be0956) SHA1(fc4d6e25e0b46679f94fddbb1850fb0b02f8d84b) )
ROM_REGION( 0x2000, "fd1089a_key", 0 ) /* decryption key */
ROM_LOAD( "317-0022.key", 0x0000, 0x2000, CRC(4eedc66d) SHA1(50588fa13bf25a2d1322579cdc9937450543c978) )
ROM_END ROM_END
@ -5229,6 +5241,9 @@ ROM_START( defense )
ROM_REGION( 0x10000, "sound", 0 ) /* sound CPU */ ROM_REGION( 0x10000, "sound", 0 ) /* sound CPU */
ROM_LOAD( "10775.a7", 0x0000, 0x8000, CRC(4cbd55a8) SHA1(8af2c52ab61338c8a9f1a74a05470dd3d5e0c42f) ) ROM_LOAD( "10775.a7", 0x0000, 0x8000, CRC(4cbd55a8) SHA1(8af2c52ab61338c8a9f1a74a05470dd3d5e0c42f) )
ROM_REGION( 0x2000, "fd1089a_key", 0 ) /* decryption key */
ROM_LOAD( "317-0028.key", 0x0000, 0x2000, BAD_DUMP CRC(9a5307b2) SHA1(2fcc576ed95b96ff6ea71252c3fab33b8b3fc1f5) )
ROM_END ROM_END
/************************************************************************************************************************** /**************************************************************************************************************************
@ -5264,6 +5279,9 @@ ROM_START( sdib )
ROM_REGION( 0x10000, "sound", 0 ) /* sound CPU */ ROM_REGION( 0x10000, "sound", 0 ) /* sound CPU */
ROM_LOAD( "10775.a7", 0x0000, 0x8000, CRC(4cbd55a8) SHA1(8af2c52ab61338c8a9f1a74a05470dd3d5e0c42f) ) ROM_LOAD( "10775.a7", 0x0000, 0x8000, CRC(4cbd55a8) SHA1(8af2c52ab61338c8a9f1a74a05470dd3d5e0c42f) )
ROM_REGION( 0x2000, "fd1089a_key", 0 ) /* decryption key */
ROM_LOAD( "317-0028.key", 0x0000, 0x2000, BAD_DUMP CRC(9a5307b2) SHA1(2fcc576ed95b96ff6ea71252c3fab33b8b3fc1f5) )
ROM_END ROM_END
/************************************************************************************************************************** /**************************************************************************************************************************
@ -5533,6 +5551,9 @@ ROM_START( sjryuko )
ROM_LOAD( "epr12246.a9", 0x20000, 0x8000, CRC(f1242582) SHA1(f5734b31b449f3f09a0cacc712059644eedee006) ) ROM_LOAD( "epr12246.a9", 0x20000, 0x8000, CRC(f1242582) SHA1(f5734b31b449f3f09a0cacc712059644eedee006) )
ROM_LOAD( "epr12247.a10",0x30000, 0x8000, CRC(ef8a64c6) SHA1(525e0d968c72c6dd73df69b55b8626495d154649) ) ROM_LOAD( "epr12247.a10",0x30000, 0x8000, CRC(ef8a64c6) SHA1(525e0d968c72c6dd73df69b55b8626495d154649) )
ROM_LOAD( "epr12248.a11",0x40000, 0x8000, CRC(d1eabdab) SHA1(f255a66e082353768e8d2bb574e883a4a45f7670) ) ROM_LOAD( "epr12248.a11",0x40000, 0x8000, CRC(d1eabdab) SHA1(f255a66e082353768e8d2bb574e883a4a45f7670) )
ROM_REGION( 0x2000, "fd1089b_key", 0 ) /* decryption key */
ROM_LOAD( "317-5021.key", 0x0000, 0x2000, BAD_DUMP CRC(4a3422e4) SHA1(69a32a6987ff2481f6d6cbbe399269a2461b8bad) )
ROM_END ROM_END
@ -6131,7 +6152,7 @@ static DRIVER_INIT( generic_5797 )
static DRIVER_INIT( aliensy3_5358 ) static DRIVER_INIT( aliensy3_5358 )
{ {
DRIVER_INIT_CALL(generic_5358); DRIVER_INIT_CALL(generic_5358);
fd1089_decrypt_0033(machine); fd1089a_decrypt(machine);
} }
@ -6166,14 +6187,14 @@ static DRIVER_INIT( altbeas4_5521 )
static DRIVER_INIT( aurail1_5704 ) static DRIVER_INIT( aurail1_5704 )
{ {
DRIVER_INIT_CALL(generic_5704); DRIVER_INIT_CALL(generic_5704);
fd1089_decrypt_0168(machine); fd1089b_decrypt(machine);
} }
static DRIVER_INIT( aurailj_5704 ) static DRIVER_INIT( aurailj_5704 )
{ {
DRIVER_INIT_CALL(generic_5704); DRIVER_INIT_CALL(generic_5704);
fd1089_decrypt_0167(machine); fd1089a_decrypt(machine);
} }
@ -6187,7 +6208,7 @@ static DRIVER_INIT( ddux_5704 )
static DRIVER_INIT( dunkshot_5358 ) static DRIVER_INIT( dunkshot_5358 )
{ {
DRIVER_INIT_CALL(generic_5358); DRIVER_INIT_CALL(generic_5358);
fd1089_decrypt_0022(machine); fd1089a_decrypt(machine);
custom_io_r = dunkshot_custom_io_r; custom_io_r = dunkshot_custom_io_r;
} }
@ -6232,7 +6253,7 @@ static DRIVER_INIT( sdi_5358 )
static DRIVER_INIT( defense_5358 ) static DRIVER_INIT( defense_5358 )
{ {
DRIVER_INIT_CALL(generic_5358); DRIVER_INIT_CALL(generic_5358);
fd1089_decrypt_0028(machine); fd1089a_decrypt(machine);
custom_io_r = sdi_custom_io_r; custom_io_r = sdi_custom_io_r;
} }
@ -6254,7 +6275,7 @@ static DRIVER_INIT( shinobi3_5358 )
static DRIVER_INIT( sjryuko_5358 ) static DRIVER_INIT( sjryuko_5358 )
{ {
DRIVER_INIT_CALL(generic_5358); DRIVER_INIT_CALL(generic_5358);
fd1089_decrypt_5021(machine); fd1089b_decrypt(machine);
custom_io_r = sjryuko_custom_io_r; custom_io_r = sjryuko_custom_io_r;
custom_io_w = sjryuko_custom_io_w; custom_io_w = sjryuko_custom_io_w;
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +1,4 @@
void *fd1089_get_decrypted_base(void); void *fd1089_get_decrypted_base(void);
void fd1089_decrypt_0013A(running_machine *machine); void fd1089a_decrypt(running_machine *machine);
void fd1089_decrypt_0018(running_machine *machine); void fd1089b_decrypt(running_machine *machine);
void fd1089_decrypt_0021(running_machine *machine);
void fd1089_decrypt_0022(running_machine *machine);
void fd1089_decrypt_0024(running_machine *machine);
void fd1089_decrypt_0027(running_machine *machine);
void fd1089_decrypt_0028(running_machine *machine);
void fd1089_decrypt_0033(running_machine *machine);
void fd1089_decrypt_0034(running_machine *machine);
void fd1089_decrypt_0037(running_machine *machine);
void fd1089_decrypt_0167(running_machine *machine);
void fd1089_decrypt_0168(running_machine *machine);
void fd1089_decrypt_5021(running_machine *machine);
void fd1089_decrypt_wb35(running_machine *machine);