new NOT WORKING

World Club Champion Football Serie A 2002-2003 Ver. 2.12 (CDV-10002) [f205v, ANY, MetalliC]
World Club Champion Football Serie A 2002-2003 Ver. 2.34 (CDV-10008) [f205v, ANY, MetalliC]
World Club Champion Football European Clubs 2004-2005 (CDV-10013) [f205v, MetalliC]
World Club Champion Football European Clubs 2004-2005 Ver. 1.1 (CDV-10015) [f205v, ANY, MetalliC]
World Club Champion Football European Clubs 2004-2005 Ver. 3.22 (CDV-10015P) [f205v, ANY, MetalliC]
World Club Champion Football European Clubs 2005-2006 (CDV-10027) [f205v, ANY, MetalliC]
This commit is contained in:
MetalliC 2015-12-24 04:25:04 +02:00
parent f6cec238a0
commit 8a04e5eda3
3 changed files with 156 additions and 50 deletions

View File

@ -5766,24 +5766,17 @@ initdv3e // 2004.05.18 Initial D Arcade Stage Ver. 3 (Export)
vf4tuneda // 2004.09 Virtua Fighter 4 Final Tuned (Rev A)
vf4tunedd // 2004.10 Virtua Fighter 4 Final Tuned (Rev D)
vf4tuned // 2004.12 Virtua Fighter 4 Final Tuned (Rev F)
// 2004.12 World Club Champion Football Serie A 2002-2003 Ver.2.12
// 2004.12 World Club Champion Football Serie A 2002-2003 Ver.2.34
// 2005.04 Menkyo no Tetsujin
// 2005.06 World Club Champion Football European Clubs 2004-2005
// 2005.06 World Club Champion Football European Clubs 2004-2005 Ver.1.1
wccf212e // 2004.12 World Club Champion Football Serie A 2002-2003 Ver.2.12
wccf234j // 2004.12 World Club Champion Football Serie A 2002-2003 Ver.2.34
// 2005.04 Menkyo no Tetsujin / Sega Driving Simulator
wccf310j // 2005.06 World Club Champion Football European Clubs 2004-2005
wccf331e // 2005.06 World Club Champion Football European Clubs 2004-2005 Ver.1.1
// 2005.06 World Club Champion Football European Clubs 2004-2005 Ver.1.2
// 2005.11 World Club Champion Football European Clubs 2004-2005 Ver.3.22
// 2005.12 Mobile Suit Gundam 0079 Card Builder
// 2006.03 Mobile Suit Gundam 0079 Card Builder Ver.1.007
// 2006.07 Mobile Suit Gundam 0079 Card Builder Ver.2.00
// 2006.08 World Club Champion Football European Clubs 2005-2006
// 2006.09 Mobile Suit Gundam 0079 Card Builder Ver.2.01
wccf322e // 2005.11 World Club Champion Football European Clubs 2004-2005 Ver.3.22
wccf420e // 2006.08 World Club Champion Football European Clubs 2005-2006
// 2006.10 World Club Champion Football European Clubs 2005-2006 bugfix
// 2006.11 Mobile Suit Gundam 0079 Card Builder Ver.2.02
inidv3ca // 2006.?? Initial D Arcade Stage Ver. 3 Cycraft Edition (Rev A)
inidv3cy // 2006.?? Initial D Arcade Stage Ver. 3 Cycraft Edition (Rev B)
// 2007.03 Mobile Suit Gundam 0083 Card Builder
// 2007.10 Mobile Suit Gundam 0083 Card Builder Ryouyuu Gekitotsu
// Atomiswave (Dreamcast-based) games
@ -5913,6 +5906,7 @@ wangmid2 // 2005.04 Wangan Midnight Maximum Tune 2 (Japan)
// 2005.10 Sangokushi Taisen Ver.1.100
wangmd2b // 2005.10 Wangan Midnight Maximum Tune 2 (Export) (Rev A)
// 2005.11 Sangokushi Taisen Ver.1.110
// 2005.12 Mobile Suit Gundam 0079 Card Builder
// 2005.12 Quest of D Gofu no Keisyousya Ver.2.00
// 2005.12 Quest of D Gofu no Keisyousya Ver.2.01
// 2005.12 Sega Network Taisen Mahjong MJ 3
@ -5926,15 +5920,21 @@ mj3 // 2005.12 Sega Network Taisen Mahjong MJ 3 (Rev F)
scg06nt // 2005.12 Sega Golf Club 2006: Next Tours (Rev A)
// 2006.02 Sangokushi Taisen Ver.1.12
// 2006.03 Quest of D Gofu no Keisyousya Ver.2.02b
// 2006.03 Mobile Suit Gundam 0079 Card Builder Ver.1.007
// 2006.04 Sega Network Taisen Mahjong MJ 3 Evolution
// 2006.05 Sangokushi Taisen 2
// 2006.05 Sangokushi Taisen 2 Firmware Update
// 2006.07 Mobile Suit Gundam 0079 Card Builder Ver.2.00
// 2006.09 Mobile Suit Gundam 0079 Card Builder Ver.2.01
// 2006.09 Sangokushi Taisen 2 Ver.2.007
// 2006.09 Sangokushi Taisen 2 Ver.2.01
// 2006.09 Sega Network Taisen Mahjong MJ 3 Evolution (Rev A)
// 2006.10 Quest of D Oukoku no Syugosya Ver.3.00
// 2006.11 Quest of D Oukoku no Syugosya Ver.3.01
// 2006.11 Mobile Suit Gundam 0079 Card Builder Ver.2.02
// 2007.03 Mobile Suit Gundam 0083 Card Builder
mj3evo // 2007.06 Sega Network Taisen Mahjong MJ 3 Evolution (Rev B)
// 2007.10 Mobile Suit Gundam 0083 Card Builder Ryouyuu Gekitotsu
// 2007.11 Quest of D The Battle Kingdom Ver.4.00
// 2008.01 Quest of D The Battle Kingdom Ver.4.00b
// 2008.02 Quest of D The Battle Kingdom Ver.4.00c

