Previous 199869 Revisions Next

r36154 Sunday 1st March, 2015 at 01:51:49 UTC by Couriersud
Fix clipping bug (e.g. apparent in neogeo) for video accel. Minor code
changes. [Couriersud]
[src/mame]mame.lst
[src/mame/drivers]ddragon3.c raiden2.c suna8.c
[src/mame/includes]suna8.h
[src/mess/drivers]hh_tms1k.c hh_ucom4.c
[src/mess/layout]ebball.lay
[src/osd/modules/render]draw13.c
[src/osd/sdl]video.c
[src/osd/windows]video.c video.h

trunk/src/mame/drivers/ddragon3.c
r244665r244666
11681168   ROM_LOAD( "28.ic44", 0x0000, 0x0100, CRC(964329ef) SHA1(f26846571a16d27b726f689049deb0188103aadb) )
11691169ROM_END
11701170
1171ROM_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) )
1203ROM_END
1204
1205
1206
1207
1208
12091171ROM_START( ctribej )
12101172   ROM_REGION( 0x80000, "maincpu", 0 ) /* 64k for cpu code */
12111173   ROM_LOAD16_BYTE( "28j16-02.26", 0x00001, 0x20000, CRC(658b8568) SHA1(899682f6ab28b184654c51c1169216974043f1b9) )
r244665r244666
14811443
14821444GAME( 1990, ctribe,   0,        ctribe,   ctribe, driver_device,   0, ROT0, "Technos Japan", "The Combatribes (US)", GAME_SUPPORTS_SAVE )
14831445GAME( 1990, ctribe1,  ctribe,   ctribe,   ctribe, driver_device,   0, ROT0, "Technos Japan", "The Combatribes (US set 1?)", GAME_SUPPORTS_SAVE )
1484GAME( 1990, ctribeo,  ctribe,   ctribe,   ctribe, driver_device,   0, ROT0, "Technos Japan", "The Combatribes (US, older)", GAME_SUPPORTS_SAVE )
14851446GAME( 1990, ctribej,  ctribe,   ctribe,   ctribe, driver_device,   0, ROT0, "Technos Japan", "The Combatribes (Japan)", GAME_SUPPORTS_SAVE )
14861447GAME( 1990, ctribeb,  ctribe,   ctribe,   ctribeb, driver_device,  0, ROT0, "bootleg", "The Combatribes (bootleg set 1)", GAME_SUPPORTS_SAVE )
14871448GAME( 1990, ctribeb2, ctribe,   ctribe,   ctribeb, driver_device,  0, ROT0, "bootleg", "The Combatribes (bootleg set 2)", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/raiden2.c
r244665r244666
20562056   ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341.jed", 0x0000, 0x288, NO_DUMP)
20572057ROM_END
20582058
2059ROM_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)
20652059
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)
2096ROM_END
2097
20982060ROM_START( raiden2u )
20992061   ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */
21002062   ROM_LOAD16_BYTE("1.u0211",  0x000000, 0x80000, CRC(b16df955) SHA1(9b7fd85cf2f2c9fea657f3c38abafa93673b3933) )
r244665r244666
30603022GAME( 1993, raiden2j,   raiden2,  raiden2,  raiden2,  raiden2_state, raiden2,  ROT270, "Seibu Kaihatsu", "Raiden II (Japan)", GAME_SUPPORTS_SAVE ) //  rev 1
30613023GAME( 1993, raiden2i,   raiden2,  raiden2,  raiden2,  raiden2_state, raiden2,  ROT270, "Seibu Kaihatsu", "Raiden II (Italy)", GAME_SUPPORTS_SAVE ) // rev 2
30623024GAME( 1993, raiden2nl,  raiden2,  raiden2,  raiden2,  raiden2_state, raiden2,  ROT270, "Seibu Kaihatsu", "Raiden II (Holland)", GAME_SUPPORTS_SAVE )
3063GAME( 1993, raiden2f,   raiden2,  raiden2,  raiden2,  raiden2_state, raiden2,  ROT270, "Seibu Kaihatsu", "Raiden II (France)", GAME_SUPPORTS_SAVE )
30643025
30653026GAME( 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
30663027GAME( 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
r244665r244666
181889  Spark Man       KRB-16   60136-081   T568009    Yes      Encryption + Protection
191990  Star Fighter    KRB-17   60484-0082  T568009    Yes      Encryption + Protection
202091  Hard Head 2     ?        ?           T568009    -        Encryption + Protection
2192  Brick Zone      KRB-19   70523-0084  Yes        -        Encryption + Protection
2192  Brick Zone      ?        ?           Yes        -        Encryption + Protection
2222--------------------------------------------------------------------------------------
2323
2424Notes:
r244665r244666
128128   return decrypt;
129129}
130130
131DRIVER_INIT_MEMBER(suna8_state, brickzn_common)
131DRIVER_INIT_MEMBER(suna8_state,brickzn)
132132{
133133   m_decrypt = brickzn_decrypt();
134134
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
146DRIVER_INIT_MEMBER(suna8_state,brickzn)
147{
148   DRIVER_INIT_CALL(brickzn_common);
149
150135   // !!!!!! 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
155136
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
164DRIVER_INIT_MEMBER(suna8_state,brickznv5)
165{
166   DRIVER_INIT_CALL(brickzn_common);
167
168   // !!!!!! PATCHES !!!!!!
169137   // To do: ROM banking should be disabled here
170138   m_decrypt[0x11bb] = 0x00; // LD ($C040),A -> NOP
171139   m_decrypt[0x11bc] = 0x00; // LD ($C040),A -> NOP
r244665r244666
177145   m_decrypt[0x1431] = 0xc9; // HALT -> RET
178146   m_decrypt[0x24b5] = 0x00; // HALT -> NOP
179147   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);
180158}
181159
182160DRIVER_INIT_MEMBER(suna8_state,brickznv4)
183161{
184   DRIVER_INIT_CALL(brickzn_common);
185
162   m_decrypt = brickzn_decrypt();
186163   // !!!!!! PATCHES !!!!!!
164
187165   // To do: ROM banking should be disabled here
188166   m_decrypt[0x1190] = 0x00; // LD ($C040),A -> NOP
189167   m_decrypt[0x1191] = 0x00; // LD ($C040),A -> NOP
r244665r244666
195173   m_decrypt[0x1406] = 0xc9; // HALT -> RET
196174   m_decrypt[0x2487] = 0x00; // HALT -> NOP
197175   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);
198186}
199187
200188
r244665r244666
25382526
25392527ROM_START( brickzn )
25402528   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) )
2558ROM_END
2559
2560
2561ROM_START( brickznv5 )
2562   ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 )       /* Main Z80 Code */
25632529   ROM_LOAD( "brickzon.009", 0x00000, 0x08000, CRC(1ea68dea) SHA1(427152a26b062c5e77089de49c1da69369d4d557) )  // V5.0 1992,3,3
25642530   ROM_LOAD( "brickzon.008", 0x10000, 0x20000, CRC(c61540ba) SHA1(08c0ede591b229427b910ca6bb904a6146110be8) )
25652531   ROM_LOAD( "brickzon.007", 0x30000, 0x20000, CRC(ceed12f1) SHA1(9006726b75a65455afb1194298bade8fa2207b4a) )
r244665r244666
25792545   ROM_LOAD( "brickzon.006", 0xa0000, 0x20000, CRC(bbf31081) SHA1(1fdbd0e0853082345225e18df340184a7a604b78) )
25802546ROM_END
25812547
2582
25832548ROM_START( brickznv4 )
25842549   ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 )       /* Main Z80 Code */
25852550   ROM_LOAD( "39",           0x00000, 0x08000, CRC(043380bd) SHA1(7eea7cc7d754815df233879b4a9d3d88eac5b28d) )  // V3.0 1992,1,23
r244665r244666
28812846
28822847GAME( 1991, hardhea2,  0,        hardhea2, hardhea2, suna8_state, hardhea2,  ROT0,  "SunA",                       "Hard Head 2 (v2.0)",          0 )
28832848
2884GAME( 1992, brickzn,   0,        brickzn,  brickzn,  suna8_state, brickzn,   ROT90, "SunA",                       "Brick Zone (v6.0, Joystick)", 0 )
2885GAME( 1992, brickznv5, brickzn,  brickzn,  brickzn,  suna8_state, brickznv5, ROT90, "SunA",                       "Brick Zone (v5.0, Joystick)", 0 )
2849GAME( 1992, brickzn,   0,        brickzn,  brickzn,  suna8_state, brickzn,   ROT90, "SunA",                       "Brick Zone (v5.0, Joystick)", 0 )
28862850GAME( 1992, brickznv4, brickzn,  brickzn,  brickzn,  suna8_state, brickznv4, ROT90, "SunA",                       "Brick Zone (v4.0, Spinner)",  0 )
28872851GAME( 1992, brickzn11, brickzn,  brickzn,  brickzn,  suna8_state, brickzn11, ROT90, "SunA",                       "Brick Zone (v1.1)",  GAME_NOT_WORKING )
trunk/src/mame/includes/suna8.h
r244665r244666
124124   DECLARE_READ8_MEMBER(suna8_banked_spriteram_r);
125125   DECLARE_WRITE8_MEMBER(suna8_spriteram_w);
126126   DECLARE_WRITE8_MEMBER(suna8_banked_spriteram_w);
127   DECLARE_DRIVER_INIT(brickzn_common);
128   DECLARE_DRIVER_INIT(brickznv5);
129127   DECLARE_DRIVER_INIT(brickznv4);
130128   DECLARE_DRIVER_INIT(starfigh);
131129   DECLARE_DRIVER_INIT(hardhea2);
trunk/src/mame/mame.lst
r244665r244666
79007900tstrike         // East Coast Coin Company (Melbourne)
79017901tstrikea        // Game Room
79027902ctribe          // TA-0028 (c) 1990 (US)
7903ctribe1         // TA-0028 (c) 1990 (US)
7904ctribeo         // TA-0028 (c) 1990 (US)
7903ctribe1         // TA-0028 (c) 1990 (US) - Set 1?
79057904ctribej         // TA-0028 (c) 1990 (Japan)
79067905ctribeb         // bootleg
79077906ctribeb2        // bootleg
r244665r244666
84448443raiden2eu       // (c) 1993 Seibu Kaihatsu + Fabtek license
84458444raiden2eua      // (c) 1993 Seibu Kaihatsu + Fabtek license
84468445raiden2nl       // (c) 1993 Seibu Kaihatsu
8447raiden2f      // (c) 1993 Seibu Kaihatsu
84488446raiden2g        // (c) 1993 Seibu Kaihatsu + Tuning license
84498447raiden2dx       // (c) 1993 Seibu Kaihatsu
84508448
r244665r244666
92579255starfigh        // (c) 1990 SunA
92589256hardhea2        // (c) 1991 SunA
92599257brickzn         // (c) 1992 SunA
9260brickznv5       // (c) 1992 SunA
92619258brickznv4       // (c) 1992 SunA
92629259brickzn11       // (c) 1992 SunA
92639260bestbest        // (c) 1994 SunA
trunk/src/mess/drivers/hh_tms1k.c
r244665r244666
1111
1212  serial   device   etc.
1313--------------------------------------------------------------------
14 @CP0904A  TMS0970  1977, Milton Bradley Comp IV
14 @MP0904A  TMS0970  1977, Milton Bradley Comp IV
1515 @MP0905B  TMS0970  1977, Parker Brothers Codename Sector
16 @MP0914   TMS1000  1978, Entex Baseball 1
16 @MP0914   TMS1000  1979, Entex Baseball
1717 @MP1030   TMS1100  1980, APF Mathemagician
1818 @MP3226   TMS1000  1978, Milton Bradley Simon
1919 @MP3403   TMS1100  1978, unknown
r244665r244666
5656#include "amaztron.lh"
5757#include "bankshot.lh"
5858#include "cnsector.lh"
59#include "ebball.lh"
6059#include "elecdet.lh"
6160#include "comp4.lh"
6261#include "mathmagi.lh"
r244665r244666
6867#include "tandy12.lh" // clickable
6968#include "tc4.lh"
7069
70// test-layouts - use external artwork
71#include "ebball.lh"
7172
73
7274class hh_tms1k_state : public driver_device
7375{
7476public:
r244665r244666
296298   m_display_maxy = maxy;
297299
298300   // update current state
299   UINT32 mask = (1 << maxx) - 1;
300301   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;
302303   
303304   display_update();
304305}
r244665r244666
371372
372373void hh_tms1k_state::mathmagi_display()
373374{
374   m_display_maxx = 8;
375375   m_display_maxy = 11;
376   m_display_maxx = 8;
376377
377378   // R0-R7: 7seg leds
378379   for (int y = 0; y < 8; y++)
379380   {
380381      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;
382383   }
383384
384385   // R8: custom math symbols digit
r244665r244666
535536
536537void hh_tms1k_state::amaztron_display()
537538{
538   m_display_maxx = 8;
539539   m_display_maxy = 3;
540   m_display_maxx = 8;
540541
541542   // R8,R9: select digit
542543   for (int y = 0; y < 2; y++)
r244665r244666
801802
802803/***************************************************************************
803804
804  Entex Electronic Baseball (1)
805  Entex Baseball
805806  * 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.
816807
808  NOTE!: MESS external artwork is recommended
817809
818810  lamp translation table: led LDzz from game PCB = MESS lampyx:
819811
r244665r244666
835827   // R8 is a 7seg
836828   m_7seg_mask[8] = 0x7f;
837829   
838   display_matrix(7, 9, ~m_o, m_r);
830   display_matrix(7, 9, m_o, m_r);
839831}
840832
841833READ8_MEMBER(hh_tms1k_state::ebball_read_k)
r244665r244666
867859
868860static INPUT_PORTS_START( ebball )
869861   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 )
875865   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
876866
877867   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 )
879869   PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
880870
881871   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 )
883873   PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
884874
885875   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 )
887877   PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
888878
889879   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 )
891881   PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
892882
893883   PORT_START("IN.5") // Vss!
894884   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 )
896886INPUT_PORTS_END
897887
898888static MACHINE_CONFIG_START( ebball, hh_tms1k_state )
899889
900890   /* 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
902892   MCFG_TMS1XXX_READ_K_CB(READ8(hh_tms1k_state, ebball_read_k))
903893   MCFG_TMS1XXX_WRITE_R_CB(WRITE16(hh_tms1k_state, ebball_write_r))
904894   MCFG_TMS1XXX_WRITE_O_CB(WRITE16(hh_tms1k_state, ebball_write_o))
r244665r244666
13471337
13481338WRITE16_MEMBER(hh_tms1k_state::cnsector_write_r)
13491339{
1350   m_display_maxx = 8;
13511340   m_display_maxy = 7;
1341   m_display_maxx = 8;
13521342
13531343   // R0-R5: select digit (right-to-left)
13541344   for (int y = 0; y < 6; y++)
r244665r244666
15551545
15561546WRITE16_MEMBER(hh_tms1k_state::stopthief_write_r)
15571547{
1558   m_display_maxx = 7;
15591548   m_display_maxy = 3;
1549   m_display_maxx = 7;
15601550
15611551   // 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);
15631553   for (int y = 0; y < m_display_maxy; y++)
15641554   {
15651555      m_7seg_mask[y] = 0x7f;
r244665r244666
22942284CONS( 1979, amaztron, 0, 0, amaztron, amaztron, driver_device, 0, "Coleco", "Amaze-A-Tron", GAME_SUPPORTS_SAVE )
22952285CONS( 1981, tc4, 0, 0, tc4, tc4, driver_device, 0, "Coleco", "Total Control 4", GAME_SUPPORTS_SAVE )
22962286
2297CONS( 1978, ebball, 0, 0, ebball, ebball, driver_device, 0, "Entex", "Electronic Baseball (Entex)", GAME_SUPPORTS_SAVE )
2287CONS( 1979, ebball, 0, 0, ebball, ebball, driver_device, 0, "Entex", "Baseball (Entex)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
22982288
22992289CONS( 1979, elecdet, 0, 0, elecdet, elecdet, driver_device, 0, "Ideal", "Electronic Detective", GAME_SUPPORTS_SAVE )
23002290
trunk/src/mess/drivers/hh_ucom4.c
r244665r244666
66
77
88
9  serial  device  etc.
10-----------------------------------------------
9  serial  device  etc
10------------------------------------------
1111 @048     uPD552  1980, Tomy Tennis
1212 *085     uPD650  1980, Roland TR-808
1313  102     uPD553  1981, Bandai Block Out
r244665r244666
8686   void tmtennis_set_clock();
8787   DECLARE_INPUT_CHANGED_MEMBER(tmtennis_difficulty_switch);
8888   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);
9389   
9490   DECLARE_READ8_MEMBER(alnchase_input_r);
9591   DECLARE_WRITE8_MEMBER(alnchase_display_w);
r244665r244666
190186   m_display_maxy = maxy;
191187
192188   // update current state
193   UINT32 mask = (1 << maxx) - 1;
194189   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;
196191   
197192   display_update();
198193}
r244665r244666
236231
237232WRITE8_MEMBER(hh_ucom4_state::edracula_grid_w)
238233{
239   // ports C,D: vfd matrix grid
234   // port C/D: vfd matrix grid
240235   int shift = (offset - NEC_UCOM4_PORTC) * 4;
241236   m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
242237
r244665r244666
245240
246241WRITE8_MEMBER(hh_ucom4_state::edracula_plate_w)
247242{
248   // ports E-H,I01: vfd matrix plate
243   // port E/F/G/H/I01: vfd matrix plate
249244   int shift = (offset - NEC_UCOM4_PORTE) * 4;
250245   m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
251246
r244665r244666
262257
263258
264259static INPUT_PORTS_START( edracula )
265   PORT_START("IN.0") // port A
260   PORT_START("IN.0")
266261   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT )
267262   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START )
268263   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 )
269264   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
270265
271   PORT_START("IN.1") // port B
266   PORT_START("IN.1")
272267   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
273268   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
274269   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
r244665r244666
325320
326321READ8_MEMBER(hh_ucom4_state::tmtennis_input_r)
327322{
328   // ports A,B: buttons
323   // port A/B: buttons
329324   return ~read_inputs(2) >> (offset*4);
330325}
331326
332WRITE8_MEMBER(hh_ucom4_state::tmtennis_grid_w)
327WRITE8_MEMBER(hh_ucom4_state::tmtennis_port_e_w)
333328{
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);
339334}
340335
341336WRITE8_MEMBER(hh_ucom4_state::tmtennis_plate_w)
342337{
343   // ports C-F: vfd matrix plate
338   // port C/D/F: vfd matrix plate
344339   if (offset == NEC_UCOM4_PORTF) offset--;
345340   int shift = (offset - NEC_UCOM4_PORTC) * 4;
346341   m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
r244665r244666
348343   display_matrix(12, 12, m_plate, m_grid);
349344}
350345
351WRITE8_MEMBER(hh_ucom4_state::tmtennis_port_e_w)
346WRITE8_MEMBER(hh_ucom4_state::tmtennis_grid_w)
352347{
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);
358353}
359354
360355
356
361357/* Pro-Tennis physical button layout and labels is like this:
362358
363359    [SERVE] [1] [2] [3]       [3] [2] [1] [SERVE]
r244665r244666
439435   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
440436MACHINE_CONFIG_END
441437
442
443
444438/***************************************************************************
445439
446440  Tomy(tronic) Pac-Man (manufactured in Japan)
r244665r244666
459453
460454***************************************************************************/
461455
462WRITE8_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
471WRITE8_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
480WRITE8_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
489456static 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 )
501457INPUT_PORTS_END
502458
503459
r244665r244666
505461
506462   /* basic machine hardware */
507463   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))
517464
518   MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_ucom4_state, display_decay_tick, attotime::from_msec(1))
519465   MCFG_DEFAULT_LAYOUT(layout_tmpacman)
520466
521467   /* no video! */
r244665r244666
546492
547493***************************************************************************/
548494
495
496
549497READ8_MEMBER(hh_ucom4_state::alnchase_input_r)
550498{
551499   // port A: buttons
r244665r244666
556504{
557505   if (offset <= NEC_UCOM4_PORTE)
558506   {
559      // ports C,D,E0: vfd matrix grid
507      // C/D/E0: vfd matrix grid
560508      int shift = (offset - NEC_UCOM4_PORTC) * 4;
561509      m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
562510
r244665r244666
567515
568516   if (offset >= NEC_UCOM4_PORTE)
569517   {
570      // ports F-I,E23: vfd matrix plate
518      // E23/F/G/H/I: vfd matrix plate
571519      int shift = (offset - NEC_UCOM4_PORTE) * 4;
572520      m_plate = ((m_plate << 2 & ~(0xf << shift)) | (data << shift)) >> 2;
573521   }
r244665r244666
577525
578526WRITE8_MEMBER(hh_ucom4_state::alnchase_port_e_w)
579527{
528   alnchase_display_w(space, offset, data);
529
580530   // E1: speaker out
581531   m_speaker->level_w(data >> 1 & 1);
582
583   alnchase_display_w(space, offset, data);
584532}
585533
586534/* physical button layout and labels is like this:
trunk/src/mess/layout/ebball.lay
r244665r244666
44<!-- define elements -->
55
66   <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>
127
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
538   <element name="digit" defstate="0">
549      <led7seg><color red="1.0" green="0.20" blue="0.22" /></led7seg>
5510   </element>
56
5711   <element name="led" defstate="0">
5812      <disk state="0"><color red="0.2" green="0.04" blue="0.05" /></disk>
5913      <disk state="1"><color red="1.0" green="0.20" blue="0.22" /></disk>
6014   </element>
6115
6216
63
6417<!-- build screen -->
6518
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" />
6821      <bezel element="static_black">
69         <bounds left="0" right="100" top="0" bottom="114" />
22         <bounds left="0" right="64" top="0" bottom="64" />
7023      </bezel>
7124
72   <!-- outer bezel -->
25      <bezel name="digit8" element="digit"><bounds x="0" y="0" width="10" height="15" /></bezel>
7326
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 -->
7628
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>
7836
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>
8244
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>
8752
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>
9160
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>
9268
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>
9476
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>
10184
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>
10392
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>
110100
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>
117108
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>
123109
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
198110   </view>
199111</mamelayout>
trunk/src/osd/modules/render/draw13.c
r244665r244666
402402
403403   target_rect.x = x;
404404   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);
407407
408408   SDL_SetTextureBlendMode(m_texture_id, m_sdl_blendmode);
409409   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 ...
410412   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);
411415}
412416
413417void sdl_info13::render_quad(texture_info *texture, const render_primitive *prim, const int x, const int y)
r244665r244666
854858         m_setup.dvdx == setup.dvdx &&
855859         m_setup.dudy == setup.dudy &&
856860         m_setup.dvdy == setup.dvdy &&
861         m_setup.startu == setup.startu &&
862         m_setup.startv == setup.startv &&
857863         ((flags() ^ prim.flags) & (PRIMFLAG_BLENDMODE_MASK | PRIMFLAG_TEXFORMAT_MASK)) == 0;
858864}
859865
r244665r244666
986992//  compute rotation setup
987993//============================================================
988994
995inline float signf(const float a)
996{
997   return (0.0f < a) - (a < 0.0f);
998}
999
9891000void quad_setup_data::compute(const render_primitive &prim, const int prescale)
9901001{
9911002   const render_quad_texuv *texcoords = &prim.texcoords;
r244665r244666
10001011   else
10011012      fscale = 1.0f;
10021013
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
10071018
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
10081027#if 0
10091028   printf("tl.u %f tl.v %f\n", texcoords->tl.u, texcoords->tl.v);
10101029   printf("tr.u %f tr.v %f\n", texcoords->tr.u, texcoords->tr.v);
r244665r244666
10221041
10231042   /* clamp to integers */
10241043
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);
10271046
1028   rotwidth = width;
1029   rotheight = height;
1047   //printf("%d %d rot %d %d\n", texwidth, texheight, rotwidth, rotheight);
10301048
10311049   startu += (dudx + dudy) / 2;
10321050   startv += (dvdx + dvdy) / 2;
trunk/src/osd/sdl/video.c
r244665r244666
587587   // global options: extract the data
588588   video_config.windowed      = options().window();
589589   video_config.prescale      = options().prescale();
590   video_config.filter        = options().filter();
590591   video_config.keepaspect    = options().keep_aspect();
591592   video_config.numscreens    = options().numscreens();
592593   video_config.fullstretch   = options().uneven_stretch();
r244665r244666
650651      video_config.syncrefresh = 0;
651652   }
652653
653   #if (USE_OPENGL || SDLMAME_SDL2)
654   video_config.filter        = options().filter();
655   #endif
656
657654   if (video_config.prescale < 1 || video_config.prescale > 3)
658655   {
659656      osd_printf_warning("Invalid prescale option, reverting to '1'\n");
trunk/src/osd/windows/video.c
r244665r244666
362362   // global options: extract the data
363363   video_config.windowed      = options().window();
364364   video_config.prescale      = options().prescale();
365   video_config.filter        = options().filter();
365366   video_config.keepaspect    = options().keep_aspect();
366367   video_config.numscreens    = options().numscreens();
367368
r244665r244666
411412   // ddraw options: extract the data
412413   video_config.hwstretch     = options().hwstretch();
413414
414   // d3d options: extract the data
415   video_config.filter        = options().filter();
416   if (video_config.prescale == 0)
415   if (video_config.prescale < 1 || video_config.prescale > 3)
416   {
417      osd_printf_warning("Invalid prescale option, reverting to '1'\n");
417418      video_config.prescale = 1;
418
419   }
419420   #if (USE_OPENGL)
420421      // default to working video please
421422      video_config.forcepow2texture = options().gl_force_pow2_texture();
trunk/src/osd/windows/video.h
r244665r244666
1010#define __WIN_VIDEO__
1111
1212#include "render.h"
13//#include "modules/osdwindow.h"
1413
1514//============================================================
1615//  CONSTANTS


Previous 199869 Revisions Next


© 1997-2024 The MAME Team