From 396b49bf1b8d325abb489775f2aae0addb59add5 Mon Sep 17 00:00:00 2001 From: "R. Belmont" Date: Tue, 2 Mar 2010 04:13:53 +0000 Subject: [PATCH] naomi: convert GD-ROM games to use real PIC dumps [David Haywood] --- src/mame/drivers/naomi.c | 367 ++++++++++++++++++++++++++++--------- src/mame/includes/naomi.h | 1 + src/mame/machine/naomi.c | 147 ++++++++++++++- src/mame/machine/naomibd.c | 69 +++++-- 4 files changed, 486 insertions(+), 98 deletions(-) diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c index a961a0be70a..7b374b91324 100644 --- a/src/mame/drivers/naomi.c +++ b/src/mame/drivers/naomi.c @@ -4486,9 +4486,13 @@ ROM_START( gundmgd ) DISK_IMAGE_READONLY( "gdl-0001", 0, SHA1(615e19c22f32096f3aad557019a14313b60a4070) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5069-com.data", 0x00, 0x50, CRC(8e2f0cbd) SHA1(a5f3a990a03bfa50a1a742593c5ec07645c8718d) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5069-COM) //(sticker 253-5509-5069) - ROM_LOAD("317-5069-com.data", 0x00, 0x50, CRC(8e2f0cbd) SHA1(a5f3a990a03bfa50a1a742593c5ec07645c8718d) ) + ROM_LOAD("317-5069-com.pic", 0x00, 0x4000, CRC(44d0b242) SHA1(cac31c2ed317e2b44ee93d762188aacea2398949) ) + ROM_END @@ -4502,9 +4506,12 @@ ROM_START( sfz3ugd ) DISK_IMAGE_READONLY( "gdl-0002", 0, SHA1(af4669fdd7ce8e6ec4a170748d401e322a3d7ae8) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5072-com.data", 0x00, 0x50, CRC(6d2992b9) SHA1(88e6dc6711f9f883362ba1217a3350d452a70896) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5072-COM) //(sticker 253-5509-5072) - ROM_LOAD("317-5072-com.data", 0x00, 0x50, CRC(6d2992b9) SHA1(88e6dc6711f9f883362ba1217a3350d452a70896) ) + ROM_LOAD("317-5072-com.pic", 0x00, 0x4000, CRC(3238ba01) SHA1(07c28f17c19eaa652295bbf2d3a96aa27c3748ae) ) ROM_END ROM_START( cvsgd ) @@ -4517,9 +4524,12 @@ ROM_START( cvsgd ) DISK_IMAGE_READONLY( "gdl-0004", 0, SHA1(7a7fba0fbbc769c5120b08e6d692f1ac63a42225) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5076-jpn.data", 0x00, 0x50, CRC(5004161b) SHA1(8b2cdfec12ffd9160bc74659e08d07cbc46a4011) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5076-JPN) //(sticker 253-5509-5076J) - ROM_LOAD("317-5076-jpn.data", 0x00, 0x50, CRC(5004161b) SHA1(8b2cdfec12ffd9160bc74659e08d07cbc46a4011) ) + ROM_LOAD("317-5076-jpn.pic", 0x00, 0x4000, CRC(7c125b10) SHA1(557675e33bb45e4969560bbfd61f48d1784a728d) ) ROM_END @@ -4533,9 +4543,12 @@ ROM_START( gundmxgd ) DISK_IMAGE_READONLY( "gdl-0006", 0, SHA1(b28d6598711b5a9c744bbf07ad03fc60962d2e28) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5079-com.data", 0x00, 0x50, CRC(e6abe978) SHA1(700e610d84e517793a22d6cabd1aef9c3b8bc092) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5079-COM) //(sticker 253-5509-5079) - ROM_LOAD("317-5079-com.data", 0x00, 0x50, CRC(e6abe978) SHA1(700e610d84e517793a22d6cabd1aef9c3b8bc092) ) + ROM_LOAD("317-5079-com.pic", 0x00, 0x4000, CRC(8f9fb55d) SHA1(ca93814ae7a4e99762dd1c2a743e21402b143811) ) ROM_END @@ -4549,9 +4562,12 @@ ROM_START( cvs2gd ) DISK_IMAGE_READONLY( "gdl-0007a", 0, SHA1(56510390667b39b3915d8bc078660cbe093cf566) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5078-com.data", 0x00, 0x50, CRC(1c8d94ee) SHA1(bec4a6901f62dc8f76f7b9d72284b3eaac340bf3) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5078-COM) //(sticker 253-5509-5078) - ROM_LOAD("317-5078-com.data", 0x00, 0x50, CRC(1c8d94ee) SHA1(bec4a6901f62dc8f76f7b9d72284b3eaac340bf3) ) + ROM_LOAD("317-5078-com.pic", 0x00, 0x4000, CRC(e7bb621d) SHA1(0882d0e12ca4fb81dda2268cd12724a10278c220) ) ROM_END ROM_START( ikaruga ) @@ -4564,9 +4580,12 @@ ROM_START( ikaruga ) DISK_IMAGE_READONLY( "gdl-0010", 0, SHA1(65dcc22dd9e9b70975096464ad8e31a4a73dc5fd) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5081-jpn.data", 0x00, 0x50, CRC(d4cc5c8c) SHA1(44c0c5c2744fbd419b684cbc36f01973487bafbc) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5081-JPN) //(sticker 253-5509-5081J) - ROM_LOAD("317-5081-jpn.data", 0x00, 0x50, CRC(d4cc5c8c) SHA1(44c0c5c2744fbd419b684cbc36f01973487bafbc) ) + ROM_LOAD("317-5081-jpn.pic", 0x00, 0x4000, CRC(72ca4579) SHA1(8a46e92fc4a32016438ea877807928b51b3f3861) ) ROM_END @@ -4580,9 +4599,14 @@ ROM_START( ggxx ) DISK_IMAGE_READONLY( "gdl-0011", 0, SHA1(b7328eb2c588d55284bdcea0fe89bb8e629a8669) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) +// ROM_LOAD("317-5082-com.data", 0x00, 0x50, CRC(fa31209d) SHA1(bb18e6412a02510832f7200a06a3179ef1695ef2) ) +// ROM_REGION( 0x9a49, "pichex", ROMREGION_ERASE) +// ROM_LOAD("gdl-0011.hex", 0x00, 0x0009a49, CRC(36361df8) SHA1(86aa50c9b3debd49c7b67f1c9bfd052c0fefc593) ) // actual decap results for ggxx in ascii/hex form + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5082-COM) //(sticker 253-5509-5082) - ROM_LOAD("317-5082-com.data", 0x00, 0x50, CRC(fa31209d) SHA1(bb18e6412a02510832f7200a06a3179ef1695ef2) ) + ROM_LOAD("317-5082-com.pic", 0x00, 0x4000, CRC(1b41189b) SHA1(efa0bf233ea4f64a8ed1c7a72b37de40ed069f33) ) ROM_END @@ -4596,9 +4620,13 @@ ROM_START( moeru ) DISK_IMAGE_READONLY( "gdl-0013", 0, SHA1(c8869069c28bc8eec96d820886bc388d69d46143) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5084-jpn.data", 0x00, 0x50, CRC(56de2066) SHA1(a16a6d9f7272d3f8d322c85222a0487a87811910) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5084-JPN) //(sticker 253-5509-5084J) - ROM_LOAD("317-5084-jpn.data", 0x00, 0x50, CRC(56de2066) SHA1(a16a6d9f7272d3f8d322c85222a0487a87811910) ) + ROM_LOAD("317-5084-jpn.pic", 0x00, 0x4000, CRC(db7dac1e) SHA1(b6f7afe9d9d2681005c1abcd4fde24867e65d1e4) ) + ROM_END @@ -4612,9 +4640,12 @@ ROM_START( chocomk ) DISK_IMAGE_READONLY( "gdl-0014a", 0, SHA1(f88d8203c8692f51c9492d5549a3ad7d9583dc6f) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5085-jpn.data", 0x00, 0x50, CRC(eecd8140) SHA1(471fb6b242eff646173265df891109e3e0a37a7d) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5085-JPN) //(sticker 253-5509-5085J) - ROM_LOAD("317-5085-jpn.data", 0x00, 0x50, CRC(eecd8140) SHA1(471fb6b242eff646173265df891109e3e0a37a7d) ) + ROM_LOAD("317-5085-jpn.pic", 0x00, 0x4000, CRC(677fd544) SHA1(cccd4931bfe3fbcfcde6722088961ddf29a45e89) ) ROM_END @@ -4628,9 +4659,12 @@ ROM_START( quizqgd ) DISK_IMAGE_READONLY( "gdl-0017", 0, SHA1(94a9319633388968611892e36691b45c94b4f83f) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5090-jpn.data", 0x00, 0x50, CRC(b4dd88f6) SHA1(c9aacd79c1088225fa5a69b7bd31a7c1286160e1) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5090-JPN) //(sticker 253-5509-5090J) - ROM_LOAD("317-5090-jpn.data", 0x00, 0x50, CRC(b4dd88f6) SHA1(c9aacd79c1088225fa5a69b7bd31a7c1286160e1) ) + ROM_LOAD("317-5090-jpn.pic", 0x00, 0x4000, CRC(141cced2) SHA1(c7fe2fc61be3585e95a2ce4c6d4373ea71e920de) ) ROM_END ROM_START( azumanga ) @@ -4658,9 +4692,12 @@ ROM_START( ggxxrl ) DISK_IMAGE_READONLY( "gdl-0019a", 0, SHA1(d44906505ff698eda6feee6c2b9402e19f64e5d3) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5092-jpn.data", 0x00, 0x50, CRC(7c8cca4b) SHA1(92c5a0fd8916744eefc023e64daea69803573928) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5092-JPN) //(sticker 253-5509-5092J) - ROM_LOAD("317-5092-jpn.data", 0x00, 0x50, CRC(7c8cca4b) SHA1(92c5a0fd8916744eefc023e64daea69803573928) ) + ROM_LOAD("317-5092-jpn.pic", 0x00, 0x4000, CRC(7ad7b541) SHA1(45c1e3da030add3bb07797ee7f22003224ae3f7f) ) ROM_END @@ -4674,9 +4711,12 @@ ROM_START( tetkiwam ) DISK_IMAGE_READONLY( "gdl-0020", 0, SHA1(7b2ef47ca2038d6a93615b760b03e8f7cb1b83c2) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5093-jpn.data", 0x00, 0x50, CRC(06bc5013) SHA1(f7a46b7e34b20409ce2fdae80e5cdfff7adb9c64) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5093-JPN) //(sticker 253-5509-5093J) - ROM_LOAD("317-5093-jpn.data", 0x00, 0x50, CRC(06bc5013) SHA1(f7a46b7e34b20409ce2fdae80e5cdfff7adb9c64) ) + ROM_LOAD("317-5093-jpn.pic", 0x00, 0x4000, CRC(a61e1e2a) SHA1(ccbec76da6454d4d2384a2adb3f8b62aa1fece24) ) ROM_END @@ -4690,9 +4730,12 @@ ROM_START( shikgam2 ) DISK_IMAGE_READONLY( "gdl-0021", 0, SHA1(f5036711a28a211e8d71400a8322db3172c5733f) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5095-jpn.data", 0x00, 0x50, CRC(6033ec89) SHA1(9e99a8ad43fa29296dbf2e13b3a3d4552130b4e8) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5095-JPN) //(sticker 253-5509-5095J) - ROM_LOAD("317-5095-jpn.data", 0x00, 0x50, CRC(6033ec89) SHA1(9e99a8ad43fa29296dbf2e13b3a3d4552130b4e8) ) + ROM_LOAD("317-5095-jpn.pic", 0x00, 0x4000, CRC(7c25cb5c) SHA1(02797e890030ddf2df470e85ebd6c539f6621e53) ) ROM_END @@ -4706,9 +4749,12 @@ ROM_START( usagui ) DISK_IMAGE_READONLY( "gdl-0022", 0, SHA1(45deba05a12abbf6390c0fc0e4cdeaedfa7d2ca5) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5096-jpn.data", 0x00, 0x50, CRC(621e827a) SHA1(cdc7580f5d1dfe85d2806233f22bc4f13fd62946) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5096-JPN) //(sticker 253-5509-5096J) - ROM_LOAD("317-5096-jpn.data", 0x00, 0x50, CRC(621e827a) SHA1(cdc7580f5d1dfe85d2806233f22bc4f13fd62946) ) + ROM_LOAD("317-5096-jpn.pic", 0x00, 0x4000, CRC(2d16887b) SHA1(32d11691c3d1242b16bc3fbcc0f1157bb16436e0) ) ROM_END @@ -4722,9 +4768,13 @@ ROM_START( bdrdown ) DISK_IMAGE_READONLY( "gdl-0023a", 0, SHA1(caac915104d61f2122f5afe27da1ef5fa9cf9f9a) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5097-jpn.data", 0x00, 0x50, CRC(e689d047) SHA1(7e3e298d9a8076af0254faeb0eb89fbfce94718d) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5097-JPN) //(sticker 253-5509-5097J) - ROM_LOAD("317-5097-jpn.data", 0x00, 0x50, CRC(e689d047) SHA1(7e3e298d9a8076af0254faeb0eb89fbfce94718d) ) + ROM_LOAD("317-5097-jpn.pic", 0x00, 0x4000, CRC(16d2a748) SHA1(5358f89c26427428840fd9af7d584a55db5a76de) ) + ROM_END @@ -4738,9 +4788,12 @@ ROM_START( psyvar2 ) DISK_IMAGE_READONLY( "gdl-0024", 0, SHA1(d346762036fb1c40a261a434b50e63459f306f14) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5100-jpn.data", 0x00, 0x50, CRC(94316f0f) SHA1(e1ec2b4225105dbaa1e59e8a05027e73f7b725a9) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C621A (317-5100-JPN) //(sticker 253-5509-5100J) - ROM_LOAD("317-5100-jpn.data", 0x00, 0x50, CRC(94316f0f) SHA1(e1ec2b4225105dbaa1e59e8a05027e73f7b725a9) ) + ROM_LOAD("317-5100-jpn.pic", 0x00, 0x4000, CRC(f37a1dbe) SHA1(a0b43069c9ecd5633418404344b7750db5371ac4) ) ROM_END @@ -4755,9 +4808,12 @@ ROM_START( cfield ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5102-com.data", 0x00, 0x50, CRC(32adf2eb) SHA1(d86752e6fe9ccac093c512828fca5b7ae62a3ff2) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C621A (317-5102-COM) //(sticker 253-5509-5102) - ROM_LOAD("317-5102-com.data", 0x00, 0x50, CRC(32adf2eb) SHA1(d86752e6fe9ccac093c512828fca5b7ae62a3ff2) ) + ROM_LOAD("317-5102-com.pic", 0x00, 0x4000, CRC(8f1d8387) SHA1(1f9427aca21b2de44959cd510b5f9105b845a532) ) ROM_END @@ -4772,9 +4828,12 @@ ROM_START( trizeal ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5103-jpn.data", 0x00, 0x50, CRC(3affbf82) SHA1(268746e86e7546f4bab54bdd268f7b58f10c1aaf) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C621A (317-5103-JPN) //(sticker 253-5509-5103J) - ROM_LOAD("317-5103-jpn.data", 0x00, 0x50, CRC(3affbf82) SHA1(268746e86e7546f4bab54bdd268f7b58f10c1aaf) ) + ROM_LOAD("317-5103-jpn.pic", 0x00, 0x4000, CRC(93feaff4) SHA1(0b362e9794c83b43e23a3d7299ff0b69f4740481) ) ROM_END @@ -4788,9 +4847,12 @@ ROM_START( meltybld ) DISK_IMAGE_READONLY( "gdl-0028c", 0, SHA1(66de09738551e351784cc9695a58b35fdf6b6c4b) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5104-jpn.data", 0x00, 0x50, CRC(fedc8305) SHA1(c535545937213f726f25e6aa8eb3746a794e9100) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5104-JPN) //(sticker 253-5509-5104J) - ROM_LOAD("317-5104-jpn.data", 0x00, 0x50, CRC(fedc8305) SHA1(c535545937213f726f25e6aa8eb3746a794e9100) ) + ROM_LOAD("317-5104-jpn.pic", 0x00, 0x4000, CRC(afa5e709) SHA1(c107f6c5b7574f2c7e7ac6ed1fcc37edabdc95e8) ) ROM_END @@ -4804,9 +4866,12 @@ ROM_START( senko ) DISK_IMAGE_READONLY( "gdl-0030a", 0, SHA1(1f7ade47e37a0026451b5baf3ba746400de8d156) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5107-jpn.data", 0x00, 0x50, CRC(7b607409) SHA1(a9946a0637453e4813bef18060d4420355cff800) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5107-JPN) //(sticker 253-5509-5107J) - ROM_LOAD("317-5107-jpn.data", 0x00, 0x50, CRC(7b607409) SHA1(a9946a0637453e4813bef18060d4420355cff800) ) + ROM_LOAD("317-5107-jpn.pic", 0x00, 0x4000, CRC(6bc3fad0) SHA1(6d5196265232f4c0715a97acc84d6f7376056894) ) ROM_END ROM_START( senkoo ) @@ -4819,9 +4884,12 @@ ROM_START( senkoo ) DISK_IMAGE_READONLY( "gdl-0030", 0, SHA1(c7f25c05f47a490c5da9369c588b6136e93c280e) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) - //PIC16C621A (317-5107-JPN) + //ROM_LOAD("317-5107-jpn.data", 0x00, 0x50, CRC(7b607409) SHA1(a9946a0637453e4813bef18060d4420355cff800) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) + //PIC16C622A (317-5107-JPN) //(sticker 253-5509-5107J) - ROM_LOAD("317-5107-jpn.data", 0x00, 0x50, CRC(7b607409) SHA1(a9946a0637453e4813bef18060d4420355cff800) ) + ROM_LOAD("317-5107-jpn.pic", 0x00, 0x4000, CRC(6bc3fad0) SHA1(6d5196265232f4c0715a97acc84d6f7376056894) ) ROM_END @@ -4835,9 +4903,12 @@ ROM_START( ss2005 ) DISK_IMAGE_READONLY( "gdl-0031a", 0, SHA1(6091525845fc2042ed43cae5a1b60c603e16cf97) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5108-jpn.data", 0x00, 0x50, CRC(6a2eb334) SHA1(cab407d2e994f33aa921d50f399b17e6fbf98eb0) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5108-JPN) //(sticker 253-5509-5108J) - ROM_LOAD("317-5108-jpn.data", 0x00, 0x50, CRC(6a2eb334) SHA1(cab407d2e994f33aa921d50f399b17e6fbf98eb0) ) + ROM_LOAD("317-5108-jpn.pic", 0x00, 0x4000, CRC(4fa7dede) SHA1(f9011e951378364a12512d398f76be174dccce69) ) ROM_END @@ -4851,9 +4922,12 @@ ROM_START( radirgy ) DISK_IMAGE_READONLY( "gdl-0032", 0, SHA1(ebd7a40e59082e660ebf9a2d4ae7cb64371dae8d) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5110-jpn.data", 0x00, 0x50, CRC(04e4ac45) SHA1(4102a4d68f20a7e78f6c7e3494e7229018e30e39) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C621A (317-5110-JPN) //(sticker 253-5509-5110J) - ROM_LOAD("317-5110-jpn.data", 0x00, 0x50, CRC(04e4ac45) SHA1(4102a4d68f20a7e78f6c7e3494e7229018e30e39) ) + ROM_LOAD("317-5110-jpn.pic", 0x00, 0x4000, CRC(829d06e2) SHA1(c53d791e82cc75f2bcd49575185c89d448fed672) ) ROM_END @@ -4867,9 +4941,13 @@ ROM_START( ggxxsla ) DISK_IMAGE_READONLY( "gdl-0033a", 0, SHA1(29de69ae97a9099b1bbe936dfa965bb4a3195f68) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5111-jpn.data", 0x00, 0x50, CRC(a517c70d) SHA1(5f9798941355fb9abce511508c860653d6369e72) ) + + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C621A (317-5111-JPN) //(sticker 253-5509-5111J) - ROM_LOAD("317-5111-jpn.data", 0x00, 0x50, CRC(a517c70d) SHA1(5f9798941355fb9abce511508c860653d6369e72) ) + ROM_LOAD("317-5111-jpn.pic", 0x00, 0x4000, CRC(96bcbd42) SHA1(af4efdf2a02920af9885d104091da0584fca988c) ) ROM_END @@ -4883,9 +4961,12 @@ ROM_START( kurucham ) DISK_IMAGE_READONLY( "gdl-0034", 0, SHA1(10fd7edb0b620133c003d686e5af2ed27004fa09) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5115-jpn.data", 0x00, 0x50, CRC(f40072a8) SHA1(366df2079a4d2ff7a93082c9bf849aad40ab079d) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C621A (317-5115-JPN) //(sticker 253-5509-5115J) - ROM_LOAD("317-5115-jpn.data", 0x00, 0x50, CRC(f40072a8) SHA1(366df2079a4d2ff7a93082c9bf849aad40ab079d) ) + ROM_LOAD("317-5115-jpn.pic", 0x00, 0x4000, CRC(e5435e85) SHA1(9d5b25de82284e5fcab2cbf7fb73669d1130648a) ) ROM_END @@ -4899,9 +4980,12 @@ ROM_START( undefeat ) DISK_IMAGE_READONLY( "gdl-0035", 0, SHA1(91da482a6a082e48bee5b3bd20d9c92d23936965) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5117-jpn.data", 0x00, 0x50, CRC(f90f6d3b) SHA1(a18f803a8e951c375a3a55e4b0e74b698ae93f92) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5117-JPN) //(sticker 253-5509-5117J) - ROM_LOAD("317-5117-jpn.data", 0x00, 0x50, CRC(f90f6d3b) SHA1(a18f803a8e951c375a3a55e4b0e74b698ae93f92) ) + ROM_LOAD("317-5117-jpn.pic", 0x00, 0x4000, CRC(61e65ca8) SHA1(f1a242d3dd1af0df084dd1568320f6b4c51d9e20) ) ROM_END @@ -4915,9 +4999,12 @@ ROM_START( meltyb ) DISK_IMAGE_READONLY( "gdl-0039", 0, SHA1(ffc7f6e113ad69422a4f22f318bdf9b1dc5c25db) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5124-jpn.data", 0x00, 0x50, CRC(4d6e2c77) SHA1(3bed734c291140d0a61afa40f221395369a251a9) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5124-JPN) //(sticker 253-5509-5124J) - ROM_LOAD("317-5124-jpn.data", 0x00, 0x50, CRC(4d6e2c77) SHA1(3bed734c291140d0a61afa40f221395369a251a9) ) + ROM_LOAD("317-5124-jpn.pic", 0x00, 0x4000, CRC(ad162bfa) SHA1(0e9740ba65a724eb7cd70fb897e5cd9ac17aa55c) ) ROM_END ROM_START( meltyba ) @@ -4930,9 +5017,12 @@ ROM_START( meltyba ) DISK_IMAGE_READONLY( "gdl-0039a", 0, SHA1(e6aa3d65b43a20606e6754bcb8665438770a1f8c) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5124-jpn.data", 0x00, 0x50, CRC(4d6e2c77) SHA1(3bed734c291140d0a61afa40f221395369a251a9) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5124-JPN) //(sticker 253-5509-5124J) - ROM_LOAD("317-5124-jpn.data", 0x00, 0x50, CRC(4d6e2c77) SHA1(3bed734c291140d0a61afa40f221395369a251a9) ) + ROM_LOAD("317-5124-jpn.pic", 0x00, 0x4000, CRC(ad162bfa) SHA1(0e9740ba65a724eb7cd70fb897e5cd9ac17aa55c) ) ROM_END @@ -4946,9 +5036,12 @@ ROM_START( trgheart ) DISK_IMAGE_READONLY( "gdl-0036a", 0, SHA1(91f1e19136997cb1e2edfb1ad342b9427d1d3bfb) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5121-jpn.data", 0x00, 0x50, CRC(a417b20f) SHA1(af6ed7ebf95948bff3e8df915b229189b8de1e46) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5121-JPN) //(sticker 253-5509-5121J) - ROM_LOAD("317-5121-jpn.data", 0x00, 0x50, CRC(a417b20f) SHA1(af6ed7ebf95948bff3e8df915b229189b8de1e46) ) + ROM_LOAD("317-5121-jpn.pic", 0x00, 0x4000, CRC(cdb9b179) SHA1(8f7d1e9a99ad90344449c6ebb623e2968f611ec0) ) ROM_END @@ -4963,9 +5056,12 @@ ROM_START( jingystm ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5122-jpn.data", 0x00, 0x50, CRC(0b85b7e4) SHA1(f4e419682ddc4b98a330e5ae543f9276c9bde030) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-5122-JPN) //(sticker 253-5509-5122J) - ROM_LOAD("317-5122-jpn.data", 0x00, 0x50, CRC(0b85b7e4) SHA1(f4e419682ddc4b98a330e5ae543f9276c9bde030) ) + ROM_LOAD("317-5122-jpn.pic", 0x00, 0x4000, CRC(88983220) SHA1(410ee292794c44d2249778c8b6adda023286eb04) ) ROM_END @@ -4979,9 +5075,12 @@ ROM_START( karous ) DISK_IMAGE_READONLY( "gdl-0040", 0, SHA1(a62c8d4b6c5be44a4aeeea1a1a94f3d0fe542593) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5125-com.data", 0x00, 0x50, CRC(9d37b5e3) SHA1(e1d3cdc2ed82c864c9ff54d9399a80b70ba150c5) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C621A (317-5125-COM) //(sticker 253-5509-5125) - ROM_LOAD("317-5125-com.data", 0x00, 0x50, CRC(9d37b5e3) SHA1(e1d3cdc2ed82c864c9ff54d9399a80b70ba150c5) ) + ROM_LOAD("317-5125-com.pic", 0x00, 0x4000, CRC(918efc4f) SHA1(e32502b8df0b432eebaf0286176dd3bcd3f65dbb) ) ROM_END @@ -4995,9 +5094,12 @@ ROM_START( takoron ) DISK_IMAGE_READONLY( "gdl-0042", 0, SHA1(984a4fa012d83dd8c748304958c847c9867f4125) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-5127-jpn.data", 0x00, 0x50, CRC(e1a6dbe4) SHA1(61b458937acca55e4010f86b684aaa86b8c10eac) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C621A (317-5127-JPN) //(sticker 253-5509-5127J) - ROM_LOAD("317-5127-jpn.data", 0x00, 0x50, CRC(e1a6dbe4) SHA1(61b458937acca55e4010f86b684aaa86b8c10eac) ) + ROM_LOAD("317-5127-jpn.pic", 0x00, 0x4000, CRC(870c55eb) SHA1(cd8861726047250882c73a5f0c2480f45c30f21b) ) ROM_END /* -------------------------------- 1st party -------------- */ @@ -5034,7 +5136,10 @@ ROM_START( confmiss ) DISK_IMAGE_READONLY( "gds-0001", 0, SHA1(bd05f197ba8643577883dd25d9d5a74c91b27ca9) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) - ROM_LOAD("317-0298-com.data", 0x00, 0x50, CRC(c989b336) SHA1(40075500888626cc2261133eec496b3e753631e5) ) + //ROM_LOAD("317-0298-com.data", 0x00, 0x50, CRC(c989b336) SHA1(40075500888626cc2261133eec496b3e753631e5) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) + ROM_LOAD("317-0298-com.pic", 0x00, 0x4000, CRC(15971bf6) SHA1(815152ab05edb1789a26898cfd66b5a7c4a1f765) ) ROM_END @@ -5050,7 +5155,10 @@ ROM_START( sprtjam ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) //PIC16C622A (317-0300-COM) //(sticker 253-5508-0300) - ROM_LOAD("317-0300-com.data", 0x00, 0x50, CRC(9a08413f) SHA1(d57649dcc3af578d55a93dd7a3f41da62d580f54) ) + //ROM_LOAD("317-0300-com.data", 0x00, 0x50, CRC(9a08413f) SHA1(d57649dcc3af578d55a93dd7a3f41da62d580f54) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) + ROM_LOAD("317-0300-com.pic", 0x00, 0x4000, CRC(19a97214) SHA1(bcee1af2c16daabc7a0f723e1f9281a7c95600c6) ) ROM_END @@ -5064,9 +5172,12 @@ ROM_START( slashout ) DISK_IMAGE_READONLY( "gds-0004", 0, SHA1(3cce788393ed194ba9b603f9896ff893691d6b00) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0302-com.data", 0x00, 0x50, CRC(4bf6cd62) SHA1(c1fdf12a4d80fa3008170c89d2dc583f19e0450b) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-0302-COM) //(sticker 253-5508-0302) - ROM_LOAD("317-0302-com.data", 0x00, 0x50, CRC(4bf6cd62) SHA1(c1fdf12a4d80fa3008170c89d2dc583f19e0450b) ) + ROM_LOAD("317-0302-com.pic", 0x00, 0x4000, CRC(fa290329) SHA1(76c7266a124b23eaa5747f870cd2cfe881dd23af) ) ROM_END @@ -5080,9 +5191,12 @@ ROM_START( spkrbtl ) DISK_IMAGE_READONLY( "gds-0005", 0, SHA1(d1c3fb2350e4a89372373e7f629c42b741af29b3) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0303-com.data", 0x00, 0x50, CRC(6e7888a3) SHA1(5ca78052bcfd9e9f81934cbddd9c173e88973e0e) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-0303-COM) //(sticker 253-5508-0303) - ROM_LOAD("317-0303-com.data", 0x00, 0x50, CRC(6e7888a3) SHA1(5ca78052bcfd9e9f81934cbddd9c173e88973e0e) ) + ROM_LOAD("317-0303-com.pic", 0x00, 0x4000, CRC(b42999dd) SHA1(f285bdf34904517e119bd170b4ed0624eefac7bd) ) ROM_END /* @@ -5117,7 +5231,10 @@ ROM_START( monkeyba ) DISK_IMAGE_READONLY( "gds-0008", 0, SHA1(2fadcd141bdbde77b2b335b270959a516af44d99) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) - ROM_LOAD("317-0307-com.data", 0x00, 0x50, CRC(448bedc7) SHA1(092dbe5e28890d3ee40d62ca8cbf225c3ce90304) ) + //ROM_LOAD("317-0307-com.data", 0x00, 0x50, CRC(448bedc7) SHA1(092dbe5e28890d3ee40d62ca8cbf225c3ce90304) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) + ROM_LOAD("317-0307-com.pic", 0x00, 0x4000, CRC(4046de19) SHA1(8adda9f223e926148b36744bbbaa89557544a229) ) ROM_END /* @@ -5153,18 +5270,21 @@ ROM_START( dygolf ) NAOMIGD_BIOS NAOMI_DEFAULT_EEPROM + ROM_REGION( 0x10000, "io_board", 0) + ROM_LOAD("epr-22084.ic3", 0x0000, 0x10000, CRC(18cf58bb) SHA1(1494f8215231929e41bbe2a133658d01882fbb0f) ) + ROM_REGION( 0x10000000, "user1", ROMREGION_ERASE) // allocate max size in init instead? DISK_REGION( "gdrom" ) DISK_IMAGE_READONLY( "gds-0009", 0, SHA1(d502155ddaf881c2c9505528004b9904aa32a59c) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0308-com.data", 0x00, 0x50, CRC(56f63af0) SHA1(3c453226fc53d2f700b3634db3ef8ce206d94392) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-0308-COM) //(sticker 253-5508-0308) - ROM_LOAD("317-0308-com.data", 0x00, 0x50, CRC(56f63af0) SHA1(3c453226fc53d2f700b3634db3ef8ce206d94392) ) - - ROM_REGION( 0x10000, "io_board", 0) - ROM_LOAD("epr-22084.ic3", 0x0000, 0x10000, CRC(18cf58bb) SHA1(1494f8215231929e41bbe2a133658d01882fbb0f) ) + ROM_LOAD("317-0308-com.pic", 0x00, 0x4000, CRC(5e1ef2c4) SHA1(57fa3efbb24f8b54e62fe0a2133d863cc7638f53) ) ROM_END @@ -5178,9 +5298,12 @@ ROM_START( wsbbgd ) DISK_IMAGE_READONLY( "gds-0010", 0, SHA1(c3135ede3a8bdadab91aed49abacbfbde8037069) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0309-com.data", 0x00, 0x50, CRC(8792c550) SHA1(e8d6d91583d1673d8d3fa9ccb0ab1097c5c5ad08) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-0309-COM) //(sticker 253-5508-0309) - ROM_LOAD("317-0309-com.data", 0x00, 0x50, CRC(8792c550) SHA1(e8d6d91583d1673d8d3fa9ccb0ab1097c5c5ad08) ) + ROM_LOAD("317-0309-com.pic", 0x00, 0x4000, CRC(62d760bf) SHA1(9cf247a63250ce1770ec18e76e1637b2e4e442d9) ) ROM_END @@ -5194,9 +5317,12 @@ ROM_START( vtennisg ) DISK_IMAGE_READONLY( "gds-0011", 0, SHA1(b778403d73c8cdd13383691c9be2094ddfc1ba84) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0312-com.data", 0x00, 0x50, CRC(6b24f78f) SHA1(43f89815ec46cf014d941b4b9238da044b338b4c) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C621A (317-0312-COM) //(sticker 253-5508-0312) - ROM_LOAD("317-0312-com.data", 0x00, 0x50, CRC(6b24f78f) SHA1(43f89815ec46cf014d941b4b9238da044b338b4c) ) + ROM_LOAD("317-0312-com.pic", 0x00, 0x4000, CRC(7213684e) SHA1(0b1adb2f6b7576534096832752cf7606a52c166e) ) ROM_END ROM_START( keyboard ) @@ -5209,7 +5335,11 @@ ROM_START( keyboard ) DISK_IMAGE_READONLY( "gds-0017", 0, SHA1(fb86eff3ef38de7fd78cfde897d5332d2092c172) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) - ROM_LOAD("317-0323-com.data", 0x00, 0x50, CRC(c1277eb3) SHA1(529ed5a133550e2854f8656cd377706060a7befa) ) + //ROM_LOAD("317-0323-com.data", 0x00, 0x50, CRC(c1277eb3) SHA1(529ed5a133550e2854f8656cd377706060a7befa) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) + ROM_LOAD("317-0323-com.pic", 0x00, 0x4000, CRC(c8854ef2) SHA1(b43b956df142fe4167dcc2ec805921e25bba180f) ) + ROM_END @@ -5223,9 +5353,12 @@ ROM_START( vathlete ) DISK_IMAGE_READONLY( "gds-0019", 0, SHA1(955d3c0cb991be3057138c562cff69c5ef887787) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0330-com.data", 0x00, 0x50, CRC(f5e7f7d4) SHA1(3903337e82011d132993e4366475586866bd39b1) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-0330-COM) //(sticker 253-5508-0330) - ROM_LOAD("317-0330-com.data", 0x00, 0x50, CRC(f5e7f7d4) SHA1(3903337e82011d132993e4366475586866bd39b1) ) + ROM_LOAD("317-0330-com.pic", 0x00, 0x4000, CRC(33ccf2d1) SHA1(669d459fcbb327d2fcf34777d7a731979477fb02) ) ROM_END /* @@ -5262,7 +5395,11 @@ ROM_START( vtennis2 ) DISK_IMAGE_READONLY( "gds-0015a", 0, SHA1(c6e9c9901bd4f075454b7f18baf08df81bc2f1ad) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) - ROM_LOAD("317-0318-exp.data", 0x00, 0x50, CRC(7758ade6) SHA1(c62f35810bce466bfb0f55fd555066efd53e9bb6) ) + //ROM_LOAD("317-0318-exp.data", 0x00, 0x50, CRC(7758ade6) SHA1(c62f35810bce466bfb0f55fd555066efd53e9bb6) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) + ROM_LOAD("317-0318-exp.pic", 0x00, 0x4000, CRC(83de4047) SHA1(1808ac0d8353b92296de37f98b490a42a0e141cf) ) + ROM_END @@ -5276,7 +5413,10 @@ ROM_START( lupinsho ) DISK_IMAGE_READONLY( "gds-0018", 0, SHA1(0633a99a666f363ab30450a76b9753685d6b1f57) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) - ROM_LOAD("317-0332-j.data", 0x00, 0x50, CRC(31f2b632) SHA1(bbf253bfe831308a7e7fde3a4a28e5bcd2fbb273) ) + //ROM_LOAD("317-0332-j.data", 0x00, 0x50, CRC(31f2b632) SHA1(bbf253bfe831308a7e7fde3a4a28e5bcd2fbb273) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) + ROM_LOAD("317-0332-j.pic", 0x00, 0x4000, CRC(f71cb2fc) SHA1(281b3b3b03edf9a39e380976de528b7c9674de53) ) ROM_END @@ -5290,9 +5430,13 @@ ROM_START( luptype ) DISK_IMAGE_READONLY( "gds-0021a", 0, SHA1(15c6f9434494a31693cbb8e33da36e0e8a8f7c62) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0332-jpn.data", 0x00, 0x50, CRC(ab302661) SHA1(65164cf76d78b281772bfcbf5a733b0200e86e09) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-0332-JPN) //(sticker 253-5508-0332J) - ROM_LOAD("317-0332-jpn.data", 0x00, 0x50, CRC(ab302661) SHA1(65164cf76d78b281772bfcbf5a733b0200e86e09) ) + ROM_LOAD("317-0332-jpn.pic", 0x00, 0x4000, CRC(43e78ecf) SHA1(bbe4b036e965fbba6ab79c88cba4ea8f0ea3f9fc) ) + ROM_END /* @@ -5327,7 +5471,11 @@ ROM_START( mok ) DISK_IMAGE_READONLY( "gds-0022", 0, SHA1(70b41745225006e7876176cbd239edecd4c3f8b6) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) - ROM_LOAD("317-0333-com.data", 0x00, 0x50, CRC(0c07970f) SHA1(8882dd2f8ed522790ea78eed80cfa9442f88f67b) ) + //ROM_LOAD("317-0333-com.data", 0x00, 0x50, CRC(0c07970f) SHA1(8882dd2f8ed522790ea78eed80cfa9442f88f67b) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) + ROM_LOAD("317-0333-com.pic", 0x00, 0x4000, CRC(15fb7792) SHA1(03932ba9b1738d5ab75b2a465cc3254e75f59f63) ) + ROM_END @@ -5340,10 +5488,14 @@ ROM_START( ngdup23a ) DISK_REGION( "gdrom" ) DISK_IMAGE_READONLY( "gds-0023a", 0, SHA1(cd9d808b59eb8f40673ec4353d476f2b9c7f783c) ) - ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) // uses the vf4 pic + ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0314-com.data", 0x00, 0x50, CRC(91a97eb4) SHA1(059342368bc5d25b494ed3c729870695f9584fc7) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) // uses the vf4 pic //PIC16C622A (317-0314-COM) //(sticker 253-5508-0314) - ROM_LOAD("317-0314-com.data", 0x00, 0x50, CRC(91a97eb4) SHA1(059342368bc5d25b494ed3c729870695f9584fc7) ) + ROM_LOAD("317-0314-com.pic", 0x00, 0x4000, CRC(fa0b6c70) SHA1(c29936cb18e1dd592563b1104281f031e3b12fc2) ) + ROM_END ROM_START( ngdup23c ) @@ -5355,10 +5507,13 @@ ROM_START( ngdup23c ) DISK_REGION( "gdrom" ) DISK_IMAGE_READONLY( "gds-0023c", 0, SHA1(1fcb5530748886f4c4f45487d047859182ff7496)) - ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) // uses the vf4 evolution pic + ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0338-jpn.data", 0x00, 0x50, CRC(eeb2c9e9) SHA1(d30b5914c603219daea9923e1cf8da2be6096742) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) // uses the vf4 evolution pic //PIC16C622A (317-0338-JPN) //(sticker 253-5508-0338J) - ROM_LOAD("317-0338-jpn.data", 0x00, 0x50, CRC(eeb2c9e9) SHA1(d30b5914c603219daea9923e1cf8da2be6096742) ) + ROM_LOAD("317-0338-jpn.pic", 0x00, 0x4000, CRC(b177ba7d) SHA1(f751ec43a8e944a01eeda58c01b7bc73e5df749d) ) ROM_END @@ -5372,9 +5527,12 @@ ROM_START( puyofev ) DISK_IMAGE_READONLY( "gds-0031", 0, SHA1(da2d421da9472b149619b6931bb2fe624be75fa2) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0375-com.data", 0x00, 0x50, CRC(32bf1825) SHA1(42dfbc6777c154d8de6c6f7350da9ea737380220) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C621A (317-0375-COM) //(sticker 253-5508-0375) - ROM_LOAD("317-0375-com.data", 0x00, 0x50, CRC(32bf1825) SHA1(42dfbc6777c154d8de6c6f7350da9ea737380220) ) + ROM_LOAD("317-0375-com.pic", 0x00, 0x4000, CRC(52b56b52) SHA1(221590efbb09824621714cb163bda51a921d7d54) ) ROM_END @@ -5624,9 +5782,12 @@ ROM_START( vstrik3 ) DISK_IMAGE_READONLY( "gds-0006", 0, SHA1(aca09a88506f5e462ad3fb33eac5478a2a010609) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0304-com.data", 0x00, 0x50, CRC(a181c601) SHA1(6a489904941e638ac1069b66e76ee0bcec7d0bab) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-0304-COM) //(sticker 253-5508-0304) - ROM_LOAD("317-0304-com.data", 0x00, 0x50, CRC(a181c601) SHA1(6a489904941e638ac1069b66e76ee0bcec7d0bab) ) + ROM_LOAD("317-0304-com.bin", 0x00, 0x4000, CRC(8e82d17a) SHA1(141a4d492b13bbb222dfbe7a1ad296b548d12a3b) ) ROM_END ROM_START( vf4 ) @@ -5639,9 +5800,13 @@ ROM_START( vf4 ) DISK_IMAGE_READONLY( "gds-0012", 0, SHA1(c34588f59c6091cd1c3ef235171dad8d5247e707) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0314-com.data", 0x00, 0x50, CRC(91a97eb4) SHA1(059342368bc5d25b494ed3c729870695f9584fc7) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-0314-COM) //(sticker 253-5508-0314) - ROM_LOAD("317-0314-com.data", 0x00, 0x50, CRC(91a97eb4) SHA1(059342368bc5d25b494ed3c729870695f9584fc7) ) + ROM_LOAD("317-0314-com.pic", 0x00, 0x4000, CRC(fa0b6c70) SHA1(c29936cb18e1dd592563b1104281f031e3b12fc2) ) + ROM_END ROM_START( vf4b ) @@ -5654,9 +5819,13 @@ ROM_START( vf4b ) DISK_IMAGE_READONLY( "gds-0012b", 0, SHA1(9b8e05c3d28a09323b13c198dfcc2b771bba67cd) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0314-com.data", 0x00, 0x50, CRC(91a97eb4) SHA1(059342368bc5d25b494ed3c729870695f9584fc7) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-0314-COM) //(sticker 253-5508-0314) - ROM_LOAD("317-0314-com.data", 0x00, 0x50, CRC(91a97eb4) SHA1(059342368bc5d25b494ed3c729870695f9584fc7) ) + ROM_LOAD("317-0314-com.pic", 0x00, 0x4000, CRC(fa0b6c70) SHA1(c29936cb18e1dd592563b1104281f031e3b12fc2) ) + ROM_END ROM_START( vf4c ) @@ -5669,9 +5838,13 @@ ROM_START( vf4c ) DISK_IMAGE_READONLY( "gds-0012c", 0, SHA1(0ec149d7edfb326777cdc45a2ac8ad578a32aba1) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0314-com.data", 0x00, 0x50, CRC(91a97eb4) SHA1(059342368bc5d25b494ed3c729870695f9584fc7) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-0314-COM) //(sticker 253-5508-0314) - ROM_LOAD("317-0314-com.data", 0x00, 0x50, CRC(91a97eb4) SHA1(059342368bc5d25b494ed3c729870695f9584fc7) ) + ROM_LOAD("317-0314-com.pic", 0x00, 0x4000, CRC(fa0b6c70) SHA1(c29936cb18e1dd592563b1104281f031e3b12fc2) ) + ROM_END @@ -5685,9 +5858,13 @@ ROM_START( vf4evo ) DISK_IMAGE_READONLY( "gds-0024b", 0, SHA1(a829169542f3bed76095ad6bfbbde7d494d04d72) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0338-jpn.data", 0x00, 0x50, CRC(eeb2c9e9) SHA1(d30b5914c603219daea9923e1cf8da2be6096742) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-0338-JPN) //(sticker 253-5508-0338J) - ROM_LOAD("317-0338-jpn.data", 0x00, 0x50, CRC(eeb2c9e9) SHA1(d30b5914c603219daea9923e1cf8da2be6096742) ) + ROM_LOAD("317-0338-jpn.pic", 0x00, 0x4000, CRC(b177ba7d) SHA1(f751ec43a8e944a01eeda58c01b7bc73e5df749d) ) + ROM_END ROM_START( vf4evoa ) @@ -5700,9 +5877,12 @@ ROM_START( vf4evoa ) DISK_IMAGE_READONLY( "gds-0024a", 0, SHA1(6225e778d73db18be26f882d4f9cd3b3a136d1c9) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0338-jpn.data", 0x00, 0x50, CRC(eeb2c9e9) SHA1(d30b5914c603219daea9923e1cf8da2be6096742) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-0338-JPN) //(sticker 253-5508-0338J) - ROM_LOAD("317-0338-jpn.data", 0x00, 0x50, CRC(eeb2c9e9) SHA1(d30b5914c603219daea9923e1cf8da2be6096742) ) + ROM_LOAD("317-0338-jpn.pic", 0x00, 0x4000, CRC(b177ba7d) SHA1(f751ec43a8e944a01eeda58c01b7bc73e5df749d) ) ROM_END ROM_START( initdv2j ) @@ -5728,9 +5908,12 @@ ROM_START( vf4tuned ) // are there multiple files on this GD-ROM? it only compre DISK_IMAGE_READONLY( "gds-0036f", 0, SHA1(ea35d6ecdf94e5c9a545952758da80f658755df0) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0387-com.data", 0x00, 0x50, CRC(ab9f3851) SHA1(8b64dc6df176eb7adb48267709a27db221d5e3c3) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-0387-COM) //(sticker 253-5508-0387) - ROM_LOAD("317-0387-com.data", 0x00, 0x50, CRC(ab9f3851) SHA1(8b64dc6df176eb7adb48267709a27db221d5e3c3) ) + ROM_LOAD("317-0387-com.pic", 0x00, 0x4000, CRC(8728aeaa) SHA1(07983ab41d143f845c3150dfc9b7301968708e18) ) ROM_END ROM_START( vf4tunedd ) @@ -5743,9 +5926,13 @@ ROM_START( vf4tunedd ) DISK_IMAGE_READONLY( "gds-0036d", 0, SHA1(2f7654307a4c978c5af6c8238c44e70275dd34f9) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0387-com.data", 0x00, 0x50, CRC(ab9f3851) SHA1(8b64dc6df176eb7adb48267709a27db221d5e3c3) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-0387-COM) //(sticker 253-5508-0387) - ROM_LOAD("317-0387-com.data", 0x00, 0x50, CRC(ab9f3851) SHA1(8b64dc6df176eb7adb48267709a27db221d5e3c3) ) + ROM_LOAD("317-0387-com.pic", 0x00, 0x4000, CRC(8728aeaa) SHA1(07983ab41d143f845c3150dfc9b7301968708e18) ) + ROM_END @@ -5759,9 +5946,12 @@ ROM_START( vf4tuneda ) DISK_IMAGE_READONLY( "gds-0036a", 0, SHA1(cd630fc4e8f7ed5641b85c609584d7efe0eac137) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + //ROM_LOAD("317-0387-com.data", 0x00, 0x50, CRC(ab9f3851) SHA1(8b64dc6df176eb7adb48267709a27db221d5e3c3) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-0387-COM) //(sticker 253-5508-0387) - ROM_LOAD("317-0387-com.data", 0x00, 0x50, CRC(ab9f3851) SHA1(8b64dc6df176eb7adb48267709a27db221d5e3c3) ) + ROM_LOAD("317-0387-com.pic", 0x00, 0x4000, CRC(8728aeaa) SHA1(07983ab41d143f845c3150dfc9b7301968708e18) ) ROM_END @@ -5802,7 +5992,11 @@ ROM_START( beachspi ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) //PIC16C622A (317-0317-COM) //(sticker 253-5508-0317) - ROM_LOAD("317-0317-com.data", 0x00, 0x50, CRC(66efe433) SHA1(7f7b52202ed9b1e20516aaa7553cc3cc677a70b5) ) + //ROM_LOAD("317-0317-com.data", 0x00, 0x50, CRC(66efe433) SHA1(7f7b52202ed9b1e20516aaa7553cc3cc677a70b5) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) + ROM_LOAD("317-0317-com.pic", 0x00, 0x4000, CRC(ef65fe73) SHA1(2c02d1570c1fdad56bc684c60bb17255c73c6d45) ) + ROM_END ROM_START( initd ) @@ -5815,10 +6009,16 @@ ROM_START( initd ) DISK_REGION( "gdrom" ) DISK_IMAGE_READONLY( "gds-0020b", 0, SHA1(c0e901623ef4fcd97b7e4d29ae556e6f2e91b8ad) ) - ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) + ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) // custom format containing data returned from pic + //ROM_LOAD("317-0331-jpn.data", 0x00, 0x50, CRC(bb39742e) SHA1(b3100b18aeb80ebfd5312ba5c320e7e647710b55) ) + + //ROM_REGION( 0x9a49, "pichex", ROMREGION_ERASE) // actual pic dump (in hex/ascii mode) from decap + //ROM_LOAD("gds-0020b.hex", 0x00, 0x0009a49, CRC(80d9fe04) SHA1(7a6fe325ce2e12e9270205d32f549aaf66505de5) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) //PIC16C622A (317-0331-JPN) //(sticker 253-5508-0331J) - ROM_LOAD("317-0331-jpn.data", 0x00, 0x50, CRC(bb39742e) SHA1(b3100b18aeb80ebfd5312ba5c320e7e647710b55) ) + ROM_LOAD("317-0331-jpn.pic", 0x00, 0x4000, CRC(0a3bf606) SHA1(7c0e22df4a43a440571ac55fd0a6575931e8f959) ) ROM_END ROM_START( initdexp ) @@ -5832,7 +6032,10 @@ ROM_START( initdexp ) DISK_IMAGE_READONLY( "gds-0025", 0, SHA1(8ea92cf6b493f21b9453832edad7cbc5e5b350c1) ) ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) - ROM_LOAD("317-0343-com.data", 0x00, 0x50, CRC(e9d8fac0) SHA1(85f5bbffbd9d1f7162bae46ddd49e7870fe93662) ) + //ROM_LOAD("317-0343-com.data", 0x00, 0x50, CRC(e9d8fac0) SHA1(85f5bbffbd9d1f7162bae46ddd49e7870fe93662) ) + + ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF) + ROM_LOAD("317-0343-com.pic", 0x00, 0x4000, CRC(80eea4eb) SHA1(5aedc0d52a2a8a2d186ca591094835d972574092) ) ROM_END ROM_START( initdv3j ) @@ -5861,20 +6064,20 @@ GAME( 2001, vf4evoct, naomi2, naomi, naomi, vf4evoct, ROT0, "Sega", GAME( 2002, clubkrte, naomi2, naomi, naomi, 0, ROT0, "Sega", "Club Kart: European Session", GAME_UNEMULATED_PROTECTION|GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) /* GDS-xxxx (Sega first party games) */ -GAME( 2001, vstrik3, naomi2, naomigd, naomi, 0, ROT0, "Sega", "Virtua Striker 3 (GDS-0006)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) -GAME( 2001, vf4, naomi2, naomigd, naomi, 0, ROT0, "Sega", "Virtua Fighter 4 (GDS-0012)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) -GAME( 2001, vf4b, vf4, naomigd, naomi, 0, ROT0, "Sega", "Virtua Fighter 4 (Rev B) (GDS-0012B)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) -GAME( 2001, vf4c, vf4, naomigd, naomi, 0, ROT0, "Sega", "Virtua Fighter 4 (Rev C) (GDS-0012C)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) -GAME( 2002, initd, naomi2, naomigd, naomi, 0, ROT0, "Sega", "Initial D Arcade Stage (Rev B) (Japan) (GDS-0020B)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) -GAME( 2002, beachspi,naomi2, naomigd, naomi, 0, ROT0, "Sega", "Beach Spikers (GDS-0014)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) -GAME( 2002, initdexp,naomi2, naomigd, naomi, 0, ROT0, "Sega", "Initial D Arcade Stage (Export) (GDS-0025)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) -GAME( 2002, vf4evo, naomi2, naomigd, naomi, 0, ROT0, "Sega", "Virtua Fighter 4 Evolution (Rev B) (GDS-0024B)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) -GAME( 2002, vf4evoa, vf4evo, naomigd, naomi, 0, ROT0, "Sega", "Virtua Fighter 4 Evolution (Rev A) (GDS-0024A)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) -GAME( 2002, initdv2j,naomi2, naomigd, naomi, 0, ROT0, "Sega", "Initial D : Arcade Stage Ver. 2 (Japan) (GDS-0026)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) -GAME( 2004, initdv3j,naomi2, naomigd, naomi, 0, ROT0, "Sega", "Initial D : Arcade Stage Ver. 3 (Japan) (Rev B) (GDS-0032B)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) -GAME( 2004, vf4tuned,naomi2, naomigd, naomi, 0, ROT0, "Sega", "Virtua Fighter 4 Final Tuned (Rev F) (GDS-0036F)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) -GAME( 2004, vf4tunedd,vf4tuned,naomigd, naomi, 0, ROT0, "Sega", "Virtua Fighter 4 Final Tuned (Rev D) (GDS-0036D)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) -GAME( 2004, vf4tuneda,vf4tuned,naomigd, naomi, 0, ROT0, "Sega", "Virtua Fighter 4 Final Tuned (Rev A) (GDS-0036A)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) +GAME( 2001, vstrik3, naomi2, naomigd, naomi, naomi2, ROT0, "Sega", "Virtua Striker 3 (GDS-0006)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) +GAME( 2001, vf4, naomi2, naomigd, naomi, naomi2, ROT0, "Sega", "Virtua Fighter 4 (GDS-0012)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) +GAME( 2001, vf4b, vf4, naomigd, naomi, naomi2, ROT0, "Sega", "Virtua Fighter 4 (Rev B) (GDS-0012B)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) +GAME( 2001, vf4c, vf4, naomigd, naomi, naomi2, ROT0, "Sega", "Virtua Fighter 4 (Rev C) (GDS-0012C)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) +GAME( 2002, initd, naomi2, naomigd, naomi, naomi2, ROT0, "Sega", "Initial D Arcade Stage (Rev B) (Japan) (GDS-0020B)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) +GAME( 2002, beachspi,naomi2, naomigd, naomi, naomi2, ROT0, "Sega", "Beach Spikers (GDS-0014)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) +GAME( 2002, initdexp,naomi2, naomigd, naomi, naomi2, ROT0, "Sega", "Initial D Arcade Stage (Export) (GDS-0025)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) +GAME( 2002, vf4evo, naomi2, naomigd, naomi, naomi2, ROT0, "Sega", "Virtua Fighter 4 Evolution (Rev B) (GDS-0024B)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) +GAME( 2002, vf4evoa, vf4evo, naomigd, naomi, naomi2, ROT0, "Sega", "Virtua Fighter 4 Evolution (Rev A) (GDS-0024A)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) +GAME( 2002, initdv2j,naomi2, naomigd, naomi, naomi2, ROT0, "Sega", "Initial D : Arcade Stage Ver. 2 (Japan) (GDS-0026)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) +GAME( 2004, initdv3j,naomi2, naomigd, naomi, naomi2, ROT0, "Sega", "Initial D : Arcade Stage Ver. 3 (Japan) (Rev B) (GDS-0032B)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) +GAME( 2004, vf4tuned,naomi2, naomigd, naomi, naomi2, ROT0, "Sega", "Virtua Fighter 4 Final Tuned (Rev F) (GDS-0036F)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) +GAME( 2004, vf4tunedd,vf4tuned,naomigd, naomi, naomi2, ROT0, "Sega", "Virtua Fighter 4 Final Tuned (Rev D) (GDS-0036D)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) +GAME( 2004, vf4tuneda,vf4tuned,naomigd, naomi, naomi2, ROT0, "Sega", "Virtua Fighter 4 Final Tuned (Rev A) (GDS-0036A)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING ) /********************************************** * diff --git a/src/mame/includes/naomi.h b/src/mame/includes/naomi.h index b34e47950bf..21950a554f5 100644 --- a/src/mame/includes/naomi.h +++ b/src/mame/includes/naomi.h @@ -21,6 +21,7 @@ extern void naomi_game_decrypt(running_machine* machine, UINT64 key, UINT8* regi extern DRIVER_INIT( naomi ); extern DRIVER_INIT( naomi_mp ); +extern DRIVER_INIT( naomi2 ); extern DRIVER_INIT( ggxxsla ); extern DRIVER_INIT( ggxxrl ); diff --git a/src/mame/machine/naomi.c b/src/mame/machine/naomi.c index 8a043bb3203..63812850323 100644 --- a/src/mame/machine/naomi.c +++ b/src/mame/machine/naomi.c @@ -22,11 +22,154 @@ static READ64_HANDLER( naomi_bios_idle_skip_r ) return naomi_ram64[0x2ad238/8]; } +static UINT8 asciihex_to_dec(UINT8 in) +{ + if (in>=0x30 && in<=0x39) + { + return in - 0x30; + } + else + if (in>=0x41 && in<=0x46) + { + return in - 0x37; + } + /* + else + if (in>=0x61 && in<=0x66) + { + return in - 0x57; + } + */ + else + { + fatalerror("unexpected value in asciihex_to_dec"); + } + + +} + +// development helper function +static void create_pic_from_retdat(running_machine* machine) +{ + { + UINT8* hexregion = memory_region(machine,"pichex"); + UINT8* retregion = memory_region(machine,"picreturn"); + UINT8* newregion = memory_region(machine,"pic"); + int outcount = 0; + + if (hexregion && retregion && newregion) + { + int hexoffs = 0; + int line; + + hexoffs += 0x11; // skip first line // :020000040000FA + + for (line=0;line<0x200;line++) + { + int offs2; + + hexoffs+= 0x1; // skip : + hexoffs+= 0x8; // skip line # (:20xxxxxx incrementing in 0x2000) + + for (offs2=0;offs2<0x20;offs2++) + { + UINT8 ascii1 = hexregion[hexoffs+0]; + UINT8 ascii2 = hexregion[hexoffs+1]; + UINT8 dec1 = asciihex_to_dec(ascii1); + UINT8 dec2 = asciihex_to_dec(ascii2); + UINT8 val = dec1 << 4 | dec2; + + //printf("%02x%02x", ascii1, ascii2); + + printf("%02x", val); + + newregion[outcount] = val; + + hexoffs+=2; + outcount++; + } + + hexoffs+=0x4; // skip running checksum + newline + + printf("\n"); + + + } + + { + int i; + printf("string 1 (key1)\n"); + for (i=0;i<7;i++) + { + printf("%02x %02x\n", newregion[0x780+i*2], retregion[0x31+i]); + + newregion[0x780+i*2] = retregion[0x31+i]; // patch with extracted data + } + + printf("string 2 (key2)\n"); + for (i=0;i<7;i++) + { + printf("%02x %02x\n", newregion[0x7a0+i*2], retregion[0x29+i]); + + newregion[0x7a0+i*2] = retregion[0x29+i]; // patch with extracted data + } + + printf("string 3 (filename)\n"); + for (i=0;i<7;i++) + { + printf("%02x %02x\n", newregion[0x7c0+i*2], retregion[0x21+i]); + + newregion[0x7c0+i*2] = retregion[0x21+i]; // patch with extracted data + } + + printf("string 4 (filename?)\n"); + for (i=0;i<7;i++) + { + printf("%02x %02x\n", newregion[0x7e0+i*2], retregion[0x19+i]); + + newregion[0x7e0+i*2] = retregion[0x19+i]; // patch with extracted data + } + } + + + { + FILE *fp; + char filename[256]; + sprintf(filename,"picbin_%s", machine->gamedrv->name); + fp=fopen(filename, "w+b"); + if (fp) + { + fwrite(newregion, outcount, 1, fp); + fclose(fp); + } + + printf("wrote %04x bytes\n", outcount); + } + + // hex dumps end with + //:10400000000000000000000000000000000082002E + //:00000001FF + + + } + } +} + DRIVER_INIT(naomi) { memory_install_read64_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xc2ad238, 0xc2ad23f, 0, 0, naomi_bios_idle_skip_r); // rev e bios jvsboard_type = JVSBD_DEFAULT; actel_id = 0xffff; + + create_pic_from_retdat(machine); +} + +DRIVER_INIT(naomi2) +{ + jvsboard_type = JVSBD_DEFAULT; + actel_id = 0xffff; + + create_pic_from_retdat(machine); } DRIVER_INIT(naomi_mp) @@ -34,6 +177,8 @@ DRIVER_INIT(naomi_mp) memory_install_read64_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xc2ad238, 0xc2ad23f, 0, 0, naomi_bios_idle_skip_r); // rev e bios jvsboard_type = JVSBD_MAHJONG; actel_id = 0xffff; + + create_pic_from_retdat(machine); } static READ64_HANDLER( naomigd_ggxxsla_idle_skip_r ) @@ -102,6 +247,6 @@ DRIVER_INIT( gram2000 ) DRIVER_INIT( vf4evoct ) { -// DRIVER_INIT_CALL(naomi2); + DRIVER_INIT_CALL(naomi2); actel_id = 0; //FIXME: correct value } diff --git a/src/mame/machine/naomibd.c b/src/mame/machine/naomibd.c index 02eeb6f566c..a831764a789 100644 --- a/src/mame/machine/naomibd.c +++ b/src/mame/machine/naomibd.c @@ -879,10 +879,33 @@ static void load_rom_gdrom(running_machine* machine, naomibd_state *v) int pos,len,a; char name[128]; UINT64 key; + UINT8* realpic; // todo, add to device memset(name,'\0',128); - memcpy(name, v->picdata+33, 7); - memcpy(name+7, v->picdata+25, 7); + + realpic = memory_region(machine,"pic"); + + if (realpic) + { + //printf("Real PIC binary found\n"); + int i; + for (i=0;i<7;i++) + { + name[i] = realpic[0x7c0+i*2]; + } + for (i=0;i<7;i++) + { + name[i+7] = realpic[0x7e0+i*2]; + } + } + else + { + // use extracted pic data + logerror("This PIC key hasn't been converted to a proper PIC binary yet!\n"); + memcpy(name, v->picdata+33, 7); + memcpy(name+7, v->picdata+25, 7); + } + gdromfile = cdrom_open(v->gdromchd); // primary volume descriptor // read frame 0xb06e (frame=sector+150) @@ -904,7 +927,7 @@ static void load_rom_gdrom(running_machine* machine, naomibd_state *v) // find data of file start = 0; size = 0; - printf("Looking for file %s\n", name); + logerror("Looking for file %s\n", name); for (pos = 0;pos < 2048;pos += buffer[pos]) { a=0; @@ -941,7 +964,7 @@ static void load_rom_gdrom(running_machine* machine, naomibd_state *v) (buffer[pos+12] << 16) | (buffer[pos+13] << 24)); - printf("start %08x size %08x\n", start,size); + logerror("start %08x size %08x\n", start,size); break; } if (buffer[pos] == 0) @@ -963,7 +986,7 @@ static void load_rom_gdrom(running_machine* machine, naomibd_state *v) start = 0; size = 0; - printf("Looking for file %s\n", name); + logerror("Looking for file %s\n", name); for (pos = 0;pos < 2048;pos += buffer[pos]) { a = 0; @@ -1000,7 +1023,7 @@ static void load_rom_gdrom(running_machine* machine, naomibd_state *v) (buffer[pos+12] << 16) | (buffer[pos+13] << 24)); - printf("start %08x size %08x\n", start,size); + logerror("start %08x size %08x\n", start,size); break; } if (buffer[pos] == 0) @@ -1021,16 +1044,32 @@ static void load_rom_gdrom(running_machine* machine, naomibd_state *v) } } // get des key - key =(((UINT64)v->picdata[0x31] << 56) | - ((UINT64)v->picdata[0x32] << 48) | - ((UINT64)v->picdata[0x33] << 40) | - ((UINT64)v->picdata[0x34] << 32) | - ((UINT64)v->picdata[0x35] << 24) | - ((UINT64)v->picdata[0x36] << 16) | - ((UINT64)v->picdata[0x37] << 8) | - ((UINT64)v->picdata[0x29] << 0)); + realpic = memory_region(machine,"pic"); - printf("key is %08x%08x\n", (UINT32)((key & 0xffffffff00000000ULL)>>32), (UINT32)(key & 0x00000000ffffffffULL)); + if (realpic) + { + int i; + key = 0; + for (i=0;i<7;i++) + { + key |= (UINT64)realpic[0x780+i*2] << (56 - i*8); + } + + key |= (UINT64)realpic[0x7a0]; + } + else + { + key =(((UINT64)v->picdata[0x31] << 56) | + ((UINT64)v->picdata[0x32] << 48) | + ((UINT64)v->picdata[0x33] << 40) | + ((UINT64)v->picdata[0x34] << 32) | + ((UINT64)v->picdata[0x35] << 24) | + ((UINT64)v->picdata[0x36] << 16) | + ((UINT64)v->picdata[0x37] << 8) | + ((UINT64)v->picdata[0x29] << 0)); + } + + logerror("key is %08x%08x\n", (UINT32)((key & 0xffffffff00000000ULL)>>32), (UINT32)(key & 0x00000000ffffffffULL)); // decrypt loaded data naomi_game_decrypt(machine, key, v->memory, size);