View File

@ -8697,6 +8697,90 @@ ROM_START( inidv3ca )
ROM_LOAD("317-0406-com.pic", 0x00, 0x4000, CRC(fe91a7af) SHA1(3562d8d454ac6e5b73a24d4dc8928ef24687cdf7) )
ROM_END
/**********************************************
*
* Naomi 2 network DVD-ROM defines
*
*********************************************/
ROM_START( wccf212e )
NAOMIGD_BIOS
NAOMI_DEFAULT_EEPROM
DISK_REGION( "gdrom" )
DISK_IMAGE_READONLY( "cdv-10002", 0, SHA1(66b383d764eff39687de123e3e0833171c35e3b0) )
ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
//PIC16C621A (317-0369-EXP)
//(sticker 253-5508-0369E)
ROM_LOAD("317-0369-exp.pic", 0x00, 0x4000, CRC(adf2d113) SHA1(a5703f0926d6fd4ed95daa730184067865f4b5d8) )
ROM_END
ROM_START( wccf234j )
NAOMIGD_BIOS
NAOMI_DEFAULT_EEPROM
DISK_REGION( "gdrom" )
DISK_IMAGE_READONLY( "cdv-10008", 0, SHA1(80f73b07fca1979e0161f670147d5f8a37dbeda8) )
ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
//PIC16C621A (317-0369-JPN)
//(sticker 253-5508-0369J)
ROM_LOAD("317-0369-jpn.pic", 0x00, 0x4000, CRC(fb3672ba) SHA1(4b3c096e1e83da13fc967ca8c95d558c1cdf5817) )
ROM_END
ROM_START( wccf310j )
NAOMIGD_BIOS
NAOMI_DEFAULT_EEPROM
DISK_REGION( "gdrom" )
DISK_IMAGE_READONLY( "cdv-10013", 0, SHA1(4d58b44e39659d816d25d295ad2a1d4ec0ee0ab1) )
ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
//PIC16C621A (317-0419-JPN)
//(sticker 253-5508-0419J)
ROM_LOAD("317-0419-jpn.pic", 0x00, 0x4000, CRC(04fae86b) SHA1(95663183c24a8a492afab8ebba084bb31fa5a312) )
ROM_END
ROM_START( wccf331e )
NAOMIGD_BIOS
NAOMI_DEFAULT_EEPROM
DISK_REGION( "gdrom" )
DISK_IMAGE_READONLY( "cdv-10015", 0, SHA1(46228791b59441d02d1170bc319b4643fad862c3) )
ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
//PIC16C621A (317-0419-EXP)
//(sticker 253-5508-0419E)
ROM_LOAD("317-0419-exp.pic", 0x00, 0x4000, CRC(3f5e1445) SHA1(184731633c0264e2104baa006ac80d3927c3e6e5) )
ROM_END
ROM_START( wccf322e )
NAOMIGD_BIOS
NAOMI_DEFAULT_EEPROM
DISK_REGION( "gdrom" )
DISK_IMAGE_READONLY( "cdv-10015p", 0, SHA1(5187b442b42fc10cd6565176563e4b709d28b749) )
ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
//PIC16C621A (317-0419-EXP)
//(sticker 253-5508-0419E)
ROM_LOAD("317-0419-exp.pic", 0x00, 0x4000, CRC(3f5e1445) SHA1(184731633c0264e2104baa006ac80d3927c3e6e5) )
ROM_END
ROM_START( wccf420e )
NAOMIGD_BIOS
NAOMI_DEFAULT_EEPROM
DISK_REGION( "gdrom" )
DISK_IMAGE_READONLY( "cdv-10027", 0, SHA1(c7d94f2134798efea5feb2a1b494f308fc0b81be) )
ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
//PIC16C621A (317-0456-EXP)
//(sticker 253-5508-0456E)
ROM_LOAD("317-0456-exp.pic", 0x00, 0x4000, CRC(fb7dd592) SHA1(25e4927c83afc7ae26092ec192c40588a74a39b0) )
ROM_END
/**********************************************
*
* Atomiswave cart defines
@ -9509,12 +9593,12 @@ GAME( 2003, puyofevp, naomi, naomim1, naomi, naomi_state, naomi, ROT0, "Sega", "
/* 0042 */ GAME( 2006, takoron, naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Compile", "Noukone Puzzle Takoron (GDL-0042)", GAME_FLAGS )
/* CDV-xxxxx (CD-ROM and DVD-ROM for Naomi 2 Satellite Terminal) */
// 10002 CD - World Club Champion Football Serie A 2002-2003 Ver.2.12 (Sega, 2004)
// 10008 DVD - World Club Champion Football Serie A 2002-2003 Ver.2.34 (Sega, 2004)
// 10013 CD - World Club Champion Football European Clubs 2004-2005 (Sega, 2005)
// 10015 CD - World Club Champion Football European Clubs 2004-2005 Ver.1.1 (Sega, 2005)
// 10015P CD - World Club Champion Football European Clubs 2004-2005 Ver.3.22 (Sega, 2005)
// 10027 CD - World Club Champion Football European Clubs 2005-2006 (Sega, 2006)
/* 10002 */ GAME( 2004, wccf212e,naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Sega", "World Club Champion Football Serie A 2002-2003 Ver. 2.12 (CDV-10002)", GAME_FLAGS )
/* 10008 */ GAME( 2004, wccf234j,naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Sega", "World Club Champion Football Serie A 2002-2003 Ver. 2.34 (CDV-10008)", GAME_FLAGS )
/* 10013 */ GAME( 2005, wccf310j,naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Sega", "World Club Champion Football European Clubs 2004-2005 (CDV-10013)", GAME_FLAGS )
/* 10015 */ GAME( 2005, wccf331e,wccf322e,naomigd, naomi, naomi_state, naomigd, ROT0, "Sega", "World Club Champion Football European Clubs 2004-2005 Ver. 1.1 (CDV-10015)", GAME_FLAGS )
/* 10015P*/ GAME( 2005, wccf322e,naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Sega", "World Club Champion Football European Clubs 2004-2005 Ver. 3.22 (CDV-10015P)", GAME_FLAGS )
/* 10027 */ GAME( 2006, wccf420e,naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Sega", "World Club Champion Football European Clubs 2005-2006 (CDV-10027)", GAME_FLAGS )
// ????? ??? - World Club Champion Football Serie A 2001-2002 (Sega, 2002)
// ????? ??? - World Club Champion Football Serie A 2001-2002 Ver.1.2 (Sega, 2002)
// ????? ??? - World Club Champion Football Serie A 2001-2002 Ver.2 (Sega, 2003)

View File

@ -395,6 +395,7 @@ void naomi_gdrom_board::device_start()
memset(name,'\0',128);
UINT64 key;
UINT8 netpic = 0;
const UINT8 *picdata = memregion(pic_tag)->base();
@ -412,6 +413,7 @@ void naomi_gdrom_board::device_start()
key |= picdata[0x7a0];
netpic = picdata[0x6ee];
} else {
// use extracted pic data
// printf("This PIC key hasn't been converted to a proper PIC binary yet!\n");
@ -435,52 +437,72 @@ void naomi_gdrom_board::device_start()
// primary volume descriptor
// read frame 0xb06e (frame=sector+150)
// dimm board firmware starts straight from this frame
cdrom_read_data(gdromfile, 0xb06e - 150, buffer, CD_TRACK_MODE1);
cdrom_read_data(gdromfile, (netpic ? 0 : 45000) + 16, buffer, CD_TRACK_MODE1);
UINT32 path_table = ((buffer[0x8c+0] << 0) |
(buffer[0x8c+1] << 8) |
(buffer[0x8c+2] << 16) |
(buffer[0x8c+3] << 24));
// path table
cdrom_read_data(gdromfile, path_table, buffer, CD_TRACK_MODE1);
UINT32 dir = ((buffer[0x2+0] << 0) |
(buffer[0x2+1] << 8) |
(buffer[0x2+2] << 16) |
(buffer[0x2+3] << 24));
// directory
UINT8 dir_sector[2048];
cdrom_read_data(gdromfile, dir, dir_sector, CD_TRACK_MODE1);
// find data of file
UINT32 file_start, file_size;
find_file(name, dir_sector, file_start, file_size);
if(file_start && (file_size == 0x100)) {
// read file
cdrom_read_data(gdromfile, file_start, buffer, CD_TRACK_MODE1);
// get "rom" file name
memset(name,'\0', 128);
memcpy(name, buffer+0xc0, FILENAME_LENGTH-1);
if (netpic == 0) {
UINT32 dir = ((buffer[0x2 + 0] << 0) |
(buffer[0x2 + 1] << 8) |
(buffer[0x2 + 2] << 16) |
(buffer[0x2 + 3] << 24));
cdrom_read_data(gdromfile, dir, dir_sector, CD_TRACK_MODE1);
find_file(name, dir_sector, file_start, file_size);
if(file_start) {
UINT32 file_rounded_size = (file_size+2047) & -2048;
for(dimm_data_size = 4096; dimm_data_size < file_rounded_size; dimm_data_size <<= 1);
dimm_data = auto_alloc_array(machine(), UINT8, dimm_data_size);
if(dimm_data_size != file_rounded_size)
memset(dimm_data + file_rounded_size, 0, dimm_data_size - file_rounded_size);
// read encrypted data into dimm_data
UINT32 sectors = file_rounded_size / 2048;
for(UINT32 sec = 0; sec != sectors; sec++)
cdrom_read_data(gdromfile, file_start+sec, dimm_data + 2048*sec, CD_TRACK_MODE1);
UINT32 des_subkeys[32];
des_generate_subkeys(rev64(key), des_subkeys);
for(int i=0; i<file_rounded_size;i+=8)
write_from_qword(dimm_data+i, rev64(des_encrypt_decrypt(true, rev64(read_to_qword(dimm_data+i)), des_subkeys)));
if (file_start && (file_size == 0x100)) {
// read file
cdrom_read_data(gdromfile, file_start, buffer, CD_TRACK_MODE1);
// get "rom" file name
memset(name, '\0', 128);
memcpy(name, buffer + 0xc0, FILENAME_LENGTH - 1);
}
} else {
UINT32 i = 0;
while (i < 2048 && buffer[i] != 0)
{
if (buffer[i] == 3 && buffer[i + 8] == 'R' && buffer[i + 9] == 'O' && buffer[i + 10] == 'M') // find ROM dir
{
UINT32 dir = ((buffer[i + 2] << 0) |
(buffer[i + 3] << 8) |
(buffer[i + 4] << 16) |
(buffer[i + 5] << 24));
memcpy(name, "ROM.BIN", 7);
cdrom_read_data(gdromfile, dir, dir_sector, CD_TRACK_MODE1);
break;
}
i += buffer[i] + 8 + (buffer[i] & 1);
}
}
find_file(name, dir_sector, file_start, file_size);
if (file_start) {
UINT32 file_rounded_size = (file_size + 2047) & -2048;
for (dimm_data_size = 4096; dimm_data_size < file_rounded_size; dimm_data_size <<= 1);
dimm_data = auto_alloc_array(machine(), UINT8, dimm_data_size);
if (dimm_data_size != file_rounded_size)
memset(dimm_data + file_rounded_size, 0, dimm_data_size - file_rounded_size);
// read encrypted data into dimm_data
UINT32 sectors = file_rounded_size / 2048;
for (UINT32 sec = 0; sec != sectors; sec++)
cdrom_read_data(gdromfile, file_start + sec, dimm_data + 2048 * sec, CD_TRACK_MODE1);
UINT32 des_subkeys[32];
des_generate_subkeys(rev64(key), des_subkeys);
for (int i = 0; i < file_rounded_size; i += 8)
write_from_qword(dimm_data + i, rev64(des_encrypt_decrypt(true, rev64(read_to_qword(dimm_data + i)), des_subkeys)));
}
// decrypt loaded data