This commit is contained in:
couriersud 2015-03-01 02:52:02 +01:00
commit c8e16cc06d
8 changed files with 427 additions and 158 deletions

View File

@ -1168,6 +1168,44 @@ ROM_START( ctribe1 )
ROM_LOAD( "28.ic44", 0x0000, 0x0100, CRC(964329ef) SHA1(f26846571a16d27b726f689049deb0188103aadb) )
ROM_END
ROM_START( ctribeo ) // only main program code differs from ctribe1 set
ROM_REGION( 0x80000, "maincpu", 0 ) /* 64k for cpu code */
ROM_LOAD16_BYTE( "28a16-1.ic26", 0x00001, 0x20000, CRC(d108f36f) SHA1(af53fa441b9ddfc639abb573864a9b351633c6B7) )
ROM_LOAD16_BYTE( "28a15-1.ic25", 0x00000, 0x20000, CRC(3f5693a3) SHA1(2d4516506ad1d68ac45242fe149bba1b4b53eb45) )
ROM_LOAD16_BYTE( "28j17-0.104", 0x40001, 0x10000, CRC(8c2c6dbd) SHA1(b99b9be6e0bdc8340fedd258819c4df587926a84) )
/* No EVEN rom! */
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound cpu code */
ROM_LOAD( "28a10-0.ic89", 0x00000, 0x8000, CRC(4346de13) SHA1(67c6de90ba31a325f03e64d28c9391a315ee359c) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Background */
ROM_LOAD16_BYTE( "28j7-0.ic11", 0x000001, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) )
ROM_LOAD16_BYTE( "28j6-0.ic13", 0x000000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) )
ROM_LOAD16_BYTE( "28j5-0.ic12", 0x080001, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) )
ROM_LOAD16_BYTE( "28j4-0.ic14", 0x080000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) )
ROM_REGION( 0x400000, "gfx2", 0 ) /* Sprites */
ROM_LOAD( "28j3-0.ic77", 0x000000, 0x80000, CRC(1ac2a461) SHA1(17436f5dcf29041ca5f470dfae538e4fc12153cc) )
ROM_LOAD( "28a14-0.ic60", 0x080000, 0x10000, CRC(972faddb) SHA1(f2b211e8f8301667e6c9a3ce9612e39b16e66a67) )
ROM_LOAD( "28j2-0.ic78", 0x100000, 0x80000, CRC(8c796707) SHA1(7417ad0413083876ed65a8612845ccb0d2717530) )
ROM_LOAD( "28a13-0.ic61", 0x180000, 0x10000, CRC(eb3ab374) SHA1(db66cb7976c111fa76a3a211e96ad1d7b78ce0ad) )
ROM_LOAD( "28j1-0.ic97", 0x200000, 0x80000, CRC(1c9badbd) SHA1(d28f6d684d88448eaa3feae0bba2f5a836d89bd7) )
ROM_LOAD( "28a12-0.ic85", 0x280000, 0x10000, CRC(c602ac97) SHA1(44440739636b684c6dcac837f59664120c9ba5f3) )
ROM_LOAD( "28j0-0.ic98", 0x300000, 0x80000, CRC(ba73c49e) SHA1(830099027ede1f7c56bb0bf3cdef3018b92e0b87) )
ROM_LOAD( "28a11-0.ic86", 0x380000, 0x10000, CRC(4da1d8e5) SHA1(568e9e8d00f1b1ca27c28df5fc0ffc74ad91da7e) )
ROM_REGION( 0x040000, "oki", 0 ) /* ADPCM Samples */
ROM_LOAD( "28j9-0.ic83", 0x00000, 0x20000, CRC(f92a7f4a) SHA1(3717ef64876be9ada378b449749918ce9072073a) )
ROM_LOAD( "28j8-0.ic82", 0x20000, 0x20000, CRC(1a3a0b39) SHA1(8847530027cf4be03ffbc6d78dee97b459d03a04) )
ROM_REGION( 0x0100, "proms", 0 )
ROM_LOAD( "28.ic44", 0x0000, 0x0100, CRC(964329ef) SHA1(f26846571a16d27b726f689049deb0188103aadb) )
ROM_END
ROM_START( ctribej )
ROM_REGION( 0x80000, "maincpu", 0 ) /* 64k for cpu code */
ROM_LOAD16_BYTE( "28j16-02.26", 0x00001, 0x20000, CRC(658b8568) SHA1(899682f6ab28b184654c51c1169216974043f1b9) )
@ -1443,6 +1481,7 @@ GAME( 1990, ddragon3b,ddragon3, ddragon3b,ddragon3b, driver_device,0, ROT0, "boo
GAME( 1990, ctribe, 0, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (US)", GAME_SUPPORTS_SAVE )
GAME( 1990, ctribe1, ctribe, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (US set 1?)", GAME_SUPPORTS_SAVE )
GAME( 1990, ctribeo, ctribe, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (US, older)", GAME_SUPPORTS_SAVE )
GAME( 1990, ctribej, ctribe, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (Japan)", GAME_SUPPORTS_SAVE )
GAME( 1990, ctribeb, ctribe, ctribe, ctribeb, driver_device, 0, ROT0, "bootleg", "The Combatribes (bootleg set 1)", GAME_SUPPORTS_SAVE )
GAME( 1990, ctribeb2, ctribe, ctribe, ctribeb, driver_device, 0, ROT0, "bootleg", "The Combatribes (bootleg set 2)", GAME_SUPPORTS_SAVE )

View File

@ -2056,6 +2056,44 @@ ROM_START( raiden2nl )
ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341.jed", 0x0000, 0x288, NO_DUMP)
ROM_END
ROM_START( raiden2f ) // original board with serial # 12476 that matches raiden2nl set except the region and Audio CPU
ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */
ROM_LOAD16_BYTE("1_u0211.bin", 0x000000, 0x80000, CRC(53be3dd0) SHA1(304d118423e4085eea3b883bd625d90d21bb2054) ) // == raiden2nl
ROM_RELOAD(0x100000, 0x80000)
ROM_LOAD16_BYTE("seibu2_u0212.bin", 0x000001, 0x80000, CRC(8dcd8a8d) SHA1(be0681d5867d8b4f5fb78946a896d89827a71e8e) )
ROM_RELOAD(0x100001, 0x80000)
ROM_REGION( 0x40000, "user2", 0 ) /* COPX */
ROM_LOAD( "copx-d2.u0313", 0x00000, 0x40000, CRC(a6732ff9) SHA1(c4856ec77869d9098da24b1bb3d7d58bb74b4cda) ) /* Soldered MASK ROM */
ROM_REGION( 0x20000, "audiocpu", ROMREGION_ERASEFF ) /* 64k code for sound Z80 */
ROM_LOAD( "seibu5_u1110.bin", 0x000000, 0x08000, CRC(f51a28f9) SHA1(7ae2e2ba0c8159a544a8fd2bb0c2c694ba849302) ) // == raiden2
ROM_CONTINUE(0x10000,0x8000)
ROM_COPY( "audiocpu", 0, 0x018000, 0x08000 )
ROM_REGION( 0x020000, "gfx1", 0 ) /* chars */
ROM_LOAD( "7_u0724.bin", 0x000000, 0x020000, CRC(c9ec9469) SHA1(a29f480a1bee073be7a177096ef58e1887a5af24) ) /* PCB silkscreened FX0 */
ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */
ROM_LOAD( "raiden_2_seibu_bg-1.u0714", 0x000000, 0x200000, CRC(e61ad38e) SHA1(63b06cd38db946ad3fc5c1482dc863ef80b58fec) ) /* Soldered MASK ROM */
ROM_LOAD( "raiden_2_seibu_bg-2.u075", 0x200000, 0x200000, CRC(a694a4bb) SHA1(39c2614d0effc899fe58f735604283097769df77) ) /* Soldered MASK ROM */
ROM_REGION32_LE( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */
ROM_LOAD32_WORD( "raiden_2_seibu_obj-1.u0811", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) /* Soldered MASK ROM */
ROM_LOAD32_WORD( "raiden_2_seibu_obj-2.u082", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) /* Soldered MASK ROM */
ROM_LOAD32_WORD( "raiden_2_seibu_obj-3.u0837", 0x400000, 0x200000, CRC(897a0322) SHA1(abb2737a2446da5b364fc2d96524b43d808f4126) ) /* Soldered MASK ROM */
ROM_LOAD32_WORD( "raiden_2_seibu_obj-4.u0836", 0x400002, 0x200000, CRC(b676e188) SHA1(19cc838f1ccf9c4203cd0e5365e5d99ff3a4ff0f) ) /* Soldered MASK ROM */
ROM_REGION( 0x100000, "oki1", 0 ) /* ADPCM samples */
ROM_LOAD( "6_u1017.bin", 0x00000, 0x40000, CRC(fb0fca23) SHA1(4b2217b121a66c5ab6015537609cf908ffedaf86) ) /* PCB silkscreened VOICE1 */
ROM_REGION( 0x100000, "oki2", 0 ) /* ADPCM samples */
ROM_LOAD( "raiden_2_pcm.u1018", 0x00000, 0x40000, CRC(8cf0d17e) SHA1(0fbe0b1e1ca5360c7c8329331408e3d799b4714c) ) /* Soldered MASK ROM */
ROM_REGION( 0x10000, "pals", 0 ) /* PALS */
ROM_LOAD( "jj4b02__ami18cv8-15.u0342.jed", 0x0000, 0x288, NO_DUMP)
ROM_LOAD( "jj4b01__mmipal16l8bcn.u0341.jed", 0x0000, 0x288, NO_DUMP)
ROM_END
ROM_START( raiden2u )
ROM_REGION( 0x200000, "maincpu", 0 ) /* v30 main cpu */
@ -3022,6 +3060,7 @@ GAME( 1993, raiden2sw, raiden2, raiden2, raiden2, raiden2_state, raiden2, R
GAME( 1993, raiden2j, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (Japan)", GAME_SUPPORTS_SAVE ) // rev 1
GAME( 1993, raiden2i, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (Italy)", GAME_SUPPORTS_SAVE ) // rev 2
GAME( 1993, raiden2nl, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (Holland)", GAME_SUPPORTS_SAVE )
GAME( 1993, raiden2f, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (France)", GAME_SUPPORTS_SAVE )
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
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

View File

@ -18,7 +18,7 @@ Year + Game Game PCB Epoxy CPU Samples Notes
89 Spark Man KRB-16 60136-081 T568009 Yes Encryption + Protection
90 Star Fighter KRB-17 60484-0082 T568009 Yes Encryption + Protection
91 Hard Head 2 ? ? T568009 - Encryption + Protection
92 Brick Zone ? ? Yes - Encryption + Protection
92 Brick Zone KRB-19 70523-0084 Yes - Encryption + Protection
--------------------------------------------------------------------------------------
Notes:
@ -128,24 +128,10 @@ UINT8 *suna8_state::brickzn_decrypt()
return decrypt;
}
DRIVER_INIT_MEMBER(suna8_state,brickzn)
DRIVER_INIT_MEMBER(suna8_state, brickzn_common)
{
m_decrypt = brickzn_decrypt();
// !!!!!! PATCHES !!!!!!
// To do: ROM banking should be disabled here
m_decrypt[0x11bb] = 0x00; // LD ($C040),A -> NOP
m_decrypt[0x11bc] = 0x00; // LD ($C040),A -> NOP
m_decrypt[0x11bd] = 0x00; // LD ($C040),A -> NOP
m_decrypt[0x3349] = 0xc9; // RET Z -> RET (to avoid: jp $C800)
// NMI enable / source??
m_decrypt[0x1431] = 0xc9; // HALT -> RET
m_decrypt[0x24b5] = 0x00; // HALT -> NOP
m_decrypt[0x2593] = 0x00; // HALT -> NOP
// Non-banked opcodes
address_space &space = m_maincpu->space(AS_PROGRAM);
space.set_decrypted_region(0x0000, 0x7fff, m_decrypt);
@ -157,11 +143,47 @@ DRIVER_INIT_MEMBER(suna8_state,brickzn)
membank("bank1")->configure_decrypted_entries(16, 16, m_decrypt + 0x10000, 0x4000);
}
DRIVER_INIT_MEMBER(suna8_state,brickzn)
{
DRIVER_INIT_CALL(brickzn_common);
// !!!!!! PATCHES !!!!!!
// To do: ROM banking should be disabled here
m_decrypt[0x11cc] = 0x00; // LD ($C040),A -> NOP
m_decrypt[0x11cd] = 0x00; // LD ($C040),A -> NOP
m_decrypt[0x11ce] = 0x00; // LD ($C040),A -> NOP
m_decrypt[0x335b] = 0xc9; // RET Z -> RET (to avoid: jp $C800)
// NMI enable / source??
m_decrypt[0x1442] = 0xc9; // HALT -> RET
m_decrypt[0x24C6] = 0x00; // HALT -> NOP
m_decrypt[0x25A4] = 0x00; // HALT -> NOP
}
DRIVER_INIT_MEMBER(suna8_state,brickznv5)
{
DRIVER_INIT_CALL(brickzn_common);
// !!!!!! PATCHES !!!!!!
// To do: ROM banking should be disabled here
m_decrypt[0x11bb] = 0x00; // LD ($C040),A -> NOP
m_decrypt[0x11bc] = 0x00; // LD ($C040),A -> NOP
m_decrypt[0x11bd] = 0x00; // LD ($C040),A -> NOP
m_decrypt[0x3349] = 0xc9; // RET Z -> RET (to avoid: jp $C800)
// NMI enable / source??
m_decrypt[0x1431] = 0xc9; // HALT -> RET
m_decrypt[0x24b5] = 0x00; // HALT -> NOP
m_decrypt[0x2593] = 0x00; // HALT -> NOP
}
DRIVER_INIT_MEMBER(suna8_state,brickznv4)
{
m_decrypt = brickzn_decrypt();
// !!!!!! PATCHES !!!!!!
DRIVER_INIT_CALL(brickzn_common);
// !!!!!! PATCHES !!!!!!
// To do: ROM banking should be disabled here
m_decrypt[0x1190] = 0x00; // LD ($C040),A -> NOP
m_decrypt[0x1191] = 0x00; // LD ($C040),A -> NOP
@ -173,16 +195,6 @@ DRIVER_INIT_MEMBER(suna8_state,brickznv4)
m_decrypt[0x1406] = 0xc9; // HALT -> RET
m_decrypt[0x2487] = 0x00; // HALT -> NOP
m_decrypt[0x256c] = 0x00; // HALT -> NOP
// Non-banked opcodes
address_space &space = m_maincpu->space(AS_PROGRAM);
space.set_decrypted_region(0x0000, 0x7fff, m_decrypt);
// Data banks: 00-0f normal data decryption, 10-1f alternate data decryption:
membank("bank1")->configure_entries(0, 16*2, memregion("maincpu")->base() + 0x10000, 0x4000);
// Opcode banks: 00-1f normal opcode decryption:
membank("bank1")->configure_decrypted_entries(0, 16, m_decrypt + 0x10000, 0x4000);
membank("bank1")->configure_decrypted_entries(16, 16, m_decrypt + 0x10000, 0x4000);
}
@ -2525,6 +2537,28 @@ Large epoxy(?) module near the cpu's.
***************************************************************************/
ROM_START( brickzn )
ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 ) /* Main Z80 Code */
ROM_LOAD( "P9.M7", 0x00000, 0x08000, CRC(bd7a3c01) SHA1(05fb2836f1c8d8818847ccb76e7b477f13a9929b) ) // V6.0 1992,3,16
ROM_LOAD( "P8.K7", 0x10000, 0x20000, CRC(ec3e266d) SHA1(4441a5ae88e51353f6d1eb22c00becb0a7ecea6e) )
ROM_LOAD( "P7.I7", 0x30000, 0x20000, CRC(4dd88631) SHA1(0dbcaf3420dad82c3ed94d231948fe69b044b786) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* Music Z80 Code */
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
ROM_REGION( 0x10000, "pcm", 0 ) /* PCM Z80 Code */
ROM_LOAD( "11.N10", 0x00000, 0x10000, CRC(6c54161a) SHA1(ea216d9f45b441acd56b9fed81a83e3bfe299fbd) )
ROM_REGION( 0xc0000, "gfx1", ROMREGION_INVERT ) /* Sprites */
ROM_LOAD( "P5.M5", 0x00000, 0x20000, CRC(ca59e2f7) SHA1(dbb9f2b316a44f760768f0430798e0c4e9e8f3ff) )
ROM_LOAD( "P4.L5", 0x20000, 0x20000, CRC(cc8fb330) SHA1(fd263f65b81acbfc00fe339c461068ab160c04af) )
ROM_LOAD( "P3.K5", 0x40000, 0x20000, CRC(2e4f194b) SHA1(86da1a582ea274f2af96d3e3e2ac72bcaf3638cb) )
ROM_LOAD( "P2.I5", 0x60000, 0x20000, CRC(592d45ce) SHA1(8ce9236b7deba6cf00999680314ac04eff624a6d) )
ROM_LOAD( "P1.H5", 0x80000, 0x20000, CRC(7a6bb583) SHA1(ff7018c07182fce0ff6954bbe3b08fa5105f6be0) )
ROM_LOAD( "P6.H7", 0xa0000, 0x20000, CRC(bbf31081) SHA1(1fdbd0e0853082345225e18df340184a7a604b78) )
ROM_END
ROM_START( brickznv5 )
ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 ) /* Main Z80 Code */
ROM_LOAD( "brickzon.009", 0x00000, 0x08000, CRC(1ea68dea) SHA1(427152a26b062c5e77089de49c1da69369d4d557) ) // V5.0 1992,3,3
ROM_LOAD( "brickzon.008", 0x10000, 0x20000, CRC(c61540ba) SHA1(08c0ede591b229427b910ca6bb904a6146110be8) )
@ -2545,6 +2579,7 @@ ROM_START( brickzn )
ROM_LOAD( "brickzon.006", 0xa0000, 0x20000, CRC(bbf31081) SHA1(1fdbd0e0853082345225e18df340184a7a604b78) )
ROM_END
ROM_START( brickznv4 )
ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 ) /* Main Z80 Code */
ROM_LOAD( "39", 0x00000, 0x08000, CRC(043380bd) SHA1(7eea7cc7d754815df233879b4a9d3d88eac5b28d) ) // V3.0 1992,1,23
@ -2846,6 +2881,7 @@ GAME( 1990, starfigh, 0, starfigh, starfigh, suna8_state, starfigh, ROT
GAME( 1991, hardhea2, 0, hardhea2, hardhea2, suna8_state, hardhea2, ROT0, "SunA", "Hard Head 2 (v2.0)", 0 )
GAME( 1992, brickzn, 0, brickzn, brickzn, suna8_state, brickzn, ROT90, "SunA", "Brick Zone (v5.0, Joystick)", 0 )
GAME( 1992, brickzn, 0, brickzn, brickzn, suna8_state, brickzn, ROT90, "SunA", "Brick Zone (v6.0, Joystick)", 0 )
GAME( 1992, brickznv5, brickzn, brickzn, brickzn, suna8_state, brickznv5, ROT90, "SunA", "Brick Zone (v5.0, Joystick)", 0 )
GAME( 1992, brickznv4, brickzn, brickzn, brickzn, suna8_state, brickznv4, ROT90, "SunA", "Brick Zone (v4.0, Spinner)", 0 )
GAME( 1992, brickzn11, brickzn, brickzn, brickzn, suna8_state, brickzn11, ROT90, "SunA", "Brick Zone (v1.1)", GAME_NOT_WORKING )

View File

@ -124,6 +124,8 @@ public:
DECLARE_READ8_MEMBER(suna8_banked_spriteram_r);
DECLARE_WRITE8_MEMBER(suna8_spriteram_w);
DECLARE_WRITE8_MEMBER(suna8_banked_spriteram_w);
DECLARE_DRIVER_INIT(brickzn_common);
DECLARE_DRIVER_INIT(brickznv5);
DECLARE_DRIVER_INIT(brickznv4);
DECLARE_DRIVER_INIT(starfigh);
DECLARE_DRIVER_INIT(hardhea2);

View File

@ -7900,7 +7900,8 @@ darktowr // Game Room
tstrike // East Coast Coin Company (Melbourne)
tstrikea // Game Room
ctribe // TA-0028 (c) 1990 (US)
ctribe1 // TA-0028 (c) 1990 (US) - Set 1?
ctribe1 // TA-0028 (c) 1990 (US)
ctribeo // TA-0028 (c) 1990 (US)
ctribej // TA-0028 (c) 1990 (Japan)
ctribeb // bootleg
ctribeb2 // bootleg
@ -8443,6 +8444,7 @@ raiden2ea // (c) 1993 Seibu Kaihatsu
raiden2eu // (c) 1993 Seibu Kaihatsu + Fabtek license
raiden2eua // (c) 1993 Seibu Kaihatsu + Fabtek license
raiden2nl // (c) 1993 Seibu Kaihatsu
raiden2f // (c) 1993 Seibu Kaihatsu
raiden2g // (c) 1993 Seibu Kaihatsu + Tuning license
raiden2dx // (c) 1993 Seibu Kaihatsu
@ -9255,6 +9257,7 @@ sparkmana // (c) 1989 SunA
starfigh // (c) 1990 SunA
hardhea2 // (c) 1991 SunA
brickzn // (c) 1992 SunA
brickznv5 // (c) 1992 SunA
brickznv4 // (c) 1992 SunA
brickzn11 // (c) 1992 SunA
bestbest // (c) 1994 SunA

View File

@ -11,9 +11,9 @@
serial device etc.
--------------------------------------------------------------------
@MP0904A TMS0970 1977, Milton Bradley Comp IV
@CP0904A TMS0970 1977, Milton Bradley Comp IV
@MP0905B TMS0970 1977, Parker Brothers Codename Sector
@MP0914 TMS1000 1979, Entex Baseball
@MP0914 TMS1000 1978, Entex Baseball 1
@MP1030 TMS1100 1980, APF Mathemagician
@MP3226 TMS1000 1978, Milton Bradley Simon
@MP3403 TMS1100 1978, unknown
@ -56,6 +56,7 @@
#include "amaztron.lh"
#include "bankshot.lh"
#include "cnsector.lh"
#include "ebball.lh"
#include "elecdet.lh"
#include "comp4.lh"
#include "mathmagi.lh"
@ -67,9 +68,6 @@
#include "tandy12.lh" // clickable
#include "tc4.lh"
// test-layouts - use external artwork
#include "ebball.lh"
class hh_tms1k_state : public driver_device
{
@ -298,8 +296,9 @@ void hh_tms1k_state::display_matrix(int maxx, int maxy, UINT32 setx, UINT32 sety
m_display_maxy = maxy;
// update current state
UINT32 mask = (1 << maxx) - 1;
for (int y = 0; y < maxy; y++)
m_display_state[y] = (sety >> y & 1) ? setx : 0;
m_display_state[y] = (sety >> y & 1) ? (setx & mask) : 0;
display_update();
}
@ -372,14 +371,14 @@ INPUT_CHANGED_MEMBER(hh_tms1k_state::tms0980_power_button)
void hh_tms1k_state::mathmagi_display()
{
m_display_maxy = 11;
m_display_maxx = 8;
m_display_maxy = 11;
// R0-R7: 7seg leds
for (int y = 0; y < 8; y++)
{
m_7seg_mask[y] = 0x7f;
m_display_state[y] = (m_r >> y & 1) ? ((m_o >> 1 & 0x7f) | (m_o << 7 & 0x80)) : 0;
m_display_state[y] = (m_r >> y & 1) ? (m_o >> 1) : 0;
}
// R8: custom math symbols digit
@ -536,8 +535,8 @@ MACHINE_CONFIG_END
void hh_tms1k_state::amaztron_display()
{
m_display_maxy = 3;
m_display_maxx = 8;
m_display_maxy = 3;
// R8,R9: select digit
for (int y = 0; y < 2; y++)
@ -802,10 +801,19 @@ MACHINE_CONFIG_END
/***************************************************************************
Entex Baseball
Entex Electronic Baseball (1)
* TMS1000NLP MP0914 (die labeled MP0914A)
This is a handheld LED baseball game. One player controls the batter, the CPU
or other player controls the pitcher. Pitcher throw buttons are on a 'joypad'
obtained from a compartment in the back. Player scores are supposed to be
written down manually, the game doesn't save scores or innings (this annoyance
was resolved in the sequel). For more information, refer to the official manual.
The overlay graphic is known to have 2 versions: one where the field players
are denoted by words ("left", "center", "short", etc), and an alternate one
with little guys drawn next to the LEDs.
NOTE!: MESS external artwork is recommended
lamp translation table: led LDzz from game PCB = MESS lampyx:
@ -827,7 +835,7 @@ void hh_tms1k_state::ebball_display()
// R8 is a 7seg
m_7seg_mask[8] = 0x7f;
display_matrix(7, 9, m_o, m_r);
display_matrix(7, 9, ~m_o, m_r);
}
READ8_MEMBER(hh_tms1k_state::ebball_read_k)
@ -859,36 +867,38 @@ WRITE16_MEMBER(hh_tms1k_state::ebball_write_o)
static INPUT_PORTS_START( ebball )
PORT_START("IN.0") // R1
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Change Up")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START ) PORT_NAME("Change Sides")
PORT_CONFNAME( 0x04, 0x04, "Pitcher" )
PORT_CONFSETTING( 0x04, "Auto" )
PORT_CONFSETTING( 0x00, "Manual" )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.1") // R2
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Fast Ball")
PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.2") // R3
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(2) PORT_NAME("P2 Knuckler")
PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.3") // R4
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON6 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("P2 Curve")
PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.4") // R5
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON7 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_NAME("P2 Slider")
PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.5") // Vss!
PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON8 )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Batter")
INPUT_PORTS_END
static MACHINE_CONFIG_START( ebball, hh_tms1k_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", TMS1000, 350000) // RC osc. R=43K, C=47pf -> ~350kHz
MCFG_CPU_ADD("maincpu", TMS1000, 375000) // RC osc. R=43K, C=47pf -> ~375kHz
MCFG_TMS1XXX_READ_K_CB(READ8(hh_tms1k_state, ebball_read_k))
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(hh_tms1k_state, ebball_write_r))
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(hh_tms1k_state, ebball_write_o))
@ -1337,8 +1347,8 @@ READ8_MEMBER(hh_tms1k_state::cnsector_read_k)
WRITE16_MEMBER(hh_tms1k_state::cnsector_write_r)
{
m_display_maxy = 7;
m_display_maxx = 8;
m_display_maxy = 7;
// R0-R5: select digit (right-to-left)
for (int y = 0; y < 6; y++)
@ -1545,11 +1555,11 @@ READ8_MEMBER(hh_tms1k_state::stopthief_read_k)
WRITE16_MEMBER(hh_tms1k_state::stopthief_write_r)
{
m_display_maxy = 3;
m_display_maxx = 7;
m_display_maxy = 3;
// R0-R2: select digit
UINT8 o = BITSWAP8(m_o,3,5,2,1,4,0,6,7);
UINT8 o = BITSWAP8(m_o,3,5,2,1,4,0,6,7) & 0x7f;
for (int y = 0; y < m_display_maxy; y++)
{
m_7seg_mask[y] = 0x7f;
@ -2284,7 +2294,7 @@ CONS( 1980, mathmagi, 0, 0, mathmagi, mathmagi, driver_device, 0, "APF Electroni
CONS( 1979, amaztron, 0, 0, amaztron, amaztron, driver_device, 0, "Coleco", "Amaze-A-Tron", GAME_SUPPORTS_SAVE )
CONS( 1981, tc4, 0, 0, tc4, tc4, driver_device, 0, "Coleco", "Total Control 4", GAME_SUPPORTS_SAVE )
CONS( 1979, ebball, 0, 0, ebball, ebball, driver_device, 0, "Entex", "Baseball (Entex)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
CONS( 1978, ebball, 0, 0, ebball, ebball, driver_device, 0, "Entex", "Electronic Baseball (Entex)", GAME_SUPPORTS_SAVE )
CONS( 1979, elecdet, 0, 0, elecdet, elecdet, driver_device, 0, "Ideal", "Electronic Detective", GAME_SUPPORTS_SAVE )

View File

@ -6,8 +6,8 @@
serial device etc
------------------------------------------
serial device etc.
-----------------------------------------------
@048 uPD552 1980, Tomy Tennis
*085 uPD650 1980, Roland TR-808
102 uPD553 1981, Bandai Block Out
@ -86,6 +86,10 @@ public:
void tmtennis_set_clock();
DECLARE_INPUT_CHANGED_MEMBER(tmtennis_difficulty_switch);
DECLARE_MACHINE_RESET(tmtennis);
DECLARE_WRITE8_MEMBER(tmpacman_grid_w);
DECLARE_WRITE8_MEMBER(tmpacman_plate_w);
DECLARE_WRITE8_MEMBER(tmpacman_port_e_w);
DECLARE_READ8_MEMBER(alnchase_input_r);
DECLARE_WRITE8_MEMBER(alnchase_display_w);
@ -186,8 +190,9 @@ void hh_ucom4_state::display_matrix(int maxx, int maxy, UINT32 setx, UINT32 sety
m_display_maxy = maxy;
// update current state
UINT32 mask = (1 << maxx) - 1;
for (int y = 0; y < maxy; y++)
m_display_state[y] = (sety >> y & 1) ? setx : 0;
m_display_state[y] = (sety >> y & 1) ? (setx & mask) : 0;
display_update();
}
@ -231,7 +236,7 @@ UINT8 hh_ucom4_state::read_inputs(int columns)
WRITE8_MEMBER(hh_ucom4_state::edracula_grid_w)
{
// port C/D: vfd matrix grid
// ports C,D: vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTC) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
@ -240,7 +245,7 @@ WRITE8_MEMBER(hh_ucom4_state::edracula_grid_w)
WRITE8_MEMBER(hh_ucom4_state::edracula_plate_w)
{
// port E/F/G/H/I01: vfd matrix plate
// ports E-H,I01: vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTE) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
@ -257,13 +262,13 @@ WRITE8_MEMBER(hh_ucom4_state::edracula_port_i_w)
static INPUT_PORTS_START( edracula )
PORT_START("IN.0")
PORT_START("IN.0") // port A
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.1")
PORT_START("IN.1") // port B
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
@ -320,22 +325,22 @@ MACHINE_CONFIG_END
READ8_MEMBER(hh_ucom4_state::tmtennis_input_r)
{
// port A/B: buttons
// ports A,B: buttons
return ~read_inputs(2) >> (offset*4);
}
WRITE8_MEMBER(hh_ucom4_state::tmtennis_port_e_w)
WRITE8_MEMBER(hh_ucom4_state::tmtennis_grid_w)
{
// E0/E1: input mux
// E2: speaker out
// E3: N/C
m_inp_mux = data & 3;
m_speaker->level_w(data >> 2 & 1);
// ports G-I: vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTG) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
display_matrix(12, 12, m_plate, m_grid);
}
WRITE8_MEMBER(hh_ucom4_state::tmtennis_plate_w)
{
// port C/D/F: vfd matrix plate
// ports C-F: vfd matrix plate
if (offset == NEC_UCOM4_PORTF) offset--;
int shift = (offset - NEC_UCOM4_PORTC) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
@ -343,17 +348,16 @@ WRITE8_MEMBER(hh_ucom4_state::tmtennis_plate_w)
display_matrix(12, 12, m_plate, m_grid);
}
WRITE8_MEMBER(hh_ucom4_state::tmtennis_grid_w)
WRITE8_MEMBER(hh_ucom4_state::tmtennis_port_e_w)
{
// port G/H/I: vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTG) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
display_matrix(12, 12, m_plate, m_grid);
// E0,E1: input mux
// E2: speaker out
// E3: N/C
m_inp_mux = data & 3;
m_speaker->level_w(data >> 2 & 1);
}
/* Pro-Tennis physical button layout and labels is like this:
[SERVE] [1] [2] [3] [3] [2] [1] [SERVE]
@ -435,6 +439,8 @@ static MACHINE_CONFIG_START( tmtennis, hh_ucom4_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
/***************************************************************************
Tomy(tronic) Pac-Man (manufactured in Japan)
@ -453,7 +459,45 @@ MACHINE_CONFIG_END
***************************************************************************/
WRITE8_MEMBER(hh_ucom4_state::tmpacman_grid_w)
{
// ports C,D: vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTC) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
display_matrix(19, 8, m_plate, m_grid);
}
WRITE8_MEMBER(hh_ucom4_state::tmpacman_plate_w)
{
// ports E-I: vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTE) * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
display_matrix(19, 8, m_plate, m_grid);
}
WRITE8_MEMBER(hh_ucom4_state::tmpacman_port_e_w)
{
// E1: speaker out
m_speaker->level_w(data >> 1 & 1);
tmpacman_plate_w(space, offset, data);
}
static INPUT_PORTS_START( tmpacman )
PORT_START("IN.0") // port A
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY // 4 separate directional buttons, hence 16way
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY
PORT_START("IN.1") // port B
PORT_CONFNAME( 0x00, 0x00, DEF_STR( Difficulty ) )
PORT_CONFSETTING( 0x00, "Amateur" )
PORT_CONFSETTING( 0x01, "Professional" )
PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
@ -461,7 +505,17 @@ static MACHINE_CONFIG_START( tmpacman, hh_ucom4_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", NEC_D553, XTAL_430kHz)
MCFG_UCOM4_READ_A_CB(IOPORT("IN.0"))
MCFG_UCOM4_READ_B_CB(IOPORT("IN.1"))
MCFG_UCOM4_WRITE_C_CB(WRITE8(hh_ucom4_state, tmpacman_grid_w))
MCFG_UCOM4_WRITE_D_CB(WRITE8(hh_ucom4_state, tmpacman_grid_w))
MCFG_UCOM4_WRITE_E_CB(WRITE8(hh_ucom4_state, tmpacman_port_e_w))
MCFG_UCOM4_WRITE_F_CB(WRITE8(hh_ucom4_state, tmpacman_plate_w))
MCFG_UCOM4_WRITE_G_CB(WRITE8(hh_ucom4_state, tmpacman_plate_w))
MCFG_UCOM4_WRITE_H_CB(WRITE8(hh_ucom4_state, tmpacman_plate_w))
MCFG_UCOM4_WRITE_I_CB(WRITE8(hh_ucom4_state, tmpacman_plate_w))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_ucom4_state, display_decay_tick, attotime::from_msec(1))
MCFG_DEFAULT_LAYOUT(layout_tmpacman)
/* no video! */
@ -492,8 +546,6 @@ MACHINE_CONFIG_END
***************************************************************************/
READ8_MEMBER(hh_ucom4_state::alnchase_input_r)
{
// port A: buttons
@ -504,7 +556,7 @@ WRITE8_MEMBER(hh_ucom4_state::alnchase_display_w)
{
if (offset <= NEC_UCOM4_PORTE)
{
// C/D/E0: vfd matrix grid
// ports C,D,E0: vfd matrix grid
int shift = (offset - NEC_UCOM4_PORTC) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
@ -515,7 +567,7 @@ WRITE8_MEMBER(hh_ucom4_state::alnchase_display_w)
if (offset >= NEC_UCOM4_PORTE)
{
// E23/F/G/H/I: vfd matrix plate
// ports F-I,E23: vfd matrix plate
int shift = (offset - NEC_UCOM4_PORTE) * 4;
m_plate = ((m_plate << 2 & ~(0xf << shift)) | (data << shift)) >> 2;
}
@ -525,10 +577,10 @@ WRITE8_MEMBER(hh_ucom4_state::alnchase_display_w)
WRITE8_MEMBER(hh_ucom4_state::alnchase_port_e_w)
{
alnchase_display_w(space, offset, data);
// E1: speaker out
m_speaker->level_w(data >> 1 & 1);
alnchase_display_w(space, offset, data);
}
/* physical button layout and labels is like this:

View File

@ -4,107 +4,195 @@
<!-- define elements -->
<element name="static_black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></element>
<element name="disk_black"><disk><color red="0.0" green="0.0" blue="0.0" /></disk></element>
<element name="disk_green"><disk><color red="0.0" green="0.38" blue="0.15" /></disk></element>
<element name="static_white"><rect><color red="0.75" green="0.75" blue="0.75" /></rect></element>
<element name="disk_white"><disk><color red="0.75" green="0.75" blue="0.75" /></disk></element>
<element name="disk_white2"><disk><color red="0.85" green="0.85" blue="0.85" /></disk></element>
<!-- background is dark-red, to hide the leds -->
<element name="static_bg"><rect><color red="0.2" green="0.04" blue="0.05" /></rect></element>
<element name="disk_bg"><disk><color red="0.2" green="0.04" blue="0.05" /></disk></element>
<element name="field_guy">
<rect><color red="0.0" green="0.38" blue="0.15" /></rect>
<text string=":-)"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="base_guy">
<rect><color red="0.2" green="0.04" blue="0.05" /></rect>
<text string=":-)"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="pitcher">
<rect><color red="0.2" green="0.04" blue="0.05" /></rect>
<text string=":-P"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_s"><text string="S" align="1"><color red="0.95" green="0.95" blue="0.95" /></text></element>
<element name="text_b"><text string="B" align="1"><color red="0.95" green="0.95" blue="0.95" /></text></element>
<element name="text_o"><text string="O" align="1"><color red="0.95" green="0.95" blue="0.95" /></text></element>
<element name="text_s2">
<rect><color red="0.2" green="0.04" blue="0.05" /></rect>
<text string="S"><color red="0.95" green="0.95" blue="0.95" /></text>
</element>
<element name="text_b2"><text string="B"><color red="0.95" green="0.95" blue="0.95" /></text></element>
<element name="text_single"><text string="1B"><color red="0.95" green="0.95" blue="0.95" /></text></element>
<element name="text_double"><text string="2B"><color red="0.95" green="0.95" blue="0.95" /></text></element>
<element name="text_triple"><text string="3B"><color red="0.95" green="0.95" blue="0.95" /></text></element>
<element name="text_home"><text string="HOME" align="2"><color red="0.95" green="0.95" blue="0.95" /></text></element>
<element name="text_run"><text string="RUN" align="1"><color red="0.95" green="0.95" blue="0.95" /></text></element>
<element name="text_score"><text string="SCORE"><color red="0.4" green="0.4" blue="0.4" /></text></element>
<element name="text_count"><text string="COUNT"><color red="0.4" green="0.4" blue="0.4" /></text></element>
<element name="digit" defstate="0">
<led7seg><color red="1.0" green="0.20" blue="0.22" /></led7seg>
</element>
<element name="led" defstate="0">
<disk state="0"><color red="0.2" green="0.04" blue="0.05" /></disk>
<disk state="1"><color red="1.0" green="0.20" blue="0.22" /></disk>
</element>
<!-- build screen -->
<view name="Test Layout">
<bounds left="0" right="64" top="0" bottom="64" />
<view name="Internal Layout">
<bounds left="0" right="100" top="0" bottom="114" />
<bezel element="static_black">
<bounds left="0" right="64" top="0" bottom="64" />
<bounds left="0" right="100" top="0" bottom="114" />
</bezel>
<bezel name="digit8" element="digit"><bounds x="0" y="0" width="10" height="15" /></bezel>
<!-- outer bezel -->
<!-- 7*9 matrix -->
<bezel element="text_score"><bounds x="5.5" y="2" width="8" height="3" /></bezel>
<bezel element="text_count"><bounds x="86" y="2" width="8" height="3" /></bezel>
<bezel name="lamp0" element="led"><bounds x="0" y="20" width="1" height="1" /></bezel>
<bezel name="lamp1" element="led"><bounds x="2" y="20" width="1" height="1" /></bezel>
<bezel name="lamp2" element="led"><bounds x="4" y="20" width="1" height="1" /></bezel>
<bezel name="lamp3" element="led"><bounds x="6" y="20" width="1" height="1" /></bezel>
<bezel name="lamp4" element="led"><bounds x="8" y="20" width="1" height="1" /></bezel>
<bezel name="lamp5" element="led"><bounds x="10" y="20" width="1" height="1" /></bezel>
<bezel name="lamp6" element="led"><bounds x="12" y="20" width="1" height="1" /></bezel>
<bezel name="digit8" element="digit"><bounds x="5" y="7" width="8" height="12" /></bezel>
<bezel name="lamp10" element="led"><bounds x="0" y="22" width="1" height="1" /></bezel>
<bezel name="lamp11" element="led"><bounds x="2" y="22" width="1" height="1" /></bezel>
<bezel name="lamp12" element="led"><bounds x="4" y="22" width="1" height="1" /></bezel>
<bezel name="lamp13" element="led"><bounds x="6" y="22" width="1" height="1" /></bezel>
<bezel name="lamp14" element="led"><bounds x="8" y="22" width="1" height="1" /></bezel>
<bezel name="lamp15" element="led"><bounds x="10" y="22" width="1" height="1" /></bezel>
<bezel name="lamp16" element="led"><bounds x="12" y="22" width="1" height="1" /></bezel>
<bezel element="text_s"><bounds x="82.5" y="7.2" width="2" height="2.5" /></bezel>
<bezel name="lamp70" element="led"><bounds x="86" y="7" width="3" height="3" /></bezel>
<bezel name="lamp71" element="led"><bounds x="90" y="7" width="3" height="3" /></bezel>
<bezel name="lamp20" element="led"><bounds x="0" y="24" width="1" height="1" /></bezel>
<bezel name="lamp21" element="led"><bounds x="2" y="24" width="1" height="1" /></bezel>
<bezel name="lamp22" element="led"><bounds x="4" y="24" width="1" height="1" /></bezel>
<bezel name="lamp23" element="led"><bounds x="6" y="24" width="1" height="1" /></bezel>
<bezel name="lamp24" element="led"><bounds x="8" y="24" width="1" height="1" /></bezel>
<bezel name="lamp25" element="led"><bounds x="10" y="24" width="1" height="1" /></bezel>
<bezel name="lamp26" element="led"><bounds x="12" y="24" width="1" height="1" /></bezel>
<bezel element="text_b"><bounds x="82.5" y="11.2" width="2" height="2.5" /></bezel>
<bezel name="lamp60" element="led"><bounds x="86" y="11" width="3" height="3" /></bezel>
<bezel name="lamp61" element="led"><bounds x="90" y="11" width="3" height="3" /></bezel>
<bezel name="lamp62" element="led"><bounds x="94" y="11" width="3" height="3" /></bezel>
<bezel name="lamp30" element="led"><bounds x="0" y="26" width="1" height="1" /></bezel>
<bezel name="lamp31" element="led"><bounds x="2" y="26" width="1" height="1" /></bezel>
<bezel name="lamp32" element="led"><bounds x="4" y="26" width="1" height="1" /></bezel>
<bezel name="lamp33" element="led"><bounds x="6" y="26" width="1" height="1" /></bezel>
<bezel name="lamp34" element="led"><bounds x="8" y="26" width="1" height="1" /></bezel>
<bezel name="lamp35" element="led"><bounds x="10" y="26" width="1" height="1" /></bezel>
<bezel name="lamp36" element="led"><bounds x="12" y="26" width="1" height="1" /></bezel>
<bezel element="text_o"><bounds x="82.5" y="15.2" width="2" height="2.5" /></bezel>
<bezel name="lamp72" element="led"><bounds x="86" y="15" width="3" height="3" /></bezel>
<bezel name="lamp73" element="led"><bounds x="90" y="15" width="3" height="3" /></bezel>
<bezel name="lamp40" element="led"><bounds x="0" y="28" width="1" height="1" /></bezel>
<bezel name="lamp41" element="led"><bounds x="2" y="28" width="1" height="1" /></bezel>
<bezel name="lamp42" element="led"><bounds x="4" y="28" width="1" height="1" /></bezel>
<bezel name="lamp43" element="led"><bounds x="6" y="28" width="1" height="1" /></bezel>
<bezel name="lamp44" element="led"><bounds x="8" y="28" width="1" height="1" /></bezel>
<bezel name="lamp45" element="led"><bounds x="10" y="28" width="1" height="1" /></bezel>
<bezel name="lamp46" element="led"><bounds x="12" y="28" width="1" height="1" /></bezel>
<bezel name="lamp50" element="led"><bounds x="0" y="30" width="1" height="1" /></bezel>
<bezel name="lamp51" element="led"><bounds x="2" y="30" width="1" height="1" /></bezel>
<bezel name="lamp52" element="led"><bounds x="4" y="30" width="1" height="1" /></bezel>
<bezel name="lamp53" element="led"><bounds x="6" y="30" width="1" height="1" /></bezel>
<bezel name="lamp54" element="led"><bounds x="8" y="30" width="1" height="1" /></bezel>
<bezel name="lamp55" element="led"><bounds x="10" y="30" width="1" height="1" /></bezel>
<bezel name="lamp56" element="led"><bounds x="12" y="30" width="1" height="1" /></bezel>
<!-- board -->
<bezel name="lamp60" element="led"><bounds x="0" y="32" width="1" height="1" /></bezel>
<bezel name="lamp61" element="led"><bounds x="2" y="32" width="1" height="1" /></bezel>
<bezel name="lamp62" element="led"><bounds x="4" y="32" width="1" height="1" /></bezel>
<bezel name="lamp63" element="led"><bounds x="6" y="32" width="1" height="1" /></bezel>
<bezel name="lamp64" element="led"><bounds x="8" y="32" width="1" height="1" /></bezel>
<bezel name="lamp65" element="led"><bounds x="10" y="32" width="1" height="1" /></bezel>
<bezel name="lamp66" element="led"><bounds x="12" y="32" width="1" height="1" /></bezel>
<bezel element="disk_green"><bounds x="-5" y="25" width="110" height="110" /></bezel>
<bezel element="static_black"><bounds x="-10" y="75" width="120" height="65" /></bezel>
<bezel element="disk_bg"><bounds x="15" y="45" width="70" height="70" /></bezel>
<bezel element="static_black"><bounds x="0" y="85" width="100" height="40" /></bezel>
<bezel element="static_bg"><bounds x="15" y="75" width="70" height="26" /></bezel>
<bezel element="disk_bg"><bounds x="40" y="91" width="20" height="20" /></bezel>
<bezel name="lamp70" element="led"><bounds x="0" y="34" width="1" height="1" /></bezel>
<bezel name="lamp71" element="led"><bounds x="2" y="34" width="1" height="1" /></bezel>
<bezel name="lamp72" element="led"><bounds x="4" y="34" width="1" height="1" /></bezel>
<bezel name="lamp73" element="led"><bounds x="6" y="34" width="1" height="1" /></bezel>
<bezel name="lamp74" element="led"><bounds x="8" y="34" width="1" height="1" /></bezel>
<bezel name="lamp75" element="led"><bounds x="10" y="34" width="1" height="1" /></bezel>
<bezel name="lamp76" element="led"><bounds x="12" y="34" width="1" height="1" /></bezel>
<!-- top edge -->
<bezel name="lamp80" element="led"><bounds x="0" y="36" width="1" height="1" /></bezel>
<bezel name="lamp81" element="led"><bounds x="2" y="36" width="1" height="1" /></bezel>
<bezel name="lamp82" element="led"><bounds x="4" y="36" width="1" height="1" /></bezel>
<bezel name="lamp83" element="led"><bounds x="6" y="36" width="1" height="1" /></bezel>
<bezel name="lamp84" element="led"><bounds x="8" y="36" width="1" height="1" /></bezel>
<bezel name="lamp85" element="led"><bounds x="10" y="36" width="1" height="1" /></bezel>
<bezel name="lamp86" element="led"><bounds x="12" y="36" width="1" height="1" /></bezel>
<bezel element="disk_black"><bounds x="-1.3" y="44.7" width="10" height="10" /></bezel>
<bezel element="disk_black"><bounds x="91.3" y="44.7" width="10" height="10" /></bezel>
<bezel name="lamp43" element="led"><bounds x="2.2" y="48.2" width="3" height="3" /></bezel>
<bezel name="lamp50" element="led"><bounds x="94.8" y="48.2" width="3" height="3" /></bezel>
<bezel element="text_triple"><bounds x="2.2" y="44.5" width="3" height="2.5" /></bezel>
<bezel element="text_double"><bounds x="94.8" y="44.5" width="3" height="2.5" /></bezel>
<bezel name="lamp90" element="led"><bounds x="0" y="38" width="1" height="1" /></bezel>
<bezel name="lamp91" element="led"><bounds x="2" y="38" width="1" height="1" /></bezel>
<bezel name="lamp92" element="led"><bounds x="4" y="38" width="1" height="1" /></bezel>
<bezel name="lamp93" element="led"><bounds x="6" y="38" width="1" height="1" /></bezel>
<bezel name="lamp94" element="led"><bounds x="8" y="38" width="1" height="1" /></bezel>
<bezel name="lamp95" element="led"><bounds x="10" y="38" width="1" height="1" /></bezel>
<bezel name="lamp96" element="led"><bounds x="12" y="38" width="1" height="1" /></bezel>
<bezel element="disk_black"><bounds x="18.5" y="26.5" width="10" height="10" /></bezel>
<bezel element="disk_black"><bounds x="71.5" y="26.5" width="10" height="10" /></bezel>
<bezel name="lamp53" element="led"><bounds x="22" y="30" width="3" height="3" /></bezel>
<bezel name="lamp51" element="led"><bounds x="75" y="30" width="3" height="3" /></bezel>
<bezel element="text_single"><bounds x="22" y="26.3" width="3" height="2.5" /></bezel>
<bezel element="text_single"><bounds x="75" y="26.3" width="3" height="2.5" /></bezel>
<bezel element="disk_white2"><bounds x="45" y="20" width="10" height="10" /></bezel>
<bezel element="disk_black"><bounds x="45.5" y="20.5" width="9" height="9" /></bezel>
<bezel name="lamp52" element="led"><bounds x="48.5" y="23.5" width="3" height="3" /></bezel>
<bezel element="text_home"><bounds x="36" y="21.5" width="8" height="2.5" /></bezel>
<bezel element="text_run"><bounds x="56.5" y="21.5" width="8" height="2.5" /></bezel>
<!-- field -->
<bezel element="field_guy"><bounds x="13" y="48.5" width="3" height="3" /></bezel>
<bezel element="disk_bg"><bounds x="12" y="52" width="5" height="5" /></bezel>
<bezel name="lamp42" element="led"><bounds x="13" y="53" width="3" height="3" /></bezel>
<bezel element="field_guy"><bounds x="48.5" y="31.5" width="3" height="3" /></bezel>
<bezel element="disk_bg"><bounds x="47.5" y="35" width="5" height="5" /></bezel>
<bezel name="lamp41" element="led"><bounds x="48.5" y="36" width="3" height="3" /></bezel>
<bezel element="field_guy"><bounds x="84" y="48.5" width="3" height="3" /></bezel>
<bezel element="disk_bg"><bounds x="83" y="52" width="5" height="5" /></bezel>
<bezel name="lamp40" element="led"><bounds x="84" y="53" width="3" height="3" /></bezel>
<!-- pitcher -->
<bezel element="pitcher"><bounds x="48.5" y="66.5" width="3" height="3" /></bezel>
<bezel element="static_white"><bounds x="46" y="71" width="0.5" height="18.5" /></bezel>
<bezel element="static_white"><bounds x="53.5" y="71" width="0.5" height="18.5" /></bezel>
<bezel name="lamp23" element="led"><bounds x="48.5" y="70.5" width="3" height="3" /></bezel>
<bezel name="lamp0" element="led"><bounds x="48.5" y="76" width="3" height="3" /></bezel>
<bezel name="lamp1" element="led"><bounds x="48.5" y="81.5" width="3" height="3" /></bezel>
<bezel name="lamp2" element="led"><bounds x="48.5" y="87" width="3" height="3" /></bezel>
<bezel name="lamp10" element="led"><bounds x="45" y="92.5" width="3" height="3" /></bezel>
<bezel name="lamp13" element="led"><bounds x="52" y="92.5" width="3" height="3" /></bezel>
<!-- bases -->
<bezel element="base_guy"><bounds x="70" y="58" width="3" height="3" /></bezel>
<bezel name="lamp30" element="led"><bounds x="70" y="62" width="3" height="3" /></bezel>
<bezel element="base_guy"><bounds x="61" y="49" width="3" height="3" /></bezel>
<bezel name="lamp31" element="led"><bounds x="61" y="53" width="3" height="3" /></bezel>
<bezel element="base_guy"><bounds x="36" y="49" width="3" height="3" /></bezel>
<bezel name="lamp32" element="led"><bounds x="36" y="53" width="3" height="3" /></bezel>
<bezel element="base_guy"><bounds x="27" y="58" width="3" height="3" /></bezel>
<bezel name="lamp33" element="led"><bounds x="27" y="62" width="3" height="3" /></bezel>
<bezel element="static_white"><bounds x="72" y="72" width="6" height="6" /></bezel>
<bezel element="static_bg"><bounds x="72.5" y="72.5" width="5" height="5" /></bezel>
<bezel name="lamp20" element="led"><bounds x="73.5" y="73.5" width="3" height="3" /></bezel>
<bezel element="static_white"><bounds x="47" y="47" width="6" height="6" /></bezel>
<bezel element="static_bg"><bounds x="47.5" y="47.5" width="5" height="5" /></bezel>
<bezel name="lamp21" element="led"><bounds x="48.5" y="48.5" width="3" height="3" /></bezel>
<bezel element="static_white"><bounds x="22" y="72" width="6" height="6" /></bezel>
<bezel element="static_bg"><bounds x="22.5" y="72.5" width="5" height="5" /></bezel>
<bezel name="lamp22" element="led"><bounds x="23.5" y="73.5" width="3" height="3" /></bezel>
<!-- home -->
<bezel element="static_white"><bounds x="47" y="97" width="6" height="3" /></bezel>
<bezel element="disk_white"><bounds x="47" y="97" width="6" height="6" /></bezel>
<bezel element="static_bg"><bounds x="47.5" y="97.5" width="5" height="2.51" /></bezel>
<bezel element="disk_bg"><bounds x="47.5" y="97.5" width="5" height="5" /></bezel>
<bezel element="text_b2"><bounds x="42.5" y="108.3" width="3" height="2.5" /></bezel>
<bezel name="lamp11" element="led"><bounds x="42.5" y="98.5" width="3" height="3" /></bezel>
<bezel name="lamp12" element="led"><bounds x="42.5" y="104" width="3" height="3" /></bezel>
<bezel element="text_s2"><bounds x="48.5" y="108.3" width="3" height="2.5" /></bezel>
<bezel name="lamp3" element="led"><bounds x="48.5" y="98.5" width="3" height="3" /></bezel>
<bezel name="lamp4" element="led"><bounds x="48.5" y="104" width="3" height="3" /></bezel>
<bezel element="text_b2"><bounds x="54.5" y="108.3" width="3" height="2.5" /></bezel>
<bezel name="lamp14" element="led"><bounds x="54.5" y="98.5" width="3" height="3" /></bezel>
<bezel name="lamp15" element="led"><bounds x="54.5" y="104" width="3" height="3" /></bezel>
</view>