trunk/src/mame/drivers/ddragon3.c
| r244665 | r244666 | |
| 1168 | 1168 | ROM_LOAD( "28.ic44", 0x0000, 0x0100, CRC(964329ef) SHA1(f26846571a16d27b726f689049deb0188103aadb) ) |
| 1169 | 1169 | ROM_END |
| 1170 | 1170 | |
| 1171 | | ROM_START( ctribeo ) // only main program code differs from ctribe1 set |
| 1172 | | ROM_REGION( 0x80000, "maincpu", 0 ) /* 64k for cpu code */ |
| 1173 | | ROM_LOAD16_BYTE( "28a16-1.ic26", 0x00001, 0x20000, CRC(d108f36f) SHA1(af53fa441b9ddfc639abb573864a9b351633c6B7) ) |
| 1174 | | ROM_LOAD16_BYTE( "28a15-1.ic25", 0x00000, 0x20000, CRC(3f5693a3) SHA1(2d4516506ad1d68ac45242fe149bba1b4b53eb45) ) |
| 1175 | | ROM_LOAD16_BYTE( "28j17-0.104", 0x40001, 0x10000, CRC(8c2c6dbd) SHA1(b99b9be6e0bdc8340fedd258819c4df587926a84) ) |
| 1176 | | /* No EVEN rom! */ |
| 1177 | | |
| 1178 | | ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound cpu code */ |
| 1179 | | ROM_LOAD( "28a10-0.ic89", 0x00000, 0x8000, CRC(4346de13) SHA1(67c6de90ba31a325f03e64d28c9391a315ee359c) ) |
| 1180 | | |
| 1181 | | ROM_REGION( 0x100000, "gfx1", 0 ) /* Background */ |
| 1182 | | ROM_LOAD16_BYTE( "28j7-0.ic11", 0x000001, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) ) |
| 1183 | | ROM_LOAD16_BYTE( "28j6-0.ic13", 0x000000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) ) |
| 1184 | | ROM_LOAD16_BYTE( "28j5-0.ic12", 0x080001, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) ) |
| 1185 | | ROM_LOAD16_BYTE( "28j4-0.ic14", 0x080000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) ) |
| 1186 | | |
| 1187 | | ROM_REGION( 0x400000, "gfx2", 0 ) /* Sprites */ |
| 1188 | | ROM_LOAD( "28j3-0.ic77", 0x000000, 0x80000, CRC(1ac2a461) SHA1(17436f5dcf29041ca5f470dfae538e4fc12153cc) ) |
| 1189 | | ROM_LOAD( "28a14-0.ic60", 0x080000, 0x10000, CRC(972faddb) SHA1(f2b211e8f8301667e6c9a3ce9612e39b16e66a67) ) |
| 1190 | | ROM_LOAD( "28j2-0.ic78", 0x100000, 0x80000, CRC(8c796707) SHA1(7417ad0413083876ed65a8612845ccb0d2717530) ) |
| 1191 | | ROM_LOAD( "28a13-0.ic61", 0x180000, 0x10000, CRC(eb3ab374) SHA1(db66cb7976c111fa76a3a211e96ad1d7b78ce0ad) ) |
| 1192 | | ROM_LOAD( "28j1-0.ic97", 0x200000, 0x80000, CRC(1c9badbd) SHA1(d28f6d684d88448eaa3feae0bba2f5a836d89bd7) ) |
| 1193 | | ROM_LOAD( "28a12-0.ic85", 0x280000, 0x10000, CRC(c602ac97) SHA1(44440739636b684c6dcac837f59664120c9ba5f3) ) |
| 1194 | | ROM_LOAD( "28j0-0.ic98", 0x300000, 0x80000, CRC(ba73c49e) SHA1(830099027ede1f7c56bb0bf3cdef3018b92e0b87) ) |
| 1195 | | ROM_LOAD( "28a11-0.ic86", 0x380000, 0x10000, CRC(4da1d8e5) SHA1(568e9e8d00f1b1ca27c28df5fc0ffc74ad91da7e) ) |
| 1196 | | |
| 1197 | | ROM_REGION( 0x040000, "oki", 0 ) /* ADPCM Samples */ |
| 1198 | | ROM_LOAD( "28j9-0.ic83", 0x00000, 0x20000, CRC(f92a7f4a) SHA1(3717ef64876be9ada378b449749918ce9072073a) ) |
| 1199 | | ROM_LOAD( "28j8-0.ic82", 0x20000, 0x20000, CRC(1a3a0b39) SHA1(8847530027cf4be03ffbc6d78dee97b459d03a04) ) |
| 1200 | | |
| 1201 | | ROM_REGION( 0x0100, "proms", 0 ) |
| 1202 | | ROM_LOAD( "28.ic44", 0x0000, 0x0100, CRC(964329ef) SHA1(f26846571a16d27b726f689049deb0188103aadb) ) |
| 1203 | | ROM_END |
| 1204 | | |
| 1205 | | |
| 1206 | | |
| 1207 | | |
| 1208 | | |
| 1209 | 1171 | ROM_START( ctribej ) |
| 1210 | 1172 | ROM_REGION( 0x80000, "maincpu", 0 ) /* 64k for cpu code */ |
| 1211 | 1173 | ROM_LOAD16_BYTE( "28j16-02.26", 0x00001, 0x20000, CRC(658b8568) SHA1(899682f6ab28b184654c51c1169216974043f1b9) ) |
| r244665 | r244666 | |
| 1481 | 1443 | |
| 1482 | 1444 | GAME( 1990, ctribe, 0, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (US)", GAME_SUPPORTS_SAVE ) |
| 1483 | 1445 | GAME( 1990, ctribe1, ctribe, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (US set 1?)", GAME_SUPPORTS_SAVE ) |
| 1484 | | GAME( 1990, ctribeo, ctribe, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (US, older)", GAME_SUPPORTS_SAVE ) |
| 1485 | 1446 | GAME( 1990, ctribej, ctribe, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (Japan)", GAME_SUPPORTS_SAVE ) |
| 1486 | 1447 | GAME( 1990, ctribeb, ctribe, ctribe, ctribeb, driver_device, 0, ROT0, "bootleg", "The Combatribes (bootleg set 1)", GAME_SUPPORTS_SAVE ) |
| 1487 | 1448 | GAME( 1990, ctribeb2, ctribe, ctribe, ctribeb, driver_device, 0, ROT0, "bootleg", "The Combatribes (bootleg set 2)", GAME_SUPPORTS_SAVE ) |
trunk/src/mame/drivers/raiden2.c
| r244665 | r244666 | |
| 2056 | 2056 | ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341.jed", 0x0000, 0x288, NO_DUMP) |
| 2057 | 2057 | ROM_END |
| 2058 | 2058 | |
| 2059 | | ROM_START( raiden2f ) // original board with serial # 12476 that matches raiden2nl set except the region and Audio CPU |
| 2060 | | ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ |
| 2061 | | ROM_LOAD16_BYTE("1_u0211.bin", 0x000000, 0x80000, CRC(53be3dd0) SHA1(304d118423e4085eea3b883bd625d90d21bb2054) ) // == raiden2nl |
| 2062 | | ROM_RELOAD(0x100000, 0x80000) |
| 2063 | | ROM_LOAD16_BYTE("seibu2_u0212.bin", 0x000001, 0x80000, CRC(8dcd8a8d) SHA1(be0681d5867d8b4f5fb78946a896d89827a71e8e) ) |
| 2064 | | ROM_RELOAD(0x100001, 0x80000) |
| 2065 | 2059 | |
| 2066 | | ROM_REGION( 0x40000, "user2", 0 ) /* COPX */ |
| 2067 | | ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) /* Soldered MASK ROM */ |
| 2068 | | |
| 2069 | | ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */ |
| 2070 | | ROM_LOAD( "seibu5_u1110.bin", 0x000000, 0x08000, CRC(f51a28f9) SHA1(7ae2e2ba0c8159a544a8fd2bb0c2c694ba849302) ) // == raiden2 |
| 2071 | | ROM_CONTINUE(0x10000,0x8000) |
| 2072 | | ROM_COPY( "audiocpu", 0, 0x018000, 0x08000 ) |
| 2073 | | |
| 2074 | | ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */ |
| 2075 | | ROM_LOAD( "7_u0724.bin", 0x000000, 0x020000, CRC(c9ec9469) SHA1(a29f480a1bee073be7a177096ef58e1887a5af24) ) /* PCB silkscreened FX0 */ |
| 2076 | | |
| 2077 | | ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ |
| 2078 | | ROM_LOAD( "raiden_2_seibu_bg-1.u0714", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) /* Soldered MASK ROM */ |
| 2079 | | ROM_LOAD( "raiden_2_seibu_bg-2.u075", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) /* Soldered MASK ROM */ |
| 2080 | | |
| 2081 | | ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ |
| 2082 | | ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) /* Soldered MASK ROM */ |
| 2083 | | ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) /* Soldered MASK ROM */ |
| 2084 | | ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) /* Soldered MASK ROM */ |
| 2085 | | ROM_LOAD32_WORD( "raiden_2_seibu_obj-4.u0836", 0x400002, 0x200000, CRC(b676e188) SHA1(19cc838f1ccf9c4203cd0e5365e5d99ff3a4ff0f) ) /* Soldered MASK ROM */ |
| 2086 | | |
| 2087 | | ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */ |
| 2088 | | ROM_LOAD( "6_u1017.bin", 0x00000, 0x40000, CRC(fb0fca23) SHA1(4b2217b121a66c5ab6015537609cf908ffedaf86) ) /* PCB silkscreened VOICE1 */ |
| 2089 | | |
| 2090 | | ROM_REGION( 0x100000, "oki2", 0 ) /* ADPCM samples */ |
| 2091 | | ROM_LOAD( "raiden_2_pcm.u1018", 0x00000, 0x40000, CRC(8cf0d17e) SHA1(0fbe0b1e1ca5360c7c8329331408e3d799b4714c) ) /* Soldered MASK ROM */ |
| 2092 | | |
| 2093 | | ROM_REGION( 0x10000, "pals", 0 ) /* PALS */ |
| 2094 | | ROM_LOAD( "jj4b02__ami18cv8-15.u0342.jed", 0x0000, 0x288, NO_DUMP) |
| 2095 | | ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341.jed", 0x0000, 0x288, NO_DUMP) |
| 2096 | | ROM_END |
| 2097 | | |
| 2098 | 2060 | ROM_START( raiden2u ) |
| 2099 | 2061 | ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */ |
| 2100 | 2062 | ROM_LOAD16_BYTE("1.u0211", 0x000000, 0x80000, CRC(b16df955) SHA1(9b7fd85cf2f2c9fea657f3c38abafa93673b3933) ) |
| r244665 | r244666 | |
| 3060 | 3022 | GAME( 1993, raiden2j, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (Japan)", GAME_SUPPORTS_SAVE ) // rev 1 |
| 3061 | 3023 | GAME( 1993, raiden2i, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (Italy)", GAME_SUPPORTS_SAVE ) // rev 2 |
| 3062 | 3024 | GAME( 1993, raiden2nl, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (Holland)", GAME_SUPPORTS_SAVE ) |
| 3063 | | GAME( 1993, raiden2f, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (France)", GAME_SUPPORTS_SAVE ) |
| 3064 | 3025 | |
| 3065 | 3026 | GAME( 1993, raiden2e, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (easy version, Korea?)", GAME_SUPPORTS_SAVE ) // rev 3 (Region 0x04) - Korea?, if regions are the same as RDX, no license or region message tho |
| 3066 | 3027 | GAME( 1993, raiden2ea, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (easy version, Japan?)", GAME_SUPPORTS_SAVE ) // rev 4 (Region 0x00) - Should be Japan, but the easy sets have no 'FOR USE IN JAPAN ONLY' display even when region is 00 |
trunk/src/mame/drivers/suna8.c
| r244665 | r244666 | |
| 18 | 18 | 89 Spark Man KRB-16 60136-081 T568009 Yes Encryption + Protection |
| 19 | 19 | 90 Star Fighter KRB-17 60484-0082 T568009 Yes Encryption + Protection |
| 20 | 20 | 91 Hard Head 2 ? ? T568009 - Encryption + Protection |
| 21 | | 92 Brick Zone KRB-19 70523-0084 Yes - Encryption + Protection |
| 21 | 92 Brick Zone ? ? Yes - Encryption + Protection |
| 22 | 22 | -------------------------------------------------------------------------------------- |
| 23 | 23 | |
| 24 | 24 | Notes: |
| r244665 | r244666 | |
| 128 | 128 | return decrypt; |
| 129 | 129 | } |
| 130 | 130 | |
| 131 | | DRIVER_INIT_MEMBER(suna8_state, brickzn_common) |
| 131 | DRIVER_INIT_MEMBER(suna8_state,brickzn) |
| 132 | 132 | { |
| 133 | 133 | m_decrypt = brickzn_decrypt(); |
| 134 | 134 | |
| 135 | | // Non-banked opcodes |
| 136 | | address_space &space = m_maincpu->space(AS_PROGRAM); |
| 137 | | space.set_decrypted_region(0x0000, 0x7fff, m_decrypt); |
| 138 | | |
| 139 | | // Data banks: 00-0f normal data decryption, 10-1f alternate data decryption: |
| 140 | | membank("bank1")->configure_entries(0, 16*2, memregion("maincpu")->base() + 0x10000, 0x4000); |
| 141 | | // Opcode banks: 00-1f normal opcode decryption: |
| 142 | | membank("bank1")->configure_decrypted_entries(0, 16, m_decrypt + 0x10000, 0x4000); |
| 143 | | membank("bank1")->configure_decrypted_entries(16, 16, m_decrypt + 0x10000, 0x4000); |
| 144 | | } |
| 145 | | |
| 146 | | DRIVER_INIT_MEMBER(suna8_state,brickzn) |
| 147 | | { |
| 148 | | DRIVER_INIT_CALL(brickzn_common); |
| 149 | | |
| 150 | 135 | // !!!!!! PATCHES !!!!!! |
| 151 | | // To do: ROM banking should be disabled here |
| 152 | | m_decrypt[0x11cc] = 0x00; // LD ($C040),A -> NOP |
| 153 | | m_decrypt[0x11cd] = 0x00; // LD ($C040),A -> NOP |
| 154 | | m_decrypt[0x11ce] = 0x00; // LD ($C040),A -> NOP |
| 155 | 136 | |
| 156 | | m_decrypt[0x335b] = 0xc9; // RET Z -> RET (to avoid: jp $C800) |
| 157 | | |
| 158 | | // NMI enable / source?? |
| 159 | | m_decrypt[0x1442] = 0xc9; // HALT -> RET |
| 160 | | m_decrypt[0x24C6] = 0x00; // HALT -> NOP |
| 161 | | m_decrypt[0x25A4] = 0x00; // HALT -> NOP |
| 162 | | } |
| 163 | | |
| 164 | | DRIVER_INIT_MEMBER(suna8_state,brickznv5) |
| 165 | | { |
| 166 | | DRIVER_INIT_CALL(brickzn_common); |
| 167 | | |
| 168 | | // !!!!!! PATCHES !!!!!! |
| 169 | 137 | // To do: ROM banking should be disabled here |
| 170 | 138 | m_decrypt[0x11bb] = 0x00; // LD ($C040),A -> NOP |
| 171 | 139 | m_decrypt[0x11bc] = 0x00; // LD ($C040),A -> NOP |
| r244665 | r244666 | |
| 177 | 145 | m_decrypt[0x1431] = 0xc9; // HALT -> RET |
| 178 | 146 | m_decrypt[0x24b5] = 0x00; // HALT -> NOP |
| 179 | 147 | m_decrypt[0x2593] = 0x00; // HALT -> NOP |
| 148 | |
| 149 | // Non-banked opcodes |
| 150 | address_space &space = m_maincpu->space(AS_PROGRAM); |
| 151 | space.set_decrypted_region(0x0000, 0x7fff, m_decrypt); |
| 152 | |
| 153 | // Data banks: 00-0f normal data decryption, 10-1f alternate data decryption: |
| 154 | membank("bank1")->configure_entries(0, 16*2, memregion("maincpu")->base() + 0x10000, 0x4000); |
| 155 | // Opcode banks: 00-1f normal opcode decryption: |
| 156 | membank("bank1")->configure_decrypted_entries(0, 16, m_decrypt + 0x10000, 0x4000); |
| 157 | membank("bank1")->configure_decrypted_entries(16, 16, m_decrypt + 0x10000, 0x4000); |
| 180 | 158 | } |
| 181 | 159 | |
| 182 | 160 | DRIVER_INIT_MEMBER(suna8_state,brickznv4) |
| 183 | 161 | { |
| 184 | | DRIVER_INIT_CALL(brickzn_common); |
| 185 | | |
| 162 | m_decrypt = brickzn_decrypt(); |
| 186 | 163 | // !!!!!! PATCHES !!!!!! |
| 164 | |
| 187 | 165 | // To do: ROM banking should be disabled here |
| 188 | 166 | m_decrypt[0x1190] = 0x00; // LD ($C040),A -> NOP |
| 189 | 167 | m_decrypt[0x1191] = 0x00; // LD ($C040),A -> NOP |
| r244665 | r244666 | |
| 195 | 173 | m_decrypt[0x1406] = 0xc9; // HALT -> RET |
| 196 | 174 | m_decrypt[0x2487] = 0x00; // HALT -> NOP |
| 197 | 175 | m_decrypt[0x256c] = 0x00; // HALT -> NOP |
| 176 | |
| 177 | // Non-banked opcodes |
| 178 | address_space &space = m_maincpu->space(AS_PROGRAM); |
| 179 | space.set_decrypted_region(0x0000, 0x7fff, m_decrypt); |
| 180 | |
| 181 | // Data banks: 00-0f normal data decryption, 10-1f alternate data decryption: |
| 182 | membank("bank1")->configure_entries(0, 16*2, memregion("maincpu")->base() + 0x10000, 0x4000); |
| 183 | // Opcode banks: 00-1f normal opcode decryption: |
| 184 | membank("bank1")->configure_decrypted_entries(0, 16, m_decrypt + 0x10000, 0x4000); |
| 185 | membank("bank1")->configure_decrypted_entries(16, 16, m_decrypt + 0x10000, 0x4000); |
| 198 | 186 | } |
| 199 | 187 | |
| 200 | 188 | |
| r244665 | r244666 | |
| 2538 | 2526 | |
| 2539 | 2527 | ROM_START( brickzn ) |
| 2540 | 2528 | ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 ) /* Main Z80 Code */ |
| 2541 | | ROM_LOAD( "P9.M7", 0x00000, 0x08000, CRC(bd7a3c01) SHA1(05fb2836f1c8d8818847ccb76e7b477f13a9929b) ) // V6.0 1992,3,16 |
| 2542 | | ROM_LOAD( "P8.K7", 0x10000, 0x20000, CRC(ec3e266d) SHA1(4441a5ae88e51353f6d1eb22c00becb0a7ecea6e) ) |
| 2543 | | ROM_LOAD( "P7.I7", 0x30000, 0x20000, CRC(4dd88631) SHA1(0dbcaf3420dad82c3ed94d231948fe69b044b786) ) |
| 2544 | | |
| 2545 | | ROM_REGION( 0x10000, "audiocpu", 0 ) /* Music Z80 Code */ |
| 2546 | | ROM_LOAD( "10.O8", 0x00000, 0x10000, CRC(4eba8178) SHA1(9a214a1acacdc124529bc9dde73a8e884fc70293) ) // BRICK MUSIC XILINX PROGRAM 3020 1991,11,14 MUSIC PROGRAM V 2,0 1990.12.14 |
| 2547 | | |
| 2548 | | ROM_REGION( 0x10000, "pcm", 0 ) /* PCM Z80 Code */ |
| 2549 | | ROM_LOAD( "11.N10", 0x00000, 0x10000, CRC(6c54161a) SHA1(ea216d9f45b441acd56b9fed81a83e3bfe299fbd) ) |
| 2550 | | |
| 2551 | | ROM_REGION( 0xc0000, "gfx1", ROMREGION_INVERT ) /* Sprites */ |
| 2552 | | ROM_LOAD( "P5.M5", 0x00000, 0x20000, CRC(ca59e2f7) SHA1(dbb9f2b316a44f760768f0430798e0c4e9e8f3ff) ) |
| 2553 | | ROM_LOAD( "P4.L5", 0x20000, 0x20000, CRC(cc8fb330) SHA1(fd263f65b81acbfc00fe339c461068ab160c04af) ) |
| 2554 | | ROM_LOAD( "P3.K5", 0x40000, 0x20000, CRC(2e4f194b) SHA1(86da1a582ea274f2af96d3e3e2ac72bcaf3638cb) ) |
| 2555 | | ROM_LOAD( "P2.I5", 0x60000, 0x20000, CRC(592d45ce) SHA1(8ce9236b7deba6cf00999680314ac04eff624a6d) ) |
| 2556 | | ROM_LOAD( "P1.H5", 0x80000, 0x20000, CRC(7a6bb583) SHA1(ff7018c07182fce0ff6954bbe3b08fa5105f6be0) ) |
| 2557 | | ROM_LOAD( "P6.H7", 0xa0000, 0x20000, CRC(bbf31081) SHA1(1fdbd0e0853082345225e18df340184a7a604b78) ) |
| 2558 | | ROM_END |
| 2559 | | |
| 2560 | | |
| 2561 | | ROM_START( brickznv5 ) |
| 2562 | | ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 ) /* Main Z80 Code */ |
| 2563 | 2529 | ROM_LOAD( "brickzon.009", 0x00000, 0x08000, CRC(1ea68dea) SHA1(427152a26b062c5e77089de49c1da69369d4d557) ) // V5.0 1992,3,3 |
| 2564 | 2530 | ROM_LOAD( "brickzon.008", 0x10000, 0x20000, CRC(c61540ba) SHA1(08c0ede591b229427b910ca6bb904a6146110be8) ) |
| 2565 | 2531 | ROM_LOAD( "brickzon.007", 0x30000, 0x20000, CRC(ceed12f1) SHA1(9006726b75a65455afb1194298bade8fa2207b4a) ) |
| r244665 | r244666 | |
| 2579 | 2545 | ROM_LOAD( "brickzon.006", 0xa0000, 0x20000, CRC(bbf31081) SHA1(1fdbd0e0853082345225e18df340184a7a604b78) ) |
| 2580 | 2546 | ROM_END |
| 2581 | 2547 | |
| 2582 | | |
| 2583 | 2548 | ROM_START( brickznv4 ) |
| 2584 | 2549 | ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 ) /* Main Z80 Code */ |
| 2585 | 2550 | ROM_LOAD( "39", 0x00000, 0x08000, CRC(043380bd) SHA1(7eea7cc7d754815df233879b4a9d3d88eac5b28d) ) // V3.0 1992,1,23 |
| r244665 | r244666 | |
| 2881 | 2846 | |
| 2882 | 2847 | GAME( 1991, hardhea2, 0, hardhea2, hardhea2, suna8_state, hardhea2, ROT0, "SunA", "Hard Head 2 (v2.0)", 0 ) |
| 2883 | 2848 | |
| 2884 | | GAME( 1992, brickzn, 0, brickzn, brickzn, suna8_state, brickzn, ROT90, "SunA", "Brick Zone (v6.0, Joystick)", 0 ) |
| 2885 | | GAME( 1992, brickznv5, brickzn, brickzn, brickzn, suna8_state, brickznv5, ROT90, "SunA", "Brick Zone (v5.0, Joystick)", 0 ) |
| 2849 | GAME( 1992, brickzn, 0, brickzn, brickzn, suna8_state, brickzn, ROT90, "SunA", "Brick Zone (v5.0, Joystick)", 0 ) |
| 2886 | 2850 | GAME( 1992, brickznv4, brickzn, brickzn, brickzn, suna8_state, brickznv4, ROT90, "SunA", "Brick Zone (v4.0, Spinner)", 0 ) |
| 2887 | 2851 | GAME( 1992, brickzn11, brickzn, brickzn, brickzn, suna8_state, brickzn11, ROT90, "SunA", "Brick Zone (v1.1)", GAME_NOT_WORKING ) |
trunk/src/mess/drivers/hh_tms1k.c
| r244665 | r244666 | |
| 11 | 11 | |
| 12 | 12 | serial device etc. |
| 13 | 13 | -------------------------------------------------------------------- |
| 14 | | @CP0904A TMS0970 1977, Milton Bradley Comp IV |
| 14 | @MP0904A TMS0970 1977, Milton Bradley Comp IV |
| 15 | 15 | @MP0905B TMS0970 1977, Parker Brothers Codename Sector |
| 16 | | @MP0914 TMS1000 1978, Entex Baseball 1 |
| 16 | @MP0914 TMS1000 1979, Entex Baseball |
| 17 | 17 | @MP1030 TMS1100 1980, APF Mathemagician |
| 18 | 18 | @MP3226 TMS1000 1978, Milton Bradley Simon |
| 19 | 19 | @MP3403 TMS1100 1978, unknown |
| r244665 | r244666 | |
| 56 | 56 | #include "amaztron.lh" |
| 57 | 57 | #include "bankshot.lh" |
| 58 | 58 | #include "cnsector.lh" |
| 59 | | #include "ebball.lh" |
| 60 | 59 | #include "elecdet.lh" |
| 61 | 60 | #include "comp4.lh" |
| 62 | 61 | #include "mathmagi.lh" |
| r244665 | r244666 | |
| 68 | 67 | #include "tandy12.lh" // clickable |
| 69 | 68 | #include "tc4.lh" |
| 70 | 69 | |
| 70 | // test-layouts - use external artwork |
| 71 | #include "ebball.lh" |
| 71 | 72 | |
| 73 | |
| 72 | 74 | class hh_tms1k_state : public driver_device |
| 73 | 75 | { |
| 74 | 76 | public: |
| r244665 | r244666 | |
| 296 | 298 | m_display_maxy = maxy; |
| 297 | 299 | |
| 298 | 300 | // update current state |
| 299 | | UINT32 mask = (1 << maxx) - 1; |
| 300 | 301 | for (int y = 0; y < maxy; y++) |
| 301 | | m_display_state[y] = (sety >> y & 1) ? (setx & mask) : 0; |
| 302 | m_display_state[y] = (sety >> y & 1) ? setx : 0; |
| 302 | 303 | |
| 303 | 304 | display_update(); |
| 304 | 305 | } |
| r244665 | r244666 | |
| 371 | 372 | |
| 372 | 373 | void hh_tms1k_state::mathmagi_display() |
| 373 | 374 | { |
| 374 | | m_display_maxx = 8; |
| 375 | 375 | m_display_maxy = 11; |
| 376 | m_display_maxx = 8; |
| 376 | 377 | |
| 377 | 378 | // R0-R7: 7seg leds |
| 378 | 379 | for (int y = 0; y < 8; y++) |
| 379 | 380 | { |
| 380 | 381 | m_7seg_mask[y] = 0x7f; |
| 381 | | m_display_state[y] = (m_r >> y & 1) ? (m_o >> 1) : 0; |
| 382 | m_display_state[y] = (m_r >> y & 1) ? ((m_o >> 1 & 0x7f) | (m_o << 7 & 0x80)) : 0; |
| 382 | 383 | } |
| 383 | 384 | |
| 384 | 385 | // R8: custom math symbols digit |
| r244665 | r244666 | |
| 535 | 536 | |
| 536 | 537 | void hh_tms1k_state::amaztron_display() |
| 537 | 538 | { |
| 538 | | m_display_maxx = 8; |
| 539 | 539 | m_display_maxy = 3; |
| 540 | m_display_maxx = 8; |
| 540 | 541 | |
| 541 | 542 | // R8,R9: select digit |
| 542 | 543 | for (int y = 0; y < 2; y++) |
| r244665 | r244666 | |
| 801 | 802 | |
| 802 | 803 | /*************************************************************************** |
| 803 | 804 | |
| 804 | | Entex Electronic Baseball (1) |
| 805 | Entex Baseball |
| 805 | 806 | * TMS1000NLP MP0914 (die labeled MP0914A) |
| 806 | | |
| 807 | | This is a handheld LED baseball game. One player controls the batter, the CPU |
| 808 | | or other player controls the pitcher. Pitcher throw buttons are on a 'joypad' |
| 809 | | obtained from a compartment in the back. Player scores are supposed to be |
| 810 | | written down manually, the game doesn't save scores or innings (this annoyance |
| 811 | | was resolved in the sequel). For more information, refer to the official manual. |
| 812 | | |
| 813 | | The overlay graphic is known to have 2 versions: one where the field players |
| 814 | | are denoted by words ("left", "center", "short", etc), and an alternate one |
| 815 | | with little guys drawn next to the LEDs. |
| 816 | 807 | |
| 808 | NOTE!: MESS external artwork is recommended |
| 817 | 809 | |
| 818 | 810 | lamp translation table: led LDzz from game PCB = MESS lampyx: |
| 819 | 811 | |
| r244665 | r244666 | |
| 835 | 827 | // R8 is a 7seg |
| 836 | 828 | m_7seg_mask[8] = 0x7f; |
| 837 | 829 | |
| 838 | | display_matrix(7, 9, ~m_o, m_r); |
| 830 | display_matrix(7, 9, m_o, m_r); |
| 839 | 831 | } |
| 840 | 832 | |
| 841 | 833 | READ8_MEMBER(hh_tms1k_state::ebball_read_k) |
| r244665 | r244666 | |
| 867 | 859 | |
| 868 | 860 | static INPUT_PORTS_START( ebball ) |
| 869 | 861 | PORT_START("IN.0") // R1 |
| 870 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Change Up") |
| 871 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START ) PORT_NAME("Change Sides") |
| 872 | | PORT_CONFNAME( 0x04, 0x04, "Pitcher" ) |
| 873 | | PORT_CONFSETTING( 0x04, "Auto" ) |
| 874 | | PORT_CONFSETTING( 0x00, "Manual" ) |
| 862 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) |
| 863 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) |
| 864 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) |
| 875 | 865 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 876 | 866 | |
| 877 | 867 | PORT_START("IN.1") // R2 |
| 878 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Fast Ball") |
| 868 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4 ) |
| 879 | 869 | PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 880 | 870 | |
| 881 | 871 | PORT_START("IN.2") // R3 |
| 882 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(2) PORT_NAME("P2 Knuckler") |
| 872 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) |
| 883 | 873 | PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 884 | 874 | |
| 885 | 875 | PORT_START("IN.3") // R4 |
| 886 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("P2 Curve") |
| 876 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON6 ) |
| 887 | 877 | PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 888 | 878 | |
| 889 | 879 | PORT_START("IN.4") // R5 |
| 890 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_NAME("P2 Slider") |
| 880 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON7 ) |
| 891 | 881 | PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 892 | 882 | |
| 893 | 883 | PORT_START("IN.5") // Vss! |
| 894 | 884 | PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 895 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Batter") |
| 885 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON8 ) |
| 896 | 886 | INPUT_PORTS_END |
| 897 | 887 | |
| 898 | 888 | static MACHINE_CONFIG_START( ebball, hh_tms1k_state ) |
| 899 | 889 | |
| 900 | 890 | /* basic machine hardware */ |
| 901 | | MCFG_CPU_ADD("maincpu", TMS1000, 375000) // RC osc. R=43K, C=47pf -> ~375kHz |
| 891 | MCFG_CPU_ADD("maincpu", TMS1000, 350000) // RC osc. R=43K, C=47pf -> ~350kHz |
| 902 | 892 | MCFG_TMS1XXX_READ_K_CB(READ8(hh_tms1k_state, ebball_read_k)) |
| 903 | 893 | MCFG_TMS1XXX_WRITE_R_CB(WRITE16(hh_tms1k_state, ebball_write_r)) |
| 904 | 894 | MCFG_TMS1XXX_WRITE_O_CB(WRITE16(hh_tms1k_state, ebball_write_o)) |
| r244665 | r244666 | |
| 1347 | 1337 | |
| 1348 | 1338 | WRITE16_MEMBER(hh_tms1k_state::cnsector_write_r) |
| 1349 | 1339 | { |
| 1350 | | m_display_maxx = 8; |
| 1351 | 1340 | m_display_maxy = 7; |
| 1341 | m_display_maxx = 8; |
| 1352 | 1342 | |
| 1353 | 1343 | // R0-R5: select digit (right-to-left) |
| 1354 | 1344 | for (int y = 0; y < 6; y++) |
| r244665 | r244666 | |
| 1555 | 1545 | |
| 1556 | 1546 | WRITE16_MEMBER(hh_tms1k_state::stopthief_write_r) |
| 1557 | 1547 | { |
| 1558 | | m_display_maxx = 7; |
| 1559 | 1548 | m_display_maxy = 3; |
| 1549 | m_display_maxx = 7; |
| 1560 | 1550 | |
| 1561 | 1551 | // R0-R2: select digit |
| 1562 | | UINT8 o = BITSWAP8(m_o,3,5,2,1,4,0,6,7) & 0x7f; |
| 1552 | UINT8 o = BITSWAP8(m_o,3,5,2,1,4,0,6,7); |
| 1563 | 1553 | for (int y = 0; y < m_display_maxy; y++) |
| 1564 | 1554 | { |
| 1565 | 1555 | m_7seg_mask[y] = 0x7f; |
| r244665 | r244666 | |
| 2294 | 2284 | CONS( 1979, amaztron, 0, 0, amaztron, amaztron, driver_device, 0, "Coleco", "Amaze-A-Tron", GAME_SUPPORTS_SAVE ) |
| 2295 | 2285 | CONS( 1981, tc4, 0, 0, tc4, tc4, driver_device, 0, "Coleco", "Total Control 4", GAME_SUPPORTS_SAVE ) |
| 2296 | 2286 | |
| 2297 | | CONS( 1978, ebball, 0, 0, ebball, ebball, driver_device, 0, "Entex", "Electronic Baseball (Entex)", GAME_SUPPORTS_SAVE ) |
| 2287 | CONS( 1979, ebball, 0, 0, ebball, ebball, driver_device, 0, "Entex", "Baseball (Entex)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) |
| 2298 | 2288 | |
| 2299 | 2289 | CONS( 1979, elecdet, 0, 0, elecdet, elecdet, driver_device, 0, "Ideal", "Electronic Detective", GAME_SUPPORTS_SAVE ) |
| 2300 | 2290 | |
trunk/src/mess/drivers/hh_ucom4.c
| r244665 | r244666 | |
| 6 | 6 | |
| 7 | 7 | |
| 8 | 8 | |
| 9 | | serial device etc. |
| 10 | | ----------------------------------------------- |
| 9 | serial device etc |
| 10 | ------------------------------------------ |
| 11 | 11 | @048 uPD552 1980, Tomy Tennis |
| 12 | 12 | *085 uPD650 1980, Roland TR-808 |
| 13 | 13 | 102 uPD553 1981, Bandai Block Out |
| r244665 | r244666 | |
| 86 | 86 | void tmtennis_set_clock(); |
| 87 | 87 | DECLARE_INPUT_CHANGED_MEMBER(tmtennis_difficulty_switch); |
| 88 | 88 | DECLARE_MACHINE_RESET(tmtennis); |
| 89 | | |
| 90 | | DECLARE_WRITE8_MEMBER(tmpacman_grid_w); |
| 91 | | DECLARE_WRITE8_MEMBER(tmpacman_plate_w); |
| 92 | | DECLARE_WRITE8_MEMBER(tmpacman_port_e_w); |
| 93 | 89 | |
| 94 | 90 | DECLARE_READ8_MEMBER(alnchase_input_r); |
| 95 | 91 | DECLARE_WRITE8_MEMBER(alnchase_display_w); |
| r244665 | r244666 | |
| 190 | 186 | m_display_maxy = maxy; |
| 191 | 187 | |
| 192 | 188 | // update current state |
| 193 | | UINT32 mask = (1 << maxx) - 1; |
| 194 | 189 | for (int y = 0; y < maxy; y++) |
| 195 | | m_display_state[y] = (sety >> y & 1) ? (setx & mask) : 0; |
| 190 | m_display_state[y] = (sety >> y & 1) ? setx : 0; |
| 196 | 191 | |
| 197 | 192 | display_update(); |
| 198 | 193 | } |
| r244665 | r244666 | |
| 236 | 231 | |
| 237 | 232 | WRITE8_MEMBER(hh_ucom4_state::edracula_grid_w) |
| 238 | 233 | { |
| 239 | | // ports C,D: vfd matrix grid |
| 234 | // port C/D: vfd matrix grid |
| 240 | 235 | int shift = (offset - NEC_UCOM4_PORTC) * 4; |
| 241 | 236 | m_grid = (m_grid & ~(0xf << shift)) | (data << shift); |
| 242 | 237 | |
| r244665 | r244666 | |
| 245 | 240 | |
| 246 | 241 | WRITE8_MEMBER(hh_ucom4_state::edracula_plate_w) |
| 247 | 242 | { |
| 248 | | // ports E-H,I01: vfd matrix plate |
| 243 | // port E/F/G/H/I01: vfd matrix plate |
| 249 | 244 | int shift = (offset - NEC_UCOM4_PORTE) * 4; |
| 250 | 245 | m_plate = (m_plate & ~(0xf << shift)) | (data << shift); |
| 251 | 246 | |
| r244665 | r244666 | |
| 262 | 257 | |
| 263 | 258 | |
| 264 | 259 | static INPUT_PORTS_START( edracula ) |
| 265 | | PORT_START("IN.0") // port A |
| 260 | PORT_START("IN.0") |
| 266 | 261 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) |
| 267 | 262 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START ) |
| 268 | 263 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) |
| 269 | 264 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 270 | 265 | |
| 271 | | PORT_START("IN.1") // port B |
| 266 | PORT_START("IN.1") |
| 272 | 267 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) |
| 273 | 268 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) |
| 274 | 269 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) |
| r244665 | r244666 | |
| 325 | 320 | |
| 326 | 321 | READ8_MEMBER(hh_ucom4_state::tmtennis_input_r) |
| 327 | 322 | { |
| 328 | | // ports A,B: buttons |
| 323 | // port A/B: buttons |
| 329 | 324 | return ~read_inputs(2) >> (offset*4); |
| 330 | 325 | } |
| 331 | 326 | |
| 332 | | WRITE8_MEMBER(hh_ucom4_state::tmtennis_grid_w) |
| 327 | WRITE8_MEMBER(hh_ucom4_state::tmtennis_port_e_w) |
| 333 | 328 | { |
| 334 | | // ports G-I: vfd matrix grid |
| 335 | | int shift = (offset - NEC_UCOM4_PORTG) * 4; |
| 336 | | m_grid = (m_grid & ~(0xf << shift)) | (data << shift); |
| 337 | | |
| 338 | | display_matrix(12, 12, m_plate, m_grid); |
| 329 | // E0/E1: input mux |
| 330 | // E2: speaker out |
| 331 | // E3: N/C |
| 332 | m_inp_mux = data & 3; |
| 333 | m_speaker->level_w(data >> 2 & 1); |
| 339 | 334 | } |
| 340 | 335 | |
| 341 | 336 | WRITE8_MEMBER(hh_ucom4_state::tmtennis_plate_w) |
| 342 | 337 | { |
| 343 | | // ports C-F: vfd matrix plate |
| 338 | // port C/D/F: vfd matrix plate |
| 344 | 339 | if (offset == NEC_UCOM4_PORTF) offset--; |
| 345 | 340 | int shift = (offset - NEC_UCOM4_PORTC) * 4; |
| 346 | 341 | m_plate = (m_plate & ~(0xf << shift)) | (data << shift); |
| r244665 | r244666 | |
| 348 | 343 | display_matrix(12, 12, m_plate, m_grid); |
| 349 | 344 | } |
| 350 | 345 | |
| 351 | | WRITE8_MEMBER(hh_ucom4_state::tmtennis_port_e_w) |
| 346 | WRITE8_MEMBER(hh_ucom4_state::tmtennis_grid_w) |
| 352 | 347 | { |
| 353 | | // E0,E1: input mux |
| 354 | | // E2: speaker out |
| 355 | | // E3: N/C |
| 356 | | m_inp_mux = data & 3; |
| 357 | | m_speaker->level_w(data >> 2 & 1); |
| 348 | // port G/H/I: vfd matrix grid |
| 349 | int shift = (offset - NEC_UCOM4_PORTG) * 4; |
| 350 | m_grid = (m_grid & ~(0xf << shift)) | (data << shift); |
| 351 | |
| 352 | display_matrix(12, 12, m_plate, m_grid); |
| 358 | 353 | } |
| 359 | 354 | |
| 360 | 355 | |
| 356 | |
| 361 | 357 | /* Pro-Tennis physical button layout and labels is like this: |
| 362 | 358 | |
| 363 | 359 | [SERVE] [1] [2] [3] [3] [2] [1] [SERVE] |
| r244665 | r244666 | |
| 439 | 435 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 440 | 436 | MACHINE_CONFIG_END |
| 441 | 437 | |
| 442 | | |
| 443 | | |
| 444 | 438 | /*************************************************************************** |
| 445 | 439 | |
| 446 | 440 | Tomy(tronic) Pac-Man (manufactured in Japan) |
| r244665 | r244666 | |
| 459 | 453 | |
| 460 | 454 | ***************************************************************************/ |
| 461 | 455 | |
| 462 | | WRITE8_MEMBER(hh_ucom4_state::tmpacman_grid_w) |
| 463 | | { |
| 464 | | // ports C,D: vfd matrix grid |
| 465 | | int shift = (offset - NEC_UCOM4_PORTC) * 4; |
| 466 | | m_grid = (m_grid & ~(0xf << shift)) | (data << shift); |
| 467 | | |
| 468 | | display_matrix(19, 8, m_plate, m_grid); |
| 469 | | } |
| 470 | | |
| 471 | | WRITE8_MEMBER(hh_ucom4_state::tmpacman_plate_w) |
| 472 | | { |
| 473 | | // ports E-I: vfd matrix plate |
| 474 | | int shift = (offset - NEC_UCOM4_PORTE) * 4; |
| 475 | | m_plate = (m_plate & ~(0xf << shift)) | (data << shift); |
| 476 | | |
| 477 | | display_matrix(19, 8, m_plate, m_grid); |
| 478 | | } |
| 479 | | |
| 480 | | WRITE8_MEMBER(hh_ucom4_state::tmpacman_port_e_w) |
| 481 | | { |
| 482 | | // E1: speaker out |
| 483 | | m_speaker->level_w(data >> 1 & 1); |
| 484 | | |
| 485 | | tmpacman_plate_w(space, offset, data); |
| 486 | | } |
| 487 | | |
| 488 | | |
| 489 | 456 | static INPUT_PORTS_START( tmpacman ) |
| 490 | | PORT_START("IN.0") // port A |
| 491 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY // 4 separate directional buttons, hence 16way |
| 492 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY |
| 493 | | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY |
| 494 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY |
| 495 | | |
| 496 | | PORT_START("IN.1") // port B |
| 497 | | PORT_CONFNAME( 0x00, 0x00, DEF_STR( Difficulty ) ) |
| 498 | | PORT_CONFSETTING( 0x00, "Amateur" ) |
| 499 | | PORT_CONFSETTING( 0x01, "Professional" ) |
| 500 | | PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 501 | 457 | INPUT_PORTS_END |
| 502 | 458 | |
| 503 | 459 | |
| r244665 | r244666 | |
| 505 | 461 | |
| 506 | 462 | /* basic machine hardware */ |
| 507 | 463 | MCFG_CPU_ADD("maincpu", NEC_D553, XTAL_430kHz) |
| 508 | | MCFG_UCOM4_READ_A_CB(IOPORT("IN.0")) |
| 509 | | MCFG_UCOM4_READ_B_CB(IOPORT("IN.1")) |
| 510 | | MCFG_UCOM4_WRITE_C_CB(WRITE8(hh_ucom4_state, tmpacman_grid_w)) |
| 511 | | MCFG_UCOM4_WRITE_D_CB(WRITE8(hh_ucom4_state, tmpacman_grid_w)) |
| 512 | | MCFG_UCOM4_WRITE_E_CB(WRITE8(hh_ucom4_state, tmpacman_port_e_w)) |
| 513 | | MCFG_UCOM4_WRITE_F_CB(WRITE8(hh_ucom4_state, tmpacman_plate_w)) |
| 514 | | MCFG_UCOM4_WRITE_G_CB(WRITE8(hh_ucom4_state, tmpacman_plate_w)) |
| 515 | | MCFG_UCOM4_WRITE_H_CB(WRITE8(hh_ucom4_state, tmpacman_plate_w)) |
| 516 | | MCFG_UCOM4_WRITE_I_CB(WRITE8(hh_ucom4_state, tmpacman_plate_w)) |
| 517 | 464 | |
| 518 | | MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_ucom4_state, display_decay_tick, attotime::from_msec(1)) |
| 519 | 465 | MCFG_DEFAULT_LAYOUT(layout_tmpacman) |
| 520 | 466 | |
| 521 | 467 | /* no video! */ |
| r244665 | r244666 | |
| 546 | 492 | |
| 547 | 493 | ***************************************************************************/ |
| 548 | 494 | |
| 495 | |
| 496 | |
| 549 | 497 | READ8_MEMBER(hh_ucom4_state::alnchase_input_r) |
| 550 | 498 | { |
| 551 | 499 | // port A: buttons |
| r244665 | r244666 | |
| 556 | 504 | { |
| 557 | 505 | if (offset <= NEC_UCOM4_PORTE) |
| 558 | 506 | { |
| 559 | | // ports C,D,E0: vfd matrix grid |
| 507 | // C/D/E0: vfd matrix grid |
| 560 | 508 | int shift = (offset - NEC_UCOM4_PORTC) * 4; |
| 561 | 509 | m_grid = (m_grid & ~(0xf << shift)) | (data << shift); |
| 562 | 510 | |
| r244665 | r244666 | |
| 567 | 515 | |
| 568 | 516 | if (offset >= NEC_UCOM4_PORTE) |
| 569 | 517 | { |
| 570 | | // ports F-I,E23: vfd matrix plate |
| 518 | // E23/F/G/H/I: vfd matrix plate |
| 571 | 519 | int shift = (offset - NEC_UCOM4_PORTE) * 4; |
| 572 | 520 | m_plate = ((m_plate << 2 & ~(0xf << shift)) | (data << shift)) >> 2; |
| 573 | 521 | } |
| r244665 | r244666 | |
| 577 | 525 | |
| 578 | 526 | WRITE8_MEMBER(hh_ucom4_state::alnchase_port_e_w) |
| 579 | 527 | { |
| 528 | alnchase_display_w(space, offset, data); |
| 529 | |
| 580 | 530 | // E1: speaker out |
| 581 | 531 | m_speaker->level_w(data >> 1 & 1); |
| 582 | | |
| 583 | | alnchase_display_w(space, offset, data); |
| 584 | 532 | } |
| 585 | 533 | |
| 586 | 534 | /* physical button layout and labels is like this: |
trunk/src/mess/layout/ebball.lay
| r244665 | r244666 | |
| 4 | 4 | <!-- define elements --> |
| 5 | 5 | |
| 6 | 6 | <element name="static_black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></element> |
| 7 | | <element name="disk_black"><disk><color red="0.0" green="0.0" blue="0.0" /></disk></element> |
| 8 | | <element name="disk_green"><disk><color red="0.0" green="0.38" blue="0.15" /></disk></element> |
| 9 | | <element name="static_white"><rect><color red="0.75" green="0.75" blue="0.75" /></rect></element> |
| 10 | | <element name="disk_white"><disk><color red="0.75" green="0.75" blue="0.75" /></disk></element> |
| 11 | | <element name="disk_white2"><disk><color red="0.85" green="0.85" blue="0.85" /></disk></element> |
| 12 | 7 | |
| 13 | | <!-- background is dark-red, to hide the leds --> |
| 14 | | |
| 15 | | <element name="static_bg"><rect><color red="0.2" green="0.04" blue="0.05" /></rect></element> |
| 16 | | <element name="disk_bg"><disk><color red="0.2" green="0.04" blue="0.05" /></disk></element> |
| 17 | | |
| 18 | | |
| 19 | | <element name="field_guy"> |
| 20 | | <rect><color red="0.0" green="0.38" blue="0.15" /></rect> |
| 21 | | <text string=":-)"><color red="0.85" green="0.85" blue="0.85" /></text> |
| 22 | | </element> |
| 23 | | <element name="base_guy"> |
| 24 | | <rect><color red="0.2" green="0.04" blue="0.05" /></rect> |
| 25 | | <text string=":-)"><color red="0.85" green="0.85" blue="0.85" /></text> |
| 26 | | </element> |
| 27 | | <element name="pitcher"> |
| 28 | | <rect><color red="0.2" green="0.04" blue="0.05" /></rect> |
| 29 | | <text string=":-P"><color red="0.85" green="0.85" blue="0.85" /></text> |
| 30 | | </element> |
| 31 | | |
| 32 | | <element name="text_s"><text string="S" align="1"><color red="0.95" green="0.95" blue="0.95" /></text></element> |
| 33 | | <element name="text_b"><text string="B" align="1"><color red="0.95" green="0.95" blue="0.95" /></text></element> |
| 34 | | <element name="text_o"><text string="O" align="1"><color red="0.95" green="0.95" blue="0.95" /></text></element> |
| 35 | | |
| 36 | | <element name="text_s2"> |
| 37 | | <rect><color red="0.2" green="0.04" blue="0.05" /></rect> |
| 38 | | <text string="S"><color red="0.95" green="0.95" blue="0.95" /></text> |
| 39 | | </element> |
| 40 | | <element name="text_b2"><text string="B"><color red="0.95" green="0.95" blue="0.95" /></text></element> |
| 41 | | |
| 42 | | <element name="text_single"><text string="1B"><color red="0.95" green="0.95" blue="0.95" /></text></element> |
| 43 | | <element name="text_double"><text string="2B"><color red="0.95" green="0.95" blue="0.95" /></text></element> |
| 44 | | <element name="text_triple"><text string="3B"><color red="0.95" green="0.95" blue="0.95" /></text></element> |
| 45 | | |
| 46 | | <element name="text_home"><text string="HOME" align="2"><color red="0.95" green="0.95" blue="0.95" /></text></element> |
| 47 | | <element name="text_run"><text string="RUN" align="1"><color red="0.95" green="0.95" blue="0.95" /></text></element> |
| 48 | | |
| 49 | | <element name="text_score"><text string="SCORE"><color red="0.4" green="0.4" blue="0.4" /></text></element> |
| 50 | | <element name="text_count"><text string="COUNT"><color red="0.4" green="0.4" blue="0.4" /></text></element> |
| 51 | | |
| 52 | | |
| 53 | 8 | <element name="digit" defstate="0"> |
| 54 | 9 | <led7seg><color red="1.0" green="0.20" blue="0.22" /></led7seg> |
| 55 | 10 | </element> |
| 56 | | |
| 57 | 11 | <element name="led" defstate="0"> |
| 58 | 12 | <disk state="0"><color red="0.2" green="0.04" blue="0.05" /></disk> |
| 59 | 13 | <disk state="1"><color red="1.0" green="0.20" blue="0.22" /></disk> |
| 60 | 14 | </element> |
| 61 | 15 | |
| 62 | 16 | |
| 63 | | |
| 64 | 17 | <!-- build screen --> |
| 65 | 18 | |
| 66 | | <view name="Internal Layout"> |
| 67 | | <bounds left="0" right="100" top="0" bottom="114" /> |
| 19 | <view name="Test Layout"> |
| 20 | <bounds left="0" right="64" top="0" bottom="64" /> |
| 68 | 21 | <bezel element="static_black"> |
| 69 | | <bounds left="0" right="100" top="0" bottom="114" /> |
| 22 | <bounds left="0" right="64" top="0" bottom="64" /> |
| 70 | 23 | </bezel> |
| 71 | 24 | |
| 72 | | <!-- outer bezel --> |
| 25 | <bezel name="digit8" element="digit"><bounds x="0" y="0" width="10" height="15" /></bezel> |
| 73 | 26 | |
| 74 | | <bezel element="text_score"><bounds x="5.5" y="2" width="8" height="3" /></bezel> |
| 75 | | <bezel element="text_count"><bounds x="86" y="2" width="8" height="3" /></bezel> |
| 27 | <!-- 7*9 matrix --> |
| 76 | 28 | |
| 77 | | <bezel name="digit8" element="digit"><bounds x="5" y="7" width="8" height="12" /></bezel> |
| 29 | <bezel name="lamp0" element="led"><bounds x="0" y="20" width="1" height="1" /></bezel> |
| 30 | <bezel name="lamp1" element="led"><bounds x="2" y="20" width="1" height="1" /></bezel> |
| 31 | <bezel name="lamp2" element="led"><bounds x="4" y="20" width="1" height="1" /></bezel> |
| 32 | <bezel name="lamp3" element="led"><bounds x="6" y="20" width="1" height="1" /></bezel> |
| 33 | <bezel name="lamp4" element="led"><bounds x="8" y="20" width="1" height="1" /></bezel> |
| 34 | <bezel name="lamp5" element="led"><bounds x="10" y="20" width="1" height="1" /></bezel> |
| 35 | <bezel name="lamp6" element="led"><bounds x="12" y="20" width="1" height="1" /></bezel> |
| 78 | 36 | |
| 79 | | <bezel element="text_s"><bounds x="82.5" y="7.2" width="2" height="2.5" /></bezel> |
| 80 | | <bezel name="lamp70" element="led"><bounds x="86" y="7" width="3" height="3" /></bezel> |
| 81 | | <bezel name="lamp71" element="led"><bounds x="90" y="7" width="3" height="3" /></bezel> |
| 37 | <bezel name="lamp10" element="led"><bounds x="0" y="22" width="1" height="1" /></bezel> |
| 38 | <bezel name="lamp11" element="led"><bounds x="2" y="22" width="1" height="1" /></bezel> |
| 39 | <bezel name="lamp12" element="led"><bounds x="4" y="22" width="1" height="1" /></bezel> |
| 40 | <bezel name="lamp13" element="led"><bounds x="6" y="22" width="1" height="1" /></bezel> |
| 41 | <bezel name="lamp14" element="led"><bounds x="8" y="22" width="1" height="1" /></bezel> |
| 42 | <bezel name="lamp15" element="led"><bounds x="10" y="22" width="1" height="1" /></bezel> |
| 43 | <bezel name="lamp16" element="led"><bounds x="12" y="22" width="1" height="1" /></bezel> |
| 82 | 44 | |
| 83 | | <bezel element="text_b"><bounds x="82.5" y="11.2" width="2" height="2.5" /></bezel> |
| 84 | | <bezel name="lamp60" element="led"><bounds x="86" y="11" width="3" height="3" /></bezel> |
| 85 | | <bezel name="lamp61" element="led"><bounds x="90" y="11" width="3" height="3" /></bezel> |
| 86 | | <bezel name="lamp62" element="led"><bounds x="94" y="11" width="3" height="3" /></bezel> |
| 45 | <bezel name="lamp20" element="led"><bounds x="0" y="24" width="1" height="1" /></bezel> |
| 46 | <bezel name="lamp21" element="led"><bounds x="2" y="24" width="1" height="1" /></bezel> |
| 47 | <bezel name="lamp22" element="led"><bounds x="4" y="24" width="1" height="1" /></bezel> |
| 48 | <bezel name="lamp23" element="led"><bounds x="6" y="24" width="1" height="1" /></bezel> |
| 49 | <bezel name="lamp24" element="led"><bounds x="8" y="24" width="1" height="1" /></bezel> |
| 50 | <bezel name="lamp25" element="led"><bounds x="10" y="24" width="1" height="1" /></bezel> |
| 51 | <bezel name="lamp26" element="led"><bounds x="12" y="24" width="1" height="1" /></bezel> |
| 87 | 52 | |
| 88 | | <bezel element="text_o"><bounds x="82.5" y="15.2" width="2" height="2.5" /></bezel> |
| 89 | | <bezel name="lamp72" element="led"><bounds x="86" y="15" width="3" height="3" /></bezel> |
| 90 | | <bezel name="lamp73" element="led"><bounds x="90" y="15" width="3" height="3" /></bezel> |
| 53 | <bezel name="lamp30" element="led"><bounds x="0" y="26" width="1" height="1" /></bezel> |
| 54 | <bezel name="lamp31" element="led"><bounds x="2" y="26" width="1" height="1" /></bezel> |
| 55 | <bezel name="lamp32" element="led"><bounds x="4" y="26" width="1" height="1" /></bezel> |
| 56 | <bezel name="lamp33" element="led"><bounds x="6" y="26" width="1" height="1" /></bezel> |
| 57 | <bezel name="lamp34" element="led"><bounds x="8" y="26" width="1" height="1" /></bezel> |
| 58 | <bezel name="lamp35" element="led"><bounds x="10" y="26" width="1" height="1" /></bezel> |
| 59 | <bezel name="lamp36" element="led"><bounds x="12" y="26" width="1" height="1" /></bezel> |
| 91 | 60 | |
| 61 | <bezel name="lamp40" element="led"><bounds x="0" y="28" width="1" height="1" /></bezel> |
| 62 | <bezel name="lamp41" element="led"><bounds x="2" y="28" width="1" height="1" /></bezel> |
| 63 | <bezel name="lamp42" element="led"><bounds x="4" y="28" width="1" height="1" /></bezel> |
| 64 | <bezel name="lamp43" element="led"><bounds x="6" y="28" width="1" height="1" /></bezel> |
| 65 | <bezel name="lamp44" element="led"><bounds x="8" y="28" width="1" height="1" /></bezel> |
| 66 | <bezel name="lamp45" element="led"><bounds x="10" y="28" width="1" height="1" /></bezel> |
| 67 | <bezel name="lamp46" element="led"><bounds x="12" y="28" width="1" height="1" /></bezel> |
| 92 | 68 | |
| 93 | | <!-- board --> |
| 69 | <bezel name="lamp50" element="led"><bounds x="0" y="30" width="1" height="1" /></bezel> |
| 70 | <bezel name="lamp51" element="led"><bounds x="2" y="30" width="1" height="1" /></bezel> |
| 71 | <bezel name="lamp52" element="led"><bounds x="4" y="30" width="1" height="1" /></bezel> |
| 72 | <bezel name="lamp53" element="led"><bounds x="6" y="30" width="1" height="1" /></bezel> |
| 73 | <bezel name="lamp54" element="led"><bounds x="8" y="30" width="1" height="1" /></bezel> |
| 74 | <bezel name="lamp55" element="led"><bounds x="10" y="30" width="1" height="1" /></bezel> |
| 75 | <bezel name="lamp56" element="led"><bounds x="12" y="30" width="1" height="1" /></bezel> |
| 94 | 76 | |
| 95 | | <bezel element="disk_green"><bounds x="-5" y="25" width="110" height="110" /></bezel> |
| 96 | | <bezel element="static_black"><bounds x="-10" y="75" width="120" height="65" /></bezel> |
| 97 | | <bezel element="disk_bg"><bounds x="15" y="45" width="70" height="70" /></bezel> |
| 98 | | <bezel element="static_black"><bounds x="0" y="85" width="100" height="40" /></bezel> |
| 99 | | <bezel element="static_bg"><bounds x="15" y="75" width="70" height="26" /></bezel> |
| 100 | | <bezel element="disk_bg"><bounds x="40" y="91" width="20" height="20" /></bezel> |
| 77 | <bezel name="lamp60" element="led"><bounds x="0" y="32" width="1" height="1" /></bezel> |
| 78 | <bezel name="lamp61" element="led"><bounds x="2" y="32" width="1" height="1" /></bezel> |
| 79 | <bezel name="lamp62" element="led"><bounds x="4" y="32" width="1" height="1" /></bezel> |
| 80 | <bezel name="lamp63" element="led"><bounds x="6" y="32" width="1" height="1" /></bezel> |
| 81 | <bezel name="lamp64" element="led"><bounds x="8" y="32" width="1" height="1" /></bezel> |
| 82 | <bezel name="lamp65" element="led"><bounds x="10" y="32" width="1" height="1" /></bezel> |
| 83 | <bezel name="lamp66" element="led"><bounds x="12" y="32" width="1" height="1" /></bezel> |
| 101 | 84 | |
| 102 | | <!-- top edge --> |
| 85 | <bezel name="lamp70" element="led"><bounds x="0" y="34" width="1" height="1" /></bezel> |
| 86 | <bezel name="lamp71" element="led"><bounds x="2" y="34" width="1" height="1" /></bezel> |
| 87 | <bezel name="lamp72" element="led"><bounds x="4" y="34" width="1" height="1" /></bezel> |
| 88 | <bezel name="lamp73" element="led"><bounds x="6" y="34" width="1" height="1" /></bezel> |
| 89 | <bezel name="lamp74" element="led"><bounds x="8" y="34" width="1" height="1" /></bezel> |
| 90 | <bezel name="lamp75" element="led"><bounds x="10" y="34" width="1" height="1" /></bezel> |
| 91 | <bezel name="lamp76" element="led"><bounds x="12" y="34" width="1" height="1" /></bezel> |
| 103 | 92 | |
| 104 | | <bezel element="disk_black"><bounds x="-1.3" y="44.7" width="10" height="10" /></bezel> |
| 105 | | <bezel element="disk_black"><bounds x="91.3" y="44.7" width="10" height="10" /></bezel> |
| 106 | | <bezel name="lamp43" element="led"><bounds x="2.2" y="48.2" width="3" height="3" /></bezel> |
| 107 | | <bezel name="lamp50" element="led"><bounds x="94.8" y="48.2" width="3" height="3" /></bezel> |
| 108 | | <bezel element="text_triple"><bounds x="2.2" y="44.5" width="3" height="2.5" /></bezel> |
| 109 | | <bezel element="text_double"><bounds x="94.8" y="44.5" width="3" height="2.5" /></bezel> |
| 93 | <bezel name="lamp80" element="led"><bounds x="0" y="36" width="1" height="1" /></bezel> |
| 94 | <bezel name="lamp81" element="led"><bounds x="2" y="36" width="1" height="1" /></bezel> |
| 95 | <bezel name="lamp82" element="led"><bounds x="4" y="36" width="1" height="1" /></bezel> |
| 96 | <bezel name="lamp83" element="led"><bounds x="6" y="36" width="1" height="1" /></bezel> |
| 97 | <bezel name="lamp84" element="led"><bounds x="8" y="36" width="1" height="1" /></bezel> |
| 98 | <bezel name="lamp85" element="led"><bounds x="10" y="36" width="1" height="1" /></bezel> |
| 99 | <bezel name="lamp86" element="led"><bounds x="12" y="36" width="1" height="1" /></bezel> |
| 110 | 100 | |
| 111 | | <bezel element="disk_black"><bounds x="18.5" y="26.5" width="10" height="10" /></bezel> |
| 112 | | <bezel element="disk_black"><bounds x="71.5" y="26.5" width="10" height="10" /></bezel> |
| 113 | | <bezel name="lamp53" element="led"><bounds x="22" y="30" width="3" height="3" /></bezel> |
| 114 | | <bezel name="lamp51" element="led"><bounds x="75" y="30" width="3" height="3" /></bezel> |
| 115 | | <bezel element="text_single"><bounds x="22" y="26.3" width="3" height="2.5" /></bezel> |
| 116 | | <bezel element="text_single"><bounds x="75" y="26.3" width="3" height="2.5" /></bezel> |
| 101 | <bezel name="lamp90" element="led"><bounds x="0" y="38" width="1" height="1" /></bezel> |
| 102 | <bezel name="lamp91" element="led"><bounds x="2" y="38" width="1" height="1" /></bezel> |
| 103 | <bezel name="lamp92" element="led"><bounds x="4" y="38" width="1" height="1" /></bezel> |
| 104 | <bezel name="lamp93" element="led"><bounds x="6" y="38" width="1" height="1" /></bezel> |
| 105 | <bezel name="lamp94" element="led"><bounds x="8" y="38" width="1" height="1" /></bezel> |
| 106 | <bezel name="lamp95" element="led"><bounds x="10" y="38" width="1" height="1" /></bezel> |
| 107 | <bezel name="lamp96" element="led"><bounds x="12" y="38" width="1" height="1" /></bezel> |
| 117 | 108 | |
| 118 | | <bezel element="disk_white2"><bounds x="45" y="20" width="10" height="10" /></bezel> |
| 119 | | <bezel element="disk_black"><bounds x="45.5" y="20.5" width="9" height="9" /></bezel> |
| 120 | | <bezel name="lamp52" element="led"><bounds x="48.5" y="23.5" width="3" height="3" /></bezel> |
| 121 | | <bezel element="text_home"><bounds x="36" y="21.5" width="8" height="2.5" /></bezel> |
| 122 | | <bezel element="text_run"><bounds x="56.5" y="21.5" width="8" height="2.5" /></bezel> |
| 123 | 109 | |
| 124 | | <!-- field --> |
| 125 | | |
| 126 | | <bezel element="field_guy"><bounds x="13" y="48.5" width="3" height="3" /></bezel> |
| 127 | | <bezel element="disk_bg"><bounds x="12" y="52" width="5" height="5" /></bezel> |
| 128 | | <bezel name="lamp42" element="led"><bounds x="13" y="53" width="3" height="3" /></bezel> |
| 129 | | |
| 130 | | <bezel element="field_guy"><bounds x="48.5" y="31.5" width="3" height="3" /></bezel> |
| 131 | | <bezel element="disk_bg"><bounds x="47.5" y="35" width="5" height="5" /></bezel> |
| 132 | | <bezel name="lamp41" element="led"><bounds x="48.5" y="36" width="3" height="3" /></bezel> |
| 133 | | |
| 134 | | <bezel element="field_guy"><bounds x="84" y="48.5" width="3" height="3" /></bezel> |
| 135 | | <bezel element="disk_bg"><bounds x="83" y="52" width="5" height="5" /></bezel> |
| 136 | | <bezel name="lamp40" element="led"><bounds x="84" y="53" width="3" height="3" /></bezel> |
| 137 | | |
| 138 | | <!-- pitcher --> |
| 139 | | |
| 140 | | <bezel element="pitcher"><bounds x="48.5" y="66.5" width="3" height="3" /></bezel> |
| 141 | | <bezel element="static_white"><bounds x="46" y="71" width="0.5" height="18.5" /></bezel> |
| 142 | | <bezel element="static_white"><bounds x="53.5" y="71" width="0.5" height="18.5" /></bezel> |
| 143 | | |
| 144 | | <bezel name="lamp23" element="led"><bounds x="48.5" y="70.5" width="3" height="3" /></bezel> |
| 145 | | <bezel name="lamp0" element="led"><bounds x="48.5" y="76" width="3" height="3" /></bezel> |
| 146 | | <bezel name="lamp1" element="led"><bounds x="48.5" y="81.5" width="3" height="3" /></bezel> |
| 147 | | <bezel name="lamp2" element="led"><bounds x="48.5" y="87" width="3" height="3" /></bezel> |
| 148 | | |
| 149 | | <bezel name="lamp10" element="led"><bounds x="45" y="92.5" width="3" height="3" /></bezel> |
| 150 | | <bezel name="lamp13" element="led"><bounds x="52" y="92.5" width="3" height="3" /></bezel> |
| 151 | | |
| 152 | | <!-- bases --> |
| 153 | | |
| 154 | | <bezel element="base_guy"><bounds x="70" y="58" width="3" height="3" /></bezel> |
| 155 | | <bezel name="lamp30" element="led"><bounds x="70" y="62" width="3" height="3" /></bezel> |
| 156 | | |
| 157 | | <bezel element="base_guy"><bounds x="61" y="49" width="3" height="3" /></bezel> |
| 158 | | <bezel name="lamp31" element="led"><bounds x="61" y="53" width="3" height="3" /></bezel> |
| 159 | | |
| 160 | | <bezel element="base_guy"><bounds x="36" y="49" width="3" height="3" /></bezel> |
| 161 | | <bezel name="lamp32" element="led"><bounds x="36" y="53" width="3" height="3" /></bezel> |
| 162 | | |
| 163 | | <bezel element="base_guy"><bounds x="27" y="58" width="3" height="3" /></bezel> |
| 164 | | <bezel name="lamp33" element="led"><bounds x="27" y="62" width="3" height="3" /></bezel> |
| 165 | | |
| 166 | | <bezel element="static_white"><bounds x="72" y="72" width="6" height="6" /></bezel> |
| 167 | | <bezel element="static_bg"><bounds x="72.5" y="72.5" width="5" height="5" /></bezel> |
| 168 | | <bezel name="lamp20" element="led"><bounds x="73.5" y="73.5" width="3" height="3" /></bezel> |
| 169 | | |
| 170 | | <bezel element="static_white"><bounds x="47" y="47" width="6" height="6" /></bezel> |
| 171 | | <bezel element="static_bg"><bounds x="47.5" y="47.5" width="5" height="5" /></bezel> |
| 172 | | <bezel name="lamp21" element="led"><bounds x="48.5" y="48.5" width="3" height="3" /></bezel> |
| 173 | | |
| 174 | | <bezel element="static_white"><bounds x="22" y="72" width="6" height="6" /></bezel> |
| 175 | | <bezel element="static_bg"><bounds x="22.5" y="72.5" width="5" height="5" /></bezel> |
| 176 | | <bezel name="lamp22" element="led"><bounds x="23.5" y="73.5" width="3" height="3" /></bezel> |
| 177 | | |
| 178 | | <!-- home --> |
| 179 | | |
| 180 | | <bezel element="static_white"><bounds x="47" y="97" width="6" height="3" /></bezel> |
| 181 | | <bezel element="disk_white"><bounds x="47" y="97" width="6" height="6" /></bezel> |
| 182 | | <bezel element="static_bg"><bounds x="47.5" y="97.5" width="5" height="2.51" /></bezel> |
| 183 | | <bezel element="disk_bg"><bounds x="47.5" y="97.5" width="5" height="5" /></bezel> |
| 184 | | |
| 185 | | <bezel element="text_b2"><bounds x="42.5" y="108.3" width="3" height="2.5" /></bezel> |
| 186 | | <bezel name="lamp11" element="led"><bounds x="42.5" y="98.5" width="3" height="3" /></bezel> |
| 187 | | <bezel name="lamp12" element="led"><bounds x="42.5" y="104" width="3" height="3" /></bezel> |
| 188 | | |
| 189 | | <bezel element="text_s2"><bounds x="48.5" y="108.3" width="3" height="2.5" /></bezel> |
| 190 | | <bezel name="lamp3" element="led"><bounds x="48.5" y="98.5" width="3" height="3" /></bezel> |
| 191 | | <bezel name="lamp4" element="led"><bounds x="48.5" y="104" width="3" height="3" /></bezel> |
| 192 | | |
| 193 | | <bezel element="text_b2"><bounds x="54.5" y="108.3" width="3" height="2.5" /></bezel> |
| 194 | | <bezel name="lamp14" element="led"><bounds x="54.5" y="98.5" width="3" height="3" /></bezel> |
| 195 | | <bezel name="lamp15" element="led"><bounds x="54.5" y="104" width="3" height="3" /></bezel> |
| 196 | | |
| 197 | | |
| 198 | 110 | </view> |
| 199 | 111 | </mamelayout> |
trunk/src/osd/modules/render/draw13.c
| r244665 | r244666 | |
| 402 | 402 | |
| 403 | 403 | target_rect.x = x; |
| 404 | 404 | target_rect.y = y; |
| 405 | | target_rect.w = round_nearest(prim->bounds.x1 - prim->bounds.x0); |
| 406 | | target_rect.h = round_nearest(prim->bounds.y1 - prim->bounds.y0); |
| 405 | target_rect.w = round_nearest(prim->bounds.x1) - round_nearest(prim->bounds.x0); |
| 406 | target_rect.h = round_nearest(prim->bounds.y1) - round_nearest(prim->bounds.y0); |
| 407 | 407 | |
| 408 | 408 | SDL_SetTextureBlendMode(m_texture_id, m_sdl_blendmode); |
| 409 | 409 | set_coloralphamode(m_texture_id, &prim->color); |
| 410 | //printf("%d %d %d %d\n", target_rect.x, target_rect.y, target_rect.w, target_rect.h); |
| 411 | // Arghhh .. Just another bug. SDL_RenderCopy has severe issues with scaling ... |
| 410 | 412 | SDL_RenderCopy(m_renderer->m_sdl_renderer, m_texture_id, NULL, &target_rect); |
| 413 | //SDL_RenderCopyEx(m_renderer->m_sdl_renderer, m_texture_id, NULL, &target_rect, 0, NULL, SDL_FLIP_NONE); |
| 414 | //SDL_RenderCopyEx(m_renderer->m_sdl_renderer, m_texture_id, NULL, NULL, 0, NULL, SDL_FLIP_NONE); |
| 411 | 415 | } |
| 412 | 416 | |
| 413 | 417 | void sdl_info13::render_quad(texture_info *texture, const render_primitive *prim, const int x, const int y) |
| r244665 | r244666 | |
| 854 | 858 | m_setup.dvdx == setup.dvdx && |
| 855 | 859 | m_setup.dudy == setup.dudy && |
| 856 | 860 | m_setup.dvdy == setup.dvdy && |
| 861 | m_setup.startu == setup.startu && |
| 862 | m_setup.startv == setup.startv && |
| 857 | 863 | ((flags() ^ prim.flags) & (PRIMFLAG_BLENDMODE_MASK | PRIMFLAG_TEXFORMAT_MASK)) == 0; |
| 858 | 864 | } |
| 859 | 865 | |
| r244665 | r244666 | |
| 986 | 992 | // compute rotation setup |
| 987 | 993 | //============================================================ |
| 988 | 994 | |
| 995 | inline float signf(const float a) |
| 996 | { |
| 997 | return (0.0f < a) - (a < 0.0f); |
| 998 | } |
| 999 | |
| 989 | 1000 | void quad_setup_data::compute(const render_primitive &prim, const int prescale) |
| 990 | 1001 | { |
| 991 | 1002 | const render_quad_texuv *texcoords = &prim.texcoords; |
| r244665 | r244666 | |
| 1000 | 1011 | else |
| 1001 | 1012 | fscale = 1.0f; |
| 1002 | 1013 | |
| 1003 | | fdudx = (texcoords->tr.u - texcoords->tl.u) / fscale; // a a11 |
| 1004 | | fdvdx = (texcoords->tr.v - texcoords->tl.v) / fscale; // c a21 |
| 1005 | | fdudy = (texcoords->bl.u - texcoords->tl.u) / fscale; // b a12 |
| 1006 | | fdvdy = (texcoords->bl.v - texcoords->tl.v) / fscale; // d a22 |
| 1014 | fdudx = (texcoords->tr.u - texcoords->tl.u); // a a11 |
| 1015 | fdvdx = (texcoords->tr.v - texcoords->tl.v); // c a21 |
| 1016 | fdudy = (texcoords->bl.u - texcoords->tl.u); // b a12 |
| 1017 | fdvdy = (texcoords->bl.v - texcoords->tl.v); // d a22 |
| 1007 | 1018 | |
| 1019 | width = fabs(( fdudx * (float) (texwidth) + fdvdx * (float) (texheight)) ) * fscale; |
| 1020 | height = fabs((fdudy * (float) (texwidth) + fdvdy * (float) (texheight)) ) * fscale; |
| 1021 | |
| 1022 | fdudx = signf(fdudx) / fscale; |
| 1023 | fdvdy = signf(fdvdy) / fscale; |
| 1024 | fdvdx = signf(fdvdx) / fscale; |
| 1025 | fdudy = signf(fdudy) / fscale; |
| 1026 | |
| 1008 | 1027 | #if 0 |
| 1009 | 1028 | printf("tl.u %f tl.v %f\n", texcoords->tl.u, texcoords->tl.v); |
| 1010 | 1029 | printf("tr.u %f tr.v %f\n", texcoords->tr.u, texcoords->tr.v); |
| r244665 | r244666 | |
| 1022 | 1041 | |
| 1023 | 1042 | /* clamp to integers */ |
| 1024 | 1043 | |
| 1025 | | width = fabs((fdudx * (float) (texwidth) + fdvdx * (float) (texheight)) * fscale * fscale); |
| 1026 | | height = fabs((fdudy * (float)(texwidth) + fdvdy * (float) (texheight)) * fscale * fscale); |
| 1044 | rotwidth = round_nearest(width); |
| 1045 | rotheight = round_nearest(height); |
| 1027 | 1046 | |
| 1028 | | rotwidth = width; |
| 1029 | | rotheight = height; |
| 1047 | //printf("%d %d rot %d %d\n", texwidth, texheight, rotwidth, rotheight); |
| 1030 | 1048 | |
| 1031 | 1049 | startu += (dudx + dudy) / 2; |
| 1032 | 1050 | startv += (dvdx + dvdy) / 2; |