trunk/src/mame/drivers/twinkle.c
| r26456 | r26457 | |
| 276 | 276 | DECLARE_DRIVER_INIT(twinkle); |
| 277 | 277 | required_device<cpu_device> m_maincpu; |
| 278 | 278 | required_device<cpu_device> m_audiocpu; |
| 279 | |
| 280 | int m_serial_shift; |
| 281 | int m_serial_bits; |
| 282 | int m_serial_cs; |
| 283 | int m_serial_clock; |
| 284 | |
| 285 | int m_output_shift; |
| 286 | int m_output_bits; |
| 287 | int m_output_cs; |
| 288 | int m_output_clock; |
| 279 | 289 | }; |
| 280 | 290 | |
| 281 | 291 | /* RTC */ |
| r26456 | r26457 | |
| 570 | 580 | /* ?? */ |
| 571 | 581 | break; |
| 572 | 582 | case 0x10: |
| 573 | | /* bit 0 = clock?? */ |
| 574 | | /* bit 1 = data?? */ |
| 575 | | /* bit 2 = reset?? */ |
| 583 | { |
| 584 | int clock = (data >> 0) & 1; |
| 585 | int _do = (data >> 1) & 1; |
| 586 | int cs = (data >> 2) & 1; |
| 587 | |
| 588 | //printf( "output do=%d clock=%d cs=%d (remaining %02x)\n", _do, clock, cs, data & 0xfff8 ); |
| 589 | |
| 590 | if (!cs && m_output_cs) |
| 591 | { |
| 592 | m_output_shift = 0; |
| 593 | m_output_bits = 0; |
| 594 | } |
| 595 | |
| 596 | if (clock && !m_output_clock && m_output_bits < 8) |
| 597 | { |
| 598 | m_output_shift <<= 1; |
| 599 | m_output_shift |= _do; |
| 600 | m_output_bits++; |
| 601 | |
| 602 | if (m_output_bits == 8) |
| 603 | { |
| 604 | //printf( "output %02x\n", m_output_shift ); |
| 605 | |
| 606 | m_output_bits = 0; |
| 607 | m_output_shift = 0; |
| 608 | } |
| 609 | } |
| 610 | |
| 611 | m_output_cs = cs; |
| 612 | m_output_clock = clock; |
| 613 | } |
| 576 | 614 | break; |
| 577 | 615 | case 0x18: |
| 578 | 616 | /* ?? */ |
| r26456 | r26457 | |
| 588 | 626 | |
| 589 | 627 | WRITE16_MEMBER(twinkle_state::serial_w) |
| 590 | 628 | { |
| 591 | | /* |
| 592 | | int _do = ( data >> 4 ) & 1; |
| 593 | | int clock = ( data >> 5 ) & 1; |
| 594 | | int reset = ( data >> 6 ) & 1; |
| 629 | int _do = ( data >> 4 ) & 1; |
| 630 | int clock = ( data >> 5 ) & 1; |
| 631 | int cs = ( data >> 6 ) & 1; |
| 595 | 632 | |
| 596 | | printf( "serial_w do=%d clock=%d reset=%d\n", _do, clock, reset ); |
| 597 | | */ |
| 633 | //printf( "serial_w do=%d clock=%d cs=%d (remaining %02x)\n", _do, clock, cs, data & 0xff8f ); |
| 634 | |
| 635 | if (!cs && m_serial_cs) |
| 636 | { |
| 637 | m_serial_shift = 0; |
| 638 | m_serial_bits = 0; |
| 639 | } |
| 640 | |
| 641 | if (clock && !m_serial_clock && m_serial_bits < 8) |
| 642 | { |
| 643 | m_serial_shift <<= 1; |
| 644 | m_serial_shift |= _do; |
| 645 | m_serial_bits++; |
| 646 | |
| 647 | if (m_serial_bits == 8) |
| 648 | { |
| 649 | //printf( "serial %02x\n", m_serial_shift ); |
| 650 | } |
| 651 | } |
| 652 | |
| 653 | m_serial_cs = cs; |
| 654 | m_serial_clock = clock; |
| 598 | 655 | } |
| 599 | 656 | |
| 600 | 657 | WRITE8_MEMBER(twinkle_state::shared_psx_w) |
| r26456 | r26457 | |
| 934 | 991 | TWINKLE_BIOS |
| 935 | 992 | |
| 936 | 993 | DISK_REGION( "scsi:cdrom" ) // program |
| 937 | | DISK_IMAGE_READONLY( "gq863a01", 0, BAD_DUMP SHA1(aee12de1dc5dd44e5bf7b62133ed695b80999390) ) |
| 994 | DISK_IMAGE_READONLY( "gq863-jab01", 0, SHA1(331f80b40ed560c7e017621b7daeeb8275d92b9a) ) |
| 938 | 995 | |
| 939 | 996 | DISK_REGION( "cdrom1" ) // video CD |
| 940 | | DISK_IMAGE_READONLY( "gq863a04", 0, BAD_DUMP SHA1(8f6a0d2e191153032c9388b5298d8ee531b22a41) ) |
| 997 | DISK_IMAGE_READONLY( "gq863a04", 0, SHA1(25359f0eaff3749a6194a6b9d93f6aec67d94819) ) |
| 941 | 998 | |
| 942 | 999 | DISK_REGION( "ata:0:hdd:image" ) |
| 943 | 1000 | DISK_IMAGE_READONLY( "863hdda01", 0, SHA1(0b8dbf1c9caf4abf965dbc6e1a8e6329d48b1c90) ) |
| 944 | 1001 | ROM_END |
| 945 | 1002 | |
| 1003 | ROM_START( bmiidxa ) |
| 1004 | TWINKLE_BIOS |
| 1005 | |
| 1006 | DISK_REGION( "scsi:cdrom" ) // program |
| 1007 | DISK_IMAGE_READONLY( "gq863a01", 0, SHA1(07fc467f6500504729becbaf77dabc093a134e65) ) |
| 1008 | |
| 1009 | DISK_REGION( "cdrom1" ) // video CD |
| 1010 | DISK_IMAGE_READONLY( "gq863a04", 0, SHA1(25359f0eaff3749a6194a6b9d93f6aec67d94819) ) |
| 1011 | |
| 1012 | DISK_REGION( "ata:0:hdd:image" ) |
| 1013 | DISK_IMAGE_READONLY( "863hdda01", 0, SHA1(0b8dbf1c9caf4abf965dbc6e1a8e6329d48b1c90) ) |
| 1014 | ROM_END |
| 1015 | |
| 946 | 1016 | ROM_START( bmiidx2 ) |
| 947 | 1017 | TWINKLE_BIOS |
| 948 | 1018 | |
| r26456 | r26457 | |
| 979 | 1049 | TWINKLE_BIOS |
| 980 | 1050 | |
| 981 | 1051 | ROM_REGION( 0x100, "security", 0 ) |
| 982 | | ROM_LOAD( "a03j.pd", 0x000000, 0x000100, CRC(8860cfb6) SHA1(85a5b27f24d4baa7960e692b91c0cf3dc5388e72) ) |
| 1052 | ROM_LOAD( "a03j.pd", 0x000000, 0x000100, BAD_DUMP CRC(8860cfb6) SHA1(85a5b27f24d4baa7960e692b91c0cf3dc5388e72) ) |
| 983 | 1053 | |
| 984 | 1054 | DISK_REGION( "scsi:cdrom" ) |
| 985 | | DISK_IMAGE_READONLY( "a03jaa01", 0, BAD_DUMP SHA1(2a587b5524bac6f03d26b55247a0acd22aad6c3a) ) |
| 1055 | DISK_IMAGE_READONLY( "a03jaa01", 0, SHA1(f54fc778c2187ccd950402a159babef956b71492 ) ) |
| 986 | 1056 | |
| 987 | 1057 | DISK_REGION( "cdrom1" ) // video CD |
| 988 | 1058 | DISK_IMAGE_READONLY( "a03jaa02", 0, SHA1(d6f01d666e8de285a02215f7ef987073e2b25019) ) |
| r26456 | r26457 | |
| 995 | 1065 | TWINKLE_BIOS |
| 996 | 1066 | |
| 997 | 1067 | ROM_REGION( 0x100, "security", 0 ) |
| 998 | | ROM_LOAD( "a17j.pd", 0x000000, 0x000100, CRC(9428afb0) SHA1(ba907d3361256b022583d6a42fe223e90590e3c6) ) |
| 1068 | ROM_LOAD( "a17j.pd", 0x000000, 0x000100, BAD_DUMP CRC(9428afb0) SHA1(ba907d3361256b022583d6a42fe223e90590e3c6) ) |
| 999 | 1069 | |
| 1000 | 1070 | DISK_REGION( "scsi:cdrom" ) |
| 1001 | 1071 | DISK_IMAGE_READONLY( "a17jaa01", 0, BAD_DUMP SHA1(9f552eaa0acbdbddf93cabe99f8f829afbf29e02) ) |
| r26456 | r26457 | |
| 1030 | 1100 | ROM_LOAD( "b44j.pd", 0x000000, 0x000100, BAD_DUMP CRC(5baf4761) SHA1(aa7e07eb2cada03b85bdf11ac6a3de65f4253eef) ) |
| 1031 | 1101 | |
| 1032 | 1102 | DISK_REGION( "scsi:cdrom" ) |
| 1033 | | DISK_IMAGE_READONLY( "b44jaa01", 0, BAD_DUMP SHA1(a21610f3dc090e39e125d063442ed877fa056146) ) |
| 1103 | DISK_IMAGE_READONLY( "b44jaa01", 0, SHA1(57fb0312d8102e959658e48a97e46aa16e592b60) ) |
| 1034 | 1104 | |
| 1035 | 1105 | DISK_REGION( "cdrom1" ) // DVD |
| 1036 | 1106 | DISK_IMAGE_READONLY( "b44jaa02", 0, SHA1(a45726d99025f4d824ec143ef92957c76c08a13a) ) |
| r26456 | r26457 | |
| 1071 | 1141 | DISK_IMAGE_READONLY( "896hdda01", 0, NO_DUMP ) |
| 1072 | 1142 | ROM_END |
| 1073 | 1143 | |
| 1074 | | ROM_START( bmiidxc2 ) |
| 1144 | ROM_START( bmiidxca ) |
| 1075 | 1145 | TWINKLE_BIOS |
| 1076 | 1146 | |
| 1077 | 1147 | ROM_REGION( 0x100, "security", 0 ) |
| 1078 | | ROM_LOAD( "984j.pd", 0x000000, 0x000100, BAD_DUMP CRC(213843e5) SHA1(5571db155a60fa4087dd996af48e8e27fc1c518c) ) |
| 1148 | ROM_LOAD( "896j.pd", 0x000000, 0x000100, BAD_DUMP CRC(1e5caf37) SHA1(75b378662b651cb322e41564d3bae68cc9edadc5) ) |
| 1079 | 1149 | |
| 1080 | 1150 | DISK_REGION( "scsi:cdrom" ) |
| 1081 | | DISK_IMAGE_READONLY( "984a01bm", 0, BAD_DUMP SHA1(d9b7d74a72a76e4e9cf7725e0fb8dafcc1c87187) ) |
| 1151 | DISK_IMAGE_READONLY( "896jaabm", 0, SHA1(ea7205f86543d9273efcc226666ab530c32b23c1) ) |
| 1082 | 1152 | |
| 1083 | 1153 | DISK_REGION( "cdrom1" ) // video CD |
| 1084 | | DISK_IMAGE_READONLY( "984a04", 0, NO_DUMP ) |
| 1154 | DISK_IMAGE_READONLY( "896jaa02", 0, NO_DUMP ) |
| 1085 | 1155 | |
| 1086 | 1156 | DISK_REGION( "ata:0:hdd:image" ) |
| 1087 | | DISK_IMAGE_READONLY( "984hdda01", 0, NO_DUMP ) |
| 1157 | DISK_IMAGE_READONLY( "896hdda01", 0, NO_DUMP ) |
| 1088 | 1158 | ROM_END |
| 1089 | 1159 | |
| 1090 | | ROM_START( bmiidxca ) |
| 1160 | ROM_START( bmiidxs ) |
| 1091 | 1161 | TWINKLE_BIOS |
| 1092 | 1162 | |
| 1093 | 1163 | ROM_REGION( 0x100, "security", 0 ) |
| 1094 | | ROM_LOAD( "896j.pd", 0x000000, 0x000100, BAD_DUMP CRC(1e5caf37) SHA1(75b378662b651cb322e41564d3bae68cc9edadc5) ) |
| 1164 | ROM_LOAD( "983j.pd", 0x000000, 0x000100, NO_DUMP ) |
| 1095 | 1165 | |
| 1096 | 1166 | DISK_REGION( "scsi:cdrom" ) |
| 1097 | | DISK_IMAGE_READONLY( "896jaabm", 0, SHA1(ea7205f86543d9273efcc226666ab530c32b23c1) ) |
| 1167 | DISK_IMAGE_READONLY( "gc983a01", 0, NO_DUMP ) |
| 1098 | 1168 | |
| 1099 | 1169 | DISK_REGION( "cdrom1" ) // video CD |
| 1100 | | DISK_IMAGE_READONLY( "896jaa02", 0, NO_DUMP ) |
| 1170 | DISK_IMAGE_READONLY( "gc983a04", 0, SHA1(73454f2acb5a1e6b9e21140eb7b93a4827072d63) ) |
| 1101 | 1171 | |
| 1102 | 1172 | DISK_REGION( "ata:0:hdd:image" ) |
| 1103 | | DISK_IMAGE_READONLY( "896hdda01", 0, NO_DUMP ) |
| 1173 | DISK_IMAGE_READONLY( "983hdda01", 0, SHA1(bcbbf55acf8bebc5773ffc5769420a0129f4da57) ) |
| 1104 | 1174 | ROM_END |
| 1105 | 1175 | |
| 1106 | | ROM_START( bmiidxs ) |
| 1176 | ROM_START( bmiidxs2 ) |
| 1107 | 1177 | TWINKLE_BIOS |
| 1108 | 1178 | |
| 1109 | 1179 | ROM_REGION( 0x100, "security", 0 ) |
| 1110 | | ROM_LOAD( "983j.pd", 0x000000, 0x000100, NO_DUMP ) |
| 1180 | ROM_LOAD( "984j.pd", 0x000000, 0x000100, BAD_DUMP CRC(213843e5) SHA1(5571db155a60fa4087dd996af48e8e27fc1c518c) ) |
| 1111 | 1181 | |
| 1112 | 1182 | DISK_REGION( "scsi:cdrom" ) |
| 1113 | | DISK_IMAGE_READONLY( "gc983a01", 0, NO_DUMP ) |
| 1183 | DISK_IMAGE_READONLY( "ge984a01(bm)", 0, SHA1(03b083ba09652dfab6f328000c3c9de2a7a4e618) ) |
| 1114 | 1184 | |
| 1115 | 1185 | DISK_REGION( "cdrom1" ) // video CD |
| 1116 | | DISK_IMAGE_READONLY( "gc983a04", 0, BAD_DUMP SHA1(5cc5a22c1ec3f3cd5f37c0aa7a90d7e8712f2431) ) |
| 1186 | DISK_IMAGE_READONLY( "ge984a04", 0, NO_DUMP ) |
| 1117 | 1187 | |
| 1118 | 1188 | DISK_REGION( "ata:0:hdd:image" ) |
| 1119 | | DISK_IMAGE_READONLY( "983hdda01", 0, SHA1(bcbbf55acf8bebc5773ffc5769420a0129f4da57) ) |
| 1189 | DISK_IMAGE_READONLY( "984hdda01", 0, NO_DUMP ) |
| 1120 | 1190 | ROM_END |
| 1121 | 1191 | |
| 1122 | 1192 | GAME( 1999, gq863, 0, twinkle, twinkle, twinkle_state, twinkle, ROT0, "Konami", "Twinkle System", GAME_IS_BIOS_ROOT ) |
| 1123 | 1193 | |
| 1124 | 1194 | /* VCD */ |
| 1125 | | GAME( 1999, bmiidx, gq863, twinkle, twinkle, twinkle_state, twinkle, ROT0, "Konami", "beatmania IIDX (863 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) |
| 1195 | GAME( 1999, bmiidx, gq863, twinkle, twinkle, twinkle_state, twinkle, ROT0, "Konami", "beatmania IIDX (863 JAB)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) |
| 1196 | GAME( 1999, bmiidxa, bmiidx, twinkle, twinkle, twinkle_state, twinkle, ROT0, "Konami", "beatmania IIDX (863 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) |
| 1126 | 1197 | /* find out what these use for security */ |
| 1127 | 1198 | GAME( 1999, bmiidxc, gq863, twinkle, twinkle, twinkle_state, twinkle, ROT0, "Konami", "beatmania IIDX with DDR 2nd Club Version (896 JAB)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) |
| 1128 | 1199 | GAME( 1999, bmiidxca, bmiidxc, twinkle, twinkle, twinkle_state, twinkle, ROT0, "Konami", "beatmania IIDX with DDR 2nd Club Version (896 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) |
| 1129 | 1200 | GAME( 1999, bmiidxs, gq863, twinkle, twinkle, twinkle_state, twinkle, ROT0, "Konami", "beatmania IIDX Substream (983 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) |
| 1130 | | GAME( 1999, bmiidxc2, gq863, twinkle, twinkle, twinkle_state, twinkle, ROT0, "Konami", "beatmania IIDX Substream 2 with DDR 2nd Club Version (984 A01 BM)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) |
| 1201 | GAME( 1999, bmiidxs2, gq863, twinkle, twinkle, twinkle_state, twinkle, ROT0, "Konami", "beatmania IIDX Substream 2 with DDR 2nd Club Version (984 A01 BM)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) |
| 1131 | 1202 | |
| 1132 | 1203 | /* these use i2c for security */ |
| 1133 | 1204 | GAME( 1999, bmiidx2, gq863, twinkle, twinkle, twinkle_state, twinkle, ROT0, "Konami", "beatmania IIDX 2nd style (GC985 JA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) |