diff options
186 files changed, 6132 insertions, 7413 deletions
diff --git a/hash/icanguit.xml b/hash/icanguit.xml index 5734a9cbda9..a0c6fe50584 100644 --- a/hash/icanguit.xml +++ b/hash/icanguit.xml @@ -1,7 +1,49 @@ <?xml version="1.0"?> <!DOCTYPE softwarelist SYSTEM "softwarelist.dtd"> + +<!-- + Known cartridges (*=dumped) + there could be more + + *Guitar Favorites (K7357) + Barbie Guitar Party + Hot Wheels Road Tunes + Nashville Hits + Rock 101 + Spongebob Squarepants Surf's Up + American Idol Guitar Greats + + cartridge pinout (not identical to I Can Play Piano) + + 1 ground 2 ground + 3 A0 4 A1 + 5 A2 6 A3 + 7 A4 8 A5 + 9 A6 10 A7 + 11 A17 12 A18 + 13 A21 14 A20 + 15 A19 16 A8 + 17 A9 18 A10 + 19 A11 20 A12 + 21 A13 22 A14 + 23 A15 24 A16 + 25 /CE 26 ground + 27 ground 28 /OE + 29 D15 30 D7 + 31 D14 32 D6 + 33 D13 34 D5 + 35 D12 36 D4 + 37 Vcc 38 Vcc + 39 D11 40 D3 + 41 D10 42 D2 + 43 D9 44 D1 + 45 D8 46 D0 + 47 ground 48 Gnd + +--> + <softwarelist name="icanguit_cart" description="Fisher-Price / Mattel I Can Play Guitar cartridges"> - <software name="guitfav"> + <software name="guitfav" supported="no"> <description>Guitar Favorites</description> <year>2007</year> <publisher>Fisher-Price / Mattel</publisher> diff --git a/hash/icanpian.xml b/hash/icanpian.xml new file mode 100644 index 00000000000..cc61d339047 --- /dev/null +++ b/hash/icanpian.xml @@ -0,0 +1,61 @@ +<?xml version="1.0"?> +<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd"> + +<!-- + Known cartridges (*=dumped) + there could be more + + *Piano Favourites (J7522) + Jammin Jungle Safari (Disney The Lion King, Disney The Jungle Book, Disney Tarzan) + Jungle Boogie + Scooby-Doo! Monster Mayhem + Rockin' Dance Party + Nicktoons Show Tunes + Holiday Wonderland + Barbie Princess Enchanted Sounds + Pop Hits + Dora the Explorer Musical Adventure + American Idol - Take The Stage + Disney Princess Magical Melodies + The Wizard of Oz - We're Off to Play the Piano + + cartridge pinout (not identical to I Can Play Guitar) + + 1 ground 2 ground + 3 A1 4 A0 + 5 A3 6 A2 + 7 A5 8 A4 + 9 A7 10 A6 + 11 A18 12 A17 + 13 A20 14 A21 + 15 A8 16 A19 + 17 A10 18 A9 + 19 A12 20 A11 + 21 A14 22 A13 + 23 A16 24 A15 + 25 /OE 26 Vcc + 27 /CS 28 RW + 29 Res 30 R7 + 31 D7 32 D15 + 33 D6 34 D14 + 35 D5 36 D13 + 37 D4 38 D12 + 39 D3 40 D11 + 41 D2 42 D10 + 43 D1 44 D9 + 45 D0 46 D8 + 47 ground 48 Gnd +--> + +<softwarelist name="icanpian_cart" description="Fisher-Price / Mattel I Can Play Piano cartridges"> + <software name="pianfav" supported="no"> + <description>Piano Favorites</description> + <year>2007</year> + <publisher>Fisher-Price / Mattel</publisher> + <part name="cart" interface="icanpian_cart"> + <dataarea name="rom" size="0x800000"> + <rom name="icpppianofavorites.bin" size="0x800000" crc="cca31d78" sha1="4724df29c008e9518345ec4fc77288b7ec138c29" offset="0" /> + </dataarea> + </part> + </software> +</softwarelist> diff --git a/hash/leapfrog_mfleappad_cart.xml b/hash/leapfrog_mfleappad_cart.xml index e94073a6d6b..d64d2bcf83e 100644 --- a/hash/leapfrog_mfleappad_cart.xml +++ b/hash/leapfrog_mfleappad_cart.xml @@ -89,6 +89,21 @@ </part> </software> + <software name="crokis" supported="no"> + <description>El gran día de Croki (Spa)</description> + <year>2004</year> + <publisher>LeapFrog</publisher> + <info name="serial" value="500-11074"/> + <part name="cart" interface="leapfrog_mfleappad_cart"> + <feature name="pcb" value="04173+003-7011"/> + <feature name="pcb_rev" value="REV.00"/> + <feature name="u1" value="Matronix 16M"/> <!-- ROM on epoxy blob, but type silkscreened on the PCB --> + <dataarea name="rom" size="0x200000"> + <rom name="500-11074 - El gran dia de Croki (SP).bin" size="0x200000" crc="7939e721" sha1="886e85bdfc56587ef48c94f7bfed055c931b4d3e" offset="0" /> + </dataarea> + </part> + </software> + <software name="vroom" supported="no"> <description>Vroom! Vroom! - On the Go (UK)</description> <year>2003</year> @@ -104,4 +119,34 @@ </part> </software> + <software name="princess" supported="no"> + <description>Disney Princesas - Las Princesas Disney (Spa)</description> + <year>2003</year> + <publisher>LeapFrog</publisher> + <info name="serial" value="500-11436"/> + <part name="cart" interface="leapfrog_mfleappad_cart"> + <feature name="pcb" value="57000-003-7011"/> + <feature name="pcb_rev" value="REV.01"/> + <feature name="u1" value="Matronix 16M"/> <!-- ROM on epoxy blob, but type silkscreened on the PCB --> + <dataarea name="rom" size="0x200000"> + <rom name="500-11436 - Las Princesas Disney (SP).bin" size="0x200000" crc="21a50739" sha1="ad39c8e899edc427fec01aaa07cf8aacf7bd246f" offset="0" /> + </dataarea> + </part> + </software> + + <software name="schools" supported="no"> + <description>Mi Primer Día de Escuela (Spa)</description> + <year>2005</year> + <publisher>LeapFrog</publisher> + <info name="serial" value="500-12049"/> + <part name="cart" interface="leapfrog_mfleappad_cart"> + <feature name="pcb" value="57000+003+7223"/> + <feature name="pcb_rev" value="Rev:00"/> + <feature name="u1" value="OKI 32(J)"/> <!-- ROM on epoxy blob, but type silkscreened on the PCB --> + <dataarea name="rom" size="0x400000"> + <rom name="500-12049 - Mi Primer Dia de Escuela (SP).bin" size="0x400000" crc="878e3d34" sha1="b5893b2c852e472312a3f49320cec765fd1e4045" offset="0" /> + </dataarea> + </part> + </software> + </softwarelist> diff --git a/hash/vsmile_cart.xml b/hash/vsmile_cart.xml index b5518e324ca..516315a3313 100644 --- a/hash/vsmile_cart.xml +++ b/hash/vsmile_cart.xml @@ -155,7 +155,7 @@ Game cartridges | XX | 80-092065-105(FR) | Winnie l'Ourson - La Chasse au miel de Winnie (ALT) | | | 80-092066(PT) | Winnie the Pooh - Em Busca Do Mel (92076 on cart) | | XX | 80-092067(SP) | Winnie the Pooh - En Busca de la Miel (no # on label, 92067 on PCB, green sticker: "449 ○○○○") | -| SOON | 80-092067-122(SP) | My Friends Tigger and Pooh - En Busca de la Miel (092067-1 on PCB, green sticker: "732 ○○○○") | +| XX | 80-092067-122(SP) | My Friends Tigger and Pooh - En Busca de la Miel (092067-1 on PCB, green sticker: "732 ○○○○") | | XX | 80-092073(DK) | Peter Plys - Honningjagten | | XX | 80-092074(SE) | Nalle Puh - Honungsjakten | | | (NO) | Winnie the Pooh - Honningjakten | @@ -226,7 +226,7 @@ Game cartridges | XX | 80-092165(FR) | Scooby-Doo! - Panique à Funland | | | 80-092165(FR) | Scooby-Doo! - Panique à Funland (translucent purple, packin) | | | 80-092167(SP) | Scooby-Doo - Misterio en el Parque (translucent purple) | -| SOON | 80-092167(SP) | Scooby-Doo - Misterio en el Parque (purple, # on back label) | +| XX | 80-092167(SP) | Scooby-Doo - Misterio en el Parque (purple, # on back label) | | XX | 80-092173(DK) | Scooby-Doo! - Sjov i forlystelsesparken | | XX | 80-092174(SE) | Scooby-Doo! - Tivoli-tokerier | | | (NO) | Scooby-Doo! - Moro i fornøyelsesparken | @@ -253,7 +253,7 @@ Game cartridges | XX | 80-092224(GE) | Toy Story 2 - Woodys Spannende Rettung | | | 80-092225(FR) | Toy Story 2 - Buzz à la Rescousse! | | | 80-092226(PT) | Toy Story 2 - O Resgate de Woody (92236 on cart) | -| SOON | 80-092227(SP) | Toy Story 2 - El Rescate De Woody (52-92227(SP) on back label, green sticker: "528 ○○○○") | +| XX | 80-092227(SP) | Toy Story 2 - El Rescate De Woody (52-92227(SP) on back label, green sticker: "528 ○○○○") | | | (DK) | Toy Story 2 - Operation: Red Woody! | | XX | 80-092234(SE) | Toy Story 2 - Operation: Rädda Woody! | | | (NO) | Toy Story 2 - Operasjon: Redd Woody! | @@ -274,7 +274,7 @@ Game cartridges | | 80-092245-205(FR) | Cendrillon - Le reve enchante de Cendrillon | | | 80-092246(PT) | Cinderela - Os Sonhos Magicos da Cinderela (Cart#92256) | | | 80-092247(SP) | La Cenicienta - Los sueños mágicos de Cenicienta (non motion#, but V.Motion in spanish catalog) | -| SOON | 80-092247-222(SP) | La Cenicienta - Los sueños mágicos de Cenicienta (no # on front label, 52-092247-222-222(SP) on back label, green sticker: "P ○○○○", non motion#, but V.Motion in spanish catalog) +| XX | 80-092247-222(SP) | La Cenicienta - Los sueños mágicos de Cenicienta (no # on front label, 52-092247-222-222(SP) on back label, green sticker: "P ○○○○", non motion#, but V.Motion in spanish catalog) | XX | 80-092253(DK) | Cinderella - Askepots magiske ønsker | | XX | 80-092254(SE) | Cinderella - Askungens magiska önskningar | | | 80-092255(NO) | Cinderella - Askepotts magiske ønsker | @@ -296,7 +296,7 @@ Game cartridges | XX | 80-092285(FR) | Dora L'Exploratrice - Les aventures de Dora Apprentie Mécano | | | 80-092285-1?5(FR) | Dora L'Exploratrice - Les aventures de Dora Apprentie Mécano (NTSC French-Canadian) | | | 80-092286(PT) | Dora - em busca das pecas perdidas (cart# 92296) | -| SOON | 80-092287-222(SP) | Dora La Exploradora - La Aventura arregla-todo de Dora (purple, no # on front label, 52-092287-222(SP) on back label, green sticker: "P ○○○○") | +| XX | 80-092287-222(SP) | Dora La Exploradora - La Aventura arregla-todo de Dora (purple, no # on front label, 52-092287-222(SP) on back label, green sticker: "P ○○○○") | | | 80-092287-122(SP) | Dora La Exploradora - La Aventura arregla-todo de Dora | +========+===================+==========================================================================================================================================================+ | XX | 80-092300(US) | Bob the Builder - Bob's Busy Day | @@ -340,7 +340,7 @@ Game cartridges | XX | 80-092363-103(UK) | Zayzoo: An Earth Adventure | | XX | 80-092364(GE) | Zayzoos Lernall | | XX | 80-092365(FR) | Zézou - Notre Ami Venu d'Ailleurs | -| SOON | 80-092367(SP) | Zayzoo - Mi Amiga del Espacio (52-92367(SP) on back label, green sticker: "531 ○○○○") | +| XX | 80-092367(SP) | Zayzoo - Mi Amiga del Espacio (52-92367(SP) on back label, green sticker: "531 ○○○○") | +========+===================+==========================================================================================================================================================+ | | 80-092380(US) | Barney - The Land of Make Believe | | | 80-092383(UK) | Barney - The Land of Make Believe | @@ -383,7 +383,7 @@ Game cartridges | | 80-092504(GE) | Flitzers Schlaue Staedtetour (normal purple) | | | 80-092505(FR) | Mission Pilote | | | 80-092506(PT) | Conducao Diverrido (Cart# 92516) | -| SOON | 80-092507(SP) | Conducción Divertida (52-92507(SP) on back label, green sticker: "534 ○○○○") | +| XX | 80-092507(SP) | Conducción Divertida (52-92507(SP) on back label, green sticker: "534 ○○○○") | +========+===================+==========================================================================================================================================================+ | | 80-092520(US) | Spider-Man & Friends Doc Ock's Challenge | | | (IT) | Spider-Man la sfida del dottor Ock (V.smile pocket bundle only?) | @@ -609,7 +609,7 @@ Game cartridges </software> <software name="alphaprk1" cloneof="alphaprk" supported="yes"> - <description>Alphabet Park Adventure (USA, alt, Rev. 2?)</description> + <description>Alphabet Park Adventure (USA, alt, Rev. 101)</description> <year>200?</year> <publisher>VTech</publisher> <info name="serial" value="80-092000-101(US)" /> @@ -907,39 +907,39 @@ Game cartridges </part> </software> - <software name="cars" supported="yes"> - <description>Disney/Pixar Cars - Rev It Up in Radiator Springs (USA)</description> + <software name="carsr2" supported="yes"> + <description>Disney/Pixar Cars - Rev It Up in Radiator Springs (USA, Rev. 201)</description> <year>2006?</year> <publisher>VTech</publisher> - <info name="serial" value="80-092660(US)" /> + <info name="serial" value="80-092660-201(US)" /> <part name="cart" interface="vsmile_cart"> <feature name="slot" value="vsmile_rom" /> - <feature name="pcb" value="707180" /> - <feature name="pcb_model" value="707180-2" /> <feature name="cart_type" value="lilac" /> <feature name="u1" value="" /> <!-- EPOXY BLOB ROM --> <dataarea name="rom" size="8388608"> - <rom name="092660.u1" size="8388608" crc="ff65d967" sha1="27b229b6e308dfc0cea7e594c7b006f27961c05f" offset="0" /> + <rom name="vsmile92660.bin" size="8388608" crc="35ff7474" sha1="2c401f64cf510e40a0def1b47de0031d548e0fe9" offset="0" /> </dataarea> </part> </software> - <software name="carsa" cloneof="cars" supported="yes"> - <description>Disney/Pixar Cars - Rev It Up in Radiator Springs (USA, alt)</description> + <software name="cars" cloneof="carsr2" supported="yes"> + <description>Disney/Pixar Cars - Rev It Up in Radiator Springs (USA)</description> <year>2006?</year> <publisher>VTech</publisher> - <info name="serial" value="80-092660-201(US)" /> + <info name="serial" value="80-092660(US)" /> <part name="cart" interface="vsmile_cart"> <feature name="slot" value="vsmile_rom" /> + <feature name="pcb" value="707180" /> + <feature name="pcb_model" value="707180-2" /> <feature name="cart_type" value="lilac" /> <feature name="u1" value="" /> <!-- EPOXY BLOB ROM --> <dataarea name="rom" size="8388608"> - <rom name="vsmile92660.bin" size="8388608" crc="35ff7474" sha1="2c401f64cf510e40a0def1b47de0031d548e0fe9" offset="0" /> + <rom name="092660.u1" size="8388608" crc="ff65d967" sha1="27b229b6e308dfc0cea7e594c7b006f27961c05f" offset="0" /> </dataarea> </part> </software> - <software name="carsg" cloneof="cars" supported="yes"> + <software name="carsg" cloneof="carsr2" supported="yes"> <description>Disney/Pixar Cars - Vollgas in Radiator Springs (Ger)</description> <year>2006?</year> <publisher>VTech</publisher> @@ -956,7 +956,7 @@ Game cartridges </part> </software> - <software name="carsf" cloneof="cars" supported="yes"> + <software name="carsf" cloneof="carsr2" supported="yes"> <description>Disney/Pixar Cars - Quatre Roues (Fra)</description> <year>2006?</year> <publisher>VTech</publisher> @@ -973,7 +973,7 @@ Game cartridges </part> </software> - <software name="carsdk" cloneof="cars" supported="yes"> + <software name="carsdk" cloneof="carsr2" supported="yes"> <description>Disney/Pixar Biler - Ræs i Kølerkildekøbing (Den)</description> <year>2007?</year> <publisher>VTech</publisher> @@ -990,7 +990,7 @@ Game cartridges </part> </software> - <software name="carssw" cloneof="cars" supported="yes"> + <software name="carssw" cloneof="carsr2" supported="yes"> <description>Disney/Pixar Bilar - Kör ikapp i Kylarköping (Swe)</description> <year>2007?</year> <publisher>VTech</publisher> @@ -1042,7 +1042,7 @@ Game cartridges <description>Disney Cenerentola - I desideri magici di Cenerentola (Ita)</description> <year>2006</year> <publisher>VTech / Giochi Preziosi</publisher> - <info name="serial" value="52-92251 (Ita)" /> + <info name="serial" value="52-92251(IT)" /> <part name="cart" interface="vsmile_cart"> <feature name="slot" value="vsmile_rom" /> <dataarea name="rom" size="8388608"> @@ -1068,6 +1068,23 @@ Game cartridges </part> </software> + <software name="cinderlasr2" cloneof="cinderla" supported="yes"> + <description>Walt Disney La Cenicienta - Los sueños mágicos de Cenicienta (Spa, Rev. 222)</description> + <year>2008</year> + <publisher>VTech</publisher> + <info name="serial" value="80-092247-222(SP)" /> + <part name="cart" interface="vsmile_cart"> + <feature name="slot" value="vsmile_rom" /> + <feature name="pcb" value="708201" /> + <feature name="pcb_model" value="708201-4" /> + <feature name="cart_type" value="lilac" /> + <feature name="u1" value="" /> <!-- EPOXY BLOB ROM --> + <dataarea name="rom" size="8388608"> + <rom name="80-092247-222 - La Cenicienta - Los suenos magicos de Cenicienta (SP).bin" size="8388608" crc="41be74d6" sha1="bfac64f8a8d9535fd5bea113319c4f8de0242c09" offset="0" /> + </dataarea> + </part> + </software> + <software name="cinderladk" cloneof="cinderla" supported="yes"> <description>Disney Princess Cinderella - Askepots magiske ønsker (Den)</description> <year>2006?</year> @@ -1086,7 +1103,7 @@ Game cartridges </software> <software name="cinderlag" cloneof="cinderla" supported="yes"> - <description>Disney Princess Cinderella - Lernen im Märchenland (Ger, Rev. 1)</description> + <description>Disney Princess Cinderella - Lernen im Märchenland (Ger, Rev. 104)</description> <year>2007?</year> <publisher>VTech</publisher> <info name="serial" value="80-092244-104(GE)" /> @@ -1136,39 +1153,39 @@ Game cartridges </part> </software> - <software name="dora" supported="yes"> - <description>Nick Jr Dora the Explorer - Dora's Fix-it Adventure (USA)</description> + <software name="dorar2" supported="yes"> + <description>Nickelodeon Dora the Explorer - Dora's Fix-it Adventure (USA, Rev. 201)</description> <year>2008</year> <publisher>VTech</publisher> - <info name="serial" value="80-092280(US)" /> + <info name="serial" value="80-092280-201(US)" /> <part name="cart" interface="vsmile_cart"> <feature name="slot" value="vsmile_rom" /> - <feature name="pcb" value="707180" /> - <feature name="pcb_model" value="707180-1" /> <feature name="cart_type" value="lilac" /> <feature name="u1" value="" /> <!-- EPOXY BLOB ROM --> <dataarea name="rom" size="8388608"> - <rom name="92280.u1" size="8388608" crc="225c3133" sha1="97610c09834251d1960dbc67da18dad91e832dba" offset="0" /> + <rom name="vsmile92280.bin" size="8388608" crc="034cf357" sha1="9c96af008b161f1bdc4ae9f33da161950dc47011" offset="0" /> </dataarea> </part> </software> - <software name="doraa2" cloneof="dora" supported="yes"> - <description>Nickelodeon Dora the Explorer - Dora's Fix-it Adventure (USA, alt 2)</description> + <software name="dora" cloneof="dorar2" supported="yes"> + <description>Nick Jr Dora the Explorer - Dora's Fix-it Adventure (USA)</description> <year>2008</year> <publisher>VTech</publisher> - <info name="serial" value="80-092280-201(US)" /> + <info name="serial" value="80-092280(US)" /> <part name="cart" interface="vsmile_cart"> <feature name="slot" value="vsmile_rom" /> + <feature name="pcb" value="707180" /> + <feature name="pcb_model" value="707180-1" /> <feature name="cart_type" value="lilac" /> <feature name="u1" value="" /> <!-- EPOXY BLOB ROM --> <dataarea name="rom" size="8388608"> - <rom name="vsmile92280.bin" size="8388608" crc="034cf357" sha1="9c96af008b161f1bdc4ae9f33da161950dc47011" offset="0" /> + <rom name="92280.u1" size="8388608" crc="225c3133" sha1="97610c09834251d1960dbc67da18dad91e832dba" offset="0" /> </dataarea> </part> </software> - <software name="doraf" cloneof="dora" supported="yes"> + <software name="doraf" cloneof="dorar2" supported="yes"> <description>Dora L'Exploratrice - Les aventures de Dora Apprentie Mécano (Fra)</description> <year>2008</year> <publisher>VTech</publisher> @@ -1185,8 +1202,25 @@ Game cartridges </part> </software> - <software name="dorag" cloneof="dora" supported="yes"> - <description>Nick Jr Dora - Doras Reparatur-Abenteuer (Ger, Rev. 1)</description> + <software name="dorasr2" cloneof="dorar2" supported="yes"> + <description>Nick Jr. Dora La Exploradora - La Aventura arregla-todo de Dora (Spa, Rev. 222)</description> + <year>2007</year> <!-- 2009 on cart --> + <publisher>VTech</publisher> + <info name="serial" value="80-092287-222(SP)" /> + <part name="cart" interface="vsmile_cart"> + <feature name="slot" value="vsmile_rom" /> + <feature name="pcb" value="708201" /> + <feature name="pcb_model" value="708201-7" /> + <feature name="cart_type" value="lilac" /> + <feature name="u1" value="" /> <!-- EPOXY BLOB ROM --> + <dataarea name="rom" size="8388608"> + <rom name="80-092287-222 - Dora La Exploradora - La Aventura arregla-todo de Dora (SP).bin" size="8388608" crc="e46b6ffa" sha1="115b2e6f62ba251f5676c3e4756a5299b008372f" offset="0" /> + </dataarea> + </part> + </software> + + <software name="dorag" cloneof="dorar2" supported="yes"> + <description>Nick Jr Dora - Doras Reparatur-Abenteuer (Ger, Rev. 104)</description> <year>2008</year> <publisher>VTech</publisher> <info name="serial" value="80-092284-104(GE)" /> @@ -1799,7 +1833,7 @@ Game cartridges </software> <software name="noddyg" cloneof="noddy" supported="yes"> - <description>Noddy - Detektiv für einen Tag (Ger, Rev. 3?)</description> + <description>Noddy - Detektiv für einen Tag (Ger, Rev. 104)</description> <year>200?</year> <publisher>VTech</publisher> <info name="serial" value="80-092544-104(GE)" /> @@ -1848,7 +1882,7 @@ Game cartridges </software> <software name="upg" supported="yes"> - <description>Disney/Pixar Oben (Ger)</description> + <description>Disney/Pixar Oben (Ger, Rev. 004)</description> <year>2009?</year> <publisher>VTech</publisher> <info name="serial" value="80-090004-004(GE)" /> @@ -1865,7 +1899,7 @@ Game cartridges </software> <software name="upuk" cloneof="upg" supported="yes"> - <description>Disney/Pixar Up (UK)</description> + <description>Disney/Pixar Up (UK, Rev. 003)</description> <year>2009</year> <publisher>VTech</publisher> <info name="serial" value="80-090003-003(UK)" /> @@ -1940,39 +1974,39 @@ Game cartridges </part> </software> - <software name="scoobydo" supported="yes"> - <description>Scooby-Doo! - Funland Frenzy (USA)</description> + <software name="scoobydor3" supported="yes"> + <description>Scooby-Doo! - Funland Frenzy (USA, Rev. 301)</description> <year>200?</year> <publisher>VTech</publisher> - <info name="serial" value="80-092160(US)" /> + <info name="serial" value="80-092160-301(US)" /> <part name="cart" interface="vsmile_cart"> <feature name="slot" value="vsmile_rom" /> - <feature name="pcb" value="707180" /> - <feature name="pcb_model" value="707180-1" /> <feature name="cart_type" value="lilac" /> <feature name="u1" value="" /> <!-- EPOXY BLOB ROM --> <dataarea name="rom" size="8388608"> - <rom name="92160.u1" size="8388608" crc="161ef602" sha1="d4020599c83a64b9f1f972b0b8ebc4c3fcc85970" offset="0" /> + <rom name="vsmile92160.bin" size="8388608" crc="5d190acf" sha1="68b69330c7d60db82e39f8f0423ea135ad90c783" offset="0" /> </dataarea> </part> </software> - <software name="scoobydoa3" cloneof="scoobydo" supported="yes"> - <description>Scooby-Doo! - Funland Frenzy (USA, alt)</description> + <software name="scoobydo" cloneof="scoobydor3" supported="yes"> + <description>Scooby-Doo! - Funland Frenzy (USA)</description> <year>200?</year> <publisher>VTech</publisher> - <info name="serial" value="80-092160-301(US)" /> + <info name="serial" value="80-092160(US)" /> <part name="cart" interface="vsmile_cart"> <feature name="slot" value="vsmile_rom" /> + <feature name="pcb" value="707180" /> + <feature name="pcb_model" value="707180-1" /> <feature name="cart_type" value="lilac" /> <feature name="u1" value="" /> <!-- EPOXY BLOB ROM --> <dataarea name="rom" size="8388608"> - <rom name="vsmile92160.bin" size="8388608" crc="5d190acf" sha1="68b69330c7d60db82e39f8f0423ea135ad90c783" offset="0" /> + <rom name="92160.u1" size="8388608" crc="161ef602" sha1="d4020599c83a64b9f1f972b0b8ebc4c3fcc85970" offset="0" /> </dataarea> </part> </software> - <software name="scoobydof" cloneof="scoobydo" supported="yes"> + <software name="scoobydof" cloneof="scoobydor3" supported="yes"> <description>Scooby-Doo - Panique à Funland (Fra)</description> <year>200?</year> <publisher>VTech</publisher> @@ -1989,7 +2023,7 @@ Game cartridges </part> </software> - <software name="scoobydog" cloneof="scoobydo" supported="yes"> + <software name="scoobydog" cloneof="scoobydor3" supported="yes"> <description>Scooby-Doo! - Im Lernpark (Ger)</description> <year>200?</year> <publisher>VTech</publisher> @@ -2006,7 +2040,25 @@ Game cartridges </part> </software> - <software name="scoobydodk" cloneof="scoobydo" supported="yes"> + <!-- Does not boot, just shows a black screen --> + <software name="scoobydos" cloneof="scoobydor3" supported="no"> + <description>Scooby-Doo - Misterio en el Parque (Spa)</description> + <year>200?</year> + <publisher>VTech</publisher> + <info name="serial" value="80-092167(SP)" /> + <part name="cart" interface="vsmile_cart"> + <feature name="slot" value="vsmile_rom" /> + <feature name="pcb" value="708894" /> + <feature name="pcb_model" value="708894-A" /> + <feature name="cart_type" value="lilac" /> + <feature name="u1" value="U1" /> <!-- EPOXY BLOB ROM --> + <dataarea name="rom" size="8388608"> + <rom name="80-092167 - Scooby-Doo - Misterio en el Parque (SP).bin" size="8388608" crc="5e77e160" sha1="51c472ea72939f01ed1f5b212f2de4056315ab88" offset="0" /> + </dataarea> + </part> + </software> + + <software name="scoobydodk" cloneof="scoobydor3" supported="yes"> <description>Scooby-Doo! - Sjov i forlystelsesparken (Den)</description> <year>200?</year> <publisher>VTech</publisher> @@ -2023,7 +2075,7 @@ Game cartridges </part> </software> - <software name="scoobydosw" cloneof="scoobydo" supported="yes"> + <software name="scoobydosw" cloneof="scoobydor3" supported="yes"> <description>Scooby-Doo! - Tivoli-tokerier (Swe)</description> <year>200?</year> <publisher>VTech</publisher> @@ -2040,7 +2092,7 @@ Game cartridges </part> </software> - <software name="scoobydoi" cloneof="scoobydo" supported="yes"> + <software name="scoobydoi" cloneof="scoobydor3" supported="yes"> <description>Scooby-Doo! - Avventura a Funland (Ita)</description> <year>200?</year> <publisher>VTech / Giochi Preziosi</publisher> @@ -2256,11 +2308,11 @@ Game cartridges </part> </software> - <software name="spidermis1" supported="yes"> - <description>Marvel Spider-Man & Friends - Secret Missions (USA)</description> + <software name="spidermisr1" supported="yes"> + <description>Marvel Spider-Man & Friends - Secret Missions (USA, Rev. 101)</description> <year>2007</year> <publisher>VTech</publisher> - <info name="serial" value="80-092140-101(FR)" /> + <info name="serial" value="80-092140-101(US)" /> <part name="cart" interface="vsmile_cart"> <feature name="slot" value="vsmile_rom" /> <feature name="pcb" value="707180" /> @@ -2273,7 +2325,7 @@ Game cartridges </part> </software> - <software name="spidermisf" cloneof="spidermis1" supported="yes"> + <software name="spidermisf" cloneof="spidermisr1" supported="yes"> <description>Marvel Spider-Man & ses amis - Missions secrètes (Fra)</description> <year>2007</year> <publisher>VTech</publisher> @@ -2290,7 +2342,7 @@ Game cartridges </part> </software> - <software name="spidermiss" cloneof="spidermis1" supported="yes"> + <software name="spidermiss" cloneof="spidermisr1" supported="yes"> <description>Spider-Man y Amigos - Misiones Secretas (Spa)</description> <year>2005</year> <publisher>VTech</publisher> @@ -2459,7 +2511,7 @@ Game cartridges </software> <software name="thomasg" cloneof="thomas" supported="yes"> - <description>Thomas & seine Freunde - Freunde Halten Zusammen (Ger, Rev. 1)</description> + <description>Thomas & seine Freunde - Freunde Halten Zusammen (Ger, Rev. 104)</description> <year>2005</year> <publisher>VTech</publisher> <info name="serial" value="80-092344-104(GE)" /> @@ -2589,6 +2641,23 @@ Game cartridges </part> </software> + <software name="toystor2s" cloneof="toystor2" supported="yes"> + <description>Disney/Pixar Toy Story 2 - El Rescate De Woody (Spa)</description> + <year>2005</year> + <publisher>VTech</publisher> + <info name="serial" value="80-092227(SP)" /> + <part name="cart" interface="vsmile_cart"> + <feature name="slot" value="vsmile_rom" /> + <feature name="pcb" value="706714" /> + <feature name="pcb_model" value="706714-1" /> + <feature name="cart_type" value="lilac" /> + <feature name="u1" value="" /> <!-- EPOXY BLOB ROM --> + <dataarea name="rom" size="8388608"> + <rom name="80-092227 - Toy Story 2 - El Rescate De Woody (SP).bin" size="8388608" crc="83924979" sha1="3aa17cdc3977644a6a4441d3e03b9aeb3e9c96ff" offset="0" /> + </dataarea> + </part> + </software> + <software name="toystor2sw" cloneof="toystor2" supported="yes"> <description>Disney/Pixar Toy Story 2 - Operation: Rädda Woody! (Swe)</description> <year>2005?</year> @@ -2691,7 +2760,7 @@ Game cartridges </software> <software name="poohg1" cloneof="pooh" supported="yes"> - <description>My Friends Tigger & Pooh - Die Honigjagd (Ger)</description> + <description>My Friends Tigger & Pooh - Die Honigjagd (Ger, Rev. 104)</description> <year>2008?</year> <publisher>VTech</publisher> <info name="serial" value="80-092064-104(GE)" /> @@ -2758,6 +2827,25 @@ Game cartridges </part> </software> + <!-- Cart labeled as "Disney My Friends Tigger and Pooh - En Busca de la Miel", + but game on screen title is "Disney Winnie the Pooh - En Busca de la Miel". --> + <software name="poohsr1" cloneof="pooh" supported="yes"> + <description>Disney Winnie the Pooh - En Busca de la Miel (Spa, Rev. 122)</description> + <year>2004?</year> + <publisher>VTech</publisher> + <info name="serial" value="80-092067-122(SP)" /> + <part name="cart" interface="vsmile_cart"> + <feature name="slot" value="vsmile_rom" /> + <feature name="pcb" value="707180" /> + <feature name="pcb_model" value="707180-3" /> + <feature name="cart_type" value="lilac" /> + <feature name="u1" value="U1" /> <!-- EPOXY BLOB ROM --> + <dataarea name="rom" size="8388608"> + <rom name="80-092067-122 - My Friends Tigger and Pooh - En Busca de la Miel (SP).bin" size="8388608" crc="836353ed" sha1="7d8f5d5f743d40441b714e47a26a611d7fca7f03" offset="0" /> + </dataarea> + </part> + </software> + <software name="poohdk" cloneof="pooh" supported="yes"> <description>Disney Peter Plys - Honningjagten (Den)</description> <year>200?</year> @@ -2870,21 +2958,27 @@ Game cartridges </part> </software> - <software name="zayzmac" cloneof="zayzaea" supported="yes"> - <description>Zayzoo - My Alien Classmate (USA)</description> + <software name="wkwheels" supported="yes"> <!-- Will be clone of "wkwheel" once found and dumped. --> + <description>Conducción Divertida (Spa)</description> <year>200?</year> <publisher>VTech</publisher> - <info name="serial" value="80-092360(US)" /> + <info name="serial" value="80-092507(SP)" /> <part name="cart" interface="vsmile_cart"> - <feature name="slot" value="vsmile_rom" /> + <feature name="slot" value="vsmile_nvram" /> + <feature name="pcb" value="706714" /> + <feature name="pcb_model" value="706714-1" /> + <feature name="cart_type" value="lilac" /> + <feature name="u1" value="" /> <!-- EPOXY BLOB ROM --> <dataarea name="rom" size="8388608"> - <rom name="52-92360(us).bin" size="8388608" crc="76ff9718" sha1="be783c1abe96f785564f5b5b6b4ea089b799c1d4" offset="0" /> + <rom name="80-092507 - Conduccion Divertida (SP).bin" size="8388608" crc="c52ff5d8" sha1="ce48bb9ea53cbdfa243170217908cc1f4352e4f0" offset="0" /> + </dataarea> + <dataarea name="nvram" size="131072"> </dataarea> </part> </software> - <software name="zayzaea" supported="yes"> - <description>Zayzoo: An Earth Adventure (USA)</description> + <software name="zayzaear1" supported="yes"> + <description>Zayzoo: An Earth Adventure (USA, Rev. 101)</description> <year>200?</year> <publisher>VTech</publisher> <info name="serial" value="80-092360-101(US)" /> @@ -2900,7 +2994,20 @@ Game cartridges </part> </software> - <software name="zayzmacg" cloneof="zayzaea" supported="yes"> + <software name="zayzaea" cloneof="zayzaear1" supported="yes"> + <description>Zayzoo - My Alien Classmate (USA)</description> + <year>200?</year> + <publisher>VTech</publisher> + <info name="serial" value="80-092360(US)" /> + <part name="cart" interface="vsmile_cart"> + <feature name="slot" value="vsmile_rom" /> + <dataarea name="rom" size="8388608"> + <rom name="52-92360(us).bin" size="8388608" crc="76ff9718" sha1="be783c1abe96f785564f5b5b6b4ea089b799c1d4" offset="0" /> + </dataarea> + </part> + </software> + + <software name="zayzaeag" cloneof="zayzaear1" supported="yes"> <description>Zayzoos Lernall (Ger)</description> <year>200?</year> <publisher>VTech</publisher> @@ -2918,8 +3025,8 @@ Game cartridges </software> <!-- Found also with the same ROM as "80-092360-101(US)" --> - <software name="zayzaeauk" cloneof="zayzaea" supported="yes"> - <description>Zayzoo: An Earth Adventure (UK)</description> + <software name="zayzaeauk" cloneof="zayzaear1" supported="yes"> + <description>Zayzoo: An Earth Adventure (UK, Rev. 103)</description> <year>200?</year> <publisher>VTech</publisher> <info name="serial" value="80-092363-103(UK)" /> @@ -2931,7 +3038,7 @@ Game cartridges </part> </software> - <software name="zezou" cloneof="zayzaea" supported="yes"> + <software name="zayzaeaf" cloneof="zayzaear1" supported="yes"> <description>Zézou - Notre Ami Venu d'Ailleurs (Fra)</description> <year>200?</year> <publisher>VTech</publisher> @@ -2948,6 +3055,23 @@ Game cartridges </part> </software> + <software name="zayzaeas" cloneof="zayzaear1" supported="yes"> + <description>Zayzoo - Mi Amiga del Espacio (Spa)</description> + <year>200?</year> + <publisher>VTech</publisher> + <info name="serial" value="80-092367(SP)" /> + <part name="cart" interface="vsmile_cart"> + <feature name="slot" value="vsmile_rom" /> + <feature name="pcb" value="706714" /> + <feature name="pcb_model" value="706714-1" /> + <feature name="cart_type" value="lilac" /> + <feature name="u1" value="" /> <!-- EPOXY BLOB ROM --> + <dataarea name="rom" size="8388608"> + <rom name="80-092367 - Zayzoo - Mi Amiga del Espacio (SP).bin" size="8388608" crc="ce601e55" sha1="8b628101b605f4688b580a9e7511c3bfa6f7d5bc" offset="0" /> + </dataarea> + </part> + </software> + <software name="schreib" supported="no"> <description>V.Smile Schreibspaß (Ger)</description> <year>200?</year> diff --git a/hash/vsmile_cd.xml b/hash/vsmile_cd.xml index 81348ada550..32bea38615f 100644 --- a/hash/vsmile_cd.xml +++ b/hash/vsmile_cd.xml @@ -90,46 +90,46 @@ ________________________________________________________________________________ <softwarelist name="vsmile_cd" description="VTech V.Flash/V.Smile Pro V.Disc images"> <!-- - Internal Serial: 0ID_93060_001 - Volume Label: 93060_001 + Internal Serial: 0ID_93060_002 + Volume Label: 93060_002 Blue cartridge - Sticker on the cartridge: 633 ○●○○ + Sticker on the cartridge: 641 ○○●○ Barcode: 0 50803 93060 8 - Ring 1: "*59-93060-000-000", "IFPI LQ50", "IFPI 9QK3", "59-93060-000" + Ring 1: "* 59-93060-000-000 *", "ifpi LQ24", "IFPI 9QK3", "59-93060-000" --> - <software name="spidermnr1" supported="no"> - <description>The Amazing Spider-Man - Countdown to Doom (USA, Rev. 1)</description> + <software name="spidermnr2" supported="no"> + <description>The Amazing Spider-Man - Countdown to Doom (USA, Rev. 2)</description> <year>200?</year> <publisher>VTech</publisher> <info name="serial" value="80-093060" /> <part name="cdrom" interface="vsmile_vdisk"> <diskarea name="cdrom"> - <disk name="093060_001" sha1="b41bfab381ec4e1a2ceab56aa10d71b17c8a31bb"/> + <disk name="093060_002" sha1="79fbb95a0c313097d09199a0ff9d0648436afff5"/> </diskarea> </part> </software> <!-- - Internal Serial: 0ID_93060_002 - Volume Label: 93060_002 + Internal Serial: 0ID_93060_001 + Volume Label: 93060_001 Blue cartridge - Sticker on the cartridge: 641 ○○●○ + Sticker on the cartridge: 633 ○●○○ Barcode: 0 50803 93060 8 - Ring 1: "* 59-93060-000-000 *", "ifpi LQ24", "IFPI 9QK3", "59-93060-000" + Ring 1: "*59-93060-000-000", "IFPI LQ50", "IFPI 9QK3", "59-93060-000" --> - <software name="spidermnr2" cloneof="spidermnr1" supported="no"> - <description>The Amazing Spider-Man - Countdown to Doom (USA, Rev. 2)</description> + <software name="spidermnr1" cloneof="spidermnr2" supported="no"> + <description>The Amazing Spider-Man - Countdown to Doom (USA, Rev. 1)</description> <year>200?</year> <publisher>VTech</publisher> <info name="serial" value="80-093060" /> <part name="cdrom" interface="vsmile_vdisk"> <diskarea name="cdrom"> - <disk name="093060_002" sha1="79fbb95a0c313097d09199a0ff9d0648436afff5"/> + <disk name="093060_001" sha1="b41bfab381ec4e1a2ceab56aa10d71b17c8a31bb"/> </diskarea> </part> </software> - <software name="spidermng" cloneof="spidermnr1" supported="no"> + <software name="spidermng" cloneof="spidermnr2" supported="no"> <!-- Original files (from TeamEurope) <rom name="93064_000.bin" size="378956592" crc="5039f062" sha1="80a0ae321273a4b7190ba79854b21fdfb96b75f4" /> @@ -155,7 +155,7 @@ ________________________________________________________________________________ Ring 1: "59-93067-000-001*", "IFPI 0949", "59-93067-000-001" Ring 2: "07/07/07 −− 149550 −− A", "IFPI LQ35" --> - <software name="spidermns" cloneof="spidermnr1" supported="no"> + <software name="spidermns" cloneof="spidermnr2" supported="no"> <description>El Asombroso Spider-Man - Persecución en la Ciudad (Spa)</description> <year>200?</year> <publisher>VTech</publisher> @@ -208,41 +208,41 @@ ________________________________________________________________________________ </software> <!-- - Internal Serial: 0ID_93100_000 - Volume Label: 93100_000 + Internal Serial: 0ID_93100_001 + Volume Label: 93100_001 Orange cartridge - Sticker on the cartridge: 646 ○○○○ + Sticker on the cartridge: 725 ○●○○ Barcode: 0 50803 93100 1 - Ring 1: "59-93100-000-000*", "ifpi LQ24", "IFPI 9QK3, IFPI 9QM3", "59-93100-000-000" + Ring 1: "*59-93100-001-000", "ifpi LQ24", "IFPI 9QH8", "59-93100-000-000" --> - <software name="cars" supported="no"> - <description>Disney/Pixar Cars - In the Fast Lane (USA)</description> + <software name="carsr1" supported="no"> + <description>Disney/Pixar Cars - In the Fast Lane (USA, Rev. 1)</description> <year>200?</year> <publisher>VTech</publisher> <info name="serial" value="80-093100" /> <part name="cdrom" interface="vsmile_vdisk"> <diskarea name="cdrom"> - <disk name="093100_000" sha1="47edbad81f59bc0cebd51bc7e51137ca949890de"/> + <disk name="093100_001" sha1="584bf1cdd17e33ab8f729f27e47426aa0ab2789a" /> </diskarea> </part> </software> <!-- - Internal Serial: 0ID_93100_001 - Volume Label: 93100_001 + Internal Serial: 0ID_93100_000 + Volume Label: 93100_000 Orange cartridge - Sticker on the cartridge: 725 ○●○○ + Sticker on the cartridge: 646 ○○○○ Barcode: 0 50803 93100 1 - Ring 1: "*59-93100-001-000", "ifpi LQ24", "IFPI 9QH8", "59-93100-000-000" + Ring 1: "59-93100-000-000*", "ifpi LQ24", "IFPI 9QK3, IFPI 9QM3", "59-93100-000-000" --> - <software name="carsr1" cloneof="cars" supported="no"> - <description>Disney/Pixar Cars - In the Fast Lane (USA, Rev. 1)</description> + <software name="cars" cloneof="carsr1" supported="no"> + <description>Disney/Pixar Cars - In the Fast Lane (USA)</description> <year>200?</year> <publisher>VTech</publisher> <info name="serial" value="80-093100" /> <part name="cdrom" interface="vsmile_vdisk"> <diskarea name="cdrom"> - <disk name="093100_001" sha1="584bf1cdd17e33ab8f729f27e47426aa0ab2789a" /> + <disk name="093100_000" sha1="47edbad81f59bc0cebd51bc7e51137ca949890de"/> </diskarea> </part> </software> @@ -255,7 +255,7 @@ ________________________________________________________________________________ Barcode: 0 50803 93100 1 Ring 1: "*59-93100-000-000*", "ifpi LQ24", "IFPI 9QK3", "59-93100-000-000" --> - <software name="carsr3" cloneof="cars" supported="no"> + <software name="carsr3" cloneof="carsr1" supported="no"> <description>Disney/Pixar Cars - In the Fast Lane (USA, Rev. 3)</description> <year>200?</year> <publisher>VTech</publisher> @@ -267,7 +267,7 @@ ________________________________________________________________________________ </part> </software> - <software name="carsg" cloneof="cars" supported="no"> + <software name="carsg" cloneof="carsr1" supported="no"> <!-- Original files (from TeamEurope) <rom name="93104_000.bin" size="562353792" crc="e487ef85" sha1="2794bb37d03435c1318ee632d067d64aaecbbebf" /> @@ -293,7 +293,7 @@ ________________________________________________________________________________ Ring 1: "59-93107-000-001*", "IFPI 0931", "59-93-107-000-001" Ring 2: "08/15/07 −− 150750 −− A", "IFPI LQ35" --> - <software name="carss" cloneof="cars" supported="no"> + <software name="carss" cloneof="carsr1" supported="no"> <description>Cars - El Carril Rápido (Spa)</description> <year>200?</year> <publisher>VTech</publisher> @@ -551,21 +551,22 @@ ________________________________________________________________________________ </part> </software> - <!-- Needs checking what revision it is. --> - <software name="spongeis" supported="no"> - <!-- - Original files: - <rom name="spongebob squarepants - idea sponge (us).ccd" size="754" crc="51c96a38" sha1="bbd5f937a3a358d0db724492d265018911cc05ad" /> - <rom name="spongebob squarepants - idea sponge (us).cue" size="959" crc="065b5760" sha1="8c2dced3caa84c264194806f501ed4788bf772b0" /> - <rom name="spongebob squarepants - idea sponge (us).img" size="373038960" crc="f3dcd059" sha1="bc70d3a4017b6282bea065e4ed8a05c601471069" /> - <rom name="spongebob squarepants - idea sponge (us).sub" size="15226080" crc="f8ef603f" sha1="84515fb53c4de9a0072dc051d365b1cbc1065b0f" /> - --> - <description>Nickelodeon SpongeBob Squarepants - Idea Sponge (USA)</description> + <!-- + Internal Serial: 0ID_93040_000 + Volume Label: 93040_002 + Blue cartridge + Sticker on the cartridge: 637 ○○●○, 644 ○○●○ + Ring 1: "*59-93040-000-000*", "IFPI LQ17", "IFPI 9QH8", "59-93040-000" + Ring 2: "*59-93040-000-000*", "IFPI LQ24", "IFPI 9QH8", "59-93040-000" + --> + <software name="spongeisr2" supported="no"> + <description>Nickelodeon SpongeBob Squarepants - Idea Sponge (USA, Rev. 2)</description> <year>200?</year> <publisher>VTech</publisher> + <info name="serial" value="80-093040" /> <part name="cdrom" interface="vsmile_vdisk"> <diskarea name="cdrom"> - <disk name="093040" sha1="2ede68aa9df7712a1060e8f3b1be3307c38abd80"/> + <disk name="093040_002" sha1="22e5d08eeb01d660e9662c3663c5b1b26a2e57fb"/> </diskarea> </part> </software> @@ -577,7 +578,7 @@ ________________________________________________________________________________ Sticker on the cartridge: 633 ○●○○ Ring 1: "*59-93040-000-000", "IFPI LQ50", "IFPI 9QH8", "59-93040-000" --> - <software name="spongeisr1" cloneof="spongeis" supported="no"> + <software name="spongeisr1" cloneof="spongeisr2" supported="no"> <description>Nickelodeon SpongeBob Squarepants - Idea Sponge (USA, Rev. 1)</description> <year>200?</year> <publisher>VTech</publisher> @@ -589,22 +590,21 @@ ________________________________________________________________________________ </part> </software> - <!-- - Internal Serial: 0ID_93040_000 - Volume Label: 93040_002 - Blue cartridge - Sticker on the cartridge: 637 ○○●○, 644 ○○●○ - Ring 1: "*59-93040-000-000*", "IFPI LQ17", "IFPI 9QH8", "59-93040-000" - Ring 2: "*59-93040-000-000*", "IFPI LQ24", "IFPI 9QH8", "59-93040-000" - --> - <software name="spongeisr2" cloneof="spongeis" supported="no"> - <description>Nickelodeon SpongeBob Squarepants - Idea Sponge (USA, Rev. 2)</description> + <!-- Needs checking what revision it is. --> + <software name="spongeis" cloneof="spongeisr2" supported="no"> + <!-- + Original files: + <rom name="spongebob squarepants - idea sponge (us).ccd" size="754" crc="51c96a38" sha1="bbd5f937a3a358d0db724492d265018911cc05ad" /> + <rom name="spongebob squarepants - idea sponge (us).cue" size="959" crc="065b5760" sha1="8c2dced3caa84c264194806f501ed4788bf772b0" /> + <rom name="spongebob squarepants - idea sponge (us).img" size="373038960" crc="f3dcd059" sha1="bc70d3a4017b6282bea065e4ed8a05c601471069" /> + <rom name="spongebob squarepants - idea sponge (us).sub" size="15226080" crc="f8ef603f" sha1="84515fb53c4de9a0072dc051d365b1cbc1065b0f" /> + --> + <description>Nickelodeon SpongeBob Squarepants - Idea Sponge (USA)</description> <year>200?</year> <publisher>VTech</publisher> - <info name="serial" value="80-093040" /> <part name="cdrom" interface="vsmile_vdisk"> <diskarea name="cdrom"> - <disk name="093040_002" sha1="22e5d08eeb01d660e9662c3663c5b1b26a2e57fb"/> + <disk name="093040" sha1="2ede68aa9df7712a1060e8f3b1be3307c38abd80"/> </diskarea> </part> </software> @@ -615,7 +615,7 @@ ________________________________________________________________________________ Ring 1: "59-93044-000-001*", "IFPI 0907", "59-93044-000-001" Ring 2: "07/07/07 −− 149551 −− A", "IFPI LQ35" --> - <software name="spongeisg" cloneof="spongeis" supported="no"> + <software name="spongeisg" cloneof="spongeisr2" supported="no"> <description>Nick SpongeBob Schwammkopf: Ein Schwamm voller Ideen (Ger)</description> <year>200?</year> <publisher>VTech</publisher> @@ -636,7 +636,7 @@ ________________________________________________________________________________ Ring 1: "59-93047-000-001*", "IFPI 0999", "59-93047-000-001" Ring 2: "02/01/06 −− 155691 −− A", "IFPI LQ35" --> - <software name="spongeiss" cloneof="spongeis" supported="no"> + <software name="spongeiss" cloneof="spongeisr2" supported="no"> <description>Nickelodeon Bob Esponja - Misión Esponja (Spa)</description> <year>200?</year> <publisher>VTech</publisher> @@ -648,40 +648,41 @@ ________________________________________________________________________________ </part> </software> + <!-- - Internal Serial: 0ID_93120_002 - Volume Label: 93120_002 + Internal Serial: 0ID_93120_003 + Volume Label: 93120_003 Blue cartridge - Sticker on the cartridge: 634 ○○●○ - Ring 1: "*59-93120-000-000*", "IFPI LQ50", "IFPI 9QH8", "59-93120-000" + Sticker on the cartridge: 636 ○○○●, 638 ○○○● + Ring 1: "59-93120-000-000**", "IFPI LQ17", "IFPI 9QH8, IFPI 9QK3", "59-93120-000" --> - <software name="wackyracr2" supported="no"> - <description>Wacky Race on Jumpin' Bean Island (USA, Rev. 2)</description> + <software name="wackyracr3" supported="no"> + <description>Wacky Race on Jumpin' Bean Island (USA, Rev. 3)</description> <year>200?</year> <publisher>VTech</publisher> - <info name="serial" value="80-93120" /> + <info name="serial" value="093120_003" /> <part name="cdrom" interface="vsmile_vdisk"> <diskarea name="cdrom"> - <disk name="093120_002" sha1="84f658c990f6c69754092aa4d9314ebee7026c6a"/> + <disk name="093120_003" sha1="e6abe437961eb4f1e024dd744f23bb2611e65c39"/> </diskarea> </part> </software> <!-- - Internal Serial: 0ID_93120_003 - Volume Label: 93120_003 + Internal Serial: 0ID_93120_002 + Volume Label: 93120_002 Blue cartridge - Sticker on the cartridge: 636 ○○○●, 638 ○○○● - Ring 1: "59-93120-000-000**", "IFPI LQ17", "IFPI 9QH8, IFPI 9QK3", "59-93120-000" + Sticker on the cartridge: 634 ○○●○ + Ring 1: "*59-93120-000-000*", "IFPI LQ50", "IFPI 9QH8", "59-93120-000" --> - <software name="wackyracr3" cloneof="wackyracr2" supported="no"> - <description>Wacky Race on Jumpin' Bean Island (USA, Rev. 3)</description> + <software name="wackyracr2" cloneof="wackyracr3" supported="no"> + <description>Wacky Race on Jumpin' Bean Island (USA, Rev. 2)</description> <year>200?</year> <publisher>VTech</publisher> - <info name="serial" value="093120_003" /> + <info name="serial" value="80-93120" /> <part name="cdrom" interface="vsmile_vdisk"> <diskarea name="cdrom"> - <disk name="093120_003" sha1="e6abe437961eb4f1e024dd744f23bb2611e65c39"/> + <disk name="093120_002" sha1="84f658c990f6c69754092aa4d9314ebee7026c6a"/> </diskarea> </part> </software> @@ -693,7 +694,7 @@ ________________________________________________________________________________ Sticker on the cartridge: 717 ○○○○ Ring 1: "59-93123-000-000*", "IFPI LQ17", "IFPI 9QK3", "59-93123-000-000" --> - <software name="wackyracuk" cloneof="wackyracr2" supported="no"> + <software name="wackyracuk" cloneof="wackyracr3" supported="no"> <description>Wacky Race on Jumpin' Bean Island (UK)</description> <year>200?</year> <publisher>VTech</publisher> @@ -705,7 +706,7 @@ ________________________________________________________________________________ </part> </software> - <software name="wackyracg" cloneof="wackyracr2" supported="no"> + <software name="wackyracg" cloneof="wackyracr3" supported="no"> <!-- Original files (from TeamEurope) <rom name="93124_000.bin" size="457901472" crc="92a0ebe0" sha1="a3a8e54d5f12094bfc0c89954987cc793d83d3f9" /> @@ -729,7 +730,7 @@ ________________________________________________________________________________ Ring 1: "59-93127-000-001*", "IFPI 0946", "59-93-107-000-001" Ring 2: "07/12/07 −− 149610 −− A", "IFPI LQ35" --> - <software name="wackyracs" cloneof="wackyracr2" supported="no"> + <software name="wackyracs" cloneof="wackyracr3" supported="no"> <description>Carrera Loca en la Isla de las Vainas Fritas (Spa)</description> <year>200?</year> <publisher>VTech</publisher> diff --git a/hash/vsmileb_cart.xml b/hash/vsmileb_cart.xml index 857c3f9e9f2..3a7b88bfc73 100644 --- a/hash/vsmileb_cart.xml +++ b/hash/vsmileb_cart.xml @@ -32,14 +32,14 @@ VTech V.Smile Baby cartridges | | 80-099003(UK) | Learn and Discover Home (white background on title) (pack-in) | | XX | 80-099004(GE) | Meine kleinen Tierfreunde (Explore and Learn Home on label) | | | 80-099005(FR) | La Maison des animaux | -| XX | 80-099014(SE) | Lär och upptäck | +| NA | 80-099014(SE) | Lär och upptäck (no-ROM cartridge) | +========+===================+============================================================================+ | XX | 80-099020(US) | Pooh's Hundred Acre Wood Adventure | | | 80-099022(NL) | Poeh's Honderd Bunderbos Avontuur | | | 80-099023(UK) | Pooh's Hundred Acre Wood Adventure | -| XX | 80-099024(GE) | Puuhs Hundert-Morgen-Wald | +| NA | 80-099024(GE) | Puuhs Hundert-Morgen-Wald (no-ROM cartridge) | | | 80-099025(FR) | Winnie et ses amis dans la Forêt des Rêves Bleus | -| NA | 80-099027(SP) | Aventuras en el Bosque de los Cien Acres (no ROM cartridge) | +| NA | 80-099027(SP) | Aventuras en el Bosque de los Cien Acres (no-ROM cartridge) | | XX | 80-099034(SE) | Nalle Puhs Äventyr i Sjumilaskogen | +========+===================+============================================================================+ | | 80-099040(US) | Baby Einstein - World of Discoveries | @@ -51,7 +51,7 @@ VTech V.Smile Baby cartridges | | 80-099063(UK) | A Day On The Farm | | XX | 80-099064(GE) | Mein erster Bauernhof | | | 80-099065(FR) | Un jour à la ferme | -| SOON | 80-099067(SP) | Un Día en la Granja | +| XX | 80-099067(SP) | Un Día en la Granja | +========+===================+============================================================================+ | | 80-099080(US) | <Unknown> | +========+===================+============================================================================+ @@ -97,32 +97,47 @@ The V.Baby currently have no dumps available, hence the carts are temporarily li <softwarelist name="vsmileb_cart" description="VTech V.Smile Baby cartridges"> - <software name="mktierf" supported="no"> - <description>Meine kleinen Tierfreunde (Ger)</description> + <software name="dayfarmg" supported="no"> + <description>Mein erster Bauernhof (Ger)</description> <year>200?</year> <publisher>VTech</publisher> - <info name="serial" value="80-099004(GE)" /> + <info name="serial" value="80-099064(GE)" /> <part name="cart" interface="vsmileb_cart"> <feature name="pcb" value="707154" /> <feature name="pcb_model" value="707154-3" /> - <feature name="u4" value="U4" /> <!-- EPOXY BLOB ROM --> + <feature name="u4" value="U4" /> <!-- ROM --> <dataarea name="rom" size="8388608"> - <rom name="99004.u4" size="8388608" crc="7b48544b" sha1="a736ef1313762c493a366990406c3a7393457b6e" offset="0" /> + <rom name="27-08788-000.u4" size="8388608" crc="581e16f9" sha1="330b309644db9f017d275b9df0ffe7530ed5bcef" offset="0" /> </dataarea> </part> </software> - <software name="bauernhf" supported="no"> - <description>Mein erster Bauernhof (Ger)</description> + <software name="dayfarms" cloneof="dayfarmg" supported="no"> + <description>Un Día en la Granja (Spa)</description> <year>200?</year> <publisher>VTech</publisher> - <info name="serial" value="80-099064(GE)" /> + <info name="serial" value="80-099067(SP)" /> <part name="cart" interface="vsmileb_cart"> <feature name="pcb" value="707154" /> - <feature name="pcb_model" value="707154-3" /> + <feature name="pcb_model" value="707154-2" /> <feature name="u4" value="U4" /> <!-- ROM --> <dataarea name="rom" size="8388608"> - <rom name="27-08788-000.u4" size="8388608" crc="581e16f9" sha1="330b309644db9f017d275b9df0ffe7530ed5bcef" offset="0" /> + <rom name="99067 - Un Dia en la Granja (SP).bin" size="8388608" crc="03735215" sha1="228dc683ba1f7f7f4a61a34b29d61fe9077d2cab" offset="0" /> + </dataarea> + </part> + </software> + + <software name="mktierf" supported="no"> + <description>Meine kleinen Tierfreunde (Ger)</description> + <year>200?</year> + <publisher>VTech</publisher> + <info name="serial" value="80-099004(GE)" /> + <part name="cart" interface="vsmileb_cart"> + <feature name="pcb" value="707154" /> + <feature name="pcb_model" value="707154-3" /> + <feature name="u4" value="U4" /> <!-- EPOXY BLOB ROM --> + <dataarea name="rom" size="8388608"> + <rom name="99004.u4" size="8388608" crc="7b48544b" sha1="a736ef1313762c493a366990406c3a7393457b6e" offset="0" /> </dataarea> </part> </software> diff --git a/hash/vsmilem_cart.xml b/hash/vsmilem_cart.xml index 4260358da00..5963e056548 100644 --- a/hash/vsmilem_cart.xml +++ b/hash/vsmilem_cart.xml @@ -246,7 +246,7 @@ Smartbooks currently have no dumps available, hence they are temporarily listed <description>Action Mania (US, Rev. 4?)</description> <year>201?</year> <publisher>VTech</publisher> - <info name="serial" value="80-084000(SP)" /> + <info name="serial" value="80-084000(US)" /> <part name="cart" interface="vsmile_cart"> <feature name="pcb" value="708201" /> <feature name="pcb_model" value="708201-4" /> @@ -261,7 +261,7 @@ Smartbooks currently have no dumps available, hence they are temporarily listed <description>Action Mania (US, Rev. 6?)</description> <year>201?</year> <publisher>VTech</publisher> - <info name="serial" value="80-084000(SP)" /> + <info name="serial" value="80-084000(US)" /> <part name="cart" interface="vsmile_cart"> <feature name="u1" value="" /> <!-- EPOXY BLOB ROM --> <dataarea name="rom" size="8388608"> diff --git a/hash/vtech_storio_cart.xml b/hash/vtech_storio_cart.xml index 1d901cf1ff0..6a5b7ccc889 100644 --- a/hash/vtech_storio_cart.xml +++ b/hash/vtech_storio_cart.xml @@ -57,7 +57,7 @@ <software name="scoobysp" supported="no"> <description>Scooby-Doo!-Scooby-Doo y la momia (Spain)</description> - <year>20??</year> + <year>2012</year> <publisher>VTech</publisher> <part name="cart" interface="vtech_storio_cart"> <dataarea name="rom" size="0x4200000"> diff --git a/keymaps/km_de_LINUX.map b/keymaps/km_de_LINUX.map index c2a2b2d66fc..e2c4448d20a 100644 --- a/keymaps/km_de_LINUX.map +++ b/keymaps/km_de_LINUX.map @@ -9,7 +9,7 @@ ITEM_ID_EQUALS SDL_SCANCODE_EQUALS ´ # # Row 2 # -ITEM_ID_Y SDL_SCANCODE_Z Z +ITEM_ID_Y SDL_SCANCODE_Z Y ITEM_ID_OPENBRACE SDL_SCANCODE_LEFTBRACKET Ü ITEM_ID_CLOSEBRACE SDL_SCANCODE_RIGHTBRACKET + # @@ -22,7 +22,7 @@ ITEM_ID_BACKSLASH SDL_SCANCODE_BACKSLASH # # Row 4 # ITEM_ID_BACKSLASH2 SDL_SCANCODE_NONUSBACKSLASH < -ITEM_ID_Z SDL_SCANCODE_Y Y +ITEM_ID_Z SDL_SCANCODE_Y Z ITEM_ID_SLASH SDL_SCANCODE_SLASH - # # Row 5 diff --git a/scripts/src/cpu.lua b/scripts/src/cpu.lua index 4095f62a4c3..631af0dbcff 100644 --- a/scripts/src/cpu.lua +++ b/scripts/src/cpu.lua @@ -2800,3 +2800,20 @@ if (CPUS["ALPHA"]~=null or _OPTIONS["with-tools"]) then table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/alpha/alphad.cpp") table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/alpha/alphad.h") end + +-------------------------------------------------- +-- National Semiconductor HPC +--@src/devices/cpu/hpc/hpc.h,CPUS["HPC"] = true +-------------------------------------------------- + +if (CPUS["HPC"]~=null) then + files { + MAME_DIR .. "src/devices/cpu/hpc/hpc.cpp", + MAME_DIR .. "src/devices/cpu/hpc/hpc.h", + } +end + +if (CPUS["HPC"]~=null or _OPTIONS["with-tools"]) then + table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/hpc/hpcdasm.cpp") + table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/hpc/hpcdasm.h") +end diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index d5c8b579f1f..41c6d9ce8f9 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -133,6 +133,7 @@ CPUS["HMCS40"] = true --CPUS["SM510"] = true CPUS["ST62XX"] = true CPUS["DSPP"] = true +CPUS["HPC"] = true -------------------------------------------------- -- specify available sound cores diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 29f067ce502..ffab589c5b6 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -138,6 +138,7 @@ CPUS["CLIPPER"] = true CPUS["CAPRICORN"] = true CPUS["ALPHA"] = true --CPUS["DSPP"] = true +--CPUS["HPC"] = true -------------------------------------------------- -- specify available sound cores; some of these are diff --git a/src/devices/cpu/amis2000/amis2000.h b/src/devices/cpu/amis2000/amis2000.h index 2739461b44b..58665c7f6bc 100644 --- a/src/devices/cpu/amis2000/amis2000.h +++ b/src/devices/cpu/amis2000/amis2000.h @@ -30,12 +30,13 @@ public: // S2000 has a hardcoded 7seg table, that (unlike S2200) is officially // uncustomizable, but wildfire proves to be an exception to that rule. - void set_7seg_table(const u8 *ptr) { m_7seg_table = ptr; } + void set_7seg_table(const u8 *ptr) { m_7seg_table = ptr; } // d0=A, d1=B, etc. void data_64x4(address_map &map); void data_80x4(address_map &map); void program_1_5k(address_map &map); void program_1k(address_map &map); + protected: // construction/destruction amis2000_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 bu_bits, u8 callstack_bits, u8 callstack_depth, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) diff --git a/src/devices/cpu/amis2000/amis2000op.cpp b/src/devices/cpu/amis2000/amis2000op.cpp index e67ee6d153b..92c2eaae3dc 100644 --- a/src/devices/cpu/amis2000/amis2000op.cpp +++ b/src/devices/cpu/amis2000/amis2000op.cpp @@ -220,11 +220,13 @@ void amis2000_base_device::op_disn() // DISN: set D-latch to ACC+carry via on-die segment decoder static const u8 lut_segment_decoder[0x10] = { - // 0-F digits in bit order [DP]abcdefg - 0x7e, 0x30, 0x6d, 0x79, 0x33, 0x5b, 0x5f, 0x70, 0x7f, 0x7b, 0x77, 0x1f, 0x4e, 0x3d, 0x4f, 0x47 + 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, // 0-7 + 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71 // 8-F }; - const u8 *ptr = (m_7seg_table != nullptr) ? m_7seg_table : lut_segment_decoder; - m_d = ptr[m_acc] | (m_carry ? 0x80 : 0x00); + const u8 *lut = (m_7seg_table != nullptr) ? m_7seg_table : lut_segment_decoder; + + // segments are in order [DP]abcdefg + m_d = bitswap<7>(lut[m_acc],0,1,2,3,4,5,6) | (m_carry ? 0x80 : 0x00); d_latch_out(true); } @@ -500,7 +502,6 @@ void amis2000_base_device::op_rf2() } - // AMI S2152 specific handlers void amis2152_cpu_device::d2f_timer_clock() diff --git a/src/devices/cpu/hpc/hpc.cpp b/src/devices/cpu/hpc/hpc.cpp new file mode 100644 index 00000000000..399ca9164af --- /dev/null +++ b/src/devices/cpu/hpc/hpc.cpp @@ -0,0 +1,144 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/*************************************************************************** + + National Semiconductor High-Performance microController (HPC) + + Currently this device is just a stub with no actual execution core. + +**************************************************************************** + + HPC feature options by part number + + HPC16xxx Military temperature range (-55°C to +125°C) + HPC26xxx Automotive temperature range (-40°C to +105°C) + HPC36xxx Industrial temperature range (-40°C to +85°C) + HPC46xxx Commercial temperature range (0°C to +75°C) + + HPCxx1xx 8-channel A/D converter + HPCxx0xx No A/D converter + + HPCxxx6x 16k bytes of on-chip ROM + HPCxxx8x 8k bytes of on-chip ROM + HPCxxx0x No on-chip ROM + + HPCxxxx4 512 bytes of on-chip RAM + HPCxxxx3 256 bytes of on-chip RAM + +***************************************************************************/ + +#include "emu.h" +#include "hpc.h" +#include "hpcdasm.h" + +// device type definitions +DEFINE_DEVICE_TYPE(HPC46003, hpc46003_device, "hpc46003", "HPC46003") +DEFINE_DEVICE_TYPE(HPC46104, hpc46104_device, "hpc46104", "HPC46104") + + +void hpc46003_device::internal_map(address_map &map) +{ + map(0x0000, 0x00bf).ram(); + map(0x00c0, 0x00c0).rw(FUNC(hpc46003_device::psw_r), FUNC(hpc46003_device::psw_w)); + map(0x00c4, 0x00cf).ram().share("core_regs"); + // TODO: many other internal registers + map(0x01c0, 0x01ff).ram(); +} + +void hpc46104_device::internal_map(address_map &map) +{ + map(0x0000, 0x00bf).ram(); + map(0x00c0, 0x00c0).rw(FUNC(hpc46104_device::psw_r), FUNC(hpc46104_device::psw_w)); + map(0x00c4, 0x00cf).ram().share("core_regs"); + // TODO: many other internal registers + map(0x01c0, 0x02ff).ram(); +} + +std::unique_ptr<util::disasm_interface> hpc46003_device::create_disassembler() +{ + return std::make_unique<hpc16083_disassembler>(); +} + +std::unique_ptr<util::disasm_interface> hpc46104_device::create_disassembler() +{ + return std::make_unique<hpc16164_disassembler>(); +} + + +hpc_device::hpc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor map) + : cpu_device(mconfig, type, tag, owner, clock) + , m_program_config("program", ENDIANNESS_LITTLE, 16, 16, 0, map) + , m_program(nullptr) + , m_core_regs(*this, "core_regs") + , m_psw(0) + , m_icount(0) +{ +} + +hpc46003_device::hpc46003_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : hpc_device(mconfig, HPC46003, tag, owner, clock, address_map_constructor(FUNC(hpc46003_device::internal_map), this)) +{ +} + +hpc46104_device::hpc46104_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : hpc_device(mconfig, HPC46104, tag, owner, clock, address_map_constructor(FUNC(hpc46104_device::internal_map), this)) +{ +} + +device_memory_interface::space_config_vector hpc_device::memory_space_config() const +{ + return space_config_vector { + std::make_pair(AS_PROGRAM, &m_program_config), + }; +} + + +void hpc_device::device_start() +{ + m_program = &space(AS_PROGRAM); + + set_icountptr(m_icount); + + state_add(HPC_PSW, "PSW", m_psw); + state_add(HPC_SP, "SP", m_core_regs[0]); + state_add(HPC_PC, "PC", m_core_regs[1]); + state_add(STATE_GENPC, "GENPC", m_core_regs[1]).callimport().noshow(); + state_add(STATE_GENPCBASE, "CURPC", m_core_regs[1]).callimport().noshow(); + state_add(HPC_A, "A", m_core_regs[2]); + state_add(HPC_K, "K", m_core_regs[3]); + state_add(HPC_B, "B", m_core_regs[4]); + state_add(HPC_X, "X", m_core_regs[5]); + + save_item(NAME(m_psw)); +} + +void hpc_device::device_reset() +{ + m_psw = 0x00; + std::fill_n(&m_core_regs[0], 6, 0x0000); +} + + +u8 hpc_device::psw_r() +{ + return m_psw; +} + +void hpc_device::psw_w(u8 data) +{ + m_psw = data; +} + + +void hpc_device::execute_run() +{ + m_core_regs[1] = m_program->read_word(0xfffe); + debugger_instruction_hook(m_core_regs[1]); + + m_icount = 0; +} + +void hpc_device::execute_set_input(int inputnum, int state) +{ + // TODO +} diff --git a/src/devices/cpu/hpc/hpc.h b/src/devices/cpu/hpc/hpc.h new file mode 100644 index 00000000000..5f73a0ee2e6 --- /dev/null +++ b/src/devices/cpu/hpc/hpc.h @@ -0,0 +1,88 @@ +// license:BSD-3-Clause +// copyright-holders:AJR + +#ifndef MAME_CPU_HPC_HPC_H +#define MAME_CPU_HPC_HPC_H + +#pragma once + + +class hpc_device : public cpu_device +{ +public: + enum { + HPC_PSW, + HPC_SP, + HPC_PC, + HPC_A, + HPC_K, + HPC_B, + HPC_X + }; + +protected: + // construction/destruction + hpc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor map); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + + // device_execute_interface overrides + virtual void execute_run() override; + virtual void execute_set_input(int inputnum, int state) override; + + // device_memory_interface overrides + virtual space_config_vector memory_space_config() const override; + + // internal register access + u8 psw_r(); + void psw_w(u8 data); + +private: + // address space + address_space_config m_program_config; + address_space *m_program; + + // internal state + required_shared_ptr<u16> m_core_regs; + u8 m_psw; + + // execution sequencing + s32 m_icount; +}; + +class hpc46003_device : public hpc_device +{ +public: + // construction/destruction + hpc46003_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + +protected: + // device_disasm_interface overrides + virtual std::unique_ptr<util::disasm_interface> create_disassembler() override; + +private: + void internal_map(address_map &map); +}; + +class hpc46104_device : public hpc_device +{ +public: + // construction/destruction + hpc46104_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + +protected: + // device_disasm_interface overrides + virtual std::unique_ptr<util::disasm_interface> create_disassembler() override; + +private: + void internal_map(address_map &map); +}; + + +// device type declarations +DECLARE_DEVICE_TYPE(HPC46003, hpc46003_device) +DECLARE_DEVICE_TYPE(HPC46104, hpc46104_device) + +#endif // MAME_CPU_HPC_HPC_H diff --git a/src/devices/cpu/hpc/hpcdasm.cpp b/src/devices/cpu/hpc/hpcdasm.cpp new file mode 100644 index 00000000000..54cec15e627 --- /dev/null +++ b/src/devices/cpu/hpc/hpcdasm.cpp @@ -0,0 +1,760 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/*************************************************************************** + + National Semiconductor HPC disassembler + + Note that though all 16-bit fields in instructions have the MSB first, + the HPC's memory organization is in fact little-endian. This is why r16 + is not used to read them. + +***************************************************************************/ + +#include "util/disasmintf.h" +#include "hpcdasm.h" + +#include "util/strformat.h" +#include <ctype.h> + +const char *const hpc16083_disassembler::s_regs[128] = +{ + "psw", nullptr, "SP", "PC", "A", "K", "B", "X", + "enir", "irpd", "ircd", "sio", "porti", nullptr, "halten", nullptr, + "porta", "portb", nullptr, "upic", nullptr, nullptr, nullptr, nullptr, + "dira", "dirb", "bfun", nullptr, nullptr, nullptr, nullptr, nullptr, + nullptr, nullptr, "portd", nullptr, nullptr, nullptr, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, + "enu", "enui", "rbuf", "tbuf", "enur", nullptr, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, + "t4", "r4", "t5", "r5", "t6", "r6", "t7", "r7", + "pwmode", "portp", nullptr, nullptr, nullptr, nullptr, "eicon", "eicr", + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, + "i4cr", "i3cr", "i2cr", "r2", "t2", "r3", "t3", "divby", + "tmmode", "t0con", "watchdog", nullptr, nullptr, nullptr, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr +}; + +const char *const hpc16164_disassembler::s_regs[128] = +{ + "psw", nullptr, "SP", "PC", "A", "K", "B", "X", + "enir", "irpd", "ircd", "sio", "porti", nullptr, "halten", "romdump", + "porta", "portb", nullptr, "upic", nullptr, nullptr, nullptr, nullptr, + "dira", "dirb", "bfun", nullptr, nullptr, nullptr, nullptr, nullptr, + "adcr1", "adcr2", "portd", "adcr3", nullptr, nullptr, nullptr, nullptr, + "ad0", "ad1", "ad2", "ad3", "ad4", "ad5", "ad6", "ad7", + "enu", "enui", "rbuf", "tbuf", "enur", nullptr, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, + "t4", "r4", "t5", "r5", "t6", "r6", "t7", "r7", + "pwmode", "portp", nullptr, nullptr, nullptr, nullptr, "eicon", "eicr", + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, + "i4cr", "i3cr", "i2cr", "r2", "t2", "r3", "t3", "divby", + "tmmode", "t0con", "watchdog", nullptr, nullptr, nullptr, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr +}; + +hpc_disassembler::hpc_disassembler(const char *const regs[]) + : util::disasm_interface() + , m_regs(regs) +{ +} + +u32 hpc_disassembler::opcode_alignment() const +{ + return 1; +} + +void hpc_disassembler::format_register(std::ostream &stream, u16 reg) const +{ + if (reg >= 0x00c0 && reg < 0x01c0) + { + const char *name = m_regs[(reg - 0x00c0) >> 1]; + if (name != nullptr) + { + stream << name; + if (BIT(reg, 0)) + stream << "+1"; + return; + } + } + + util::stream_format(stream, "0%X", reg); +} + +void hpc_disassembler::format_immediate_byte(std::ostream &stream, u8 data) const +{ + stream << "#"; + if (data >= 0x10) + stream << "0"; + util::stream_format(stream, "%02X", data); +} + +void hpc_disassembler::format_immediate_word(std::ostream &stream, u16 data) const +{ + stream << "#"; + if (data >= 0x1000) + stream << "0"; + util::stream_format(stream, "%04X", data); +} + +void hpc_disassembler::disassemble_op(std::ostream &stream, const char *op, u16 reg, u16 src, bool imm, bool indir, bool idx, bool w) const +{ + util::stream_format(stream, "%-8s", op); + if (idx) + stream << "A"; + else + format_register(stream, reg); + stream << ","; + if (imm) + { + if (w) + format_immediate_word(stream, src); + else + format_immediate_byte(stream, src); + } + else + { + if (idx) + util::stream_format(stream, "0%X", u16(reg)); + + if (indir) + stream << "["; + format_register(stream, src); + if (indir) + stream << "]"; + + if (w) + stream << ".w"; + else + stream << ".b"; + } +} + +void hpc_disassembler::disassemble_unary_op(std::ostream &stream, const char *op, u16 offset, u16 src, bool indir, bool idx, bool w) const +{ + util::stream_format(stream, "%-8s", op); + if (idx) + util::stream_format(stream, "0%X", offset); + + if (indir) + stream << "["; + format_register(stream, src); + if (indir) + stream << "]"; + + if (w) + { + if (src < 0x00c4 || src >= 0x00d0 || indir) + stream << ".w"; + } + else + stream << ".b"; +} + +void hpc_disassembler::disassemble_bit_op(std::ostream &stream, const char *op, u8 bit, u16 offset, u16 src, bool indir, bool idx) const +{ + if (src >= 0x00c0 && src < 0x01c0 && BIT(src, 0) && !indir && m_regs[(src - 0x00c0) >> 1] != nullptr) + { + src &= 0xfffe; + bit += 8; + } + + util::stream_format(stream, "%-8s%d,", op, bit); + + if (idx) + util::stream_format(stream, "0%X", offset); + + if (indir) + stream << "["; + format_register(stream, src); + if (indir) + stream << "].b"; +} + +offs_t hpc_disassembler::disassemble(std::ostream &stream, offs_t pc, const hpc_disassembler::data_buffer &opcodes, const hpc_disassembler::data_buffer ¶ms) +{ + u8 opcode = opcodes.r8(pc); + u16 reg = REGISTER_A; + u16 src = REGISTER_B; + bool imm = false; + bool dmode = false; + bool indir = true; + bool idx = false; + bool jmp = false; + offs_t bytes = 1; + + switch (opcode) + { + case 0x20: case 0x21: case 0x22: case 0x23: + case 0x24: case 0x25: case 0x26: case 0x27: + case 0x28: case 0x29: case 0x2a: case 0x2b: + case 0x2c: case 0x2d: case 0x2e: case 0x2f: + jmp = true; + src = 0xffd0 + (opcode & 0x0f) * 2; + bytes = 1; + break; + + case 0x30: case 0x31: case 0x32: case 0x33: + jmp = true; + src = pc + 2 + ((opcode & 0x03) << 8 | opcodes.r8(pc + 1)); + bytes = 2; + break; + + case 0x34: case 0x35: case 0x36: case 0x37: + jmp = true; + src = pc - ((opcode & 0x03) << 8 | opcodes.r8(pc + 1)); + bytes = 2; + break; + + case 0x38: case 0x39: case 0x3a: + reg = REGISTER_X; + break; + + case 0x3f: + case 0x89: case 0x8a: + case 0xa9: case 0xaa: case 0xaf: + indir = false; + src = opcodes.r8(pc + 1); + bytes = 2; + break; + + case 0x40: case 0x41: case 0x42: case 0x43: + case 0x44: case 0x45: case 0x46: case 0x47: + case 0x48: case 0x49: case 0x4a: case 0x4b: + case 0x4c: case 0x4d: case 0x4e: case 0x4f: + case 0x50: case 0x51: case 0x52: case 0x53: + case 0x54: case 0x55: case 0x56: case 0x57: + case 0x58: case 0x59: case 0x5a: case 0x5b: + case 0x5c: case 0x5d: case 0x5e: case 0x5f: + jmp = true; + src = pc + 1 + (opcode & 0x1f); + break; + + case 0x60: case 0x61: case 0x62: case 0x63: + case 0x64: case 0x65: case 0x66: case 0x67: + case 0x68: case 0x69: case 0x6a: case 0x6b: + case 0x6c: case 0x6d: case 0x6e: case 0x6f: + case 0x70: case 0x71: case 0x72: case 0x73: + case 0x74: case 0x75: case 0x76: case 0x77: + case 0x78: case 0x79: case 0x7a: case 0x7b: + case 0x7c: case 0x7d: case 0x7e: case 0x7f: + jmp = true; + src = pc - (opcode & 0x1f); + break; + + case 0x80: case 0x82: + case 0xa0: + dmode = true; + indir = false; + if (BIT(opcode, 1)) + imm = true; + + src = opcodes.r8(pc + 1); + reg = opcodes.r8(pc + 2); + opcode = opcodes.r8(pc + 3); + bytes = 4; + break; + + case 0x84: case 0x86: + case 0xa4: + dmode = true; + indir = false; + if (BIT(opcode, 1)) + imm = true; + + src = (opcodes.r8(pc + 1) << 8) | opcodes.r8(pc + 2); + reg = opcodes.r8(pc + 3); + opcode = opcodes.r8(pc + 4); + bytes = 5; + break; + + case 0x81: case 0x83: + case 0xa1: + dmode = true; + indir = false; + if (BIT(opcode, 1)) + imm = true; + + src = opcodes.r8(pc + 1); + reg = (opcodes.r8(pc + 2) << 8) | opcodes.r8(pc + 3); + opcode = opcodes.r8(pc + 4); + bytes = 5; + break; + + case 0xa2: + idx = true; + reg = opcodes.r8(pc + 1); + src = opcodes.r8(pc + 2); + opcode = opcodes.r8(pc + 3); + bytes = 4; + break; + + case 0x85: case 0x87: + case 0xa5: + dmode = true; + indir = false; + if (BIT(opcode, 1)) + imm = true; + + src = (opcodes.r8(pc + 1) << 8) | opcodes.r8(pc + 2); + reg = (opcodes.r8(pc + 3) << 8) | opcodes.r8(pc + 4); + opcode = opcodes.r8(pc + 5); + bytes = 6; + break; + + case 0xa6: + idx = true; + reg = (opcodes.r8(pc + 1) << 8) | opcodes.r8(pc + 2); + src = opcodes.r8(pc + 3); + opcode = opcodes.r8(pc + 4); + bytes = 5; + break; + + case 0x88: case 0x8b: case 0x8e: + case 0xa8: case 0xab: case 0xae: + indir = false; + src = opcodes.r8(pc + 1); + bytes = 2; + break; + + case 0x8c: + case 0xac: + indir = false; + src = opcodes.r8(pc + 1); + reg = opcodes.r8(pc + 2); + bytes = 3; + break; + + case 0x8d: + imm = true; + src = opcodes.r8(pc + 1); + reg = opcodes.r8(pc + 2); + bytes = 3; + break; + + case 0x8f: + src = REGISTER_X; + opcode = opcodes.r8(pc + 1); + bytes = 2; + break; + + case 0x90: case 0x91: case 0x92: case 0x93: + imm = true; + reg = 0x00c8 | ((opcode & 0x03) << 1); + src = opcodes.r8(pc + 1); + bytes = 2; + break; + + case 0x98: case 0x99: case 0x9a: case 0x9b: + case 0x9c: case 0x9d: case 0x9e: case 0x9f: + imm = true; + src = opcodes.r8(pc + 1); + bytes = 2; + break; + + case 0x94: + jmp = true; + src = pc + 2 + opcodes.r8(pc + 1); + bytes = 2; + break; + + case 0x95: + jmp = true; + src = pc - opcodes.r8(pc + 1); + bytes = 2; + break; + + case 0x96: + indir = false; + src = opcodes.r8(pc + 1); + opcode = opcodes.r8(pc + 2); + bytes = 3; + break; + + case 0x97: + indir = false; + imm = true; + src = opcodes.r8(pc + 1); + reg = opcodes.r8(pc + 2); + bytes = 3; + break; + + case 0xa7: + imm = true; + src = (opcodes.r8(pc + 1) << 8) | opcodes.r8(pc + 2); + reg = (opcodes.r8(pc + 3) << 8) | opcodes.r8(pc + 4); + bytes = 5; + break; + + case 0xad: + src = opcodes.r8(pc + 1); + opcode = opcodes.r8(pc + 2); + bytes = 3; + break; + + case 0xb0: case 0xb1: case 0xb2: case 0xb3: + imm = true; + reg = 0x00c8 | ((opcode & 0x03) << 1); + src = (opcodes.r8(pc + 1) << 8) | opcodes.r8(pc + 2); + bytes = 3; + break; + + case 0xb8: case 0xb9: case 0xba: case 0xbb: + case 0xbc: case 0xbd: case 0xbe: case 0xbf: + imm = true; + src = (opcodes.r8(pc + 1) << 8) | opcodes.r8(pc + 2); + bytes = 3; + break; + + case 0xb4: case 0xb5: + jmp = true; + src = pc + 3 + ((opcodes.r8(pc + 1) << 8) | opcodes.r8(pc + 2)); + bytes = 3; + break; + + case 0xb6: + indir = false; + src = (opcodes.r8(pc + 1) << 8) | opcodes.r8(pc + 2); + opcode = opcodes.r8(pc + 3); + bytes = 4; + break; + + case 0xb7: + imm = true; + src = (opcodes.r8(pc + 1) << 8) | opcodes.r8(pc + 2); + reg = opcodes.r8(pc + 3); + bytes = 4; + break; + + case 0xd4: case 0xd5: case 0xd6: + case 0xf4: case 0xf5: case 0xf6: + src = REGISTER_X; + break; + } + + switch (opcode) + { + case 0x00: + util::stream_format(stream, "%-8sA", "clr"); + break; + + case 0x01: + util::stream_format(stream, "%-8sA", "comp"); + break; + + case 0x02: + stream << "sc"; + break; + + case 0x03: + stream << "rc"; + break; + + case 0x04: + util::stream_format(stream, "%-8sA", "inc"); + break; + + case 0x05: + util::stream_format(stream, "%-8sA", "dec"); + break; + + case 0x06: + stream << "ifnc"; + break; + + case 0x07: + stream << "ifc"; + break; + + case 0x08: case 0x09: case 0x0a: case 0x0b: + case 0x0c: case 0x0d: case 0x0e: case 0x0f: + disassemble_bit_op(stream, "sbit", opcode & 0x07, reg, src, indir, idx); + break; + + case 0x10: case 0x11: case 0x12: case 0x13: + case 0x14: case 0x15: case 0x16: case 0x17: + disassemble_bit_op(stream, "ifbit", opcode & 0x07, reg, src, indir, idx); + break; + + case 0x18: case 0x19: case 0x1a: case 0x1b: + case 0x1c: case 0x1d: case 0x1e: case 0x1f: + disassemble_bit_op(stream, "rbit", opcode & 0x07, reg, src, indir, idx); + break; + + case 0x20: case 0x21: case 0x22: case 0x23: + case 0x24: case 0x25: case 0x26: case 0x27: + case 0x28: case 0x29: case 0x2a: case 0x2b: + case 0x2c: case 0x2d: case 0x2e: case 0x2f: + util::stream_format(stream, "%-8s", "jsrp"); + if (jmp) + util::stream_format(stream, "[0%X]", src); + else + stream << "???"; + bytes |= STEP_OVER; + break; + + case 0x30: case 0x31: case 0x32: case 0x33: + case 0x34: case 0x35: case 0x36: case 0x37: + util::stream_format(stream, "%-8s", "jsr"); + if (jmp) + util::stream_format(stream, "0%X", src); + else + stream << "???"; + bytes |= STEP_OVER; + break; + + case 0x38: + disassemble_op(stream, "rbit", reg, src, imm, indir, idx, false); + break; + + case 0x39: + disassemble_op(stream, "sbit", reg, src, imm, indir, idx, false); + break; + + case 0x3a: + disassemble_op(stream, "ifbit", reg, src, imm, indir, idx, false); + break; + + case 0x3b: + util::stream_format(stream, "%-8sA", "swap"); + break; + + case 0x3c: + stream << "ret"; + bytes |= STEP_OUT; + break; + + case 0x3d: + stream << "retsk"; + bytes |= STEP_OUT; + break; + + case 0x3e: + stream << "reti"; + bytes |= STEP_OUT; + break; + + case 0x3f: + util::stream_format(stream, "%-8s", "pop"); + format_register(stream, src); + break; + + case 0x40: + stream << "nop"; + break; + + case 0x41: case 0x42: case 0x43: + case 0x44: case 0x45: case 0x46: case 0x47: + case 0x48: case 0x49: case 0x4a: case 0x4b: + case 0x4c: case 0x4d: case 0x4e: case 0x4f: + case 0x50: case 0x51: case 0x52: case 0x53: + case 0x54: case 0x55: case 0x56: case 0x57: + case 0x58: case 0x59: case 0x5a: case 0x5b: + case 0x5c: case 0x5d: case 0x5e: case 0x5f: + case 0x60: case 0x61: case 0x62: case 0x63: + case 0x64: case 0x65: case 0x66: case 0x67: + case 0x68: case 0x69: case 0x6a: case 0x6b: + case 0x6c: case 0x6d: case 0x6e: case 0x6f: + case 0x70: case 0x71: case 0x72: case 0x73: + case 0x74: case 0x75: case 0x76: case 0x77: + case 0x78: case 0x79: case 0x7a: case 0x7b: + case 0x7c: case 0x7d: case 0x7e: case 0x7f: + util::stream_format(stream, "%-8s", "jp"); + if (jmp) + util::stream_format(stream, "0%X", src); + else + stream << "???"; + break; + + case 0x88: case 0x8c: + case 0x90: case 0x91: case 0x92: case 0x93: + case 0x97: + case 0xa8: case 0xac: + case 0xb0: case 0xb1: case 0xb2: case 0xb3: + case 0xb7: + case 0xc4: + case 0xd4: + case 0xe4: + case 0xf4: + disassemble_op(stream, "ld", reg, src, imm, indir, idx, BIT(opcode, 5)); + break; + + case 0x89: + case 0xa9: + disassemble_unary_op(stream, "inc", reg, src, indir, idx, BIT(opcode, 5)); + break; + + case 0x8a: + case 0xaa: + disassemble_unary_op(stream, "decsz", reg, src, indir, idx, BIT(opcode, 5)); + bytes |= STEP_OVER | (1 << OVERINSTSHIFT); + break; + + case 0x8b: + case 0xab: + case 0xc6: + case 0xd6: + case 0xe6: + case 0xf6: + disassemble_op(stream, dmode ? "ld" : "st", reg, src, imm, indir, idx, BIT(opcode, 5)); + break; + + case 0x8d: + util::stream_format(stream, "%-8sBK,", "ld"); + format_immediate_byte(stream, src); + stream << ","; + format_immediate_byte(stream, reg); + break; + + case 0x8e: + case 0xae: + case 0xc5: + case 0xd5: + case 0xe5: + case 0xf5: + disassemble_op(stream, "x", reg, src, imm, indir, idx, BIT(opcode, 5)); + break; + + case 0x94: case 0x95: + util::stream_format(stream, "%-8s", "jp"); + if (jmp) + util::stream_format(stream, "0%X", src); + else + stream << "???"; + break; + + case 0x98: case 0xb8: case 0xd8: case 0xf8: + disassemble_op(stream, "add", reg, src, imm, indir, idx, BIT(opcode, 5)); + break; + + case 0x99: case 0xb9: case 0xd9: case 0xf9: + disassemble_op(stream, "and", reg, src, imm, indir, idx, BIT(opcode, 5)); + break; + + case 0x9a: case 0xba: case 0xda: case 0xfa: + disassemble_op(stream, "or", reg, src, imm, indir, idx, BIT(opcode, 5)); + break; + + case 0x9b: case 0xbb: case 0xdb: case 0xfb: + disassemble_op(stream, "xor", reg, src, imm, indir, idx, BIT(opcode, 5)); + break; + + case 0x9c: case 0xbc: case 0xdc: case 0xfc: + disassemble_op(stream, "ifeq", reg, src, imm, indir, idx, BIT(opcode, 5)); + break; + + case 0x9d: case 0xbd: case 0xdd: case 0xfd: + disassemble_op(stream, "ifgt", reg, src, imm, indir, idx, BIT(opcode, 5)); + break; + + case 0x9e: case 0xbe: case 0xde: case 0xfe: + disassemble_op(stream, "mult", reg, src, imm, indir, idx, BIT(opcode, 5)); + break; + + case 0x9f: case 0xbf: case 0xdf: case 0xff: + disassemble_op(stream, "div", reg, src, imm, indir, idx, BIT(opcode, 5)); + break; + + case 0xa7: + util::stream_format(stream, "%-8sBK,", "ld"); + format_immediate_word(stream, src); + stream << ","; + format_immediate_word(stream, reg); + break; + + case 0xaf: + util::stream_format(stream, "%-8s", "push"); + format_register(stream, src); + break; + + case 0xb4: + util::stream_format(stream, "%-8s", "jmpl"); + if (jmp) + util::stream_format(stream, "0%X", src); + else + stream << "???"; + break; + + case 0xb5: + util::stream_format(stream, "%-8s", "jsrl"); + if (jmp) + util::stream_format(stream, "0%X", src); + else + stream << "???"; + bytes |= STEP_OVER; + break; + + case 0xc0: case 0xc2: + case 0xe0: case 0xe2: + util::stream_format(stream, "%-8sA,[B%c].%c", "lds", + BIT(opcode, 1) ? '-' : '+', + BIT(opcode, 5) ? 'w' : 'b'); + bytes |= STEP_OVER | (1 << OVERINSTSHIFT); + break; + + case 0xd0: case 0xd2: + case 0xf0: case 0xf2: + util::stream_format(stream, "%-8sA,[X%c].%c", "ld", + BIT(opcode, 1) ? '-' : '+', + BIT(opcode, 5) ? 'w' : 'b'); + break; + + case 0xc1: case 0xc3: + case 0xe1: case 0xe3: + util::stream_format(stream, "%-8sA,[B%c].%c", "xs", + BIT(opcode, 1) ? '-' : '+', + BIT(opcode, 5) ? 'w' : 'b'); + bytes |= STEP_OVER | (1 << OVERINSTSHIFT); + break; + + case 0xd1: case 0xd3: + case 0xf1: case 0xf3: + util::stream_format(stream, "%-8sA,[X%c].%c", "x", + BIT(opcode, 1) ? '-' : '+', + BIT(opcode, 5) ? 'w' : 'b'); + break; + + case 0xc7: case 0xe7: + util::stream_format(stream, "%-8sA", BIT(opcode, 5) ? "shl" : "shr"); + break; + + case 0xd7: case 0xf7: + util::stream_format(stream, "%-8sA", BIT(opcode, 5) ? "rlc" : "rrc"); + break; + + case 0xc8: case 0xe8: + disassemble_op(stream, "adc", reg, src, imm, indir, idx, BIT(opcode, 5)); + break; + + case 0xc9: case 0xe9: + disassemble_op(stream, "dadc", reg, src, imm, indir, idx, BIT(opcode, 5)); + break; + + case 0xca: case 0xea: + disassemble_op(stream, "dsubc", reg, src, imm, indir, idx, BIT(opcode, 5)); + break; + + case 0xcb: case 0xeb: + disassemble_op(stream, "subc", reg, src, imm, indir, idx, BIT(opcode, 5)); + break; + + case 0xcc: case 0xec: + stream << "jid"; + if (BIT(opcode, 5)) + stream << "w"; + break; + + case 0xcf: case 0xef: + disassemble_op(stream, "divd", reg, src, imm, indir, idx, BIT(opcode, 5)); + break; + + default: + stream << "???"; + break; + } + + return bytes | SUPPORTED; +} diff --git a/src/devices/cpu/hpc/hpcdasm.h b/src/devices/cpu/hpc/hpcdasm.h new file mode 100644 index 00000000000..ed57c6b1a35 --- /dev/null +++ b/src/devices/cpu/hpc/hpcdasm.h @@ -0,0 +1,58 @@ +// license:BSD-3-Clause +// copyright-holders:AJR + +#ifndef MAME_CPU_HPC_HPCDASM_H +#define MAME_CPU_HPC_HPCDASM_H + +#pragma once + +class hpc_disassembler : public util::disasm_interface +{ +protected: + enum : u16 + { + REGISTER_A = 0x00c8, + REGISTER_K = 0x00ca, + REGISTER_B = 0x00cc, + REGISTER_X = 0x00ce + }; + + // construction/destruction + hpc_disassembler(const char *const regs[]); + + // disassembler overrides + virtual u32 opcode_alignment() const override; + virtual offs_t disassemble(std::ostream &stream, offs_t pc, const data_buffer &opcodes, const data_buffer ¶ms) override; + +private: + // internal helpers + void format_register(std::ostream &stream, u16 reg) const; + void format_immediate_byte(std::ostream &stream, u8 data) const; + void format_immediate_word(std::ostream &stream, u16 data) const; + void disassemble_op(std::ostream &stream, const char *op, u16 reg, u16 src, bool imm, bool indir, bool idx, bool w) const; + void disassemble_unary_op(std::ostream &stream, const char *op, u16 offset, u16 src, bool indir, bool idx, bool w) const; + void disassemble_bit_op(std::ostream &stream, const char *op, u8 bit, u16 offset, u16 src, bool indir, bool idx) const; + + // register names + const char *const *m_regs; +}; + +class hpc16083_disassembler : public hpc_disassembler +{ +public: + hpc16083_disassembler() : hpc_disassembler(s_regs) { } + +private: + static const char *const s_regs[128]; +}; + +class hpc16164_disassembler : public hpc_disassembler +{ +public: + hpc16164_disassembler() : hpc_disassembler(s_regs) { } + +private: + static const char *const s_regs[128]; +}; + +#endif // MAME_CPU_HPC_HPCDASM_H diff --git a/src/devices/cpu/pic16c5x/pic16c5x.cpp b/src/devices/cpu/pic16c5x/pic16c5x.cpp index fe1b0280d2a..21907b7d369 100644 --- a/src/devices/cpu/pic16c5x/pic16c5x.cpp +++ b/src/devices/cpu/pic16c5x/pic16c5x.cpp @@ -83,8 +83,8 @@ DEFINE_DEVICE_TYPE(PIC16C56, pic16c56_device, "pic16c56", "Microchip PIC16C56") DEFINE_DEVICE_TYPE(PIC16C57, pic16c57_device, "pic16c57", "Microchip PIC16C57") DEFINE_DEVICE_TYPE(PIC16C58, pic16c58_device, "pic16c58", "Microchip PIC16C58") -DEFINE_DEVICE_TYPE(PIC1650, pic1650_device, "pic1650", "Microchip PIC1650") -DEFINE_DEVICE_TYPE(PIC1655, pic1655_device, "pic1655", "Microchip PIC1655") +DEFINE_DEVICE_TYPE(PIC1650, pic1650_device, "pic1650", "GI PIC1650") +DEFINE_DEVICE_TYPE(PIC1655, pic1655_device, "pic1655", "GI PIC1655") /**************************************************************************** diff --git a/src/devices/machine/upd765.cpp b/src/devices/machine/upd765.cpp index ac5359ae07f..4a55eba7bae 100644 --- a/src/devices/machine/upd765.cpp +++ b/src/devices/machine/upd765.cpp @@ -18,6 +18,7 @@ #define LOG_MATCH (1U << 10) // Sector matching #define LOG_STATE (1U << 11) // State machine #define LOG_LIVE (1U << 12) // Live states +#define LOG_DONE (1U << 13) // Command done #define VERBOSE (LOG_GENERAL | LOG_WARN ) @@ -38,6 +39,7 @@ #define LOGMATCH(...) LOGMASKED(LOG_MATCH, __VA_ARGS__) #define LOGSTATE(...) LOGMASKED(LOG_STATE, __VA_ARGS__) #define LOGLIVE(...) LOGMASKED(LOG_LIVE, __VA_ARGS__) +#define LOGDONE(...) LOGMASKED(LOG_DONE, __VA_ARGS__) DEFINE_DEVICE_TYPE(UPD765A, upd765a_device, "upd765a", "NEC uPD765A FDC") DEFINE_DEVICE_TYPE(UPD765B, upd765b_device, "upd765b", "NEC uPD765B FDC") @@ -1484,7 +1486,7 @@ void upd765_family_device::execute_command(int cmd) void upd765_family_device::command_end(floppy_info &fi, bool data_completion) { - LOGCOMMAND("command done (%s) - %s\n", data_completion ? "data" : "seek", results()); + LOGDONE("command done (%s) - %s\n", data_completion ? "data" : "seek", results()); fi.main_state = fi.sub_state = IDLE; if(data_completion) data_irq = true; @@ -1756,7 +1758,16 @@ void upd765_family_device::read_data_continue(floppy_info &fi) fi.sub_state = COMMAND_DONE; break; } + // MZ: This st1 handling ensures that both HX5102 floppy and the + // Speedlock protection scheme are properly working. + // a) HX5102 requires that the ND flag not be set when no address + // marks could be found on the track at all (particularly due to + // wrong density) + // b) Speedlock requires the ND flag be set when there are valid + // sectors on the track, but the desired sector is missing, also + // when it has no valid address marks st1 &= ~ST1_MA; + st1 |= ST1_ND; if(!sector_matches()) { if(cur_live.idbuf[0] != command[2]) { if(cur_live.idbuf[0] == 0xff) @@ -1768,6 +1779,7 @@ void upd765_family_device::read_data_continue(floppy_info &fi) live_start(fi, SEARCH_ADDRESS_MARK_HEADER); return; } + st1 &= ~ST1_ND; LOGRW("reading sector %02x %02x %02x %02x\n", cur_live.idbuf[0], cur_live.idbuf[1], @@ -1786,11 +1798,6 @@ void upd765_family_device::read_data_continue(floppy_info &fi) case SCAN_ID_FAILED: LOGSTATE("SCAN_ID_FAILED\n"); fi.st0 |= ST0_FAIL; - // MZ: The HX5102 does not correctly detect a FM/MFM mismatch - // when the ND bit is set, because in the firmware the ND bit wins - // against MA, and thus concludes that the format is correct - // but the sector is missing. - // st1 |= ST1_ND; fi.sub_state = COMMAND_DONE; break; @@ -1862,7 +1869,7 @@ void upd765_family_device::write_data_start(floppy_info &fi) fi.main_state = WRITE_DATA; fi.sub_state = HEAD_LOAD; mfm = command[0] & 0x40; - LOGRW("command write%s data%s%s cmd=%02x sel=%x chrn=(%d, %d, %d, %d) eot=%02x gpl=%02x dtl=%02x rate=%d\n", + LOGCOMMAND("command write%s data%s%s cmd=%02x sel=%x chrn=(%d, %d, %d, %d) eot=%02x gpl=%02x dtl=%02x rate=%d\n", command[0] & 0x08 ? " deleted" : "", command[0] & 0x80 ? " mt" : "", command[0] & 0x40 ? " mfm" : "", @@ -1930,6 +1937,11 @@ void upd765_family_device::write_data_continue(floppy_info &fi) break; } st1 &= ~ST1_MA; + LOGRW("writing sector %02x %02x %02x %02x\n", + cur_live.idbuf[0], + cur_live.idbuf[1], + cur_live.idbuf[2], + cur_live.idbuf[3]); sector_size = calc_sector_size(cur_live.idbuf[3]); fifo_expect(sector_size, true); fi.sub_state = SECTOR_WRITTEN; @@ -2002,7 +2014,7 @@ void upd765_family_device::read_track_start(floppy_info &fi) mfm = command[0] & 0x40; sectors_read = 0; - LOGRW("command read track%s cmd=%02x sel=%x chrn=(%d, %d, %d, %d) eot=%02x gpl=%02x dtl=%02x rate=%d\n", + LOGCOMMAND("command read track%s cmd=%02x sel=%x chrn=(%d, %d, %d, %d) eot=%02x gpl=%02x dtl=%02x rate=%d\n", command[0] & 0x40 ? " mfm" : "", command[0], command[1], @@ -2326,8 +2338,7 @@ void upd765_family_device::read_id_continue(floppy_info &fi) case SCAN_ID_FAILED: LOGSTATE("SCAN_ID_FAILED\n"); fi.st0 |= ST0_FAIL; - // st1 |= ST1_ND|ST1_MA; - st1 = ST1_MA; + st1 |= ST1_ND|ST1_MA; fi.sub_state = COMMAND_DONE; break; diff --git a/src/devices/sound/pokey.cpp b/src/devices/sound/pokey.cpp index a7f175ddd1a..231dc01e8bf 100644 --- a/src/devices/sound/pokey.cpp +++ b/src/devices/sound/pokey.cpp @@ -161,8 +161,6 @@ #define CLK_28 1 #define CLK_114 2 -static const int clock_divisors[3] = {1, DIV_64, DIV_15}; - constexpr unsigned pokey_device::FREQ_17_EXACT; @@ -253,7 +251,8 @@ void pokey_device::device_start() m_pot_counter = 0; m_kbd_cnt = 0; m_out_filter = 0; - m_output = 0; + m_out_raw = 0; + m_old_raw_inval = true; m_kbd_state = 0; /* reset more internal state */ @@ -435,14 +434,7 @@ void pokey_device::execute_run() { do { - uint32_t new_out = step_one_clock(); - if (m_output != new_out) - { - //printf("forced update %08d %08x\n", m_icount, m_output); - m_stream->update(); - m_output = new_out; - } - + step_one_clock(); m_icount--; } while (m_icount > 0); @@ -570,25 +562,12 @@ void pokey_device::step_pot() * */ -uint32_t pokey_device::step_one_clock(void) +void pokey_device::step_one_clock(void) { - int const base_clock = (m_AUDCTL & CLK_15KHZ) ? CLK_114 : CLK_28; - + /* Clocks only count if we are not in a reset */ if (m_SKCTL & SK_RESET) { - /* Clocks only count if we are not in a reset */ - int clock_triggered[3] = {0,0,0}; - int clk; - for (clk = 0; clk < 3; clk++) - { - m_clock_cnt[clk]++; - if (m_clock_cnt[clk] >= clock_divisors[clk]) - { - m_clock_cnt[clk] = 0; - clock_triggered[clk] = 1; - } - } - + /* polynom pointers */ if (++m_p4 == 0x0000f) m_p4 = 0; if (++m_p5 == 0x0001f) @@ -598,7 +577,23 @@ uint32_t pokey_device::step_one_clock(void) if (++m_p17 == 0x1ffff) m_p17 = 0; - clk = (m_AUDCTL & CH1_HICLK) ? CLK_1 : base_clock; + /* CLK_1: no presacler */ + int clock_triggered[3] = {1,0,0}; + /* CLK_28: prescaler 63.9211 kHz */ + if (++m_clock_cnt[CLK_28] >= DIV_64) + { + m_clock_cnt[CLK_28] = 0; + clock_triggered[CLK_28] = 1; + } + /* CLK_114 prescaler 15.6999 kHz */ + if (++m_clock_cnt[CLK_114] >= DIV_15) + { + m_clock_cnt[CLK_114] = 0; + clock_triggered[CLK_114] = 1; + } + + int const base_clock = (m_AUDCTL & CLK_15KHZ) ? CLK_114 : CLK_28; + int clk = (m_AUDCTL & CH1_HICLK) ? CLK_1 : base_clock; if (clock_triggered[clk]) m_channel[CHAN1].inc_chan(); @@ -682,12 +677,23 @@ uint32_t pokey_device::step_one_clock(void) m_channel[CHAN1].m_filter_sample = 1; } - uint32_t sum = 0; - for (int ch = 0; ch < 4; ch++) + if (m_old_raw_inval) { - sum |= (((((m_channel[ch].m_output ^ m_channel[ch].m_filter_sample) || (m_channel[ch].m_AUDC & VOLUME_ONLY)) ? (m_channel[ch].m_AUDC & VOLUME_MASK) : 0 )) << (ch * 4)); + uint32_t sum = 0; + for (int ch = 0; ch < 4; ch++) + { + sum |= (((m_channel[ch].m_output ^ m_channel[ch].m_filter_sample) || (m_channel[ch].m_AUDC & VOLUME_ONLY)) ? + ((m_channel[ch].m_AUDC & VOLUME_MASK) << (ch * 4)) : 0); + } + + if (m_out_raw != sum) + { + //printf("forced update %08d %08x\n", m_icount, m_out_raw); + m_stream->update(); + } + m_old_raw_inval = false; + m_out_raw = sum; } - return sum; } //------------------------------------------------- @@ -704,7 +710,7 @@ void pokey_device::sound_stream_update(sound_stream &stream, stream_sample_t **i { int32_t out = 0; for (int i = 0; i < 4; i++) - out += ((m_output >> (4*i)) & 0x0f); + out += ((m_out_raw >> (4*i)) & 0x0f); out *= POKEY_DEFAULT_GAIN; out = (out > 0x7fff) ? 0x7fff : out; while( samples > 0 ) @@ -715,7 +721,7 @@ void pokey_device::sound_stream_update(sound_stream &stream, stream_sample_t **i } else if (m_output_type == RC_LOWPASS) { - double rTot = m_voltab[m_output]; + double rTot = m_voltab[m_out_raw]; double V0 = rTot / (rTot+m_r_pullup) * m_v_ref / 5.0 * 32767.0; double mult = (m_cap == 0.0) ? 1.0 : 1.0 - exp(-(rTot + m_r_pullup) / (m_cap * m_r_pullup * rTot) * m_clock_period.as_double()); @@ -731,7 +737,7 @@ void pokey_device::sound_stream_update(sound_stream &stream, stream_sample_t **i } else if (m_output_type == OPAMP_C_TO_GROUND) { - double rTot = m_voltab[m_output]; + double rTot = m_voltab[m_out_raw]; /* In this configuration there is a capacitor in parallel to the pokey output to ground. * With a LM324 in LTSpice this causes the opamp circuit to oscillate at around 100 kHz. * We are ignoring the capacitor here, since this oscillation would not be audible. @@ -753,7 +759,7 @@ void pokey_device::sound_stream_update(sound_stream &stream, stream_sample_t **i } else if (m_output_type == OPAMP_LOW_PASS) { - double rTot = m_voltab[m_output]; + double rTot = m_voltab[m_out_raw]; /* This post-pokey stage usually has a low-pass filter behind it * It is approximated by not adding in VRef below. */ @@ -771,7 +777,7 @@ void pokey_device::sound_stream_update(sound_stream &stream, stream_sample_t **i } else if (m_output_type == DISCRETE_VAR_R) { - int32_t out = m_voltab[m_output]; + int32_t out = m_voltab[m_out_raw]; while( samples > 0 ) { *buffer++ = out; @@ -898,6 +904,7 @@ void pokey_device::write_internal(offs_t offset, uint8_t data) case AUDC1_C: LOG_SOUND(("POKEY '%s' AUDC1 $%02x (%s)\n", tag(), data, audc2str(data))); m_channel[CHAN1].m_AUDC = data; + m_old_raw_inval = true; break; case AUDF2_C: @@ -908,6 +915,7 @@ void pokey_device::write_internal(offs_t offset, uint8_t data) case AUDC2_C: LOG_SOUND(("POKEY '%s' AUDC2 $%02x (%s)\n", tag(), data, audc2str(data))); m_channel[CHAN2].m_AUDC = data; + m_old_raw_inval = true; break; case AUDF3_C: @@ -918,6 +926,7 @@ void pokey_device::write_internal(offs_t offset, uint8_t data) case AUDC3_C: LOG_SOUND(("POKEY '%s' AUDC3 $%02x (%s)\n", tag(), data, audc2str(data))); m_channel[CHAN3].m_AUDC = data; + m_old_raw_inval = true; break; case AUDF4_C: @@ -928,6 +937,7 @@ void pokey_device::write_internal(offs_t offset, uint8_t data) case AUDC4_C: LOG_SOUND(("POKEY '%s' AUDC4 $%02x (%s)\n", tag(), data, audc2str(data))); m_channel[CHAN4].m_AUDC = data; + m_old_raw_inval = true; break; case AUDCTL_C: @@ -952,7 +962,7 @@ void pokey_device::write_internal(offs_t offset, uint8_t data) m_channel[i].m_output = 0; m_channel[i].m_filter_sample = (i<2 ? 1 : 0); } - + m_old_raw_inval = true; break; case SKREST_C: @@ -1070,6 +1080,7 @@ inline void pokey_device::process_channel(int ch) m_channel[ch].m_output = (m_poly9[m_p9] & 1); else m_channel[ch].m_output = (m_poly17[m_p17] & 1); + m_old_raw_inval = true; } } diff --git a/src/devices/sound/pokey.h b/src/devices/sound/pokey.h index 0fa9e21a17d..7e63e89e54d 100644 --- a/src/devices/sound/pokey.h +++ b/src/devices/sound/pokey.h @@ -264,7 +264,7 @@ private: static constexpr int POKEY_CHANNELS = 4; - uint32_t step_one_clock(); + void step_one_clock(); void step_keyboard(); void step_pot(); @@ -284,10 +284,11 @@ private: pokey_channel m_channel[POKEY_CHANNELS]; - uint32_t m_output; /* raw output */ - double m_out_filter; /* filtered output */ + uint32_t m_out_raw; /* raw output */ + bool m_old_raw_inval; /* true: recalc m_out_raw required */ + double m_out_filter; /* filtered output */ - int32_t m_clock_cnt[3]; /* clock counters */ + int32_t m_clock_cnt[3]; /* clock counters */ uint32_t m_p4; /* poly4 index */ uint32_t m_p5; /* poly5 index */ uint32_t m_p9; /* poly9 index */ diff --git a/src/devices/sound/spkrdev.h b/src/devices/sound/spkrdev.h index 7542d943793..49e953b5d40 100644 --- a/src/devices/sound/spkrdev.h +++ b/src/devices/sound/spkrdev.h @@ -21,9 +21,9 @@ public: ~speaker_sound_device() {} // configuration - void set_levels(int num_levels, const int16_t *levels) { m_num_levels = num_levels; m_levels = levels;} + void set_levels(int num_levels, const int16_t *levels) { m_num_levels = num_levels; m_levels = levels; } - void level_w(int new_level); + void level_w(int new_level); // can use as writeline protected: // device-level overrides diff --git a/src/devices/video/mc6845.cpp b/src/devices/video/mc6845.cpp index da4a015a1c6..fe8e4a0119b 100644 --- a/src/devices/video/mc6845.cpp +++ b/src/devices/video/mc6845.cpp @@ -582,8 +582,6 @@ void mc6845_device::recompute_parameters(bool postload) m_hsync_off_pos = hsync_off_pos; m_vsync_on_pos = vsync_on_pos; m_vsync_off_pos = vsync_off_pos; - if (!postload) // set m_line_counter to 0 on normal operation, but not on postload - m_line_counter = 0; } } diff --git a/src/lib/netlist/plib/palloc.h b/src/lib/netlist/plib/palloc.h index f10fd548817..830ce3ec525 100644 --- a/src/lib/netlist/plib/palloc.h +++ b/src/lib/netlist/plib/palloc.h @@ -191,7 +191,7 @@ namespace plib { ~arena_allocator() noexcept = default; - arena_allocator(const arena_allocator &rhs) noexcept : m_a(rhs.m_a) { printf("copy called\n"); }//= default; + arena_allocator(const arena_allocator &rhs) noexcept = default; arena_allocator& operator=(const arena_allocator&) noexcept = delete; arena_allocator(arena_allocator&&) noexcept = default; diff --git a/src/lib/netlist/plib/pconfig.h b/src/lib/netlist/plib/pconfig.h index c5a83718395..d66b342f815 100644 --- a/src/lib/netlist/plib/pconfig.h +++ b/src/lib/netlist/plib/pconfig.h @@ -53,7 +53,8 @@ #define PALIGNAS_CACHELINE() PALIGNAS(PALIGN_CACHELINE) #define PALIGNAS_VECTOROPT() PALIGNAS(PALIGN_VECTOROPT) -/* Breaks mame build on windows due to -Wattribute */ +/* Breaks mame build on windows due to -Wattribute + * FIXME: no error on cross-compile - need further checks */ #if defined(_WIN32) && defined(__GNUC__) #define PALIGNAS(x) #else diff --git a/src/mame/drivers/1942.cpp b/src/mame/drivers/1942.cpp index 47a86182927..3dea5f551d8 100644 --- a/src/mame/drivers/1942.cpp +++ b/src/mame/drivers/1942.cpp @@ -566,13 +566,14 @@ void _1942_state::machine_reset() MACHINE_CONFIG_START(_1942_state::_1942) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, MAIN_CPU_CLOCK) /* 4 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(_1942_map) + Z80(config, m_maincpu, MAIN_CPU_CLOCK); /* 4 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &_1942_state::_1942_map); + TIMER(config, "scantimer").configure_scanline(FUNC(_1942_state::_1942_scanline), "screen", 0, 1); - MCFG_DEVICE_ADD("audiocpu", Z80, SOUND_CPU_CLOCK) /* 3 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(_1942_state, irq0_line_hold, 4*60) + Z80(config, m_audiocpu, SOUND_CPU_CLOCK); /* 3 MHz ??? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &_1942_state::sound_map); + m_audiocpu->set_periodic_int(FUNC(_1942_state::irq0_line_hold), attotime::from_hz(4*60)); /* video hardware */ @@ -627,17 +628,17 @@ MACHINE_CONFIG_START(_1942_state::_1942) MACHINE_CONFIG_END -MACHINE_CONFIG_START(_1942p_state::_1942p) - +void _1942p_state::_1942p(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, MAIN_CPU_CLOCK_1942P) /* 4 MHz - verified on PCB */ - MCFG_DEVICE_PROGRAM_MAP(_1942p_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", _1942p_state, irq0_line_hold) // note, powerups won't move down the screen with the original '1942' logic. + Z80(config, m_maincpu, MAIN_CPU_CLOCK_1942P); /* 4 MHz - verified on PCB */ + m_maincpu->set_addrmap(AS_PROGRAM, &_1942p_state::_1942p_map); + m_maincpu->set_vblank_int("screen", FUNC(_1942p_state::irq0_line_hold)); // note, powerups won't move down the screen with the original '1942' logic. - MCFG_DEVICE_ADD("audiocpu", Z80, SOUND_CPU_CLOCK_1942P) /* 4 MHz - verified on PCB */ - MCFG_DEVICE_PROGRAM_MAP(_1942p_sound_map) - MCFG_DEVICE_IO_MAP(_1942p_sound_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(_1942p_state, irq0_line_hold, 4*60) + Z80(config, m_audiocpu, SOUND_CPU_CLOCK_1942P); /* 4 MHz - verified on PCB */ + m_audiocpu->set_addrmap(AS_PROGRAM, &_1942p_state::_1942p_sound_map); + m_audiocpu->set_addrmap(AS_IO, &_1942p_state::_1942p_sound_io); + m_audiocpu->set_periodic_int(FUNC(_1942p_state::irq0_line_hold), attotime::from_hz(4*60)); /* video hardware */ @@ -662,7 +663,7 @@ MACHINE_CONFIG_START(_1942p_state::_1942p) AY8910(config, "ay1", AUDIO_CLOCK_1942P).add_route(ALL_OUTPUTS, "mono", 0.25); // 1.25 MHz - verified on PCB AY8910(config, "ay2", AUDIO_CLOCK_1942P).add_route(ALL_OUTPUTS, "mono", 0.25); // 1.25 MHz - verified on PCB -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/1943.cpp b/src/mame/drivers/1943.cpp index f7ba70f0cdb..0f68850bff5 100644 --- a/src/mame/drivers/1943.cpp +++ b/src/mame/drivers/1943.cpp @@ -311,27 +311,27 @@ void _1943_state::machine_reset() m_prot_value = 0; } -MACHINE_CONFIG_START(_1943_state::_1943) - +void _1943_state::_1943(machine_config &config) +{ // basic machine hardware - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(24'000'000)/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(c1943_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", _1943_state, irq0_line_hold) + Z80(config, m_maincpu, XTAL(24'000'000)/4); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &_1943_state::c1943_map); + m_maincpu->set_vblank_int("screen", FUNC(_1943_state::irq0_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(24'000'000)/8) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(_1943_state, irq0_line_hold, 4*60) + z80_device &audiocpu(Z80(config, "audiocpu", XTAL(24'000'000)/8)); /* verified on pcb */ + audiocpu.set_addrmap(AS_PROGRAM, &_1943_state::sound_map); + audiocpu.set_periodic_int(FUNC(_1943_state::irq0_line_hold), attotime::from_hz(4*60)); WATCHDOG_TIMER(config, "watchdog"); // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(_1943_state, screen_update_1943) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(_1943_state::screen_update_1943)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_1943); PALETTE(config, m_palette, FUNC(_1943_state::_1943_palette), 32*4+16*16+16*16+16*16, 256); @@ -341,18 +341,18 @@ MACHINE_CONFIG_START(_1943_state::_1943) GENERIC_LATCH_8(config, "soundlatch"); - MCFG_DEVICE_ADD("ym1", YM2203, XTAL(24'000'000)/16) /* verified on pcb */ - MCFG_SOUND_ROUTE(0, "mono", 0.15) - MCFG_SOUND_ROUTE(1, "mono", 0.15) - MCFG_SOUND_ROUTE(2, "mono", 0.15) - MCFG_SOUND_ROUTE(3, "mono", 0.10) - - MCFG_DEVICE_ADD("ym2", YM2203, XTAL(24'000'000)/16) /* verified on pcb */ - MCFG_SOUND_ROUTE(0, "mono", 0.15) - MCFG_SOUND_ROUTE(1, "mono", 0.15) - MCFG_SOUND_ROUTE(2, "mono", 0.15) - MCFG_SOUND_ROUTE(3, "mono", 0.10) -MACHINE_CONFIG_END + ym2203_device &ym1(YM2203(config, "ym1", XTAL(24'000'000)/16)); /* verified on pcb */ + ym1.add_route(0, "mono", 0.15); + ym1.add_route(1, "mono", 0.15); + ym1.add_route(2, "mono", 0.15); + ym1.add_route(3, "mono", 0.10); + + ym2203_device &ym2(YM2203(config, "ym2", XTAL(24'000'000)/16)); /* verified on pcb */ + ym2.add_route(0, "mono", 0.15); + ym2.add_route(1, "mono", 0.15); + ym2.add_route(2, "mono", 0.15); + ym2.add_route(3, "mono", 0.10); +} /* ROMs */ diff --git a/src/mame/drivers/24cdjuke.cpp b/src/mame/drivers/24cdjuke.cpp index b0136b54929..565169ea73c 100644 --- a/src/mame/drivers/24cdjuke.cpp +++ b/src/mame/drivers/24cdjuke.cpp @@ -283,12 +283,13 @@ void midcoin24cdjuke_state::machine_reset() } -MACHINE_CONFIG_START(midcoin24cdjuke_state::midcoin24cdjuke) +void midcoin24cdjuke_state::midcoin24cdjuke(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,6000000) /* ? MHz */ - MCFG_DEVICE_PROGRAM_MAP(midcoin24cdjuke_map) - MCFG_DEVICE_IO_MAP(midcoin24cdjuke_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(midcoin24cdjuke_state, irq0_line_hold, 500) + Z80(config, m_maincpu, 6000000); /* ? MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &midcoin24cdjuke_state::midcoin24cdjuke_map); + m_maincpu->set_addrmap(AS_IO, &midcoin24cdjuke_state::midcoin24cdjuke_io); + m_maincpu->set_periodic_int(FUNC(midcoin24cdjuke_state::irq0_line_hold), attotime::from_hz(500)); config.set_default_layout(layout_24cdjuke); @@ -305,7 +306,7 @@ MACHINE_CONFIG_START(midcoin24cdjuke_state::midcoin24cdjuke) i8255_device &ic31(I8255A(config, "ic31", 0)); ic31.out_pb_callback().set_log("PPI8255 - unmapped write port B"); ic31.in_pc_callback().set_ioport("MD4"); -MACHINE_CONFIG_END +} ROM_START( 24cdjuke ) diff --git a/src/mame/drivers/39in1.cpp b/src/mame/drivers/39in1.cpp index ccd6a241677..ed5aa3df6b6 100644 --- a/src/mame/drivers/39in1.cpp +++ b/src/mame/drivers/39in1.cpp @@ -286,10 +286,11 @@ void _39in1_state::_39in1(machine_config &config) m_pxa_periphs->gpio0_in_cb().set(FUNC(_39in1_state::eeprom_r)); } -MACHINE_CONFIG_START(_39in1_state::_60in1) +void _39in1_state::_60in1(machine_config &config) +{ _39in1(config); MCFG_MACHINE_START_OVERRIDE(_39in1_state,60in1) -MACHINE_CONFIG_END +} ROM_START( 39in1 ) // main program, encrypted diff --git a/src/mame/drivers/3do.cpp b/src/mame/drivers/3do.cpp index 401d7ab40b1..21c83a4d497 100644 --- a/src/mame/drivers/3do.cpp +++ b/src/mame/drivers/3do.cpp @@ -154,40 +154,40 @@ void _3do_state::machine_reset() m_clio.cstatbits = 0x01; /* bit 0 = reset of clio caused by power on */ } -MACHINE_CONFIG_START(_3do_state::_3do) - +void _3do_state::_3do(machine_config &config) +{ /* Basic machine hardware */ - MCFG_DEVICE_ADD( m_maincpu, ARM7_BE, XTAL(50'000'000)/4 ) - MCFG_DEVICE_PROGRAM_MAP( main_mem) + ARM7_BE(config, m_maincpu, XTAL(50'000'000)/4); + m_maincpu->set_addrmap(AS_PROGRAM, &_3do_state::main_mem); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); TIMER(config, "timer_x16").configure_periodic(FUNC(_3do_state::timer_x16_cb), attotime::from_hz(12000)); // TODO: timing - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_RAW_PARAMS( X2_CLOCK_NTSC / 2, 1592, 254, 1534, 263, 22, 262 ) - MCFG_SCREEN_UPDATE_DRIVER(_3do_state, screen_update) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(X2_CLOCK_NTSC / 2, 1592, 254, 1534, 263, 22, 262); + m_screen->set_screen_update(FUNC(_3do_state::screen_update)); CDROM(config, "cdrom"); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(_3do_state::_3do_pal) +void _3do_state::_3do_pal(machine_config &config) +{ /* Basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, ARM7_BE, XTAL(50'000'000)/4 ) - MCFG_DEVICE_PROGRAM_MAP( main_mem) + ARM7_BE(config, m_maincpu, XTAL(50'000'000)/4); + m_maincpu->set_addrmap(AS_PROGRAM, &_3do_state::main_mem); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); TIMER(config, "timer_x16").configure_periodic(FUNC(_3do_state::timer_x16_cb), attotime::from_hz(12000)); // TODO: timing - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_RAW_PARAMS( X2_CLOCK_PAL / 2, 1592, 254, 1534, 263, 22, 262 ) // TODO: proper params - MCFG_SCREEN_UPDATE_DRIVER(_3do_state, screen_update) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(X2_CLOCK_PAL / 2, 1592, 254, 1534, 263, 22, 262); // TODO: proper params + m_screen->set_screen_update(FUNC(_3do_state::screen_update)); CDROM(config, "cdrom"); -MACHINE_CONFIG_END +} #if 0 #define NTSC_BIOS \ diff --git a/src/mame/drivers/3x3puzzl.cpp b/src/mame/drivers/3x3puzzl.cpp index 90cb23b4e5b..b390a774651 100644 --- a/src/mame/drivers/3x3puzzl.cpp +++ b/src/mame/drivers/3x3puzzl.cpp @@ -388,20 +388,20 @@ void _3x3puzzle_state::machine_reset() } -MACHINE_CONFIG_START(_3x3puzzle_state::_3x3puzzle) - +void _3x3puzzle_state::_3x3puzzle(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,MAIN_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(_3x3puzzle_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", _3x3puzzle_state, irq4_line_hold) + M68000(config, m_maincpu, MAIN_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &_3x3puzzle_state::_3x3puzzle_map); + m_maincpu->set_vblank_int("screen", FUNC(_3x3puzzle_state::irq4_line_hold)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_UPDATE_DRIVER(_3x3puzzle_state, screen_update) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + m_screen->set_screen_update(FUNC(_3x3puzzle_state::screen_update)); + m_screen->set_size(64*8, 32*8); + m_screen->set_visarea(0*8, 40*8-1, 0*8, 30*8-1); GFXDECODE(config, m_gfxdecode, "palette", gfx_3x3puzzle); @@ -409,9 +409,8 @@ MACHINE_CONFIG_START(_3x3puzzle_state::_3x3puzzle) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(4'000'000)/4, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(4'000'000)/4, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); +} /*************************************************************************** diff --git a/src/mame/drivers/4dpi.cpp b/src/mame/drivers/4dpi.cpp index 4bea366bc98..191edfbd51d 100644 --- a/src/mame/drivers/4dpi.cpp +++ b/src/mame/drivers/4dpi.cpp @@ -239,23 +239,21 @@ void sgi_ip6_state::sgi_ip6_map(address_map &map) MACHINE DRIVERS ***************************************************************************/ -MACHINE_CONFIG_START(sgi_ip6_state::sgi_ip6) +void sgi_ip6_state::sgi_ip6(machine_config &config) +{ R2000(config, m_maincpu, 25_MHz_XTAL / 2, 16384, 8192); m_maincpu->set_endianness(ENDIANNESS_BIG); m_maincpu->set_addrmap(AS_PROGRAM, &sgi_ip6_state::sgi_ip6_map); m_maincpu->set_vblank_int("screen", FUNC(sgi_ip6_state::sgi_ip6_vbl)); - /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE( 60 ) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DRIVER(sgi_ip6_state, screen_update_sgi_ip6) - - -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update(FUNC(sgi_ip6_state::screen_update_sgi_ip6)); +} static INPUT_PORTS_START( sgi_ip6 ) PORT_START("UNUSED") // unused IN0 diff --git a/src/mame/drivers/4enlinea.cpp b/src/mame/drivers/4enlinea.cpp index 4dc268fe2ea..a91b52ac1c0 100644 --- a/src/mame/drivers/4enlinea.cpp +++ b/src/mame/drivers/4enlinea.cpp @@ -500,26 +500,26 @@ INTERRUPT_GEN_MEMBER(_4enlinea_state::_4enlinea_audio_irq) device.execute().set_input_line(0, HOLD_LINE); } -MACHINE_CONFIG_START(_4enlinea_state::_4enlinea) - +void _4enlinea_state::_4enlinea(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, PRG_CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_IO_MAP(main_portmap) - MCFG_DEVICE_PERIODIC_INT_DRIVER(_4enlinea_state, _4enlinea_irq, 60) //TODO -// MCFG_DEVICE_PERIODIC_INT_DRIVER(_4enlinea_state, irq0_line_hold, 4*35) + Z80(config, m_maincpu, PRG_CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &_4enlinea_state::main_map); + m_maincpu->set_addrmap(AS_IO, &_4enlinea_state::main_portmap); + m_maincpu->set_periodic_int(FUNC(_4enlinea_state::_4enlinea_irq), attotime::from_hz(60)); //TODO +// m_maincpu->set_periodic_int(FUNC(_4enlinea_state::irq0_line_hold), attotime::from_hz(4*35)); - MCFG_DEVICE_ADD("audiocpu", Z80, SND_CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(audio_map) - MCFG_DEVICE_IO_MAP(audio_portmap) - MCFG_DEVICE_PERIODIC_INT_DRIVER(_4enlinea_state, _4enlinea_audio_irq, 60) //TODO + z80_device &audiocpu(Z80(config, "audiocpu", SND_CPU_CLOCK)); + audiocpu.set_addrmap(AS_PROGRAM, &_4enlinea_state::audio_map); + audiocpu.set_addrmap(AS_IO, &_4enlinea_state::audio_portmap); + audiocpu.set_periodic_int(FUNC(_4enlinea_state::_4enlinea_audio_irq), attotime::from_hz(60)); //TODO // FIXME: determine ISA bus clock isa8_device &isa(ISA8(config, "isa", 0)); isa.set_memspace("maincpu", AS_PROGRAM); isa.set_iospace("maincpu", AS_IO); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "isa", _4enlinea_isa8_cards, "4enlinea", true) + ISA8_SLOT(config, "isa1", 0, "isa", _4enlinea_isa8_cards, "4enlinea", true); /* 6845 clock is a guess, since it's a UM6845R embedded in the UM487F. @@ -537,7 +537,7 @@ MACHINE_CONFIG_START(_4enlinea_state::_4enlinea) m_ay->port_a_read_callback().set_ioport("IN-P2"); m_ay->port_b_read_callback().set_ioport("IN-P1"); m_ay->add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} /*********************************** diff --git a/src/mame/drivers/4enraya.cpp b/src/mame/drivers/4enraya.cpp index 077e8d48477..793ec6a0960 100644 --- a/src/mame/drivers/4enraya.cpp +++ b/src/mame/drivers/4enraya.cpp @@ -470,22 +470,22 @@ void _4enraya_state::machine_reset() * Machine Drivers * ***********************************/ -MACHINE_CONFIG_START(_4enraya_state::_4enraya ) - +void _4enraya_state::_4enraya(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, MAIN_CLOCK/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_IO_MAP(main_portmap) - MCFG_DEVICE_PERIODIC_INT_DRIVER(_4enraya_state, irq0_line_hold, 4*60) // unknown timing + Z80(config, m_maincpu, MAIN_CLOCK/2); + m_maincpu->set_addrmap(AS_PROGRAM, &_4enraya_state::main_map); + m_maincpu->set_addrmap(AS_IO, &_4enraya_state::main_portmap); + m_maincpu->set_periodic_int(FUNC(_4enraya_state::irq0_line_hold), attotime::from_hz(4*60)); // unknown timing /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(_4enraya_state, screen_update_4enraya) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(_4enraya_state::screen_update_4enraya)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_4enraya); @@ -494,24 +494,23 @@ MACHINE_CONFIG_START(_4enraya_state::_4enraya ) /* sound hardware */ SPEAKER(config, "mono").front_center(); AY8910(config, m_ay, MAIN_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 0.3); /* guess */ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(unk_gambl_state::unkpacg) +void unk_gambl_state::unkpacg(machine_config &config) +{ _4enraya(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(unkpacg_main_map) - MCFG_DEVICE_IO_MAP(unkpacg_main_portmap) + m_maincpu->set_addrmap(AS_PROGRAM, &unk_gambl_state::unkpacg_main_map); + m_maincpu->set_addrmap(AS_IO, &unk_gambl_state::unkpacg_main_portmap); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* sound hardware */ -// SPEAKER(config, "mono").front_center(); AY8910(config.replace(), m_ay, MAIN_CLOCK/4); /* guess */ m_ay->port_a_read_callback().set_ioport("DSW2"); m_ay->add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} /*********************************** diff --git a/src/mame/drivers/4roses.cpp b/src/mame/drivers/4roses.cpp index 585904cc60b..bf8c3e00c91 100644 --- a/src/mame/drivers/4roses.cpp +++ b/src/mame/drivers/4roses.cpp @@ -454,23 +454,24 @@ GFXDECODE_END * Machine Drivers * **************************/ -MACHINE_CONFIG_START(_4roses_state::_4roses) +void _4roses_state::_4roses(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M65C02, MASTER_CLOCK/8) /* 2MHz, guess */ - MCFG_DEVICE_PROGRAM_MAP(_4roses_map) - MCFG_DEVICE_OPCODES_MAP(_4roses_opcodes_map) + M65C02(config, m_maincpu, MASTER_CLOCK/8); /* 2MHz, guess */ + m_maincpu->set_addrmap(AS_PROGRAM, &_4roses_state::_4roses_map); + m_maincpu->set_addrmap(AS_OPCODES, &_4roses_state::_4roses_opcodes_map); // NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE((124+1)*4, (30+1)*8) /* guess. taken from funworld games */ - MCFG_SCREEN_VISIBLE_AREA(0*4, 96*4-1, 0*8, 29*8-1) /* guess. taken from funworld games */ - MCFG_SCREEN_UPDATE_DRIVER(_4roses_state, screen_update_funworld) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size((124+1)*4, (30+1)*8); /* guess. taken from funworld games */ + screen.set_visarea(0*4, 96*4-1, 0*8, 29*8-1); /* guess. taken from funworld games */ + screen.set_screen_update(FUNC(_4roses_state::screen_update_funworld)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_4roses); @@ -486,14 +487,15 @@ MACHINE_CONFIG_START(_4roses_state::_4roses) SPEAKER(config, "mono").front_center(); AY8910(config, "ay8910", MASTER_CLOCK/8).add_route(ALL_OUTPUTS, "mono", 2.5); /* 2MHz, guess */ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(rugby_state::rugby) +void rugby_state::rugby(machine_config &config) +{ _4roses(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(rugby_map) - MCFG_DEVICE_OPCODES_MAP(rugby_opcodes_map) -MACHINE_CONFIG_END + + m_maincpu->set_addrmap(AS_PROGRAM, &rugby_state::rugby_map); + m_maincpu->set_addrmap(AS_OPCODES, &rugby_state::rugby_opcodes_map); +} /************************* diff --git a/src/mame/drivers/5clown.cpp b/src/mame/drivers/5clown.cpp index b1df8b1458f..192bae5fba5 100644 --- a/src/mame/drivers/5clown.cpp +++ b/src/mame/drivers/5clown.cpp @@ -1020,14 +1020,14 @@ GFXDECODE_END * Machine Drivers * *************************/ -MACHINE_CONFIG_START(_5clown_state::fclown) - +void _5clown_state::fclown(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6502, MASTER_CLOCK/8) /* guess, seems ok */ - MCFG_DEVICE_PROGRAM_MAP(fclown_map) + M6502(config, m_maincpu, MASTER_CLOCK/8); /* guess, seems ok */ + m_maincpu->set_addrmap(AS_PROGRAM, &_5clown_state::fclown_map); - MCFG_DEVICE_ADD("audiocpu", M6502, MASTER_CLOCK/8) /* guess, seems ok */ - MCFG_DEVICE_PROGRAM_MAP(fcaudio_map) + M6502(config, m_audiocpu, MASTER_CLOCK/8); /* guess, seems ok */ + m_audiocpu->set_addrmap(AS_PROGRAM, &_5clown_state::fcaudio_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -1043,13 +1043,13 @@ MACHINE_CONFIG_START(_5clown_state::fclown) pia1.writepb_handler().set(FUNC(_5clown_state::mux_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(_5clown_state, screen_update_fclown) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size((39+1)*8, (31+1)*8); + screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(_5clown_state::screen_update_fclown)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_fclown); PALETTE(config, m_palette, FUNC(_5clown_state::_5clown_palette), 256); @@ -1065,10 +1065,8 @@ MACHINE_CONFIG_START(_5clown_state::fclown) AY8910(config, m_ay8910, MASTER_CLOCK/8).add_route(ALL_OUTPUTS, "mono", 1.00); /* guess, seems ok */ - MCFG_DEVICE_ADD("oki6295", OKIM6295, MASTER_CLOCK/12, okim6295_device::PIN7_LOW) /* guess, seems ok; pin7 guessed, seems ok */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.20) - -MACHINE_CONFIG_END + OKIM6295(config, "oki6295", MASTER_CLOCK/12, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.20); /* guess, seems ok; pin7 guessed, seems ok */ +} /************************* diff --git a/src/mame/drivers/age_candy.cpp b/src/mame/drivers/age_candy.cpp index 331a421c7f7..49c55908dd8 100644 --- a/src/mame/drivers/age_candy.cpp +++ b/src/mame/drivers/age_candy.cpp @@ -13,6 +13,7 @@ Device is a 27c256 location U3 */ #include "emu.h" +#include "cpu/hpc/hpc.h" #include "speaker.h" @@ -21,7 +22,7 @@ class age_candy_state : public driver_device public: age_candy_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) - // ,m_maincpu(*this, "maincpu") + , m_maincpu(*this, "maincpu") { } void age_candy(machine_config &config); @@ -31,7 +32,7 @@ private: virtual void machine_reset() override; void age_candy_map(address_map &map); -// required_device<mcs51_cpu_device> m_maincpu; + required_device<hpc_device> m_maincpu; }; static INPUT_PORTS_START( age_candy ) @@ -48,24 +49,19 @@ void age_candy_state::machine_reset() } -#ifdef UNUSED_DEFINITION void age_candy_state::age_candy_map(address_map &map) { - map(0xc000, 0xffff).rom().region("maincpu", 0x4000); + map(0x8000, 0xffff).rom().region("maincpu", 0); } -#endif -MACHINE_CONFIG_START(age_candy_state::age_candy) - - /* basic machine hardware */ -// MCFG_DEVICE_ADD("maincpu", HPC46104, 8000000) // unknown clock; HPC emulation needed -// MCFG_DEVICE_PROGRAM_MAP(age_candy_map) -// MCFG_DEVICE_IO_MAP(age_candy_io) +void age_candy_state::age_candy(machine_config &config) +{ + HPC46104(config, m_maincpu, 16_MHz_XTAL); // HPC still not actually emulated + m_maincpu->set_addrmap(AS_PROGRAM, &age_candy_state::age_candy_map); /* sound hardware */ SPEAKER(config, "mono").front_center(); -MACHINE_CONFIG_END - +} ROM_START( age_cand ) diff --git a/src/mame/drivers/brkthru.cpp b/src/mame/drivers/brkthru.cpp index 7b6494cb511..7293fe25c9b 100644 --- a/src/mame/drivers/brkthru.cpp +++ b/src/mame/drivers/brkthru.cpp @@ -133,6 +133,12 @@ Notes: Connectors: 2x flat cable to upper board + +brkthru, brkthruj and brkthrut have a Self Test Mode not mentioned anywhere +in the manual. It is accessed by holding down both player 1 and player 2 start +buttons while powering up the game. It can be accessed in MAME by holding the +buttons down after the game has started then pressing F3 to reset the game. + ***************************************************************************/ #include "emu.h" diff --git a/src/mame/drivers/champbas.cpp b/src/mame/drivers/champbas.cpp index c2055b824a1..97f1fc12b41 100644 --- a/src/mame/drivers/champbas.cpp +++ b/src/mame/drivers/champbas.cpp @@ -512,13 +512,6 @@ void champbas_state::machine_start() save_item(NAME(m_gfx_bank)); } -void champbas_state::machine_reset() -{ - // 74LS259 is auto CLR on reset - for (int i = 0; i < 8; i++) - m_maincpu->space(AS_PROGRAM).write_byte(0xa000 + i, 0); -} - INTERRUPT_GEN_MEMBER(champbas_state::vblank_irq) { if (m_irq_mask) diff --git a/src/mame/drivers/cps1.cpp b/src/mame/drivers/cps1.cpp index 62a69adce98..0d0394a4e40 100644 --- a/src/mame/drivers/cps1.cpp +++ b/src/mame/drivers/cps1.cpp @@ -3383,28 +3383,28 @@ MACHINE_START_MEMBER(cps_state,qsound) membank("bank1")->configure_entries(0, 6, memregion("audiocpu")->base() + 0x10000, 0x4000); } -MACHINE_CONFIG_START(cps_state::cps1_10MHz) - +void cps_state::cps1_10MHz(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(10'000'000) ) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack) + M68000(config, m_maincpu, XTAL(10'000'000)); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(cps_state::cps1_interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(cps_state::cps1_int_ack)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(3'579'545)) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(sub_map) + Z80(config, m_audiocpu, XTAL(3'579'545)); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &cps_state::sub_map); MCFG_MACHINE_START_OVERRIDE(cps_state,cps1) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(CPS_PIXEL_CLOCK, CPS_HTOTAL, CPS_HBEND, CPS_HBSTART, CPS_VTOTAL, CPS_VBEND, CPS_VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1)) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(CPS_PIXEL_CLOCK, CPS_HTOTAL, CPS_HBEND, CPS_HBSTART, CPS_VTOTAL, CPS_VBEND, CPS_VBSTART); + m_screen->set_screen_update(FUNC(cps_state::screen_update_cps1)); + m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1); - MCFG_PALETTE_ADD("palette", 0xc00) + PALETTE(config, m_palette).set_entries(0xc00); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -3418,27 +3418,26 @@ MACHINE_CONFIG_START(cps_state::cps1_10MHz) ym2151.add_route(1, "mono", 0.35); /* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */ - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/4/4, okim6295_device::PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80 - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(16'000'000)/4/4, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.30); // pin 7 can be changed by the game code, see f006 on z80 +} -MACHINE_CONFIG_START(cps_state::forgottn) +void cps_state::forgottn(machine_config &config) +{ cps1_10MHz(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(forgottn_map) + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::forgottn_map); upd4701_device &upd4701(UPD4701A(config, "upd4701")); upd4701.set_portx_tag("DIAL0"); upd4701.set_porty_tag("DIAL1"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(cps_state::cps1_12MHz) +void cps_state::cps1_12MHz(machine_config &config) +{ cps1_10MHz(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK( XTAL(12'000'000) ) /* verified on pcb */ -MACHINE_CONFIG_END + m_maincpu->set_clock(XTAL(12'000'000)); /* verified on pcb */ +} void cps_state::pang3(machine_config &config) { @@ -3448,28 +3447,27 @@ void cps_state::pang3(machine_config &config) EEPROM_93C46_16BIT(config, "eeprom"); } -MACHINE_CONFIG_START(cps_state::ganbare) +void cps_state::ganbare(machine_config &config) +{ cps1_10MHz(config); /* basic machine hardware */ TIMER(config, "scantimer").configure_scanline(FUNC(cps_state::ganbare_interrupt), "screen", 0, 1); // need to investigate more - MCFG_DEVICE_ADD("m48t35", M48T35, 0) -MACHINE_CONFIG_END + M48T35(config, m_m48t35, 0); +} -MACHINE_CONFIG_START(cps_state::qsound) +void cps_state::qsound(machine_config &config) +{ cps1_12MHz(config); /* basic machine hardware */ - MCFG_DEVICE_REPLACE("maincpu", M68000, XTAL(12'000'000) ) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(qsound_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack) + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::qsound_main_map); - MCFG_DEVICE_REPLACE("audiocpu", Z80, XTAL(8'000'000)) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(qsound_sub_map) - MCFG_DEVICE_OPCODES_MAP(qsound_decrypted_opcodes_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(cps_state, irq0_line_hold, 250) // measured (cps2.c) + Z80(config.replace(), m_audiocpu, XTAL(8'000'000)); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &cps_state::qsound_sub_map); + m_audiocpu->set_addrmap(AS_OPCODES, &cps_state::qsound_decrypted_opcodes_map); + m_audiocpu->set_periodic_int(FUNC(cps_state::irq0_line_hold), attotime::from_hz(250)); // measured (cps2.cpp) MCFG_MACHINE_START_OVERRIDE(cps_state, qsound) @@ -3485,10 +3483,10 @@ MACHINE_CONFIG_START(cps_state::qsound) config.device_remove("2151"); config.device_remove("oki"); - MCFG_DEVICE_ADD("qsound", QSOUND) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) -MACHINE_CONFIG_END + qsound_device &qsound(QSOUND(config, "qsound")); + qsound.add_route(0, "lspeaker", 1.0); + qsound.add_route(1, "rspeaker", 1.0); +} void cps_state::wofhfh(machine_config &config) { @@ -3498,23 +3496,23 @@ void cps_state::wofhfh(machine_config &config) EEPROM_93C46_8BIT(config, "eeprom"); } -MACHINE_CONFIG_START(cps_state::sf2m3) +void cps_state::sf2m3(machine_config &config) +{ cps1_12MHz(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(sf2m3_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::sf2m3_map); +} -MACHINE_CONFIG_START(cps_state::sf2cems6) +void cps_state::sf2cems6(machine_config &config) +{ cps1_10MHz(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(sf2cems6_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::sf2cems6_map); +} -MACHINE_CONFIG_START(cps_state::sf2m10) +void cps_state::sf2m10(machine_config &config) +{ cps1_12MHz(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(sf2m10_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::sf2m10_map); +} /*************************************************************************** @@ -9845,53 +9843,52 @@ Sound rom match various romset ROM_START( sf2ceblp ) ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "1k.31.e13", 0x00000, 0x20000, CRC(ea78f9b4) SHA1(967f84615f6ef4d046df3593d5ffce0d43a3ac64) ) // 27c010 + ROM_LOAD16_BYTE( "se.36.j13", 0x00001, 0x20000, CRC(d30c263e) SHA1(6d8b13f82dde3237115306d91f37ac95b8238e0a) ) // 27c010 + ROM_LOAD16_BYTE( "0e.30.e11", 0x40000, 0x20000, CRC(005b54cc) SHA1(3d3d7742c11f31cc62d81931dc970cd1f4a26835) ) // 27c010 + ROM_LOAD16_BYTE( "de.35.j11", 0x40001, 0x20000, CRC(c184d26d) SHA1(b1011e869d0b84c1ab609fcf193b46c7d9cc3b28) ) // 27c010 + ROM_LOAD16_BYTE( "bk.29.e10", 0x80000, 0x20000, CRC(524f5c55) SHA1(67adfd36bb325c4a6d3e1e5b668c4dc983ac0a62) ) // 27c010 + ROM_LOAD16_BYTE( "ff.34.j10", 0x80001, 0x20000, CRC(f06a12f2) SHA1(ddc431ce01392d4a7562760743abd9ea73b06cf3) ) // 27c010 + ROM_LOAD16_BYTE( "8k.28.e9", 0xc0000, 0x40000, CRC(b7ad5214) SHA1(17b05e0aa9a4eb5f1aaafe35fa029d2a9aea530d) ) // 27c020 + ROM_LOAD16_BYTE( "tf.33.j9", 0xc0001, 0x40000, CRC(6340b914) SHA1(443e37a06058548c8ce7a15ecd10a6635e69d09f) ) // 27c020 + + ROM_REGION( 0x600000, "gfx", 0 ) // all 27c020 + ROMX_LOAD( "24.e7", 0x000000, 0x40000, CRC(a8b5633a) SHA1(6548a89d616910d06db126eb1a9c6b5979baff03) , ROM_SKIP(7) ) // sldh + ROMX_LOAD( "14.c7", 0x000001, 0x40000, CRC(5db24ca7) SHA1(0543e89174fecc866a08e0ecc7c31a6efca15da5) , ROM_SKIP(7) ) + ROMX_LOAD( "26.e9", 0x000002, 0x40000, CRC(82e8e384) SHA1(a8849bdb97c496777ba87e8f1942585c0fc9a29b) , ROM_SKIP(7) ) // sldh + ROMX_LOAD( "16.c9", 0x000003, 0x40000, CRC(1fd98ad0) SHA1(c0edf8ad305d5f8ba72498024cacf28b08491a57) , ROM_SKIP(7) ) + ROMX_LOAD( "20.e3", 0x000004, 0x40000, CRC(8d5d0045) SHA1(74691132c740cc28585ebe9469fa36fea28c1cef) , ROM_SKIP(7) ) + ROMX_LOAD( "10.c3", 0x000005, 0x40000, CRC(eb48f7f2) SHA1(f1d269949a8e06434e2206842535d86a70bcf58f) , ROM_SKIP(7) ) + ROMX_LOAD( "22.e5", 0x000006, 0x40000, CRC(4109d637) SHA1(f7b0961ae3053a0751749ab77f27503e03ae1e5b) , ROM_SKIP(7) ) + ROMX_LOAD( "12.c5", 0x000007, 0x40000, CRC(5d21d8b3) SHA1(1e75a4bf8d750e0858d70a489b59b50839b8c720) , ROM_SKIP(7) ) + + ROMX_LOAD( "25.e8", 0x200000, 0x40000, CRC(72e923df) SHA1(f8db61f8a768fbf99a0be54af712aa19161978d1) , ROM_SKIP(7) ) // sldh + ROMX_LOAD( "15.c8", 0x200001, 0x40000, CRC(9a96be48) SHA1(c0a46aefba442196ead30d4f5de2b0370b1c03f0) , ROM_SKIP(7) ) + ROMX_LOAD( "27.e10", 0x200002, 0x40000, CRC(4a3a8d09) SHA1(eaa7307963c7a5381a4d84a4ebcc483b55cc1411) , ROM_SKIP(7) ) // sldh + ROMX_LOAD( "17.c10", 0x200003, 0x40000, CRC(a917a922) SHA1(2186095f8473538756ca22dbdb2c68d17cbf24ab) , ROM_SKIP(7) ) + ROMX_LOAD( "21.e4", 0x200004, 0x40000, CRC(55c2b455) SHA1(677ac8f988ea3c0564b2dd178ee2ab7077aeafc8) , ROM_SKIP(7) ) + ROMX_LOAD( "11.c4", 0x200005, 0x40000, CRC(ff36859e) SHA1(7f5ab9daacfdb338913d6bca723efe3128dc931f) , ROM_SKIP(7) ) + ROMX_LOAD( "23.e6", 0x200006, 0x40000, CRC(ef9c2d4d) SHA1(35c3ab5a3cc3ce2219b596c4c3e97d28b9cc2297) , ROM_SKIP(7) ) + ROMX_LOAD( "13.c6", 0x200007, 0x40000, CRC(bc937c96) SHA1(772ff4e06093043f693729d8e94e7f8e3f8e866f) , ROM_SKIP(7) ) + + ROMX_LOAD( "6.a8", 0x400000, 0x40000, CRC(023baa18) SHA1(671600e629aff1cc161567ee4a5ceb2228731a36) , ROM_SKIP(7) ) + ROMX_LOAD( "5.a7", 0x400001, 0x40000, CRC(a6ad6ef3) SHA1(c670931a98dfc6ca39d54d8cb8848421232d8c8c) , ROM_SKIP(7) ) + ROMX_LOAD( "8.a10", 0x400002, 0x40000, CRC(26fb340c) SHA1(270455c10a0c7e4ba95a38ab7d815faedfe51fde) , ROM_SKIP(7) ) + ROMX_LOAD( "7.a9", 0x400003, 0x40000, CRC(f56085ba) SHA1(ce8c33d7be271a501e770da5249778f62ca0e0a1) , ROM_SKIP(7) ) + ROMX_LOAD( "1.a3", 0x400004, 0x40000, CRC(877b2b18) SHA1(36ebef5b534d2449b163df38b9a98f769c1d85ed) , ROM_SKIP(7) ) + ROMX_LOAD( "2.a4", 0x400005, 0x40000, CRC(144aa4c9) SHA1(f00bf10f04ae774dda7e3a1c862aba67f70d61c3) , ROM_SKIP(7) ) + ROMX_LOAD( "4.a6", 0x400006, 0x40000, CRC(f2c400b4) SHA1(090ff7184cd2a1b992cc9f1f8c03f8832bc11416) , ROM_SKIP(7) ) + ROMX_LOAD( "3.a5", 0x400007, 0x40000, CRC(8053335d) SHA1(c653cb249401162fbf39f293e1999fe5e09c35c4) , ROM_SKIP(7) ) + + ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ + ROM_LOAD( "snd.9.b13", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) // 27c512 + ROM_CONTINUE( 0x10000, 0x08000 ) - ROM_LOAD16_BYTE( "prg31.bin", 0x00000, 0x20000, CRC(ea78f9b4) SHA1(967f84615f6ef4d046df3593d5ffce0d43a3ac64) ) - ROM_LOAD16_BYTE( "prg36.bin", 0x00001, 0x20000, CRC(d30c263e) SHA1(6d8b13f82dde3237115306d91f37ac95b8238e0a) ) - ROM_LOAD16_BYTE( "prg30.bin", 0x40000, 0x20000, CRC(005b54cc) SHA1(3d3d7742c11f31cc62d81931dc970cd1f4a26835) ) - ROM_LOAD16_BYTE( "prg35.bin", 0x40001, 0x20000, CRC(c184d26d) SHA1(b1011e869d0b84c1ab609fcf193b46c7d9cc3b28) ) - ROM_LOAD16_BYTE( "prg29.bin", 0x80000, 0x20000, CRC(524f5c55) SHA1(67adfd36bb325c4a6d3e1e5b668c4dc983ac0a62) ) - ROM_LOAD16_BYTE( "prg34.bin", 0x80001, 0x20000, CRC(f06a12f2) SHA1(ddc431ce01392d4a7562760743abd9ea73b06cf3) ) - ROM_LOAD16_BYTE( "prg28.bin", 0xc0000, 0x40000, CRC(b7ad5214) SHA1(17b05e0aa9a4eb5f1aaafe35fa029d2a9aea530d) ) - ROM_LOAD16_BYTE( "prg33.bin", 0xc0001, 0x40000, CRC(6340b914) SHA1(443e37a06058548c8ce7a15ecd10a6635e69d09f) ) - - ROM_REGION( 0x600000, "gfx", 0 ) - ROMX_LOAD( "24.bin", 0x000000, 0x40000, CRC(a8b5633a) SHA1(6548a89d616910d06db126eb1a9c6b5979baff03) , ROM_SKIP(7) ) // sldh - ROMX_LOAD( "14.bin", 0x000001, 0x40000, CRC(5db24ca7) SHA1(0543e89174fecc866a08e0ecc7c31a6efca15da5) , ROM_SKIP(7) ) - ROMX_LOAD( "26.bin", 0x000002, 0x40000, CRC(82e8e384) SHA1(a8849bdb97c496777ba87e8f1942585c0fc9a29b) , ROM_SKIP(7) ) // sldh - ROMX_LOAD( "16.bin", 0x000003, 0x40000, CRC(1fd98ad0) SHA1(c0edf8ad305d5f8ba72498024cacf28b08491a57) , ROM_SKIP(7) ) - ROMX_LOAD( "20.bin", 0x000004, 0x40000, CRC(8d5d0045) SHA1(74691132c740cc28585ebe9469fa36fea28c1cef) , ROM_SKIP(7) ) - ROMX_LOAD( "10.bin", 0x000005, 0x40000, CRC(eb48f7f2) SHA1(f1d269949a8e06434e2206842535d86a70bcf58f) , ROM_SKIP(7) ) - ROMX_LOAD( "22.bin", 0x000006, 0x40000, CRC(4109d637) SHA1(f7b0961ae3053a0751749ab77f27503e03ae1e5b) , ROM_SKIP(7) ) - ROMX_LOAD( "12.bin", 0x000007, 0x40000, CRC(5d21d8b3) SHA1(1e75a4bf8d750e0858d70a489b59b50839b8c720) , ROM_SKIP(7) ) - - ROMX_LOAD( "25.bin", 0x200000, 0x40000, CRC(72e923df) SHA1(f8db61f8a768fbf99a0be54af712aa19161978d1) , ROM_SKIP(7) ) // sldh - ROMX_LOAD( "15.bin", 0x200001, 0x40000, CRC(9a96be48) SHA1(c0a46aefba442196ead30d4f5de2b0370b1c03f0) , ROM_SKIP(7) ) - ROMX_LOAD( "27.bin", 0x200002, 0x40000, CRC(4a3a8d09) SHA1(eaa7307963c7a5381a4d84a4ebcc483b55cc1411) , ROM_SKIP(7) ) // sldh - ROMX_LOAD( "17.bin", 0x200003, 0x40000, CRC(a917a922) SHA1(2186095f8473538756ca22dbdb2c68d17cbf24ab) , ROM_SKIP(7) ) - ROMX_LOAD( "21.bin", 0x200004, 0x40000, CRC(55c2b455) SHA1(677ac8f988ea3c0564b2dd178ee2ab7077aeafc8) , ROM_SKIP(7) ) - ROMX_LOAD( "11.bin", 0x200005, 0x40000, CRC(ff36859e) SHA1(7f5ab9daacfdb338913d6bca723efe3128dc931f) , ROM_SKIP(7) ) - ROMX_LOAD( "23.bin", 0x200006, 0x40000, CRC(ef9c2d4d) SHA1(35c3ab5a3cc3ce2219b596c4c3e97d28b9cc2297) , ROM_SKIP(7) ) - ROMX_LOAD( "13.bin", 0x200007, 0x40000, CRC(bc937c96) SHA1(772ff4e06093043f693729d8e94e7f8e3f8e866f) , ROM_SKIP(7) ) - - ROMX_LOAD( "6.bin", 0x400000, 0x40000, CRC(023baa18) SHA1(671600e629aff1cc161567ee4a5ceb2228731a36) , ROM_SKIP(7) ) - ROMX_LOAD( "5.bin", 0x400001, 0x40000, CRC(a6ad6ef3) SHA1(c670931a98dfc6ca39d54d8cb8848421232d8c8c) , ROM_SKIP(7) ) - ROMX_LOAD( "8.bin", 0x400002, 0x40000, CRC(26fb340c) SHA1(270455c10a0c7e4ba95a38ab7d815faedfe51fde) , ROM_SKIP(7) ) - ROMX_LOAD( "7.bin", 0x400003, 0x40000, CRC(f56085ba) SHA1(ce8c33d7be271a501e770da5249778f62ca0e0a1) , ROM_SKIP(7) ) - ROMX_LOAD( "1.bin", 0x400004, 0x40000, CRC(877b2b18) SHA1(36ebef5b534d2449b163df38b9a98f769c1d85ed) , ROM_SKIP(7) ) - ROMX_LOAD( "2.bin", 0x400005, 0x40000, CRC(144aa4c9) SHA1(f00bf10f04ae774dda7e3a1c862aba67f70d61c3) , ROM_SKIP(7) ) - ROMX_LOAD( "4.bin", 0x400006, 0x40000, CRC(f2c400b4) SHA1(090ff7184cd2a1b992cc9f1f8c03f8832bc11416) , ROM_SKIP(7) ) - ROMX_LOAD( "3.bin", 0x400007, 0x40000, CRC(8053335d) SHA1(c653cb249401162fbf39f293e1999fe5e09c35c4) , ROM_SKIP(7) ) - - ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */ - ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) - ROM_CONTINUE( 0x10000, 0x08000 ) - - ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ - ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) - ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) + ROM_REGION( 0x40000, "oki", 0 ) /* Samples, both 27c010 */ + ROM_LOAD( "9k.18.c11", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) + ROM_LOAD( "lk.19.c13", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) - ROM_REGION( 0x2000, "protectin_pic", 0 ) + ROM_REGION( 0x2000, "protection_pic", 0 ) ROM_LOAD( "pic16c55", 0x00000, 0x2000, BAD_DUMP CRC(f22e2311) SHA1(320edfba140728599e91c01e863a8b6d071e4bbf) ) ROM_END diff --git a/src/mame/drivers/fcrash.cpp b/src/mame/drivers/fcrash.cpp index 900a7d5cf90..e754d195e4a 100644 --- a/src/mame/drivers/fcrash.cpp +++ b/src/mame/drivers/fcrash.cpp @@ -68,8 +68,6 @@ dinopic2: no sound, one bad graphics ROM. Copying 8.bin from dinopic fixes it. fcrash, kodb: old sprites show on next screen. Patch used. -knightsb: sprites are entangled with the front layer. - punipic, punipic2: no sound. Problems in Central Park. Patches used. punipic3: same as punipic, and doors are missing. @@ -322,6 +320,8 @@ WRITE16_MEMBER(cps_state::mtwinsb_layer_w) WRITE16_MEMBER(cps_state::punipic_layer_w) { + m_cps_a_regs[0x08/2] = 0; + switch (offset) { case 0x00: @@ -366,7 +366,6 @@ WRITE16_MEMBER(cps_state::punipic_layer_w) break; default: logerror("%s: Unknown layer cmd %X %X\n",machine().describe_context(),offset<<1,data); - } } diff --git a/src/mame/drivers/fidel_card.cpp b/src/mame/drivers/fidel_card.cpp index 220dac8cca8..ccb8d10ade2 100644 --- a/src/mame/drivers/fidel_card.cpp +++ b/src/mame/drivers/fidel_card.cpp @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Kevin Horton,Jonathan Gevaryahu,Sandro Ronco,hap +// copyright-holders:Kevin Horton, Jonathan Gevaryahu, Sandro Ronco, hap /****************************************************************************** * * fidel_card.cpp, subdriver of machine/fidelbase.cpp, machine/chessbase.cpp diff --git a/src/mame/drivers/fidel_cc10.cpp b/src/mame/drivers/fidel_cc10.cpp index 850d8f9a29d..2989db64f32 100644 --- a/src/mame/drivers/fidel_cc10.cpp +++ b/src/mame/drivers/fidel_cc10.cpp @@ -1,10 +1,14 @@ // license:BSD-3-Clause -// copyright-holders:Jonathan Gevaryahu,Sandro Ronco,hap -// thanks-to:Berger +// copyright-holders:Jonathan Gevaryahu, Sandro Ronco, hap +// thanks-to:Berger, Sean Riddle /****************************************************************************** * * fidel_cc10.cpp, subdriver of machine/fidelbase.cpp, machine/chessbase.cpp +TODO: +- What is cc10 8255 PB.7 for? When set, maximum levels is 3, like in CC3. But + there is no CC3 with 16 buttons, and things get glitchy in this mode. + ******************************************************************************* Fidelity Chess Challenger 10 (CCX) @@ -12,47 +16,13 @@ Fidelity Chess Challenger 10 (CCX) 4 versions are known to exist: A,B,C,D. Strangely, version C(UCC10) has an 8080 instead of Z80. Chess Challenger 1,3 and 7 also run on very similar hardware. -Z80A CPU @ 4MHz +Z80A CPU @ 4MHz, NEC D8255C 4KB ROM(NEC 2332A), 2*256 bytes RAM(4*NEC 2111AL-4) -This is an earlier hardware upon which the VCC and UVC were based on; -The hardware is nearly the same; in fact the only significant differences are -the RAM being located in a different place, the lack of a speech chip, and -the connections to ports A and B on the PPI: - -8255 connections: ------------------ -PA.0 - segment G (W) -PA.1 - segment F (W) -PA.2 - segment E (W) -PA.3 - segment D (W) -PA.4 - segment C (W) -PA.5 - segment B (W) -PA.6 - segment A (W) -PA.7 - 'beeper' direct speaker output (W) - The beeper is via a 556 timer, fixed-frequency at around 1300-1400Hz. Not all hardware configurations include the beeper. -PB.0 - dot commons (W) -PB.1 - NC -PB.2 - digit 0, bottom dot (W) -PB.3 - digit 1, top dot (W) -PB.4 - digit 2 (W) -PB.5 - digit 3 (W) -PB.6 - NC -PB.7 - Mode select? (cc3 vs cc10, R) - -Note: there is no CC3 with 16 buttons, and things get glitchy in this mode. - -PC.0 - button row 0 (R) -PC.1 - button row 1 (R) -PC.2 - button row 2 (R) -PC.3 - button row 3 (R) -PC.4 - button column A (W) -PC.5 - button column B (W) -PC.6 - button column C (W) -PC.7 - button column D (W) +Checker Challenger 4 (ACR) is on the same PCB, twice less RAM and the beeper gone. ******************************************************************************/ @@ -65,6 +35,7 @@ PC.7 - button column D (W) #include "speaker.h" // internal artwork +#include "fidel_acr.lh" // clickable #include "fidel_cc10.lh" // clickable @@ -81,20 +52,26 @@ public: { } // machine drivers + void acr(machine_config &config); void ccx(machine_config &config); private: // devices/pointers required_device<i8255_device> m_ppi8255; - required_device<timer_device> m_beeper_off; - required_device<beep_device> m_beeper; + optional_device<timer_device> m_beeper_off; + optional_device<beep_device> m_beeper; TIMER_DEVICE_CALLBACK_MEMBER(beeper_off) { m_beeper->set_state(0); } // address maps - void main_map(address_map &map); + void acr_map(address_map &map); + void ccx_map(address_map &map); + void main_trampoline(address_map &map); void main_io(address_map &map); + u8 main_trampoline_r(offs_t offset); + void main_trampoline_w(offs_t offset, u8 data); + // I/O handlers void prepare_display(); DECLARE_WRITE8_MEMBER(ppi_porta_w); @@ -112,10 +89,9 @@ private: void ccx_state::prepare_display() { - // 4 7seg leds (note: sel d0 for extra leds) - u8 outdata = (m_7seg_data & 0x7f) | (m_led_select << 7 & 0x80); + // 4 7segs + 2 leds set_display_segmask(0xf, 0x7f); - display_matrix(8, 4, outdata, m_led_select >> 2 & 0xf); + display_matrix(8, 6, m_7seg_data, m_led_select); } @@ -123,8 +99,8 @@ void ccx_state::prepare_display() WRITE8_MEMBER(ccx_state::ppi_porta_w) { - // d7: enable beeper on falling edge (555 monostable) - if (~data & m_7seg_data & 0x80 && !m_beeper_off->enabled()) + // d7: enable beeper on falling edge (556 monostable) (unpopulated on ACR) + if (m_beeper != nullptr && ~data & m_7seg_data & 0x80 && !m_beeper_off->enabled()) { m_beeper->set_state(1); m_beeper_off->adjust(attotime::from_msec(80)); // duration is approximate @@ -137,8 +113,9 @@ WRITE8_MEMBER(ccx_state::ppi_porta_w) WRITE8_MEMBER(ccx_state::ppi_portb_w) { - // d0,d2-d5: digit/led select - m_led_select = data; + // d0: lose led, d1: check(win) led + // d2-d5: digit select + m_led_select = bitswap<6>(data,0,1,5,4,3,2); prepare_display(); } @@ -160,13 +137,46 @@ WRITE8_MEMBER(ccx_state::ppi_portc_w) Address Maps ******************************************************************************/ -void ccx_state::main_map(address_map &map) +void ccx_state::acr_map(address_map &map) { map.unmap_value_high(); - map.global_mask(0x3fff); - map(0x0000, 0x0fff).rom(); - map(0x1000, 0x10ff).mirror(0x0f00).ram(); - map(0x3000, 0x30ff).mirror(0x0f00).ram(); + map(0x0000, 0x0fff).rom().region("maincpu", 0); // _A12 + map(0x2000, 0x20ff).mirror(0x0f00).ram(); // A13 +} + +void ccx_state::ccx_map(address_map &map) +{ + acr_map(map); + map(0x4000, 0x40ff).mirror(0x0f00).ram(); // A14 +} + +// PCB design is prone to bus conflicts, but assuming software behaves fine, +// it will access ROM at $0xxx, RAM at $3xxx and $5xxx +void ccx_state::main_trampoline_w(offs_t offset, u8 data) +{ + if (offset & 0x2000) + m_mainmap->write8(offset & 0x2fff, data); + if (offset & 0x4000) + m_mainmap->write8(offset & 0x4fff, data); +} + +u8 ccx_state::main_trampoline_r(offs_t offset) +{ + u8 data = 0xff; + if (~offset & 0x1000) + data &= m_mainmap->read8(offset & 0x0fff); + if (offset & 0x2000) + data &= m_mainmap->read8(offset & 0x2fff); + if (offset & 0x4000) + data &= m_mainmap->read8(offset & 0x4fff); + + return data; +} + +void ccx_state::main_trampoline(address_map &map) +{ + map.global_mask(0x7fff); + map(0x0000, 0x7fff).rw(FUNC(ccx_state::main_trampoline_r), FUNC(ccx_state::main_trampoline_w)); } void ccx_state::main_io(address_map &map) @@ -210,29 +220,69 @@ static INPUT_PORTS_START( ccx ) PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, ccx_state, reset_button, nullptr) INPUT_PORTS_END +static INPUT_PORTS_START( acr ) + PORT_START("IN.0") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LV") PORT_CODE(KEYCODE_L) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PV") PORT_CODE(KEYCODE_V) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) + + PORT_START("IN.1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) + + PORT_START("IN.2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("TO") PORT_CODE(KEYCODE_T) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) + + PORT_START("IN.3") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) + + PORT_START("RESET") // is not on matrix IN.0 d0 + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, ccx_state, reset_button, nullptr) +INPUT_PORTS_END + /****************************************************************************** Machine Drivers ******************************************************************************/ -void ccx_state::ccx(machine_config &config) +void ccx_state::acr(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 4_MHz_XTAL); - m_maincpu->set_addrmap(AS_PROGRAM, &ccx_state::main_map); + m_maincpu->set_addrmap(AS_PROGRAM, &ccx_state::main_trampoline); + ADDRESS_MAP_BANK(config, m_mainmap).set_map(&ccx_state::acr_map).set_options(ENDIANNESS_LITTLE, 8, 16); m_maincpu->set_addrmap(AS_IO, &ccx_state::main_io); I8255(config, m_ppi8255); m_ppi8255->out_pa_callback().set(FUNC(ccx_state::ppi_porta_w)); m_ppi8255->tri_pa_callback().set_constant(0); - m_ppi8255->in_pb_callback().set_constant(0); // 0x80 for '3 level mode' + m_ppi8255->in_pb_callback().set_constant(0); m_ppi8255->out_pb_callback().set(FUNC(ccx_state::ppi_portb_w)); m_ppi8255->in_pc_callback().set(FUNC(ccx_state::ppi_portc_r)); m_ppi8255->tri_pb_callback().set_constant(0); m_ppi8255->out_pc_callback().set(FUNC(ccx_state::ppi_portc_w)); TIMER(config, "display_decay").configure_periodic(FUNC(ccx_state::display_decay_tick), attotime::from_msec(1)); + config.set_default_layout(layout_fidel_acr); +} + +void ccx_state::ccx(machine_config &config) +{ + acr(config); + + /* basic machine hardware */ + m_mainmap->set_addrmap(AS_PROGRAM, &ccx_state::ccx_map); + config.set_default_layout(layout_fidel_cc10); /* sound hardware */ @@ -248,11 +298,17 @@ void ccx_state::ccx(machine_config &config) ROM Definitions ******************************************************************************/ -ROM_START( cc10 ) // model CCX +ROM_START( cc10 ) // model CCX, PCB label P241C-1 ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "cn19053n_cc10b", 0x0000, 0x1000, CRC(afd3ca99) SHA1(870d09b2b52ccb8572d69642c59b5215d5fb26ab) ) // 2332 ROM_END + +ROM_START( checkc4 ) // model ACR, PCB label P241C + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "d2332c_043", 0x0000, 0x1000, CRC(4c251d90) SHA1(474d54b05971f2a3208bab56dc6e27f03781c541) ) // no custom label +ROM_END + } // anonymous namespace @@ -261,5 +317,7 @@ ROM_END Drivers ******************************************************************************/ -// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS -CONS( 1978, cc10, 0, 0, ccx, ccx, ccx_state, empty_init, "Fidelity Electronics", "Chess Challenger 10 (model CCX, rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS +CONS( 1978, cc10, 0, 0, ccx, ccx, ccx_state, empty_init, "Fidelity Electronics", "Chess Challenger 10 (model CCX, rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) + +CONS( 1978, checkc4, 0, 0, acr, acr, ccx_state, empty_init, "Fidelity Electronics", "Checker Challenger 4", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/fidel_cc7.cpp b/src/mame/drivers/fidel_cc7.cpp index b99642da9cc..36bd7756dc7 100644 --- a/src/mame/drivers/fidel_cc7.cpp +++ b/src/mame/drivers/fidel_cc7.cpp @@ -29,8 +29,8 @@ Memory map: Port map (Write): --------- D0-D3: digit select and keypad mux -D4: LOSE led -D5: CHECK led +D4: CHECK led +D5: LOSE led A0-A2: NE591 A0-A2 D7: NE591 D (_C not used) NE591 Q0-Q6: digit segments A-G diff --git a/src/mame/drivers/fidel_chesster.cpp b/src/mame/drivers/fidel_chesster.cpp index 1ac4ae64d1c..ac5ce242889 100644 --- a/src/mame/drivers/fidel_chesster.cpp +++ b/src/mame/drivers/fidel_chesster.cpp @@ -1,10 +1,13 @@ // license:BSD-3-Clause // copyright-holders:hap -// thanks-to:yoyo_chessboard +// thanks-to:yoyo_chessboard, Berger /****************************************************************************** * * fidel_chesster.cpp, subdriver of machine/fidelbase.cpp, machine/chessbase.cpp +These were made after Hegener & Glaser took over Fidelity(design phase started +before that). Kishon Chesster was released under both Fidelity, and Mephisto brands. + ******************************************************************************* Fidelity Chesster (model 6120) @@ -147,7 +150,7 @@ void chesster_state::chesster(machine_config &config) R65C02(config, m_maincpu, 5_MHz_XTAL); // RP65C02G m_maincpu->set_addrmap(AS_PROGRAM, &chesster_state::main_map); - const attotime irq_period = attotime::from_hz(9615); // R/C circuit, measured + const attotime irq_period = attotime::from_hz(9500); // from 555 timer, measured (9.6kHz on a Chesster, 9.3kHz on a Kishon) TIMER(config, m_irq_on).configure_periodic(FUNC(chesster_state::irq_on<M6502_IRQ_LINE>), irq_period); m_irq_on->set_start_delay(irq_period - attotime::from_nsec(2600)); // active for 2.6us TIMER(config, "irq_off").configure_periodic(FUNC(chesster_state::irq_off<M6502_IRQ_LINE>), irq_period); @@ -168,7 +171,7 @@ void chesster_state::kishon(machine_config &config) chesster(config); /* basic machine hardware */ - m_maincpu->set_clock(3.579545_MHz_XTAL); + m_maincpu->set_clock(3.579545_MHz_XTAL); // same CPU } @@ -193,12 +196,20 @@ ROM_START( chesstera ) // model 6120, PCB label 510.1141C01 ROM_LOAD("101-1091a02.ic10", 0x0000, 0x20000, CRC(2b4d243c) SHA1(921e51978facb502b207b4f64a73b1e74127e826) ) // AMI, 27C010 or equivalent ROM_END -ROM_START( kishon ) // model 6120G or 6127(same), PCB label 510.1141C01 +ROM_START( kishon ) // possibly Mephisto brand?, PCB label 510.1141C01 + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD("german_chesster_v2.2.ic9", 0x8000, 0x8000, CRC(43e0cfcd) SHA1(961c7335f562b19fa96324c429ab70e8ab4d7647) ) // 27C256, 15.1.91 + + ROM_REGION( 0x80000, "rombank", 0 ) + ROM_LOAD("kishon_chesster_v2.6.ic10", 0x0000, 0x80000, CRC(50598869) SHA1(2087e0c2f40a2408fe217a6502c8c3a247bdd063) ) // Toshiba TC544000P-12 +ROM_END + +ROM_START( kishona ) // model 6120G or 6127(same), PCB label 510.1141C01 ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("kishon.ic9", 0x8000, 0x8000, CRC(121c007f) SHA1(652e9ea47b6bb1632d10eb0fcd7f98cdba22fce7) ) // 27C256 + ROM_LOAD("kishon.ic9", 0x8000, 0x8000, CRC(121c007f) SHA1(652e9ea47b6bb1632d10eb0fcd7f98cdba22fce7) ) // 27C256, no label ROM_REGION( 0x80000, "rombank", 0 ) - ROM_LOAD("kishon_v2.6_1-14-91.ic10", 0x0000, 0x80000, CRC(50598869) SHA1(2087e0c2f40a2408fe217a6502c8c3a247bdd063) ) // Toshiba TC544000P-12, aka 101-1094A01 + ROM_LOAD("kishon_chesster_v2.6.ic10", 0x0000, 0x80000, CRC(50598869) SHA1(2087e0c2f40a2408fe217a6502c8c3a247bdd063) ) // Toshiba TC544000P-12, 1-14-91, aka 101-1094A01 on 6127 ROM_END } // anonymous namespace @@ -210,6 +221,7 @@ ROM_END ******************************************************************************/ // YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS -CONS( 1990, chesster, 0, 0, chesster, chesster, chesster_state, init_chesster, "Fidelity Electronics", "Chesster Challenger (V1.3)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) +CONS( 1990, chesster, 0, 0, chesster, chesster, chesster_state, init_chesster, "Fidelity Electronics", "Chesster Challenger (v1.3)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) CONS( 1990, chesstera, chesster, 0, chesster, chesster, chesster_state, init_chesster, "Fidelity Electronics", "Chesster Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) -CONS( 1991, kishon, chesster, 0, kishon, chesster, chesster_state, init_chesster, "Fidelity Electronics", "Kishon Chesster", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) +CONS( 1991, kishon, chesster, 0, kishon, chesster, chesster_state, init_chesster, "Fidelity Electronics", "Kishon Chesster (v2.2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) +CONS( 1991, kishona, chesster, 0, kishon, chesster, chesster_state, init_chesster, "Fidelity Electronics", "Kishon Chesster", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) diff --git a/src/mame/drivers/fidel_csc.cpp b/src/mame/drivers/fidel_csc.cpp index 36da2d7083e..e63e27eff17 100644 --- a/src/mame/drivers/fidel_csc.cpp +++ b/src/mame/drivers/fidel_csc.cpp @@ -1,6 +1,6 @@ // license:BSD-3-Clause -// copyright-holders:Kevin Horton,Jonathan Gevaryahu,Sandro Ronco,hap -// thanks-to:Berger,yoyo_chessboard +// copyright-holders:Kevin Horton, Jonathan Gevaryahu, Sandro Ronco, hap +// thanks-to:Berger, yoyo_chessboard /****************************************************************************** * * fidel_csc.cpp, subdriver of machine/fidelbase.cpp, machine/chessbase.cpp diff --git a/src/mame/drivers/fidel_desdis.cpp b/src/mame/drivers/fidel_desdis.cpp index ff2b7893c41..0c59c8af683 100644 --- a/src/mame/drivers/fidel_desdis.cpp +++ b/src/mame/drivers/fidel_desdis.cpp @@ -1,6 +1,6 @@ // license:BSD-3-Clause // copyright-holders:hap -// thanks-to:Berger,yoyo_chessboard +// thanks-to:Berger, yoyo_chessboard /****************************************************************************** * * fidel_desdis.cpp, subdriver of machine/fidelbase.cpp, machine/chessbase.cpp diff --git a/src/mame/drivers/fidel_eag68k.cpp b/src/mame/drivers/fidel_eag68k.cpp index 5e79b0fd36d..0f7e002dbe2 100644 --- a/src/mame/drivers/fidel_eag68k.cpp +++ b/src/mame/drivers/fidel_eag68k.cpp @@ -1,6 +1,6 @@ // license:BSD-3-Clause // copyright-holders:hap -// thanks-to:Berger,yoyo_chessboard +// thanks-to:Berger, yoyo_chessboard /****************************************************************************** * * fidel_eag68k.cpp, subdriver of machine/fidelbase.cpp, machine/chessbase.cpp diff --git a/src/mame/drivers/fidel_excel.cpp b/src/mame/drivers/fidel_excel.cpp index 3caf3443073..f1aeeeddad2 100644 --- a/src/mame/drivers/fidel_excel.cpp +++ b/src/mame/drivers/fidel_excel.cpp @@ -1,6 +1,6 @@ // license:BSD-3-Clause // copyright-holders:hap -// thanks-to:Berger,yoyo_chessboard +// thanks-to:Berger, yoyo_chessboard /****************************************************************************** * * fidel_vsc.cpp, subdriver of machine/fidelbase.cpp, machine/chessbase.cpp diff --git a/src/mame/drivers/fidel_sc12.cpp b/src/mame/drivers/fidel_sc12.cpp index a13a01a222d..49859191df4 100644 --- a/src/mame/drivers/fidel_sc12.cpp +++ b/src/mame/drivers/fidel_sc12.cpp @@ -1,6 +1,6 @@ // license:BSD-3-Clause // copyright-holders:hap -// thanks-to:Berger,yoyo_chessboard +// thanks-to:Berger, yoyo_chessboard /****************************************************************************** * * fidel_sc12.cpp, subdriver of machine/fidelbase.cpp, machine/chessbase.cpp diff --git a/src/mame/drivers/fidel_sc9.cpp b/src/mame/drivers/fidel_sc9.cpp index 671782c6447..97fe169a1d0 100644 --- a/src/mame/drivers/fidel_sc9.cpp +++ b/src/mame/drivers/fidel_sc9.cpp @@ -1,6 +1,6 @@ // license:BSD-3-Clause // copyright-holders:hap -// thanks-to:Berger,yoyo_chessboard +// thanks-to:Berger, yoyo_chessboard /****************************************************************************** * * fidel_sc9.cpp, subdriver of machine/fidelbase.cpp, machine/chessbase.cpp @@ -292,4 +292,4 @@ ROM_END CONS( 1982, fscc9, 0, 0, sc9d, sc9, sc9_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger 9 (rev. D)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) // aka version "B" CONS( 1982, fscc9b, fscc9, 0, sc9b, sc9, sc9_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger 9 (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) CONS( 1982, fscc9c, fscc9, 0, sc9b, sc9c, sc9c_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger 9 (rev. C)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) -CONS( 1983, fscc9ps, fscc9, 0, playmatic, playmatic, sc9_state, empty_init, "Fidelity Deutschland", "Sensory 9 Playmatic 'S'", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) +CONS( 1983, fscc9ps, fscc9, 0, playmatic, playmatic, sc9_state, empty_init, "Fidelity Deutschland", "Sensory 9 Playmatic S", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) diff --git a/src/mame/drivers/fidel_vcc.cpp b/src/mame/drivers/fidel_vcc.cpp index c7f43621a9e..9dc11d87f53 100644 --- a/src/mame/drivers/fidel_vcc.cpp +++ b/src/mame/drivers/fidel_vcc.cpp @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Kevin Horton,Jonathan Gevaryahu,Sandro Ronco,hap +// copyright-holders:Kevin Horton, Jonathan Gevaryahu, Sandro Ronco, hap /****************************************************************************** * * fidel_vcc.cpp, subdriver of machine/fidelbase.cpp, machine/chessbase.cpp diff --git a/src/mame/drivers/fidel_vsc.cpp b/src/mame/drivers/fidel_vsc.cpp index cbb4d62cddd..f31fbaf683a 100644 --- a/src/mame/drivers/fidel_vsc.cpp +++ b/src/mame/drivers/fidel_vsc.cpp @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Kevin Horton,Jonathan Gevaryahu,Sandro Ronco,hap +// copyright-holders:Kevin Horton, Jonathan Gevaryahu, Sandro Ronco, hap /****************************************************************************** * * fidel_vsc.cpp, subdriver of machine/fidelbase.cpp, machine/chessbase.cpp diff --git a/src/mame/drivers/galaxian.cpp b/src/mame/drivers/galaxian.cpp index ede3c861d3e..c3213bc002e 100644 --- a/src/mame/drivers/galaxian.cpp +++ b/src/mame/drivers/galaxian.cpp @@ -5988,8 +5988,8 @@ DISCRETE_SOUND_END * *************************************/ -MACHINE_CONFIG_START(galaxian_state::galaxian_base) - +void galaxian_state::galaxian_base(machine_config &config) +{ // basic machine hardware Z80(config, m_maincpu, GALAXIAN_PIXEL_CLOCK/3/2); m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::galaxian_map); @@ -6000,18 +6000,18 @@ MACHINE_CONFIG_START(galaxian_state::galaxian_base) GFXDECODE(config, m_gfxdecode, m_palette, gfx_galaxian); PALETTE(config, m_palette, FUNC(galaxian_state::galaxian_palette), 32); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(GALAXIAN_PIXEL_CLOCK, GALAXIAN_HTOTAL, GALAXIAN_HBEND, GALAXIAN_HBSTART, GALAXIAN_VTOTAL, GALAXIAN_VBEND, GALAXIAN_VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(galaxian_state, screen_update_galaxian) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, galaxian_state, vblank_interrupt_w)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(GALAXIAN_PIXEL_CLOCK, GALAXIAN_HTOTAL, GALAXIAN_HBEND, GALAXIAN_HBSTART, GALAXIAN_VTOTAL, GALAXIAN_VBEND, GALAXIAN_VBSTART); + m_screen->set_screen_update(FUNC(galaxian_state::screen_update_galaxian)); + m_screen->screen_vblank().set(FUNC(galaxian_state::vblank_interrupt_w)); // sound hardware SPEAKER(config, "speaker").front_center(); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(galaxian_state::sidam_bootleg_base) +void galaxian_state::sidam_bootleg_base(machine_config &config) +{ galaxian_base(config); /* basic machine hardware */ @@ -6020,9 +6020,8 @@ MACHINE_CONFIG_START(galaxian_state::sidam_bootleg_base) /* video hardware */ m_gfxdecode->set_info(gfx_sidam); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_RAW_PARAMS(12_MHz_XTAL, SIDAM_HTOTAL, SIDAM_HBEND, SIDAM_HBSTART, GALAXIAN_VTOTAL, GALAXIAN_VBEND, GALAXIAN_VBSTART) -MACHINE_CONFIG_END + m_screen->set_raw(12_MHz_XTAL, SIDAM_HTOTAL, SIDAM_HBEND, SIDAM_HBSTART, GALAXIAN_VTOTAL, GALAXIAN_VBEND, GALAXIAN_VBSTART); +} void galaxian_state::konami_base(machine_config &config) @@ -6043,12 +6042,12 @@ void galaxian_state::konami_base(machine_config &config) } -MACHINE_CONFIG_START(galaxian_state::konami_sound_1x_ay8910) - +void galaxian_state::konami_sound_1x_ay8910(machine_config &config) +{ /* 2nd CPU to drive sound */ - MCFG_DEVICE_ADD("audiocpu", Z80, KONAMI_SOUND_CLOCK/8) - MCFG_DEVICE_PROGRAM_MAP(frogger_sound_map) - MCFG_DEVICE_IO_MAP(frogger_sound_portmap) + Z80(config, m_audiocpu, KONAMI_SOUND_CLOCK/8); + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::frogger_sound_map); + m_audiocpu->set_addrmap(AS_IO, &galaxian_state::frogger_sound_portmap); GENERIC_LATCH_8(config, m_soundlatch); @@ -6062,17 +6061,16 @@ MACHINE_CONFIG_START(galaxian_state::konami_sound_1x_ay8910) m_ay8910[0]->add_route(1, "konami", 1.0, 1); m_ay8910[0]->add_route(2, "konami", 1.0, 2); - MCFG_DEVICE_ADD("konami", DISCRETE, konami_sound_discrete) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.75) -MACHINE_CONFIG_END - + DISCRETE(config, m_discrete, konami_sound_discrete).add_route(ALL_OUTPUTS, "speaker", 0.75); +} -MACHINE_CONFIG_START(galaxian_state::konami_sound_2x_ay8910) +void galaxian_state::konami_sound_2x_ay8910(machine_config &config) +{ /* 2nd CPU to drive sound */ - MCFG_DEVICE_ADD("audiocpu", Z80, KONAMI_SOUND_CLOCK/8) - MCFG_DEVICE_PROGRAM_MAP(konami_sound_map) - MCFG_DEVICE_IO_MAP(konami_sound_portmap) + Z80(config, m_audiocpu, KONAMI_SOUND_CLOCK/8); + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::konami_sound_map); + m_audiocpu->set_addrmap(AS_IO, &galaxian_state::konami_sound_portmap); GENERIC_LATCH_8(config, m_soundlatch); @@ -6093,9 +6091,8 @@ MACHINE_CONFIG_START(galaxian_state::konami_sound_2x_ay8910) m_ay8910[1]->add_route(1, "konami", 1.0, 4); m_ay8910[1]->add_route(2, "konami", 1.0, 5); - MCFG_DEVICE_ADD("konami", DISCRETE, konami_sound_discrete) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) -MACHINE_CONFIG_END + DISCRETE(config, m_discrete, konami_sound_discrete).add_route(ALL_OUTPUTS, "speaker", 0.5); +} void galaxian_state::scramble_base(machine_config &config) @@ -6157,22 +6154,21 @@ void galaxian_state::pacmanbl(machine_config &config) m_gfxdecode->set_info(gfx_pacmanbl); } -MACHINE_CONFIG_START(galaxian_state::tenspot) +void galaxian_state::tenspot(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_ADD("selectcpu", Z80, GALAXIAN_PIXEL_CLOCK/3/2) // ?? mhz - MCFG_DEVICE_PROGRAM_MAP(tenspot_select_map) - //MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse) + z80_device &selectcpu(Z80(config, "selectcpu", GALAXIAN_PIXEL_CLOCK/3/2)); // ?? mhz + selectcpu.set_addrmap(AS_PROGRAM, &galaxian_state::tenspot_select_map); + //selectcpu.set_vblank_int("screen", FUNC(galaxian_state::nmi_line_pulse)); /* separate tile/sprite ROMs */ m_gfxdecode->set_info(gfx_tenspot); - // MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse) /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, galaxian_state, tenspot_interrupt_w)) -MACHINE_CONFIG_END + m_screen->screen_vblank().set(FUNC(galaxian_state::tenspot_interrupt_w)); +} void galaxian_state::zigzag(machine_config &config) { @@ -6298,30 +6294,32 @@ void galaxian_state::jumpbug(machine_config &config) } -MACHINE_CONFIG_START(galaxian_state::checkman) +void galaxian_state::checkman(machine_config &config) +{ mooncrst(config); /* basic machine hardware */ - MCFG_DEVICE_ADD("audiocpu", Z80, 1620000) /* 1.62 MHz */ - MCFG_DEVICE_PROGRAM_MAP(checkman_sound_map) - MCFG_DEVICE_IO_MAP(checkman_sound_portmap) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", galaxian_state, irq0_line_hold) /* NMIs are triggered by the main CPU */ + Z80(config, m_audiocpu, 1620000); /* 1.62 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::checkman_sound_map); + m_audiocpu->set_addrmap(AS_IO, &galaxian_state::checkman_sound_portmap); + m_audiocpu->set_vblank_int("screen", FUNC(galaxian_state::irq0_line_hold)); /* NMIs are triggered by the main CPU */ GENERIC_LATCH_8(config, m_soundlatch); /* sound hardware */ AY8910(config, m_ay8910[0], 1789750).add_route(ALL_OUTPUTS, "speaker", 0.5); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxian_state::checkmaj) +void galaxian_state::checkmaj(machine_config &config) +{ galaxian_base(config); // basic machine hardware m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::galaxian_map_base); // no discrete sound - MCFG_DEVICE_ADD("audiocpu", Z80, 1620000) - MCFG_DEVICE_PROGRAM_MAP(checkmaj_sound_map) + Z80(config, m_audiocpu, 1620000); + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::checkmaj_sound_map); TIMER(config, "irq0").configure_scanline(FUNC(galaxian_state::checkmaj_irq0_gen), "screen", 0, 8); @@ -6331,7 +6329,7 @@ MACHINE_CONFIG_START(galaxian_state::checkmaj) AY8910(config, m_ay8910[0], 1620000); m_ay8910[0]->port_a_read_callback().set(m_soundlatch, FUNC(generic_latch_8_device::read)); m_ay8910[0]->add_route(ALL_OUTPUTS, "speaker", 2); -MACHINE_CONFIG_END +} void galaxian_state::mshuttle(machine_config &config) @@ -6377,16 +6375,16 @@ void galaxian_state::frogger(machine_config &config) } -MACHINE_CONFIG_START(galaxian_state::froggermc) +void galaxian_state::froggermc(machine_config &config) +{ galaxian_base(config); konami_sound_1x_ay8910(config); // alternate memory map m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::froggermc_map); - MCFG_DEVICE_MODIFY("audiocpu") - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(DEVICE_SELF, galaxian_state, froggermc_audiocpu_irq_ack) -MACHINE_CONFIG_END + m_audiocpu->set_irq_acknowledge_callback(FUNC(galaxian_state::froggermc_audiocpu_irq_ack)); +} void galaxian_state::froggers(machine_config &config) @@ -6456,35 +6454,37 @@ void galaxian_state::scramble(machine_config &config) m_ppi8255[1]->out_pc_callback().set(FUNC(galaxian_state::theend_protection_w)); } -MACHINE_CONFIG_START(galaxian_state::jungsub) +void galaxian_state::jungsub(machine_config &config) +{ galaxian_base(config); // alternate memory map m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::jungsub_map); m_maincpu->set_addrmap(AS_IO, &galaxian_state::jungsub_io_map); - MCFG_DEVICE_ADD("audiocpu", Z80, GALAXIAN_PIXEL_CLOCK / 3 / 2) // clock not verified - MCFG_DEVICE_PROGRAM_MAP(checkman_sound_map) - MCFG_DEVICE_IO_MAP(checkman_sound_portmap) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", galaxian_state, irq0_line_hold) + Z80(config, m_audiocpu, GALAXIAN_PIXEL_CLOCK / 3 / 2); // clock not verified + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::checkman_sound_map); + m_audiocpu->set_addrmap(AS_IO, &galaxian_state::checkman_sound_portmap); + m_audiocpu->set_vblank_int("screen", FUNC(galaxian_state::irq0_line_hold)); GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); /* sound hardware */ AY8910(config, m_ay8910[0], GALAXIAN_PIXEL_CLOCK / 3 / 2 / 2).add_route(ALL_OUTPUTS, "speaker", 0.5); // clock not verified -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxian_state::explorer) // Sidam 10800 +void galaxian_state::explorer(machine_config &config) // Sidam 10800 +{ sidam_bootleg_base(config); // alternate memory map m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::explorer_map); /* 2nd CPU to drive sound */ - MCFG_DEVICE_ADD("audiocpu", Z80, 12_MHz_XTAL / 2 / 2 / 2) /* clock not verified */ - MCFG_DEVICE_PROGRAM_MAP(konami_sound_map) - MCFG_DEVICE_IO_MAP(konami_sound_portmap) + Z80(config, m_audiocpu, 12_MHz_XTAL / 2 / 2 / 2); /* clock not verified */ + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::konami_sound_map); + m_audiocpu->set_addrmap(AS_IO, &galaxian_state::konami_sound_portmap); GENERIC_LATCH_8(config, m_soundlatch); @@ -6496,15 +6496,15 @@ MACHINE_CONFIG_START(galaxian_state::explorer) // Sidam 10800 AY8912(config, m_ay8910[1], 12_MHz_XTAL / 2 / 2 / 2); /* matches PCB, needs verification */ m_ay8910[0]->port_a_read_callback().set(FUNC(galaxian_state::konami_sound_timer_r)); m_ay8910[0]->add_route(ALL_OUTPUTS, "speaker", 0.25); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxian_state::takeoff) // Sidam 10900, with 1 x AY-3-8912 +void galaxian_state::takeoff(machine_config &config) // Sidam 10900, with 1 x AY-3-8912 +{ explorer(config); /* 2nd CPU to drive sound */ - MCFG_DEVICE_MODIFY("audiocpu") - MCFG_DEVICE_PROGRAM_MAP(takeoff_sound_map) - MCFG_DEVICE_IO_MAP(takeoff_sound_portmap) + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::takeoff_sound_map); + m_audiocpu->set_addrmap(AS_IO, &galaxian_state::takeoff_sound_portmap); /* sound hardware */ config.device_remove("8910.0"); @@ -6513,18 +6513,20 @@ MACHINE_CONFIG_START(galaxian_state::takeoff) // Sidam 10900, with 1 x AY-3-8912 ay8912_device &ay8912(AY8912(config, "8912", XTAL(12'000'000) / 8)); ay8912.port_a_read_callback().set(FUNC(galaxian_state::explorer_sound_latch_r)); ay8912.add_route(ALL_OUTPUTS, "speaker", 0.25); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxian_state::amigo2) // marked "AMI", but similar to above +void galaxian_state::amigo2(machine_config &config) // marked "AMI", but similar to above +{ sidam_bootleg_base(config); // alternate memory map m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::amigo2_map); // 2nd CPU to drive sound - MCFG_DEVICE_ADD("audiocpu", Z80, 12_MHz_XTAL / 2 / 2 / 2) // clock not verified - MCFG_DEVICE_PROGRAM_MAP(konami_sound_map) - MCFG_DEVICE_IO_MAP(konami_sound_portmap) + Z80(config, m_audiocpu, 12_MHz_XTAL / 2 / 2 / 2); // clock not verified + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::konami_sound_map); + m_audiocpu->set_addrmap(AS_IO, &galaxian_state::konami_sound_portmap); + GENERIC_LATCH_8(config, m_soundlatch); /* sound hardware */ @@ -6534,17 +6536,17 @@ MACHINE_CONFIG_START(galaxian_state::amigo2) // marked "AMI", but similar to abo m_ay8910[0]->add_route(ALL_OUTPUTS, "speaker", 0.25); AY8910(config, m_ay8910[1], 12_MHz_XTAL / 2 / 2 / 2).add_route(ALL_OUTPUTS, "speaker", 0.25); /* matches PCB, needs verification */ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxian_state::scorpion) +void galaxian_state::scorpion(machine_config &config) +{ scramble_base(config); // alternate memory map m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::scorpion_map); - MCFG_DEVICE_MODIFY("audiocpu") - MCFG_DEVICE_PROGRAM_MAP(scorpion_sound_map) - MCFG_DEVICE_IO_MAP(scorpion_sound_portmap) + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::scorpion_sound_map); + m_audiocpu->set_addrmap(AS_IO, &galaxian_state::scorpion_sound_portmap); m_ppi8255[1]->in_pc_callback().set(FUNC(galaxian_state::scorpion_protection_r)); m_ppi8255[1]->out_pc_callback().set(FUNC(galaxian_state::scorpion_protection_w)); @@ -6556,7 +6558,7 @@ MACHINE_CONFIG_START(galaxian_state::scorpion) m_ay8910[2]->add_route(ALL_OUTPUTS, "speaker", 0.25); DIGITALKER(config, m_digitalker, 4_MHz_XTAL).add_route(ALL_OUTPUTS, "speaker", 0.16); -MACHINE_CONFIG_END +} void galaxian_state::sfx(machine_config &config) @@ -6689,25 +6691,25 @@ void galaxian_state::froggeram(machine_config &config) } -MACHINE_CONFIG_START(galaxian_state::turpins) // the ROMs came from a blister, so there aren't PCB infos available. Chip types and clocks are guessed. +void galaxian_state::turpins(machine_config &config) // the ROMs came from a blister, so there aren't PCB infos available. Chip types and clocks are guessed. +{ scobra(config); // alternate memory map m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::turpins_map); - MCFG_DEVICE_MODIFY("audiocpu") - MCFG_DEVICE_PROGRAM_MAP(turpins_sound_map) -MACHINE_CONFIG_END + m_audiocpu->set_addrmap(AS_PROGRAM, &galaxian_state::turpins_sound_map); +} -MACHINE_CONFIG_START(galaxian_state::anteater) +void galaxian_state::anteater(machine_config &config) +{ scobra(config); /* quiet down the sounds */ - MCFG_DEVICE_MODIFY("konami") - MCFG_SOUND_ROUTES_RESET() - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) -MACHINE_CONFIG_END + m_discrete->reset_routes(); + m_discrete->add_route(ALL_OUTPUTS, "speaker", 0.25); +} void galaxian_state::anteateruk(machine_config &config) diff --git a/src/mame/drivers/galaxold.cpp b/src/mame/drivers/galaxold.cpp index c87e568e3ba..45ed0e73615 100644 --- a/src/mame/drivers/galaxold.cpp +++ b/src/mame/drivers/galaxold.cpp @@ -588,7 +588,7 @@ void galaxold_state::dkongjrmc_map(address_map &map) } -void galaxold_state::tazzmang(address_map &map) +void galaxold_state::tazzmang_map(address_map &map) { map(0x0000, 0x5fff).rom(); map(0x7000, 0x7000).portr("DSW0"); /* mirror */ @@ -614,7 +614,7 @@ void galaxold_state::tazzmang(address_map &map) } -void galaxold_state::bongo(address_map &map) +void galaxold_state::bongo_map(address_map &map) { map(0x0000, 0x5fff).rom(); map(0x8000, 0x83ff).ram(); @@ -668,7 +668,7 @@ void galaxold_state::ozon1_io_map(address_map &map) } -void galaxold_state::hunchbkg(address_map &map) +void galaxold_state::hunchbkg_map(address_map &map) { map(0x0000, 0x0fff).rom(); map(0x1480, 0x14bf).mirror(0x6000).ram().w(FUNC(galaxold_state::galaxold_attributesram_w)).share("attributesram"); @@ -694,7 +694,7 @@ void galaxold_state::hunchbkg(address_map &map) } /* hunchbkg style */ -void galaxold_state::spcwarp(address_map &map) +void galaxold_state::spcwarp_map(address_map &map) { map(0x0000, 0x0fff).rom(); map(0x1480, 0x14bf).mirror(0x6000).ram().w(FUNC(galaxold_state::galaxold_attributesram_w)).share("attributesram"); @@ -2253,11 +2253,11 @@ static GFXDECODE_START( gfx_4in1 ) GFXDECODE_END -MACHINE_CONFIG_START(galaxold_state::galaxold_base) - +void galaxold_state::galaxold_base(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, PIXEL_CLOCK/2) /* 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(galaxold_map) + Z80(config, m_maincpu, PIXEL_CLOCK/2); /* 3.072 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::galaxold_map); MCFG_MACHINE_RESET_OVERRIDE(galaxold_state,galaxold) @@ -2275,58 +2275,56 @@ MACHINE_CONFIG_START(galaxold_state::galaxold_base) GFXDECODE(config, m_gfxdecode, m_palette, gfx_galaxian); PALETTE(config, m_palette, FUNC(galaxold_state::galaxold_palette), 32+2+64); // 32 for the characters, 2 for the bullets, 64 for the stars - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); + m_screen->set_screen_update(FUNC(galaxold_state::screen_update_galaxold)); + m_screen->set_palette(m_palette); MCFG_VIDEO_START_OVERRIDE(galaxold_state,galaxold) /* sound hardware */ SPEAKER(config, "speaker").front_center(); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(galaxold_state::galaxian_audio) - MCFG_DEVICE_ADD("cust", GALAXIAN, 0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) +} - MCFG_DEVICE_ADD(GAL_AUDIO, DISCRETE, galaxian_discrete) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) -MACHINE_CONFIG_END +void galaxold_state::galaxian_audio(machine_config &config) +{ + GALAXIAN(config, "cust", 0).add_route(ALL_OUTPUTS, "speaker", 0.4); -MACHINE_CONFIG_START(galaxold_state::mooncrst_audio) - MCFG_DEVICE_ADD("cust", GALAXIAN, 0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) + DISCRETE(config, GAL_AUDIO, galaxian_discrete).add_route(ALL_OUTPUTS, "speaker", 1.0); +} - MCFG_DEVICE_ADD(GAL_AUDIO, DISCRETE, mooncrst_discrete) +void galaxold_state::mooncrst_audio(machine_config &config) +{ + GALAXIAN(config, "cust", 0).add_route(ALL_OUTPUTS, "speaker", 0.4); - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) -MACHINE_CONFIG_END + DISCRETE(config, GAL_AUDIO, mooncrst_discrete).add_route(ALL_OUTPUTS, "speaker", 1.0); +} -MACHINE_CONFIG_START(galaxold_state::galaxian) +void galaxold_state::galaxian(machine_config &config) +{ galaxold_base(config); /* basic machine hardware */ /* sound hardware */ galaxian_audio(config); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::mooncrst) +void galaxold_state::mooncrst(machine_config &config) +{ galaxold_base(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(mooncrst_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::mooncrst_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(galaxold_state,mooncrst) /* sound hardware */ mooncrst_audio(config); -MACHINE_CONFIG_END +} // 'Videotron' // this is a 'cartridge' based system, taking plug-in game boards. @@ -2334,84 +2332,85 @@ MACHINE_CONFIG_END // but neither of the games we have (froggerv and hustlerb3) make use of either. There are a number // of unpopulated positions on the game board which presumably can be populated with code for the // 2nd Z80. -MACHINE_CONFIG_START(galaxold_state::videotron) +void galaxold_state::videotron(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(hustlerb3_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::hustlerb3_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(galaxold_state,mooncrst) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::porter) +void galaxold_state::porter(machine_config &config) +{ mooncrst(config); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(galaxold_state, pisces) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::scramblb) +void galaxold_state::scramblb(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(scramblb_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::scramblb_map); /* video hardware */ m_palette->set_entries(32+2+64+1); // 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background m_palette->set_init(FUNC(galaxold_state::scrambold_palette)); MCFG_VIDEO_START_OVERRIDE(galaxold_state,scrambold) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::scramb2) +void galaxold_state::scramb2(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(scramb2_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::scramb2_map); /* video hardware */ m_palette->set_entries(32+2+64+1); // 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background m_palette->set_init(FUNC(galaxold_state::scrambold_palette)); MCFG_VIDEO_START_OVERRIDE(galaxold_state,scrambold) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::scramb3) +void galaxold_state::scramb3(machine_config &config) +{ scramb2(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(scramb3_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::scramb3_map); +} -MACHINE_CONFIG_START(galaxold_state::scrambler) +void galaxold_state::scrambler(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(scrambler_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::scrambler_map); /* video hardware */ m_palette->set_entries(32+2+64+1); // 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background m_palette->set_init(FUNC(galaxold_state::scrambold_palette)); MCFG_VIDEO_START_OVERRIDE(galaxold_state,scrambold) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::guttang) +void galaxold_state::guttang(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(guttang_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::guttang_map); /* video hardware */ m_palette->set_entries(32+2+64+1); // 32 for the characters, 2 for the bullets, 64 for the stars, 1 for background @@ -2419,64 +2418,64 @@ MACHINE_CONFIG_START(galaxold_state::guttang) // m_palette->set_init(FUNC(galaxold_state::scrambold_palette)); MCFG_VIDEO_START_OVERRIDE(galaxold_state,mooncrst) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::_4in1) +void galaxold_state::_4in1(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(_4in1_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::_4in1_map); /* video hardware */ m_gfxdecode->set_info(gfx_4in1); MCFG_VIDEO_START_OVERRIDE(galaxold_state,pisces) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::bagmanmc) +void galaxold_state::bagmanmc(machine_config &config) +{ mooncrst(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(bagmanmc_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::bagmanmc_map); MCFG_MACHINE_RESET_OVERRIDE(galaxold_state, devilfsg ) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(galaxold_state, bagmanmc) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::dkongjrm) +void galaxold_state::dkongjrm(machine_config &config) +{ mooncrst(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(dkongjrm_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::dkongjrm_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(galaxold_state,dkongjrm) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::dkongjrmc) +void galaxold_state::dkongjrmc(machine_config &config) +{ mooncrst(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(dkongjrmc_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::dkongjrmc_map); MCFG_VIDEO_START_OVERRIDE(galaxold_state,dkongjrmc) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::rockclim) +void galaxold_state::rockclim(machine_config &config) +{ mooncrst(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(rockclim_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::rockclim_map); m_gfxdecode->set_info(gfx_rockclim); /* video hardware */ @@ -2484,19 +2483,18 @@ MACHINE_CONFIG_START(galaxold_state::rockclim) m_palette->set_entries(64+64+2); // 64 colors only, but still uses bullets so we need to keep the palette big m_palette->set_init(FUNC(galaxold_state::rockclim_palette)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_SIZE(64*8, 32*8) -MACHINE_CONFIG_END + m_screen->set_size(64*8, 32*8); +} -MACHINE_CONFIG_START(galaxold_state::ozon1) +void galaxold_state::ozon1(machine_config &config) +{ galaxold_base(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(ozon1_map) - MCFG_DEVICE_IO_MAP(ozon1_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", galaxold_state, nmi_line_pulse) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::ozon1_map); + m_maincpu->set_addrmap(AS_IO, &galaxold_state::ozon1_io_map); + m_maincpu->set_vblank_int("screen", FUNC(galaxold_state::nmi_line_pulse)); MCFG_MACHINE_RESET_REMOVE() @@ -2506,11 +2504,11 @@ MACHINE_CONFIG_START(galaxold_state::ozon1) MCFG_VIDEO_START_OVERRIDE(galaxold_state,ozon1) AY8910(config, "aysnd", PIXEL_CLOCK/4).add_route(ALL_OUTPUTS, "speaker", 0.5); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(galaxold_state::drivfrcg) +void galaxold_state::drivfrcg(machine_config &config) +{ /* basic machine hardware */ s2650_device &maincpu(S2650(config, m_maincpu, MASTER_CLOCK/6)); maincpu.set_addrmap(AS_PROGRAM, &galaxold_state::drivfrcg_program); @@ -2519,13 +2517,13 @@ MACHINE_CONFIG_START(galaxold_state::drivfrcg) maincpu.sense_handler().set("screen", FUNC(screen_device::vblank)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(16000.0/132/2) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(16000.0/132/2); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + m_screen->set_size(32*8, 32*8); + m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(galaxold_state::screen_update_galaxold)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette, FUNC(galaxold_state::rockclim_palette), 64); @@ -2537,38 +2535,38 @@ MACHINE_CONFIG_START(galaxold_state::drivfrcg) SPEAKER(config, "speaker").front_center(); galaxian_audio(config); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::bongo) +void galaxold_state::bongo(machine_config &config) +{ galaxold_base(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(bongo) - MCFG_DEVICE_IO_MAP(bongo_io) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::bongo_map); + m_maincpu->set_addrmap(AS_IO, &galaxold_state::bongo_io); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(galaxold_state,bongo) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) + + m_screen->set_screen_update(FUNC(galaxold_state::screen_update_galaxold)); /* sound hardware */ ay8910_device &aysnd(AY8910(config, "aysnd", PIXEL_CLOCK/4)); aysnd.port_a_read_callback().set_ioport("DSW1"); aysnd.add_route(ALL_OUTPUTS, "speaker", 0.5); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::hunchbkg) +void galaxold_state::hunchbkg(machine_config &config) +{ galaxold_base(config); /* basic machine hardware */ - MCFG_DEVICE_REPLACE("maincpu", S2650, PIXEL_CLOCK / 4) - - MCFG_DEVICE_PROGRAM_MAP(hunchbkg) - MCFG_DEVICE_DATA_MAP(hunchbkg_data) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(galaxold_state,hunchbkg_irq_callback) + S2650(config.replace(), m_maincpu, PIXEL_CLOCK / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::hunchbkg_map); + m_maincpu->set_addrmap(AS_DATA, &galaxold_state::hunchbkg_data); + m_maincpu->set_irq_acknowledge_callback(FUNC(galaxold_state::hunchbkg_irq_callback)); /* the nmi line seems to be inverted on the cpu plugin board */ m_7474_9m_1->comp_output_cb().set_inputline("maincpu", S2650_SENSE_LINE); @@ -2576,115 +2574,113 @@ MACHINE_CONFIG_START(galaxold_state::hunchbkg) MCFG_MACHINE_RESET_OVERRIDE(galaxold_state,hunchbkg) galaxian_audio(config); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::spcwarp) +void galaxold_state::spcwarp(machine_config &config) +{ hunchbkg(config); /* hunchbkg, but with a different memory map */ /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(spcwarp) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::spcwarp_map); +} -MACHINE_CONFIG_START(galaxold_state::tazzmang) +void galaxold_state::tazzmang(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(tazzmang) -MACHINE_CONFIG_END - + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::tazzmang_map); +} -MACHINE_CONFIG_START(galaxold_state::racknrol) +void galaxold_state::racknrol(machine_config &config) +{ /* basic machine hardware */ s2650_device &maincpu(S2650(config, m_maincpu, PIXEL_CLOCK/2)); maincpu.set_addrmap(AS_PROGRAM, &galaxold_state::racknrol_map); maincpu.set_addrmap(AS_IO, &galaxold_state::racknrol_io); maincpu.sense_handler().set(m_screen, FUNC(screen_device::vblank)).invert(); // ??? - device = &maincpu; // FIXME: kill the following line - convert to a screen vblank callback - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", galaxold_state, hunchbks_vh_interrupt) + // FIXME: kill the following line - convert to a screen vblank callback + maincpu.set_vblank_int("screen", FUNC(galaxold_state::hunchbks_vh_interrupt)); /* video hardware */ GFXDECODE(config, m_gfxdecode, m_palette, gfx_galaxian); PALETTE(config, m_palette, FUNC(galaxold_state::rockclim_palette), 32); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); + m_screen->set_screen_update(FUNC(galaxold_state::screen_update_galaxold)); + m_screen->set_palette(m_palette); MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol) /* sound hardware */ SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489A, PIXEL_CLOCK/2) // SN76489AN - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) -MACHINE_CONFIG_END - + SN76489A(config, "snsnd", PIXEL_CLOCK/2).add_route(ALL_OUTPUTS, "speaker", 1.0); // SN76489AN +} -MACHINE_CONFIG_START(galaxold_state::hexpoola) +void galaxold_state::hexpoola(machine_config &config) +{ /* basic machine hardware */ s2650_device &maincpu(S2650(config, m_maincpu, PIXEL_CLOCK/2)); maincpu.set_addrmap(AS_PROGRAM, &galaxold_state::racknrol_map); maincpu.set_addrmap(AS_IO, &galaxold_state::hexpoola_io); maincpu.set_addrmap(AS_DATA, &galaxold_state::hexpoola_data); maincpu.sense_handler().set(m_screen, FUNC(screen_device::vblank)).invert(); // ??? - device = &maincpu; // FIXME: kill the following line - convert to a screen vblank callback - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", galaxold_state, hunchbks_vh_interrupt) + // FIXME: kill the following line - convert to a screen vblank callback + maincpu.set_vblank_int("screen", FUNC(galaxold_state::hunchbks_vh_interrupt)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_galaxian); PALETTE(config, m_palette, FUNC(galaxold_state::rockclim_palette), 32); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); + m_screen->set_screen_update(FUNC(galaxold_state::screen_update_galaxold)); + m_screen->set_palette(m_palette); MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol) /* sound hardware */ SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76496, PIXEL_CLOCK/2) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) -MACHINE_CONFIG_END + SN76496(config, "snsnd", PIXEL_CLOCK/2).add_route(ALL_OUTPUTS, "speaker", 1.0); +} -MACHINE_CONFIG_START(galaxold_state::ckongg) +void galaxold_state::ckongg(machine_config &config) +{ galaxian(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(ckongg_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::ckongg_map); m_gfxdecode->set_info(gfx_gmgalax); MCFG_VIDEO_START_OVERRIDE(galaxold_state,ckongs) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::ckongmc) +void galaxold_state::ckongmc(machine_config &config) +{ mooncrst(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(ckongmc_map) + m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::ckongmc_map); m_gfxdecode->set_info(gfx_gmgalax); MCFG_VIDEO_START_OVERRIDE(galaxold_state,ckongs) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(galaxold_state::bullsdrtg) +void galaxold_state::bullsdrtg(machine_config &config) +{ hexpoola(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_DATA_MAP(bullsdrtg_data_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_DATA, &galaxold_state::bullsdrtg_data_map); +} /*************************************************************************** diff --git a/src/mame/drivers/gauntlet.cpp b/src/mame/drivers/gauntlet.cpp index f4ef4cec567..7f3f1b05ac5 100644 --- a/src/mame/drivers/gauntlet.cpp +++ b/src/mame/drivers/gauntlet.cpp @@ -488,42 +488,42 @@ GFXDECODE_END * *************************************/ -MACHINE_CONFIG_START(gauntlet_state::gauntlet_base) - +void gauntlet_state::gauntlet_base(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68010, ATARI_CLOCK_14MHz/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) + M68010(config, m_maincpu, ATARI_CLOCK_14MHz/2); + m_maincpu->set_addrmap(AS_PROGRAM, &gauntlet_state::main_map); - MCFG_DEVICE_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8) - MCFG_DEVICE_PROGRAM_MAP(sound_map) + M6502(config, m_audiocpu, ATARI_CLOCK_14MHz/8); + m_audiocpu->set_addrmap(AS_PROGRAM, &gauntlet_state::sound_map); EEPROM_2804(config, "eeprom").lock_after_write(true); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - GFXDECODE(config, "gfxdecode", "palette", gfx_gauntlet); + GFXDECODE(config, m_gfxdecode, "palette", gfx_gauntlet); PALETTE(config, "palette").set_format(palette_device::IRGB_4444, 1024); - MCFG_TILEMAP_ADD_STANDARD("playfield", "gfxdecode", 2, gauntlet_state, get_playfield_tile_info, 8,8, SCAN_COLS, 64,64) - MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", "gfxdecode", 2, gauntlet_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,32, 0) + TILEMAP(config, m_playfield_tilemap, m_gfxdecode, 2, 8,8, TILEMAP_SCAN_COLS, 64,64).set_info_callback(FUNC(gauntlet_state::get_playfield_tile_info)); + TILEMAP(config, m_alpha_tilemap, m_gfxdecode, 2, 8,8, TILEMAP_SCAN_ROWS, 64,32, 0).set_info_callback(FUNC(gauntlet_state::get_alpha_tile_info)); ATARI_MOTION_OBJECTS(config, m_mob, 0, m_screen, gauntlet_state::s_mob_config); m_mob->set_gfxdecode(m_gfxdecode); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); /* note: these parameters are from published specs, not derived */ /* the board uses a SYNGEN chip to generate video signals */ - MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_DRIVER(gauntlet_state, screen_update_gauntlet) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, gauntlet_state, video_int_write_line)) + m_screen->set_raw(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240); + m_screen->set_screen_update(FUNC(gauntlet_state::screen_update_gauntlet)); + m_screen->set_palette("palette"); + m_screen->screen_vblank().set(FUNC(gauntlet_state::video_int_write_line)); /* sound hardware */ - ATARI_SOUND_COMM(config, "soundcomm", "audiocpu") - .int_callback().set_inputline("maincpu", M68K_IRQ_6); + ATARI_SOUND_COMM(config, m_soundcomm, m_audiocpu) + .int_callback().set_inputline(m_maincpu, M68K_IRQ_6); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -531,22 +531,22 @@ MACHINE_CONFIG_START(gauntlet_state::gauntlet_base) m_ym2151->add_route(1, "lspeaker", 0.48); m_ym2151->add_route(0, "rspeaker", 0.48); - MCFG_DEVICE_ADD("pokey", POKEY, ATARI_CLOCK_14MHz/8) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.32) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.32) + POKEY(config, m_pokey, ATARI_CLOCK_14MHz/8); + m_pokey->add_route(ALL_OUTPUTS, "lspeaker", 0.32); + m_pokey->add_route(ALL_OUTPUTS, "rspeaker", 0.32); - MCFG_DEVICE_ADD("tms", TMS5220C, ATARI_CLOCK_14MHz/2/11) /* potentially ATARI_CLOCK_14MHz/2/9 as well */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80) + TMS5220C(config, m_tms5220, ATARI_CLOCK_14MHz/2/11); /* potentially ATARI_CLOCK_14MHz/2/9 as well */ + m_tms5220->add_route(ALL_OUTPUTS, "lspeaker", 0.80); + m_tms5220->add_route(ALL_OUTPUTS, "rspeaker", 0.80); LS259(config, m_soundctl); // 16T/U - m_soundctl->q_out_cb<0>().set("ymsnd", FUNC(ym2151_device::reset_w)); // music reset, low reset - m_soundctl->q_out_cb<1>().set("tms", FUNC(tms5220_device::wsq_w)); // speech write, active low - m_soundctl->q_out_cb<2>().set("tms", FUNC(tms5220_device::rsq_w)); // speech reset, active low + m_soundctl->q_out_cb<0>().set(m_ym2151, FUNC(ym2151_device::reset_w)); // music reset, low reset + m_soundctl->q_out_cb<1>().set(m_tms5220, FUNC(tms5220_device::wsq_w)); // speech write, active low + m_soundctl->q_out_cb<2>().set(m_tms5220, FUNC(tms5220_device::rsq_w)); // speech reset, active low m_soundctl->q_out_cb<3>().set(FUNC(gauntlet_state::speech_squeak_w)); // speech squeak, low = 650 Hz m_soundctl->q_out_cb<4>().set(FUNC(gauntlet_state::coin_counter_right_w)); m_soundctl->q_out_cb<5>().set(FUNC(gauntlet_state::coin_counter_left_w)); -MACHINE_CONFIG_END +} void gauntlet_state::gauntlet(machine_config & config) @@ -1259,7 +1259,7 @@ ROM_START( gaunt2 ) ROM_LOAD( "136043-1119.16s", 0x008000, 0x008000, CRC(dc3591e7) SHA1(6d0d8493609974bd5a63be858b045fe4db35d8df) ) ROM_REGION( 0x04000, "gfx1", 0 ) - ROM_LOAD( "136043-1104.6p", 0x000000, 0x002000, CRC(1343cf6f) SHA1(4a9542bc8ede305e7e8f860eb4b47ca2f3017275) ) + ROM_LOAD( "136043-1104.6p", 0x000000, 0x004000, CRC(bddc3dfc) SHA1(2e1279041ed62fb28ac8a8909e8fedab2556f39e) ) // second half 0x00 ROM_REGION( 0x60000, "gfx2", ROMREGION_INVERT ) ROM_LOAD( "136043-1111.1a", 0x000000, 0x008000, CRC(09df6e23) SHA1(726984275c6a338c12ec0c4cc449f92f4a7a138c) ) @@ -1280,9 +1280,9 @@ ROM_START( gaunt2 ) ROM_RELOAD( 0x05c000, 0x004000 ) ROM_REGION( 0x500, "proms", 0 ) - ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) ) /* MO timing */ - ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) ) /* MO flip control */ - ROM_LOAD( "74s287-136037-103.4r", 0x400, 0x100, CRC(6c5ccf08) SHA1(ff5dbadd85aa2e07b383a302fa399e875db8f84f) ) /* MO position/size */ + ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) ) /* MO timing */ + ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) ) /* MO flip control */ + ROM_LOAD( "82s129-136043-1103.4r", 0x400, 0x100, CRC(32ae1fa9) SHA1(09eb56a0798456d73015909973ce2ba9660c1164) ) /* MO position/size */ ROM_END @@ -1302,7 +1302,7 @@ ROM_START( gaunt2g ) ROM_LOAD( "136043-1119.16s", 0x008000, 0x008000, CRC(dc3591e7) SHA1(6d0d8493609974bd5a63be858b045fe4db35d8df) ) ROM_REGION( 0x04000, "gfx1", 0 ) - ROM_LOAD( "136043-1104.6p", 0x000000, 0x002000, CRC(1343cf6f) SHA1(4a9542bc8ede305e7e8f860eb4b47ca2f3017275) ) + ROM_LOAD( "136043-1104.6p", 0x000000, 0x004000, CRC(bddc3dfc) SHA1(2e1279041ed62fb28ac8a8909e8fedab2556f39e) ) // second half 0x00 ROM_REGION( 0x60000, "gfx2", ROMREGION_INVERT ) ROM_LOAD( "136043-1111.1a", 0x000000, 0x008000, CRC(09df6e23) SHA1(726984275c6a338c12ec0c4cc449f92f4a7a138c) ) @@ -1323,9 +1323,9 @@ ROM_START( gaunt2g ) ROM_RELOAD( 0x05c000, 0x004000 ) ROM_REGION( 0x500, "proms", 0 ) - ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) ) /* MO timing */ - ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) ) /* MO flip control */ - ROM_LOAD( "74s287-136037-103.4r", 0x400, 0x100, CRC(6c5ccf08) SHA1(ff5dbadd85aa2e07b383a302fa399e875db8f84f) ) /* MO position/size */ + ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) ) /* MO timing */ + ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) ) /* MO flip control */ + ROM_LOAD( "82s129-136043-1103.4r", 0x400, 0x100, CRC(32ae1fa9) SHA1(09eb56a0798456d73015909973ce2ba9660c1164) ) /* MO position/size */ ROM_END @@ -1345,7 +1345,7 @@ ROM_START( gaunt22p ) ROM_LOAD( "136043-1119.16s", 0x008000, 0x008000, CRC(dc3591e7) SHA1(6d0d8493609974bd5a63be858b045fe4db35d8df) ) ROM_REGION( 0x04000, "gfx1", 0 ) - ROM_LOAD( "136043-1104.6p", 0x000000, 0x002000, CRC(1343cf6f) SHA1(4a9542bc8ede305e7e8f860eb4b47ca2f3017275) ) + ROM_LOAD( "136043-1104.6p", 0x000000, 0x004000, CRC(bddc3dfc) SHA1(2e1279041ed62fb28ac8a8909e8fedab2556f39e) ) // second half 0x00 ROM_REGION( 0x60000, "gfx2", ROMREGION_INVERT ) ROM_LOAD( "136043-1111.1a", 0x000000, 0x008000, CRC(09df6e23) SHA1(726984275c6a338c12ec0c4cc449f92f4a7a138c) ) @@ -1366,9 +1366,9 @@ ROM_START( gaunt22p ) ROM_RELOAD( 0x05c000, 0x004000 ) ROM_REGION( 0x500, "proms", 0 ) - ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) ) /* MO timing */ - ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) ) /* MO flip control */ - ROM_LOAD( "74s287-136037-103.4r", 0x400, 0x100, CRC(6c5ccf08) SHA1(ff5dbadd85aa2e07b383a302fa399e875db8f84f) ) /* MO position/size */ + ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) ) /* MO timing */ + ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) ) /* MO flip control */ + ROM_LOAD( "82s129-136043-1103.4r", 0x400, 0x100, CRC(32ae1fa9) SHA1(09eb56a0798456d73015909973ce2ba9660c1164) ) /* MO position/size */ ROM_END @@ -1388,7 +1388,7 @@ ROM_START( gaunt22p1 ) ROM_LOAD( "136043-1119.16s", 0x008000, 0x008000, CRC(dc3591e7) SHA1(6d0d8493609974bd5a63be858b045fe4db35d8df) ) ROM_REGION( 0x04000, "gfx1", 0 ) - ROM_LOAD( "136043-1104.6p", 0x000000, 0x002000, CRC(1343cf6f) SHA1(4a9542bc8ede305e7e8f860eb4b47ca2f3017275) ) + ROM_LOAD( "136043-1104.6p", 0x000000, 0x004000, CRC(bddc3dfc) SHA1(2e1279041ed62fb28ac8a8909e8fedab2556f39e) ) // second half 0x00 ROM_REGION( 0x60000, "gfx2", ROMREGION_INVERT ) ROM_LOAD( "136043-1111.1a", 0x000000, 0x008000, CRC(09df6e23) SHA1(726984275c6a338c12ec0c4cc449f92f4a7a138c) ) @@ -1409,9 +1409,9 @@ ROM_START( gaunt22p1 ) ROM_RELOAD( 0x05c000, 0x004000 ) ROM_REGION( 0x500, "proms", 0 ) - ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) ) /* MO timing */ - ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) ) /* MO flip control */ - ROM_LOAD( "74s287-136037-103.4r", 0x400, 0x100, CRC(6c5ccf08) SHA1(ff5dbadd85aa2e07b383a302fa399e875db8f84f) ) /* MO position/size */ + ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) ) /* MO timing */ + ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) ) /* MO flip control */ + ROM_LOAD( "82s129-136043-1103.4r", 0x400, 0x100, CRC(32ae1fa9) SHA1(09eb56a0798456d73015909973ce2ba9660c1164) ) /* MO position/size */ ROM_END @@ -1431,7 +1431,7 @@ ROM_START( gaunt22pg ) ROM_LOAD( "136043-1119.16s", 0x008000, 0x008000, CRC(dc3591e7) SHA1(6d0d8493609974bd5a63be858b045fe4db35d8df) ) ROM_REGION( 0x04000, "gfx1", 0 ) - ROM_LOAD( "136043-1104.6p", 0x000000, 0x002000, CRC(1343cf6f) SHA1(4a9542bc8ede305e7e8f860eb4b47ca2f3017275) ) + ROM_LOAD( "136043-1104.6p", 0x000000, 0x004000, CRC(bddc3dfc) SHA1(2e1279041ed62fb28ac8a8909e8fedab2556f39e) ) // second half 0x00 ROM_REGION( 0x60000, "gfx2", ROMREGION_INVERT ) ROM_LOAD( "136043-1111.1a", 0x000000, 0x008000, CRC(09df6e23) SHA1(726984275c6a338c12ec0c4cc449f92f4a7a138c) ) @@ -1452,9 +1452,9 @@ ROM_START( gaunt22pg ) ROM_RELOAD( 0x05c000, 0x004000 ) ROM_REGION( 0x500, "proms", 0 ) - ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) ) /* MO timing */ - ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) ) /* MO flip control */ - ROM_LOAD( "74s287-136037-103.4r", 0x400, 0x100, CRC(6c5ccf08) SHA1(ff5dbadd85aa2e07b383a302fa399e875db8f84f) ) /* MO position/size */ + ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) ) /* MO timing */ + ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) ) /* MO flip control */ + ROM_LOAD( "82s129-136043-1103.4r", 0x400, 0x100, CRC(32ae1fa9) SHA1(09eb56a0798456d73015909973ce2ba9660c1164) ) /* MO position/size */ ROM_END diff --git a/src/mame/drivers/gei.cpp b/src/mame/drivers/gei.cpp index 277fbaa7bd3..f6726c18c9d 100644 --- a/src/mame/drivers/gei.cpp +++ b/src/mame/drivers/gei.cpp @@ -978,19 +978,20 @@ INTERRUPT_GEN_MEMBER(gei_state::vblank_irq) } -MACHINE_CONFIG_START(gei_state::getrivia) - MCFG_DEVICE_ADD("maincpu",Z80,4000000) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(getrivia_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gei_state, vblank_irq) +void gei_state::getrivia(machine_config &config) +{ + Z80(config, m_maincpu, 4000000); /* 4 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::getrivia_map); + m_maincpu->set_vblank_int("screen", FUNC(gei_state::vblank_irq)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_UPDATE_DRIVER(gei_state, screen_update) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(48, 511-48, 16, 255-16) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_screen_update(FUNC(gei_state::screen_update)); + m_screen->set_size(512, 256); + m_screen->set_visarea(48, 511-48, 16, 255-16); + m_screen->set_palette("palette"); PALETTE(config, "palette", palette_device::GBR_3BIT); @@ -1013,92 +1014,92 @@ MACHINE_CONFIG_START(gei_state::getrivia) DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.99); voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(gei_state::findout) +void gei_state::findout(machine_config &config) +{ getrivia(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(findout_map) + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::findout_map); m_ppi[1]->in_pc_callback().set(FUNC(gei_state::portC_r)); m_ppi[1]->out_pc_callback().set_nop(); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(gei_state::quizvid) +void gei_state::quizvid(machine_config &config) +{ findout(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(quizvid_map) + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::quizvid_map); PALETTE(config.replace(), "palette", palette_device::GRB_3BIT); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(gei_state::gselect) +void gei_state::gselect(machine_config &config) +{ getrivia(config); /* basic machine hardware */ config.device_remove("ticket"); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(gselect_map) + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::gselect_map); m_ppi[0]->out_pc_callback().set(FUNC(gei_state::sound2_w)); m_ppi[1]->in_pc_callback().set_ioport("IN2"); m_ppi[1]->out_pc_callback().set(FUNC(gei_state::nmi_w)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(gei_state::jokpokera) +void gei_state::jokpokera(machine_config &config) +{ getrivia(config); /* basic machine hardware */ config.device_remove("ticket"); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(gselect_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::gselect_map); +} -MACHINE_CONFIG_START(gei_state::amuse) +void gei_state::amuse(machine_config &config) +{ getrivia(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(amuse_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::amuse_map); +} -MACHINE_CONFIG_START(gei_state::gepoker) +void gei_state::gepoker(machine_config &config) +{ getrivia(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(gepoker_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::gepoker_map); +} -MACHINE_CONFIG_START(gei_state::amuse1) +void gei_state::amuse1(machine_config &config) +{ getrivia(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(amuse1_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::amuse1_map); +} -MACHINE_CONFIG_START(gei_state::suprpokr) +void gei_state::suprpokr(machine_config &config) +{ getrivia(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(suprpokr_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::suprpokr_map); +} -MACHINE_CONFIG_START(gei_state::sprtauth) +void gei_state::sprtauth(machine_config &config) +{ getrivia(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(sprtauth_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &gei_state::sprtauth_map); +} /*************************************************** diff --git a/src/mame/drivers/genpc.cpp b/src/mame/drivers/genpc.cpp index 39118e5dfc7..da5d14d25b9 100644 --- a/src/mame/drivers/genpc.cpp +++ b/src/mame/drivers/genpc.cpp @@ -54,21 +54,22 @@ static DEVICE_INPUT_DEFAULTS_START(vga) DEVICE_INPUT_DEFAULTS("DSW0",0x30, 0x00) DEVICE_INPUT_DEFAULTS_END -MACHINE_CONFIG_START(genpc_state::pcmda) +void genpc_state::pcmda(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8088, 4772720) - MCFG_DEVICE_PROGRAM_MAP(pc8_map) - MCFG_DEVICE_IO_MAP(pc8_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb) + I8088(config, m_maincpu, 4772720); + m_maincpu->set_addrmap(AS_PROGRAM, &genpc_state::pc8_map); + m_maincpu->set_addrmap(AS_IO, &genpc_state::pc8_io); + m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb)); IBM5160_MOTHERBOARD(config, "mb", 0).set_cputag(m_maincpu); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "mda", false) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "hdc", false) - MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "adlib", false) - MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "mda", false); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "com", false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "hdc", false); + ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, "adlib", false); + ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); @@ -78,37 +79,37 @@ MACHINE_CONFIG_START(genpc_state::pcmda) /* software lists */ SOFTWARE_LIST(config, "disk_list").set_original("ibm5150"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(genpc_state::pcherc) +void genpc_state::pcherc(machine_config &config) +{ pcmda(config); - MCFG_DEVICE_MODIFY("isa1") - MCFG_DEVICE_SLOT_INTERFACE(pc_isa8_cards, "hercules", false) -MACHINE_CONFIG_END + subdevice<isa8_slot_device>("isa1")->set_default_option("hercules"); +} -MACHINE_CONFIG_START(genpc_state::pccga) +void genpc_state::pccga(machine_config &config) +{ pcmda(config); subdevice<ibm5160_mb_device>("mb")->set_input_default(DEVICE_INPUT_DEFAULTS_NAME(cga)); - MCFG_DEVICE_MODIFY("isa1") - MCFG_DEVICE_SLOT_INTERFACE(pc_isa8_cards, "cga", false) -MACHINE_CONFIG_END + subdevice<isa8_slot_device>("isa1")->set_default_option("cga"); +} -MACHINE_CONFIG_START(genpc_state::pcega) +void genpc_state::pcega(machine_config &config) +{ pccga(config); - MCFG_DEVICE_MODIFY("isa1") - MCFG_DEVICE_SLOT_INTERFACE(pc_isa8_cards, "ega", false) + subdevice<isa8_slot_device>("isa1")->set_default_option("ega"); subdevice<ibm5160_mb_device>("mb")->set_input_default(DEVICE_INPUT_DEFAULTS_NAME(vga)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(genpc_state::pcvga) +void genpc_state::pcvga(machine_config &config) +{ pcega(config); - MCFG_DEVICE_MODIFY("isa1") - MCFG_DEVICE_SLOT_INTERFACE(pc_isa8_cards, "vga", false) -MACHINE_CONFIG_END + subdevice<isa8_slot_device>("isa1")->set_default_option("vga"); +} ROM_START(pc) ROM_REGION(0x02000, "bios", 0) diff --git a/src/mame/drivers/goldstar.cpp b/src/mame/drivers/goldstar.cpp index ddc95ac1df3..199eb02f203 100644 --- a/src/mame/drivers/goldstar.cpp +++ b/src/mame/drivers/goldstar.cpp @@ -8443,22 +8443,22 @@ WRITE8_MEMBER(goldstar_state::ay8910_outputb_w) } -MACHINE_CONFIG_START(goldstar_state::goldstar) - +void goldstar_state::goldstar(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(goldstar_map) - MCFG_DEVICE_IO_MAP(goldstar_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::goldstar_map); + m_maincpu->set_addrmap(AS_IO, &goldstar_state::goldstar_readport); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_goldstar); PALETTE(config, m_palette).set_format(palette_device::BGR_233, 256); @@ -8473,28 +8473,26 @@ MACHINE_CONFIG_START(goldstar_state::goldstar) aysnd.port_b_read_callback().set_ioport("DSW3"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK, okim6295_device::PIN7_HIGH) /* clock frequency & pin 7 not verified */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - -MACHINE_CONFIG_END - + OKIM6295(config, "oki", OKI_CLOCK, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* clock frequency & pin 7 not verified */ +} -MACHINE_CONFIG_START(goldstar_state::goldstbl) +void goldstar_state::goldstbl(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(goldstar_map) - MCFG_DEVICE_IO_MAP(goldstar_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::goldstar_map); + m_maincpu->set_addrmap(AS_IO, &goldstar_state::goldstar_readport); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_bl); PALETTE(config, m_palette).set_format(palette_device::BGR_233, 256); @@ -8509,9 +8507,8 @@ MACHINE_CONFIG_START(goldstar_state::goldstbl) aysnd.port_b_read_callback().set_ioport("DSW3"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK, okim6295_device::PIN7_HIGH) /* clock frequency & pin 7 not verified */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, "oki", OKI_CLOCK, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* clock frequency & pin 7 not verified */ +} void goldstar_state::moonlght(machine_config &config) { @@ -8526,22 +8523,22 @@ void goldstar_state::goldfrui(machine_config &config) } -MACHINE_CONFIG_START(sanghopm_state::star100) - +void sanghopm_state::star100(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(star100_map) - MCFG_DEVICE_IO_MAP(star100_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &sanghopm_state::star100_map); + m_maincpu->set_addrmap(AS_IO, &sanghopm_state::star100_readport); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(sanghopm_state, screen_update_sangho) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(sanghopm_state::screen_update_sangho)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); PALETTE(config, m_palette).set_entries(0x100); RAMDAC(config, "ramdac", 0, "palette").set_addrmap(0, &sanghopm_state::ramdac_map); @@ -8559,30 +8556,28 @@ MACHINE_CONFIG_START(sanghopm_state::star100) aysnd.port_b_read_callback().set_ioport("DSW6"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK, okim6295_device::PIN7_HIGH) /* clock frequency & pin 7 not verified */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - -MACHINE_CONFIG_END - + OKIM6295(config, "oki", OKI_CLOCK, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* clock frequency & pin 7 not verified */ +} -MACHINE_CONFIG_START(goldstar_state::super9) +void goldstar_state::super9(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(goldstar_map) -// MCFG_DEVICE_PROGRAM_MAP(nfm_map) - MCFG_DEVICE_IO_MAP(goldstar_readport) -// MCFG_DEVICE_IO_MAP(unkch_portmap) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::goldstar_map); +// m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::nfm_map); + m_maincpu->set_addrmap(AS_IO, &goldstar_state::goldstar_readport); +// m_maincpu->set_addrmap(AS_IO, &goldstar_state::unkch_portmap); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_super9); PALETTE(config, m_palette).set_format(palette_device::BGR_233, 256); @@ -8597,9 +8592,8 @@ MACHINE_CONFIG_START(goldstar_state::super9) aysnd.port_b_read_callback().set_ioport("DSW3"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK, okim6295_device::PIN7_HIGH) /* clock frequency & pin 7 not verified */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, "oki", OKI_CLOCK, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* clock frequency & pin 7 not verified */ +} void goldstar_state::cm_palette(palette_device &palette) const @@ -8647,12 +8641,12 @@ void goldstar_state::lucky8_palette(palette_device &palette) const } -MACHINE_CONFIG_START(cb3_state::ncb3) - +void cb3_state::ncb3(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(ncb3_map) - MCFG_DEVICE_IO_MAP(ncb3_readwriteport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &cb3_state::ncb3_map); + m_maincpu->set_addrmap(AS_IO, &cb3_state::ncb3_readwriteport); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -8667,14 +8661,14 @@ MACHINE_CONFIG_START(cb3_state::ncb3) m_ppi[2]->in_pa_callback().set_ioport("DSW2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3); PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256); @@ -8686,14 +8680,13 @@ MACHINE_CONFIG_START(cb3_state::ncb3) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK)); aysnd.port_a_read_callback().set_ioport("DSW4"); aysnd.port_b_read_callback().set_ioport("DSW3"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} void cb3_state::cb3c(machine_config &config) { @@ -8726,12 +8719,12 @@ void cb3_state::cm97(machine_config &config) } -MACHINE_CONFIG_START(goldstar_state::wcherry) - +void goldstar_state::wcherry(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(wcherry_map) - MCFG_DEVICE_IO_MAP(wcherry_readwriteport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::wcherry_map); + m_maincpu->set_addrmap(AS_IO, &goldstar_state::wcherry_readwriteport); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -8746,14 +8739,14 @@ MACHINE_CONFIG_START(goldstar_state::wcherry) m_ppi[2]->in_pa_callback().set_ioport("DSW2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cb3e); PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256); @@ -8764,22 +8757,21 @@ MACHINE_CONFIG_START(goldstar_state::wcherry) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK)); aysnd.port_a_read_callback().set_ioport("DSW4"); aysnd.port_b_read_callback().set_ioport("DSW3"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(cmaster_state::cm) +void cmaster_state::cm(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(cm_map) - MCFG_DEVICE_IO_MAP(cm_portmap) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &cmaster_state::cm_map); + m_maincpu->set_addrmap(AS_IO, &cmaster_state::cm_portmap); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -8792,14 +8784,14 @@ MACHINE_CONFIG_START(cmaster_state::cm) m_ppi[1]->in_pc_callback().set_ioport("DSW3"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cmbitmap); PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256); @@ -8813,7 +8805,7 @@ MACHINE_CONFIG_START(cmaster_state::cm) aysnd.port_a_read_callback().set_ioport("DSW4"); aysnd.port_b_read_callback().set_ioport("DSW5"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} void cmaster_state::cmasterc(machine_config &config) { @@ -8822,12 +8814,12 @@ void cmaster_state::cmasterc(machine_config &config) } -MACHINE_CONFIG_START(goldstar_state::cmast91) - +void goldstar_state::cmast91(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(cm_map) - MCFG_DEVICE_IO_MAP(cmast91_portmap) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::cm_map); + m_maincpu->set_addrmap(AS_IO, &goldstar_state::cmast91_portmap); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -8840,14 +8832,14 @@ MACHINE_CONFIG_START(goldstar_state::cmast91) m_ppi[1]->in_pc_callback().set_ioport("DSW3"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_cmast91) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_cmast91)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cmast91); PALETTE(config, m_palette, FUNC(goldstar_state::cmast91_palette), 256); @@ -8861,7 +8853,7 @@ MACHINE_CONFIG_START(goldstar_state::cmast91) aysnd.port_a_read_callback().set_ioport("DSW4"); aysnd.port_b_read_callback().set_ioport("DSW5"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} @@ -8871,12 +8863,12 @@ WRITE_LINE_MEMBER(wingco_state::masked_irq) m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } -MACHINE_CONFIG_START(wingco_state::lucky8) - +void wingco_state::lucky8(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(lucky8_map) - //MCFG_DEVICE_IO_MAP(goldstar_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::lucky8_map); + //->m_maincpu->set_addrmap(AS_IO, &wingco_state::goldstar_readport); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -8895,14 +8887,14 @@ MACHINE_CONFIG_START(wingco_state::lucky8) m_ppi[2]->out_pc_callback().set(FUNC(wingco_state::system_outputc_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, wingco_state, masked_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(wingco_state::masked_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3); PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette)).set_format(palette_device::BGR_233, 256); @@ -8913,8 +8905,7 @@ MACHINE_CONFIG_START(wingco_state::lucky8) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); ym2149_device &aysnd(YM2149(config, "aysnd", AY_CLOCK)); aysnd.port_a_read_callback().set_ioport("DSW3"); @@ -8922,14 +8913,14 @@ MACHINE_CONFIG_START(wingco_state::lucky8) aysnd.port_a_write_callback().set(FUNC(goldstar_state::ay8910_outputa_w)); aysnd.port_b_write_callback().set(FUNC(goldstar_state::ay8910_outputb_w)); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(wingco_state::bingowng) +} +void wingco_state::bingowng(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(lucky8_map) - //MCFG_DEVICE_IO_MAP(goldstar_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::lucky8_map); + //m_maincpu->set_addrmap(AS_IO, &wingco_state::goldstar_readport); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -8948,14 +8939,14 @@ MACHINE_CONFIG_START(wingco_state::bingowng) m_ppi[2]->out_pc_callback().set(FUNC(wingco_state::system_outputc_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(wingco_state, screen_update_bingowng) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, wingco_state, masked_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(wingco_state::screen_update_bingowng)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(wingco_state::masked_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3); PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256); @@ -8966,8 +8957,7 @@ MACHINE_CONFIG_START(wingco_state::bingowng) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK)); aysnd.port_a_read_callback().set_ioport("DSW3"); @@ -8975,7 +8965,7 @@ MACHINE_CONFIG_START(wingco_state::bingowng) aysnd.port_a_write_callback().set(FUNC(goldstar_state::ay8910_outputa_w)); aysnd.port_b_write_callback().set(FUNC(goldstar_state::ay8910_outputb_w)); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} void wingco_state::bingownga(machine_config &config) { @@ -8984,54 +8974,53 @@ void wingco_state::bingownga(machine_config &config) } -MACHINE_CONFIG_START(wingco_state::flam7_w4) +void wingco_state::flam7_w4(machine_config &config) +{ lucky8(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(flaming7_map) + m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::flaming7_map); m_ppi[0]->out_pc_callback().set(FUNC(wingco_state::fl7w4_outc802_w)); - MCFG_DEVICE_ADD(m_fl7w4_id, DS2401) -MACHINE_CONFIG_END + DS2401(config, m_fl7w4_id); +} -MACHINE_CONFIG_START(wingco_state::flaming7) +void wingco_state::flaming7(machine_config &config) +{ lucky8(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(flaming7_map) + m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::flaming7_map); m_gfxdecode->set_info(gfx_flaming7); // to do serial protection. m_ppi[0]->out_pc_callback().set(FUNC(wingco_state::fl7w4_outc802_w)); - MCFG_DEVICE_ADD(m_fl7w4_id, DS2401) -MACHINE_CONFIG_END + DS2401(config, m_fl7w4_id); +} -MACHINE_CONFIG_START(wingco_state::flam7_tw) +void wingco_state::flam7_tw(machine_config &config) +{ lucky8(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(flaming7_map) + m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::flaming7_map); m_gfxdecode->set_info(gfx_flam7_tw); // to do serial protection. m_ppi[0]->out_pc_callback().set(FUNC(wingco_state::fl7w4_outc802_w)); - MCFG_DEVICE_ADD(m_fl7w4_id, DS2401) -MACHINE_CONFIG_END + DS2401(config, m_fl7w4_id); +} -MACHINE_CONFIG_START(wingco_state::mbstar) +void wingco_state::mbstar(machine_config &config) +{ lucky8(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(mbstar_map) + m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::mbstar_map); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(wingco_state, screen_update_mbstar) -MACHINE_CONFIG_END + subdevice<screen_device>("screen")->set_screen_update(FUNC(wingco_state::screen_update_mbstar)); +} @@ -9048,12 +9037,12 @@ void wingco_state::magodds_palette(palette_device &palette) const } } -MACHINE_CONFIG_START(wingco_state::magodds) - +void wingco_state::magodds(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(magodds_map) - //MCFG_DEVICE_IO_MAP(goldstar_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::magodds_map); + //m_maincpu->set_addrmap(AS_IO, &wingco_state::goldstar_readport); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -9072,14 +9061,14 @@ MACHINE_CONFIG_START(wingco_state::magodds) m_ppi[2]->out_pc_callback().set(FUNC(wingco_state::system_outputc_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(wingco_state, screen_update_magical) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, wingco_state, masked_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(wingco_state::screen_update_magical)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(wingco_state::masked_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_magodds); PALETTE(config, m_palette, FUNC(wingco_state::magodds_palette), 256); @@ -9090,8 +9079,7 @@ MACHINE_CONFIG_START(wingco_state::magodds) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.00) // shut up annoying whine + SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.00); // shut up annoying whine ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK)); aysnd.port_a_read_callback().set_ioport("DSW3"); @@ -9099,15 +9087,15 @@ MACHINE_CONFIG_START(wingco_state::magodds) aysnd.port_a_write_callback().set(FUNC(goldstar_state::ay8910_outputa_w)); aysnd.port_b_write_callback().set(FUNC(goldstar_state::ay8910_outputb_w)); aysnd.add_route(ALL_OUTPUTS, "mono", 0.80); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(goldstar_state::kkotnoli) +void goldstar_state::kkotnoli(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(kkotnoli_map) - //MCFG_DEVICE_IO_MAP(goldstar_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::kkotnoli_map); + //m_maincpu->set_addrmap(AS_IO, &goldstar_state::goldstar_readport); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -9122,14 +9110,14 @@ MACHINE_CONFIG_START(goldstar_state::kkotnoli) m_ppi[2]->in_pa_callback().set_ioport("DSW1"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3); PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256); @@ -9139,18 +9127,16 @@ MACHINE_CONFIG_START(goldstar_state::kkotnoli) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - -MACHINE_CONFIG_END - + SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); +} -MACHINE_CONFIG_START(goldstar_state::ladylinr) +void goldstar_state::ladylinr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(ladylinr_map) - //MCFG_DEVICE_IO_MAP(goldstar_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::ladylinr_map); + //m_maincpu->set_addrmap(AS_IO, &goldstar_state::goldstar_readport); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -9161,14 +9147,14 @@ MACHINE_CONFIG_START(goldstar_state::ladylinr) m_ppi[1]->in_pa_callback().set_ioport("DSW1"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3); PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256); @@ -9179,19 +9165,18 @@ MACHINE_CONFIG_START(goldstar_state::ladylinr) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); AY8930(config, "aysnd", AY_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.50); // unused? -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(wingco_state::wcat3) +void wingco_state::wcat3(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(wcat3_map) - //MCFG_DEVICE_IO_MAP(goldstar_readport) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::wcat3_map); + //m_maincpu->set_addrmap(AS_IO, &wingco_state::goldstar_readport); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -9210,14 +9195,14 @@ MACHINE_CONFIG_START(wingco_state::wcat3) m_ppi[2]->out_pc_callback().set(FUNC(wingco_state::system_outputc_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3); PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256); @@ -9228,8 +9213,7 @@ MACHINE_CONFIG_START(wingco_state::wcat3) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK)); aysnd.port_a_read_callback().set_ioport("DSW3"); @@ -9237,17 +9221,16 @@ MACHINE_CONFIG_START(wingco_state::wcat3) aysnd.port_a_write_callback().set(FUNC(goldstar_state::ay8910_outputa_w)); aysnd.port_b_write_callback().set(FUNC(goldstar_state::ay8910_outputb_w)); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); - -MACHINE_CONFIG_END +} /* diff with cm machine driver: gfxdecode, OKI & portmap */ -MACHINE_CONFIG_START(cmaster_state::amcoe1) - +void cmaster_state::amcoe1(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(cm_map) - MCFG_DEVICE_IO_MAP(amcoe1_portmap) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &cmaster_state::cm_map); + m_maincpu->set_addrmap(AS_IO, &cmaster_state::amcoe1_portmap); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -9260,14 +9243,14 @@ MACHINE_CONFIG_START(cmaster_state::amcoe1) m_ppi[1]->in_pc_callback().set_ioport("DSW3"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cm); PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256); @@ -9282,28 +9265,27 @@ MACHINE_CONFIG_START(cmaster_state::amcoe1) aysnd.port_b_read_callback().set_ioport("DSW5"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK, okim6295_device::PIN7_HIGH) /* clock frequency & pin 7 not verified */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, "oki", OKI_CLOCK, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* clock frequency & pin 7 not verified */ +} /* diff with cm machine driver: gfxdecode, OKI, portmap & tilemaps rect size/position */ -MACHINE_CONFIG_START(cmaster_state::amcoe1a) +void cmaster_state::amcoe1a(machine_config &config) +{ amcoe1(config); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(cmaster_state, screen_update_amcoe1a) -MACHINE_CONFIG_END + subdevice<screen_device>("screen")->set_screen_update(FUNC(cmaster_state::screen_update_amcoe1a)); +} /* diff with cm machine driver: gfxdecode, AY8910 volume & portmap */ -MACHINE_CONFIG_START(cmaster_state::amcoe2) - +void cmaster_state::amcoe2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(cm_map) - MCFG_DEVICE_IO_MAP(amcoe2_portmap) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &cmaster_state::cm_map); + m_maincpu->set_addrmap(AS_IO, &cmaster_state::amcoe2_portmap); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -9316,14 +9298,14 @@ MACHINE_CONFIG_START(cmaster_state::amcoe2) m_ppi[1]->in_pc_callback().set_ioport("DSW3"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cm); PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256); @@ -9337,17 +9319,17 @@ MACHINE_CONFIG_START(cmaster_state::amcoe2) aysnd.port_a_read_callback().set_ioport("DSW4"); aysnd.port_b_read_callback().set_ioport("DSW5"); aysnd.add_route(ALL_OUTPUTS, "mono", 2.00); /* analyzed for clips */ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(cmaster_state::nfm) +void cmaster_state::nfm(machine_config &config) +{ amcoe2(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(nfm_map) + m_maincpu->set_addrmap(AS_PROGRAM, &cmaster_state::nfm_map); m_gfxdecode->set_info(gfx_nfm); -MACHINE_CONFIG_END +} WRITE_LINE_MEMBER(unkch_state::vblank_irq) @@ -9356,24 +9338,24 @@ WRITE_LINE_MEMBER(unkch_state::vblank_irq) m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } -MACHINE_CONFIG_START(unkch_state::unkch) - +void unkch_state::unkch(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(unkch_map) - MCFG_DEVICE_IO_MAP(unkch_portmap) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &unkch_state::unkch_map); + m_maincpu->set_addrmap(AS_IO, &unkch_state::unkch_portmap); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(unkch_state, screen_update_unkch) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, unkch_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(unkch_state::screen_update_unkch)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(unkch_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_unkch); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 512); @@ -9389,27 +9371,27 @@ MACHINE_CONFIG_START(unkch_state::unkch) /* payout hardware */ TICKET_DISPENSER(config, m_ticket_dispenser, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); -MACHINE_CONFIG_END +} // hw unknown - should be somewhat similar to cm -MACHINE_CONFIG_START(goldstar_state::pkrmast) - +void goldstar_state::pkrmast(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(cm_map) - MCFG_DEVICE_IO_MAP(pkrmast_portmap) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::cm_map); + m_maincpu->set_addrmap(AS_IO, &goldstar_state::pkrmast_portmap); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pkrmast); PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256); @@ -9423,29 +9405,29 @@ MACHINE_CONFIG_START(goldstar_state::pkrmast) aysnd.port_a_read_callback().set_ioport("DSW4"); aysnd.port_b_read_callback().set_ioport("DSW5"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END - +} -MACHINE_CONFIG_START(unkch_state::megaline) +void unkch_state::megaline(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(megaline_map) - MCFG_DEVICE_IO_MAP(megaline_portmap) + Z80(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &unkch_state::megaline_map); + m_maincpu->set_addrmap(AS_IO, &unkch_state::megaline_portmap); - //MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0) - //MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0) - //MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0) + //I8255A(config, m_ppi[0], 0); + //I8255A(config, m_ppi[1], 0); + //I8255A(config, m_ppi[2], 0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); GFXDECODE(config, m_gfxdecode, m_palette, gfx_megaline); PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256); @@ -9456,14 +9438,11 @@ MACHINE_CONFIG_START(unkch_state::megaline) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("sn1", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "sn1", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); - MCFG_DEVICE_ADD("sn2", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "sn2", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); - MCFG_DEVICE_ADD("sn3", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "sn3", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK)); aysnd.port_a_read_callback().set_ioport("DSW3"); @@ -9471,28 +9450,26 @@ MACHINE_CONFIG_START(unkch_state::megaline) aysnd.port_a_write_callback().set(FUNC(goldstar_state::ay8910_outputa_w)); aysnd.port_b_write_callback().set(FUNC(goldstar_state::ay8910_outputb_w)); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); +} -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(unkch_state::bonusch) +void unkch_state::bonusch(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 12_MHz_XTAL / 2) - MCFG_DEVICE_PROGRAM_MAP(bonusch_map) - MCFG_DEVICE_IO_MAP(bonusch_portmap) + Z80(config, m_maincpu, 12_MHz_XTAL / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &unkch_state::bonusch_map); + m_maincpu->set_addrmap(AS_IO, &unkch_state::bonusch_portmap); - MCFG_DEVICE_ADD("mcu", I80C51, 12_MHz_XTAL) - MCFG_DEVICE_DISABLE() + I80C51(config, "mcu", 12_MHz_XTAL).set_disable(); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); GFXDECODE(config, m_gfxdecode, m_palette, gfx_megaline); PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256); @@ -9502,25 +9479,20 @@ MACHINE_CONFIG_START(unkch_state::bonusch) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("sn1", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "sn1", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); - MCFG_DEVICE_ADD("sn2", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "sn2", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); - MCFG_DEVICE_ADD("sn3", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489(config, "sn3", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); - MCFG_DEVICE_ADD("sn4", SN76489, PSG_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(unkch_state::feverch) + SN76489(config, "sn4", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80); +} - MCFG_DEVICE_ADD("maincpu", Z80, 12'000'000 / 2) // clock not verified - MCFG_DEVICE_PROGRAM_MAP(feverch_map) - MCFG_DEVICE_IO_MAP(feverch_portmap) +void unkch_state::feverch(machine_config &config) +{ + Z80(config, m_maincpu, 12'000'000 / 2); // clock not verified + m_maincpu->set_addrmap(AS_PROGRAM, &unkch_state::feverch_map); + m_maincpu->set_addrmap(AS_IO, &unkch_state::feverch_portmap); I8255A(config, m_ppi[0]); m_ppi[0]->in_pa_callback().set_ioport("IN0"); @@ -9537,13 +9509,13 @@ MACHINE_CONFIG_START(unkch_state::feverch) m_ppi[2]->in_pb_callback().set_ioport("DSW2"); m_ppi[2]->in_pc_callback().set_ioport("DSW3"); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(unkch_state, screen_update_unkch) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(unkch_state::screen_update_unkch)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3); PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette)).set_format(palette_device::BGR_233, 256); @@ -9552,15 +9524,12 @@ MACHINE_CONFIG_START(unkch_state::feverch) SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("sn1", SN76489A, 12'000'000 / 12) // actually SN76489AN, clock not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489A(config, "sn1", 12'000'000 / 12).add_route(ALL_OUTPUTS, "mono", 0.80); // actually SN76489AN, clock not verified - MCFG_DEVICE_ADD("sn2", SN76489A, 12'000'000 / 12) // actually SN76489AN, clock not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489A(config, "sn2", 12'000'000 / 12).add_route(ALL_OUTPUTS, "mono", 0.80); // actually SN76489AN, clock not verified - MCFG_DEVICE_ADD("sn3", SN76489A, 12'000'000 / 12) // actually SN76489AN, clock not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_CONFIG_END + SN76489A(config, "sn3", 12'000'000 / 12).add_route(ALL_OUTPUTS, "mono", 0.80); // actually SN76489AN, clock not verified +} /*************************************************************************** diff --git a/src/mame/drivers/h19.cpp b/src/mame/drivers/h19.cpp index 9571ef96780..d445b869756 100644 --- a/src/mame/drivers/h19.cpp +++ b/src/mame/drivers/h19.cpp @@ -520,11 +520,12 @@ static GFXDECODE_START( gfx_h19 ) GFXDECODE_ENTRY( "chargen", 0x0000, h19_charlayout, 0, 1 ) GFXDECODE_END -MACHINE_CONFIG_START(h19_state::h19) +void h19_state::h19(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, H19_CLOCK) // From schematics - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) + Z80(config, m_maincpu, H19_CLOCK); // From schematics + m_maincpu->set_addrmap(AS_PROGRAM, &h19_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &h19_state::io_map); /* video hardware */ // TODO: make configurable, Heath offered 3 different CRTs - White, Green, Amber. @@ -564,9 +565,8 @@ MACHINE_CONFIG_START(h19_state::h19) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("beeper", BEEP, H19_BEEP_FRQ) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) -MACHINE_CONFIG_END + BEEP(config, m_beep, H19_BEEP_FRQ).add_route(ALL_OUTPUTS, "mono", 1.00); +} /* ROM definition */ ROM_START( h19 ) diff --git a/src/mame/drivers/halleys.cpp b/src/mame/drivers/halleys.cpp index 02b075c3687..c4278cadb6f 100644 --- a/src/mame/drivers/halleys.cpp +++ b/src/mame/drivers/halleys.cpp @@ -1930,25 +1930,26 @@ void halleys_state::machine_reset() } -MACHINE_CONFIG_START(halleys_state::halleys) - MCFG_DEVICE_ADD("maincpu", MC6809E, XTAL(19'968'000)/12) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(halleys_map) +void halleys_state::halleys(machine_config &config) +{ + MC6809E(config, m_maincpu, XTAL(19'968'000)/12); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &halleys_state::halleys_map); + TIMER(config, "scantimer").configure_scanline(FUNC(halleys_state::halleys_scanline), "screen", 0, 1); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(6'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(halleys_state, irq0_line_hold, (double)6000000/(4*16*16*10*16)) + Z80(config, m_audiocpu, XTAL(6'000'000)/2); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &halleys_state::sound_map); + m_audiocpu->set_periodic_int(FUNC(halleys_state::irq0_line_hold), attotime::from_hz((double)6000000/(4*16*16*10*16))); // video hardware - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.50) /* verified on PCB */ - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(SCREEN_WIDTH, SCREEN_HEIGHT) - MCFG_SCREEN_VISIBLE_AREA(VIS_MINX, VIS_MAXX, VIS_MINY, VIS_MAXY) - MCFG_SCREEN_UPDATE_DRIVER(halleys_state, screen_update_halleys) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59.50); /* verified on PCB */ + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(SCREEN_WIDTH, SCREEN_HEIGHT); + screen.set_visarea(VIS_MINX, VIS_MAXX, VIS_MINY, VIS_MAXY); + screen.set_screen_update(FUNC(halleys_state::screen_update_halleys)); + screen.set_palette(m_palette); PALETTE(config, m_palette, FUNC(halleys_state::halleys_palette), PALETTE_SIZE); @@ -1966,19 +1967,19 @@ MACHINE_CONFIG_START(halleys_state::halleys) ym2149_device &ay4(YM2149(config, "ay4", XTAL(6'000'000)/4)); /* verified on pcb */ ay4.port_b_write_callback().set(FUNC(halleys_state::sndnmi_msk_w)); ay4.add_route(ALL_OUTPUTS, "mono", 0.15); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(halleys_state::benberob) +void halleys_state::benberob(machine_config &config) +{ halleys(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(XTAL(19'968'000)/12) /* not verified but pcb identical to halley's comet */ + + m_maincpu->set_clock(XTAL(19'968'000)/12); /* not verified but pcb identical to halley's comet */ subdevice<timer_device>("scantimer")->set_callback(FUNC(halleys_state::benberob_scanline)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(halleys_state, screen_update_benberob) -MACHINE_CONFIG_END + subdevice<screen_device>("screen")->set_screen_update(FUNC(halleys_state::screen_update_benberob)); +} //************************************************************************** diff --git a/src/mame/drivers/hanaawas.cpp b/src/mame/drivers/hanaawas.cpp index 1b015188f85..30dc91670bb 100644 --- a/src/mame/drivers/hanaawas.cpp +++ b/src/mame/drivers/hanaawas.cpp @@ -215,23 +215,23 @@ void hanaawas_state::machine_reset() m_mux = 0; } -MACHINE_CONFIG_START(hanaawas_state::hanaawas) - +void hanaawas_state::hanaawas(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,18432000/6) /* 3.072 MHz ??? */ - MCFG_DEVICE_PROGRAM_MAP(hanaawas_map) - MCFG_DEVICE_IO_MAP(io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", hanaawas_state, irq0_line_assert) + Z80(config, m_maincpu, 18432000/6); /* 3.072 MHz ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &hanaawas_state::hanaawas_map); + m_maincpu->set_addrmap(AS_IO, &hanaawas_state::io_map); + m_maincpu->set_vblank_int("screen", FUNC(hanaawas_state::irq0_line_assert)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(hanaawas_state, screen_update_hanaawas) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(hanaawas_state::screen_update_hanaawas)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_hanaawas); PALETTE(config, "palette", FUNC(hanaawas_state::hanaawas_palette), 32 * 8, 16); @@ -243,7 +243,7 @@ MACHINE_CONFIG_START(hanaawas_state::hanaawas) aysnd.port_a_read_callback().set_ioport("DSW"); aysnd.port_b_write_callback().set(FUNC(hanaawas_state::hanaawas_portB_w)); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/hapyfish.cpp b/src/mame/drivers/hapyfish.cpp index 4c2d7b0a5e0..8681e2723af 100644 --- a/src/mame/drivers/hapyfish.cpp +++ b/src/mame/drivers/hapyfish.cpp @@ -241,19 +241,19 @@ void hapyfish_state::init_mini2440() // do nothing } -MACHINE_CONFIG_START(hapyfish_state::hapyfish) - MCFG_DEVICE_ADD("maincpu", ARM920T, 100000000) - MCFG_DEVICE_PROGRAM_MAP(hapyfish_map) - - MCFG_PALETTE_ADD("palette", 32768) +void hapyfish_state::hapyfish(machine_config &config) +{ + ARM920T(config, m_maincpu, 100000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hapyfish_state::hapyfish_map); - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(1024, 768) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) + PALETTE(config, "palette").set_entries(32768); - MCFG_SCREEN_UPDATE_DEVICE("s3c2440", s3c2440_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(1024, 768); + screen.set_visarea(0, 639, 0, 479); + screen.set_screen_update("s3c2440", FUNC(s3c2440_device::screen_update)); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -283,7 +283,7 @@ MACHINE_CONFIG_START(hapyfish_state::hapyfish) NAND(config, m_nand2, 0); m_nand2->set_nand_type(nand_device::chip::K9LAG08U0M); m_nand2->rnb_wr_callback().set(m_s3c2440, FUNC(s3c2440_device::frnb_w)); -MACHINE_CONFIG_END +} static INPUT_PORTS_START( hapyfish ) INPUT_PORTS_END diff --git a/src/mame/drivers/hazeltin.cpp b/src/mame/drivers/hazeltin.cpp index 75c456776cf..df405e038b0 100644 --- a/src/mame/drivers/hazeltin.cpp +++ b/src/mame/drivers/hazeltin.cpp @@ -695,20 +695,20 @@ GFXDECODE_END MACHINE_CONFIG_START(hazl1500_state::hazl1500) /* basic machine hardware */ - MCFG_DEVICE_ADD(CPU_TAG, I8080, XTAL(18'000'000)/9) // 18MHz crystal on schematics, using an i8224 clock gen/driver IC - MCFG_DEVICE_PROGRAM_MAP(hazl1500_mem) - MCFG_DEVICE_IO_MAP(hazl1500_io) + I8080(config, m_maincpu, XTAL(18'000'000)/9); // 18MHz crystal on schematics, using an i8224 clock gen/driver IC + m_maincpu->set_addrmap(AS_PROGRAM, &hazl1500_state::hazl1500_mem); + m_maincpu->set_addrmap(AS_IO, &hazl1500_state::hazl1500_io); config.m_perfect_cpu_quantum = subtag(CPU_TAG); INPUT_MERGER_ANY_HIGH(config, "mainint").output_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0); /* video hardware */ - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_UPDATE_DRIVER(hazl1500_state, screen_update_hazl1500) - //MCFG_SCREEN_RAW_PARAMS(XTAL(33'264'000) / 2, + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_screen_update(FUNC(hazl1500_state::screen_update_hazl1500)); + //m_screen->set_raw(XTAL(33'264'000) / 2, // SCREEN_HTOTAL, SCREEN_HSTART, SCREEN_HSTART + SCREEN_HDISP, // SCREEN_VTOTAL, SCREEN_VSTART, SCREEN_VSTART + SCREEN_VDISP); // TODO: Figure out exact visibility - MCFG_SCREEN_RAW_PARAMS(XTAL(33'264'000) / 2, + m_screen->set_raw(XTAL(33'264'000) / 2, SCREEN_HTOTAL, 0, SCREEN_HTOTAL, SCREEN_VTOTAL, 0, SCREEN_VTOTAL); diff --git a/src/mame/drivers/headonb.cpp b/src/mame/drivers/headonb.cpp index c3914f3003b..f4577a1056e 100644 --- a/src/mame/drivers/headonb.cpp +++ b/src/mame/drivers/headonb.cpp @@ -166,29 +166,29 @@ static GFXDECODE_START( gfx_headonb ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 1 ) GFXDECODE_END -MACHINE_CONFIG_START(headonb_state::headonb) - +void headonb_state::headonb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080A, XTAL(20'000'000) / 10) // divider guessed - MCFG_DEVICE_PROGRAM_MAP(headonb_map) - MCFG_DEVICE_IO_MAP(headonb_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", headonb_state, irq0_line_hold) // where is irqack? + I8080A(config, m_maincpu, XTAL(20'000'000) / 10); // divider guessed + m_maincpu->set_addrmap(AS_PROGRAM, &headonb_state::headonb_map); + m_maincpu->set_addrmap(AS_IO, &headonb_state::headonb_io_map); + m_maincpu->set_vblank_int("screen", FUNC(headonb_state::irq0_line_hold)); // where is irqack? /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(headonb_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1); + screen.set_screen_update(FUNC(headonb_state::screen_update)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_headonb); PALETTE(config, "palette", palette_device::MONOCHROME); /* sound hardware */ // TODO -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/hec2hrp.cpp b/src/mame/drivers/hec2hrp.cpp index 9a42aec9df5..b5e2c9f9349 100644 --- a/src/mame/drivers/hec2hrp.cpp +++ b/src/mame/drivers/hec2hrp.cpp @@ -394,23 +394,25 @@ static void minidisc_floppies(device_slot_interface &device) } -MACHINE_CONFIG_START(hec2hrp_state::hec2hr) - MCFG_DEVICE_ADD("maincpu", Z80, 5_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hec2hrp_mem) - MCFG_DEVICE_IO_MAP(hec2hrp_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) /* put on the Z80 irq in Hz*/ +void hec2hrp_state::hec2hr(machine_config &config) +{ + Z80(config, m_maincpu, 5_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrp_mem); + m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2hrp_io); + m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ + MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrp) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrp) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ - MCFG_SCREEN_SIZE(512, 230) - MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) - MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(400)); /* 2500 not accurate */ + screen.set_size(512, 230); + screen.set_visarea(0, 243, 0, 227); + screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); + screen.set_palette(m_palette); - MCFG_PALETTE_ADD("palette", 16) + PALETTE(config, m_palette).set_entries(16); MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) hector_audio(config); @@ -420,25 +422,27 @@ MACHINE_CONFIG_START(hec2hrp_state::hec2hr) m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); PRINTER(config, m_printer, 0); -MACHINE_CONFIG_END +} + +void hec2hrp_state::hec2hrp(machine_config &config) +{ + Z80(config, m_maincpu, 5_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrp_mem); + m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2hrp_io); + m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ -MACHINE_CONFIG_START(hec2hrp_state::hec2hrp) - MCFG_DEVICE_ADD("maincpu", Z80, 5_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hec2hrp_mem) - MCFG_DEVICE_IO_MAP(hec2hrp_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) /* put on the Z80 irq in Hz*/ MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrp) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrp) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ - MCFG_SCREEN_SIZE(512, 230) - MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) - MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(400)); /* 2500 not accurate */ + screen.set_size(512, 230); + screen.set_visarea(0, 243, 0, 227); + screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); + screen.set_palette(m_palette); - MCFG_PALETTE_ADD("palette", 16) + PALETTE(config, m_palette).set_entries(16); MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) hector_audio(config); @@ -448,39 +452,43 @@ MACHINE_CONFIG_START(hec2hrp_state::hec2hrp) m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); PRINTER(config, m_printer, 0); -MACHINE_CONFIG_END +} static void hector_floppies(device_slot_interface &device) { device.option_add("525hd", FLOPPY_525_HD); } -MACHINE_CONFIG_START(hec2hrp_state::hec2mx40) - MCFG_DEVICE_ADD("maincpu", Z80, 5_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hec2hrx_mem) - MCFG_DEVICE_IO_MAP(hec2mx40_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) // put on the Z80 irq in Hz +void hec2hrp_state::hec2mx40(machine_config &config) +{ + Z80(config, m_maincpu, 5_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrx_mem); + m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2mx40_io); + m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ + + Z80(config, m_disc2cpu, 4_MHz_XTAL); + m_disc2cpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hecdisc2_mem); + m_disc2cpu->set_addrmap(AS_IO, &hec2hrp_state::hecdisc2_io); - MCFG_DEVICE_ADD("disc2cpu", Z80, 4_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hecdisc2_mem) - MCFG_DEVICE_IO_MAP(hecdisc2_io) UPD765A(config, m_upd_fdc, 8'000'000, false, true); m_upd_fdc->intrq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_interrupt)); m_upd_fdc->drq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_dma_irq)); + FLOPPY_CONNECTOR(config, m_upd_connector[0], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, m_upd_connector[1], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); + MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrx) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrx) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ - MCFG_SCREEN_SIZE(512, 230) - MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) - MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(400)); /* 2500 not accurate */ + screen.set_size(512, 230); + screen.set_visarea(0, 243, 0, 227); + screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); + screen.set_palette(m_palette); - MCFG_PALETTE_ADD("palette", 16) + PALETTE(config, m_palette).set_entries(16); MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) hector_audio(config); @@ -490,35 +498,39 @@ MACHINE_CONFIG_START(hec2hrp_state::hec2mx40) m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); PRINTER(config, m_printer, 0); -MACHINE_CONFIG_END +} + +void hec2hrp_state::hec2hrx(machine_config &config) +{ + Z80(config, m_maincpu, 5_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrx_mem); + m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2hrx_io); + m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ -MACHINE_CONFIG_START(hec2hrp_state::hec2hrx) - MCFG_DEVICE_ADD("maincpu", Z80, 5_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hec2hrx_mem) - MCFG_DEVICE_IO_MAP(hec2hrx_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) // put on the Z80 irq in Hz MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrx) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrx) - MCFG_DEVICE_ADD("disc2cpu", Z80, 4_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hecdisc2_mem) - MCFG_DEVICE_IO_MAP(hecdisc2_io) + Z80(config, m_disc2cpu, 4_MHz_XTAL); + m_disc2cpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hecdisc2_mem); + m_disc2cpu->set_addrmap(AS_IO, &hec2hrp_state::hecdisc2_io); + UPD765A(config, m_upd_fdc, 8'000'000, false, true); m_upd_fdc->intrq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_interrupt)); m_upd_fdc->drq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_dma_irq)); + FLOPPY_CONNECTOR(config, m_upd_connector[0], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, m_upd_connector[1], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ - MCFG_SCREEN_SIZE(512, 230) - MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) - MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(400)); /* 2500 not accurate */ + screen.set_size(512, 230); + screen.set_visarea(0, 243, 0, 227); + screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); + screen.set_palette(m_palette); - MCFG_PALETTE_ADD("palette", 16) + PALETTE(config, m_palette).set_entries(16); MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) hector_audio(config); @@ -528,13 +540,15 @@ MACHINE_CONFIG_START(hec2hrp_state::hec2hrx) m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); PRINTER(config, m_printer, 0); -MACHINE_CONFIG_END +} + +void hec2hrp_state::hec2mdhrx(machine_config &config) +{ + Z80(config, m_maincpu, 5_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrx_mem); + m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2mdhrx_io); + m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ -MACHINE_CONFIG_START(hec2hrp_state::hec2mdhrx) - MCFG_DEVICE_ADD("maincpu", Z80, 5_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hec2hrx_mem) - MCFG_DEVICE_IO_MAP(hec2mdhrx_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) // put on the Z80 irq in Hz MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2mdhrx) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2mdhrx) @@ -542,16 +556,15 @@ MACHINE_CONFIG_START(hec2hrp_state::hec2mdhrx) FD1793(config, m_minidisc_fdc, 1_MHz_XTAL); FLOPPY_CONNECTOR(config, "wd179x:0", minidisc_floppies, "dd", hec2hrp_state::minidisc_formats); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ - MCFG_SCREEN_SIZE(512, 230) - MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) - MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(400)); /* 2500 not accurate */ + screen.set_size(512, 230); + screen.set_visarea(0, 243, 0, 227); + screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); + screen.set_palette(m_palette); - MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) - MCFG_PALETTE_ADD("palette", 16) + PALETTE(config, m_palette).set_entries(16); MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) hector_audio(config); @@ -561,35 +574,39 @@ MACHINE_CONFIG_START(hec2hrp_state::hec2mdhrx) m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); PRINTER(config, m_printer, 0); -MACHINE_CONFIG_END +} + +void hec2hrp_state::hec2mx80(machine_config &config) +{ + Z80(config, m_maincpu, 5_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrx_mem); + m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2mx80_io); + m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ -MACHINE_CONFIG_START(hec2hrp_state::hec2mx80) - MCFG_DEVICE_ADD("maincpu", Z80, 5_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hec2hrx_mem) - MCFG_DEVICE_IO_MAP(hec2mx80_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(hec2hrp_state, irq0_line_hold, 50) // put on the Z80 irq in Hz MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrx) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrx) - MCFG_DEVICE_ADD("disc2cpu", Z80, 4_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(hecdisc2_mem) - MCFG_DEVICE_IO_MAP(hecdisc2_io) + Z80(config, m_disc2cpu, 4_MHz_XTAL); + m_disc2cpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hecdisc2_mem); + m_disc2cpu->set_addrmap(AS_IO, &hec2hrp_state::hecdisc2_io); + UPD765A(config, m_upd_fdc, 8'000'000, false, true); m_upd_fdc->intrq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_interrupt)); m_upd_fdc->drq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_dma_irq)); + FLOPPY_CONNECTOR(config, m_upd_connector[0], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, m_upd_connector[1], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ - MCFG_SCREEN_SIZE(512, 230) - MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) - MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(400)); /* 2500 not accurate */ + screen.set_size(512, 230); + screen.set_visarea(0, 243, 0, 227); + screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); + screen.set_palette(m_palette); - MCFG_PALETTE_ADD("palette", 16) + PALETTE(config, m_palette).set_entries(16); MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) hector_audio(config); @@ -599,7 +616,7 @@ MACHINE_CONFIG_START(hec2hrp_state::hec2mx80) m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); PRINTER(config, m_printer, 0); -MACHINE_CONFIG_END +} ROM_START( hec2hr ) ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) diff --git a/src/mame/drivers/hh_amis2k.cpp b/src/mame/drivers/hh_amis2k.cpp index f0d4b354c68..06ab5ec3aee 100644 --- a/src/mame/drivers/hh_amis2k.cpp +++ b/src/mame/drivers/hh_amis2k.cpp @@ -2,352 +2,396 @@ // copyright-holders:hap /*************************************************************************** - Parker Brothers Wildfire, by Bob and Holly Doyle (prototype), and Garry Kitchen - * AMI S2150, labeled C10641 - - This is an electronic handheld pinball game. It has dozens of small leds - to create the illusion of a moving ball, and even the flippers are leds. - A drawing of a pinball table is added as overlay. - - NOTE!: MAME external artwork is required - + AMI S2000 series handhelds or other simple devices. TODO: - - driver needs a cleanup when another AMI S2000 handheld gets dumped/added - - - sound emulation could still be improved - - when the game strobes a led faster, it should appear brighter, for example when - the ball hits one of the bumpers - - 7seg decoder is guessed - - MCU clock is unknown + - were any other handhelds with this MCU released? + - wildfire sound can be improved, volume decay should be more steep at the start, + and the pitch sounds wrong too (latter is an MCU emulation problem) + - leds are sometimes strobed faster/longer to appear at a different brightness, + eg. wildfire bumpers ***************************************************************************/ #include "emu.h" + #include "cpu/amis2000/amis2000.h" #include "machine/timer.h" #include "sound/spkrdev.h" #include "speaker.h" -#include "wildfire.lh" // this is a test layout, use external artwork +// internal artwork +#include "wildfire.lh" -// master clock is a single stage RC oscillator: R=?K, C=?pf, -// S2000 default frequency is 850kHz -#define MASTER_CLOCK (850000) +//#include "hh_amis2k_test.lh" // common test-layout - use external artwork -class wildfire_state : public driver_device +class hh_amis2k_state : public driver_device { public: - wildfire_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_amis2k_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), + m_inp_matrix(*this, "IN.%u", 0), + m_out_x(*this, "%u.%u", 0U, 0U), + m_out_a(*this, "%u.a", 0U), + m_out_digit(*this, "digit%u", 0U), m_speaker(*this, "speaker"), - m_a12_decay_timer(*this, "a12_decay"), - m_digits(*this, "digit%u", 0U), - m_lamps(*this, "lamp%u", 0U) + m_display_wait(33), + m_display_maxy(1), + m_display_maxx(0) { } - void wildfire(machine_config &config); + // devices + required_device<amis2000_base_device> m_maincpu; + optional_ioport_array<4> m_inp_matrix; // max 4 + output_finder<0x20, 0x20> m_out_x; + output_finder<0x20> m_out_a; + output_finder<0x20> m_out_digit; + optional_device<speaker_sound_device> m_speaker; -private: - virtual void machine_start() override; + // misc common + u16 m_a; // MCU address bus + u8 m_d; // MCU data bus + int m_f; // MCU F_out pin + u16 m_inp_mux; // multiplexed inputs mask - DECLARE_WRITE8_MEMBER(write_d); - DECLARE_WRITE16_MEMBER(write_a); - DECLARE_WRITE_LINE_MEMBER(write_f); + u8 read_inputs(int columns); - TIMER_DEVICE_CALLBACK_MEMBER(display_decay_tick); + // display common + int m_display_wait; // led/lamp off-delay in milliseconds (default 33ms) + int m_display_maxy; // display matrix number of rows + int m_display_maxx; // display matrix number of columns (max 31 for now) + + u32 m_display_state[0x20]; // display matrix rows data (last bit is used for always-on) + u16 m_display_segmask[0x20]; // if not 0, display matrix row is a digit, mask indicates connected segments + u8 m_display_decay[0x20][0x20]; // (internal use) - bool index_is_7segled(int index); + TIMER_DEVICE_CALLBACK_MEMBER(display_decay_tick); void display_update(); + void set_display_size(int maxx, int maxy); + void set_display_segmask(u32 digits, u32 mask); + void display_matrix(int maxx, int maxy, u32 setx, u32 sety, bool update = true); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; +}; - TIMER_DEVICE_CALLBACK_MEMBER(reset_q2); - void write_a12(int state); - void sound_update(); - required_device<amis2152_cpu_device> m_maincpu; - required_device<speaker_sound_device> m_speaker; - required_device<timer_device> m_a12_decay_timer; +// machine start/reset - output_finder<3> m_digits; - output_finder<16 * 10> m_lamps; // only ones ending in 0-7 are used, 8-9 are unused +void hh_amis2k_state::machine_start() +{ + // resolve handlers + m_out_x.resolve(); + m_out_a.resolve(); + m_out_digit.resolve(); - u8 m_d; - u16 m_a; - u8 m_q2; - u8 m_q3; + // zerofill + memset(m_display_state, 0, sizeof(m_display_state)); + memset(m_display_decay, 0, sizeof(m_display_decay)); + memset(m_display_segmask, 0, sizeof(m_display_segmask)); - u16 m_display_state[0x10]; - u8 m_display_decay[0x100]; -}; + m_a = 0; + m_d = 0; + m_f = 0; + m_inp_mux = 0; + + // register for savestates + save_item(NAME(m_display_maxy)); + save_item(NAME(m_display_maxx)); + save_item(NAME(m_display_wait)); + + save_item(NAME(m_display_state)); + save_item(NAME(m_display_decay)); + save_item(NAME(m_display_segmask)); + + save_item(NAME(m_a)); + save_item(NAME(m_d)); + save_item(NAME(m_f)); + save_item(NAME(m_inp_mux)); +} + +void hh_amis2k_state::machine_reset() +{ +} /*************************************************************************** - LED Display + Helper Functions ***************************************************************************/ -// The device strobes the outputs very fast, it is unnoticeable to the user. +// The device may strobe the outputs very fast, it is unnoticeable to the user. // To prevent flickering here, we need to simulate a decay. -// decay time, in steps of 1ms -#define DISPLAY_DECAY_TIME 40 - -inline bool wildfire_state::index_is_7segled(int index) -{ - // first 3 A are 7segleds - return (index < 3); -} - -// lamp translation table: Lzz from patent US4334679 FIG.4 = MAME lampxxy, -// where xx is led column and y is led row, eg. lamp103 is output A10 D3 -// (note: 2 mistakes in the patent: the L19 between L12 and L14 should be L13, and L84 should of course be L48) -/* - L0 = - L10 = lamp60 L20 = lamp41 L30 = lamp53 L40 = lamp57 L50 = lamp110 - L1 = lamp107 L11 = lamp50 L21 = lamp42 L31 = lamp43 L41 = lamp66 L51 = lamp111 - L2 = lamp106 L12 = lamp61 L22 = lamp52 L32 = lamp54 L42 = lamp76 L52 = lamp112 - L3 = lamp105 L13 = lamp71 L23 = lamp63 L33 = lamp55 L43 = lamp86 L53 = lamp113 - L4 = lamp104 L14 = lamp81 L24 = lamp73 L34 = lamp117 L44 = lamp96 L60 = lamp30 - L5 = lamp103 L15 = lamp92 L25 = lamp115 L35 = lamp75 L45 = lamp67 L61 = lamp30(!) - L6 = lamp102 L16 = lamp82 L26 = lamp93 L36 = lamp95 L46 = lamp77 L62 = lamp31 - L7 = lamp101 L17 = lamp72 L27 = lamp94 L37 = lamp56 L47 = lamp87 L63 = lamp31(!) - L8 = lamp80 L18 = lamp114 L28 = lamp84 L38 = lamp65 L48 = lamp97 L70 = lamp33 - L9 = lamp70 L19 = lamp51 L29 = lamp116 L39 = lamp85 L49 = - -*/ - -void wildfire_state::display_update() +void hh_amis2k_state::display_update() { - u16 active_state[0x10]; - - for (int i = 0; i < 0x10; i++) + for (int y = 0; y < m_display_maxy; y++) { - // update current state - m_display_state[i] = (m_a >> i & 1) ? m_d : 0; - - active_state[i] = 0; + u32 active_state = 0; - for (int j = 0; j < 0x10; j++) + for (int x = 0; x <= m_display_maxx; x++) { - int di = j << 4 | i; - // turn on powered segments - if (m_display_state[i] >> j & 1) - m_display_decay[di] = DISPLAY_DECAY_TIME; + if (m_display_state[y] >> x & 1) + m_display_decay[y][x] = m_display_wait; // determine active state - int ds = (m_display_decay[di] != 0) ? 1 : 0; - active_state[i] |= (ds << j); + u32 ds = (m_display_decay[y][x] != 0) ? 1 : 0; + active_state |= (ds << x); + + // output to y.x, or y.a when always-on + if (x != m_display_maxx) + m_out_x[y][x] = ds; + else + m_out_a[y] = ds; } - } - // on difference, send to output - for (int i = 0; i < 0x10; i++) - { - if (index_is_7segled(i)) - m_digits[i] = bitswap<7>(active_state[i],0,1,2,3,4,5,6); - - for (int j = 0; j < 8; j++) - m_lamps[(i * 10) + j] = BIT(active_state[i], j); + // output to digity + if (m_display_segmask[y] != 0) + m_out_digit[y] = active_state & m_display_segmask[y]; } } -TIMER_DEVICE_CALLBACK_MEMBER(wildfire_state::display_decay_tick) +TIMER_DEVICE_CALLBACK_MEMBER(hh_amis2k_state::display_decay_tick) { // slowly turn off unpowered segments - for (int i = 0; i < 0x100; i++) - if (!(m_display_state[i & 0xf] >> (i>>4) & 1) && m_display_decay[i]) - m_display_decay[i]--; + for (int y = 0; y < m_display_maxy; y++) + for (int x = 0; x <= m_display_maxx; x++) + if (m_display_decay[y][x] != 0) + m_display_decay[y][x]--; display_update(); } - - -/*************************************************************************** - - Sound - -***************************************************************************/ - -// Sound output is via a speaker between transistors Q2(from A12) and Q3(from F_out) -// A12 to Q2 has a little electronic circuit going, causing a slight delay. -// (see patent US4334679 FIG.5, the 2 resistors are 10K and the cap is a 4.7uF electrolytic) - -// decay time, in steps of 1ms -#define A12_DECAY_TIME 5 /* a complete guess */ - -void wildfire_state::sound_update() +void hh_amis2k_state::set_display_size(int maxx, int maxy) { - m_speaker->level_w(m_q2 & m_q3); + m_display_maxx = maxx; + m_display_maxy = maxy; } -WRITE_LINE_MEMBER(wildfire_state::write_f) +void hh_amis2k_state::set_display_segmask(u32 digits, u32 mask) { - // F_out pin: speaker out - m_q3 = (state) ? 1 : 0; - sound_update(); + // set a segment mask per selected digit, but leave unselected ones alone + for (int i = 0; i < 0x20; i++) + { + if (digits & 1) + m_display_segmask[i] = mask; + digits >>= 1; + } } -TIMER_DEVICE_CALLBACK_MEMBER(wildfire_state::reset_q2) +void hh_amis2k_state::display_matrix(int maxx, int maxy, u32 setx, u32 sety, bool update) { - m_q2 = 0; - sound_update(); + set_display_size(maxx, maxy); + + // update current state + u32 mask = (1 << maxx) - 1; + for (int y = 0; y < maxy; y++) + m_display_state[y] = (sety >> y & 1) ? ((setx & mask) | (1 << maxx)) : 0; + + if (update) + display_update(); } -void wildfire_state::write_a12(int state) + +// generic input handlers + +u8 hh_amis2k_state::read_inputs(int columns) { - if (state) - { - m_a12_decay_timer->adjust(attotime::never); - m_q2 = state; - sound_update(); - } - else if (m_a >> 12 & 1) - { - // falling edge - m_a12_decay_timer->adjust(attotime::from_msec(A12_DECAY_TIME)); - } + u8 ret = 0; + + // read selected input rows + for (int i = 0; i < columns; i++) + if (m_inp_mux >> i & 1) + ret |= m_inp_matrix[i]->read(); + + return ret; } /*************************************************************************** - I/O + Minidrivers (subclass, I/O, Inputs, Machine Config, ROM Defs) ***************************************************************************/ -WRITE8_MEMBER(wildfire_state::write_d) -{ - // D0-D7: leds out - m_d = data; - display_update(); -} - -WRITE16_MEMBER(wildfire_state::write_a) -{ - data ^= 0x1fff; // active-low +namespace { - // A12: enable speaker - write_a12(data >> 12 & 1); +/*************************************************************************** - // A0-A2: select 7segleds - // A3-A11: select other leds - m_a = data; - display_update(); -} + Parker Brothers Wildfire, by Bob and Holly Doyle (prototype), and Garry Kitchen + * AMI S2150, labeled C10641 + * RC circuit for speaker volume decay (see patent US4334679 FIG.5, + the 2 resistors at A12 are 10K and the cap is 4.7uF) + This is an electronic handheld pinball game. It has dozens of small leds + to create the illusion of a moving ball, and even the flippers are leds. + A drawing of a pinball table is added as overlay. + led translation table: led Lzz from patent US4334679 FIG.4* = MAME y.x: + *note: 2 mistakes in it: L19 between L12 and L14 should be L13, and L84 should of course be L48 -/*************************************************************************** + 0 = - 10 = 6.6 20 = 4.5 30 = 5.3 40 = 5.7 50 = 11.6 + 1 = 10.7 11 = 5.6 21 = 4.4 31 = 4.3 41 = 6.0 51 = 11.5 + 2 = 10.0 12 = 6.5 22 = 5.4 32 = 5.2 42 = 7.0 52 = 11.4 + 3 = 10.1 13 = 7.5 23 = 6.3 33 = 5.1 43 = 8.0 53 = 11.3 + 4 = 10.2 14 = 8.5 24 = 7.3 34 = 11.7 44 = 9.0 60 = 3.6 + 5 = 10.3 15 = 9.4 25 = 11.1 35 = 7.1 45 = 6.7 61 = 3.6(!) + 6 = 10.4 16 = 8.4 26 = 9.3 36 = 9.1 46 = 7.7 62 = 3.5 + 7 = 10.5 17 = 7.4 27 = 9.2 37 = 5.0 47 = 8.7 63 = 3.5(!) + 8 = 8.6 18 = 11.2 28 = 8.2 38 = 6.1 48 = 9.7 70 = 3.3 + 9 = 7.6 19 = 5.5 29 = 11.0 39 = 8.1 49 = - - Inputs + NOTE!: MAME external artwork is required ***************************************************************************/ -static INPUT_PORTS_START( wildfire ) - PORT_START("IN1") // I - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Shooter Button") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Left Flipper") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Right Flipper") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END +class wildfire_state : public hh_amis2k_state +{ +public: + wildfire_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_amis2k_state(mconfig, type, tag) + { } + + void prepare_display(); + DECLARE_WRITE8_MEMBER(write_d); + DECLARE_WRITE16_MEMBER(write_a); + DECLARE_WRITE_LINE_MEMBER(write_f); + void speaker_update(); + TIMER_DEVICE_CALLBACK_MEMBER(speaker_decay_sim); + double m_speaker_volume; + void wildfire(machine_config &config); +protected: + virtual void machine_start() override; +}; -/*************************************************************************** +void wildfire_state::machine_start() +{ + hh_amis2k_state::machine_start(); - Machine Config + // zerofill/init + m_speaker_volume = 0; + save_item(NAME(m_speaker_volume)); +} -***************************************************************************/ +// handlers -void wildfire_state::machine_start() +void wildfire_state::speaker_update() { - m_digits.resolve(); - m_lamps.resolve(); + if (~m_a & 0x1000) + m_speaker_volume = 1.0; - // zerofill - memset(m_display_state, 0, sizeof(m_display_state)); - memset(m_display_decay, 0, sizeof(m_display_decay)); + m_speaker->level_w(m_f * 0x7fff * m_speaker_volume); +} - m_d = 0; - m_a = 0; - m_q2 = 0; - m_q3 = 0; +TIMER_DEVICE_CALLBACK_MEMBER(wildfire_state::speaker_decay_sim) +{ + // volume decays when speaker is off (divisor and timer period determine duration) + m_speaker_volume /= 1.001; + speaker_update(); +} - // register for savestates - save_item(NAME(m_display_state)); - save_item(NAME(m_display_decay)); +void wildfire_state::prepare_display() +{ + // A0-A2 are 7segs + set_display_segmask(7, 0x7f); + display_matrix(8, 12, m_d, ~m_a); +} - save_item(NAME(m_d)); - save_item(NAME(m_a)); - save_item(NAME(m_q2)); - save_item(NAME(m_q3)); +WRITE8_MEMBER(wildfire_state::write_d) +{ + // D0-D7: led/7seg data + m_d = bitswap<8>(data,7,0,1,2,3,4,5,6); + prepare_display(); } -// LED segments A-G -enum +WRITE16_MEMBER(wildfire_state::write_a) { - lA = 0x40, - lB = 0x20, - lC = 0x10, - lD = 0x08, - lE = 0x04, - lF = 0x02, - lG = 0x01 -}; + // A0-A11: digit/led select + m_a = data; + prepare_display(); + // A12: speaker on + speaker_update(); +} + +WRITE_LINE_MEMBER(wildfire_state::write_f) +{ + // F: speaker out + m_f = state; + speaker_update(); +} + +// config + +static INPUT_PORTS_START( wildfire ) + PORT_START("IN.0") // I + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Shooter Button") + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Left Flipper") + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Right Flipper") + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) +INPUT_PORTS_END + +// 7seg decoder table differs from default, this one is made by hand static const u8 wildfire_7seg_table[0x10] = { - 0x7e, 0x30, 0x6d, 0x79, 0x33, 0x5b, 0x5f, 0x70, 0x7f, 0x7b, // 0-9 unaltered - 0x77, // A -> unused? - lA+lB+lE+lF+lG, // b -> P - 0x4e, // C -> unused? - lD+lE+lF, // d -> L - 0x4f, // E -> unused? - lG // F -> - + 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, // 0, 1, 2, 3, 4, 5, 6, 7 + 0x7f, 0x6f, 0x77, 0x73, 0x39, 0x38, 0x79, 0x40 // 8, 9, ?, P, ?, L, ?, - }; +static s16 wildfire_speaker_levels[0x8000]; void wildfire_state::wildfire(machine_config &config) { /* basic machine hardware */ - AMI_S2152(config, m_maincpu, MASTER_CLOCK); + AMI_S2152(config, m_maincpu, 850000); // approximation - RC osc. R=?, C=? m_maincpu->set_7seg_table(wildfire_7seg_table); - m_maincpu->read_i().set_ioport("IN1"); + m_maincpu->read_i().set_ioport("IN.0"); m_maincpu->write_d().set(FUNC(wildfire_state::write_d)); m_maincpu->write_a().set(FUNC(wildfire_state::write_a)); m_maincpu->write_f().set(FUNC(wildfire_state::write_f)); - TIMER(config, "display_decay").configure_periodic(FUNC(wildfire_state::display_decay_tick), attotime::from_msec(1)); - TIMER(config, "a12_decay").configure_generic(FUNC(wildfire_state::reset_q2)); - + TIMER(config, "display_decay").configure_periodic(FUNC(hh_amis2k_state::display_decay_tick), attotime::from_msec(1)); config.set_default_layout(layout_wildfire); - /* no video! */ - /* sound hardware */ SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); -} - + TIMER(config, "speaker_decay").configure_periodic(FUNC(wildfire_state::speaker_decay_sim), attotime::from_usec(100)); -/*************************************************************************** - - Game driver(s) + // set volume levels (set_output_gain is too slow for sub-frame intervals) + for (int i = 0; i < 0x8000; i++) + wildfire_speaker_levels[i] = i; + m_speaker->set_levels(0x8000, wildfire_speaker_levels); +} -***************************************************************************/ +// roms ROM_START( wildfire ) ROM_REGION( 0x0800, "maincpu", ROMREGION_ERASE00 ) - ROM_LOAD( "us4341385", 0x0000, 0x0400, CRC(84ac0f1f) SHA1(1e00ddd402acfc2cc267c34eed4b89d863e2144f) ) // from patent US4334679, data should be correct (it included checksums). 1st half was dumped/verfied too. + // Typed in from patent US4334679, data should be correct(it included checksums). 1st half was also dumped/verfied with release version. + ROM_LOAD( "us4341385", 0x0000, 0x0400, CRC(84ac0f1f) SHA1(1e00ddd402acfc2cc267c34eed4b89d863e2144f) ) ROM_CONTINUE( 0x0600, 0x0200 ) ROM_END + +} // anonymous namespace + +/*************************************************************************** + + Game driver(s) + +***************************************************************************/ + // YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS CONS( 1979, wildfire, 0, 0, wildfire, wildfire, wildfire_state, empty_init, "Parker Brothers", "Wildfire (patent)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) // note: pretty sure that it matches the commercial release diff --git a/src/mame/drivers/hh_cop400.cpp b/src/mame/drivers/hh_cop400.cpp index 6df6b38d163..12fc8699438 100644 --- a/src/mame/drivers/hh_cop400.cpp +++ b/src/mame/drivers/hh_cop400.cpp @@ -77,6 +77,7 @@ public: u16 m_inp_mux; // multiplexed inputs mask u16 read_inputs(int columns, u16 colmask = ~0); + virtual DECLARE_INPUT_CHANGED_MEMBER(reset_button); // display common int m_display_wait; // led/lamp off-delay in milliseconds (default 33ms) @@ -238,6 +239,12 @@ u16 hh_cop400_state::read_inputs(int columns, u16 colmask) return ret; } +INPUT_CHANGED_MEMBER(hh_cop400_state::reset_button) +{ + // when an input is directly wired to MCU reset pin + m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); +} + /*************************************************************************** @@ -1061,8 +1068,6 @@ public: DECLARE_WRITE8_MEMBER(write_d); DECLARE_WRITE8_MEMBER(write_l); DECLARE_WRITE8_MEMBER(write_g); - - DECLARE_INPUT_CHANGED_MEMBER(reset_button); void funrlgl(machine_config &config); }; @@ -1101,15 +1106,9 @@ static INPUT_PORTS_START( funrlgl ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("RESET") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, funrlgl_state, reset_button, nullptr) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_cop400_state, reset_button, nullptr) INPUT_PORTS_END -INPUT_CHANGED_MEMBER(funrlgl_state::reset_button) -{ - // middle button is directly tied to MCU reset pin - m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); -} - void funrlgl_state::funrlgl(machine_config &config) { /* basic machine hardware */ diff --git a/src/mame/drivers/hh_hmcs40.cpp b/src/mame/drivers/hh_hmcs40.cpp index e0459fbf6c0..0d5447469e2 100644 --- a/src/mame/drivers/hh_hmcs40.cpp +++ b/src/mame/drivers/hh_hmcs40.cpp @@ -70,7 +70,6 @@ TODO: - - cdkong discrete sound (simple volume decay, simulated for now) - cgalaxn discrete sound (alien attacking sound effect) - gckong random lockups (tap the jump button repeatedly): mcu stack overflow, works ok if stack levels is increased, 38800 B rev. has more stack levels? @@ -98,10 +97,17 @@ #include "screen.h" #include "speaker.h" -// internal artwork +// internal artwork (complete) #include "pairmtch.lh" #include "sag.lh" +// internal artwork (bezel overlay) +#include "bambball.lh" +#include "gckong.lh" +#include "mwcbaseb.lh" +#include "msthawk.lh" +#include "packmon.lh" + //#include "hh_hmcs40_test.lh" // common test-layout - no svg artwork(yet), use external artwork @@ -443,6 +449,7 @@ void bambball_state::bambball(machine_config &config) screen.set_visarea(0, 1920-1, 0, 478-1); TIMER(config, "display_decay").configure_periodic(FUNC(hh_hmcs40_state::display_decay_tick), attotime::from_msec(1)); + config.set_default_layout(layout_bambball); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -837,9 +844,11 @@ void packmon_state::packmon(machine_config &config) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_svg_region("svg"); screen.set_refresh_hz(50); - screen.set_size(1920, 766); - screen.set_visarea(0, 1920-1, 0, 766-1); + screen.set_size(1920, 680); + screen.set_visarea(0, 1920-1, 0, 680-1); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_hmcs40_state::display_decay_tick), attotime::from_msec(1)); + config.set_default_layout(layout_packmon); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -853,8 +862,8 @@ ROM_START( packmon ) ROM_LOAD( "hd38800a27", 0x0000, 0x1000, CRC(86e09e84) SHA1(ac7d3c43667d5720ca513f8ff51d146d9f2af124) ) ROM_CONTINUE( 0x1e80, 0x0100 ) - ROM_REGION( 246356, "svg", 0) - ROM_LOAD( "packmon.svg", 0, 246356, CRC(991eea96) SHA1(bf42765aea838e9c26453642b01a962399b3e74c) ) + ROM_REGION( 224386, "svg", 0) + ROM_LOAD( "packmon.svg", 0, 224386, CRC(b2ee5b6b) SHA1(e53b4d5a4118cc5fbec4656580c2aab76af8f8d7) ) ROM_END @@ -978,7 +987,9 @@ void msthawk_state::msthawk(machine_config &config) screen.set_refresh_hz(50); screen.set_size(1920, 696); screen.set_visarea(0, 1920-1, 0, 696-1); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_hmcs40_state::display_decay_tick), attotime::from_msec(1)); + config.set_default_layout(layout_msthawk); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -992,8 +1003,8 @@ ROM_START( msthawk ) ROM_LOAD( "hd38800a73", 0x0000, 0x1000, CRC(a4f9a523) SHA1(465f06b02e2e7d2277218fd447830725790a816c) ) ROM_CONTINUE( 0x1e80, 0x0100 ) - ROM_REGION( 197907, "svg", 0) - ROM_LOAD( "msthawk.svg", 0, 197907, CRC(b54efcb9) SHA1(76db2ca156d556bf578995196eca1170b39988bb) ) + ROM_REGION( 191888, "svg", 0) + ROM_LOAD( "msthawk.svg", 0, 191888, CRC(a607fc0f) SHA1(282a412f6462128e09ee8bd18d682dda01297611) ) ROM_END @@ -2137,7 +2148,7 @@ public: DECLARE_WRITE8_MEMBER(plate_w); DECLARE_WRITE16_MEMBER(grid_w); - void speaker_decay_reset(); + void speaker_update(); TIMER_DEVICE_CALLBACK_MEMBER(speaker_decay_sim); double m_speaker_volume; void cdkong(machine_config &config); @@ -2157,19 +2168,20 @@ void cdkong_state::machine_start() // handlers -void cdkong_state::speaker_decay_reset() +void cdkong_state::speaker_update() { if (m_r[1] & 8) m_speaker_volume = 1.0; - m_speaker->set_output_gain(0, m_speaker_volume); + int level = (m_d & 8) ? 0x7fff : 0; + m_speaker->level_w(level * m_speaker_volume); } TIMER_DEVICE_CALLBACK_MEMBER(cdkong_state::speaker_decay_sim) { // volume decays when speaker is off (divisor and timer period determine duration) - speaker_decay_reset(); - m_speaker_volume /= 1.015; + speaker_update(); + m_speaker_volume /= 1.02; } void cdkong_state::prepare_display() @@ -2182,7 +2194,7 @@ WRITE8_MEMBER(cdkong_state::plate_w) { // R13: speaker on m_r[offset] = data; - speaker_decay_reset(); + speaker_update(); // R0x-R6x: vfd plate int shift = offset * 4; @@ -2193,7 +2205,8 @@ WRITE8_MEMBER(cdkong_state::plate_w) WRITE16_MEMBER(cdkong_state::grid_w) { // D3: speaker out - m_speaker->level_w(data >> 3 & 1); + m_d = data; + speaker_update(); // D4-D14: vfd grid m_grid = data >> 4 & 0x7ff; @@ -2214,6 +2227,8 @@ static INPUT_PORTS_START( cdkong ) PORT_BIT( 0x7ff8, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END +static s16 cdkong_speaker_levels[0x8000]; + void cdkong_state::cdkong(machine_config &config) { /* basic machine hardware */ @@ -2239,7 +2254,13 @@ void cdkong_state::cdkong(machine_config &config) /* sound hardware */ SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); + TIMER(config, "speaker_decay").configure_periodic(FUNC(cdkong_state::speaker_decay_sim), attotime::from_msec(1)); + + // set volume levels (set_output_gain is too slow for sub-frame intervals) + for (int i = 0; i < 0x8000; i++) + cdkong_speaker_levels[i] = i; + m_speaker->set_levels(0x8000, cdkong_speaker_levels); } // roms @@ -3602,9 +3623,11 @@ void gckong_state::gckong(machine_config &config) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); screen.set_svg_region("svg"); screen.set_refresh_hz(50); - screen.set_size(506, 1080); - screen.set_visarea(0, 506-1, 0, 1080-1); + screen.set_size(479, 1080); + screen.set_visarea(0, 479-1, 0, 1080-1); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_hmcs40_state::display_decay_tick), attotime::from_msec(1)); + config.set_default_layout(layout_gckong); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -3618,8 +3641,8 @@ ROM_START( gckong ) ROM_LOAD( "hd38800b01", 0x0000, 0x1000, CRC(d5a2cca3) SHA1(37bb5784383daab672ed1e0e2362c7a40d8d9b3f) ) ROM_CONTINUE( 0x1e80, 0x0100 ) - ROM_REGION( 356769, "svg", 0) - ROM_LOAD( "gckong.svg", 0, 356769, CRC(e2559b53) SHA1(519309c3a88b5d7f4c0ac5ae05dcdc1153377765) ) + ROM_REGION( 346588, "svg", 0) + ROM_LOAD( "gckong.svg", 0, 346588, CRC(317af984) SHA1(ff6323526d1f5e46eccf8fa8d979175895be75de) ) ROM_END @@ -3901,7 +3924,9 @@ void mwcbaseb_state::mwcbaseb(machine_config &config) screen.set_refresh_hz(50); screen.set_size(1920, 478); screen.set_visarea(0, 1920-1, 0, 478-1); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_hmcs40_state::display_decay_tick), attotime::from_msec(1)); + config.set_default_layout(layout_mwcbaseb); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -4403,7 +4428,7 @@ CONS( 1984, machiman, 0, 0, machiman, machiman, machiman_state, empty_in CONS( 1984, pairmtch, 0, 0, pairmtch, pairmtch, pairmtch_state, empty_init, "Bandai", "Pair Match", MACHINE_SUPPORTS_SAVE ) CONS( 1981, alnattck, 0, 0, alnattck, alnattck, alnattck_state, empty_init, "Coleco", "Alien Attack", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, cdkong, 0, 0, cdkong, cdkong, cdkong_state, empty_init, "Coleco", "Donkey Kong (Coleco)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +CONS( 1982, cdkong, 0, 0, cdkong, cdkong, cdkong_state, empty_init, "Coleco", "Donkey Kong (Coleco)", MACHINE_SUPPORTS_SAVE ) CONS( 1982, cgalaxn, 0, 0, cgalaxn, cgalaxn, cgalaxn_state, empty_init, "Coleco", "Galaxian (Coleco)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) CONS( 1981, cpacman, 0, 0, cpacman, cpacman, cpacman_state, empty_init, "Coleco", "Pac-Man (Coleco, Rev. 29)", MACHINE_SUPPORTS_SAVE ) CONS( 1981, cpacmanr1, cpacman, 0, cpacman, cpacman, cpacman_state, empty_init, "Coleco", "Pac-Man (Coleco, Rev. 28)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/hh_melps4.cpp b/src/mame/drivers/hh_melps4.cpp index 8a52679a0b9..13cd63f5b28 100644 --- a/src/mame/drivers/hh_melps4.cpp +++ b/src/mame/drivers/hh_melps4.cpp @@ -47,7 +47,7 @@ public: u16 m_inp_mux; // multiplexed inputs mask u8 read_inputs(int columns); - DECLARE_INPUT_CHANGED_MEMBER(reset_button); + virtual DECLARE_INPUT_CHANGED_MEMBER(reset_button); // display common int m_display_wait; // led/lamp off-delay in milliseconds (default 33ms) @@ -292,7 +292,7 @@ static INPUT_PORTS_START( cfrogger ) PORT_CONFSETTING( 0x00, "1" ) PORT_CONFSETTING( 0x08, "2" ) - PORT_START("IN.3") // fake + PORT_START("RESET") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_melps4_state, reset_button, nullptr) INPUT_PORTS_END @@ -416,7 +416,7 @@ static INPUT_PORTS_START( gjungler ) PORT_CONFSETTING( 0x00, "A" ) PORT_CONFSETTING( 0x08, "B" ) - PORT_START("IN.3") // fake + PORT_START("RESET") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_melps4_state, reset_button, nullptr) INPUT_PORTS_END diff --git a/src/mame/drivers/hh_pic16.cpp b/src/mame/drivers/hh_pic16.cpp index c2529866786..0301dea356b 100644 --- a/src/mame/drivers/hh_pic16.cpp +++ b/src/mame/drivers/hh_pic16.cpp @@ -9,6 +9,7 @@ serial device etc. ----------------------------------------------------------- *020 1650 19??, GI Economega IV TV PPL Tuning System Control + *021 1650 1978, GI AY-3-8910 demo board @024 1655 1979, Toytronic? Football @033 1655A 1979, Toytronic Football (newer) @036 1655A 1979, Ideal Maniac @@ -39,7 +40,6 @@ - tweak MCU frequency for games when video/audio recording surfaces(YouTube etc.) - some of the games rely on the fact that faster/longer strobed leds appear brighter, eg. hccbaskb(player led), .. - - leboom discrete sound for volume decay (simulated for now) - ttfball: discrete sound part, for volume gating? - what's the relation between hccbaskb and tbaskb? Is one the bootleg of the other? Or are they both made by the same subcontractor? @@ -100,6 +100,7 @@ public: u16 read_inputs(int columns, u16 colmask = ~0); u8 read_rotated_inputs(int columns, u8 rowmask = ~0); + virtual DECLARE_INPUT_CHANGED_MEMBER(reset_button); // display common int m_display_wait; // led/lamp off-delay in milliseconds (default 33ms) @@ -273,6 +274,12 @@ u8 hh_pic16_state::read_rotated_inputs(int columns, u8 rowmask) return ~ret & rowmask; } +INPUT_CHANGED_MEMBER(hh_pic16_state::reset_button) +{ + // when an input is directly wired to MCU MCLR pin + m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); +} + /*************************************************************************** @@ -431,8 +438,6 @@ public: void prepare_display(); DECLARE_WRITE8_MEMBER(write_b); DECLARE_WRITE8_MEMBER(write_c); - - DECLARE_INPUT_CHANGED_MEMBER(reset_button); void pabball(machine_config &config); }; @@ -487,15 +492,9 @@ static INPUT_PORTS_START( pabball ) PORT_CONFSETTING( 0x20, "2" ) PORT_START("RESET") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, pabball_state, reset_button, nullptr) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, hh_pic16_state, reset_button, nullptr) INPUT_PORTS_END -INPUT_CHANGED_MEMBER(pabball_state::reset_button) -{ - // reset button is directly tied to MCLR pin - m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); -} - void pabball_state::pabball(machine_config &config) { /* basic machine hardware */ @@ -1858,7 +1857,7 @@ CONS( 1979, maniac, 0, 0, maniac, maniac, maniac_state, empty_ CONS( 1980, matchme, 0, 0, matchme, matchme, matchme_state, empty_init, "Kingsford", "Match Me", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, leboom, 0, 0, leboom, leboom, leboom_state, empty_init, "Lakeside", "Le Boom", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1980, leboom, 0, 0, leboom, leboom, leboom_state, empty_init, "Lakeside", "Le Boom", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1979, tbaskb, 0, 0, tbaskb, tbaskb, tbaskb_state, empty_init, "Tandy Radio Shack", "Electronic Basketball (Tandy)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp index 534a59dfaec..d10aa809033 100644 --- a/src/mame/drivers/hh_sm510.cpp +++ b/src/mame/drivers/hh_sm510.cpp @@ -33,6 +33,7 @@ // internal artwork #include "gnw_dualv.lh" #include "gnw_dualh.lh" + //#include "hh_sm510_test.lh" // common test-layout - use external artwork //#include "hh_sm500_test.lh" // " @@ -1496,6 +1497,184 @@ ROM_END /*************************************************************************** + Nintendo Game & Watch: Turtle Bridge (model TL-28) + * PCB label TL-28 + * Sharp SM510 label TL-28 523C (no decap) + * lcd screen with custom segments, 1-bit sound + +***************************************************************************/ + +class gnw_tbridge_state : public hh_sm510_state +{ +public: + gnw_tbridge_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_sm510_state(mconfig, type, tag) + { } + + void gnw_tbridge(machine_config &config); +}; + +// config + +static INPUT_PORTS_START( gnw_tbridge ) + PORT_START("IN.0") // S1 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_16WAY + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_16WAY + + PORT_START("IN.1") // S2 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Time") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game B") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game A") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Alarm") + + PORT_START("ACL") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL") + + PORT_START("BA") // MCU BA(alpha) pin pulled to GND + PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") + PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("B") // MCU B(beta) pin pulled to GND + PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") + PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x00, DEF_STR( On ) ) +INPUT_PORTS_END + +void gnw_tbridge_state::gnw_tbridge(machine_config &config) +{ + /* basic machine hardware */ + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); // confirmed + m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); + + /* video hardware */ + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); + screen.set_svg_region("svg"); + screen.set_refresh_hz(50); + screen.set_size(1587, 1080); + screen.set_visarea(0, 1587-1, 0, 1080-1); + + TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1)); + + /* sound hardware */ + SPEAKER(config, "mono").front_center(); + SPEAKER_SOUND(config, m_speaker); + m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); +} + +// roms + +ROM_START( gnw_tbridge ) + ROM_REGION( 0x1000, "maincpu", 0 ) + ROM_LOAD( "tl-28", 0x0000, 0x1000, CRC(284e7224) SHA1(b50d7f3a527ffe50771ef55fdf8214929bfa2253) ) + + ROM_REGION( 242781, "svg", 0) + ROM_LOAD( "gnw_tbridge.svg", 0, 242781, CRC(c0473e53) SHA1(bb43f12f517a3b657b5b35b50baf176e01ce041d) ) +ROM_END + + + + + +/*************************************************************************** + + Nintendo Game & Watch: Fire Attack (model ID-29) + * PCB label ID-29 + * Sharp SM510 label ID-29 524B (no decap) + * lcd screen with custom segments, 1-bit sound + +***************************************************************************/ + +class gnw_fireatk_state : public hh_sm510_state +{ +public: + gnw_fireatk_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_sm510_state(mconfig, type, tag) + { } + + void gnw_fireatk(machine_config &config); +}; + +// config + +static INPUT_PORTS_START( gnw_fireatk ) + PORT_START("IN.0") // S1 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_16WAY + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_16WAY + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_16WAY + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_16WAY + + PORT_START("IN.1") // S2 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Time") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game B") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game A") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Alarm") + + PORT_START("ACL") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL") + + PORT_START("BA") // MCU BA(alpha) pin pulled to GND + PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") + PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x00, DEF_STR( On ) ) + + PORT_START("B") // MCU B(beta) pin pulled to GND + PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") + PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x00, DEF_STR( On ) ) +INPUT_PORTS_END + +void gnw_fireatk_state::gnw_fireatk(machine_config &config) +{ + /* basic machine hardware */ + SM510(config, m_maincpu); + m_maincpu->set_r_mask_option(2); // confirmed + m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); + + /* video hardware */ + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); + screen.set_svg_region("svg"); + screen.set_refresh_hz(50); + screen.set_size(1655, 1080); + screen.set_visarea(0, 1655-1, 0, 1080-1); + + TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1)); + + /* sound hardware */ + SPEAKER(config, "mono").front_center(); + SPEAKER_SOUND(config, m_speaker); + m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); +} + +// roms + +ROM_START( gnw_fireatk ) + ROM_REGION( 0x1000, "maincpu", 0 ) + ROM_LOAD( "id-29", 0x0000, 0x1000, CRC(5f6e8042) SHA1(63afc3acd8a2a996095fa8ba2dfccd48e5214478) ) + + ROM_REGION( 267755, "svg", 0) + ROM_LOAD( "gnw_fireatk.svg", 0, 267755, CRC(b13ee452) SHA1(4d1e7e10fd2352bdd805c25de8c0e16bcd8b2220) ) +ROM_END + + + + + +/*************************************************************************** + Nintendo Game & Watch: Snoopy Tennis (model SP-30) * PCB label SP-30 * Sharp SM510 label SP-30 525B (no decap) @@ -8427,6 +8606,8 @@ CONS( 1981, gnw_egg, gnw_mmouse, 0, gnw_egg, gnw_mmouse, gnw_mmouse_sta CONS( 1984, nupogodi, gnw_mmouse, 0, nupogodi, gnw_mmouse, gnw_mmouse_state, empty_init, "Elektronika", "Nu, pogodi!", MACHINE_SUPPORTS_SAVE ) CONS( 1989, exospace, gnw_mmouse, 0, exospace, exospace, gnw_mmouse_state, empty_init, "Elektronika", "Explorers of Space", MACHINE_SUPPORTS_SAVE ) CONS( 1981, gnw_fire, 0, 0, gnw_fire, gnw_fire, gnw_fire_state, empty_init, "Nintendo", "Game & Watch: Fire (wide screen)", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, gnw_tbridge, 0, 0, gnw_tbridge, gnw_tbridge, gnw_tbridge_state, empty_init, "Nintendo", "Game & Watch: Turtle Bridge", MACHINE_SUPPORTS_SAVE ) +CONS( 1982, gnw_fireatk, 0, 0, gnw_fireatk, gnw_fireatk, gnw_fireatk_state, empty_init, "Nintendo", "Game & Watch: Fire Attack", MACHINE_SUPPORTS_SAVE ) CONS( 1982, gnw_stennis, 0, 0, gnw_stennis, gnw_stennis, gnw_stennis_state, empty_init, "Nintendo", "Game & Watch: Snoopy Tennis", MACHINE_SUPPORTS_SAVE ) // Nintendo G&W: multi screen diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp index d048b615392..1bd835b36bd 100644 --- a/src/mame/drivers/hh_tms1k.cpp +++ b/src/mame/drivers/hh_tms1k.cpp @@ -211,6 +211,7 @@ #include "merlin.lh" // clickable #include "mmerlin.lh" // clickable #include "monkeysee.lh" +#include "phpball.lh" #include "quizwizc.lh" #include "raisedvl.lh" #include "simon.lh" // clickable @@ -229,7 +230,7 @@ #include "xl25.lh" // clickable #include "zodiac.lh" -#include "hh_tms1k_test.lh" // common test-layout - use external artwork +//#include "hh_tms1k_test.lh" // common test-layout - use external artwork // machine_start/reset @@ -393,6 +394,12 @@ u8 hh_tms1k_state::read_rotated_inputs(int columns, u8 rowmask) return ret; } +INPUT_CHANGED_MEMBER(hh_tms1k_state::reset_button) +{ + // when an input is directly wired to MCU INIT pin + m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); +} + INPUT_CHANGED_MEMBER(hh_tms1k_state::power_button) { m_power_on = (bool)(uintptr_t)param; @@ -798,41 +805,13 @@ static INPUT_PORTS_START( mathmagi ) PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -// output PLA is not decapped +// output PLA is not decapped, this was made by hand static const u16 mathmagi_output_pla[0x20] = { - lA+lB+lC+lD+lE+lF, // 0 - lB+lC, // 1 - lA+lB+lG+lE+lD, // 2 - lA+lB+lG+lC+lD, // 3 - lF+lB+lG+lC, // 4 - lA+lF+lG+lC+lD, // 5 - lA+lF+lG+lC+lD+lE, // 6 - lA+lB+lC, // 7 - lA+lB+lC+lD+lE+lF+lG, // 8 - lA+lB+lG+lF+lC+lD, // 9 - lA+lB+lG+lE, // question mark - lE+lG, // r - lD, // underscore? - lA+lF+lG+lE+lD, // E - lG, // - - 0, // empty - 0, // empty - lG, // lamp 4 or MATH - - lD, // lamp 3 - lF+lE+lD+lC+lG, // b - lB, // lamp 2 - lB+lG, // MATH + - lB+lC, // MATH mul - lF+lG+lB+lC+lD, // y - lA, // lamp 1 - lA+lG, // MATH div - lA+lD, // EQUALS - 0, // ? - 0, // ? - lE+lD+lC+lG, // o - 0, // ? - lA+lF+lE+lD+lC // G + 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, // 0, 1, 2, 3, 4, 5, 6, 7 + 0x7f, 0x6f, 0x53, 0x50, 0x08, 0x79, 0x40, 0x00, // 8, 9, questionmark, r, underscore?, E, -(negative), empty + 0x00, 0x40, 0x08, 0x7c, 0x02, 0x42, 0x06, 0x6e, // empty, led4/-, led3, b, led2, +, ×, y + 0x01, 0x41, 0x09, 0, 0, 0x5c, 0, 0x3d // led1, ÷, =, ?, ?, o, ?, G }; void mathmagi_state::mathmagi(machine_config &config) @@ -1175,7 +1154,7 @@ WRITE16_MEMBER(zodiac_state::write_r) WRITE16_MEMBER(zodiac_state::write_o) { // O0-O7: digit segment/led data - m_o = data; + m_o = bitswap<8>(data,0,7,6,5,4,3,2,1); prepare_display(); } @@ -1244,41 +1223,11 @@ static INPUT_PORTS_START( zodiac ) PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) INPUT_PORTS_END -// output PLA is not decapped +// output PLA is not decapped, dumped electronically static const u16 zodiac_output_pla[0x20] = { - 0x80, // empty/led 1/7 - lC, // i/led 2/8 - lE+lG, // r/led 3/9 - lC+lE+lG, // n - lF, // seg F/led 4/10 - 0, // ? - 0, // ? - lC+lE+lF+lG, // h - lB, // seg B/led 5/11 - lD, // seg D/led 6/12 - 0, // ? - 0, // ? - 0, // ? - 0, // ? - lA+lB+lE+lF+lG, // P - 0, // ? - lA+lB+lC+lD+lE+lF, // 0 - lB+lC, // 1 - lA+lB+lD+lE+lG, // 2 - lA+lB+lC+lD+lG, // 3 - lB+lC+lF+lG, // 4 - lA+lC+lD+lF+lG, // 5 - lA+lC+lD+lE+lF+lG, // 6 - lA+lB+lC, // 7 - lA+lB+lC+lD+lE+lF+lG, // 8 - lA+lB+lC+lD+lF+lG, // 9 - lA+lB+lC+lE+lF+lG, // A - lB+lC+lD+lE+lG, // d - lA+lD+lE+lF+lG, // E - lB+lC+lD+lE, // J - lD+lE+lF, // L - lB+lC+lD+lE+lF // U + 0x01, 0x08, 0xa0, 0xa8, 0x40, 0x48, 0xe0, 0xe8, 0x06, 0x10, 0xa6, 0xb0, 0x46, 0x50, 0xe6, 0xf0, + 0x7e, 0x0c, 0xb6, 0x9e, 0xcc, 0xda, 0xfa, 0x0e, 0xfe, 0xce, 0xee, 0xbc, 0xf2, 0x3c, 0x70, 0x7c }; void zodiac_state::zodiac(machine_config &config) @@ -2906,7 +2855,7 @@ static const u16 cnfball2_output_pla[0x20] = // first half was dumped electronically 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x40, 0x01, 0x08, 0x02, 0x04, 0x00, - // rest is unknown + // rest is unused, game only outputs with status bit clear 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -2972,8 +2921,6 @@ public: DECLARE_WRITE16_MEMBER(write_r); DECLARE_WRITE16_MEMBER(write_o); DECLARE_READ8_MEMBER(read_k); - - DECLARE_INPUT_CHANGED_MEMBER(reset_button); void eleciq(machine_config &config); }; @@ -3056,15 +3003,9 @@ static INPUT_PORTS_START( eleciq ) PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("RESET") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, eleciq_state, reset_button, nullptr) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, reset_button, nullptr) INPUT_PORTS_END -INPUT_CHANGED_MEMBER(eleciq_state::reset_button) -{ - // reset button is directly wired to TMS1000 INIT pin - m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); -} - void eleciq_state::eleciq(machine_config &config) { /* basic machine hardware */ @@ -4374,8 +4315,6 @@ public: DECLARE_WRITE16_MEMBER(write_r); DECLARE_WRITE16_MEMBER(write_o); DECLARE_READ8_MEMBER(read_k); - - DECLARE_INPUT_CHANGED_MEMBER(reset_button); void f2pbball(machine_config &config); }; @@ -4438,15 +4377,9 @@ static INPUT_PORTS_START( f2pbball ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_COCKTAIL PORT_NAME("P2 Fast") PORT_START("RESET") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("P1 Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, f2pbball_state, reset_button, nullptr) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("P1 Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, reset_button, nullptr) INPUT_PORTS_END -INPUT_CHANGED_MEMBER(f2pbball_state::reset_button) -{ - // reset button is directly wired to TMS1000 INIT pin - m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); -} - void f2pbball_state::f2pbball(machine_config &config) { /* basic machine hardware */ @@ -4728,7 +4661,7 @@ static INPUT_PORTS_START( gpoker ) PORT_START("IN.3") // R3 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_D) PORT_NAME("9/Deal") // DL, shares pad with 9 + PORT_BIT( 0x02, 0x02, IPT_CUSTOM ) PORT_CONDITION("FAKE", 0x03, NOTEQUALS, 0x00) // 9/DL PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("Clear Entry") // CE @@ -4746,6 +4679,10 @@ static INPUT_PORTS_START( gpoker ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("Total") // T PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("Bet") // BT + + PORT_START("FAKE") // 9/DL are electronically the same button + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("Deal") // DL INPUT_PORTS_END void gpoker_state::gpoker(machine_config &config) @@ -4827,7 +4764,7 @@ WRITE16_MEMBER(gjackpot_state::write_r) DB] SP] [1] [2] [3] [DS] [DR] BT] HT] - [10/1] [T] [MD [CH [AC] + [10/0] [T] [MD [CH [AC] GO] ST] */ @@ -5890,23 +5827,13 @@ static INPUT_PORTS_START( elecbowl ) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) // 2 players sw? INPUT_PORTS_END -// output PLA is not decapped +// output PLA is not decapped, this was made by hand static const u16 elecbowl_output_pla[0x20] = { - lA+lB+lC+lD+lE+lF, // 0 - lB+lC, // 1 - lA+lB+lG+lE+lD, // 2 - lA+lB+lG+lC+lD, // 3 - lF+lB+lG+lC, // 4 - lA+lF+lG+lC+lD, // 5 - lA+lF+lG+lC+lD+lE, // 6 - lA+lB+lC, // 7 - lA+lB+lC+lD+lE+lF+lG, // 8 - lA+lB+lG+lF+lC+lD, // 9 - - 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - 0,1,2,3,4,5,6,7, // lamp muxes select - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f + 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, // 0-9 + 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, // ? + 0, 1, 2, 3, 4, 5, 6, 7, // lamp muxes select + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f // ? }; void elecbowl_state::elecbowl(machine_config &config) @@ -8879,7 +8806,7 @@ static INPUT_PORTS_START( tandy12 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Button 5") INPUT_PORTS_END -// output PLA is not decapped +// output PLA is not decapped, this was made by hand static const u16 tandy12_output_pla[0x20] = { // these are certain @@ -10033,7 +9960,7 @@ void phpball_state::phpball(machine_config &config) m_maincpu->o().set(FUNC(phpball_state::write_o)); TIMER(config, "display_decay").configure_periodic(FUNC(hh_tms1k_state::display_decay_tick), attotime::from_msec(1)); - config.set_default_layout(layout_hh_tms1k_test); + config.set_default_layout(layout_phpball); /* sound hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/hh_ucom4.cpp b/src/mame/drivers/hh_ucom4.cpp index 755575bb98f..89957e215f2 100644 --- a/src/mame/drivers/hh_ucom4.cpp +++ b/src/mame/drivers/hh_ucom4.cpp @@ -35,17 +35,19 @@ @054 uPD552C 1980, Epoch Invader From Space @031 uPD553C 1979, Bambino Superstar Football (ET-03) - @049 uPD553C 1979, Mego Mini-Vid Break Free + @049 uPD553C 1979, Mego Mini-Vid: Break Free @055 uPD553C 1980, Bambino Space Laser Fight (ET-12) *073 uPD553C 1980, Sony ST-J75 FM Stereo Tuner @080 uPD553C 1980, Epoch Electronic Football *102 uPD553C 1981, Bandai Block Out @153 uPD553C 1981, Epoch Galaxy II @160 uPD553C 1982, Tomy Pac Man (TN-08) + *167 uPD553C 1982, Sony SL models (betamax) (have dump) @170 uPD553C 1982, Bandai Crazy Climber @192 uPD553C 1982, Tomy Scramble (TN-10) @202 uPD553C 1982, Epoch Astro Command @206 uPD553C 1982, Epoch Dracula + *207 uPD553C 1982, Sony SL-J30 (tape/cd deck) @209 uPD553C 1982, Tomy Caveman (TN-12) @258 uPD553C 1984, Tomy Alien Chase (TN-16) *296 uPD553C 1984, Epoch Computer Beam Gun Professional @@ -76,13 +78,16 @@ TODO: #include "screen.h" #include "speaker.h" -// internal artwork +// internal artwork (complete) #include "efball.lh" #include "grobot9.lh" // clickable #include "mcompgin.lh" #include "mvbfree.lh" #include "tactix.lh" // clickable +// internal artwork (bezel overlay) +#include "tmtennis.lh" + //#include "hh_ucom4_test.lh" // common test-layout - no svg artwork(yet), use external artwork @@ -1864,7 +1869,7 @@ ROM_END /*************************************************************************** - Mego Mini-Vid Break Free (manufactured in Japan) + Mego Mini-Vid: Break Free (manufactured in Japan) * PCB label Mego 79 rev F * NEC uCOM-43 MCU, label D553C 049 * cyan VFD display Futaba DM-4.5 91 @@ -2343,7 +2348,9 @@ void tmtennis_state::tmtennis(machine_config &config) screen.set_refresh_hz(50); screen.set_size(1920, 417); screen.set_visarea(0, 1920-1, 0, 417-1); + TIMER(config, "display_decay").configure_periodic(FUNC(hh_ucom4_state::display_decay_tick), attotime::from_msec(1)); + config.set_default_layout(layout_tmtennis); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2876,7 +2883,7 @@ CONS( 1982, edracula, 0, 0, edracula, edracula, edracula_state, empty_ini CONS( 1979, mcompgin, 0, 0, mcompgin, mcompgin, mcompgin_state, empty_init, "Mattel", "Computer Gin", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -CONS( 1979, mvbfree, 0, 0, mvbfree, mvbfree, mvbfree_state, empty_init, "Mego", "Mini-Vid Break Free", MACHINE_SUPPORTS_SAVE ) +CONS( 1979, mvbfree, 0, 0, mvbfree, mvbfree, mvbfree_state, empty_init, "Mego", "Mini-Vid: Break Free", MACHINE_SUPPORTS_SAVE ) CONS( 1980, grobot9, 0, 0, grobot9, grobot9, grobot9_state, empty_init, "Takatoku Toys", "Game Robot 9", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // some of the minigames: *** diff --git a/src/mame/drivers/hideseek.cpp b/src/mame/drivers/hideseek.cpp index fd85859aee7..8703174c3c3 100644 --- a/src/mame/drivers/hideseek.cpp +++ b/src/mame/drivers/hideseek.cpp @@ -2,7 +2,7 @@ // copyright-holders:Guru /* Hide & Seek -the AG-2 AX51201 should be the follow-up to the AG-1 AX51101 in gunpey.c +the AG-2 AX51201 should be the follow-up to the AG-1 AX51101 in gunpey.cpp AS: Current ROM code barely contains some valid SH-2 opcodes but not enough for a HD64F7045F28. i.e. It doesn't contain VBR set-up, valid irq routines, @@ -103,21 +103,21 @@ void hideseek_state::hideseek_palette(palette_device &palette) const -MACHINE_CONFIG_START(hideseek_state::hideseek) - +void hideseek_state::hideseek(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SH2, 7372800 * 4 ) - MCFG_DEVICE_PROGRAM_MAP(mem_map) + SH2(config, m_maincpu, 7372800 * 4); + m_maincpu->set_addrmap(AS_PROGRAM, &hideseek_state::mem_map); // TIMER(config, "scantimer").configure_scanline(FUNC(hideseek_state::hideseek_scanline), "screen", 0, 1); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(hideseek_state, screen_update_hideseek) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(hideseek_state::screen_update_hideseek)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(hideseek_state::hideseek_palette), 0x10000); GFXDECODE(config, "gfxdecode", "palette", gfx_hideseek); @@ -126,7 +126,7 @@ MACHINE_CONFIG_START(hideseek_state::hideseek) SPEAKER(config, "rspeaker").front_right(); /* sound : M9810 */ -MACHINE_CONFIG_END +} ROM_START( hideseek ) diff --git a/src/mame/drivers/higemaru.cpp b/src/mame/drivers/higemaru.cpp index ba32983ef19..75c6cc4f052 100644 --- a/src/mame/drivers/higemaru.cpp +++ b/src/mame/drivers/higemaru.cpp @@ -163,21 +163,21 @@ static GFXDECODE_START( gfx_higemaru ) GFXDECODE_END -MACHINE_CONFIG_START(higemaru_state::higemaru) - +void higemaru_state::higemaru(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/4) /* 3 MHz Sharp LH0080A Z80A-CPU-D */ - MCFG_DEVICE_PROGRAM_MAP(higemaru_map) + Z80(config, m_maincpu, XTAL(12'000'000)/4); /* 3 MHz Sharp LH0080A Z80A-CPU-D */ + m_maincpu->set_addrmap(AS_PROGRAM, &higemaru_state::higemaru_map); TIMER(config, "scantimer").configure_scanline(FUNC(higemaru_state::higemaru_scanline), "screen", 0, 1); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(higemaru_state, screen_update_higemaru) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(higemaru_state::screen_update_higemaru)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_higemaru); @@ -189,7 +189,7 @@ MACHINE_CONFIG_START(higemaru_state::higemaru) AY8910(config, "ay1", XTAL(12'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.25); AY8910(config, "ay2", XTAL(12'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/highvdeo.cpp b/src/mame/drivers/highvdeo.cpp index 365b5f9385c..ccce0c6d0c9 100644 --- a/src/mame/drivers/highvdeo.cpp +++ b/src/mame/drivers/highvdeo.cpp @@ -1219,20 +1219,21 @@ void highvdeo_state::ramdac_map(address_map &map) } -MACHINE_CONFIG_START(highvdeo_state::tv_vcf) - MCFG_DEVICE_ADD("maincpu", V30, XTAL(12'000'000)/2 ) // ? - MCFG_DEVICE_PROGRAM_MAP(tv_vcf_map) - MCFG_DEVICE_IO_MAP(tv_vcf_io) +void highvdeo_state::tv_vcf(machine_config &config) +{ + V30(config, m_maincpu, XTAL(12'000'000)/2); // ? + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::tv_vcf_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::tv_vcf_io); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(400, 300) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) - MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_tourvisn) - MCFG_SCREEN_VBLANK_CALLBACK(ASSERTLINE("maincpu", INPUT_LINE_NMI)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(400, 300); + screen.set_visarea(0, 320-1, 0, 200-1); + screen.set_screen_update(FUNC(highvdeo_state::screen_update_tourvisn)); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI, ASSERT_LINE); PALETTE(config, m_palette).set_entries(0x100); ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, m_palette)); @@ -1242,144 +1243,141 @@ MACHINE_CONFIG_START(highvdeo_state::tv_vcf) SPEAKER(config, "mono").front_center(); //OkiM6376 - MCFG_DEVICE_ADD("oki", OKIM6376, XTAL(12'000'000)/2/2/20)//Guess, gives approx. same sample rate as previous emulation - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6376(config, m_okim6376, XTAL(12'000'000)/2/2/20).add_route(ALL_OUTPUTS, "mono", 1.0); //Guess, gives approx. same sample rate as previous emulation +} -MACHINE_CONFIG_START(highvdeo_state::tv_ncf) +void highvdeo_state::tv_ncf(machine_config &config) +{ tv_vcf(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(tv_ncf_map) - MCFG_DEVICE_IO_MAP(tv_ncf_io) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::tv_ncf_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::tv_ncf_io); +} -MACHINE_CONFIG_START(highvdeo_state::nyjoker) +void highvdeo_state::nyjoker(machine_config &config) +{ tv_vcf(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(nyjoker_map) - MCFG_DEVICE_IO_MAP(nyjoker_io) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::nyjoker_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::nyjoker_io); +} -MACHINE_CONFIG_START(highvdeo_state::tv_tcf) +void highvdeo_state::tv_tcf(machine_config &config) +{ tv_vcf(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(tv_tcf_map) - MCFG_DEVICE_IO_MAP(tv_tcf_io) + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::tv_tcf_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::tv_tcf_io); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1) + subdevice<screen_device>("screen")->set_visarea(0, 400-1, 0, 300-1); m_palette->set_format(palette_device::RGB_565, 0x100); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(highvdeo_state::newmcard) +void highvdeo_state::newmcard(machine_config &config) +{ tv_tcf(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(newmcard_map) - MCFG_DEVICE_IO_MAP(newmcard_io) + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::newmcard_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::newmcard_io); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) -MACHINE_CONFIG_END + subdevice<screen_device>("screen")->set_visarea(0, 320-1, 0, 200-1); +} -MACHINE_CONFIG_START(highvdeo_state::record) +void highvdeo_state::record(machine_config &config) +{ newmcard(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(record_io) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::record_io); +} -MACHINE_CONFIG_START(highvdeo_state::ciclone) +void highvdeo_state::ciclone(machine_config &config) +{ tv_tcf(config); - config.device_remove("maincpu"); - - MCFG_DEVICE_ADD("maincpu", I80186, 20000000 ) // ? - MCFG_DEVICE_PROGRAM_MAP(tv_tcf_map) - MCFG_DEVICE_IO_MAP(ciclone_io) -MACHINE_CONFIG_END + I80186(config.replace(), m_maincpu, 20000000); // ? + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::tv_tcf_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::ciclone_io); +} -MACHINE_CONFIG_START(highvdeo_state::brasil) - MCFG_DEVICE_ADD("maincpu", I80186, 20000000 ) // fashion doesn't like 20/2 Mhz - MCFG_DEVICE_PROGRAM_MAP(brasil_map) - MCFG_DEVICE_IO_MAP(brasil_io) +void highvdeo_state::brasil(machine_config &config) +{ + I80186(config, m_maincpu, 20000000); // fashion doesn't like 20/2 Mhz + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::brasil_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::brasil_io); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(400, 300) - MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1) - MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_brasil) - MCFG_SCREEN_VBLANK_CALLBACK(ASSERTLINE("maincpu", INPUT_LINE_NMI)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(400, 300); + screen.set_visarea(0, 400-1, 0, 300-1); + screen.set_screen_update(FUNC(highvdeo_state::screen_update_brasil)); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI, ASSERT_LINE); PALETTE(config, m_palette, palette_device::RGB_565); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6376, XTAL(12'000'000)/2/2/20)//Guess, gives same sample rate as previous emulation - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6376(config, m_okim6376, XTAL(12'000'000)/2/2/20).add_route(ALL_OUTPUTS, "mono", 1.0); //Guess, gives same sample rate as previous emulation +} -MACHINE_CONFIG_START(highvdeo_state::fashion) +void highvdeo_state::fashion(machine_config &config) +{ brasil(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(fashion_io) -MACHINE_CONFIG_END -MACHINE_CONFIG_START(highvdeo_state::grancapi) - MCFG_DEVICE_ADD("maincpu", I80186, 20000000 ) - MCFG_DEVICE_PROGRAM_MAP(brasil_map) - MCFG_DEVICE_IO_MAP(grancapi_io) + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::fashion_io); +} + +void highvdeo_state::grancapi(machine_config &config) +{ + I80186(config, m_maincpu, 20000000); + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::brasil_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::grancapi_io); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(400, 300) - MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1) - MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_brasil) - MCFG_SCREEN_VBLANK_CALLBACK(ASSERTLINE("maincpu", INPUT_LINE_NMI)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(400, 300); + screen.set_visarea(0, 400-1, 0, 300-1); + screen.set_screen_update(FUNC(highvdeo_state::screen_update_brasil)); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI, ASSERT_LINE); PALETTE(config, m_palette, palette_device::RGB_565); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6376, XTAL(12'000'000)/2/2/20)//Guess, gives same sample rate as previous emulation - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6376(config, m_okim6376, XTAL(12'000'000)/2/2/20).add_route(ALL_OUTPUTS, "mono", 1.0); //Guess, gives same sample rate as previous emulation +} -MACHINE_CONFIG_START(highvdeo_state::magicbom) - MCFG_DEVICE_ADD("maincpu", I80186, 20000000 ) - MCFG_DEVICE_PROGRAM_MAP(brasil_map) - MCFG_DEVICE_IO_MAP(magicbom_io) +void highvdeo_state::magicbom(machine_config &config) +{ + I80186(config, m_maincpu, 20000000); + m_maincpu->set_addrmap(AS_PROGRAM, &highvdeo_state::brasil_map); + m_maincpu->set_addrmap(AS_IO, &highvdeo_state::magicbom_io); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(400, 300) - MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1) - MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_brasil) - MCFG_SCREEN_VBLANK_CALLBACK(ASSERTLINE("maincpu", INPUT_LINE_NMI)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(400, 300); + screen.set_visarea(0, 400-1, 0, 300-1); + screen.set_screen_update(FUNC(highvdeo_state::screen_update_brasil)); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI, ASSERT_LINE); PALETTE(config, m_palette, palette_device::RGB_565); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6376, XTAL(12'000'000)/2/2/20)//Guess, gives same sample rate as previous emulation - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6376(config, m_okim6376, XTAL(12'000'000)/2/2/20).add_route(ALL_OUTPUTS, "mono", 1.0); //Guess, gives same sample rate as previous emulation +} ROM_START( tour4000 ) diff --git a/src/mame/drivers/hitme.cpp b/src/mame/drivers/hitme.cpp index a0aef7850e8..85f00383a99 100644 --- a/src/mame/drivers/hitme.cpp +++ b/src/mame/drivers/hitme.cpp @@ -314,22 +314,22 @@ void hitme_state::machine_reset() m_timeout_time = attotime::zero; } -MACHINE_CONFIG_START(hitme_state::hitme) - +void hitme_state::hitme(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080, MASTER_CLOCK/16) - MCFG_DEVICE_PROGRAM_MAP(hitme_map) - MCFG_DEVICE_IO_MAP(hitme_portmap) + I8080(config, m_maincpu, MASTER_CLOCK/16); + m_maincpu->set_addrmap(AS_PROGRAM, &hitme_state::hitme_map); + m_maincpu->set_addrmap(AS_IO, &hitme_state::hitme_portmap); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 19*10) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 19*10-1) - MCFG_SCREEN_UPDATE_DRIVER(hitme_state, screen_update_hitme) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(40*8, 19*10); + m_screen->set_visarea(0*8, 40*8-1, 0*8, 19*10-1); + m_screen->set_screen_update(FUNC(hitme_state::screen_update_hitme)); + m_screen->set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_hitme); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -337,7 +337,7 @@ MACHINE_CONFIG_START(hitme_state::hitme) /* sound hardware */ SPEAKER(config, "mono").front_center(); DISCRETE(config, m_discrete, hitme_discrete).add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} @@ -348,19 +348,19 @@ MACHINE_CONFIG_END Barricade or is the resolution set by a dip switch? */ -MACHINE_CONFIG_START(hitme_state::barricad) +void hitme_state::barricad(machine_config &config) +{ hitme(config); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_SIZE(32*8, 24*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1) - MCFG_SCREEN_UPDATE_DRIVER(hitme_state, screen_update_barricad) + m_screen->set_size(32*8, 24*8); + m_screen->set_visarea(0*8, 32*8-1, 0*8, 24*8-1); + m_screen->set_screen_update(FUNC(hitme_state::screen_update_barricad)); m_gfxdecode->set_info(gfx_barricad); MCFG_VIDEO_START_OVERRIDE(hitme_state,barricad) -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/holeland.cpp b/src/mame/drivers/holeland.cpp index 8138b434bc7..1be272f5e98 100644 --- a/src/mame/drivers/holeland.cpp +++ b/src/mame/drivers/holeland.cpp @@ -274,13 +274,13 @@ static GFXDECODE_START( gfx_crzrally ) GFXDECODE_END -MACHINE_CONFIG_START(holeland_state::holeland) - +void holeland_state::holeland(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 3355700) /* measured 298ns on PCB */ - MCFG_DEVICE_PROGRAM_MAP(holeland_map) - MCFG_DEVICE_IO_MAP(io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", holeland_state, irq0_line_hold) + Z80(config, m_maincpu, 3355700); /* measured 298ns on PCB */ + m_maincpu->set_addrmap(AS_PROGRAM, &holeland_state::holeland_map); + m_maincpu->set_addrmap(AS_IO, &holeland_state::io_map); + m_maincpu->set_vblank_int("screen", FUNC(holeland_state::irq0_line_hold)); LS259(config, m_latch); // 3J m_latch->parallel_out_cb().set(FUNC(holeland_state::pal_offs_w)).mask(0x03); @@ -291,13 +291,13 @@ MACHINE_CONFIG_START(holeland_state::holeland) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 2*16, 30*16-1) - MCFG_SCREEN_UPDATE_DRIVER(holeland_state, screen_update_holeland) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*16, 32*16); + screen.set_visarea(0*16, 32*16-1, 2*16, 30*16-1); + screen.set_screen_update(FUNC(holeland_state::screen_update_holeland)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_holeland); PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256); @@ -319,7 +319,7 @@ MACHINE_CONFIG_START(holeland_state::holeland) sp0256_device &speech(SP0256(config, "speech", 3355700)); /* measured 298ns on PCB */ speech.data_request_callback().set_inputline("maincpu", INPUT_LINE_NMI); speech.add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} /* @@ -355,13 +355,13 @@ Notes: */ -MACHINE_CONFIG_START(holeland_state::crzrally) - +void holeland_state::crzrally(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 20000000/4) /* 5 MHz */ - MCFG_DEVICE_PROGRAM_MAP(crzrally_map) - MCFG_DEVICE_IO_MAP(io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", holeland_state, irq0_line_hold) + Z80(config, m_maincpu, 20000000/4); /* 5 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &holeland_state::crzrally_map); + m_maincpu->set_addrmap(AS_IO, &holeland_state::io_map); + m_maincpu->set_vblank_int("screen", FUNC(holeland_state::irq0_line_hold)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); @@ -372,13 +372,13 @@ MACHINE_CONFIG_START(holeland_state::crzrally) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(holeland_state, screen_update_crzrally) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(holeland_state::screen_update_crzrally)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_crzrally); PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256); @@ -396,7 +396,7 @@ MACHINE_CONFIG_START(holeland_state::crzrally) ay2.port_a_read_callback().set_ioport("DSW1"); ay2.port_b_read_callback().set_ioport("DSW2"); ay2.add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/homelab.cpp b/src/mame/drivers/homelab.cpp index cb5aa1c3e46..9e2165554f0 100644 --- a/src/mame/drivers/homelab.cpp +++ b/src/mame/drivers/homelab.cpp @@ -752,9 +752,9 @@ QUICKLOAD_LOAD_MEMBER( homelab_state,homelab) /* Machine driver */ MACHINE_CONFIG_START(homelab_state::homelab) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(8'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(homelab2_mem) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", homelab_state, homelab_frame) + Z80(config, m_maincpu, XTAL(8'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &homelab_state::homelab2_mem); + m_maincpu->set_vblank_int("screen", FUNC(homelab_state::homelab_frame)); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER, rgb_t::green())); @@ -784,9 +784,9 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(homelab_state::homelab3) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000) / 4) - MCFG_DEVICE_PROGRAM_MAP(homelab3_mem) - MCFG_DEVICE_IO_MAP(homelab3_io) + Z80(config, m_maincpu, XTAL(12'000'000) / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &homelab_state::homelab3_mem); + m_maincpu->set_addrmap(AS_IO, &homelab_state::homelab3_io); MCFG_MACHINE_RESET_OVERRIDE(homelab_state,homelab3) /* video hardware */ @@ -817,9 +817,9 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(homelab_state::brailab4) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000) / 4) - MCFG_DEVICE_PROGRAM_MAP(brailab4_mem) - MCFG_DEVICE_IO_MAP(brailab4_io) + Z80(config, m_maincpu, XTAL(12'000'000) / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &homelab_state::brailab4_mem); + m_maincpu->set_addrmap(AS_IO, &homelab_state::brailab4_io); MCFG_MACHINE_RESET_OVERRIDE(homelab_state,brailab4) /* video hardware */ @@ -844,8 +844,7 @@ MACHINE_CONFIG_START(homelab_state::brailab4) WAVE(config, "wave", m_cass).add_route(ALL_OUTPUTS, "speaker", 0.25); - MCFG_DEVICE_ADD("mea8000", MEA8000, 3840000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) + MEA8000(config, "mea8000", 3840000).add_route(ALL_OUTPUTS, "speaker", 1.0); CASSETTE(config, m_cass); MCFG_QUICKLOAD_ADD("quickload", homelab_state, homelab, "htp", attotime::from_seconds(18)) diff --git a/src/mame/drivers/homez80.cpp b/src/mame/drivers/homez80.cpp index 2bb6b6fd0b1..afe9586e22d 100644 --- a/src/mame/drivers/homez80.cpp +++ b/src/mame/drivers/homez80.cpp @@ -287,25 +287,26 @@ INTERRUPT_GEN_MEMBER(homez80_state::homez80_interrupt) m_irq ^= 1; } -MACHINE_CONFIG_START(homez80_state::homez80) +void homez80_state::homez80(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(8'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(homez80_mem) - MCFG_DEVICE_IO_MAP(homez80_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(homez80_state, homez80_interrupt, 50) + Z80(config, m_maincpu, XTAL(8'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &homez80_state::homez80_mem); + m_maincpu->set_addrmap(AS_IO, &homez80_state::homez80_io); + m_maincpu->set_periodic_int(FUNC(homez80_state::homez80_interrupt), attotime::from_hz(50)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(homez80_state, screen_update) - MCFG_SCREEN_SIZE(344, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0, 344-1, 0, 32*8-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(homez80_state::screen_update)); + screen.set_size(344, 32*8); + screen.set_visarea(0, 344-1, 0, 32*8-1); + screen.set_palette("palette"); PALETTE(config, "palette", palette_device::MONOCHROME); GFXDECODE(config, "gfxdecode", "palette", gfx_homez80); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( homez80 ) diff --git a/src/mame/drivers/horizon.cpp b/src/mame/drivers/horizon.cpp index eb7f424f389..b34eabc09a6 100644 --- a/src/mame/drivers/horizon.cpp +++ b/src/mame/drivers/horizon.cpp @@ -179,7 +179,7 @@ static void horizon_s100_cards(device_slot_interface &device) //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( horizon ) +// machine_config( horizon ) //------------------------------------------------- void horizon_state::horizon(machine_config &config) diff --git a/src/mame/drivers/hornet.cpp b/src/mame/drivers/hornet.cpp index 115a1b4a689..9416abc126b 100644 --- a/src/mame/drivers/hornet.cpp +++ b/src/mame/drivers/hornet.cpp @@ -1064,8 +1064,8 @@ double hornet_state::adc12138_input_callback(uint8_t input) return (double)(value) / 2047.0; } -MACHINE_CONFIG_START(hornet_state::hornet) - +void hornet_state::hornet(machine_config &config) +{ /* basic machine hardware */ PPC403GA(config, m_maincpu, XTAL(64'000'000) / 2); /* PowerPC 403GA 32MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &hornet_state::hornet_map); @@ -1125,9 +1125,10 @@ MACHINE_CONFIG_START(hornet_state::hornet) KONPPC(config, m_konppc, 0); m_konppc->set_num_boards(1); m_konppc->set_cbboard_type(konppc_device::CGBOARD_TYPE_HORNET); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hornet_state::hornet_2board) +void hornet_state::hornet_2board(machine_config &config) +{ hornet(config); ADSP21062(config, m_dsp2, XTAL(36'000'000)); @@ -1170,16 +1171,18 @@ MACHINE_CONFIG_START(hornet_state::hornet_2board) rscreen.set_screen_update(FUNC(hornet_state::screen_update_rscreen)); m_konppc->set_num_boards(2); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hornet_state::terabrst) +void hornet_state::terabrst(machine_config &config) +{ hornet(config); M68000(config, m_gn680, XTAL(32'000'000) / 2); /* 16MHz */ m_gn680->set_addrmap(AS_PROGRAM, &hornet_state::gn680_memmap); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hornet_state::hornet_2board_v2) +void hornet_state::hornet_2board_v2(machine_config &config) +{ hornet_2board(config); VOODOO_2(config.replace(), m_voodoo[0], STD_VOODOO_2_CLOCK); @@ -1195,7 +1198,7 @@ MACHINE_CONFIG_START(hornet_state::hornet_2board_v2) m_voodoo[1]->set_screen_tag("rscreen"); m_voodoo[1]->set_cpu_tag("dsp2"); // ?? m_voodoo[1]->vblank_callback().set(FUNC(hornet_state::voodoo_vblank_1)); -MACHINE_CONFIG_END +} void hornet_state::sscope2(machine_config &config) { diff --git a/src/mame/drivers/hotblock.cpp b/src/mame/drivers/hotblock.cpp index 7c63d22dc6b..c053f266313 100644 --- a/src/mame/drivers/hotblock.cpp +++ b/src/mame/drivers/hotblock.cpp @@ -207,21 +207,21 @@ static INPUT_PORTS_START( hotblock ) INPUT_PORTS_END -MACHINE_CONFIG_START(hotblock_state::hotblock) - +void hotblock_state::hotblock(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8088, 24_MHz_XTAL / 3) // Unknown clock - MCFG_DEVICE_PROGRAM_MAP(hotblock_map) - MCFG_DEVICE_IO_MAP(hotblock_io) + I8088(config, m_maincpu, 24_MHz_XTAL / 3); // Unknown clock + m_maincpu->set_addrmap(AS_PROGRAM, &hotblock_state::hotblock_map); + m_maincpu->set_addrmap(AS_IO, &hotblock_state::hotblock_io); // I2CMEM(config, m_i2cmem, 0).set_page_size(16).set_data_size(0x200); // 24C04 /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(24_MHz_XTAL / 3, 512, 0, 320, 312, 0, 200) // 15.625 kHz horizontal??? - MCFG_SCREEN_UPDATE_DRIVER(hotblock_state, screen_update) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) // right? + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(24_MHz_XTAL / 3, 512, 0, 320, 312, 0, 200); // 15.625 kHz horizontal??? + screen.set_screen_update(FUNC(hotblock_state::screen_update)); + screen.set_palette(m_palette); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); // right? PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x200/2); @@ -232,7 +232,7 @@ MACHINE_CONFIG_START(hotblock_state::hotblock) aysnd.port_a_read_callback().set_ioport("P1"); aysnd.port_b_read_callback().set_ioport("P2"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} ROM_START( hotblock ) ROM_REGION( 0x100000, "maincpu", 0 ) diff --git a/src/mame/drivers/hotstuff.cpp b/src/mame/drivers/hotstuff.cpp index 6bde0ec44ac..e47e5c70e9c 100644 --- a/src/mame/drivers/hotstuff.cpp +++ b/src/mame/drivers/hotstuff.cpp @@ -101,19 +101,19 @@ void hotstuff_state::hotstuff_map(address_map &map) static INPUT_PORTS_START( hotstuff ) INPUT_PORTS_END -MACHINE_CONFIG_START(hotstuff_state::hotstuff) - - MCFG_DEVICE_ADD("maincpu", M68000, 16000000) - MCFG_DEVICE_PROGRAM_MAP(hotstuff_map) +void hotstuff_state::hotstuff(machine_config &config) +{ + M68000(config, m_maincpu, 16000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hotstuff_state::hotstuff_map); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(128*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA((0x10*4)+8, 101*8-1, 0*8, 33*8-1) - MCFG_SCREEN_UPDATE_DRIVER(hotstuff_state, screen_update_hotstuff) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(128*8, 64*8); + screen.set_visarea((0x10*4)+8, 101*8-1, 0*8, 33*8-1); + screen.set_screen_update(FUNC(hotstuff_state::screen_update_hotstuff)); - MCFG_PALETTE_ADD("palette", 0x200) + PALETTE(config, "palette").set_entries(0x200); scc8530_device& scc1(SCC8530N(config, "scc1", 4915200)); scc1.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_4); @@ -123,7 +123,7 @@ MACHINE_CONFIG_START(hotstuff_state::hotstuff) MC146818(config, m_rtc, XTAL(32'768)); m_rtc->irq().set_inputline("maincpu", M68K_IRQ_1); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/hp16500.cpp b/src/mame/drivers/hp16500.cpp index f3bc942d289..4ed4e5bd469 100644 --- a/src/mame/drivers/hp16500.cpp +++ b/src/mame/drivers/hp16500.cpp @@ -413,14 +413,15 @@ uint32_t hp16500_state::screen_update_hp16500(screen_device &screen, bitmap_rgb3 return 0; } -MACHINE_CONFIG_START(hp16500_state::hp1650) +void hp16500_state::hp1650(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 10000000) - MCFG_DEVICE_PROGRAM_MAP(hp1650_map) + M68000(config, m_maincpu, 10000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp16500_state::hp1650_map); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(25000000, 0x330, 0, 0x250, 0x198, 0, 0x180 ) - MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update ) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(25000000, 0x330, 0, 0x250, 0x198, 0, 0x180); + screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); mc6845_device &crtc(MC6845(config, "crtc", 25000000/9)); crtc.set_screen("screen"); @@ -429,20 +430,21 @@ MACHINE_CONFIG_START(hp16500_state::hp1650) crtc.set_update_row_callback(FUNC(hp16500_state::crtc_update_row_1650), this); crtc.out_vsync_callback().set(FUNC(hp16500_state::vsync_changed)); - MCFG_DEVICE_ADD("epci", MC2661, 5000000) + MC2661(config, "epci", 5000000); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hp16500_state::hp1651) +void hp16500_state::hp1651(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 10000000) - MCFG_DEVICE_PROGRAM_MAP(hp1651_map) + M68000(config, m_maincpu, 10000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp16500_state::hp1651_map); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(25000000, 0x330, 0, 0x250, 0x198, 0, 0x180 ) - MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update ) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(25000000, 0x330, 0, 0x250, 0x198, 0, 0x180); + screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); mc6845_device &crtc(MC6845(config, "crtc", 25000000/9)); crtc.set_screen("screen"); @@ -451,20 +453,21 @@ MACHINE_CONFIG_START(hp16500_state::hp1651) crtc.set_update_row_callback(FUNC(hp16500_state::crtc_update_row_1650), this); crtc.out_vsync_callback().set(FUNC(hp16500_state::vsync_changed)); - MCFG_DEVICE_ADD("epci", MC2661, 5000000) + MC2661(config, "epci", 5000000); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hp16500_state::hp16500a) +void hp16500_state::hp16500a(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 10000000) - MCFG_DEVICE_PROGRAM_MAP(hp16500a_map) + M68000(config, m_maincpu, 10000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp16500_state::hp16500a_map); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(25000000, 0x320, 0, 0x240, 0x19c, 0, 0x170 ) - MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update ) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(25000000, 0x320, 0, 0x240, 0x19c, 0, 0x170); + screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); mc6845_device &crtc(MC6845(config, "crtc", 25000000/9)); crtc.set_screen("screen"); @@ -475,7 +478,7 @@ MACHINE_CONFIG_START(hp16500_state::hp16500a) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); -MACHINE_CONFIG_END +} void hp16500_state::hp16500b(machine_config &config) { diff --git a/src/mame/drivers/hp2100.cpp b/src/mame/drivers/hp2100.cpp index 4a4457f187e..2ea6920c822 100644 --- a/src/mame/drivers/hp2100.cpp +++ b/src/mame/drivers/hp2100.cpp @@ -249,8 +249,9 @@ private: static INPUT_PORTS_START( hp2100 ) INPUT_PORTS_END -MACHINE_CONFIG_START(hp2100_state::hp2100) -MACHINE_CONFIG_END +void hp2100_state::hp2100(machine_config &config) +{ +} ROM_START( hp2100 ) ROM_REGION( 0x0400, "maincpu", 0 ) diff --git a/src/mame/drivers/hp2640.cpp b/src/mame/drivers/hp2640.cpp index 816d403b9f6..ef357b12e3e 100644 --- a/src/mame/drivers/hp2640.cpp +++ b/src/mame/drivers/hp2640.cpp @@ -966,11 +966,12 @@ void hp2645_state::cpu_io_map(address_map &map) map(0x00, 0xff).w(FUNC(hp2645_state::mode_byte_w)); } -MACHINE_CONFIG_START(hp2645_state::hp2645) - MCFG_DEVICE_ADD("cpu" , I8080A , SYS_CLOCK / 2) - MCFG_DEVICE_PROGRAM_MAP(cpu_mem_map) - MCFG_DEVICE_IO_MAP(cpu_io_map) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(hp2645_state , irq_callback) +void hp2645_state::hp2645(machine_config &config) +{ + I8080A(config, m_cpu, SYS_CLOCK / 2); + m_cpu->set_addrmap(AS_PROGRAM, &hp2645_state::cpu_mem_map); + m_cpu->set_addrmap(AS_IO, &hp2645_state::cpu_io_map); + m_cpu->set_irq_acknowledge_callback(FUNC(hp2645_state::irq_callback)); TIMER(config, m_timer_10ms).configure_generic(FUNC(hp2645_state::timer_10ms_exp)); TIMER(config, m_timer_cursor_blink_inh).configure_generic(FUNC(hp2645_state::timer_cursor_blink_inh)); @@ -1005,8 +1006,7 @@ MACHINE_CONFIG_START(hp2645_state::hp2645) SPEAKER(config, "mono").front_center(); BEEP(config, m_beep, BEEP_FREQUENCY).add_route(ALL_OUTPUTS, "mono", 1.00); TIMER(config, m_timer_beep).configure_generic(FUNC(hp2645_state::timer_beep_exp)); - -MACHINE_CONFIG_END +} ROM_START(hp2645) ROM_REGION(0x5800 , "cpu" , 0) diff --git a/src/mame/drivers/hp49gp.cpp b/src/mame/drivers/hp49gp.cpp index bd88261dcf0..934a7f2a724 100644 --- a/src/mame/drivers/hp49gp.cpp +++ b/src/mame/drivers/hp49gp.cpp @@ -283,18 +283,19 @@ void hp49gp_state::init_hp49gp() lcd_spi_init(); } -MACHINE_CONFIG_START(hp49gp_state::hp49gp) - MCFG_DEVICE_ADD("maincpu", ARM9, 400000000) - MCFG_DEVICE_PROGRAM_MAP(hp49gp_map) +void hp49gp_state::hp49gp(machine_config &config) +{ + ARM9(config, m_maincpu, 400000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp49gp_state::hp49gp_map); - MCFG_PALETTE_ADD("palette", 32768) + PALETTE(config, "palette").set_entries(32768); - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(160, 85) - MCFG_SCREEN_VISIBLE_AREA(0, 131 - 1, 0, 80 - 1) - MCFG_SCREEN_UPDATE_DEVICE("s3c2410", s3c2410_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(160, 85); + screen.set_visarea(0, 131 - 1, 0, 80 - 1); + screen.set_screen_update("s3c2410", FUNC(s3c2410_device::screen_update)); S3C2410(config, m_s3c2410, 12000000); m_s3c2410->set_palette_tag("palette"); @@ -302,7 +303,7 @@ MACHINE_CONFIG_START(hp49gp_state::hp49gp) m_s3c2410->gpio_port_r_callback().set(FUNC(hp49gp_state::s3c2410_gpio_port_r)); m_s3c2410->gpio_port_w_callback().set(FUNC(hp49gp_state::s3c2410_gpio_port_w)); m_s3c2410->set_lcd_flags(S3C24XX_INTERFACE_LCD_REVERSE); -MACHINE_CONFIG_END +} static INPUT_PORTS_START( hp49gp ) PORT_START("ROW1") diff --git a/src/mame/drivers/hp9825.cpp b/src/mame/drivers/hp9825.cpp index 53a180be86b..39c92bbe7cc 100644 --- a/src/mame/drivers/hp9825.cpp +++ b/src/mame/drivers/hp9825.cpp @@ -622,7 +622,8 @@ void hp9825_state::set_dmar_slot(unsigned slot , int state) m_io_sys->set_dmar(uint8_t(sc) , state); } -MACHINE_CONFIG_START(hp9825_state::hp9825_base) +void hp9825_state::hp9825_base(machine_config &config) +{ HP_09825_67907(config , m_cpu , MAIN_CLOCK); // Just guessing... settings borrowed from hp9845 m_cpu->set_rw_cycles(6 , 6); @@ -673,7 +674,7 @@ MACHINE_CONFIG_START(hp9825_state::hp9825_base) } config.set_default_layout(layout_hp9825); -MACHINE_CONFIG_END +} #define IOP_MASK(x) BIT_MASK<ioport_value>((x)) @@ -844,10 +845,11 @@ private: void cpu_mem_map(address_map &map); }; -MACHINE_CONFIG_START(hp9825b_state::hp9825b) +void hp9825b_state::hp9825b(machine_config &config) +{ hp9825_base(config); m_cpu->set_addrmap(AS_PROGRAM , &hp9825b_state::cpu_mem_map); -MACHINE_CONFIG_END +} void hp9825b_state::cpu_mem_map(address_map &map) { @@ -901,12 +903,13 @@ private: bool is_rom(uint16_t addr , uint8_t cycle_type) const; }; -MACHINE_CONFIG_START(hp9825t_state::hp9825t) +void hp9825t_state::hp9825t(machine_config &config) +{ hp9825_base(config); m_cpu->set_addrmap(AS_PROGRAM , &hp9825t_state::cpu_mem_map); m_cpu->stm_cb().set(FUNC(hp9825t_state::stm)); m_cpu->opcode_cb().set(FUNC(hp9825t_state::opcode_fetch)); -MACHINE_CONFIG_END +} void hp9825t_state::machine_start() { diff --git a/src/mame/drivers/hp9845.cpp b/src/mame/drivers/hp9845.cpp index cf8dd47754c..d4f64f10393 100644 --- a/src/mame/drivers/hp9845.cpp +++ b/src/mame/drivers/hp9845.cpp @@ -3532,35 +3532,37 @@ const uint8_t hp9845t_state::m_back_arrow_shape[] = { 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00 }; -MACHINE_CONFIG_START(hp9845_state::hp9845a) - //MCFG_DEVICE_ADD("lpu", HP_5061_3010, XTAL(11'400'000)) - //MCFG_DEVICE_ADD("ppu", HP_5061_3011, XTAL(11'400'000)) +void hp9845_state::hp9845a(machine_config &config) +{ + //HP_5061_3010(config, m_lpu, XTAL(11'400'000)); + //HP_5061_3011(config, m_ppu, XTAL(11'400'000)); // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_UPDATE_DRIVER(hp9845_state, screen_update) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(560, 455) - MCFG_SCREEN_VISIBLE_AREA(0, 560-1, 0, 455-1) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(hp9845_state::screen_update)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size(560, 455); + screen.set_visarea(0, 560-1, 0, 455-1); SOFTWARE_LIST(config, "optrom_list").set_original("hp9845a_rom"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hp9845_state::hp9835a) - //MCFG_DEVICE_ADD("lpu", HP_5061_3001, XTAL(11'400'000)) - //MCFG_DEVICE_ADD("ppu", HP_5061_3001, XTAL(11'400'000)) +void hp9845_state::hp9835a(machine_config &config) +{ + //HP_5061_3001(config, m_lpu, XTAL(11'400'000)); + //HP_5061_301(1config, m_ppu, XTAL(11'400'000)); // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_UPDATE_DRIVER(hp9845_state, screen_update) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(560, 455) - MCFG_SCREEN_VISIBLE_AREA(0, 560-1, 0, 455-1) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(hp9845_state::screen_update)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size(560, 455); + screen.set_visarea(0, 560-1, 0, 455-1); SOFTWARE_LIST(config, "optrom_list").set_original("hp9835a_rom"); -MACHINE_CONFIG_END +} /* Global memory map in blocks of 32 kwords / 64 kbytes each: @@ -3623,7 +3625,8 @@ void hp9845_base_state::ppu_io_map(address_map &map) map(HP_MAKE_IOADDR(T15_PA, 0), HP_MAKE_IOADDR(T15_PA, 3)).rw(m_t15, FUNC(hp_taco_device::reg_r), FUNC(hp_taco_device::reg_w)); } -MACHINE_CONFIG_START(hp9845_base_state::hp9845_base) +void hp9845_base_state::hp9845_base(machine_config &config) +{ HP_5061_3001(config , m_lpu , 5700000); m_lpu->set_addrmap(AS_PROGRAM , &hp9845_base_state::global_mem_map); m_lpu->set_9845_boot_mode(true); @@ -3655,8 +3658,7 @@ MACHINE_CONFIG_START(hp9845_base_state::hp9845_base) // Beeper SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("beeper" , BEEP , KEY_SCAN_OSCILLATOR / 512) - MCFG_SOUND_ROUTE(ALL_OUTPUTS , "mono" , 0.50) + BEEP(config, m_beeper , KEY_SCAN_OSCILLATOR / 512).add_route(ALL_OUTPUTS , "mono" , 0.50); TIMER(config, m_beep_timer).configure_generic(FUNC(hp9845_base_state::beeper_off)); @@ -3674,22 +3676,14 @@ MACHINE_CONFIG_START(hp9845_base_state::hp9845_base) // right-hand side and left-hand side drawers, respectively. // Here we do away with the distinction between LPU & PPU ROMs: in the end they // are visible to both CPUs at the same addresses. - MCFG_DEVICE_ADD("drawer1", HP_OPTROM_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false) - MCFG_DEVICE_ADD("drawer2", HP_OPTROM_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false) - MCFG_DEVICE_ADD("drawer3", HP_OPTROM_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false) - MCFG_DEVICE_ADD("drawer4", HP_OPTROM_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false) - MCFG_DEVICE_ADD("drawer5", HP_OPTROM_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false) - MCFG_DEVICE_ADD("drawer6", HP_OPTROM_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false) - MCFG_DEVICE_ADD("drawer7", HP_OPTROM_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false) - MCFG_DEVICE_ADD("drawer8", HP_OPTROM_SLOT, 0) - MCFG_DEVICE_SLOT_INTERFACE(hp_optrom_slot_devices, NULL, false) + HP_OPTROM_SLOT(config, "drawer1", 0); + HP_OPTROM_SLOT(config, "drawer2", 0); + HP_OPTROM_SLOT(config, "drawer3", 0); + HP_OPTROM_SLOT(config, "drawer4", 0); + HP_OPTROM_SLOT(config, "drawer5", 0); + HP_OPTROM_SLOT(config, "drawer6", 0); + HP_OPTROM_SLOT(config, "drawer7", 0); + HP_OPTROM_SLOT(config, "drawer8", 0); // I/O slots for (unsigned slot = 0; slot < 4; slot++) { @@ -3709,7 +3703,7 @@ MACHINE_CONFIG_START(hp9845_base_state::hp9845_base) prt.irq().set(FUNC(hp9845_base_state::prt_irl_w)); prt.flg().set([this](int state) { m_io_sys->set_flg(PRINTER_PA , state); }); prt.sts().set([this](int state) { m_io_sys->set_sts(PRINTER_PA , state); }); -MACHINE_CONFIG_END +} void hp9845b_state::hp9845b(machine_config &config) { @@ -3728,19 +3722,18 @@ void hp9845b_state::hp9845b(machine_config &config) SOFTWARE_LIST(config, "optrom_list").set_original("hp9845b_rom"); } -MACHINE_CONFIG_START(hp9845c_state::hp9845c) +void hp9845c_state::hp9845c(machine_config &config) +{ hp9845_base(config); // video hardware - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(hp9845c_state, screen_update) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, hp9845c_state, vblank_w)) - MCFG_SCREEN_RAW_PARAMS(VIDEO_770_PIXEL_CLOCK , VIDEO_770_HTOTAL , VIDEO_770_HBEND , VIDEO_770_HBSTART , VIDEO_770_VTOTAL , VIDEO_770_VBEND , VIDEO_770_VBSTART) - MCFG_PALETTE_ADD("palette", 24) + m_screen->set_screen_update(FUNC(hp9845c_state::screen_update)); + m_screen->screen_vblank().set(FUNC(hp9845c_state::vblank_w)); + m_screen->set_raw(VIDEO_770_PIXEL_CLOCK , VIDEO_770_HTOTAL , VIDEO_770_HBEND , VIDEO_770_HBSTART , VIDEO_770_VTOTAL , VIDEO_770_VBEND , VIDEO_770_VBSTART); + PALETTE(config, m_palette).set_entries(24); TIMER(config, "scantimer").configure_scanline(FUNC(hp9845c_state::scanline_timer), "screen", 0, 1); SOFTWARE_LIST(config, "optrom_list").set_original("hp9845b_rom"); - -MACHINE_CONFIG_END +} void hp9845t_state::hp9845t(machine_config &config) { diff --git a/src/mame/drivers/hp9k.cpp b/src/mame/drivers/hp9k.cpp index 0ecf21bc482..c10eed0913b 100644 --- a/src/mame/drivers/hp9k.cpp +++ b/src/mame/drivers/hp9k.cpp @@ -394,20 +394,21 @@ WRITE8_MEMBER( hp9k_state::kbd_put ) } -MACHINE_CONFIG_START(hp9k_state::hp9k) +void hp9k_state::hp9k(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000, XTAL(8'000'000)) - MCFG_DEVICE_PROGRAM_MAP(hp9k_mem) + M68000(config, m_maincpu, XTAL(8'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k_state::hp9k_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(HP9816_ROWX*HP9816_CHDIMX, HP9816_ROWY*HP9816_CHDIMY) - MCFG_SCREEN_VISIBLE_AREA(0, (HP9816_ROWX*HP9816_CHDIMX)-1, 0, (HP9816_ROWY*HP9816_CHDIMY)-1) - MCFG_SCREEN_UPDATE_DRIVER(hp9k_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(HP9816_ROWX*HP9816_CHDIMX, HP9816_ROWY*HP9816_CHDIMY); + screen.set_visarea(0, (HP9816_ROWX*HP9816_CHDIMX)-1, 0, (HP9816_ROWY*HP9816_CHDIMY)-1); + screen.set_screen_update(FUNC(hp9k_state::screen_update)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_hp9k); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -416,7 +417,7 @@ MACHINE_CONFIG_START(hp9k_state::hp9k) m_6845->set_screen("screen"); m_6845->set_show_border_area(false); m_6845->set_char_width(8); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( hp9816 ) diff --git a/src/mame/drivers/hp9k_3xx.cpp b/src/mame/drivers/hp9k_3xx.cpp index 2baa5d17d9c..5a0d69e4311 100644 --- a/src/mame/drivers/hp9k_3xx.cpp +++ b/src/mame/drivers/hp9k_3xx.cpp @@ -334,12 +334,12 @@ void hp9k3xx_state::hp9k300(machine_config &config) config.set_default_layout(layout_hp9k_3xx); } -MACHINE_CONFIG_START(hp9k3xx_state::hp9k310) - +void hp9k3xx_state::hp9k310(machine_config &config) +{ hp9k300(config); - MCFG_DEVICE_ADD(m_maincpu, M68010, 10000000) - MCFG_DEVICE_PROGRAM_MAP(hp9k310_map) + M68010(config, m_maincpu, 10000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k310_map); add_dio16_bus(config); @@ -349,12 +349,12 @@ MACHINE_CONFIG_START(hp9k3xx_state::hp9k310) DIO32_SLOT(config, "sl3", 0, "diobus", dio32_cards, "98643", false); DIO16_SLOT(config, "sl4", 0, "diobus", dio16_cards, "98644", false); DIO16_SLOT(config, "sl5", 0, "diobus", dio16_cards, nullptr, false); +} -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(hp9k3xx_state::hp9k320) - MCFG_DEVICE_ADD(m_maincpu, M68020FPU, 16670000) - MCFG_DEVICE_PROGRAM_MAP(hp9k320_map) +void hp9k3xx_state::hp9k320(machine_config &config) +{ + M68020FPU(config, m_maincpu, 16670000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k320_map); hp9k300(config); add_dio32_bus(config); @@ -366,11 +366,12 @@ MACHINE_CONFIG_START(hp9k3xx_state::hp9k320) DIO32_SLOT(config, "sl4", 0, "diobus", dio32_cards, "98620", false); DIO32_SLOT(config, "sl5", 0, "diobus", dio32_cards, "98265a", false); DIO32_SLOT(config, "sl7", 0, "diobus", dio32_cards, nullptr, false); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hp9k3xx_state::hp9k330) - MCFG_DEVICE_ADD(m_maincpu, M68020PMMU, 16670000) - MCFG_DEVICE_PROGRAM_MAP(hp9k330_map) +void hp9k3xx_state::hp9k330(machine_config &config) +{ + M68020PMMU(config, m_maincpu, 16670000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k330_map); hp9k300(config); add_dio32_bus(config); @@ -380,11 +381,12 @@ MACHINE_CONFIG_START(hp9k3xx_state::hp9k330) DIO32_SLOT(config, "sl2", 0, "diobus", dio16_cards, "98603b", false); DIO32_SLOT(config, "sl3", 0, "diobus", dio16_cards, "98644", false); DIO32_SLOT(config, "sl4", 0, "diobus", dio16_cards, nullptr, false); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hp9k3xx_state::hp9k332) - MCFG_DEVICE_ADD(m_maincpu, M68020PMMU, 16670000) - MCFG_DEVICE_PROGRAM_MAP(hp9k332_map) +void hp9k3xx_state::hp9k332(machine_config &config) +{ + M68020PMMU(config, m_maincpu, 16670000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k332_map); hp9k300(config); add_dio16_bus(config); @@ -394,22 +396,22 @@ MACHINE_CONFIG_START(hp9k3xx_state::hp9k332) DIO16_SLOT(config, "sl2", 0, "diobus", dio16_cards, "98644", false); DIO16_SLOT(config, "sl3", 0, "diobus", dio16_cards, "98543", false); DIO16_SLOT(config, "sl4", 0, "diobus", dio16_cards, nullptr, false); +} -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(hp9k3xx_state::hp9k340) +void hp9k3xx_state::hp9k340(machine_config &config) +{ hp9k320(config); - MCFG_DEVICE_REPLACE(m_maincpu, M68030, 16670000) - MCFG_DEVICE_PROGRAM_MAP(hp9k330_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(hp9k3xx_state::hp9k360) + M68030(config.replace(), m_maincpu, 16670000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k330_map); +} +void hp9k3xx_state::hp9k360(machine_config &config) +{ hp9k300(config); - MCFG_DEVICE_ADD(m_maincpu, M68030, 25000000) - MCFG_DEVICE_PROGRAM_MAP(hp9k360_map) + M68030(config, m_maincpu, 25000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k360_map); add_dio32_bus(config); @@ -419,30 +421,32 @@ MACHINE_CONFIG_START(hp9k3xx_state::hp9k360) DIO32_SLOT(config, "sl3", 0, "diobus", dio32_cards, "98620", false); DIO32_SLOT(config, "sl4", 0, "diobus", dio32_cards, "98265a", false); DIO32_SLOT(config, "sl5", 0, "diobus", dio32_cards, nullptr, false); - -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hp9k3xx_state::hp9k370) +void hp9k3xx_state::hp9k370(machine_config &config) +{ hp9k360(config); - MCFG_DEVICE_REPLACE(m_maincpu, M68030, 33000000) - MCFG_DEVICE_PROGRAM_MAP(hp9k370_map) -MACHINE_CONFIG_END + M68030(config.replace(), m_maincpu, 33000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k370_map); +} -MACHINE_CONFIG_START(hp9k3xx_state::hp9k380) +void hp9k3xx_state::hp9k380(machine_config &config) +{ hp9k360(config); - MCFG_DEVICE_REPLACE(m_maincpu, M68040, 25000000) - MCFG_DEVICE_PROGRAM_MAP(hp9k380_map) -MACHINE_CONFIG_END + M68040(config.replace(), m_maincpu, 25000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k380_map); +} -MACHINE_CONFIG_START(hp9k3xx_state::hp9k382) +void hp9k3xx_state::hp9k382(machine_config &config) +{ hp9k360(config); - MCFG_DEVICE_REPLACE(m_maincpu, M68040, 25000000) - MCFG_DEVICE_PROGRAM_MAP(hp9k382_map) -MACHINE_CONFIG_END + M68040(config.replace(), m_maincpu, 25000000); + m_maincpu->set_addrmap(AS_PROGRAM, &hp9k3xx_state::hp9k382_map); +} ROM_START( hp9k310 ) ROM_REGION( 0x20000, MAINCPU_TAG, 0 ) diff --git a/src/mame/drivers/hprot1.cpp b/src/mame/drivers/hprot1.cpp index a0839725314..2a30193de12 100644 --- a/src/mame/drivers/hprot1.cpp +++ b/src/mame/drivers/hprot1.cpp @@ -245,7 +245,8 @@ HD44780_PIXEL_UPDATE(hprot1_state::hprot1_pixel_update) } } -MACHINE_CONFIG_START(hprot1_state::hprot1) +void hprot1_state::hprot1(machine_config &config) +{ /* basic machine hardware */ I80C31(config, m_maincpu, XTAL(10'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &hprot1_state::i80c31_prg); @@ -255,13 +256,13 @@ MACHINE_CONFIG_START(hprot1_state::hprot1) m_maincpu->port_out_cb<3>().set(FUNC(hprot1_state::henry_p3_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update) - MCFG_SCREEN_SIZE(6*16, 9*2) - MCFG_SCREEN_VISIBLE_AREA(0, 6*16-1, 0, 9*2-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update("hd44780", FUNC(hd44780_device::screen_update)); + screen.set_size(6*16, 9*2); + screen.set_visarea(0, 6*16-1, 0, 9*2-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(hprot1_state::hprot1_palette), 2); GFXDECODE(config, "gfxdecode", "palette", gfx_hprot1); @@ -273,40 +274,40 @@ MACHINE_CONFIG_START(hprot1_state::hprot1) /* TODO: figure out which RTC chip is in use. */ /* TODO: emulate the ADM695AN chip (watchdog/brownout reset)*/ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hprot1_state::hprotr8a) +void hprot1_state::hprotr8a(machine_config &config) +{ hprot1(config); - MCFG_DEVICE_REPLACE("maincpu", I80C31, 11059200) // value of X1 cristal on the PCB - MCFG_DEVICE_PROGRAM_MAP(i80c31_prg) - MCFG_DEVICE_IO_MAP(i80c31_io) + I80C31(config.replace(), m_maincpu, 11059200); // value of X1 crystal on the PCB + m_maincpu->set_addrmap(AS_PROGRAM, &hprot1_state::i80c31_prg); + m_maincpu->set_addrmap(AS_IO, &hprot1_state::i80c31_io); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50); /* TODO: add an RS232 interface (emulate MAX232N chip) (the board has GND/VCC/RX/TX pins available in a connector) */ /* TODO: add an I2C interface (the board has GND/VCC/SDA/SCL pins available in a connector) */ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hprot1_state::hprot2r6) +void hprot1_state::hprot2r6(machine_config &config) +{ hprot1(config); - MCFG_DEVICE_REPLACE("maincpu", I80C31, 11059200) // value of X1 cristal on the PCB - MCFG_DEVICE_PROGRAM_MAP(i80c31_prg) - MCFG_DEVICE_IO_MAP(i80c31_io) + I80C31(config.replace(), m_maincpu, 11059200); // value of X1 crystal on the PCB + m_maincpu->set_addrmap(AS_PROGRAM, &hprot1_state::i80c31_prg); + m_maincpu->set_addrmap(AS_IO, &hprot1_state::i80c31_io); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50); /* TODO: add an RS232 interface (emulate MAX232N chip) */ -MACHINE_CONFIG_END +} ROM_START( hprot1 ) ROM_REGION( 0x10000, "maincpu", 0 ) diff --git a/src/mame/drivers/huebler.cpp b/src/mame/drivers/huebler.cpp index e73246bd343..f8ce25a5d03 100644 --- a/src/mame/drivers/huebler.cpp +++ b/src/mame/drivers/huebler.cpp @@ -311,7 +311,8 @@ static GFXDECODE_START( gfx_amu880 ) GFXDECODE_END -MACHINE_CONFIG_START(amu880_state::amu880) +void amu880_state::amu880(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, XTAL(10'000'000)/4); // U880D m_maincpu->set_addrmap(AS_PROGRAM, &amu880_state::amu880_mem); @@ -321,9 +322,9 @@ MACHINE_CONFIG_START(amu880_state::amu880) TIMER(config, "keyboard").configure_periodic(FUNC(amu880_state::keyboard_tick), attotime::from_hz(1500)); /* video hardware */ - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_UPDATE_DRIVER(amu880_state, screen_update) - MCFG_SCREEN_RAW_PARAMS(9000000, 576, 0*6, 64*6, 320, 0*10, 24*10) + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(amu880_state::screen_update)); + screen.set_raw(9000000, 576, 0*6, 64*6, 320, 0*10, 24*10); GFXDECODE(config, "gfxdecode", m_palette, gfx_amu880); PALETTE(config, m_palette, palette_device::MONOCHROME); @@ -352,7 +353,7 @@ MACHINE_CONFIG_START(amu880_state::amu880) /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K"); -MACHINE_CONFIG_END +} /* ROMs */ diff --git a/src/mame/drivers/hunter2.cpp b/src/mame/drivers/hunter2.cpp index 336d7dbbfd2..5271e19bd86 100644 --- a/src/mame/drivers/hunter2.cpp +++ b/src/mame/drivers/hunter2.cpp @@ -378,19 +378,20 @@ WRITE_LINE_MEMBER(hunter2_state::rxd_w) m_maincpu->set_input_line(NSC800_RSTB, ASSERT_LINE); } -MACHINE_CONFIG_START(hunter2_state::hunter2) +void hunter2_state::hunter2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", NSC800, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(hunter2_mem) - MCFG_DEVICE_IO_MAP(hunter2_io) + NSC800(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &hunter2_state::hunter2_mem); + m_maincpu->set_addrmap(AS_IO, &hunter2_state::hunter2_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(80) - MCFG_SCREEN_UPDATE_DEVICE("lcdc", hd61830_device, screen_update) - MCFG_SCREEN_SIZE(240, 128) - MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 63) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(80); + screen.set_screen_update("lcdc", FUNC(hd61830_device::screen_update)); + screen.set_size(240, 128); + screen.set_visarea(0, 239, 0, 63); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(hunter2_state::hunter2_palette), 2); hd61830_device &hd61830(HD61830(config, "lcdc", XTAL(4'915'200)/2/2)); // unknown clock @@ -398,8 +399,7 @@ MACHINE_CONFIG_START(hunter2_state::hunter2) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); /* Devices */ mm58274c_device &rtc(MM58274C(config, "rtc", 0)); @@ -425,7 +425,7 @@ MACHINE_CONFIG_START(hunter2_state::hunter2) ADDRESS_MAP_BANK(config, "bank2").set_map(&hunter2_state::hunter2_banked_mem).set_endianness(ENDIANNESS_LITTLE).set_data_width(8).set_stride(0x4000); ADDRESS_MAP_BANK(config, "bank3").set_map(&hunter2_state::hunter2_banked_mem).set_endianness(ENDIANNESS_LITTLE).set_data_width(8).set_stride(0x4000); ADDRESS_MAP_BANK(config, "bank4").set_map(&hunter2_state::hunter2_banked_mem).set_endianness(ENDIANNESS_LITTLE).set_data_width(8).set_stride(0x4000); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( hunter2 ) diff --git a/src/mame/drivers/hvyunit.cpp b/src/mame/drivers/hvyunit.cpp index 5ec161435b1..8290f0d6837 100644 --- a/src/mame/drivers/hvyunit.cpp +++ b/src/mame/drivers/hvyunit.cpp @@ -618,22 +618,22 @@ TIMER_DEVICE_CALLBACK_MEMBER(hvyunit_state::scanline) * *************************************/ -MACHINE_CONFIG_START(hvyunit_state::hvyunit) - - MCFG_DEVICE_ADD("master", Z80, XTAL(12'000'000)/2) /* 6MHz verified on PCB */ - MCFG_DEVICE_PROGRAM_MAP(master_memory) - MCFG_DEVICE_IO_MAP(master_io) +void hvyunit_state::hvyunit(machine_config &config) +{ + Z80(config, m_mastercpu, XTAL(12'000'000)/2); /* 6MHz verified on PCB */ + m_mastercpu->set_addrmap(AS_PROGRAM, &hvyunit_state::master_memory); + m_mastercpu->set_addrmap(AS_IO, &hvyunit_state::master_io); TIMER(config, "scantimer").configure_scanline(FUNC(hvyunit_state::scanline), "screen", 0, 1); - MCFG_DEVICE_ADD("slave", Z80, XTAL(12'000'000)/2) /* 6MHz verified on PCB */ - MCFG_DEVICE_PROGRAM_MAP(slave_memory) - MCFG_DEVICE_IO_MAP(slave_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", hvyunit_state, irq0_line_hold) + Z80(config, m_slavecpu, XTAL(12'000'000)/2); /* 6MHz verified on PCB */ + m_slavecpu->set_addrmap(AS_PROGRAM, &hvyunit_state::slave_memory); + m_slavecpu->set_addrmap(AS_IO, &hvyunit_state::slave_io); + m_slavecpu->set_vblank_int("screen", FUNC(hvyunit_state::irq0_line_hold)); - MCFG_DEVICE_ADD("soundcpu", Z80, XTAL(12'000'000)/2) /* 6MHz verified on PCB */ - MCFG_DEVICE_PROGRAM_MAP(sound_memory) - MCFG_DEVICE_IO_MAP(sound_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", hvyunit_state, irq0_line_hold) + Z80(config, m_soundcpu, XTAL(12'000'000)/2); /* 6MHz verified on PCB */ + m_soundcpu->set_addrmap(AS_PROGRAM, &hvyunit_state::sound_memory); + m_soundcpu->set_addrmap(AS_IO, &hvyunit_state::sound_io); + m_soundcpu->set_vblank_int("screen", FUNC(hvyunit_state::irq0_line_hold)); I80C51(config, m_mermaid, XTAL(12'000'000)/2); /* 6MHz verified on PCB */ m_mermaid->port_in_cb<0>().set(FUNC(hvyunit_state::mermaid_p0_r)); @@ -652,14 +652,14 @@ MACHINE_CONFIG_START(hvyunit_state::hvyunit) config.m_minimum_quantum = attotime::from_hz(6000); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(hvyunit_state, screen_update) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, hvyunit_state, screen_vblank)) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(256, 256); + screen.set_visarea(0, 256-1, 16, 240-1); + screen.set_screen_update(FUNC(hvyunit_state::screen_update)); + screen.screen_vblank().set(FUNC(hvyunit_state::screen_vblank)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_hvyunit); PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 0x800); @@ -673,9 +673,8 @@ MACHINE_CONFIG_START(hvyunit_state::hvyunit) GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_soundcpu, INPUT_LINE_NMI); - MCFG_DEVICE_ADD("ymsnd", YM2203, XTAL(12'000'000)/4) /* 3MHz verified on PCB */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_CONFIG_END + YM2203(config, "ymsnd", XTAL(12'000'000)/4).add_route(ALL_OUTPUTS, "mono", 0.80); /* 3MHz verified on PCB */ +} diff --git a/src/mame/drivers/hx20.cpp b/src/mame/drivers/hx20.cpp index bdc4022405a..cd2dd29ff86 100644 --- a/src/mame/drivers/hx20.cpp +++ b/src/mame/drivers/hx20.cpp @@ -19,7 +19,7 @@ TODO: - - m6800.c rewrite + - m6800.cpp rewrite - keyboard interrupt - LCD controller - serial @@ -833,7 +833,7 @@ void hx20_state::machine_start() //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( hx20 ) +// machine_config( hx20 ) //------------------------------------------------- MACHINE_CONFIG_START(hx20_state::hx20) @@ -859,13 +859,13 @@ MACHINE_CONFIG_START(hx20_state::hx20) m_subcpu->out_p4_cb().set(FUNC(hx20_state::slave_p4_w)); // video hardware - MCFG_SCREEN_ADD(SCREEN_TAG, LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(120, 32) - MCFG_SCREEN_VISIBLE_AREA(0, 120-1, 0, 32-1) - MCFG_SCREEN_UPDATE_DRIVER(hx20_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size(120, 32); + screen.set_visarea(0, 120-1, 0, 32-1); + screen.set_screen_update(FUNC(hx20_state::screen_update)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(hx20_state::hx20_palette), 2); @@ -903,7 +903,7 @@ MACHINE_CONFIG_END //------------------------------------------------- -// MACHINE_CONFIG( hx20 ) +// machine_config( hx20 ) //------------------------------------------------- void hx20_state::cm6000(machine_config &config) diff --git a/src/mame/drivers/hyhoo.cpp b/src/mame/drivers/hyhoo.cpp index 0a82b3dfcab..c8a739f01f9 100644 --- a/src/mame/drivers/hyhoo.cpp +++ b/src/mame/drivers/hyhoo.cpp @@ -226,23 +226,23 @@ static INPUT_PORTS_START( hyhoo2 ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END -MACHINE_CONFIG_START(hyhoo_state::hyhoo) - +void hyhoo_state::hyhoo(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 5000000) /* 5.00 MHz ?? */ - MCFG_DEVICE_PROGRAM_MAP(hyhoo_map) - MCFG_DEVICE_IO_MAP(hyhoo_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", hyhoo_state, irq0_line_hold) + Z80(config, m_maincpu, 5000000); /* 5.00 MHz ?? */ + m_maincpu->set_addrmap(AS_PROGRAM, &hyhoo_state::hyhoo_map); + m_maincpu->set_addrmap(AS_IO, &hyhoo_state::hyhoo_io_map); + m_maincpu->set_vblank_int("screen", FUNC(hyhoo_state::irq0_line_hold)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(hyhoo_state, screen_update_hyhoo) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(512, 256); + m_screen->set_visarea(0, 512-1, 16, 240-1); + m_screen->set_screen_update(FUNC(hyhoo_state::screen_update_hyhoo)); NB1413M3(config, m_nb1413m3, 0, NB1413M3_HYHOO); @@ -258,7 +258,7 @@ MACHINE_CONFIG_START(hyhoo_state::hyhoo) voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END +} void hyhoo_state::hyhoo2(machine_config &config) diff --git a/src/mame/drivers/hyperscan.cpp b/src/mame/drivers/hyperscan.cpp index a4b07977096..99ff480f937 100644 --- a/src/mame/drivers/hyperscan.cpp +++ b/src/mame/drivers/hyperscan.cpp @@ -621,22 +621,23 @@ void hyperscan_state::machine_reset() } -MACHINE_CONFIG_START(hyperscan_state::hyperscan) +void hyperscan_state::hyperscan(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SCORE7, XTAL(27'000'000) * 4) // 108MHz S+core 7 - MCFG_DEVICE_PROGRAM_MAP(spg290_mem) + SCORE7(config, m_maincpu, XTAL(27'000'000) * 4); // 108MHz S+core 7 + m_maincpu->set_addrmap(AS_PROGRAM, &hyperscan_state::spg290_mem); SOFTWARE_LIST(config, "cd_list").set_original("hyperscan"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(hyperscan_state, spg290_screen_update) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, hyperscan_state, spg290_vblank_irq)) -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(hyperscan_state::spg290_screen_update)); + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.screen_vblank().set(FUNC(hyperscan_state::spg290_vblank_irq)); +} /* ROM definition */ diff --git a/src/mame/drivers/hyprduel.cpp b/src/mame/drivers/hyprduel.cpp index 982b72ab30e..0f31f12ce74 100644 --- a/src/mame/drivers/hyprduel.cpp +++ b/src/mame/drivers/hyprduel.cpp @@ -432,30 +432,32 @@ MACHINE_START_MEMBER(hyprduel_state,hyprduel) m_vblank_end_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(hyprduel_state::vblank_end_callback), this)); } -MACHINE_CONFIG_START(hyprduel_state::i4220_config) +void hyprduel_state::i4220_config(machine_config &config) +{ I4220(config, m_vdp, XTAL(26'666'000)); m_vdp->blit_irq_cb().set(FUNC(hyprduel_state::vdp_blit_end_w)); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE) - MCFG_SCREEN_REFRESH_RATE(60) // Unknown/Unverified - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(320, 224) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, FIRST_VISIBLE_LINE, LAST_VISIBLE_LINE) - MCFG_SCREEN_UPDATE_DEVICE("vdp", imagetek_i4100_device, screen_update) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("vdp", imagetek_i4100_device, screen_eof)) - MCFG_SCREEN_PALETTE(":vdp:palette") -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(hyprduel_state::hyprduel) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_video_attributes(VIDEO_UPDATE_SCANLINE); + screen.set_refresh_hz(60); // Unknown/Unverified + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(320, 224); + screen.set_visarea(0, 320-1, FIRST_VISIBLE_LINE, LAST_VISIBLE_LINE); + screen.set_screen_update("vdp", FUNC(imagetek_i4100_device::screen_update)); + screen.screen_vblank().set("vdp", FUNC(imagetek_i4100_device::screen_eof)); + screen.set_palette(":vdp:palette"); +} +void hyprduel_state::hyprduel(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000,20000000/2) /* 10MHz */ - MCFG_DEVICE_PROGRAM_MAP(hyprduel_map) + M68000(config, m_maincpu, 20000000/2); /* 10MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &hyprduel_state::hyprduel_map); + TIMER(config, "scantimer").configure_scanline(FUNC(hyprduel_state::interrupt), "screen", 0, 1); - MCFG_DEVICE_ADD("sub", M68000,20000000/2) /* 10MHz */ - MCFG_DEVICE_PROGRAM_MAP(hyprduel_map2) + M68000(config, m_subcpu, 20000000/2); /* 10MHz */ + m_subcpu->set_addrmap(AS_PROGRAM, &hyprduel_state::hyprduel_map2); MCFG_MACHINE_START_OVERRIDE(hyprduel_state,hyprduel) @@ -469,21 +471,21 @@ MACHINE_CONFIG_START(hyprduel_state::hyprduel) ymsnd.irq_handler().set_inputline(m_subcpu, 1); ymsnd.add_route(ALL_OUTPUTS, "mono", 0.80); - MCFG_DEVICE_ADD("oki", OKIM6295, 4000000/16/16*132, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.57) -MACHINE_CONFIG_END - + OKIM6295(config, "oki", 4000000/16/16*132, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.57); // clock frequency & pin 7 not verified +} -MACHINE_CONFIG_START(hyprduel_state::magerror) +void hyprduel_state::magerror(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000,20000000/2) /* 10MHz */ - MCFG_DEVICE_PROGRAM_MAP(magerror_map) + M68000(config, m_maincpu, 20000000/2); /* 10MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &hyprduel_state::magerror_map); + TIMER(config, "scantimer").configure_scanline(FUNC(hyprduel_state::interrupt), "screen", 0, 1); - MCFG_DEVICE_ADD("sub", M68000,20000000/2) /* 10MHz */ - MCFG_DEVICE_PROGRAM_MAP(magerror_map2) - MCFG_DEVICE_PERIODIC_INT_DRIVER(hyprduel_state, irq1_line_hold, 968) /* tempo? */ + M68000(config, m_subcpu, 20000000/2); /* 10MHz */ + m_subcpu->set_addrmap(AS_PROGRAM, &hyprduel_state::magerror_map2); + m_subcpu->set_periodic_int(FUNC(hyprduel_state::irq1_line_hold), attotime::from_hz(968)); /* tempo? */ MCFG_MACHINE_START_OVERRIDE(hyprduel_state,hyprduel) @@ -493,12 +495,10 @@ MACHINE_CONFIG_START(hyprduel_state::magerror) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2413, 3579545) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) + YM2413(config, "ymsnd", 3579545).add_route(ALL_OUTPUTS, "mono", 1.00); - MCFG_DEVICE_ADD("oki", OKIM6295, 4000000/16/16*132, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.57) -MACHINE_CONFIG_END + OKIM6295(config, "oki", 4000000/16/16*132, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.57); // clock frequency & pin 7 not verified +} /*************************************************************************** ROMs Loading diff --git a/src/mame/drivers/i7000.cpp b/src/mame/drivers/i7000.cpp index 04c8ce1ebbe..e97a8d0e4e9 100644 --- a/src/mame/drivers/i7000.cpp +++ b/src/mame/drivers/i7000.cpp @@ -344,18 +344,17 @@ MC6845_ON_UPDATE_ADDR_CHANGED(i7000_state::crtc_addr) MACHINE_CONFIG_START(i7000_state::i7000) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", NSC800, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(i7000_mem) - MCFG_DEVICE_IO_MAP(i7000_io) + NSC800(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &i7000_state::i7000_mem); + m_maincpu->set_addrmap(AS_IO, &i7000_state::i7000_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(320, 200) /* 40x25 8x8 chars */ - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) - - MCFG_SCREEN_UPDATE_DRIVER(i7000_state, screen_update_i7000) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_size(320, 200); /* 40x25 8x8 chars */ + screen.set_visarea(0, 320-1, 0, 200-1); + screen.set_screen_update(FUNC(i7000_state::screen_update_i7000)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_i7000); PALETTE(config, "palette", FUNC(i7000_state::i7000_palette), 2); diff --git a/src/mame/drivers/ibm3153.cpp b/src/mame/drivers/ibm3153.cpp index 5312285d329..fb0406395d3 100644 --- a/src/mame/drivers/ibm3153.cpp +++ b/src/mame/drivers/ibm3153.cpp @@ -103,23 +103,24 @@ void ibm3153_state::machine_reset() { } -MACHINE_CONFIG_START(ibm3153_state::ibm3153) +void ibm3153_state::ibm3153(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I80C32, XTAL(16'000'000)) // no idea of clock - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) + I80C32(config, m_maincpu, XTAL(16'000'000)); // no idea of clock + m_maincpu->set_addrmap(AS_PROGRAM, &ibm3153_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &ibm3153_state::io_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(ibm3153_state, screen_update) - MCFG_SCREEN_SIZE(640, 240) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(ibm3153_state::screen_update)); + screen.set_size(640, 240); + screen.set_visarea(0, 639, 0, 239); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(ibm3153_state::ibm3153_palette), 3); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( ibm3153 ) diff --git a/src/mame/drivers/ibm6580.cpp b/src/mame/drivers/ibm6580.cpp index d0ca4cfa9c4..dc6fafbc788 100644 --- a/src/mame/drivers/ibm6580.cpp +++ b/src/mame/drivers/ibm6580.cpp @@ -878,19 +878,21 @@ static void dw_floppies(device_slot_interface &device) device.option_add("8sssd", IBM_6360); } -MACHINE_CONFIG_START(ibm6580_state::ibm6580) - MCFG_DEVICE_ADD("maincpu", I8086, 14.7456_MHz_XTAL / 3) - MCFG_DEVICE_PROGRAM_MAP(ibm6580_mem) - MCFG_DEVICE_IO_MAP(ibm6580_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb) +void ibm6580_state::ibm6580(machine_config &config) +{ + I8086(config, m_maincpu, 14.7456_MHz_XTAL / 3); + m_maincpu->set_addrmap(AS_PROGRAM, &ibm6580_state::ibm6580_mem); + m_maincpu->set_addrmap(AS_IO, &ibm6580_state::ibm6580_io); + m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb)); RAM(config, RAM_TAG).set_default_size("128K").set_extra_options("160K,192K,224K,256K,320K,384K"); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(25_MHz_XTAL / 2, 833, 0, 640, 428, 0, 400) - MCFG_SCREEN_UPDATE_DRIVER(ibm6580_state, screen_update) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, ibm6580_state, vblank_w)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(25_MHz_XTAL / 2, 833, 0, 640, 428, 0, 400); + m_screen->set_screen_update(FUNC(ibm6580_state::screen_update)); + m_screen->set_palette("palette"); + m_screen->screen_vblank().set(FUNC(ibm6580_state::vblank_w)); + config.set_default_layout(layout_ibm6580); PALETTE(config, "palette", FUNC(ibm6580_state::ibm6580_palette), 3); @@ -904,7 +906,7 @@ MACHINE_CONFIG_START(ibm6580_state::ibm6580) ppi.out_pc_callback().set(FUNC(ibm6580_state::ppi_c_w)); ppi.in_pc_callback().set(FUNC(ibm6580_state::ppi_c_r)); - MCFG_DEVICE_ADD("pit8253", PIT8253, 0) + PIT8253(config, m_pit8253, 0); DW_KEYBOARD(config, m_kbd, 0); m_kbd->out_data_handler().set(FUNC(ibm6580_state::kb_data_w)); @@ -952,7 +954,7 @@ MACHINE_CONFIG_START(ibm6580_state::ibm6580) rs232b.cts_handler().set("upd8251b", FUNC(i8251_device::write_cts)); SOFTWARE_LIST(config, "flop_list").set_original("ibm6580"); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( ibm6580 ) diff --git a/src/mame/drivers/ibmpc.cpp b/src/mame/drivers/ibmpc.cpp index a382369e530..e9e5e3c330c 100644 --- a/src/mame/drivers/ibmpc.cpp +++ b/src/mame/drivers/ibmpc.cpp @@ -295,22 +295,23 @@ static DEVICE_INPUT_DEFAULTS_START(cga) DEVICE_INPUT_DEFAULTS("DSW0",0x30, 0x20) DEVICE_INPUT_DEFAULTS_END -MACHINE_CONFIG_START(ibmpc_state::ibm5150) +void ibmpc_state::ibm5150(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8088, XTAL(14'318'181)/3) - MCFG_DEVICE_PROGRAM_MAP(pc8_map) - MCFG_DEVICE_IO_MAP(pc8_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb) + I8088(config, m_maincpu, XTAL(14'318'181)/3); + m_maincpu->set_addrmap(AS_PROGRAM, &ibmpc_state::pc8_map); + m_maincpu->set_addrmap(AS_IO, &ibmpc_state::pc8_io); + m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb)); ibm5150_mb_device &mb(IBM5150_MOTHERBOARD(config, "mb", 0)); mb.set_cputag(m_maincpu); mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(cga)); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "hdc", false) - MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "com", false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "hdc", false); + ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, nullptr, false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_KEYTRONIC_PC3270).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); @@ -321,7 +322,7 @@ MACHINE_CONFIG_START(ibmpc_state::ibm5150) /* software lists */ SOFTWARE_LIST(config, "disk_list").set_original("ibm5150"); SOFTWARE_LIST(config, "cass_list").set_original("ibm5150_cass"); -MACHINE_CONFIG_END +} void ibmpc_state::ibm5140(machine_config &config) @@ -332,25 +333,26 @@ void ibmpc_state::ibm5140(machine_config &config) } -MACHINE_CONFIG_START(ibmpc_state::ibm5160) +void ibmpc_state::ibm5160(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8088, XTAL(14'318'181)/3) - MCFG_DEVICE_PROGRAM_MAP(pc8_map) - MCFG_DEVICE_IO_MAP(pc8_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb) + I8088(config, m_maincpu, XTAL(14'318'181)/3); + m_maincpu->set_addrmap(AS_PROGRAM, &ibmpc_state::pc8_map); + m_maincpu->set_addrmap(AS_IO, &ibmpc_state::pc8_io); + m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb)); ibm5160_mb_device &mb(IBM5160_MOTHERBOARD(config, "mb", 0)); mb.set_cputag(m_maincpu); mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(cga)); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "hdc", false) - MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa7", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa8", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "com", false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "hdc", false); + ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa7", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa8", 0, "mb:isa", pc_isa8_cards, nullptr, false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); @@ -360,7 +362,7 @@ MACHINE_CONFIG_START(ibmpc_state::ibm5160) /* software lists */ SOFTWARE_LIST(config, "pc_disk_list").set_original("ibm5150"); -MACHINE_CONFIG_END +} ROM_START( ibm5150 ) diff --git a/src/mame/drivers/icatel.cpp b/src/mame/drivers/icatel.cpp index f097e8a4f02..52581ce4300 100644 --- a/src/mame/drivers/icatel.cpp +++ b/src/mame/drivers/icatel.cpp @@ -254,7 +254,8 @@ HD44780_PIXEL_UPDATE(icatel_state::icatel_pixel_update) } } -MACHINE_CONFIG_START(icatel_state::icatel) +void icatel_state::icatel(machine_config &config) +{ /* basic machine hardware */ I80C31(config, m_maincpu, XTAL(2'097'152)); m_maincpu->set_addrmap(AS_PROGRAM, &icatel_state::i80c31_prg); @@ -266,13 +267,13 @@ MACHINE_CONFIG_START(icatel_state::icatel) m_maincpu->port_out_cb<3>().set(FUNC(icatel_state::i80c31_p3_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update) - MCFG_SCREEN_SIZE(6*16, 9*2) - MCFG_SCREEN_VISIBLE_AREA(0, 6*16-1, 0, 9*2-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update("hd44780", FUNC(hd44780_device::screen_update)); + screen.set_size(6*16, 9*2); + screen.set_visarea(0, 6*16-1, 0, 9*2-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(icatel_state::icatel_palette), 2); GFXDECODE(config, "gfxdecode", "palette", gfx_icatel); @@ -280,7 +281,7 @@ MACHINE_CONFIG_START(icatel_state::icatel) HD44780(config, m_lcdc, 0); m_lcdc->set_lcd_size(2, 16); m_lcdc->set_pixel_update_cb(FUNC(icatel_state::icatel_pixel_update), this); -MACHINE_CONFIG_END +} ROM_START( icatel ) ROM_REGION( 0x8000, "maincpu", 0 ) diff --git a/src/mame/drivers/ice_bozopail.cpp b/src/mame/drivers/ice_bozopail.cpp index fded5792af3..94eba8818c4 100644 --- a/src/mame/drivers/ice_bozopail.cpp +++ b/src/mame/drivers/ice_bozopail.cpp @@ -58,15 +58,15 @@ void ice_bozopail_state::machine_reset() } -MACHINE_CONFIG_START(ice_bozopail_state::ice_bozo) - +void ice_bozopail_state::ice_bozo(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC68HC11, 8000000) // unknown clock - MCFG_DEVICE_PROGRAM_MAP(ice_bozo_map) + MC68HC11(config, m_maincpu, 8000000); // unknown clock + m_maincpu->set_addrmap(AS_PROGRAM, &ice_bozopail_state::ice_bozo_map); /* sound hardware */ SPEAKER(config, "mono").front_center(); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/ice_tbd.cpp b/src/mame/drivers/ice_tbd.cpp index 22955fde737..33922745ace 100644 --- a/src/mame/drivers/ice_tbd.cpp +++ b/src/mame/drivers/ice_tbd.cpp @@ -66,18 +66,18 @@ void ice_tbd_state::machine_reset() { } -MACHINE_CONFIG_START(ice_tbd_state::ice_tbd) - +void ice_tbd_state::ice_tbd(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,8000000) /* ? MHz */ - MCFG_DEVICE_PROGRAM_MAP(ice_tbd_map) - MCFG_DEVICE_IO_MAP(ice_tbd_io_map) + Z80(config, m_maincpu, 8000000); /* ? MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &ice_tbd_state::ice_tbd_map); + m_maincpu->set_addrmap(AS_IO, &ice_tbd_state::ice_tbd_io_map); i8255_device &ppi(I8255(config, "ppi")); ppi.out_pa_callback().set_nop(); // ? ppi.out_pb_callback().set_nop(); // ? ppi.in_pc_callback().set_constant(0); // ? -MACHINE_CONFIG_END +} ROM_START( ice_tbd ) diff --git a/src/mame/drivers/ichiban.cpp b/src/mame/drivers/ichiban.cpp index ac37aa570a9..82e1d83219d 100644 --- a/src/mame/drivers/ichiban.cpp +++ b/src/mame/drivers/ichiban.cpp @@ -130,8 +130,8 @@ void ichibanjyan_state::machine_reset() } -MACHINE_CONFIG_START(ichibanjyan_state::ichibanjyan) - +void ichibanjyan_state::ichibanjyan(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, MAIN_CLOCK/3); m_maincpu->set_addrmap(AS_PROGRAM, &ichibanjyan_state::mem_map); @@ -154,9 +154,8 @@ MACHINE_CONFIG_START(ichibanjyan_state::ichibanjyan) SPEAKER(config, "mono").front_center(); YM2149(config, "aysnd", MAIN_CLOCK/12).add_route(ALL_OUTPUTS, "mono", 0.30); - MCFG_DEVICE_ADD("ymsnd", YM2413, MAIN_CLOCK/6) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_CONFIG_END + YM2413(config, "ymsnd", MAIN_CLOCK/6).add_route(ALL_OUTPUTS, "mono", 0.5); +} /*************************************************************************** diff --git a/src/mame/drivers/ie15.cpp b/src/mame/drivers/ie15.cpp index 1af652ce245..4a399674dcd 100644 --- a/src/mame/drivers/ie15.cpp +++ b/src/mame/drivers/ie15.cpp @@ -32,9 +32,10 @@ private: }; -MACHINE_CONFIG_START(ie15_state::ie15) - MCFG_DEVICE_ADD("ie15", IE15, 0) -MACHINE_CONFIG_END +void ie15_state::ie15(machine_config &config) +{ + IE15(config, m_ie15, 0); +} ROM_START(ie15) diff --git a/src/mame/drivers/if800.cpp b/src/mame/drivers/if800.cpp index fe117e36e4d..48545ba6916 100644 --- a/src/mame/drivers/if800.cpp +++ b/src/mame/drivers/if800.cpp @@ -90,11 +90,12 @@ void if800_state::upd7220_map(address_map &map) map(0x00000, 0x3ffff).ram().share("video_ram"); } -MACHINE_CONFIG_START(if800_state::if800) +void if800_state::if800(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8086, 8000000) - MCFG_DEVICE_PROGRAM_MAP(if800_map) - MCFG_DEVICE_IO_MAP(if800_io) + I8086(config, m_maincpu, 8000000); + m_maincpu->set_addrmap(AS_PROGRAM, &if800_state::if800_map); + m_maincpu->set_addrmap(AS_IO, &if800_state::if800_io); // PIC8259(config, "pic8259", 0); @@ -103,18 +104,17 @@ MACHINE_CONFIG_START(if800_state::if800) m_hgdc->set_display_pixels(FUNC(if800_state::hgdc_display_pixels)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DEVICE("upd7220", upd7220_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update("upd7220", FUNC(upd7220_device::screen_update)); - MCFG_PALETTE_ADD("palette", 8) -// MCFG_PALETTE_INIT(black_and_white) + PALETTE(config, m_palette).set_entries(8); // MCFG_VIDEO_START_OVERRIDE(if800_state,if800) -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( if800 ) diff --git a/src/mame/drivers/igs009.cpp b/src/mame/drivers/igs009.cpp index 2afbc08d220..226392ab8cc 100644 --- a/src/mame/drivers/igs009.cpp +++ b/src/mame/drivers/igs009.cpp @@ -828,11 +828,12 @@ WRITE_LINE_MEMBER(igs009_state::vblank_irq) m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero); } -MACHINE_CONFIG_START(igs009_state::jingbell) +void igs009_state::jingbell(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z180, XTAL(12'000'000) / 2) /* HD64180RP8, 8 MHz? */ - MCFG_DEVICE_PROGRAM_MAP(jingbell_map) - MCFG_DEVICE_IO_MAP(jingbell_portmap) + Z180(config, m_maincpu, XTAL(12'000'000) / 2); /* HD64180RP8, 8 MHz? */ + m_maincpu->set_addrmap(AS_PROGRAM, &igs009_state::jingbell_map); + m_maincpu->set_addrmap(AS_IO, &igs009_state::jingbell_portmap); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -847,38 +848,36 @@ MACHINE_CONFIG_START(igs009_state::jingbell) ppi1.out_pc_callback().set(FUNC(igs009_state::leds_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1) - MCFG_SCREEN_UPDATE_DRIVER(igs009_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, igs009_state, vblank_irq)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(512, 256); + m_screen->set_visarea(0, 512-1, 0, 256-16-1); + m_screen->set_screen_update(FUNC(igs009_state::screen_update)); + m_screen->set_palette(m_palette); + m_screen->screen_vblank().set(FUNC(igs009_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_jingbell); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x400); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(3'579'545)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + YM2413(config, "ymsnd", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(12'000'000) / 12, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, "oki", XTAL(12'000'000) / 12, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); +} -MACHINE_CONFIG_START(igs009_state::gp98) +void igs009_state::gp98(machine_config &config) +{ jingbell(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(gp98_portmap) + m_maincpu->set_addrmap(AS_IO, &igs009_state::gp98_portmap); m_gfxdecode->set_info(gfx_gp98); MCFG_VIDEO_START_OVERRIDE(igs009_state,gp98) -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/igs017.cpp b/src/mame/drivers/igs017.cpp index 544af85706b..55f846f3e4b 100644 --- a/src/mame/drivers/igs017.cpp +++ b/src/mame/drivers/igs017.cpp @@ -596,12 +596,12 @@ private: void decrypted_opcodes_map(address_map &map); void iqblocka_io(address_map &map); void iqblocka_map(address_map &map); - void lhzb2(address_map &map); - void lhzb2a(address_map &map); - void mgcs(address_map &map); + void lhzb2_map(address_map &map); + void lhzb2a_map(address_map &map); + void mgcs_map(address_map &map); void mgdha_map(address_map &map); - void sdmg2(address_map &map); - void slqz2(address_map &map); + void sdmg2_map(address_map &map); + void slqz2_map(address_map &map); void spkrform_io(address_map &map); void spkrform_map(address_map &map); void tjsb_io(address_map &map); @@ -1812,7 +1812,7 @@ READ8_MEMBER(igs017_state::mgcs_keys_r) return 0xff; } -void igs017_state::mgcs(address_map &map) +void igs017_state::mgcs_map(address_map &map) { map(0x000000, 0x07ffff).rom(); map(0x300000, 0x303fff).ram(); @@ -1895,7 +1895,7 @@ READ16_MEMBER(igs017_state::sdmg2_magic_r) return 0xffff; } -void igs017_state::sdmg2(address_map &map) +void igs017_state::sdmg2_map(address_map &map) { map(0x000000, 0x07ffff).rom(); map(0x1f0000, 0x1fffff).ram(); @@ -2202,7 +2202,7 @@ READ16_MEMBER(igs017_state::lhzb2_magic_r) return 0xffff; } -void igs017_state::lhzb2(address_map &map) +void igs017_state::lhzb2_map(address_map &map) { map(0x000000, 0x07ffff).rom(); map(0x500000, 0x503fff).ram(); @@ -2297,7 +2297,7 @@ WRITE16_MEMBER(igs017_state::lhzb2a_input_select_w) } } -void igs017_state::lhzb2a(address_map &map) +void igs017_state::lhzb2a_map(address_map &map) { map(0x000000, 0x07ffff).rom(); @@ -2368,7 +2368,7 @@ READ16_MEMBER(igs017_state::slqz2_magic_r) return 0xffff; } -void igs017_state::slqz2(address_map &map) +void igs017_state::slqz2_map(address_map &map) { map(0x000000, 0x07ffff).rom(); map(0x100000, 0x103fff).ram(); @@ -3516,10 +3516,11 @@ MACHINE_RESET_MEMBER(igs017_state,iqblocka) m_input_select = 0; } -MACHINE_CONFIG_START(igs017_state::iqblocka) - MCFG_DEVICE_ADD("maincpu", Z180, XTAL(16'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(iqblocka_map) - MCFG_DEVICE_IO_MAP(iqblocka_io) +void igs017_state::iqblocka(machine_config &config) +{ + Z180(config, m_maincpu, XTAL(16'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &igs017_state::iqblocka_map); + m_maincpu->set_addrmap(AS_IO, &igs017_state::iqblocka_io); TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::iqblocka_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,iqblocka) @@ -3546,13 +3547,13 @@ MACHINE_CONFIG_START(igs017_state::iqblocka) IGS_INCDEC(config, m_igs_incdec, 0); // video - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(512, 256); + m_screen->set_visarea(0, 512-1, 0, 240-1); + m_screen->set_screen_update(FUNC(igs017_state::screen_update_igs017)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100*2); @@ -3561,12 +3562,10 @@ MACHINE_CONFIG_START(igs017_state::iqblocka) // sound SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(3'579'545)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) + YM2413(config, "ymsnd", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 0.5); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000) / 16, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(16'000'000) / 16, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5); +} void igs017_state::iqblockf(machine_config &config) { @@ -3587,11 +3586,11 @@ void igs017_state::genius6(machine_config &config) m_igs_bitswap->set_m3_bits(3, 3, ~5, ~6, ~15); } -MACHINE_CONFIG_START(igs017_state::starzan) +void igs017_state::starzan(machine_config &config) +{ iqblocka(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_OPCODES, &igs017_state::decrypted_opcodes_map); +} // mgcs @@ -3615,9 +3614,10 @@ MACHINE_RESET_MEMBER(igs017_state,mgcs) memset(m_igs_magic, 0, sizeof(m_igs_magic)); } -MACHINE_CONFIG_START(igs017_state::mgcs) - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(22'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(mgcs) +void igs017_state::mgcs(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(22'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &igs017_state::mgcs_map); TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::mgcs_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs) @@ -3630,13 +3630,13 @@ MACHINE_CONFIG_START(igs017_state::mgcs) TICKET_DISPENSER(config, m_hopperdev, attotime::from_msec(50), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW ); // video - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(512, 256); + m_screen->set_visarea(0, 512-1, 0, 240-1); + m_screen->set_screen_update(FUNC(igs017_state::screen_update_igs017)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100*2); @@ -3646,16 +3646,16 @@ MACHINE_CONFIG_START(igs017_state::mgcs) // sound SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(8'000'000) / 8, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(8'000'000) / 8, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5); +} // lhzb2 -MACHINE_CONFIG_START(igs017_state::lhzb2) - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(22'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(lhzb2) +void igs017_state::lhzb2(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(22'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &igs017_state::lhzb2_map); TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::mgcs_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs) @@ -3673,13 +3673,13 @@ MACHINE_CONFIG_START(igs017_state::lhzb2) IGS022(config, m_igs022, 0); // video - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(512, 256); + m_screen->set_visarea(0, 512-1, 0, 240-1); + m_screen->set_screen_update(FUNC(igs017_state::screen_update_igs017)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100*2); @@ -3689,9 +3689,8 @@ MACHINE_CONFIG_START(igs017_state::lhzb2) // sound SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(8'000'000) / 8, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(8'000'000) / 8, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5); +} // lhzb2a @@ -3702,9 +3701,10 @@ MACHINE_RESET_MEMBER(igs017_state,lhzb2a) lhzb2a_remap_addr_w(m_maincpu->space(AS_PROGRAM), 0, 0xf0); } -MACHINE_CONFIG_START(igs017_state::lhzb2a) - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(22'000'000)/2) - MCFG_DEVICE_PROGRAM_MAP(lhzb2a) +void igs017_state::lhzb2a(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(22'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &igs017_state::lhzb2a_map); TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::mgcs_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,lhzb2a) @@ -3724,13 +3724,13 @@ MACHINE_CONFIG_START(igs017_state::lhzb2a) IGS_INCDEC(config, m_igs_incdec, 0); // video - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) // VSync 60Hz, HSync 15.3kHz - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1) - MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); // VSync 60Hz, HSync 15.3kHz + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(512, 256); + m_screen->set_visarea(0, 512-1, 0, 256-16-1); + m_screen->set_screen_update(FUNC(igs017_state::screen_update_igs017)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100*2); @@ -3740,16 +3740,16 @@ MACHINE_CONFIG_START(igs017_state::lhzb2a) // sound SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(22'000'000) / 22, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(22'000'000) / 22, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5); +} // slqz2 -MACHINE_CONFIG_START(igs017_state::slqz2) - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(22'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(slqz2) +void igs017_state::slqz2(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(22'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &igs017_state::slqz2_map); TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::mgcs_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs) @@ -3767,13 +3767,13 @@ MACHINE_CONFIG_START(igs017_state::slqz2) IGS022(config, m_igs022, 0); // video - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(512, 256); + m_screen->set_visarea(0, 512-1, 0, 240-1); + m_screen->set_screen_update(FUNC(igs017_state::screen_update_igs017)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100*2); @@ -3783,16 +3783,16 @@ MACHINE_CONFIG_START(igs017_state::slqz2) // sound SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(8'000'000) / 8, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(8'000'000) / 8, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5); +} // sdmg2 -MACHINE_CONFIG_START(igs017_state::sdmg2) - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(22'000'000)/2) - MCFG_DEVICE_PROGRAM_MAP(sdmg2) +void igs017_state::sdmg2(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(22'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &igs017_state::sdmg2_map); TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::mgcs_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs) @@ -3803,13 +3803,13 @@ MACHINE_CONFIG_START(igs017_state::sdmg2) ppi.in_pb_callback().set_ioport("DSW2"); // video - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) // VSync 60Hz, HSync 15.3kHz - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1) - MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); // VSync 60Hz, HSync 15.3kHz + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(512, 256); + m_screen->set_visarea(0, 512-1, 0, 256-16-1); + m_screen->set_screen_update(FUNC(igs017_state::screen_update_igs017)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100*2); @@ -3818,9 +3818,8 @@ MACHINE_CONFIG_START(igs017_state::sdmg2) // sound SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(22'000'000) / 22, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(22'000'000) / 22, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5); +} // mgdh @@ -3836,9 +3835,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(igs017_state::mgdh_interrupt) m_maincpu->set_input_line(3, HOLD_LINE); // lev 3 instead of 2 } -MACHINE_CONFIG_START(igs017_state::mgdha) - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(22'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(mgdha_map) +void igs017_state::mgdha(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(22'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &igs017_state::mgdha_map); TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::mgdh_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,mgcs) @@ -3848,13 +3848,13 @@ MACHINE_CONFIG_START(igs017_state::mgdha) ppi.in_pa_callback().set_ioport("DSW1"); // video - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1) - MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(512, 256); + m_screen->set_visarea(0, 512-1, 0, 256-16-1); + m_screen->set_screen_update(FUNC(igs017_state::screen_update_igs017)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100*2); @@ -3863,17 +3863,17 @@ MACHINE_CONFIG_START(igs017_state::mgdha) // sound SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(22'000'000) / 22, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(22'000'000) / 22, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5); +} // tjsb -MACHINE_CONFIG_START(igs017_state::tjsb) - MCFG_DEVICE_ADD("maincpu", Z180, XTAL(16'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(tjsb_map) - MCFG_DEVICE_IO_MAP(tjsb_io) +void igs017_state::tjsb(machine_config &config) +{ + Z180(config, m_maincpu, XTAL(16'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &igs017_state::tjsb_map); + m_maincpu->set_addrmap(AS_IO, &igs017_state::tjsb_io); TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::iqblocka_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,iqblocka) @@ -3885,13 +3885,13 @@ MACHINE_CONFIG_START(igs017_state::tjsb) ppi.in_pc_callback().set_ioport("DSW3"); // video - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(512, 256); + m_screen->set_visarea(0, 512-1, 0, 240-1); + m_screen->set_screen_update(FUNC(igs017_state::screen_update_igs017)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100*2); @@ -3901,20 +3901,19 @@ MACHINE_CONFIG_START(igs017_state::tjsb) // sound SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(3'579'545)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) + YM2413(config, "ymsnd", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 0.5); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000) / 16, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(16'000'000) / 16, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5); +} // spkrform -MACHINE_CONFIG_START(igs017_state::spkrform) - MCFG_DEVICE_ADD("maincpu", Z180, XTAL(16'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(spkrform_map) - MCFG_DEVICE_IO_MAP(spkrform_io) +void igs017_state::spkrform(machine_config &config) +{ + Z180(config, m_maincpu, XTAL(16'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &igs017_state::spkrform_map); + m_maincpu->set_addrmap(AS_IO, &igs017_state::spkrform_io); TIMER(config, "scantimer").configure_scanline(FUNC(igs017_state::iqblocka_interrupt), "screen", 0, 1); MCFG_MACHINE_RESET_OVERRIDE(igs017_state,iqblocka) @@ -3926,13 +3925,13 @@ MACHINE_CONFIG_START(igs017_state::spkrform) ppi.in_pc_callback().set_ioport("DSW3"); // video - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(512, 256); + m_screen->set_visarea(0, 512-1, 0, 240-1); + m_screen->set_screen_update(FUNC(igs017_state::screen_update_igs017)); + m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x100*2); @@ -3941,12 +3940,10 @@ MACHINE_CONFIG_START(igs017_state::spkrform) // sound SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(3'579'545)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) + YM2413(config, "ymsnd", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 0.5); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000) / 16, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(16'000'000) / 16, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5); +} /*************************************************************************** diff --git a/src/mame/drivers/igs_m027.cpp b/src/mame/drivers/igs_m027.cpp index 7d27f2eceef..9c770446710 100644 --- a/src/mame/drivers/igs_m027.cpp +++ b/src/mame/drivers/igs_m027.cpp @@ -327,24 +327,25 @@ WRITE_LINE_MEMBER(igs_m027_state::vblank_irq) } -MACHINE_CONFIG_START(igs_m027_state::igs_majhong) - MCFG_DEVICE_ADD("maincpu", ARM7, 20000000) - MCFG_DEVICE_PROGRAM_MAP(igs_majhong_map) +void igs_m027_state::igs_majhong(machine_config &config) +{ + ARM7(config, m_maincpu, 20000000); + m_maincpu->set_addrmap(AS_PROGRAM, &igs_m027_state::igs_majhong_map); // NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(igs_m027_state, screen_update_igs_majhong) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, igs_m027_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0, 256-1); + screen.set_screen_update(FUNC(igs_m027_state::screen_update_igs_majhong)); + screen.set_palette("palette"); + screen.screen_vblank().set(FUNC(igs_m027_state::vblank_irq)); - MCFG_PALETTE_ADD("palette", 0x200) -// MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) + PALETTE(config, "palette").set_entries(0x200); +// .set_format(palette_device::xGRB_555, 0x200); IGS017_IGS031(config, m_igs017_igs031, 0); m_igs017_igs031->set_text_reverse_bits(); @@ -354,31 +355,27 @@ MACHINE_CONFIG_START(igs_m027_state::igs_majhong) /* sound hardware */ // OK6295 -MACHINE_CONFIG_END - - - +} -MACHINE_CONFIG_START(igs_m027_state::amazonia) - MCFG_DEVICE_ADD("maincpu", ARM7, 20000000) - MCFG_DEVICE_PROGRAM_MAP(igs_majhong_map) +void igs_m027_state::amazonia(machine_config &config) +{ + ARM7(config, m_maincpu, 20000000); + m_maincpu->set_addrmap(AS_PROGRAM, &igs_m027_state::igs_majhong_map); // NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0, 256-1); + screen.set_screen_update(FUNC(igs_m027_state::screen_update_igs_majhong)); + screen.set_palette("palette"); + screen.screen_vblank().set(FUNC(igs_m027_state::vblank_irq)); - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(igs_m027_state, screen_update_igs_majhong) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, igs_m027_state, vblank_irq)) - - MCFG_PALETTE_ADD("palette", 0x200) -// MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) + PALETTE(config, "palette").set_entries(0x200); +// .set_format(palette_device::xGRB_555, 0x200); IGS017_IGS031(config, m_igs017_igs031, 0); m_igs017_igs031->set_text_reverse_bits(); @@ -388,8 +385,7 @@ MACHINE_CONFIG_START(igs_m027_state::amazonia) /* sound hardware */ // OK6295 - -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/igs_m036.cpp b/src/mame/drivers/igs_m036.cpp index 256e2273cb7..2a625636433 100644 --- a/src/mame/drivers/igs_m036.cpp +++ b/src/mame/drivers/igs_m036.cpp @@ -252,42 +252,40 @@ void igs_m036_state::pgm_create_dummy_internal_arm_region(void) #define IGS036_CPU ARM7 -MACHINE_CONFIG_START(igs_m036_state::igs_m036) - MCFG_DEVICE_ADD("maincpu",IGS036_CPU, 20000000) - - MCFG_DEVICE_PROGRAM_MAP(igs_m036_map) - - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(igs_m036_state, screen_update_igs_m036) - MCFG_SCREEN_PALETTE("palette") - - MCFG_PALETTE_ADD("palette", 0x200) +void igs_m036_state::igs_m036(machine_config &config) +{ + IGS036_CPU(config, m_maincpu, 20000000); + m_maincpu->set_addrmap(AS_PROGRAM, &igs_m036_state::igs_m036_map); + + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0, 256-1); + screen.set_screen_update(FUNC(igs_m036_state::screen_update_igs_m036)); + screen.set_palette("palette"); + + PALETTE(config, "palette").set_entries(0x200); /* sound hardware (OKI) */ -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(igs_m036_state::igs_m036_tt) - MCFG_DEVICE_ADD("maincpu",IGS036_CPU, 20000000) - - MCFG_DEVICE_PROGRAM_MAP(igs_m036_map) - +} - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(igs_m036_state, screen_update_igs_m036) - MCFG_SCREEN_PALETTE("palette") - MCFG_PALETTE_ADD("palette", 0x200) +void igs_m036_state::igs_m036_tt(machine_config &config) +{ + IGS036_CPU(config, m_maincpu, 20000000); + m_maincpu->set_addrmap(AS_PROGRAM, &igs_m036_state::igs_m036_map); + + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0, 256-1); + screen.set_screen_update(FUNC(igs_m036_state::screen_update_igs_m036)); + screen.set_palette("palette"); + + PALETTE(config, "palette").set_entries(0x200); /* sound hardware (TT5665) */ -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/igspc.cpp b/src/mame/drivers/igspc.cpp index 21aa054bafa..0384a918fa4 100644 --- a/src/mame/drivers/igspc.cpp +++ b/src/mame/drivers/igspc.cpp @@ -82,12 +82,13 @@ INPUT_PORTS_END -MACHINE_CONFIG_START(speeddrv_state::speeddrv) +void speeddrv_state::speeddrv(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I486, 40000000 ) // ?? at least a pentium - MCFG_DEVICE_PROGRAM_MAP(speeddrv_map) - MCFG_DEVICE_IO_MAP(speeddrv_io) -MACHINE_CONFIG_END + I486(config, m_maincpu, 40000000); // ?? at least a pentium + m_maincpu->set_addrmap(AS_PROGRAM, &speeddrv_state::speeddrv_map); + m_maincpu->set_addrmap(AS_IO, &speeddrv_state::speeddrv_io); +} ROM_START( speeddrv ) diff --git a/src/mame/drivers/igspoker.cpp b/src/mame/drivers/igspoker.cpp index 4669c9448b2..11c4a0cdf23 100644 --- a/src/mame/drivers/igspoker.cpp +++ b/src/mame/drivers/igspoker.cpp @@ -1921,12 +1921,12 @@ static GFXDECODE_START( gfx_cpokerpk ) GFXDECODE_ENTRY( "gfx2", 0x00000, charlayout2, 0, 1 ) GFXDECODE_END -MACHINE_CONFIG_START(igspoker_state::igspoker) - +void igspoker_state::igspoker(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, 3579545) - MCFG_DEVICE_PROGRAM_MAP(igspoker_prg_map) - MCFG_DEVICE_IO_MAP(igspoker_io_map) + Z80(config, m_maincpu, 3579545); + m_maincpu->set_addrmap(AS_PROGRAM, &igspoker_state::igspoker_prg_map); + m_maincpu->set_addrmap(AS_IO, &igspoker_state::igspoker_io_map); TIMER(config, "scantimer").configure_scanline(FUNC(igspoker_state::igs_interrupt), "screen", 0, 1); i8255_device &ppi(I8255A(config, "ppi")); @@ -1935,68 +1935,65 @@ MACHINE_CONFIG_START(igspoker_state::igspoker) ppi.in_pc_callback().set_ioport("COINS"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(57) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) // TODO: wrong screen size! - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(igspoker_state, screen_update_igs_video) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(57); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(64*8, 32*8); // TODO: wrong screen size! + m_screen->set_visarea(0*8, 64*8-1, 0, 32*8-1); + m_screen->set_screen_update(FUNC(igspoker_state::screen_update_igs_video)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_igspoker); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 2048); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2413, 3579545) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - -MACHINE_CONFIG_END + YM2413(config, "ymsnd", 3579545).add_route(ALL_OUTPUTS, "mono", 1.0); +} -MACHINE_CONFIG_START(igspoker_state::csk227it) +void igspoker_state::csk227it(machine_config &config) +{ igspoker(config); +} -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(igspoker_state::csk234it) +void igspoker_state::csk234it(machine_config &config) +{ igspoker(config); +} -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(igspoker_state::igs_ncs) +void igspoker_state::igs_ncs(machine_config &config) +{ igspoker(config); +} -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(igspoker_state::number10) +void igspoker_state::number10(machine_config &config) +{ igspoker(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(number10_io_map) + m_maincpu->set_addrmap(AS_IO, &igspoker_state::number10_io_map); config.device_remove("ppi"); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(igspoker_state, screen_update_cpokerpk) + m_screen->set_screen_update(FUNC(igspoker_state::screen_update_cpokerpk)); + MCFG_VIDEO_START_OVERRIDE(igspoker_state,cpokerpk) - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(12'000'000) / 12, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, "oki", XTAL(12'000'000) / 12, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); +} -MACHINE_CONFIG_START(igspoker_state::cpokerpk) +void igspoker_state::cpokerpk(machine_config &config) +{ number10(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(cpokerpk_io_map) + m_maincpu->set_addrmap(AS_IO, &igspoker_state::cpokerpk_io_map); m_gfxdecode->set_info(gfx_cpokerpk); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(igspoker_state::pktetris) +void igspoker_state::pktetris(machine_config &config) +{ igspoker(config); - -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/ikki.cpp b/src/mame/drivers/ikki.cpp index 0ba8013b546..7a1ecbec6c1 100644 --- a/src/mame/drivers/ikki.cpp +++ b/src/mame/drivers/ikki.cpp @@ -253,25 +253,25 @@ TIMER_DEVICE_CALLBACK_MEMBER(ikki_state::ikki_irq) -MACHINE_CONFIG_START(ikki_state::ikki) - +void ikki_state::ikki(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,CPU_CLOCK/2) /* 4.000MHz */ - MCFG_DEVICE_PROGRAM_MAP(ikki_cpu1) + Z80(config, m_maincpu, CPU_CLOCK/2); /* 4.000MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &ikki_state::ikki_cpu1); TIMER(config, "scantimer").configure_scanline(FUNC(ikki_state::ikki_irq), "screen", 0, 1); - MCFG_DEVICE_ADD("sub", Z80,CPU_CLOCK/2) /* 4.000MHz */ - MCFG_DEVICE_PROGRAM_MAP(ikki_cpu2) - MCFG_DEVICE_PERIODIC_INT_DRIVER(ikki_state, irq0_line_hold, 2*(PIXEL_CLOCK/HTOTAL/VTOTAL)) + Z80(config, m_subcpu, CPU_CLOCK/2); /* 4.000MHz */ + m_subcpu->set_addrmap(AS_PROGRAM, &ikki_state::ikki_cpu2); + m_subcpu->set_periodic_int(FUNC(ikki_state::irq0_line_hold), attotime::from_hz(2*(PIXEL_CLOCK/HTOTAL/VTOTAL))); config.m_perfect_cpu_quantum = subtag("maincpu"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(ikki_state, screen_update_ikki) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); + m_screen->set_screen_update(FUNC(ikki_state::screen_update_ikki)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ikki); PALETTE(config, m_palette, FUNC(ikki_state::ikki_palette), 1024, 256 + 1); @@ -279,12 +279,10 @@ MACHINE_CONFIG_START(ikki_state::ikki) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("sn1", SN76496, CPU_CLOCK/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) + SN76496(config, "sn1", CPU_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 0.75); - MCFG_DEVICE_ADD("sn2", SN76496, CPU_CLOCK/2) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) -MACHINE_CONFIG_END + SN76496(config, "sn2", CPU_CLOCK/2).add_route(ALL_OUTPUTS, "mono", 0.75); +} /************************************* diff --git a/src/mame/drivers/imolagp.cpp b/src/mame/drivers/imolagp.cpp index 8e48681dfd9..459d5e223c8 100644 --- a/src/mame/drivers/imolagp.cpp +++ b/src/mame/drivers/imolagp.cpp @@ -512,17 +512,17 @@ void imolagp_state::machine_reset() } -MACHINE_CONFIG_START(imolagp_state::imolagp) - +void imolagp_state::imolagp(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 3000000) // ? (assume slower than slave) - MCFG_DEVICE_PROGRAM_MAP(imolagp_master_map) - MCFG_DEVICE_IO_MAP(imolagp_master_io) + Z80(config, m_maincpu, 3000000); // ? (assume slower than slave) + m_maincpu->set_addrmap(AS_PROGRAM, &imolagp_state::imolagp_master_map); + m_maincpu->set_addrmap(AS_IO, &imolagp_state::imolagp_master_io); TIMER(config, m_steer_pot_timer).configure_generic(FUNC(imolagp_state::imolagp_pot_callback)); // maincpu nmi - MCFG_DEVICE_ADD("slave", Z80, 4000000) // ? - MCFG_DEVICE_PROGRAM_MAP(imolagp_slave_map) - MCFG_DEVICE_IO_MAP(imolagp_slave_io) + Z80(config, m_slavecpu, 4000000); // ? + m_slavecpu->set_addrmap(AS_PROGRAM, &imolagp_state::imolagp_slave_map); + m_slavecpu->set_addrmap(AS_IO, &imolagp_state::imolagp_slave_io); config.m_perfect_cpu_quantum = subtag("maincpu"); @@ -534,22 +534,22 @@ MACHINE_CONFIG_START(imolagp_state::imolagp) ppi.in_pc_callback().set_ioport("IN1"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(256,256) - MCFG_SCREEN_VISIBLE_AREA(0+48,255,0+16,255) - MCFG_SCREEN_UPDATE_DRIVER(imolagp_state, screen_update_imolagp) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, imolagp_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(256,256); + screen.set_visarea(0+48,255,0+16,255); + screen.set_screen_update(FUNC(imolagp_state::screen_update_imolagp)); + screen.set_video_attributes(VIDEO_UPDATE_SCANLINE); + screen.set_palette("palette"); + screen.screen_vblank().set(FUNC(imolagp_state::vblank_irq)); PALETTE(config, "palette", FUNC(imolagp_state::imolagp_palette), 0x20); /* sound hardware */ SPEAKER(config, "mono").front_center(); AY8910(config, "aysnd", 2000000).add_route(ALL_OUTPUTS, "mono", 0.5); // ? -MACHINE_CONFIG_END +} ROM_START( imolagp ) // same hardware, but larger video roms diff --git a/src/mame/drivers/inder.cpp b/src/mame/drivers/inder.cpp index 76811d220f9..5ba2087af90 100644 --- a/src/mame/drivers/inder.cpp +++ b/src/mame/drivers/inder.cpp @@ -1357,11 +1357,12 @@ void inder_state::init_inder1() m_game = 1; } -MACHINE_CONFIG_START(inder_state::brvteam) +void inder_state::brvteam(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(5'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(brvteam_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(inder_state, irq0_line_hold, 250) // NE556 + Z80(config, m_maincpu, XTAL(5'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &inder_state::brvteam_map); + m_maincpu->set_periodic_int(FUNC(inder_state::irq0_line_hold), attotime::from_hz(250)); // NE556 NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); @@ -1371,15 +1372,15 @@ MACHINE_CONFIG_START(inder_state::brvteam) /* Sound */ genpin_audio(config); SPEAKER(config, "snvol").front_center(); - MCFG_DEVICE_ADD("sn", SN76489, XTAL(8'000'000) / 2) // jumper choice of 2 or 4 MHz - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "snvol", 2.0) -MACHINE_CONFIG_END + SN76489(config, m_sn, XTAL(8'000'000) / 2).add_route(ALL_OUTPUTS, "snvol", 2.0); // jumper choice of 2 or 4 MHz +} -MACHINE_CONFIG_START(inder_state::canasta) +void inder_state::canasta(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(5'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(canasta_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(inder_state, irq0_line_hold, 250) // NE556 + Z80(config, m_maincpu, XTAL(5'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &inder_state::canasta_map); + m_maincpu->set_periodic_int(FUNC(inder_state::irq0_line_hold), attotime::from_hz(250)); // NE556 NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); @@ -1390,16 +1391,18 @@ MACHINE_CONFIG_START(inder_state::canasta) genpin_audio(config); SPEAKER(config, "ayvol").front_center(); AY8910(config, "ay", XTAL(4'000'000) / 2).add_route(ALL_OUTPUTS, "ayvol", 1.0); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(inder_state::lapbylap) +void inder_state::lapbylap(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(5'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(lapbylap_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(inder_state, irq0_line_hold, 250) // NE556 - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(2'000'000)) - MCFG_DEVICE_PROGRAM_MAP(lapbylap_sub_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(inder_state, irq0_line_hold, 250) // NE555 + Z80(config, m_maincpu, XTAL(5'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &inder_state::lapbylap_map); + m_maincpu->set_periodic_int(FUNC(inder_state::irq0_line_hold), attotime::from_hz(250)); // NE556 + + Z80(config, m_audiocpu, XTAL(2'000'000)); + m_audiocpu->set_addrmap(AS_PROGRAM, &inder_state::lapbylap_sub_map); + m_audiocpu->set_periodic_int(FUNC(inder_state::irq0_line_hold), attotime::from_hz(250)); // NE555 NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); @@ -1413,16 +1416,18 @@ MACHINE_CONFIG_START(inder_state::lapbylap) ay8910_device &ay2(AY8910(config, "ay2", XTAL(2'000'000))); // same xtal that drives subcpu ay2.port_a_read_callback().set(FUNC(inder_state::sndcmd_r)); ay2.add_route(ALL_OUTPUTS, "ayvol", 1.0); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(inder_state::inder) +void inder_state::inder(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(5'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(inder_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(inder_state, irq0_line_hold, 250) // NE556 - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(5'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(inder_sub_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(inder_state, irq0_line_hold, 250) // NE555 + Z80(config, m_maincpu, XTAL(5'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &inder_state::inder_map); + m_maincpu->set_periodic_int(FUNC(inder_state::irq0_line_hold), attotime::from_hz(250)); // NE556 + + Z80(config, m_audiocpu, XTAL(5'000'000) / 2); + m_audiocpu->set_addrmap(AS_PROGRAM, &inder_state::inder_sub_map); + m_audiocpu->set_periodic_int(FUNC(inder_state::irq0_line_hold), attotime::from_hz(250)); // NE555 NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); @@ -1468,7 +1473,7 @@ MACHINE_CONFIG_START(inder_state::inder) HCT157(config, m_13, 0); m_13->out_callback().set("msm", FUNC(msm5205_device::data_w)); -MACHINE_CONFIG_END +} /*------------------------------------------------------------------- diff --git a/src/mame/drivers/indiana.cpp b/src/mame/drivers/indiana.cpp index 425996737fd..9e87da7198b 100644 --- a/src/mame/drivers/indiana.cpp +++ b/src/mame/drivers/indiana.cpp @@ -94,19 +94,20 @@ static DEVICE_INPUT_DEFAULTS_START( keyboard ) DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 ) DEVICE_INPUT_DEFAULTS_END -MACHINE_CONFIG_START(indiana_state::indiana) +void indiana_state::indiana(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(M68K_TAG, M68030, XTAL(16'000'000)) - MCFG_DEVICE_PROGRAM_MAP(indiana_mem) + M68030(config, m_maincpu, XTAL(16'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &indiana_state::indiana_mem); // FIXME: determine ISA bus clock isa16_device &isa(ISA16(config, ISABUS_TAG, 0)); isa.set_custom_spaces(); - MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, ISABUS_TAG, indiana_isa_cards, "vga", false) - MCFG_DEVICE_ADD("isa2", ISA16_SLOT, 0, ISABUS_TAG, indiana_isa_cards, "fdc_at", false) - MCFG_DEVICE_ADD("isa3", ISA16_SLOT, 0, ISABUS_TAG, indiana_isa_cards, "comat", false) - MCFG_DEVICE_ADD("isa4", ISA16_SLOT, 0, ISABUS_TAG, indiana_isa_cards, "ide", false) + ISA16_SLOT(config, "isa1", 0, ISABUS_TAG, indiana_isa_cards, "vga", false); + ISA16_SLOT(config, "isa2", 0, ISABUS_TAG, indiana_isa_cards, "fdc_at", false); + ISA16_SLOT(config, "isa3", 0, ISABUS_TAG, indiana_isa_cards, "comat", false); + ISA16_SLOT(config, "isa4", 0, ISABUS_TAG, indiana_isa_cards, "ide", false); mc68901_device &mfp(MC68901(config, MFP_TAG, XTAL(16'000'000)/4)); mfp.set_timer_clock(XTAL(16'000'000)/4); @@ -117,7 +118,7 @@ MACHINE_CONFIG_START(indiana_state::indiana) rs232_port_device &keyboard(RS232_PORT(config, "keyboard", default_rs232_devices, "keyboard")); keyboard.rxd_handler().set(MFP_TAG, FUNC(mc68901_device::write_rx)); keyboard.set_option_device_input_defaults("keyboard", DEVICE_INPUT_DEFAULTS_NAME(keyboard)); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( indiana ) diff --git a/src/mame/drivers/inteladv.cpp b/src/mame/drivers/inteladv.cpp index 57254101554..cd18f857685 100644 --- a/src/mame/drivers/inteladv.cpp +++ b/src/mame/drivers/inteladv.cpp @@ -81,26 +81,27 @@ void inteladv_state::machine_reset() { } -MACHINE_CONFIG_START(inteladv_state::inteladv) +void inteladv_state::inteladv(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", R65C02, XTAL(1'000'000) ) - MCFG_DEVICE_PROGRAM_MAP(inteladv_main) + R65C02(config, m_maincpu, XTAL(1'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &inteladv_state::inteladv_main); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.62) /* verified on pcb */ - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(40, 400-1, 16, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(inteladv_state, screen_update_inteladv) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59.62); /* verified on pcb */ + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(40, 400-1, 16, 240-1); + screen.set_screen_update(FUNC(inteladv_state::screen_update_inteladv)); + screen.set_palette("palette"); PALETTE(config, "palette").set_format(palette_device::xBGR_888, 256).enable_shadows(); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); -MACHINE_CONFIG_END +} ROM_START( inteladv ) ROM_REGION( 0x800000, "maincpu", 0 ) /* main program */ diff --git a/src/mame/drivers/interact.cpp b/src/mame/drivers/interact.cpp index b3bce75da83..7733f480b04 100644 --- a/src/mame/drivers/interact.cpp +++ b/src/mame/drivers/interact.cpp @@ -127,26 +127,26 @@ uint32_t interact_state::screen_update_interact(screen_device &screen, bitmap_in return 0; } -MACHINE_CONFIG_START(interact_state::interact) - +void interact_state::interact(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080, XTAL(2'000'000)) - MCFG_DEVICE_PROGRAM_MAP(interact_mem) - MCFG_DEVICE_PERIODIC_INT_DRIVER(interact_state, irq0_line_hold, 50) /* put on the I8080 irq in Hz*/ + I8080(config, m_maincpu, XTAL(2'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &interact_state::interact_mem); + m_maincpu->set_periodic_int(FUNC(interact_state::irq0_line_hold), attotime::from_hz(50)); /* put on the I8080 irq in Hz*/ MCFG_MACHINE_RESET_OVERRIDE(interact_state,interact) MCFG_MACHINE_START_OVERRIDE(interact_state,interact) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(256, 79) - MCFG_SCREEN_VISIBLE_AREA(0, 112, 0, 77) - MCFG_SCREEN_UPDATE_DRIVER(interact_state, screen_update_interact) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(256, 79); + screen.set_visarea(0, 112, 0, 77); + screen.set_screen_update(FUNC(interact_state::screen_update_interact)); + screen.set_palette(m_palette); - MCFG_PALETTE_ADD("palette", 16) /* 8 colours, but only 4 at a time*/ + PALETTE(config, m_palette).set_entries(16); /* 8 colours, but only 4 at a time*/ MCFG_VIDEO_START_OVERRIDE(interact_state,hec2hrp) @@ -161,29 +161,28 @@ MACHINE_CONFIG_START(interact_state::interact) /* printer */ PRINTER(config, m_printer, 0); +} -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(interact_state::hector1) - +void interact_state::hector1(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(1'750'000)) - MCFG_DEVICE_PROGRAM_MAP(interact_mem) - MCFG_DEVICE_PERIODIC_INT_DRIVER(interact_state, irq0_line_hold, 50) /* put on the I8080 irq in Hz*/ + Z80(config, m_maincpu, XTAL(1'750'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &interact_state::interact_mem); + m_maincpu->set_periodic_int(FUNC(interact_state::irq0_line_hold), attotime::from_hz(50)); /* put on the I8080 irq in Hz*/ MCFG_MACHINE_RESET_OVERRIDE(interact_state,interact) MCFG_MACHINE_START_OVERRIDE(interact_state,interact) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(256, 79) - MCFG_SCREEN_VISIBLE_AREA(0, 112, 0, 77) - MCFG_SCREEN_UPDATE_DRIVER(interact_state, screen_update_interact) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(256, 79); + screen.set_visarea(0, 112, 0, 77); + screen.set_screen_update(FUNC(interact_state::screen_update_interact)); + screen.set_palette(m_palette); - MCFG_PALETTE_ADD("palette", 16) /* 8 colours, but only 4 at a time*/ + PALETTE(config, m_palette).set_entries(16); /* 8 colours, but only 4 at a time*/ MCFG_VIDEO_START_OVERRIDE(interact_state,hec2hrp) @@ -196,8 +195,7 @@ MACHINE_CONFIG_START(interact_state::hector1) /* printer */ PRINTER(config, m_printer, 0); - -MACHINE_CONFIG_END +} /* Input ports */ static INPUT_PORTS_START( interact ) diff --git a/src/mame/drivers/intrscti.cpp b/src/mame/drivers/intrscti.cpp index 878c48879f6..d72516c95fb 100644 --- a/src/mame/drivers/intrscti.cpp +++ b/src/mame/drivers/intrscti.cpp @@ -189,30 +189,30 @@ static GFXDECODE_START( gfx_intrscti ) GFXDECODE_END -MACHINE_CONFIG_START(intrscti_state::intrscti) - +void intrscti_state::intrscti(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* ? MHz */ - MCFG_DEVICE_PROGRAM_MAP(intrscti_map) - MCFG_DEVICE_IO_MAP(intrscti_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", intrscti_state, irq0_line_hold) + Z80(config, m_maincpu, 4000000); /* ? MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &intrscti_state::intrscti_map); + m_maincpu->set_addrmap(AS_IO, &intrscti_state::intrscti_io_map); + m_maincpu->set_vblank_int("screen", FUNC(intrscti_state::irq0_line_hold)); - MCFG_DEVICE_ADD("subcpu", Z80, 4000000) /* ? MHz */ - MCFG_DEVICE_PROGRAM_MAP(intrscti_sub_map) - MCFG_DEVICE_IO_MAP(intrscti_sub_io_map) + Z80(config, m_subcpu, 4000000); /* ? MHz */ + m_subcpu->set_addrmap(AS_PROGRAM, &intrscti_state::intrscti_sub_map); + m_subcpu->set_addrmap(AS_IO, &intrscti_state::intrscti_sub_io_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(intrscti_state, screen_update_intrscti) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(256, 256); + screen.set_visarea(0, 256-1, 0, 256-1); + screen.set_screen_update(FUNC(intrscti_state::screen_update_intrscti)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_intrscti); - MCFG_PALETTE_ADD("palette", 0x100) -MACHINE_CONFIG_END + PALETTE(config, m_palette).set_entries(0x100); +} ROM_START( intrscti ) diff --git a/src/mame/drivers/invqix.cpp b/src/mame/drivers/invqix.cpp index c3476c39b4f..536e7f6e8fc 100644 --- a/src/mame/drivers/invqix.cpp +++ b/src/mame/drivers/invqix.cpp @@ -334,31 +334,32 @@ static INPUT_PORTS_START( invqix ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END -MACHINE_CONFIG_START(invqix_state::invqix) - MCFG_DEVICE_ADD("maincpu", H8S2394, XTAL(20'000'000)) - MCFG_DEVICE_PROGRAM_MAP(invqix_prg_map) - MCFG_DEVICE_IO_MAP(invqix_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", invqix_state, irq1_line_hold) - MCFG_DEVICE_PERIODIC_INT_DRIVER(invqix_state, irq0_line_hold, 60) +void invqix_state::invqix(machine_config &config) +{ + H8S2394(config, m_maincpu, XTAL(20'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &invqix_state::invqix_prg_map); + m_maincpu->set_addrmap(AS_IO, &invqix_state::invqix_io_map); + m_maincpu->set_vblank_int("screen", FUNC(invqix_state::irq1_line_hold)); + m_maincpu->set_periodic_int(FUNC(invqix_state::irq0_line_hold), attotime::from_hz(60)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_DRIVER(invqix_state, screen_update) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 256, 0, 240) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_screen_update(FUNC(invqix_state::screen_update)); + screen.set_size(640, 480); + screen.set_visarea(0, 256, 0, 240); - MCFG_PALETTE_ADD("palette", 65536) + PALETTE(config, "palette").set_entries(65536); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("oki", OKIM9810, XTAL(4'096'000)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.80) - MCFG_SOUND_ROUTE(1, "rspeaker", 0.80) + okim9810_device &oki(OKIM9810(config, "oki", XTAL(4'096'000))); + oki.add_route(0, "lspeaker", 0.80); + oki.add_route(1, "rspeaker", 0.80); EEPROM_93C46_16BIT(config, "eeprom").default_value(0); -MACHINE_CONFIG_END +} ROM_START( invqix ) ROM_REGION(0x200000, "program", 0) diff --git a/src/mame/drivers/iphone2g.cpp b/src/mame/drivers/iphone2g.cpp index 6b6cedf37df..868f520884f 100644 --- a/src/mame/drivers/iphone2g.cpp +++ b/src/mame/drivers/iphone2g.cpp @@ -77,16 +77,16 @@ void iphone2g_state::machine_reset() { } -MACHINE_CONFIG_START(iphone2g_state::iphone2g) - +void iphone2g_state::iphone2g(machine_config &config) +{ /* Basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, ARM1176JZF_S, XTAL(12'000'000) * 103 / 3) //412 MHz, downclocked from 600 MHz - MCFG_DEVICE_PROGRAM_MAP(mem_map) + ARM1176JZF_S(config, m_maincpu, XTAL(12'000'000) * 103 / 3); //412 MHz, downclocked from 600 MHz + m_maincpu->set_addrmap(AS_PROGRAM, &iphone2g_state::mem_map); - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(12'000'000), 320, 0, 320, 480, 0, 480) //Complete guess - MCFG_SCREEN_UPDATE_DRIVER(iphone2g_state, screen_update) -MACHINE_CONFIG_END + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(XTAL(12'000'000), 320, 0, 320, 480, 0, 480); //Complete guess + m_screen->set_screen_update(FUNC(iphone2g_state::screen_update)); +} ROM_START(iphone2g) ROM_REGION32_LE(0x10000, "bios", 0) diff --git a/src/mame/drivers/iqblock.cpp b/src/mame/drivers/iqblock.cpp index 37be1574e3c..7224b670a60 100644 --- a/src/mame/drivers/iqblock.cpp +++ b/src/mame/drivers/iqblock.cpp @@ -340,12 +340,12 @@ GFXDECODE_END -MACHINE_CONFIG_START(iqblock_state::iqblock) - +void iqblock_state::iqblock(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,12000000/2) /* 6 MHz */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_IO_MAP(main_portmap) + Z80(config, m_maincpu, 12000000/2); /* 6 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &iqblock_state::main_map); + m_maincpu->set_addrmap(AS_IO, &iqblock_state::main_portmap); TIMER(config, "scantimer").configure_scanline(FUNC(iqblock_state::irq), "screen", 0, 1); i8255_device &ppi(I8255A(config, "ppi8255")); @@ -355,13 +355,13 @@ MACHINE_CONFIG_START(iqblock_state::iqblock) ppi.out_pc_callback().set(FUNC(iqblock_state::port_C_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(iqblock_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 0*8, 30*8-1); + screen.set_screen_update(FUNC(iqblock_state::screen_update)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_iqblock); PALETTE(config, "palette").set_format(palette_device::xBGR_555, 1024); @@ -370,7 +370,7 @@ MACHINE_CONFIG_START(iqblock_state::iqblock) SPEAKER(config, "mono").front_center(); YM2413(config, "ymsnd", 3'579'545).add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/iqunlim.cpp b/src/mame/drivers/iqunlim.cpp index 6d784233e91..25f76a2213a 100644 --- a/src/mame/drivers/iqunlim.cpp +++ b/src/mame/drivers/iqunlim.cpp @@ -87,19 +87,20 @@ void iqunlim_state::iqunlim_mem(address_map &map) static INPUT_PORTS_START( iqunlim ) INPUT_PORTS_END -MACHINE_CONFIG_START(iqunlim_state::iqunlim) +void iqunlim_state::iqunlim(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(32'000'000)/2) // DragonBall EZ (MC68EZ328) (68k core) (is the xtal correct? this was from the other hardware) - MCFG_DEVICE_PROGRAM_MAP(iqunlim_mem) + M68000(config, m_maincpu, XTAL(32'000'000)/2); // DragonBall EZ (MC68EZ328) (68k core) (is the xtal correct? this was from the other hardware) + m_maincpu->set_addrmap(AS_PROGRAM, &iqunlim_state::iqunlim_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER( iqunlim_state, screen_update ) -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0, 256-1); + screen.set_screen_update(FUNC(iqunlim_state::screen_update)); +} ROM_START( iqunlim ) ROM_REGION(0x200000, "maincpu", 0) diff --git a/src/mame/drivers/irisha.cpp b/src/mame/drivers/irisha.cpp index 14a579d88ec..6fe59cd673c 100644 --- a/src/mame/drivers/irisha.cpp +++ b/src/mame/drivers/irisha.cpp @@ -364,28 +364,28 @@ void irisha_state::machine_reset() } /* Machine driver */ -MACHINE_CONFIG_START(irisha_state::irisha) +void irisha_state::irisha(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080, XTAL(16'000'000) / 9) - MCFG_DEVICE_PROGRAM_MAP(irisha_mem) - MCFG_DEVICE_IO_MAP(irisha_io) + I8080(config, m_maincpu, XTAL(16'000'000) / 9); + m_maincpu->set_addrmap(AS_PROGRAM, &irisha_state::irisha_mem); + m_maincpu->set_addrmap(AS_IO, &irisha_state::irisha_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(320, 200) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) - MCFG_SCREEN_UPDATE_DRIVER(irisha_state, screen_update_irisha) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(320, 200); + screen.set_visarea(0, 320-1, 0, 200-1); + screen.set_screen_update(FUNC(irisha_state::screen_update_irisha)); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_irisha); PALETTE(config, "palette", palette_device::MONOCHROME); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); /* Devices */ I8251(config, "uart", 0); @@ -408,7 +408,7 @@ MACHINE_CONFIG_START(irisha_state::irisha) pic8259_device &pic8259(PIC8259(config, "pic8259", 0)); pic8259.out_int_callback().set_inputline(m_maincpu, 0); -MACHINE_CONFIG_END +} /* ROM definition */ diff --git a/src/mame/drivers/ironhors.cpp b/src/mame/drivers/ironhors.cpp index 8b9616d816e..421898ca5f9 100644 --- a/src/mame/drivers/ironhors.cpp +++ b/src/mame/drivers/ironhors.cpp @@ -378,28 +378,27 @@ Hsync is 15,56khz These clocks make the emulation run too fast. */ -MACHINE_CONFIG_START(ironhors_state::ironhors) - +void ironhors_state::ironhors(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809E, 18432000/6) /* 3.072 MHz??? mod by Shingo Suzuki 1999/10/15 */ - MCFG_DEVICE_PROGRAM_MAP(master_map) + MC6809E(config, m_maincpu, 18432000/6); /* 3.072 MHz??? mod by Shingo Suzuki 1999/10/15 */ + m_maincpu->set_addrmap(AS_PROGRAM, &ironhors_state::master_map); TIMER(config, "scantimer").configure_scanline(FUNC(ironhors_state::ironhors_scanline_tick), "screen", 0, 1); - MCFG_DEVICE_ADD("soundcpu", Z80, 18432000/6) /* 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(slave_map) - MCFG_DEVICE_IO_MAP(slave_io_map) + Z80(config, m_soundcpu, 18432000/6); /* 3.072 MHz */ + m_soundcpu->set_addrmap(AS_PROGRAM, &ironhors_state::slave_map); + m_soundcpu->set_addrmap(AS_IO, &ironhors_state::slave_io_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) -// MCFG_SCREEN_REFRESH_RATE(61) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) -// MCFG_SCREEN_SIZE(32*8, 32*8) -// MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) - MCFG_SCREEN_RAW_PARAMS(18432000/4,296,8,256-8,255,16,240) // pixel clock is a guesswork - - MCFG_SCREEN_UPDATE_DRIVER(ironhors_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); +// m_screen->set_refresh_hz(61); +// m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); +// m_screen->set_size(32*8, 32*8); +// m_screen->set_visarea(1*8, 31*8-1, 2*8, 30*8-1); + m_screen->set_raw(18432000/4,296,8,256-8,255,16,240); // pixel clock is a guesswork + m_screen->set_screen_update(FUNC(ironhors_state::screen_update)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ironhors); PALETTE(config, m_palette, FUNC(ironhors_state::ironhors_palette), 16*8*16+16*8*16, 256); @@ -416,10 +415,8 @@ MACHINE_CONFIG_START(ironhors_state::ironhors) ym2203.add_route(2, "disc_ih", 1.0, 2); ym2203.add_route(3, "disc_ih", 1.0, 3); - MCFG_DEVICE_ADD("disc_ih", DISCRETE, ironhors_discrete) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - -MACHINE_CONFIG_END + DISCRETE(config, m_disc_ih, ironhors_discrete).add_route(ALL_OUTPUTS, "mono", 1.0); +} TIMER_DEVICE_CALLBACK_MEMBER(ironhors_state::farwest_scanline_tick) { @@ -442,24 +439,23 @@ READ8_MEMBER(ironhors_state::farwest_soundlatch_r) return m_soundlatch->read(m_soundcpu->space(AS_PROGRAM), 0); } -MACHINE_CONFIG_START(ironhors_state::farwest) +void ironhors_state::farwest(machine_config &config) +{ ironhors(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(farwest_master_map) + m_maincpu->set_addrmap(AS_PROGRAM, &ironhors_state::farwest_master_map); subdevice<timer_device>("scantimer")->set_callback(FUNC(ironhors_state::farwest_scanline_tick)); - MCFG_DEVICE_MODIFY("soundcpu") - MCFG_DEVICE_PROGRAM_MAP(farwest_slave_map) - MCFG_DEVICE_REMOVE_ADDRESS_MAP(AS_IO) + Z80(config.replace(), m_soundcpu, 18432000/6); /* 3.072 MHz */ + m_soundcpu->set_addrmap(AS_PROGRAM, &ironhors_state::farwest_slave_map); m_gfxdecode->set_info(gfx_farwest); MCFG_VIDEO_START_OVERRIDE(ironhors_state,farwest) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(ironhors_state, screen_update_farwest) + + m_screen->set_screen_update(FUNC(ironhors_state::screen_update_farwest)); subdevice<ym2203_device>("ym2203")->port_b_read_callback().set(FUNC(ironhors_state::farwest_soundlatch_r)); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/isbc8010.cpp b/src/mame/drivers/isbc8010.cpp index abc524030d8..f6537974f96 100644 --- a/src/mame/drivers/isbc8010.cpp +++ b/src/mame/drivers/isbc8010.cpp @@ -171,11 +171,12 @@ static DEVICE_INPUT_DEFAULTS_START( terminal ) // set up terminal to default to DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 ) DEVICE_INPUT_DEFAULTS_END -MACHINE_CONFIG_START(isbc8010_state::isbc8010) +void isbc8010_state::isbc8010(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080A, XTAL(18'432'000)/9) - MCFG_DEVICE_PROGRAM_MAP(isbc8010_mem) - MCFG_DEVICE_IO_MAP(isbc8010_io) + I8080A(config, m_maincpu, XTAL(18'432'000)/9); + m_maincpu->set_addrmap(AS_PROGRAM, &isbc8010_state::isbc8010_mem); + m_maincpu->set_addrmap(AS_IO, &isbc8010_state::isbc8010_io); I8251(config, m_usart, 0); m_usart->txd_handler().set(RS232_TAG, FUNC(rs232_port_device::write_txd)); @@ -197,31 +198,35 @@ MACHINE_CONFIG_START(isbc8010_state::isbc8010) /* video hardware */ // 96364 crt controller -// MCFG_SCREEN_ADD("screen", RASTER) -// MCFG_SCREEN_REFRESH_RATE(60) +// screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); +// screen.set_refresh_hz(60); /* Video is blanked for 70 out of 262 scanlines per refresh cycle. Each scanline is composed of 65 character times, 40 of which are visible, and each character time is 7 dot times; a dot time is 2 cycles of the fundamental 14.31818 MHz oscillator. The total blanking time is about 4450 microseconds. */ -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((int) (70 * 65 * 7 * 2 / 14.31818))) +// screen.set_vblank_time(ATTOSECONDS_IN_USEC((int) (70 * 65 * 7 * 2 / 14.31818))); /* It would be nice if we could implement some sort of display overscan here. */ -// MCFG_SCREEN_SIZE(40 * 7, 24 * 8) -// MCFG_SCREEN_VISIBLE_AREA(0, 40 * 7 - 1, 0, 24 * 8 - 1) -// MCFG_SCREEN_UPDATE_DRIVER(sdk80_state, screen_update) -// MCFG_SCREEN_PALETTE("palette") +// screen.set_size(40 * 7, 24 * 8); +// screen.set_visarea(0, 40 * 7 - 1, 0, 24 * 8 - 1); +// screen.set_screen_update(FUNC(sdk80_state::screen_update)); +// screen.set_palette("palette"); // GFXDECODE(config, "gfxdecode", "palette", gfx_sdk80); -// MCFG_PALETTE_ADD_MONOCHROME("palette") +// PALETTE(config, "palette", palette_device::MONOCHROME); // Video board UART -// MCFG_DEVICE_ADD( "hd6402", AY31015, 0 ) +// ay31015_device &hd6402(AY31015(config, "hd6402", 0)); // MCFG_AY31015_TX_CLOCK(( XTAL(16'000'000) / 16 ) / 256) // MCFG_AY31015_RX_CLOCK(( XTAL(16'000'000) / 16 ) / 256) -// MCFG_AY51013_READ_SI_CB(READ8(*this, sdk80_state, nascom1_hd6402_si)) -// MCFG_AY51013_WRITE_SO_CB(WRITE8(*this, sdk80_state, nascom1_hd6402_so)) +// hd6402.read_si_callback().set(FUNC(sdk80_state::nascom1_hd6402_si)); +// hd6402.write_so_callback().set(FUNC(sdk80_state::nascom1_hd6402_so)); + +// clock_device &uart_clock(CLOCK(config, "uart_clock", (XTAL(16'000'000) / 16) / 256)); +// uart_clock.signal_handler().set("hd6402", FUNC(ay31015_device::write_tcp)); +// uart_clock.signal_handler().append("hd6402", FUNC(ay31015_device::write_rcp)); /* Devices */ // i8279_device &kbdc(I8279(config, "i8279", 3100000)); // based on divider @@ -231,22 +236,21 @@ MACHINE_CONFIG_START(isbc8010_state::isbc8010) // kbdc.in_rl_callback().set(FUNC(sdk80_state::kbd_r)); // kbd RL lines // kbdc.in_shift_callback().set_constant(1); // Shift key // kbdc.in_ctrl_callback().set_constant(1); +} -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(isbc8010_state::isbc8010a) +void isbc8010_state::isbc8010a(machine_config &config) +{ isbc8010(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY( "maincpu" ) - MCFG_DEVICE_PROGRAM_MAP(isbc8010a_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &isbc8010_state::isbc8010a_mem); +} -MACHINE_CONFIG_START(isbc8010_state::isbc8010b) +void isbc8010_state::isbc8010b(machine_config &config) +{ isbc8010(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(isbc8010b_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &isbc8010_state::isbc8010b_mem); +} /* ROM definition */ ROM_START( isbc8010 ) diff --git a/src/mame/drivers/iskr103x.cpp b/src/mame/drivers/iskr103x.cpp index bb27decef7a..f40083d9ba7 100644 --- a/src/mame/drivers/iskr103x.cpp +++ b/src/mame/drivers/iskr103x.cpp @@ -67,36 +67,37 @@ static DEVICE_INPUT_DEFAULTS_START(iskr1031) DEVICE_INPUT_DEFAULTS_END // XXX -MACHINE_CONFIG_START(iskr103x_state::iskr1030m) +void iskr103x_state::iskr1030m(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8086, 4772720) - MCFG_DEVICE_PROGRAM_MAP(iskr1031_map) - MCFG_DEVICE_IO_MAP(iskr1031_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb) + I8086(config, m_maincpu, 4772720); + m_maincpu->set_addrmap(AS_PROGRAM, &iskr103x_state::iskr1031_map); + m_maincpu->set_addrmap(AS_IO, &iskr103x_state::iskr1031_io); + m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb)); ibm5160_mb_device &mb(IBM5160_MOTHERBOARD(config, "mb", 0)); mb.set_cputag(m_maincpu); mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(iskr1030m)); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", iskr103x_isa8_cards, "cga_iskr1030m", false) // FIXME: determine IS bus clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", iskr103x_isa8_cards, "fdc_xt", false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", iskr103x_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", iskr103x_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", iskr103x_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", iskr103x_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", iskr103x_isa8_cards, "cga_iskr1030m", false); // FIXME: determine IS bus clock + ISA8_SLOT(config, "isa2", 0, "mb:isa", iskr103x_isa8_cards, "fdc_xt", false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", iskr103x_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", iskr103x_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa5", 0, "mb:isa", iskr103x_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa6", 0, "mb:isa", iskr103x_isa8_cards, nullptr, false); PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_EC_1841).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); // PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_ISKR_1030).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); RAM(config, RAM_TAG).set_default_size("640K").set_extra_options("64K, 128K, 256K, 512K"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(iskr103x_state::iskr1031) +void iskr103x_state::iskr1031(machine_config &config) +{ iskr1030m(config); subdevice<ibm5160_mb_device>("mb")->set_input_default(DEVICE_INPUT_DEFAULTS_NAME(iskr1031)); - MCFG_DEVICE_MODIFY("isa1") - MCFG_DEVICE_SLOT_INTERFACE(iskr103x_isa8_cards, "cga_iskr1031", false) -MACHINE_CONFIG_END + subdevice<isa8_slot_device>("isa1")->set_default_option("cga_iskr1031"); +} ROM_START( iskr1030m ) ROM_REGION16_LE(0x10000,"bios", 0) diff --git a/src/mame/drivers/istellar.cpp b/src/mame/drivers/istellar.cpp index 98e304c9a19..ec60d2368ae 100644 --- a/src/mame/drivers/istellar.cpp +++ b/src/mame/drivers/istellar.cpp @@ -275,19 +275,19 @@ WRITE_LINE_MEMBER(istellar_state::vblank_irq) /* DRIVER */ MACHINE_CONFIG_START(istellar_state::istellar) /* main cpu */ - MCFG_DEVICE_ADD("maincpu", Z80, GUESSED_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(z80_0_mem) - MCFG_DEVICE_IO_MAP(z80_0_io) + Z80(config, m_maincpu, GUESSED_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &istellar_state::z80_0_mem); + m_maincpu->set_addrmap(AS_IO, &istellar_state::z80_0_io); /* sound cpu */ - MCFG_DEVICE_ADD("audiocpu", Z80, GUESSED_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(z80_1_mem) - MCFG_DEVICE_IO_MAP(z80_1_io) + z80_device &audiocpu(Z80(config, "audiocpu", GUESSED_CLOCK)); + audiocpu.set_addrmap(AS_PROGRAM, &istellar_state::z80_1_mem); + audiocpu.set_addrmap(AS_IO, &istellar_state::z80_1_io); /* ldp comm cpu */ - MCFG_DEVICE_ADD("sub", Z80, GUESSED_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(z80_2_mem) - MCFG_DEVICE_IO_MAP(z80_2_io) + Z80(config, m_subcpu, GUESSED_CLOCK); + m_subcpu->set_addrmap(AS_PROGRAM, &istellar_state::z80_2_mem); + m_subcpu->set_addrmap(AS_IO, &istellar_state::z80_2_io); GENERIC_LATCH_8(config, "latch1"); @@ -295,9 +295,11 @@ MACHINE_CONFIG_START(istellar_state::istellar) latch2.data_pending_callback().set_inputline(m_subcpu, INPUT_LINE_NMI); latch2.set_separate_acknowledge(true); - MCFG_LASERDISC_LDV1000_ADD("laserdisc") - MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, istellar_state, screen_update_istellar) - MCFG_LASERDISC_OVERLAY_PALETTE(m_palette) + PIONEER_LDV1000(config, m_laserdisc, 0); + m_laserdisc->set_overlay(256, 256, FUNC(istellar_state::screen_update_istellar)); + m_laserdisc->set_overlay_palette(m_palette); + m_laserdisc->add_route(0, "lspeaker", 1.0); + m_laserdisc->add_route(1, "rspeaker", 1.0); /* video hardware */ MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") @@ -311,10 +313,6 @@ MACHINE_CONFIG_START(istellar_state::istellar) /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - - MCFG_DEVICE_MODIFY("laserdisc") - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/istrebiteli.cpp b/src/mame/drivers/istrebiteli.cpp index 2c047cdb21e..169711aab56 100644 --- a/src/mame/drivers/istrebiteli.cpp +++ b/src/mame/drivers/istrebiteli.cpp @@ -584,11 +584,12 @@ static GFXDECODE_START( gfx_motogonki ) GFXDECODE_ENTRY( "sprite", 0x0000, moto_sprite_layout, 2, 2 ) GFXDECODE_END -MACHINE_CONFIG_START(istrebiteli_state::istreb) +void istrebiteli_state::istreb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, I8080, XTAL(8'000'000) / 4) // KR580VM80A - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) + I8080(config, m_maincpu, XTAL(8'000'000) / 4); // KR580VM80A + m_maincpu->set_addrmap(AS_PROGRAM, &istrebiteli_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &istrebiteli_state::io_map); i8255_device &ppi0(I8255A(config, "ppi0")); ppi0.in_pa_callback().set_ioport("IN1"); @@ -601,10 +602,10 @@ MACHINE_CONFIG_START(istrebiteli_state::istreb) ppi1.in_pc_callback().set_ioport("IN2"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(8'000'000) / 2, 256, 64, 256, 312, 0, 256) - MCFG_SCREEN_UPDATE_DRIVER(istrebiteli_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(XTAL(8'000'000) / 2, 256, 64, 256, 312, 0, 256); + screen.set_screen_update(FUNC(istrebiteli_state::screen_update)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_istrebiteli); PALETTE(config, "palette", FUNC(istrebiteli_state::istrebiteli_palette), 4); @@ -612,13 +613,14 @@ MACHINE_CONFIG_START(istrebiteli_state::istreb) /* sound hardware */ SPEAKER(config, "mono").front_center(); ISTREBITELI_SOUND(config, m_sound_dev, XTAL(8'000'000) / 2 / 256).add_route(ALL_OUTPUTS, "mono", 1.00); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(istrebiteli_state::motogonki) +void istrebiteli_state::motogonki(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, I8080, XTAL(15'700'000) / 9) // KR580VM80A - MCFG_DEVICE_PROGRAM_MAP(moto_mem_map) - MCFG_DEVICE_IO_MAP(moto_io_map) + I8080(config, m_maincpu, XTAL(15'700'000) / 9); // KR580VM80A + m_maincpu->set_addrmap(AS_PROGRAM, &istrebiteli_state::moto_mem_map); + m_maincpu->set_addrmap(AS_IO, &istrebiteli_state::moto_io_map); i8255_device &ppi0(I8255A(config, "ppi0")); ppi0.out_pa_callback().set(FUNC(istrebiteli_state::spr0_ctrl_w)); @@ -630,10 +632,10 @@ MACHINE_CONFIG_START(istrebiteli_state::motogonki) ppi1.in_pc_callback().set_ioport("IN1"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(8'000'000) / 2, 256, 64, 256, 312, 0, 256) - MCFG_SCREEN_UPDATE_DRIVER(istrebiteli_state, moto_screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(XTAL(8'000'000) / 2, 256, 64, 256, 312, 0, 256); + screen.set_screen_update(FUNC(istrebiteli_state::moto_screen_update)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_motogonki); PALETTE(config, "palette", FUNC(istrebiteli_state::motogonki_palette), 4); @@ -642,7 +644,7 @@ MACHINE_CONFIG_START(istrebiteli_state::motogonki) /* sound hardware */ SPEAKER(config, "mono").front_center(); ISTREBITELI_SOUND(config, m_sound_dev, XTAL(8'000'000) / 2 / 256).add_route(ALL_OUTPUTS, "mono", 1.00); -MACHINE_CONFIG_END +} ROM_START( istreb ) ROM_REGION( 0x1000, I8080_TAG, ROMREGION_ERASEFF ) diff --git a/src/mame/drivers/iteagle.cpp b/src/mame/drivers/iteagle.cpp index eef52e1f4ed..47d71274c40 100644 --- a/src/mame/drivers/iteagle.cpp +++ b/src/mame/drivers/iteagle.cpp @@ -165,7 +165,8 @@ void iteagle_state::machine_reset() { } -MACHINE_CONFIG_START(iteagle_state::iteagle) +void iteagle_state::iteagle(machine_config &config) +{ /* basic machine hardware */ VR4310LE(config, m_maincpu, 166666666); m_maincpu->set_icache_size(16384); @@ -206,77 +207,89 @@ MACHINE_CONFIG_START(iteagle_state::iteagle) screen.set_size(512, 384); screen.set_visarea(0, 512 - 1, 0, 384 - 1); screen.set_screen_update(PCI_ID_VIDEO, FUNC(voodoo_pci_device::screen_update)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(iteagle_state::gtfore01) +void iteagle_state::gtfore01(machine_config &config) +{ iteagle(config); m_fpga->set_init_info(0x01000401, 0x0b0b0b); m_eeprom->set_info(0x0401, 0x7); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(iteagle_state::gtfore02) +void iteagle_state::gtfore02(machine_config &config) +{ iteagle(config); m_fpga->set_init_info(0x01000402, 0x020201); m_eeprom->set_info(0x0402, 0x7); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(iteagle_state::gtfore03) +void iteagle_state::gtfore03(machine_config &config) +{ iteagle(config); m_fpga->set_init_info(0x01000403, 0x0a0b0a); m_eeprom->set_info(0x0403, 0x7); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(iteagle_state::gtfore04) +void iteagle_state::gtfore04(machine_config &config) +{ iteagle(config); m_fpga->set_init_info(0x01000404, 0x0a020b); m_eeprom->set_info(0x0404, 0x7); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(iteagle_state::gtfore05) +void iteagle_state::gtfore05(machine_config &config) +{ iteagle(config); m_fpga->set_init_info(0x01000405, 0x0b0a0c); m_eeprom->set_info(0x0405, 0x7); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(iteagle_state::gtfore06) +void iteagle_state::gtfore06(machine_config &config) +{ iteagle(config); m_fpga->set_init_info(0x01000406, 0x0c0b0d); m_eeprom->set_info(0x0406, 0x9); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(iteagle_state::carnking) +void iteagle_state::carnking(machine_config &config) +{ iteagle(config); m_fpga->set_init_info(0x01000a01, 0x0e0a0a); m_eeprom->set_info(0x0a01, 0x9); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(iteagle_state::bbh) +void iteagle_state::bbh(machine_config &config) +{ iteagle(config); // 0xXX01XXXX = tournament board m_fpga->set_init_info(0x02010600, 0x0b0a0a); m_eeprom->set_info(0x0000, 0x7); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(iteagle_state::bbhsc) +void iteagle_state::bbhsc(machine_config &config) +{ iteagle(config); // 0xXX01XXXX = tournament board m_fpga->set_init_info(0x02010600, 0x0c0a0a); m_eeprom->set_info(0x0000, 0x7); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(iteagle_state::bbh2sp) +void iteagle_state::bbh2sp(machine_config &config) +{ iteagle(config); m_fpga->set_init_info(0x02010602, 0x0d0a0a); m_eeprom->set_info(0x0000, 0x7); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(iteagle_state::bbhcotw) +void iteagle_state::bbhcotw(machine_config &config) +{ iteagle(config); m_fpga->set_init_info(0x02010603, 0x080704); m_eeprom->set_info(0x0603, 0x9); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(iteagle_state::virtpool) +void iteagle_state::virtpool(machine_config &config) +{ iteagle(config); // Not sure what the actual value should be // Setting a lower frequency helps delay the tutorial screen premature cut-out @@ -289,7 +302,7 @@ MACHINE_CONFIG_START(iteagle_state::virtpool) m_fpga->set_init_info(0x01000202, 0x080808); m_eeprom->set_info(0x0202, 0x7); -MACHINE_CONFIG_END +} /************************************* diff --git a/src/mame/drivers/itgambl2.cpp b/src/mame/drivers/itgambl2.cpp index 14d69f83254..79ccaabe13e 100644 --- a/src/mame/drivers/itgambl2.cpp +++ b/src/mame/drivers/itgambl2.cpp @@ -275,19 +275,19 @@ void itgambl2_state::itgambl2_palette(palette_device &palette) const * Machine Drivers * **************************/ -MACHINE_CONFIG_START(itgambl2_state::itgambl2) - +void itgambl2_state::itgambl2(machine_config &config) +{ // basic machine hardware - MCFG_DEVICE_ADD("maincpu", H83337, MAIN_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(itgambl2_map) + H83337(config, m_maincpu, MAIN_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &itgambl2_state::itgambl2_map); // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(itgambl2_state, screen_update_itgambl2) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0, 256-1); + screen.set_screen_update(FUNC(itgambl2_state::screen_update_itgambl2)); GFXDECODE(config, "gfxdecode", m_palette, gfx_itgambl2); PALETTE(config, m_palette, FUNC(itgambl2_state::itgambl2_palette), 0x200); @@ -295,7 +295,7 @@ MACHINE_CONFIG_START(itgambl2_state::itgambl2) // sound hardware SPEAKER(config, "mono").front_center(); UPD7759(config, "upd").add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} /************************* diff --git a/src/mame/drivers/itgambl3.cpp b/src/mame/drivers/itgambl3.cpp index 3f6f25b4cde..894145657f8 100644 --- a/src/mame/drivers/itgambl3.cpp +++ b/src/mame/drivers/itgambl3.cpp @@ -266,28 +266,27 @@ void itgambl3_state::itgambl3_palette(palette_device &palette) const * Machine Drivers * **************************/ -MACHINE_CONFIG_START(itgambl3_state::itgambl3) - +void itgambl3_state::itgambl3(machine_config &config) +{ // basic machine hardware - MCFG_DEVICE_ADD("maincpu", H83044, MAIN_CLOCK) // wrong CPU, but we have not a M16C core ATM - MCFG_DEVICE_PROGRAM_MAP(itgambl3_map) + H83044(config, m_maincpu, MAIN_CLOCK); // wrong CPU, but we have not a M16C core ATM + m_maincpu->set_addrmap(AS_PROGRAM, &itgambl3_state::itgambl3_map); // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(itgambl3_state, screen_update_itgambl3) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0, 256-1); + screen.set_screen_update(FUNC(itgambl3_state::screen_update_itgambl3)); GFXDECODE(config, "gfxdecode", m_palette, gfx_itgambl3); PALETTE(config, m_palette, FUNC(itgambl3_state::itgambl3_palette), 0x200); // sound hardware SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, MAIN_CLOCK/16, okim6295_device::PIN7_HIGH) // 1MHz - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, "oki", MAIN_CLOCK/16, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // 1MHz +} /************************* diff --git a/src/mame/drivers/itt3030.cpp b/src/mame/drivers/itt3030.cpp index 876780d7873..82721cdf0f9 100644 --- a/src/mame/drivers/itt3030.cpp +++ b/src/mame/drivers/itt3030.cpp @@ -695,12 +695,12 @@ void itt3030_state::machine_reset() m_curfloppy = nullptr; } -MACHINE_CONFIG_START(itt3030_state::itt3030) - +void itt3030_state::itt3030(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 4_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(itt3030_map) - MCFG_DEVICE_IO_MAP(itt3030_io) + Z80(config, m_maincpu, 4_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &itt3030_state::itt3030_map); + m_maincpu->set_addrmap(AS_IO, &itt3030_state::itt3030_io); // Schematics + i8278 datasheet says: // Port 1 goes to the keyboard matrix. @@ -714,13 +714,13 @@ MACHINE_CONFIG_START(itt3030_state::itt3030) m_kbdmcu->p2_out_cb().set(FUNC(itt3030_state::kbd_port2_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(250)) - MCFG_SCREEN_UPDATE_DRIVER(itt3030_state, screen_update) - MCFG_SCREEN_SIZE(80*8, 24*12) - MCFG_SCREEN_VISIBLE_AREA(0, 80*8-1, 0, 24*12-1) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(250)); + m_screen->set_screen_update(FUNC(itt3030_state::screen_update)); + m_screen->set_size(80*8, 24*12); + m_screen->set_visarea(0, 80*8-1, 0, 24*12-1); + m_screen->set_palette(m_palette); /* devices */ ADDRESS_MAP_BANK(config, "lowerbank").set_map(&itt3030_state::lower48_map).set_options(ENDIANNESS_LITTLE, 8, 20, 0xc000); @@ -745,7 +745,7 @@ MACHINE_CONFIG_START(itt3030_state::itt3030) /* sound hardware */ SPEAKER(config, "mono").front_center(); BEEP(config, m_beep, 3250).add_route(ALL_OUTPUTS, "mono", 1.00); -MACHINE_CONFIG_END +} //************************************************************************** diff --git a/src/mame/drivers/leapfrog_leappad.cpp b/src/mame/drivers/leapfrog_leappad.cpp index d01fb8bbc68..3eca2599d12 100644 --- a/src/mame/drivers/leapfrog_leappad.cpp +++ b/src/mame/drivers/leapfrog_leappad.cpp @@ -12,9 +12,12 @@ MY FIRST LEAPPAD: Basically the same as the LEAPPAD, but for even younger kids! (Cartridge - internal PCB's are identical to LEAPPAD) + internal PCB's are identical to LEAPPAD). Example Video: https://www.youtube.com/watch?v=gsf8XYV1Tpg + LITTLE TOUCH LEAPPAD: + Same as the other LEAPPAD models, but aimed at babies. + Don't get confused by the name "LEAPPAD", as it looks like Leapfrog also released some kind of Tablet with this name, and they even released a new "LEAPPAD" in around 2016: @@ -113,18 +116,30 @@ void leapfrog_leappad_state::leapfrog_mfleappad(machine_config &config) SOFTWARE_LIST(config, "cart_list").set_original("leapfrog_mfleappad_cart"); } -// both of these contain the string "Have you copied our ROM?" near the date codes +// All of these contain the string "Have you copied our ROM?" near the date codes ROM_START( leappad ) - ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF ) + ROM_REGION( 0x100000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD( "leappadbios.bin", 0x000000, 0x100000, CRC(c886cddc) SHA1(f8a83b156feb28315d2321758678e141600a0d4e) ) // contains "Aug 06 2001.16:33:16.155-00450.LeapPad ILA2 Universal Base ROM" and "Copyright (c) 1998-2001 Knowledge Kids Enterprises, Inc." ROM_END +ROM_START( leappadca ) + ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "leappadbioscanada.bin", 0x000000, 0x200000, CRC(cc12e3db) SHA1(adf52232adcfd4de5d8e31c0e0c09be61718a9d4) ) // contains "Jan 23 2004 11:28:40 152-10620 2MB Canada Full Base ROM" and "Copyright (c) 2000-2004 LeapFrog Enterprises, Inc." +ROM_END + ROM_START( mfleappad ) + ROM_REGION( 0x100000, "maincpu", ROMREGION_ERASEFF ) + ROM_LOAD( "myfirstleappadinternational.bin", 0x000000, 0x100000, CRC(4dc0c4d5) SHA1(573ecf2efaccf70e619cf54d63be9169e469ee6f) ) // contains "May 07 2002 10:53:14 152-00932 MFLP International base ROM V1.3" and "Copyright (c) 2002 LeapFrog Enterprises, Inc." +ROM_END + +ROM_START( mfleappadus ) ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD( "myfirstleappadbios.bin", 0x000000, 0x400000, CRC(19174c16) SHA1(e0ba644fdf38fd5f91ab8c4b673c4a658cc3e612) ) // contains "Feb 13 2004.10:58:53.152-10573.MFLP US Base ROM - 2004" and "Copyright (c) 2004 LeapFrog Enterprises, Inc." ROM_END -// year, name, parent, compat, machine, input, class, init, company, fullname, flags -CONS( 2001, leappad, 0, 0, leapfrog_leappad, leapfrog_leappad, leapfrog_leappad_state, empty_init, "LeapFrog", "LeapPad (Germany)", MACHINE_IS_SKELETON ) -CONS( 2004, mfleappad, 0, 0, leapfrog_mfleappad, leapfrog_leappad, leapfrog_leappad_state, empty_init, "LeapFrog", "My First LeapPad (UK)", MACHINE_IS_SKELETON ) +// year, name, parent, compat, machine, input, class, init, company, fullname, flags +CONS( 2001, leappad, 0, 0, leapfrog_leappad, leapfrog_leappad, leapfrog_leappad_state, empty_init, "LeapFrog", "LeapPad (World)", MACHINE_IS_SKELETON ) +CONS( 2004, leappadca, leappad, 0, leapfrog_leappad, leapfrog_leappad, leapfrog_leappad_state, empty_init, "LeapFrog", "LeapPad (Canada)", MACHINE_IS_SKELETON ) +CONS( 2002, mfleappad, 0, 0, leapfrog_mfleappad, leapfrog_leappad, leapfrog_leappad_state, empty_init, "LeapFrog", "My First LeapPad (World, V1.3)", MACHINE_IS_SKELETON ) +CONS( 2004, mfleappadus, mfleappad, 0, leapfrog_mfleappad, leapfrog_leappad, leapfrog_leappad_state, empty_init, "LeapFrog", "My First LeapPad (US)", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/meadows.cpp b/src/mame/drivers/meadows.cpp index fe4e3809235..ee4c065045e 100644 --- a/src/mame/drivers/meadows.cpp +++ b/src/mame/drivers/meadows.cpp @@ -753,7 +753,7 @@ ROM_START( deadeye ) /* empty */ ROM_REGION( 0x08000, "audiocpu", 0 ) - ROM_LOAD( "de_snd", 0x0000, 0x0400, CRC(c10a1b1a) SHA1(779ea261d23360634081295a164cacbd819d8719) ) + ROM_LOAD( "de_sound_099c_m2-a1.0.4a", 0x0000, 0x0400, CRC(c10a1b1a) SHA1(779ea261d23360634081295a164cacbd819d8719) ) ROM_END diff --git a/src/mame/drivers/model3.cpp b/src/mame/drivers/model3.cpp index fb31b4a5303..ac9637de63d 100644 --- a/src/mame/drivers/model3.cpp +++ b/src/mame/drivers/model3.cpp @@ -5026,7 +5026,7 @@ ROM_START( srally2pa ) // prototype 1997/12/08 ROM_LOAD( "epr-20512.bin", 0x000000, 0x010000, CRC(cf64350d) SHA1(f30c8c7b65fb38f7dd63845f12b81388ff3b946d) ) ROM_END -ROM_START( srally2x ) /* Step 2.0 */ +ROM_START( srally2x ) /* Step 2.0, Sega game ID# is 833-13371, ROM board ID# 834-13372 SRT DX */ ROM_REGION64_BE( 0x8800000, "user1", 0 ) /* program + data ROMs */ // CROM ROM_LOAD64_WORD_SWAP( "epr-20502.17", 0x000006, 0x200000, CRC(af16846d) SHA1(a0babc4dc3809ca1e71eaad4dc2f8c1597575e8b) ) diff --git a/src/mame/drivers/segas16b.cpp b/src/mame/drivers/segas16b.cpp index d897d6f6a91..1b13df462e6 100644 --- a/src/mame/drivers/segas16b.cpp +++ b/src/mame/drivers/segas16b.cpp @@ -2434,7 +2434,9 @@ static INPUT_PORTS_START( dunkshot ) PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_MODIFY("DSW2") - //"SW2:1" unused + PORT_DIPNAME( 0x01, 0x00, "Winner Advances" ) PORT_DIPLOCATION("SW2:1") + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:2") PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -2451,7 +2453,9 @@ static INPUT_PORTS_START( dunkshot ) PORT_DIPNAME( 0x40, 0x40, "CPU Starts With +6 Pts." ) PORT_DIPLOCATION("SW2:7") PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - //"SW2:8" unused + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:8") + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_START("ANALOGX1") // fake analog X PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(75) PORT_KEYDELTA(5) PORT_PLAYER(1) PORT_REVERSE @@ -2479,6 +2483,15 @@ static INPUT_PORTS_START( dunkshot ) INPUT_PORTS_END +static INPUT_PORTS_START( dunkshoto ) + PORT_INCLUDE( dunkshot ) + + PORT_MODIFY("DSW2") + PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SW2:1" ) + PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:8" ) +INPUT_PORTS_END + + static INPUT_PORTS_START( eswat ) PORT_INCLUDE( system16b_generic ) @@ -5288,6 +5301,9 @@ ROM_END // Cotton, Sega System 16B // CPU: FD1094 (317-0181A) // ROM Board type: 171-5704 +// Sega game ID: 833-8021-02 COTTON +// Main board: 837-8023-02 +// ROM board: 834-8022-02 // ROM_START( cotton ) ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code @@ -9254,9 +9270,9 @@ GAME( 1988, ddux, 0, system16b_fd1094, ddux, segas16b_stat GAME( 1988, dduxj, ddux, system16b_fd1094, ddux, segas16b_state, init_generic_5521, ROT0, "Sega", "Dynamite Dux (set 2, Japan) (FD1094 317-0094)", 0 ) GAME( 1988, ddux1, ddux, system16b_i8751, ddux, segas16b_state, init_ddux_5704, ROT0, "Sega", "Dynamite Dux (set 1) (8751 317-0095)", 0 ) -GAME( 1987, dunkshot, 0, system16b_fd1089a, dunkshot, segas16b_state, init_dunkshot_5358_small,ROT0, "Sega", "Dunk Shot (Rev C, FD1089A 317-0022)", 0 ) -GAME( 1987, dunkshota, dunkshot, system16b_fd1089a, dunkshot, segas16b_state, init_dunkshot_5358_small,ROT0, "Sega", "Dunk Shot (Rev A, FD1089A 317-0022)", 0 ) -GAME( 1986, dunkshoto, dunkshot, system16b_fd1089a, dunkshot, segas16b_state, init_dunkshot_5358_small,ROT0, "Sega", "Dunk Shot (FD1089A 317-0022)", 0 ) +GAME( 1987, dunkshot, 0, system16b_fd1089a, dunkshot, segas16b_state, init_dunkshot_5358_small,ROT0, "Sega", "Dunk Shot (Rev C, FD1089A 317-0022)", 0 ) +GAME( 1987, dunkshota, dunkshot, system16b_fd1089a, dunkshot, segas16b_state, init_dunkshot_5358_small,ROT0, "Sega", "Dunk Shot (Rev A, FD1089A 317-0022)", 0 ) +GAME( 1986, dunkshoto, dunkshot, system16b_fd1089a, dunkshoto, segas16b_state, init_dunkshot_5358_small,ROT0, "Sega", "Dunk Shot (FD1089A 317-0022)", 0 ) GAME( 1989, eswat, 0, system16b_fd1094_5797, eswat, segas16b_state, init_generic_5797, ROT0, "Sega", "E-Swat - Cyber Police (set 4, World) (FD1094 317-0130)", 0 ) GAME( 1989, eswatu, eswat, system16b_fd1094_5797, eswat, segas16b_state, init_generic_5797, ROT0, "Sega", "E-Swat - Cyber Police (set 3, US) (FD1094 317-0129)", 0 ) diff --git a/src/mame/drivers/skyarmy.cpp b/src/mame/drivers/skyarmy.cpp index f70919933f7..b1569bd04d7 100644 --- a/src/mame/drivers/skyarmy.cpp +++ b/src/mame/drivers/skyarmy.cpp @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Tomasz Slanina,Ryan Holtz +// copyright-holders:Tomasz Slanina, Ryan Holtz /* 2010.04.05. stephh @@ -13,15 +13,20 @@ 2003.01.01. Tomasz Slanina changes : - - nmi generation ( incorrect freq probably) + - nmi generation (incorrect freq probably) - music/sfx (partially) - more sprite tiles (twice than before) - fixed sprites flips - scrolling (2nd game level) - better colors (weird 'hack' .. but works in most cases ( comparing with screens from emustatus )) - dips - lives - - visible area .. a bit smaller (at least bg 'generation' is not visible for scrolling levels ) + - visible area .. a bit smaller (at least bg 'generation' is not visible for scrolling levels) - cpu clock .. now 4 mhz + + TODO : + - Bridgepiece helicopters joining from the right side don't fly forward, this is especially a problem + on the 3rd level making it impossible to complete it. + What is it not caused by: memory map mirrors, spriteram writeonly, power-on ram contents */ #include "emu.h" @@ -214,10 +219,10 @@ void skyarmy_state::skyarmy_map(address_map &map) { map(0x0000, 0x7fff).rom(); map(0x8000, 0x87ff).ram(); - map(0x8800, 0x8fff).ram().w(FUNC(skyarmy_state::videoram_w)).share("videoram"); /* Video RAM */ - map(0x9000, 0x93ff).ram().w(FUNC(skyarmy_state::colorram_w)).share("colorram"); /* Color RAM */ - map(0x9800, 0x983f).ram().share("spriteram"); /* Sprites */ - map(0x9840, 0x985f).ram().share("scrollram"); /* Scroll RAM */ + map(0x8800, 0x8fff).ram().w(FUNC(skyarmy_state::videoram_w)).share("videoram"); + map(0x9000, 0x93ff).ram().w(FUNC(skyarmy_state::colorram_w)).share("colorram"); + map(0x9800, 0x983f).ram().share("spriteram"); + map(0x9840, 0x985f).ram().share("scrollram"); map(0xa000, 0xa000).portr("DSW"); map(0xa001, 0xa001).portr("P1"); map(0xa002, 0xa002).portr("P2"); @@ -326,7 +331,7 @@ void skyarmy_state::skyarmy(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &skyarmy_state::skyarmy_map); m_maincpu->set_addrmap(AS_IO, &skyarmy_state::skyarmy_io_map); m_maincpu->set_vblank_int("screen", FUNC(skyarmy_state::irq0_line_hold)); - m_maincpu->set_periodic_int(FUNC(skyarmy_state::nmi_source), attotime::from_hz(650)); /* Hz */ + m_maincpu->set_periodic_int(FUNC(skyarmy_state::nmi_source), attotime::from_hz(650)); ls259_device &latch(LS259(config, "latch")); // 11C latch.q_out_cb<0>().set(FUNC(skyarmy_state::coin_counter_w)); diff --git a/src/mame/drivers/spg110.cpp b/src/mame/drivers/spg110.cpp index e87f6996ee7..e75bbe4faaa 100644 --- a/src/mame/drivers/spg110.cpp +++ b/src/mame/drivers/spg110.cpp @@ -8,6 +8,8 @@ "SunPlus PA7801" ( known as Sunplus SPG110? ) Classic Arcade Pinball + EA Sports (NHL95 + Madden 95) + Spiderman 5-in-1 (original release) *******************************************************************************/ @@ -78,5 +80,12 @@ ROM_START( jak_capb ) ROM_LOAD16_WORD_SWAP( "classicarcadepinball.bin", 0x000000, 0x200000, CRC(b643dab0) SHA1(f57d546758ba442e28b5f0f48b3819b2fc2eb7f7) ) ROM_END + +ROM_START( jak_spdmo ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "spidermaneyes.bin", 0x000000, 0x200000, CRC(d5eaa6ae) SHA1(df226d378b41cf6ef90b9f72e48ff5e66385dcba) ) +ROM_END + // JAKKS Pacific Inc TV games -CONS( 2004, jak_capb, 0, 0, spg110_base, spg110, spg110_game_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Classic Arcade Pinball (JAKKS Pacific TV Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +CONS( 2004, jak_capb, 0, 0, spg110_base, spg110, spg110_game_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Classic Arcade Pinball (JAKKS Pacific TV Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +CONS( 2004, jak_spdmo, jak_spdm, 0, spg110_base, spg110, spg110_game_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Spider-Man (JAKKS Pacific TV Game) (older hardare)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // this is the smaller more 'square' style joystick that was originally released before the GameKey slot was added. diff --git a/src/mame/drivers/taito_f2.cpp b/src/mame/drivers/taito_f2.cpp index a4e6c07ce9e..886c71cea5f 100644 --- a/src/mame/drivers/taito_f2.cpp +++ b/src/mame/drivers/taito_f2.cpp @@ -4815,7 +4815,9 @@ ROM_START( footchmp ) /* no Delta-T samples */ -// Pals c80-08.45 c80-09.46 + ROM_REGION( 0x400, "plds", 0 ) + ROM_LOAD( "c80-08.ic45", 0x000, 0x104, CRC(6137dd15) SHA1(fb20df118da69b52767d5e6c81fa85174c50c5c5) ) // pal16l8bcn + ROM_LOAD( "c80-09.ic46", 0x200, 0x104, CRC(4ca48869) SHA1(8ba46ab625d3cbf3431ca2e6f3a9207d402202ef) ) // pal16l8bcn ROM_END ROM_START( hthero ) diff --git a/src/mame/drivers/tnzs.cpp b/src/mame/drivers/tnzs.cpp index 9c07a701782..6705f45e3ba 100644 --- a/src/mame/drivers/tnzs.cpp +++ b/src/mame/drivers/tnzs.cpp @@ -2076,7 +2076,7 @@ PCB: Seta: P0-025-A Taito: K1100241A J1100107A -The drtoppelj PCB has a sticker label which says "K1100269A // DR. ドツペル タンケン" (DoTuPeRu TaNKeN) +The drtoppelj PCB has a sticker label which says "K1100269A // DR. トッペル タンケン" (To'PeRu TaNKeN) */ ROM_START( drtoppel ) ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k + bankswitch areas for the first CPU */ diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp index 0e45470cb93..96b723e2a3f 100644 --- a/src/mame/drivers/vii.cpp +++ b/src/mame/drivers/vii.cpp @@ -7,38 +7,53 @@ Systems which run on the SPG243 SoC die markings show - "SunPlus QL8041" ( known as Sunplus SPG240? ) - JAKKS WWE - Fantastic 4 - Justice League - Dora the Explorer - Mattel Classic Sports + "SunPlus QL8041" ( also known as Sunplus SPG240 & PAC300 ) + + (all GameKeyReady units?) Disney Princess (GKR) Wheel of Fortune (GKR) - (all GameKeyReady units?) - - "SunPlus QL8041C" ( known as Sunplus SPG2?? ) + JAKKS WWE (GKR) + Fantastic 4 (GKR) + Justice League (GKR) + Dora the Explorer Nursery Rhyme (GKR) + Dora the Explorer Play Park (GKR) + Spiderman 5-in-1 (GKR) + etc. + + (other non GKR JAKKS games) + X-Men (Wolverine pad) + Avatar: The Last Airbender + + (other games) + Mattel Classic Sports + + "SunPlus QL8041C" ( known as Sunplus SPG2??, seems to be compatible with above, so probably just a chip revision ) Clickstart ( see clickstart.cpp instead) Wheel of Fortune 2nd Edition - + Spider-man - Villain Roundup "SunPlus PA7801" ( known as Sunplus SPG110? ) see spg110.cpp instead Classic Arcade Pinball EA Sports (NHL95 + Madden 95) + Spiderman 5-in-1 (original release) It is unknown if the following are close to this architecture or not (no dumps yet) "SunPlus QU7073-P69A" Mortal Kombat + "Sunplus PU7799-P680?" (difficult to read) + Mission Paintball + "Sunplus QL8167" - Disney Princess (older) + Disney Princess (newer?) Go Diego Go + Shrek - Over the Hedge (this unit shows a GameKey Unlock More Games' on startup, but has no port, not even on the internal PCB) + Marvel Heroes (Spider-man) + Spiderman 3 (Movie - black) -Disney Princess non-GKR is Sunplus QL8167. - - Status: + Status: Mostly working @@ -271,6 +286,7 @@ public: { } void icanguit(machine_config &config); + void icanpian(machine_config &config); private: virtual void machine_start() override; @@ -976,52 +992,52 @@ INPUT_PORTS_END static INPUT_PORTS_START( icanguit ) // this has something like 55 buttons, and some strings to map, must be multiplexed somehow? PORT_START("P1") - PORT_DIPNAME( 0x0001, 0x0001, "P1" ) + PORT_DIPNAME( 0x0001, 0x0000, "P1" ) PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x0010, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x0800, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x2000, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) @@ -1076,10 +1092,87 @@ static INPUT_PORTS_START( icanguit ) // this has something like 55 buttons, and PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_START("P3") - PORT_DIPNAME( 0x0001, 0x0001, "P3" ) + PORT_DIPNAME( 0x0001, 0x0000, "P3" ) + PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // Enter? + PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0010, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_NAME("Power Switch") // presumably power, kils the game + PORT_DIPNAME( 0x0800, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x2000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) +INPUT_PORTS_END + + +static INPUT_PORTS_START( icanpian ) // this has an entire piano keyboard + extras + PORT_START("P1") // the keyboard keys are in here, but each seems triple mapped to 3 octaves so there must be multiplexing + PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON4 ) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON5 ) + PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_BUTTON6 ) + PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_BUTTON7 ) + PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON8 ) + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON9 ) + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON10 ) + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON11 ) + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON12 ) + PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON13 ) + PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON14 ) + PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON15 ) + PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x2000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + + PORT_START("P2") + PORT_DIPNAME( 0x0001, 0x0001, "P2" ) PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON1 ) // Enter? + PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) @@ -1104,7 +1197,9 @@ static INPUT_PORTS_START( icanguit ) // this has something like 55 buttons, and PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_NAME("Power Switch") // presumably power, kils the game + PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) @@ -1120,6 +1215,44 @@ static INPUT_PORTS_START( icanguit ) // this has something like 55 buttons, and PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + + PORT_START("P3") + PORT_DIPNAME( 0x0001, 0x0000, "P3" ) // must be 'ON' to boot + PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) + PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) + PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON2 ) + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON3 ) + PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_NAME("Power Switch") // presumably power, kils the game + PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x2000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) INPUT_PORTS_END @@ -1475,6 +1608,24 @@ void icanguit_state::icanguit(machine_config &config) SOFTWARE_LIST(config, "icanguit_cart").set_original("icanguit"); } +void icanguit_state::icanpian(machine_config &config) +{ + SPG24X(config, m_spg, XTAL(27'000'000), m_maincpu, m_screen); + + spg2xx_base(config); + + m_spg->porta_in().set_ioport("P1"); + m_spg->portb_in().set_ioport("P2"); + m_spg->portc_in().set_ioport("P3"); + + GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "icanpian_cart"); + m_cart->set_width(GENERIC_ROM16_WIDTH); + m_cart->set_device_load(device_image_load_delegate(&icanguit_state::device_image_load_icanguit_cart, this)); + m_cart->set_must_be_loaded(true); + + SOFTWARE_LIST(config, "icanpian_cart").set_original("icanpian"); +} + void spg2xx_game_state::wireless60(machine_config &config) { @@ -1858,6 +2009,10 @@ ROM_START( icanguit ) // no internal ROM, requires a cartridge ROM_END +ROM_START( icanpian ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + // no internal ROM, requires a cartridge +ROM_END /* Wireless Air 60 @@ -2078,6 +2233,7 @@ CONS( 2005, mattelcs, 0, 0, rad_skat, mattelcs, spg2xx_game_state, emp CONS( 2007, dreamlif, 0, 0, rad_skat, rad_crik, spg2xx_game_state, empty_init, "Hasbro", "Dream Life", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) CONS( 2007, icanguit, 0, 0, icanguit, icanguit, icanguit_state, empty_init, "Mattel / Fisher-Price", "I Can Play Guitar", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +CONS( 2007, icanpian, 0, 0, icanpian, icanpian, icanguit_state, empty_init, "Mattel / Fisher-Price", "I Can Play Piano", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // might not fit here. First 0x8000 bytes are blank (not too uncommon for these) then rest of rom looks like it's probably encrypted at least // could be later model VT based instead? even after decrypting (simple word xor) the vectors have a different format and are at a different location to the SunPlus titles diff --git a/src/mame/drivers/witch.cpp b/src/mame/drivers/witch.cpp index 061a7e1f3a4..79b6dad6827 100644 --- a/src/mame/drivers/witch.cpp +++ b/src/mame/drivers/witch.cpp @@ -224,40 +224,19 @@ TODO : #include "includes/witch.h" -TILE_GET_INFO_MEMBER(witch_state::get_gfx0b_tile_info) +TILE_GET_INFO_MEMBER(witch_state::get_gfx0_tile_info) { int code = m_gfx0_vram[tile_index]; int color = m_gfx0_cram[tile_index]; code=code | ((color & 0xe0) << 3); - if(color&0x10) - { - code=0; - } - SET_TILE_INFO_MEMBER(1, code, //tiles beyond 0x7ff only for sprites? color & 0x0f, 0); -} - -TILE_GET_INFO_MEMBER(witch_state::get_gfx0a_tile_info) -{ - int code = m_gfx0_vram[tile_index]; - int color = m_gfx0_cram[tile_index]; - code=code | ((color & 0xe0) << 3); - - if((color&0x10)==0) - { - code=0; - } - - SET_TILE_INFO_MEMBER(1, - code,//tiles beyond 0x7ff only for sprites? - color & 0x0f, - 0); + tileinfo.category = (color & 0x10) >> 4; } TILE_GET_INFO_MEMBER(witch_state::get_gfx1_tile_info) @@ -284,11 +263,9 @@ TILE_GET_INFO_MEMBER(keirinou_state::get_keirinou_gfx1_tile_info) void witch_state::video_common_init() { - m_gfx0a_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(witch_state::get_gfx0a_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32); - m_gfx0b_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(witch_state::get_gfx0b_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32); + m_gfx0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(witch_state::get_gfx0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32); - m_gfx0a_tilemap->set_transparent_pen(0); - m_gfx0b_tilemap->set_transparent_pen(0); + m_gfx0_tilemap->set_transparent_pen(0); save_item(NAME(m_scrollx)); save_item(NAME(m_scrolly)); @@ -301,8 +278,7 @@ void witch_state::video_start() video_common_init(); m_gfx1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(witch_state::get_gfx1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32); - m_gfx0a_tilemap->set_palette_offset(0x100); - m_gfx0b_tilemap->set_palette_offset(0x100); + m_gfx0_tilemap->set_palette_offset(0x100); m_gfx1_tilemap->set_palette_offset(0x200); has_spr_rom_bank = false; @@ -314,8 +290,7 @@ void keirinou_state::video_start() video_common_init(); m_gfx1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(keirinou_state::get_keirinou_gfx1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32); - m_gfx0a_tilemap->set_palette_offset(0x000); - m_gfx0b_tilemap->set_palette_offset(0x000); + m_gfx0_tilemap->set_palette_offset(0x000); m_gfx1_tilemap->set_palette_offset(0x100); save_item(NAME(m_spr_bank)); @@ -370,30 +345,28 @@ void witch_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) } } -uint32_t witch_state::screen_update_witch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +uint32_t witch_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_gfx1_tilemap->set_scrollx(0, m_scrollx-7 ); //offset to have it aligned with the sprites m_gfx1_tilemap->set_scrolly(0, m_scrolly+8 ); m_gfx1_tilemap->draw(screen, bitmap, cliprect, 0,0); - m_gfx0a_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_gfx0_tilemap->draw(screen, bitmap, cliprect, 1,0); draw_sprites(bitmap, cliprect); - m_gfx0b_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_gfx0_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } WRITE8_MEMBER(witch_state::gfx0_vram_w) { m_gfx0_vram[offset] = data; - m_gfx0a_tilemap->mark_tile_dirty(offset); - m_gfx0b_tilemap->mark_tile_dirty(offset); + m_gfx0_tilemap->mark_tile_dirty(offset); } WRITE8_MEMBER(witch_state::gfx0_cram_w) { m_gfx0_cram[offset] = data; - m_gfx0a_tilemap->mark_tile_dirty(offset); - m_gfx0b_tilemap->mark_tile_dirty(offset); + m_gfx0_tilemap->mark_tile_dirty(offset); } #define FIX_OFFSET() do { \ @@ -989,7 +962,7 @@ void witch_state::witch(machine_config &config) screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_size(256, 256); screen.set_visarea(8, 256-1-8, 8*4, 256-8*4-1); - screen.set_screen_update(FUNC(witch_state::screen_update_witch)); + screen.set_screen_update(FUNC(witch_state::screen_update)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_witch); @@ -1051,9 +1024,8 @@ void keirinou_state::keirinou(machine_config &config) } ROM_START( witch ) - ROM_REGION( 0x30000, "maincpu", 0 ) - ROM_LOAD( "u_5b.u5", 0x10000, 0x20000, CRC(5c9f685a) SHA1(b75950048009ffb8c3b356592b1c69f905a1a2bd) ) - ROM_COPY( "maincpu" , 0x10000, 0x0000, 0x8000 ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "u_5b.u5", 0x00000, 0x20000, CRC(5c9f685a) SHA1(b75950048009ffb8c3b356592b1c69f905a1a2bd) ) ROM_REGION( 0x10000, "sub", 0 ) ROM_LOAD( "6.s6", 0x00000, 0x08000, CRC(82460b82) SHA1(d85a9d77edaa67dfab8ff6ac4cb6273f0904b3c0) ) @@ -1074,9 +1046,8 @@ ROM_END /* Witch (With ranking) */ ROM_START( witchb ) - ROM_REGION( 0x30000, "maincpu", 0 ) - ROM_LOAD( "x.u5", 0x10000, 0x20000, CRC(d0818777) SHA1(a6232fef84bec3cfb4a6122a48e96e7b7950e013) ) - ROM_COPY( "maincpu" , 0x10000, 0x0000, 0x8000 ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "x.u5", 0x00000, 0x20000, CRC(d0818777) SHA1(a6232fef84bec3cfb4a6122a48e96e7b7950e013) ) ROM_REGION( 0x10000, "sub", 0 ) ROM_LOAD( "6.s6", 0x00000, 0x08000, CRC(82460b82) SHA1(d85a9d77edaa67dfab8ff6ac4cb6273f0904b3c0) ) @@ -1096,9 +1067,8 @@ ROM_END ROM_START( witchs ) /* this set has (c)1992 Sega / Vic Tokai in the roms */ - ROM_REGION( 0x30000, "maincpu", 0 ) - ROM_LOAD( "rom.u5", 0x10000, 0x20000, CRC(348fccb8) SHA1(947defd86c4a597fbfb9327eec4903aa779b3788) ) - ROM_COPY( "maincpu" , 0x10000, 0x0000, 0x8000 ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "rom.u5", 0x00000, 0x20000, CRC(348fccb8) SHA1(947defd86c4a597fbfb9327eec4903aa779b3788) ) ROM_REGION( 0x10000, "sub", 0 ) ROM_LOAD( "6.s6", 0x00000, 0x08000, CRC(82460b82) SHA1(d85a9d77edaa67dfab8ff6ac4cb6273f0904b3c0) ) /* Same data as the Witch set */ @@ -1118,9 +1088,8 @@ ROM_END ROM_START( pbchmp95 ) /* Licensed for Germany? */ - ROM_REGION( 0x30000, "maincpu", 0 ) - ROM_LOAD( "3.bin", 0x10000, 0x20000, CRC(e881aa05) SHA1(10d259396cac4b9a1b72c262c11ffa5efbdac433) ) - ROM_COPY( "maincpu" , 0x10000, 0x0000, 0x8000 ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD( "3.bin", 0x00000, 0x20000, CRC(e881aa05) SHA1(10d259396cac4b9a1b72c262c11ffa5efbdac433) ) ROM_REGION( 0x10000, "sub", 0 ) ROM_LOAD( "4.bin", 0x00000, 0x08000, CRC(82460b82) SHA1(d85a9d77edaa67dfab8ff6ac4cb6273f0904b3c0) ) /* Same data as the Witch set */ @@ -1164,7 +1133,7 @@ ROM_END void witch_state::init_witch() { - m_mainbank->configure_entries(0, 4, memregion("maincpu")->base() + 0x10000 + UNBANKED_SIZE, 0x8000); + m_mainbank->configure_entries(0, 4, memregion("maincpu")->base() + UNBANKED_SIZE, 0x8000); m_mainbank->set_entry(0); m_subcpu->space(AS_PROGRAM).install_read_handler(0x7000, 0x700f, read8_delegate(FUNC(witch_state::prot_read_700x), this)); diff --git a/src/mame/drivers/xavix.cpp b/src/mame/drivers/xavix.cpp index a40f0bf3fcb..93351acb5de 100644 --- a/src/mame/drivers/xavix.cpp +++ b/src/mame/drivers/xavix.cpp @@ -1159,6 +1159,30 @@ static INPUT_PORTS_START( nostalgia ) INPUT_PORTS_END +static INPUT_PORTS_START( tak_geig ) + PORT_INCLUDE(xavix) + + PORT_MODIFY("IN0") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) // pause + + PORT_MODIFY("IN1") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) // pause + +INPUT_PORTS_END + + static INPUT_PORTS_START( rad_bb ) PORT_INCLUDE(xavix) @@ -1776,6 +1800,10 @@ ROM_START( ltv_tam ) ROM_END +ROM_START( tak_geig ) + ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) + ROM_LOAD("geigeki.bin", 0x000000, 0x400000, CRC(bd0c3576) SHA1(06f614dbec0225ce4ed866b98450912986d72faf) ) +ROM_END /* The e-kara cartridges require the BIOS rom to map into 2nd external bus space as they fetch palette data from @@ -1819,6 +1847,13 @@ ROM_START( epitch ) ROM_RELOAD(0x000000, 0x100000) ROM_END +ROM_START( ekaramix ) + ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) + // also has a MX87L100C 28-pin chip in the unit, possibly the USB controller. Part of the ROM contains a FAT filesystem that could possibly appear as a USB drive on the PC? + ROM_LOAD( "ekaramix.bin", 0x600000, 0x200000, CRC(ee71576e) SHA1(26f8c9edcbbed77e86a1cb5a0b91c92a16fef433) ) + ROM_RELOAD(0x000000, 0x200000) +ROM_END + ROM_START( ddrfammt ) ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) ROM_LOAD( "ekara_ddr_ha010_81947.bin", 0x600000, 0x200000, CRC(737d5d1a) SHA1(a1043047056dd27bca69767ee2044461ec549465) ) @@ -1924,6 +1959,7 @@ CONS( 2002, epo_dmon, 0, 0, xavix_i2c_24c02, xavix_i2c,xavix_i2c_sta CONS( 200?, has_wamg, 0, 0, xavix, has_wamg, xavix_state, init_xavix, "Hasbro / Milton Bradley / SSD Company LTD", "TV Wild Adventure Mini Golf (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +CONS( 2002, tak_geig, 0, 0, xavix_nv, tak_geig, xavix_state, init_xavix, "Takara / SSD Company LTD", "Geigeki Go Go Shooting (Japan)", MACHINE_IMPERFECT_SOUND ) /* Music titles: Emulation note: SEEPROM write appears to work (save NVRAM file looks valid) but game fails to read it back properly, fails backup data checksum, and blanks it again. @@ -1939,6 +1975,9 @@ CONS( 2002, ekaraphs, ekara, 0, xavix_cart_ekara, ekara, xavix_ekara_s // epitch (at least the pichi pichi pitch mermaid starter pack) uses the same internal rom as the Japanese ekara, but has less buttons, so some features aren't available (some games also seem to expect to read it with a different layout eg 'a7' cart, but 'a5' cart doesn't, so must be a way to enable that mode, or bug in code?) CONS( 2003, epitch, 0, 0, xavix_cart_ekara, ekara, xavix_ekara_state, init_xavix, "Takara / SSD Company LTD", "e-pitch (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND /*| MACHINE_IS_BIOS_ROOT*/ ) // shows Japanese message without cart +// e-kara mix was another unit that allowed you to connect to a PC, unlike e-kara web it also functions as a regular device +CONS( 200?, ekaramix, 0, 0, xavix_cart_ekara, ekara, xavix_ekara_state, init_xavix, "Takara / SSD Company LTD", "e-kara Mix (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND /*| MACHINE_IS_BIOS_ROOT*/ ) + CONS( 2001, ddrfammt, 0, 0, xavix_cart_ddrfammt,ddrfammt, xavix_cart_state, init_xavix, "Takara / Konami / SSD Company LTD", "Dance Dance Revolution Family Mat (Japan)", MACHINE_IMPERFECT_SOUND/*|MACHINE_IS_BIOS_ROOT*/ ) @@ -1952,7 +1991,6 @@ CONS( 2003, taikodp, 0, 0, xavix_i2c_taiko, taikodp, xavix_i2c_car CONS( 2006, ltv_tam, 0, 0, xavix_i2c_24lc04, ltv_tam,xavix_i2c_ltv_tam_state, init_xavix, "Bandai / SSD Company LTD", "Let's! TV Play Chou Ninki Spot! Korogashi-Houdai Tamagotchi Resort (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) - /* SuperXaviX(?) (XaviX 2000 type CPU) hardware titles (2nd XaviX generation?) these use the SSD 2000 NEC 85605-621 type CPU diff --git a/src/mame/includes/champbas.h b/src/mame/includes/champbas.h index cec1f2fa6a9..341e3feb601 100644 --- a/src/mame/includes/champbas.h +++ b/src/mame/includes/champbas.h @@ -70,7 +70,6 @@ protected: virtual void machine_start() override; virtual void video_start() override; - virtual void machine_reset() override; void champbas_map(address_map &map); void champbasj_map(address_map &map); diff --git a/src/mame/includes/galaxian.h b/src/mame/includes/galaxian.h index 1891a08da76..651c145ce1a 100644 --- a/src/mame/includes/galaxian.h +++ b/src/mame/includes/galaxian.h @@ -426,7 +426,7 @@ protected: required_device<screen_device> m_screen; required_device<palette_device> m_palette; optional_device<generic_latch_8_device> m_soundlatch; - optional_device<discrete_device> m_discrete; + optional_device<discrete_sound_device> m_discrete; optional_ioport m_fake_select; optional_ioport_array<10> m_tenspot_game_dsw; diff --git a/src/mame/includes/galaxold.h b/src/mame/includes/galaxold.h index 33ff44e778d..71c91132daf 100644 --- a/src/mame/includes/galaxold.h +++ b/src/mame/includes/galaxold.h @@ -300,7 +300,7 @@ public: void mooncrst_audio(machine_config &config); void _4in1_map(address_map &map); void bagmanmc_map(address_map &map); - void bongo(address_map &map); + void bongo_map(address_map &map); void bongo_io(address_map &map); void bullsdrtg_data_map(address_map &map); void ckongg_map(address_map &map); @@ -313,7 +313,7 @@ public: void guttang_map(address_map &map); void hexpoola_data(address_map &map); void hexpoola_io(address_map &map); - void hunchbkg(address_map &map); + void hunchbkg_map(address_map &map); void hunchbkg_data(address_map &map); void hustlerb3_map(address_map &map); void mooncrst_map(address_map &map); @@ -327,8 +327,8 @@ public: void scramb3_map(address_map &map); void scramblb_map(address_map &map); void scrambler_map(address_map &map); - void spcwarp(address_map &map); - void tazzmang(address_map &map); + void spcwarp_map(address_map &map); + void tazzmang_map(address_map &map); protected: virtual void machine_start() override { m_leds.resolve(); } diff --git a/src/mame/includes/hec2hrp.h b/src/mame/includes/hec2hrp.h index ebf29c00ac5..6fb37b2ba14 100644 --- a/src/mame/includes/hec2hrp.h +++ b/src/mame/includes/hec2hrp.h @@ -83,13 +83,13 @@ class hec2hrp_state : public driver_device public: hec2hrp_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), m_cassette(*this, "cassette"), m_printer(*this, "printer"), - m_maincpu(*this, "maincpu"), + m_palette(*this, "palette"), m_disc2cpu(*this, "disc2cpu"), m_discrete(*this, "discrete"), m_sn(*this, "sn76477"), - m_palette(*this, "palette"), m_videoram(*this,"videoram"), m_hector_videoram(*this,"hector_videoram") , m_keyboard(*this, "KEY.%u", 0), @@ -123,8 +123,10 @@ protected: DECLARE_WRITE8_MEMBER(color_a_w); DECLARE_WRITE8_MEMBER(color_b_w); + required_device<cpu_device> m_maincpu; required_device<cassette_image_device> m_cassette; optional_device<printer_image_device> m_printer; + required_device<palette_device> m_palette; private: DECLARE_WRITE8_MEMBER(minidisc_control_w); @@ -149,11 +151,9 @@ private: DECLARE_FLOPPY_FORMATS(minidisc_formats); - required_device<cpu_device> m_maincpu; optional_device<cpu_device> m_disc2cpu; required_device<discrete_device> m_discrete; required_device<sn76477_device> m_sn; - required_device<palette_device> m_palette; optional_shared_ptr<uint8_t> m_videoram; optional_shared_ptr<uint8_t> m_hector_videoram; required_ioport_array<9> m_keyboard; diff --git a/src/mame/includes/hh_tms1k.h b/src/mame/includes/hh_tms1k.h index 81307066ab6..234a2f9b4be 100644 --- a/src/mame/includes/hh_tms1k.h +++ b/src/mame/includes/hh_tms1k.h @@ -19,6 +19,7 @@ #include "cpu/tms1000/tms0980.h" #include "cpu/tms1000/tms0270.h" #include "cpu/tms1000/tp0320.h" + #include "machine/timer.h" #include "sound/spkrdev.h" @@ -56,6 +57,7 @@ public: u8 read_inputs(int columns); u8 read_rotated_inputs(int columns, u8 rowmask = 0xf); + virtual DECLARE_INPUT_CHANGED_MEMBER(reset_button); virtual DECLARE_INPUT_CHANGED_MEMBER(power_button); virtual DECLARE_WRITE_LINE_MEMBER(auto_power_off); virtual void power_off(); @@ -84,17 +86,4 @@ protected: }; -// LED segments -enum -{ - lA = 0x01, - lB = 0x02, - lC = 0x04, - lD = 0x08, - lE = 0x10, - lF = 0x20, - lG = 0x40, - lDP = 0x80 -}; - #endif // MAME_INCLUDES_HH_TMS1K_H diff --git a/src/mame/includes/witch.h b/src/mame/includes/witch.h index 1c8c56dd1b7..f63f953b063 100644 --- a/src/mame/includes/witch.h +++ b/src/mame/includes/witch.h @@ -73,8 +73,7 @@ public: protected: void common_map(address_map &map); - tilemap_t *m_gfx0a_tilemap; - tilemap_t *m_gfx0b_tilemap; + tilemap_t *m_gfx0_tilemap; tilemap_t *m_gfx1_tilemap; required_device<cpu_device> m_maincpu; @@ -98,11 +97,10 @@ protected: uint8_t m_reg_a002; uint8_t m_motor_active; - TILE_GET_INFO_MEMBER(get_gfx0b_tile_info); - TILE_GET_INFO_MEMBER(get_gfx0a_tile_info); + TILE_GET_INFO_MEMBER(get_gfx0_tile_info); TILE_GET_INFO_MEMBER(get_gfx1_tile_info); virtual void video_start() override; - uint32_t screen_update_witch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); virtual void machine_reset() override; diff --git a/src/mame/layout/arrball.lay b/src/mame/layout/arrball.lay index 547fe808612..f0cc2e2a87d 100644 --- a/src/mame/layout/arrball.lay +++ b/src/mame/layout/arrball.lay @@ -69,291 +69,17 @@ <bezel element="static_orange"><bounds x="6.3" y="16.3" width="5.4" height="5.4" /></bezel> <bezel element="static_black"><bounds x="6.7" y="16.7" width="4.6" height="4.6" /></bezel> - <!-- stupid diagonal \ --> - - <bezel element="disk_orange"><bounds x="2.0" y="12.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.1" y="12.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.2" y="12.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.3" y="12.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.4" y="12.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.5" y="12.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.6" y="12.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.7" y="12.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.8" y="12.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.9" y="12.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.0" y="13.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.1" y="13.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.2" y="13.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.3" y="13.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.4" y="13.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.5" y="13.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.6" y="13.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.7" y="13.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.8" y="13.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.9" y="13.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.0" y="14.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.1" y="14.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.2" y="14.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.3" y="14.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.4" y="14.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.5" y="14.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.6" y="14.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.7" y="14.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.8" y="14.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.9" y="14.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.0" y="15.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.1" y="15.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.2" y="15.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.3" y="15.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.4" y="15.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.5" y="15.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.6" y="15.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.7" y="15.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.8" y="15.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.9" y="15.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.0" y="16.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.1" y="16.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.2" y="16.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.3" y="16.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.4" y="16.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.5" y="16.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.6" y="16.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.7" y="16.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.8" y="16.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.9" y="16.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.0" y="17.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.1" y="17.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.2" y="17.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.3" y="17.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.4" y="17.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.5" y="17.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.6" y="17.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.7" y="17.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.8" y="17.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.9" y="17.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.0" y="18.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.1" y="18.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.2" y="18.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.3" y="18.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.4" y="18.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.5" y="18.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.6" y="18.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.7" y="18.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.8" y="18.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.9" y="18.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.0" y="19.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.1" y="19.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.2" y="19.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.3" y="19.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.4" y="19.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.5" y="19.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.6" y="19.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.7" y="19.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.8" y="19.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.9" y="19.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.0" y="20.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.1" y="20.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.2" y="20.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.3" y="20.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.4" y="20.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.5" y="20.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.6" y="20.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.7" y="20.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.8" y="20.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.9" y="20.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.0" y="21.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.1" y="21.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.2" y="21.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.3" y="21.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.4" y="21.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.5" y="21.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.6" y="21.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.7" y="21.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.8" y="21.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.9" y="21.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.0" y="22.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.1" y="22.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.2" y="22.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.3" y="22.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.4" y="22.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.5" y="22.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.6" y="22.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.7" y="22.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.8" y="22.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.9" y="22.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.0" y="23.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.1" y="23.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.2" y="23.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.3" y="23.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.4" y="23.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.5" y="23.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.6" y="23.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.7" y="23.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.8" y="23.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.9" y="23.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.0" y="24.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.1" y="24.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.2" y="24.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.3" y="24.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.4" y="24.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.5" y="24.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.6" y="24.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.7" y="24.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.8" y="24.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.9" y="24.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.0" y="25.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.1" y="25.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.2" y="25.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.3" y="25.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.4" y="25.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.5" y="25.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.6" y="25.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.7" y="25.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.8" y="25.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.9" y="25.9" width="0.4" height="0.4" /></bezel> - - <!-- stupid diagonal / --> - - <bezel element="disk_orange"><bounds x="15.9" y="12.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.8" y="12.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.7" y="12.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.6" y="12.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.5" y="12.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.4" y="12.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.3" y="12.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.2" y="12.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.1" y="12.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="15.0" y="12.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.9" y="13.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.8" y="13.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.7" y="13.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.6" y="13.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.5" y="13.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.4" y="13.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.3" y="13.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.2" y="13.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.1" y="13.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="14.0" y="13.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.9" y="14.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.8" y="14.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.7" y="14.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.6" y="14.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.5" y="14.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.4" y="14.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.3" y="14.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.2" y="14.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.1" y="14.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="13.0" y="14.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.9" y="15.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.8" y="15.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.7" y="15.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.6" y="15.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.5" y="15.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.4" y="15.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.3" y="15.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.2" y="15.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.1" y="15.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="12.0" y="15.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.9" y="16.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.8" y="16.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.7" y="16.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.6" y="16.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.5" y="16.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.4" y="16.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.3" y="16.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.2" y="16.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.1" y="16.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="11.0" y="16.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.9" y="17.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.8" y="17.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.7" y="17.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.6" y="17.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.5" y="17.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.4" y="17.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.3" y="17.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.2" y="17.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.1" y="17.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="10.0" y="17.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.9" y="18.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.8" y="18.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.7" y="18.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.6" y="18.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.5" y="18.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.4" y="18.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.3" y="18.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.2" y="18.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.1" y="18.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="9.0" y="18.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.9" y="19.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.8" y="19.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.7" y="19.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.6" y="19.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.5" y="19.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.4" y="19.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.3" y="19.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.2" y="19.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.1" y="19.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="8.0" y="19.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.9" y="20.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.8" y="20.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.7" y="20.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.6" y="20.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.5" y="20.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.4" y="20.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.3" y="20.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.2" y="20.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.1" y="20.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="7.0" y="20.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.9" y="21.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.8" y="21.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.7" y="21.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.6" y="21.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.5" y="21.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.4" y="21.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.3" y="21.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.2" y="21.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.1" y="21.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="6.0" y="21.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.9" y="22.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.8" y="22.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.7" y="22.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.6" y="22.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.5" y="22.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.4" y="22.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.3" y="22.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.2" y="22.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.1" y="22.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="5.0" y="22.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.9" y="23.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.8" y="23.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.7" y="23.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.6" y="23.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.5" y="23.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.4" y="23.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.3" y="23.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.2" y="23.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.1" y="23.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="4.0" y="23.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.9" y="24.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.8" y="24.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.7" y="24.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.6" y="24.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.5" y="24.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.4" y="24.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.3" y="24.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.2" y="24.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.1" y="24.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="3.0" y="24.9" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.9" y="25.0" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.8" y="25.1" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.7" y="25.2" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.6" y="25.3" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.5" y="25.4" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.4" y="25.5" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.3" y="25.6" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.2" y="25.7" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.1" y="25.8" width="0.4" height="0.4" /></bezel> - <bezel element="disk_orange"><bounds x="2.0" y="25.9" width="0.4" height="0.4" /></bezel> + <repeat count="140"> + <param name="x" start="2.0" increment="0.1" /> + <param name="y" start="12.0" increment="0.1" /> + <bezel element="disk_orange"><bounds x="~x~" y="~y~" width="0.4" height="0.4" /></bezel> + </repeat> + + <repeat count="140"> + <param name="x" start="15.9" increment="-0.1" /> + <param name="y" start="12.0" increment="0.1" /> + <bezel element="disk_orange"><bounds x="~x~" y="~y~" width="0.4" height="0.4" /></bezel> + </repeat> <bezel element="disk_white"><bounds x="0" y="10" width="3" height="3" /></bezel> <bezel element="disk_white"><bounds x="5" y="10" width="3" height="3" /></bezel> diff --git a/src/mame/layout/bambball.lay b/src/mame/layout/bambball.lay new file mode 100644 index 00000000000..2532200e437 --- /dev/null +++ b/src/mame/layout/bambball.lay @@ -0,0 +1,67 @@ +<?xml version="1.0"?> +<mamelayout version="2"> + +<!-- define elements --> + + <element name="white"><rect><color red="0.85" green="0.85" blue="0.85" /></rect></element> + <element name="disk_white"><disk><color red="0.85" green="0.85" blue="0.85" /></disk></element> + <element name="disk_black"><disk><color red="0" green="0" blue="0" /></disk></element> + + <element name="text_1"><text string="1"><color red="0.8" green="0.8" blue="0.8" /></text></element> + <element name="text_2"><text string="2"><color red="0.8" green="0.8" blue="0.8" /></text></element> + <element name="text_3"><text string="3"><color red="0.8" green="0.8" blue="0.8" /></text></element> + <element name="text_4"><text string="4"><color red="0.8" green="0.8" blue="0.8" /></text></element> + <element name="text_5"><text string="5"><color red="0.8" green="0.8" blue="0.8" /></text></element> + <element name="text_6"><text string="6"><color red="0.8" green="0.8" blue="0.8" /></text></element> + <element name="text_7"><text string="7"><color red="0.8" green="0.8" blue="0.8" /></text></element> + <element name="text_8"><text string="8"><color red="0.8" green="0.8" blue="0.8" /></text></element> + <element name="text_9"><text string="9"><color red="0.8" green="0.8" blue="0.8" /></text></element> + <element name="text_h"><text string="H"><color red="0.8" green="0.8" blue="0.8" /></text></element> + <element name="text_v"><text string="V"><color red="0.8" green="0.8" blue="0.8" /></text></element> + + +<!-- build screen --> + + <view name="Internal Layout"> + <bounds left="8.3" right="107.6" top="5.8" bottom="37.9" /> + <screen index="0"><bounds x="10" y="10" width="96" height="23.9" /></screen> + + <!-- baskets (simplified) --> + + <backdrop element="disk_white"><bounds x="9.3" y="13.7" width="5" height="3" /></backdrop> + <backdrop element="disk_black"><bounds x="9.6" y="14.0" width="4.4" height="2.4" /></backdrop> + <backdrop element="white"><bounds x="8.3" y="14.65" width="1.3" height="0.3" /></backdrop> + <backdrop element="white"><bounds x="8.3" y="15.35" width="1.3" height="0.3" /></backdrop> + + <backdrop element="disk_white"><bounds x="101.6" y="13.65" width="5" height="3" /></backdrop> + <backdrop element="disk_black"><bounds x="101.9" y="13.95" width="4.4" height="2.4" /></backdrop> + <backdrop element="white"><bounds x="106.3" y="14.65" width="1.3" height="0.3" /></backdrop> + <backdrop element="white"><bounds x="106.3" y="15.35" width="1.3" height="0.3" /></backdrop> + + <!-- labels --> + + <bezel element="text_1"><bounds x="11.1" y="6.2" width="5" height="3" /></bezel> + <bezel element="text_2"><bounds x="22.2" y="6.2" width="5" height="3" /></bezel> + <bezel element="text_3"><bounds x="33.3" y="6.2" width="5" height="3" /></bezel> + <bezel element="text_4"><bounds x="44.4" y="6.2" width="5" height="3" /></bezel> + <bezel element="text_5"><bounds x="55.5" y="6.2" width="5" height="3" /></bezel> + <bezel element="text_6"><bounds x="66.6" y="6.2" width="5" height="3" /></bezel> + <bezel element="text_7"><bounds x="77.7" y="6.2" width="5" height="3" /></bezel> + <bezel element="text_8"><bounds x="88.8" y="6.2" width="5" height="3" /></bezel> + <bezel element="text_9"><bounds x="99.9" y="6.2" width="5" height="3" /></bezel> + + <bezel element="text_1"><bounds x="11.1" y="34.5" width="5" height="3" /></bezel> + <bezel element="text_2"><bounds x="22.2" y="34.5" width="5" height="3" /></bezel> + <bezel element="text_3"><bounds x="33.3" y="34.5" width="5" height="3" /></bezel> + <bezel element="text_4"><bounds x="44.4" y="34.5" width="5" height="3" /></bezel> + <bezel element="text_5"><bounds x="55.5" y="34.5" width="5" height="3" /></bezel> + <bezel element="text_6"><bounds x="66.6" y="34.5" width="5" height="3" /></bezel> + <bezel element="text_7"><bounds x="77.7" y="34.5" width="5" height="3" /></bezel> + <bezel element="text_8"><bounds x="88.8" y="34.5" width="5" height="3" /></bezel> + <bezel element="text_9"><bounds x="99.9" y="34.5" width="5" height="3" /></bezel> + + <bezel element="text_h"><bounds x="7.8" y="6.2" width="5" height="3" /></bezel> + <bezel element="text_v"><bounds x="103.1" y="34.5" width="5" height="3" /></bezel> + + </view> +</mamelayout> diff --git a/src/mame/layout/f2pbball.lay b/src/mame/layout/f2pbball.lay index e62927601e1..6328b8a4129 100644 --- a/src/mame/layout/f2pbball.lay +++ b/src/mame/layout/f2pbball.lay @@ -200,103 +200,29 @@ <!-- diamond city --> - <bezel element="disk_white"><bounds x="5.9" y="17.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="6.4" y="17.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="6.9" y="16.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="7.4" y="16.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="7.9" y="15.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="8.4" y="15.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="8.9" y="14.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="9.4" y="14.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="9.9" y="13.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="10.4" y="13.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="10.9" y="12.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="11.4" y="12.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="11.9" y="11.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="12.4" y="11.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="12.9" y="10.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="13.4" y="10.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="13.9" y="9.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="14.4" y="9.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="14.9" y="8.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="15.4" y="8.4" width="0.2" height="0.2" /></bezel> - - <bezel element="disk_white"><bounds x="15.9" y="8.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="16.4" y="9.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="16.9" y="9.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="17.4" y="10.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="17.9" y="10.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="18.4" y="11.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="18.9" y="11.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="19.4" y="12.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="19.9" y="12.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="20.4" y="13.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="20.9" y="13.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="21.4" y="14.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="21.9" y="14.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="22.4" y="15.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="22.9" y="15.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="23.4" y="16.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="23.9" y="16.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="24.4" y="17.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="24.9" y="17.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="25.4" y="18.4" width="0.2" height="0.2" /></bezel> - - <bezel element="disk_white"><bounds x="24.9" y="18.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="24.4" y="19.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="23.9" y="19.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="23.4" y="20.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="22.9" y="20.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="22.4" y="21.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="21.9" y="21.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="21.4" y="22.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="20.9" y="22.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="20.4" y="23.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="19.9" y="23.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="19.4" y="24.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="18.9" y="24.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="18.4" y="25.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="17.9" y="25.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="17.4" y="26.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="16.9" y="26.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="16.4" y="27.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="15.9" y="27.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="15.4" y="28.4" width="0.2" height="0.2" /></bezel> - - <bezel element="disk_white"><bounds x="14.9" y="27.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="14.4" y="27.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="13.9" y="26.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="13.4" y="26.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="12.9" y="25.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="12.4" y="25.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="11.9" y="24.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="11.4" y="24.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="10.9" y="23.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="10.4" y="23.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="9.9" y="22.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="9.4" y="22.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="8.9" y="21.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="8.4" y="21.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="7.9" y="20.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="7.4" y="20.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="6.9" y="19.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="6.4" y="19.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="5.9" y="18.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="5.4" y="18.4" width="0.2" height="0.2" /></bezel> - - <bezel element="disk_white"><bounds x="4.9" y="17.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="4.4" y="17.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="3.9" y="16.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="3.4" y="16.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="2.9" y="15.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="2.4" y="15.4" width="0.2" height="0.2" /></bezel> - - <bezel element="disk_white"><bounds x="28.4" y="15.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="27.9" y="15.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="27.4" y="16.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="26.9" y="16.9" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="26.4" y="17.4" width="0.2" height="0.2" /></bezel> - <bezel element="disk_white"><bounds x="25.9" y="17.9" width="0.2" height="0.2" /></bezel> + <repeat count="20"> + <param name="x" start="15.4" increment="0.5" /> + <param name="y" start="8.4" increment="0.5" /> + <bezel element="disk_white"><bounds x="~x~" y="~y~" width="0.2" height="0.2" /></bezel> + </repeat> + + <repeat count="20"> + <param name="x" start="15.4" increment="-0.5" /> + <param name="y" start="8.4" increment="0.5" /> + <bezel element="disk_white"><bounds x="~x~" y="~y~" width="0.2" height="0.2" /></bezel> + </repeat> + + <repeat count="26"> + <param name="x" start="15.4" increment="0.5" /> + <param name="y" start="28.4" increment="-0.5" /> + <bezel element="disk_white"><bounds x="~x~" y="~y~" width="0.2" height="0.2" /></bezel> + </repeat> + + <repeat count="26"> + <param name="x" start="15.4" increment="-0.5" /> + <param name="y" start="28.4" increment="-0.5" /> + <bezel element="disk_white"><bounds x="~x~" y="~y~" width="0.2" height="0.2" /></bezel> + </repeat> <!-- field leds --> diff --git a/src/mame/layout/fidel_acr.lay b/src/mame/layout/fidel_acr.lay new file mode 100644 index 00000000000..9c448b2ab6d --- /dev/null +++ b/src/mame/layout/fidel_acr.lay @@ -0,0 +1,173 @@ +<?xml version="1.0"?> +<mamelayout version="2"> + +<!-- define elements --> + + <element name="static_gray"><rect><color red="0.6" green="0.6" blue="0.6" /></rect></element> + + <element name="digit" defstate="0"> + <led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg> + </element> + + <element name="led" defstate="0"> + <disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk> + <disk state="0"><color red="0.1" green="0.01" blue="0.015" /></disk> + </element> + + <element name="hl" defstate="0"> + <text string=" "> + <bounds x="0.0" y="0.0" width="1.0" height="1.0" /> + <color red="0.0" green="0.0" blue="0.0" /> + </text> + <rect state="1"> + <bounds x="0.0" y="0.0" width="1.0" height="1.0" /> + <color red="0.0" green="0.0" blue="0.0" /> + </rect> + </element> + + <element name="text_win"><text string="I WIN"><color red="0.6" green="0.6" blue="0.6" /></text></element> + <element name="text_lose"><text string="I LOSE"><color red="0.6" green="0.6" blue="0.6" /></text></element> + <element name="text_from"><text string="FROM"><color red="0.6" green="0.6" blue="0.6" /></text></element> + <element name="text_to"><text string="TO"><color red="0.6" green="0.6" blue="0.6" /></text></element> + + <element name="text_b1"> + <rect><color red="0.6" green="0.6" blue="0.6" /></rect> + <text string="RE"><color red="0.04" green="0.04" blue="0.04" /></text> + </element> + <element name="text_b2"> + <rect><color red="0.6" green="0.6" blue="0.6" /></rect> + <text string="CL"><color red="0.04" green="0.04" blue="0.04" /></text> + </element> + <element name="text_b3"> + <rect><color red="0.6" green="0.6" blue="0.6" /></rect> + <text string="TO"><color red="0.04" green="0.04" blue="0.04" /></text> + </element> + <element name="text_b4"> + <rect><color red="0.6" green="0.6" blue="0.6" /></rect> + <text string="EN"><color red="0.04" green="0.04" blue="0.04" /></text> + </element> + <element name="text_b5"> + <rect><color red="0.6" green="0.6" blue="0.6" /></rect> + <text string="LV"><color red="0.04" green="0.04" blue="0.04" /></text> + </element> + <element name="text_b6"> + <rect><color red="0.6" green="0.6" blue="0.6" /></rect> + <text string="7"><color red="0.04" green="0.04" blue="0.04" /></text> + </element> + <element name="text_b7"> + <rect><color red="0.6" green="0.6" blue="0.6" /></rect> + <text string="8"><color red="0.04" green="0.04" blue="0.04" /></text> + </element> + <element name="text_b8"> + <rect><color red="0.6" green="0.6" blue="0.6" /></rect> + <text string="9"><color red="0.04" green="0.04" blue="0.04" /></text> + </element> + <element name="text_b9"> + <rect><color red="0.6" green="0.6" blue="0.6" /></rect> + <text string="PV"><color red="0.04" green="0.04" blue="0.04" /></text> + </element> + <element name="text_b10"> + <rect><color red="0.6" green="0.6" blue="0.6" /></rect> + <text string="4"><color red="0.04" green="0.04" blue="0.04" /></text> + </element> + <element name="text_b11"> + <rect><color red="0.6" green="0.6" blue="0.6" /></rect> + <text string="5"><color red="0.04" green="0.04" blue="0.04" /></text> + </element> + <element name="text_b12"> + <rect><color red="0.6" green="0.6" blue="0.6" /></rect> + <text string="6"><color red="0.04" green="0.04" blue="0.04" /></text> + </element> + <element name="text_b13"> + <rect><color red="0.6" green="0.6" blue="0.6" /></rect> + <text string="0"><color red="0.04" green="0.04" blue="0.04" /></text> + </element> + <element name="text_b14"> + <rect><color red="0.6" green="0.6" blue="0.6" /></rect> + <text string="1"><color red="0.04" green="0.04" blue="0.04" /></text> + </element> + <element name="text_b15"> + <rect><color red="0.6" green="0.6" blue="0.6" /></rect> + <text string="2"><color red="0.04" green="0.04" blue="0.04" /></text> + </element> + <element name="text_b16"> + <rect><color red="0.6" green="0.6" blue="0.6" /></rect> + <text string="3"><color red="0.04" green="0.04" blue="0.04" /></text> + </element> + + +<!-- build screen --> + + <view name="Internal Layout"> + <bounds left="-0.5" right="18" top="7.7" bottom="36" /> + + <!-- 7segs/leds --> + + <bezel element="text_win"><bounds x="0.7" y="8.2" width="8" height="2" /></bezel> + <bezel element="text_lose"><bounds x="10.5" y="8.2" width="8" height="2" /></bezel> + <bezel name="4.a" element="led"><bounds x="0" y="8.5" width="1.5" height="1.5" /></bezel> + <bezel name="5.a" element="led"><bounds x="9.5" y="8.5" width="1.5" height="1.5" /></bezel> + + <bezel element="text_from"><bounds x="0" y="17.2" width="8" height="2" /></bezel> + <bezel element="text_to"><bounds x="9.5" y="17.2" width="8" height="2" /></bezel> + + <bezel name="digit0" element="digit"><bounds x="0" y="11" width="4" height="6" /></bezel> + <bezel name="digit1" element="digit"><bounds x="4" y="11" width="4" height="6" /></bezel> + <bezel name="digit2" element="digit"><bounds x="9.5" y="11" width="4" height="6" /></bezel> + <bezel name="digit3" element="digit"><bounds x="13.5" y="11" width="4" height="6" /></bezel> + + <!-- button panel --> + + <bezel element="static_gray"><bounds x="0" y="20" width="4" height="3" /></bezel> + <bezel element="static_gray"><bounds x="4.5" y="20" width="4" height="3" /></bezel> + <bezel element="static_gray"><bounds x="9" y="20" width="4" height="3" /></bezel> + <bezel element="static_gray"><bounds x="13.5" y="20" width="4" height="3" /></bezel> + <bezel element="static_gray"><bounds x="0" y="24" width="4" height="3" /></bezel> + <bezel element="static_gray"><bounds x="4.5" y="24" width="4" height="3" /></bezel> + <bezel element="static_gray"><bounds x="9" y="24" width="4" height="3" /></bezel> + <bezel element="static_gray"><bounds x="13.5" y="24" width="4" height="3" /></bezel> + <bezel element="static_gray"><bounds x="0" y="28" width="4" height="3" /></bezel> + <bezel element="static_gray"><bounds x="4.5" y="28" width="4" height="3" /></bezel> + <bezel element="static_gray"><bounds x="9" y="28" width="4" height="3" /></bezel> + <bezel element="static_gray"><bounds x="13.5" y="28" width="4" height="3" /></bezel> + <bezel element="static_gray"><bounds x="0" y="32" width="4" height="3" /></bezel> + <bezel element="static_gray"><bounds x="4.5" y="32" width="4" height="3" /></bezel> + <bezel element="static_gray"><bounds x="9" y="32" width="4" height="3" /></bezel> + <bezel element="static_gray"><bounds x="13.5" y="32" width="4" height="3" /></bezel> + + <bezel element="text_b1"><bounds x="0.1" y="20.5" width="3.8" height="2" /></bezel> + <bezel element="text_b2"><bounds x="4.6" y="20.5" width="3.8" height="2" /></bezel> + <bezel element="text_b3"><bounds x="9.1" y="20.5" width="3.8" height="2" /></bezel> + <bezel element="text_b4"><bounds x="13.6" y="20.5" width="3.8" height="2" /></bezel> + <bezel element="text_b5"><bounds x="0.1" y="24.5" width="3.8" height="2" /></bezel> + <bezel element="text_b6"><bounds x="4.6" y="24.5" width="3.8" height="2" /></bezel> + <bezel element="text_b7"><bounds x="9.1" y="24.5" width="3.8" height="2" /></bezel> + <bezel element="text_b8"><bounds x="13.6" y="24.5" width="3.8" height="2" /></bezel> + <bezel element="text_b9"><bounds x="0.1" y="28.5" width="3.8" height="2" /></bezel> + <bezel element="text_b10"><bounds x="4.6" y="28.5" width="3.8" height="2" /></bezel> + <bezel element="text_b11"><bounds x="9.1" y="28.5" width="3.8" height="2" /></bezel> + <bezel element="text_b12"><bounds x="13.6" y="28.5" width="3.8" height="2" /></bezel> + <bezel element="text_b13"><bounds x="0.1" y="32.5" width="3.8" height="2" /></bezel> + <bezel element="text_b14"><bounds x="4.6" y="32.5" width="3.8" height="2" /></bezel> + <bezel element="text_b15"><bounds x="9.1" y="32.5" width="3.8" height="2" /></bezel> + <bezel element="text_b16"><bounds x="13.6" y="32.5" width="3.8" height="2" /></bezel> + + <bezel element="hl" inputtag="RESET" inputmask="0x01"><bounds x="0" y="20" width="4" height="3" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.1" inputmask="0x01"><bounds x="4.5" y="20" width="4" height="3" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.2" inputmask="0x01"><bounds x="9" y="20" width="4" height="3" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.3" inputmask="0x01"><bounds x="13.5" y="20" width="4" height="3" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.0" inputmask="0x02"><bounds x="0" y="24" width="4" height="3" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.1" inputmask="0x02"><bounds x="4.5" y="24" width="4" height="3" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.2" inputmask="0x02"><bounds x="9" y="24" width="4" height="3" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.3" inputmask="0x02"><bounds x="13.5" y="24" width="4" height="3" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.0" inputmask="0x04"><bounds x="0" y="28" width="4" height="3" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.1" inputmask="0x04"><bounds x="4.5" y="28" width="4" height="3" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.2" inputmask="0x04"><bounds x="9" y="28" width="4" height="3" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.3" inputmask="0x04"><bounds x="13.5" y="28" width="4" height="3" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.0" inputmask="0x08"><bounds x="0" y="32" width="4" height="3" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.1" inputmask="0x08"><bounds x="4.5" y="32" width="4" height="3" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.2" inputmask="0x08"><bounds x="9" y="32" width="4" height="3" /><color alpha="0.2" /></bezel> + <bezel element="hl" inputtag="IN.3" inputmask="0x08"><bounds x="13.5" y="32" width="4" height="3" /><color alpha="0.2" /></bezel> + + </view> +</mamelayout> diff --git a/src/mame/layout/fidel_cc10.lay b/src/mame/layout/fidel_cc10.lay index b887a90162c..2d5c459780d 100644 --- a/src/mame/layout/fidel_cc10.lay +++ b/src/mame/layout/fidel_cc10.lay @@ -105,8 +105,8 @@ <bezel element="text_check"><bounds x="1" y="8.2" width="8" height="2" /></bezel> <bezel element="text_lose"><bounds x="10.5" y="8.2" width="8" height="2" /></bezel> - <bezel name="1.7" element="led"><bounds x="0" y="8.5" width="1.5" height="1.5" /></bezel> - <bezel name="0.7" element="led"><bounds x="9.5" y="8.5" width="1.5" height="1.5" /></bezel> + <bezel name="4.a" element="led"><bounds x="0" y="8.5" width="1.5" height="1.5" /></bezel> + <bezel name="5.a" element="led"><bounds x="9.5" y="8.5" width="1.5" height="1.5" /></bezel> <bezel element="text_from"><bounds x="0" y="17.2" width="8" height="2" /></bezel> <bezel element="text_to"><bounds x="9.5" y="17.2" width="8" height="2" /></bezel> diff --git a/src/mame/layout/gckong.lay b/src/mame/layout/gckong.lay new file mode 100644 index 00000000000..a1c7229dcc2 --- /dev/null +++ b/src/mame/layout/gckong.lay @@ -0,0 +1,43 @@ +<?xml version="1.0"?> +<mamelayout version="2"> + +<!-- define elements --> + + <element name="white"><rect><color red="0.85" green="0.85" blue="0.85" /></rect></element> + + <element name="ladder"> + <rect> + <bounds x="0" y="0" width="1" height="10" /> + <color red="1" green="1" blue="1" /> + </rect> + <rect> + <bounds x="5" y="0" width="1" height="10" /> + <color red="1" green="1" blue="1" /> + </rect> + <rect> + <bounds x="0.5" y="0.5" width="5" height="0.5" /> + <color red="1" green="1" blue="1" /> + </rect> + <rect> + <bounds x="0.5" y="4.75" width="5" height="0.5" /> + <color red="1" green="1" blue="1" /> + </rect> + <rect> + <bounds x="0.5" y="9" width="5" height="0.5" /> + <color red="1" green="1" blue="1" /> + </rect> + </element> + + +<!-- build screen --> + + <view name="Internal Layout"> + <screen index="0"><bounds left="0" top="0" right="479" bottom="1080" /></screen> + + <bezel element="ladder"><bounds x="0" y="290" width="55" height="213" /><color alpha="0.85" /></bezel> + <bezel element="ladder"><bounds x="424" y="484" width="55" height="213" /><color alpha="0.85" /></bezel> + <bezel element="ladder"><bounds x="0" y="680" width="55" height="213" /><color alpha="0.85" /></bezel> + <bezel element="ladder"><bounds x="424" y="874" width="55" height="213" /><color alpha="0.85" /></bezel> + + </view> +</mamelayout> diff --git a/src/mame/layout/h2hbaskb.lay b/src/mame/layout/h2hbaskb.lay index d96cabfd003..ecbd51579a2 100644 --- a/src/mame/layout/h2hbaskb.lay +++ b/src/mame/layout/h2hbaskb.lay @@ -17,10 +17,6 @@ <disk state="0"><color red="0.14" green="0.02" blue="0.03" /></disk> <disk state="1"><color red="1.0" green="0.20" blue="0.22" /></disk> </element> - <element name="ledr" defstate="0"> - <rect state="0"><color red="0.14" green="0.02" blue="0.03" /></rect> - <rect state="1"><color red="1.0" green="0.20" blue="0.22" /></rect> - </element> <element name="text_home"><text string="HOME"><color red="0.85" green="0.85" blue="0.85" /></text></element> <element name="text_away"><text string="AWAY"><color red="0.85" green="0.85" blue="0.85" /></text></element> @@ -88,36 +84,63 @@ <bezel name="2.0" element="led"><bounds x="90" y="75" width="4" height="4" /></bezel> <bezel element="text_away"><bounds x="86" y="80.5" width="12" height="3" /></bezel> + <!-- defense leds --> + + <repeat count="41"> + <param name="x" start="45.1" increment="0.05" /> + <param name="y" start="39.6" increment="0.048" /> + <bezel name="8.0" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="41"> + <param name="x" start="103.7" increment="-0.05" /> + <param name="y" start="39.6" increment="0.048" /> + <bezel name="8.4" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="60"> + <param name="x" start="73" increment="0.05" /> + <param name="y" start="46.5" increment="0.0" /> + <bezel name="8.2" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="56"> + <param name="x" start="55.8" increment="-0.011" /> + <param name="y" start="51.7" increment="0.05" /> + <bezel name="8.1" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="56"> + <param name="x" start="93.3" increment="0.011" /> + <param name="y" start="51.7" increment="0.05" /> + <bezel name="8.3" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + <!-- small leds --> <!-- the leds marked "x", sometimes seen unpopulated, maybe cutting costs in some of the production batches --> <bezel name="3.1" element="led"><bounds x="57.1" y="29.1" width="1" height="1" /></bezel> <bezel name="3.2" element="led"><bounds x="52.7" y="33.7" width="1" height="1" /></bezel> <bezel name="3.3" element="led"><bounds x="48.3" y="38.3" width="1" height="1" /></bezel> <!-- x --> - <bezel name="8.0" element="ledr"><bounds x="44.6" y="40.6" width="4" height="1" /></bezel> <bezel name="3.4" element="led"><bounds x="43.9" y="42.9" width="1" height="1" /></bezel> <bezel name="4.1" element="led"><bounds x="74.5" y="34" width="1" height="1" /></bezel> <bezel name="4.2" element="led"><bounds x="74.5" y="39" width="1" height="1" /></bezel> <bezel name="4.3" element="led"><bounds x="74.5" y="44" width="1" height="1" /></bezel> <!-- x --> - <bezel name="8.2" element="ledr"><bounds x="73" y="46.5" width="4" height="1" /></bezel> <bezel name="4.4" element="led"><bounds x="74.5" y="49" width="1" height="1" /></bezel> <bezel name="5.1" element="led"><bounds x="91.9" y="29.1" width="1" height="1" /></bezel> <bezel name="5.2" element="led"><bounds x="96.3" y="33.7" width="1" height="1" /></bezel> <bezel name="5.3" element="led"><bounds x="100.7" y="38.3" width="1" height="1" /></bezel> <!-- x --> - <bezel name="8.4" element="ledr"><bounds x="101.4" y="40.6" width="4" height="1" /></bezel> <bezel name="5.4" element="led"><bounds x="105.1" y="42.9" width="1" height="1" /></bezel> <bezel name="11.1" element="led"><bounds x="45.6" y="50.9" width="1" height="1" /></bezel> <bezel name="11.2" element="led"><bounds x="52.2" y="52.3" width="1" height="1" /></bezel> - <bezel name="8.1" element="ledr"><bounds x="55.5" y="51.5" width="1" height="4" /></bezel> <bezel name="11.3" element="led"><bounds x="58.8" y="53.7" width="1" height="1" /></bezel> <!-- x --> <bezel name="11.4" element="led"><bounds x="65.4" y="55.1" width="1" height="1" /></bezel> <bezel name="0.4" element="led"><bounds x="103.4" y="50.9" width="1" height="1" /></bezel> <bezel name="0.3" element="led"><bounds x="96.8" y="52.3" width="1" height="1" /></bezel> - <bezel name="8.3" element="ledr"><bounds x="93.5" y="51.5" width="1" height="4" /></bezel> <bezel name="0.2" element="led"><bounds x="90.2" y="53.7" width="1" height="1" /></bezel> <!-- x --> <bezel name="0.1" element="led"><bounds x="83.6" y="55.1" width="1" height="1" /></bezel> diff --git a/src/mame/layout/h2hbaskbc.lay b/src/mame/layout/h2hbaskbc.lay index e919638c7de..6be40424189 100644 --- a/src/mame/layout/h2hbaskbc.lay +++ b/src/mame/layout/h2hbaskbc.lay @@ -17,10 +17,6 @@ <disk state="0"><color red="0.14" green="0.02" blue="0.03" /></disk> <disk state="1"><color red="1.0" green="0.20" blue="0.22" /></disk> </element> - <element name="ledr" defstate="0"> - <rect state="0"><color red="0.14" green="0.02" blue="0.03" /></rect> - <rect state="1"><color red="1.0" green="0.20" blue="0.22" /></rect> - </element> <element name="text_home"><text string="HOME"><color red="0.85" green="0.85" blue="0.85" /></text></element> <element name="text_away"><text string="AWAY"><color red="0.85" green="0.85" blue="0.85" /></text></element> @@ -88,36 +84,63 @@ <bezel name="10.0" element="led"><bounds x="90" y="75" width="4" height="4" /></bezel> <bezel element="text_away"><bounds x="86" y="80.5" width="12" height="3" /></bezel> + <!-- defense leds --> + + <repeat count="41"> + <param name="x" start="45.1" increment="0.05" /> + <param name="y" start="39.6" increment="0.048" /> + <bezel name="2.0" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="41"> + <param name="x" start="103.7" increment="-0.05" /> + <param name="y" start="39.6" increment="0.048" /> + <bezel name="2.4" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="60"> + <param name="x" start="73" increment="0.05" /> + <param name="y" start="46.5" increment="0.0" /> + <bezel name="2.2" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="56"> + <param name="x" start="55.8" increment="-0.011" /> + <param name="y" start="51.7" increment="0.05" /> + <bezel name="2.1" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="56"> + <param name="x" start="93.3" increment="0.011" /> + <param name="y" start="51.7" increment="0.05" /> + <bezel name="2.3" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + <!-- small leds --> <!-- the leds marked "x", sometimes seen unpopulated, maybe cutting costs in some of the production batches --> <bezel name="11.1" element="led"><bounds x="57.1" y="29.1" width="1" height="1" /></bezel> <bezel name="11.2" element="led"><bounds x="52.7" y="33.7" width="1" height="1" /></bezel> <bezel name="11.3" element="led"><bounds x="48.3" y="38.3" width="1" height="1" /></bezel> <!-- x --> - <bezel name="2.0" element="ledr"><bounds x="44.6" y="40.6" width="4" height="1" /></bezel> <bezel name="11.4" element="led"><bounds x="43.9" y="42.9" width="1" height="1" /></bezel> <bezel name="12.1" element="led"><bounds x="74.5" y="34" width="1" height="1" /></bezel> <bezel name="12.2" element="led"><bounds x="74.5" y="39" width="1" height="1" /></bezel> <bezel name="12.3" element="led"><bounds x="74.5" y="44" width="1" height="1" /></bezel> <!-- x --> - <bezel name="2.2" element="ledr"><bounds x="73" y="46.5" width="4" height="1" /></bezel> <bezel name="12.4" element="led"><bounds x="74.5" y="49" width="1" height="1" /></bezel> <bezel name="13.1" element="led"><bounds x="91.9" y="29.1" width="1" height="1" /></bezel> <bezel name="13.2" element="led"><bounds x="96.3" y="33.7" width="1" height="1" /></bezel> <bezel name="13.3" element="led"><bounds x="100.7" y="38.3" width="1" height="1" /></bezel> <!-- x --> - <bezel name="2.4" element="ledr"><bounds x="101.4" y="40.6" width="4" height="1" /></bezel> <bezel name="13.4" element="led"><bounds x="105.1" y="42.9" width="1" height="1" /></bezel> <bezel name="5.1" element="led"><bounds x="45.6" y="50.9" width="1" height="1" /></bezel> <bezel name="5.2" element="led"><bounds x="52.2" y="52.3" width="1" height="1" /></bezel> - <bezel name="2.1" element="ledr"><bounds x="55.5" y="51.5" width="1" height="4" /></bezel> <bezel name="5.3" element="led"><bounds x="58.8" y="53.7" width="1" height="1" /></bezel> <!-- x --> <bezel name="5.4" element="led"><bounds x="65.4" y="55.1" width="1" height="1" /></bezel> <bezel name="8.4" element="led"><bounds x="103.4" y="50.9" width="1" height="1" /></bezel> <bezel name="8.3" element="led"><bounds x="96.8" y="52.3" width="1" height="1" /></bezel> - <bezel name="2.3" element="ledr"><bounds x="93.5" y="51.5" width="1" height="4" /></bezel> <bezel name="8.2" element="led"><bounds x="90.2" y="53.7" width="1" height="1" /></bezel> <!-- x --> <bezel name="8.1" element="led"><bounds x="83.6" y="55.1" width="1" height="1" /></bezel> diff --git a/src/mame/layout/h2hhockey.lay b/src/mame/layout/h2hhockey.lay index fa363570119..fb96bcca50b 100644 --- a/src/mame/layout/h2hhockey.lay +++ b/src/mame/layout/h2hhockey.lay @@ -17,10 +17,6 @@ <disk state="0"><color red="0.14" green="0.02" blue="0.03" /></disk> <disk state="1"><color red="1.0" green="0.20" blue="0.22" /></disk> </element> - <element name="ledr" defstate="0"> - <rect state="0"><color red="0.14" green="0.02" blue="0.03" /></rect> - <rect state="1"><color red="1.0" green="0.20" blue="0.22" /></rect> - </element> <element name="text_score1"><text string="S C"><color red="0.85" green="0.85" blue="0.85" /></text></element> <element name="text_score2"><text string="R E"><color red="0.85" green="0.85" blue="0.85" /></text></element> @@ -78,36 +74,63 @@ <bezel name="2.0" element="led"><bounds x="90" y="75" width="4" height="4" /></bezel> <bezel element="text_away"><bounds x="86" y="80.5" width="12" height="3" /></bezel> + <!-- defense leds --> + + <repeat count="41"> + <param name="x" start="45.1" increment="0.05" /> + <param name="y" start="39.6" increment="0.048" /> + <bezel name="8.0" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="41"> + <param name="x" start="103.7" increment="-0.05" /> + <param name="y" start="39.6" increment="0.048" /> + <bezel name="8.4" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="60"> + <param name="x" start="73" increment="0.05" /> + <param name="y" start="46.5" increment="0.0" /> + <bezel name="8.2" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="56"> + <param name="x" start="55.8" increment="-0.011" /> + <param name="y" start="51.7" increment="0.05" /> + <bezel name="8.1" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="56"> + <param name="x" start="93.3" increment="0.011" /> + <param name="y" start="51.7" increment="0.05" /> + <bezel name="8.3" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + <!-- small leds --> <!-- the leds marked "x", sometimes seen unpopulated, maybe cutting costs in some of the production batches --> <bezel name="3.1" element="led"><bounds x="57.1" y="29.1" width="1" height="1" /></bezel> <bezel name="3.2" element="led"><bounds x="52.7" y="33.7" width="1" height="1" /></bezel> <bezel name="3.3" element="led"><bounds x="48.3" y="38.3" width="1" height="1" /></bezel> <!-- x --> - <bezel name="8.0" element="ledr"><bounds x="44.6" y="40.6" width="4" height="1" /></bezel> <bezel name="3.4" element="led"><bounds x="43.9" y="42.9" width="1" height="1" /></bezel> <bezel name="4.1" element="led"><bounds x="74.5" y="34" width="1" height="1" /></bezel> <bezel name="4.2" element="led"><bounds x="74.5" y="39" width="1" height="1" /></bezel> <bezel name="4.3" element="led"><bounds x="74.5" y="44" width="1" height="1" /></bezel> <!-- x --> - <bezel name="8.2" element="ledr"><bounds x="73" y="46.5" width="4" height="1" /></bezel> <bezel name="4.4" element="led"><bounds x="74.5" y="49" width="1" height="1" /></bezel> <bezel name="5.1" element="led"><bounds x="91.9" y="29.1" width="1" height="1" /></bezel> <bezel name="5.2" element="led"><bounds x="96.3" y="33.7" width="1" height="1" /></bezel> <bezel name="5.3" element="led"><bounds x="100.7" y="38.3" width="1" height="1" /></bezel> <!-- x --> - <bezel name="8.4" element="ledr"><bounds x="101.4" y="40.6" width="4" height="1" /></bezel> <bezel name="5.4" element="led"><bounds x="105.1" y="42.9" width="1" height="1" /></bezel> <bezel name="11.1" element="led"><bounds x="45.6" y="50.9" width="1" height="1" /></bezel> <bezel name="11.2" element="led"><bounds x="52.2" y="52.3" width="1" height="1" /></bezel> - <bezel name="8.1" element="ledr"><bounds x="55.5" y="51.5" width="1" height="4" /></bezel> <bezel name="11.3" element="led"><bounds x="58.8" y="53.7" width="1" height="1" /></bezel> <!-- x --> <bezel name="11.4" element="led"><bounds x="65.4" y="55.1" width="1" height="1" /></bezel> <bezel name="0.4" element="led"><bounds x="103.4" y="50.9" width="1" height="1" /></bezel> <bezel name="0.3" element="led"><bounds x="96.8" y="52.3" width="1" height="1" /></bezel> - <bezel name="8.3" element="ledr"><bounds x="93.5" y="51.5" width="1" height="4" /></bezel> <bezel name="0.2" element="led"><bounds x="90.2" y="53.7" width="1" height="1" /></bezel> <!-- x --> <bezel name="0.1" element="led"><bounds x="83.6" y="55.1" width="1" height="1" /></bezel> diff --git a/src/mame/layout/h2hhockeyc.lay b/src/mame/layout/h2hhockeyc.lay index f4dcf0bef24..f9121fd0979 100644 --- a/src/mame/layout/h2hhockeyc.lay +++ b/src/mame/layout/h2hhockeyc.lay @@ -17,10 +17,6 @@ <disk state="0"><color red="0.14" green="0.02" blue="0.03" /></disk> <disk state="1"><color red="1.0" green="0.20" blue="0.22" /></disk> </element> - <element name="ledr" defstate="0"> - <rect state="0"><color red="0.14" green="0.02" blue="0.03" /></rect> - <rect state="1"><color red="1.0" green="0.20" blue="0.22" /></rect> - </element> <element name="text_score1"><text string="S C"><color red="0.85" green="0.85" blue="0.85" /></text></element> <element name="text_score2"><text string="R E"><color red="0.85" green="0.85" blue="0.85" /></text></element> @@ -78,36 +74,63 @@ <bezel name="10.0" element="led"><bounds x="90" y="75" width="4" height="4" /></bezel> <bezel element="text_away"><bounds x="86" y="80.5" width="12" height="3" /></bezel> + <!-- defense leds --> + + <repeat count="41"> + <param name="x" start="45.1" increment="0.05" /> + <param name="y" start="39.6" increment="0.048" /> + <bezel name="2.0" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="41"> + <param name="x" start="103.7" increment="-0.05" /> + <param name="y" start="39.6" increment="0.048" /> + <bezel name="2.4" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="60"> + <param name="x" start="73" increment="0.05" /> + <param name="y" start="46.5" increment="0.0" /> + <bezel name="2.2" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="56"> + <param name="x" start="55.8" increment="-0.011" /> + <param name="y" start="51.7" increment="0.05" /> + <bezel name="2.1" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="56"> + <param name="x" start="93.3" increment="0.011" /> + <param name="y" start="51.7" increment="0.05" /> + <bezel name="2.3" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + <!-- small leds --> <!-- the leds marked "x", sometimes seen unpopulated, maybe cutting costs in some of the production batches --> <bezel name="11.1" element="led"><bounds x="57.1" y="29.1" width="1" height="1" /></bezel> <bezel name="11.2" element="led"><bounds x="52.7" y="33.7" width="1" height="1" /></bezel> <bezel name="11.3" element="led"><bounds x="48.3" y="38.3" width="1" height="1" /></bezel> <!-- x --> - <bezel name="2.0" element="ledr"><bounds x="44.6" y="40.6" width="4" height="1" /></bezel> <bezel name="11.4" element="led"><bounds x="43.9" y="42.9" width="1" height="1" /></bezel> <bezel name="12.1" element="led"><bounds x="74.5" y="34" width="1" height="1" /></bezel> <bezel name="12.2" element="led"><bounds x="74.5" y="39" width="1" height="1" /></bezel> <bezel name="12.3" element="led"><bounds x="74.5" y="44" width="1" height="1" /></bezel> <!-- x --> - <bezel name="2.2" element="ledr"><bounds x="73" y="46.5" width="4" height="1" /></bezel> <bezel name="12.4" element="led"><bounds x="74.5" y="49" width="1" height="1" /></bezel> <bezel name="13.1" element="led"><bounds x="91.9" y="29.1" width="1" height="1" /></bezel> <bezel name="13.2" element="led"><bounds x="96.3" y="33.7" width="1" height="1" /></bezel> <bezel name="13.3" element="led"><bounds x="100.7" y="38.3" width="1" height="1" /></bezel> <!-- x --> - <bezel name="2.4" element="ledr"><bounds x="101.4" y="40.6" width="4" height="1" /></bezel> <bezel name="13.4" element="led"><bounds x="105.1" y="42.9" width="1" height="1" /></bezel> <bezel name="5.1" element="led"><bounds x="45.6" y="50.9" width="1" height="1" /></bezel> <bezel name="5.2" element="led"><bounds x="52.2" y="52.3" width="1" height="1" /></bezel> - <bezel name="2.1" element="ledr"><bounds x="55.5" y="51.5" width="1" height="4" /></bezel> <bezel name="5.3" element="led"><bounds x="58.8" y="53.7" width="1" height="1" /></bezel> <!-- x --> <bezel name="5.4" element="led"><bounds x="65.4" y="55.1" width="1" height="1" /></bezel> <bezel name="8.4" element="led"><bounds x="103.4" y="50.9" width="1" height="1" /></bezel> <bezel name="8.3" element="led"><bounds x="96.8" y="52.3" width="1" height="1" /></bezel> - <bezel name="2.3" element="ledr"><bounds x="93.5" y="51.5" width="1" height="4" /></bezel> <bezel name="8.2" element="led"><bounds x="90.2" y="53.7" width="1" height="1" /></bezel> <!-- x --> <bezel name="8.1" element="led"><bounds x="83.6" y="55.1" width="1" height="1" /></bezel> diff --git a/src/mame/layout/h2hsoccerc.lay b/src/mame/layout/h2hsoccerc.lay index 9b5b7325da5..30cd9394ca5 100644 --- a/src/mame/layout/h2hsoccerc.lay +++ b/src/mame/layout/h2hsoccerc.lay @@ -17,10 +17,6 @@ <disk state="0"><color red="0.14" green="0.02" blue="0.03" /></disk> <disk state="1"><color red="1.0" green="0.20" blue="0.22" /></disk> </element> - <element name="ledr" defstate="0"> - <rect state="0"><color red="0.14" green="0.02" blue="0.03" /></rect> - <rect state="1"><color red="1.0" green="0.20" blue="0.22" /></rect> - </element> <element name="text_score1"><text string="S C"><color red="0.85" green="0.85" blue="0.85" /></text></element> <element name="text_score2"><text string="R E"><color red="0.85" green="0.85" blue="0.85" /></text></element> @@ -82,36 +78,63 @@ <bezel name="10.0" element="led"><bounds x="90" y="75" width="4" height="4" /></bezel> <bezel element="text_away"><bounds x="86" y="80.5" width="12" height="3" /></bezel> + <!-- defense leds --> + + <repeat count="41"> + <param name="x" start="45.1" increment="0.05" /> + <param name="y" start="39.6" increment="0.048" /> + <bezel name="2.0" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="41"> + <param name="x" start="103.7" increment="-0.05" /> + <param name="y" start="39.6" increment="0.048" /> + <bezel name="2.4" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="60"> + <param name="x" start="73" increment="0.05" /> + <param name="y" start="46.5" increment="0.0" /> + <bezel name="2.2" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="56"> + <param name="x" start="55.8" increment="-0.011" /> + <param name="y" start="51.7" increment="0.05" /> + <bezel name="2.1" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + + <repeat count="56"> + <param name="x" start="93.3" increment="0.011" /> + <param name="y" start="51.7" increment="0.05" /> + <bezel name="2.3" element="led"><bounds x="~x~" y="~y~" width="1" height="1" /></bezel> + </repeat> + <!-- small leds --> <!-- the leds marked "x", sometimes seen unpopulated, maybe cutting costs in some of the production batches --> <bezel name="11.1" element="led"><bounds x="57.1" y="29.1" width="1" height="1" /></bezel> <bezel name="11.2" element="led"><bounds x="52.7" y="33.7" width="1" height="1" /></bezel> <bezel name="11.3" element="led"><bounds x="48.3" y="38.3" width="1" height="1" /></bezel> <!-- x --> - <bezel name="2.0" element="ledr"><bounds x="44.6" y="40.6" width="4" height="1" /></bezel> <bezel name="11.4" element="led"><bounds x="43.9" y="42.9" width="1" height="1" /></bezel> <bezel name="12.1" element="led"><bounds x="74.5" y="34" width="1" height="1" /></bezel> <bezel name="12.2" element="led"><bounds x="74.5" y="39" width="1" height="1" /></bezel> <bezel name="12.3" element="led"><bounds x="74.5" y="44" width="1" height="1" /></bezel> <!-- x --> - <bezel name="2.2" element="ledr"><bounds x="73" y="46.5" width="4" height="1" /></bezel> <bezel name="12.4" element="led"><bounds x="74.5" y="49" width="1" height="1" /></bezel> <bezel name="13.1" element="led"><bounds x="91.9" y="29.1" width="1" height="1" /></bezel> <bezel name="13.2" element="led"><bounds x="96.3" y="33.7" width="1" height="1" /></bezel> <bezel name="13.3" element="led"><bounds x="100.7" y="38.3" width="1" height="1" /></bezel> <!-- x --> - <bezel name="2.4" element="ledr"><bounds x="101.4" y="40.6" width="4" height="1" /></bezel> <bezel name="13.4" element="led"><bounds x="105.1" y="42.9" width="1" height="1" /></bezel> <bezel name="5.1" element="led"><bounds x="45.6" y="50.9" width="1" height="1" /></bezel> <bezel name="5.2" element="led"><bounds x="52.2" y="52.3" width="1" height="1" /></bezel> - <bezel name="2.1" element="ledr"><bounds x="55.5" y="51.5" width="1" height="4" /></bezel> <bezel name="5.3" element="led"><bounds x="58.8" y="53.7" width="1" height="1" /></bezel> <!-- x --> <bezel name="5.4" element="led"><bounds x="65.4" y="55.1" width="1" height="1" /></bezel> <bezel name="8.4" element="led"><bounds x="103.4" y="50.9" width="1" height="1" /></bezel> <bezel name="8.3" element="led"><bounds x="96.8" y="52.3" width="1" height="1" /></bezel> - <bezel name="2.3" element="ledr"><bounds x="93.5" y="51.5" width="1" height="4" /></bezel> <bezel name="8.2" element="led"><bounds x="90.2" y="53.7" width="1" height="1" /></bezel> <!-- x --> <bezel name="8.1" element="led"><bounds x="83.6" y="55.1" width="1" height="1" /></bezel> diff --git a/src/mame/layout/hh_amis2k_test.lay b/src/mame/layout/hh_amis2k_test.lay new file mode 100644 index 00000000000..675ea6960c9 --- /dev/null +++ b/src/mame/layout/hh_amis2k_test.lay @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<mamelayout version="2"> + +<!-- define elements --> + + <element name="static_black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></element> + + <element name="led" defstate="0"> + <disk state="0"><color red="0.0" green="0.0" blue="0.0" /></disk> + <disk state="1"><color red="1.0" green="0.2" blue="0.23" /></disk> + </element> + + +<!-- build screen --> + + <view name="Test Layout"> + <bounds left="0" right="32" top="0" bottom="16" /> + <bezel element="static_black"> + <bounds left="0" right="32" top="0" bottom="16" /> + </bezel> + + <!-- max 16*32 matrix --> + + <repeat count="16"> + <param name="y" start="0" increment="1" /> + + <repeat count="32"> + <param name="x" start="0" increment="1" /> + <bezel name="~y~.~x~" element="led"><bounds x="~x~" y="~y~" width="0.5" height="0.5" /></bezel> + </repeat> + </repeat> + + </view> +</mamelayout> diff --git a/src/mame/layout/hh_cop400_test.lay b/src/mame/layout/hh_cop400_test.lay index faca1bc722e..675ea6960c9 100644 --- a/src/mame/layout/hh_cop400_test.lay +++ b/src/mame/layout/hh_cop400_test.lay @@ -14,540 +14,21 @@ <!-- build screen --> <view name="Test Layout"> - <bounds left="0" right="64" top="0" bottom="64" /> + <bounds left="0" right="32" top="0" bottom="16" /> <bezel element="static_black"> - <bounds left="0" right="64" top="0" bottom="64" /> + <bounds left="0" right="32" top="0" bottom="16" /> </bezel> <!-- max 16*32 matrix --> - <bezel name="0.0" element="led"><bounds x="0" y="0" width="1" height="1" /></bezel> - <bezel name="0.1" element="led"><bounds x="0" y="2" width="1" height="1" /></bezel> - <bezel name="0.2" element="led"><bounds x="0" y="4" width="1" height="1" /></bezel> - <bezel name="0.3" element="led"><bounds x="0" y="6" width="1" height="1" /></bezel> - <bezel name="0.4" element="led"><bounds x="0" y="8" width="1" height="1" /></bezel> - <bezel name="0.5" element="led"><bounds x="0" y="10" width="1" height="1" /></bezel> - <bezel name="0.6" element="led"><bounds x="0" y="12" width="1" height="1" /></bezel> - <bezel name="0.7" element="led"><bounds x="0" y="14" width="1" height="1" /></bezel> - <bezel name="0.8" element="led"><bounds x="0" y="16" width="1" height="1" /></bezel> - <bezel name="0.9" element="led"><bounds x="0" y="18" width="1" height="1" /></bezel> - <bezel name="0.10" element="led"><bounds x="0" y="20" width="1" height="1" /></bezel> - <bezel name="0.11" element="led"><bounds x="0" y="22" width="1" height="1" /></bezel> - <bezel name="0.12" element="led"><bounds x="0" y="24" width="1" height="1" /></bezel> - <bezel name="0.13" element="led"><bounds x="0" y="26" width="1" height="1" /></bezel> - <bezel name="0.14" element="led"><bounds x="0" y="28" width="1" height="1" /></bezel> - <bezel name="0.15" element="led"><bounds x="0" y="30" width="1" height="1" /></bezel> - <bezel name="0.16" element="led"><bounds x="0" y="32" width="1" height="1" /></bezel> - <bezel name="0.17" element="led"><bounds x="0" y="34" width="1" height="1" /></bezel> - <bezel name="0.18" element="led"><bounds x="0" y="36" width="1" height="1" /></bezel> - <bezel name="0.19" element="led"><bounds x="0" y="38" width="1" height="1" /></bezel> - <bezel name="0.20" element="led"><bounds x="0" y="40" width="1" height="1" /></bezel> - <bezel name="0.21" element="led"><bounds x="0" y="42" width="1" height="1" /></bezel> - <bezel name="0.22" element="led"><bounds x="0" y="44" width="1" height="1" /></bezel> - <bezel name="0.23" element="led"><bounds x="0" y="46" width="1" height="1" /></bezel> - <bezel name="0.24" element="led"><bounds x="0" y="48" width="1" height="1" /></bezel> - <bezel name="0.25" element="led"><bounds x="0" y="50" width="1" height="1" /></bezel> - <bezel name="0.26" element="led"><bounds x="0" y="52" width="1" height="1" /></bezel> - <bezel name="0.27" element="led"><bounds x="0" y="54" width="1" height="1" /></bezel> - <bezel name="0.28" element="led"><bounds x="0" y="56" width="1" height="1" /></bezel> - <bezel name="0.29" element="led"><bounds x="0" y="58" width="1" height="1" /></bezel> - <bezel name="0.30" element="led"><bounds x="0" y="60" width="1" height="1" /></bezel> - <bezel name="0.31" element="led"><bounds x="0" y="62" width="1" height="1" /></bezel> + <repeat count="16"> + <param name="y" start="0" increment="1" /> - <bezel name="1.0" element="led"><bounds x="2" y="0" width="1" height="1" /></bezel> - <bezel name="1.1" element="led"><bounds x="2" y="2" width="1" height="1" /></bezel> - <bezel name="1.2" element="led"><bounds x="2" y="4" width="1" height="1" /></bezel> - <bezel name="1.3" element="led"><bounds x="2" y="6" width="1" height="1" /></bezel> - <bezel name="1.4" element="led"><bounds x="2" y="8" width="1" height="1" /></bezel> - <bezel name="1.5" element="led"><bounds x="2" y="10" width="1" height="1" /></bezel> - <bezel name="1.6" element="led"><bounds x="2" y="12" width="1" height="1" /></bezel> - <bezel name="1.7" element="led"><bounds x="2" y="14" width="1" height="1" /></bezel> - <bezel name="1.8" element="led"><bounds x="2" y="16" width="1" height="1" /></bezel> - <bezel name="1.9" element="led"><bounds x="2" y="18" width="1" height="1" /></bezel> - <bezel name="1.10" element="led"><bounds x="2" y="20" width="1" height="1" /></bezel> - <bezel name="1.11" element="led"><bounds x="2" y="22" width="1" height="1" /></bezel> - <bezel name="1.12" element="led"><bounds x="2" y="24" width="1" height="1" /></bezel> - <bezel name="1.13" element="led"><bounds x="2" y="26" width="1" height="1" /></bezel> - <bezel name="1.14" element="led"><bounds x="2" y="28" width="1" height="1" /></bezel> - <bezel name="1.15" element="led"><bounds x="2" y="30" width="1" height="1" /></bezel> - <bezel name="1.16" element="led"><bounds x="2" y="32" width="1" height="1" /></bezel> - <bezel name="1.17" element="led"><bounds x="2" y="34" width="1" height="1" /></bezel> - <bezel name="1.18" element="led"><bounds x="2" y="36" width="1" height="1" /></bezel> - <bezel name="1.19" element="led"><bounds x="2" y="38" width="1" height="1" /></bezel> - <bezel name="1.20" element="led"><bounds x="2" y="40" width="1" height="1" /></bezel> - <bezel name="1.21" element="led"><bounds x="2" y="42" width="1" height="1" /></bezel> - <bezel name="1.22" element="led"><bounds x="2" y="44" width="1" height="1" /></bezel> - <bezel name="1.23" element="led"><bounds x="2" y="46" width="1" height="1" /></bezel> - <bezel name="1.24" element="led"><bounds x="2" y="48" width="1" height="1" /></bezel> - <bezel name="1.25" element="led"><bounds x="2" y="50" width="1" height="1" /></bezel> - <bezel name="1.26" element="led"><bounds x="2" y="52" width="1" height="1" /></bezel> - <bezel name="1.27" element="led"><bounds x="2" y="54" width="1" height="1" /></bezel> - <bezel name="1.28" element="led"><bounds x="2" y="56" width="1" height="1" /></bezel> - <bezel name="1.29" element="led"><bounds x="2" y="58" width="1" height="1" /></bezel> - <bezel name="1.30" element="led"><bounds x="2" y="60" width="1" height="1" /></bezel> - <bezel name="1.31" element="led"><bounds x="2" y="62" width="1" height="1" /></bezel> - - <bezel name="2.0" element="led"><bounds x="4" y="0" width="1" height="1" /></bezel> - <bezel name="2.1" element="led"><bounds x="4" y="2" width="1" height="1" /></bezel> - <bezel name="2.2" element="led"><bounds x="4" y="4" width="1" height="1" /></bezel> - <bezel name="2.3" element="led"><bounds x="4" y="6" width="1" height="1" /></bezel> - <bezel name="2.4" element="led"><bounds x="4" y="8" width="1" height="1" /></bezel> - <bezel name="2.5" element="led"><bounds x="4" y="10" width="1" height="1" /></bezel> - <bezel name="2.6" element="led"><bounds x="4" y="12" width="1" height="1" /></bezel> - <bezel name="2.7" element="led"><bounds x="4" y="14" width="1" height="1" /></bezel> - <bezel name="2.8" element="led"><bounds x="4" y="16" width="1" height="1" /></bezel> - <bezel name="2.9" element="led"><bounds x="4" y="18" width="1" height="1" /></bezel> - <bezel name="2.10" element="led"><bounds x="4" y="20" width="1" height="1" /></bezel> - <bezel name="2.11" element="led"><bounds x="4" y="22" width="1" height="1" /></bezel> - <bezel name="2.12" element="led"><bounds x="4" y="24" width="1" height="1" /></bezel> - <bezel name="2.13" element="led"><bounds x="4" y="26" width="1" height="1" /></bezel> - <bezel name="2.14" element="led"><bounds x="4" y="28" width="1" height="1" /></bezel> - <bezel name="2.15" element="led"><bounds x="4" y="30" width="1" height="1" /></bezel> - <bezel name="2.16" element="led"><bounds x="4" y="32" width="1" height="1" /></bezel> - <bezel name="2.17" element="led"><bounds x="4" y="34" width="1" height="1" /></bezel> - <bezel name="2.18" element="led"><bounds x="4" y="36" width="1" height="1" /></bezel> - <bezel name="2.19" element="led"><bounds x="4" y="38" width="1" height="1" /></bezel> - <bezel name="2.20" element="led"><bounds x="4" y="40" width="1" height="1" /></bezel> - <bezel name="2.21" element="led"><bounds x="4" y="42" width="1" height="1" /></bezel> - <bezel name="2.22" element="led"><bounds x="4" y="44" width="1" height="1" /></bezel> - <bezel name="2.23" element="led"><bounds x="4" y="46" width="1" height="1" /></bezel> - <bezel name="2.24" element="led"><bounds x="4" y="48" width="1" height="1" /></bezel> - <bezel name="2.25" element="led"><bounds x="4" y="50" width="1" height="1" /></bezel> - <bezel name="2.26" element="led"><bounds x="4" y="52" width="1" height="1" /></bezel> - <bezel name="2.27" element="led"><bounds x="4" y="54" width="1" height="1" /></bezel> - <bezel name="2.28" element="led"><bounds x="4" y="56" width="1" height="1" /></bezel> - <bezel name="2.29" element="led"><bounds x="4" y="58" width="1" height="1" /></bezel> - <bezel name="2.30" element="led"><bounds x="4" y="60" width="1" height="1" /></bezel> - <bezel name="2.31" element="led"><bounds x="4" y="62" width="1" height="1" /></bezel> - - <bezel name="3.0" element="led"><bounds x="6" y="0" width="1" height="1" /></bezel> - <bezel name="3.1" element="led"><bounds x="6" y="2" width="1" height="1" /></bezel> - <bezel name="3.2" element="led"><bounds x="6" y="4" width="1" height="1" /></bezel> - <bezel name="3.3" element="led"><bounds x="6" y="6" width="1" height="1" /></bezel> - <bezel name="3.4" element="led"><bounds x="6" y="8" width="1" height="1" /></bezel> - <bezel name="3.5" element="led"><bounds x="6" y="10" width="1" height="1" /></bezel> - <bezel name="3.6" element="led"><bounds x="6" y="12" width="1" height="1" /></bezel> - <bezel name="3.7" element="led"><bounds x="6" y="14" width="1" height="1" /></bezel> - <bezel name="3.8" element="led"><bounds x="6" y="16" width="1" height="1" /></bezel> - <bezel name="3.9" element="led"><bounds x="6" y="18" width="1" height="1" /></bezel> - <bezel name="3.10" element="led"><bounds x="6" y="20" width="1" height="1" /></bezel> - <bezel name="3.11" element="led"><bounds x="6" y="22" width="1" height="1" /></bezel> - <bezel name="3.12" element="led"><bounds x="6" y="24" width="1" height="1" /></bezel> - <bezel name="3.13" element="led"><bounds x="6" y="26" width="1" height="1" /></bezel> - <bezel name="3.14" element="led"><bounds x="6" y="28" width="1" height="1" /></bezel> - <bezel name="3.15" element="led"><bounds x="6" y="30" width="1" height="1" /></bezel> - <bezel name="3.16" element="led"><bounds x="6" y="32" width="1" height="1" /></bezel> - <bezel name="3.17" element="led"><bounds x="6" y="34" width="1" height="1" /></bezel> - <bezel name="3.18" element="led"><bounds x="6" y="36" width="1" height="1" /></bezel> - <bezel name="3.19" element="led"><bounds x="6" y="38" width="1" height="1" /></bezel> - <bezel name="3.20" element="led"><bounds x="6" y="40" width="1" height="1" /></bezel> - <bezel name="3.21" element="led"><bounds x="6" y="42" width="1" height="1" /></bezel> - <bezel name="3.22" element="led"><bounds x="6" y="44" width="1" height="1" /></bezel> - <bezel name="3.23" element="led"><bounds x="6" y="46" width="1" height="1" /></bezel> - <bezel name="3.24" element="led"><bounds x="6" y="48" width="1" height="1" /></bezel> - <bezel name="3.25" element="led"><bounds x="6" y="50" width="1" height="1" /></bezel> - <bezel name="3.26" element="led"><bounds x="6" y="52" width="1" height="1" /></bezel> - <bezel name="3.27" element="led"><bounds x="6" y="54" width="1" height="1" /></bezel> - <bezel name="3.28" element="led"><bounds x="6" y="56" width="1" height="1" /></bezel> - <bezel name="3.29" element="led"><bounds x="6" y="58" width="1" height="1" /></bezel> - <bezel name="3.30" element="led"><bounds x="6" y="60" width="1" height="1" /></bezel> - <bezel name="3.31" element="led"><bounds x="6" y="62" width="1" height="1" /></bezel> - - <bezel name="4.0" element="led"><bounds x="8" y="0" width="1" height="1" /></bezel> - <bezel name="4.1" element="led"><bounds x="8" y="2" width="1" height="1" /></bezel> - <bezel name="4.2" element="led"><bounds x="8" y="4" width="1" height="1" /></bezel> - <bezel name="4.3" element="led"><bounds x="8" y="6" width="1" height="1" /></bezel> - <bezel name="4.4" element="led"><bounds x="8" y="8" width="1" height="1" /></bezel> - <bezel name="4.5" element="led"><bounds x="8" y="10" width="1" height="1" /></bezel> - <bezel name="4.6" element="led"><bounds x="8" y="12" width="1" height="1" /></bezel> - <bezel name="4.7" element="led"><bounds x="8" y="14" width="1" height="1" /></bezel> - <bezel name="4.8" element="led"><bounds x="8" y="16" width="1" height="1" /></bezel> - <bezel name="4.9" element="led"><bounds x="8" y="18" width="1" height="1" /></bezel> - <bezel name="4.10" element="led"><bounds x="8" y="20" width="1" height="1" /></bezel> - <bezel name="4.11" element="led"><bounds x="8" y="22" width="1" height="1" /></bezel> - <bezel name="4.12" element="led"><bounds x="8" y="24" width="1" height="1" /></bezel> - <bezel name="4.13" element="led"><bounds x="8" y="26" width="1" height="1" /></bezel> - <bezel name="4.14" element="led"><bounds x="8" y="28" width="1" height="1" /></bezel> - <bezel name="4.15" element="led"><bounds x="8" y="30" width="1" height="1" /></bezel> - <bezel name="4.16" element="led"><bounds x="8" y="32" width="1" height="1" /></bezel> - <bezel name="4.17" element="led"><bounds x="8" y="34" width="1" height="1" /></bezel> - <bezel name="4.18" element="led"><bounds x="8" y="36" width="1" height="1" /></bezel> - <bezel name="4.19" element="led"><bounds x="8" y="38" width="1" height="1" /></bezel> - <bezel name="4.20" element="led"><bounds x="8" y="40" width="1" height="1" /></bezel> - <bezel name="4.21" element="led"><bounds x="8" y="42" width="1" height="1" /></bezel> - <bezel name="4.22" element="led"><bounds x="8" y="44" width="1" height="1" /></bezel> - <bezel name="4.23" element="led"><bounds x="8" y="46" width="1" height="1" /></bezel> - <bezel name="4.24" element="led"><bounds x="8" y="48" width="1" height="1" /></bezel> - <bezel name="4.25" element="led"><bounds x="8" y="50" width="1" height="1" /></bezel> - <bezel name="4.26" element="led"><bounds x="8" y="52" width="1" height="1" /></bezel> - <bezel name="4.27" element="led"><bounds x="8" y="54" width="1" height="1" /></bezel> - <bezel name="4.28" element="led"><bounds x="8" y="56" width="1" height="1" /></bezel> - <bezel name="4.29" element="led"><bounds x="8" y="58" width="1" height="1" /></bezel> - <bezel name="4.30" element="led"><bounds x="8" y="60" width="1" height="1" /></bezel> - <bezel name="4.31" element="led"><bounds x="8" y="62" width="1" height="1" /></bezel> - - <bezel name="5.0" element="led"><bounds x="10" y="0" width="1" height="1" /></bezel> - <bezel name="5.1" element="led"><bounds x="10" y="2" width="1" height="1" /></bezel> - <bezel name="5.2" element="led"><bounds x="10" y="4" width="1" height="1" /></bezel> - <bezel name="5.3" element="led"><bounds x="10" y="6" width="1" height="1" /></bezel> - <bezel name="5.4" element="led"><bounds x="10" y="8" width="1" height="1" /></bezel> - <bezel name="5.5" element="led"><bounds x="10" y="10" width="1" height="1" /></bezel> - <bezel name="5.6" element="led"><bounds x="10" y="12" width="1" height="1" /></bezel> - <bezel name="5.7" element="led"><bounds x="10" y="14" width="1" height="1" /></bezel> - <bezel name="5.8" element="led"><bounds x="10" y="16" width="1" height="1" /></bezel> - <bezel name="5.9" element="led"><bounds x="10" y="18" width="1" height="1" /></bezel> - <bezel name="5.10" element="led"><bounds x="10" y="20" width="1" height="1" /></bezel> - <bezel name="5.11" element="led"><bounds x="10" y="22" width="1" height="1" /></bezel> - <bezel name="5.12" element="led"><bounds x="10" y="24" width="1" height="1" /></bezel> - <bezel name="5.13" element="led"><bounds x="10" y="26" width="1" height="1" /></bezel> - <bezel name="5.14" element="led"><bounds x="10" y="28" width="1" height="1" /></bezel> - <bezel name="5.15" element="led"><bounds x="10" y="30" width="1" height="1" /></bezel> - <bezel name="5.16" element="led"><bounds x="10" y="32" width="1" height="1" /></bezel> - <bezel name="5.17" element="led"><bounds x="10" y="34" width="1" height="1" /></bezel> - <bezel name="5.18" element="led"><bounds x="10" y="36" width="1" height="1" /></bezel> - <bezel name="5.19" element="led"><bounds x="10" y="38" width="1" height="1" /></bezel> - <bezel name="5.20" element="led"><bounds x="10" y="40" width="1" height="1" /></bezel> - <bezel name="5.21" element="led"><bounds x="10" y="42" width="1" height="1" /></bezel> - <bezel name="5.22" element="led"><bounds x="10" y="44" width="1" height="1" /></bezel> - <bezel name="5.23" element="led"><bounds x="10" y="46" width="1" height="1" /></bezel> - <bezel name="5.24" element="led"><bounds x="10" y="48" width="1" height="1" /></bezel> - <bezel name="5.25" element="led"><bounds x="10" y="50" width="1" height="1" /></bezel> - <bezel name="5.26" element="led"><bounds x="10" y="52" width="1" height="1" /></bezel> - <bezel name="5.27" element="led"><bounds x="10" y="54" width="1" height="1" /></bezel> - <bezel name="5.28" element="led"><bounds x="10" y="56" width="1" height="1" /></bezel> - <bezel name="5.29" element="led"><bounds x="10" y="58" width="1" height="1" /></bezel> - <bezel name="5.30" element="led"><bounds x="10" y="60" width="1" height="1" /></bezel> - <bezel name="5.31" element="led"><bounds x="10" y="62" width="1" height="1" /></bezel> - - <bezel name="6.0" element="led"><bounds x="12" y="0" width="1" height="1" /></bezel> - <bezel name="6.1" element="led"><bounds x="12" y="2" width="1" height="1" /></bezel> - <bezel name="6.2" element="led"><bounds x="12" y="4" width="1" height="1" /></bezel> - <bezel name="6.3" element="led"><bounds x="12" y="6" width="1" height="1" /></bezel> - <bezel name="6.4" element="led"><bounds x="12" y="8" width="1" height="1" /></bezel> - <bezel name="6.5" element="led"><bounds x="12" y="10" width="1" height="1" /></bezel> - <bezel name="6.6" element="led"><bounds x="12" y="12" width="1" height="1" /></bezel> - <bezel name="6.7" element="led"><bounds x="12" y="14" width="1" height="1" /></bezel> - <bezel name="6.8" element="led"><bounds x="12" y="16" width="1" height="1" /></bezel> - <bezel name="6.9" element="led"><bounds x="12" y="18" width="1" height="1" /></bezel> - <bezel name="6.10" element="led"><bounds x="12" y="20" width="1" height="1" /></bezel> - <bezel name="6.11" element="led"><bounds x="12" y="22" width="1" height="1" /></bezel> - <bezel name="6.12" element="led"><bounds x="12" y="24" width="1" height="1" /></bezel> - <bezel name="6.13" element="led"><bounds x="12" y="26" width="1" height="1" /></bezel> - <bezel name="6.14" element="led"><bounds x="12" y="28" width="1" height="1" /></bezel> - <bezel name="6.15" element="led"><bounds x="12" y="30" width="1" height="1" /></bezel> - <bezel name="6.16" element="led"><bounds x="12" y="32" width="1" height="1" /></bezel> - <bezel name="6.17" element="led"><bounds x="12" y="34" width="1" height="1" /></bezel> - <bezel name="6.18" element="led"><bounds x="12" y="36" width="1" height="1" /></bezel> - <bezel name="6.19" element="led"><bounds x="12" y="38" width="1" height="1" /></bezel> - <bezel name="6.20" element="led"><bounds x="12" y="40" width="1" height="1" /></bezel> - <bezel name="6.21" element="led"><bounds x="12" y="42" width="1" height="1" /></bezel> - <bezel name="6.22" element="led"><bounds x="12" y="44" width="1" height="1" /></bezel> - <bezel name="6.23" element="led"><bounds x="12" y="46" width="1" height="1" /></bezel> - <bezel name="6.24" element="led"><bounds x="12" y="48" width="1" height="1" /></bezel> - <bezel name="6.25" element="led"><bounds x="12" y="50" width="1" height="1" /></bezel> - <bezel name="6.26" element="led"><bounds x="12" y="52" width="1" height="1" /></bezel> - <bezel name="6.27" element="led"><bounds x="12" y="54" width="1" height="1" /></bezel> - <bezel name="6.28" element="led"><bounds x="12" y="56" width="1" height="1" /></bezel> - <bezel name="6.29" element="led"><bounds x="12" y="58" width="1" height="1" /></bezel> - <bezel name="6.30" element="led"><bounds x="12" y="60" width="1" height="1" /></bezel> - <bezel name="6.31" element="led"><bounds x="12" y="62" width="1" height="1" /></bezel> - - <bezel name="7.0" element="led"><bounds x="14" y="0" width="1" height="1" /></bezel> - <bezel name="7.1" element="led"><bounds x="14" y="2" width="1" height="1" /></bezel> - <bezel name="7.2" element="led"><bounds x="14" y="4" width="1" height="1" /></bezel> - <bezel name="7.3" element="led"><bounds x="14" y="6" width="1" height="1" /></bezel> - <bezel name="7.4" element="led"><bounds x="14" y="8" width="1" height="1" /></bezel> - <bezel name="7.5" element="led"><bounds x="14" y="10" width="1" height="1" /></bezel> - <bezel name="7.6" element="led"><bounds x="14" y="12" width="1" height="1" /></bezel> - <bezel name="7.7" element="led"><bounds x="14" y="14" width="1" height="1" /></bezel> - <bezel name="7.8" element="led"><bounds x="14" y="16" width="1" height="1" /></bezel> - <bezel name="7.9" element="led"><bounds x="14" y="18" width="1" height="1" /></bezel> - <bezel name="7.10" element="led"><bounds x="14" y="20" width="1" height="1" /></bezel> - <bezel name="7.11" element="led"><bounds x="14" y="22" width="1" height="1" /></bezel> - <bezel name="7.12" element="led"><bounds x="14" y="24" width="1" height="1" /></bezel> - <bezel name="7.13" element="led"><bounds x="14" y="26" width="1" height="1" /></bezel> - <bezel name="7.14" element="led"><bounds x="14" y="28" width="1" height="1" /></bezel> - <bezel name="7.15" element="led"><bounds x="14" y="30" width="1" height="1" /></bezel> - <bezel name="7.16" element="led"><bounds x="14" y="32" width="1" height="1" /></bezel> - <bezel name="7.17" element="led"><bounds x="14" y="34" width="1" height="1" /></bezel> - <bezel name="7.18" element="led"><bounds x="14" y="36" width="1" height="1" /></bezel> - <bezel name="7.19" element="led"><bounds x="14" y="38" width="1" height="1" /></bezel> - <bezel name="7.20" element="led"><bounds x="14" y="40" width="1" height="1" /></bezel> - <bezel name="7.21" element="led"><bounds x="14" y="42" width="1" height="1" /></bezel> - <bezel name="7.22" element="led"><bounds x="14" y="44" width="1" height="1" /></bezel> - <bezel name="7.23" element="led"><bounds x="14" y="46" width="1" height="1" /></bezel> - <bezel name="7.24" element="led"><bounds x="14" y="48" width="1" height="1" /></bezel> - <bezel name="7.25" element="led"><bounds x="14" y="50" width="1" height="1" /></bezel> - <bezel name="7.26" element="led"><bounds x="14" y="52" width="1" height="1" /></bezel> - <bezel name="7.27" element="led"><bounds x="14" y="54" width="1" height="1" /></bezel> - <bezel name="7.28" element="led"><bounds x="14" y="56" width="1" height="1" /></bezel> - <bezel name="7.29" element="led"><bounds x="14" y="58" width="1" height="1" /></bezel> - <bezel name="7.30" element="led"><bounds x="14" y="60" width="1" height="1" /></bezel> - <bezel name="7.31" element="led"><bounds x="14" y="62" width="1" height="1" /></bezel> - - <bezel name="8.0" element="led"><bounds x="16" y="0" width="1" height="1" /></bezel> - <bezel name="8.1" element="led"><bounds x="16" y="2" width="1" height="1" /></bezel> - <bezel name="8.2" element="led"><bounds x="16" y="4" width="1" height="1" /></bezel> - <bezel name="8.3" element="led"><bounds x="16" y="6" width="1" height="1" /></bezel> - <bezel name="8.4" element="led"><bounds x="16" y="8" width="1" height="1" /></bezel> - <bezel name="8.5" element="led"><bounds x="16" y="10" width="1" height="1" /></bezel> - <bezel name="8.6" element="led"><bounds x="16" y="12" width="1" height="1" /></bezel> - <bezel name="8.7" element="led"><bounds x="16" y="14" width="1" height="1" /></bezel> - <bezel name="8.8" element="led"><bounds x="16" y="16" width="1" height="1" /></bezel> - <bezel name="8.9" element="led"><bounds x="16" y="18" width="1" height="1" /></bezel> - <bezel name="8.10" element="led"><bounds x="16" y="20" width="1" height="1" /></bezel> - <bezel name="8.11" element="led"><bounds x="16" y="22" width="1" height="1" /></bezel> - <bezel name="8.12" element="led"><bounds x="16" y="24" width="1" height="1" /></bezel> - <bezel name="8.13" element="led"><bounds x="16" y="26" width="1" height="1" /></bezel> - <bezel name="8.14" element="led"><bounds x="16" y="28" width="1" height="1" /></bezel> - <bezel name="8.15" element="led"><bounds x="16" y="30" width="1" height="1" /></bezel> - <bezel name="8.16" element="led"><bounds x="16" y="32" width="1" height="1" /></bezel> - <bezel name="8.17" element="led"><bounds x="16" y="34" width="1" height="1" /></bezel> - <bezel name="8.18" element="led"><bounds x="16" y="36" width="1" height="1" /></bezel> - <bezel name="8.19" element="led"><bounds x="16" y="38" width="1" height="1" /></bezel> - <bezel name="8.20" element="led"><bounds x="16" y="40" width="1" height="1" /></bezel> - <bezel name="8.21" element="led"><bounds x="16" y="42" width="1" height="1" /></bezel> - <bezel name="8.22" element="led"><bounds x="16" y="44" width="1" height="1" /></bezel> - <bezel name="8.23" element="led"><bounds x="16" y="46" width="1" height="1" /></bezel> - <bezel name="8.24" element="led"><bounds x="16" y="48" width="1" height="1" /></bezel> - <bezel name="8.25" element="led"><bounds x="16" y="50" width="1" height="1" /></bezel> - <bezel name="8.26" element="led"><bounds x="16" y="52" width="1" height="1" /></bezel> - <bezel name="8.27" element="led"><bounds x="16" y="54" width="1" height="1" /></bezel> - <bezel name="8.28" element="led"><bounds x="16" y="56" width="1" height="1" /></bezel> - <bezel name="8.29" element="led"><bounds x="16" y="58" width="1" height="1" /></bezel> - <bezel name="8.30" element="led"><bounds x="16" y="60" width="1" height="1" /></bezel> - <bezel name="8.31" element="led"><bounds x="16" y="62" width="1" height="1" /></bezel> - - <bezel name="9.0" element="led"><bounds x="18" y="0" width="1" height="1" /></bezel> - <bezel name="9.1" element="led"><bounds x="18" y="2" width="1" height="1" /></bezel> - <bezel name="9.2" element="led"><bounds x="18" y="4" width="1" height="1" /></bezel> - <bezel name="9.3" element="led"><bounds x="18" y="6" width="1" height="1" /></bezel> - <bezel name="9.4" element="led"><bounds x="18" y="8" width="1" height="1" /></bezel> - <bezel name="9.5" element="led"><bounds x="18" y="10" width="1" height="1" /></bezel> - <bezel name="9.6" element="led"><bounds x="18" y="12" width="1" height="1" /></bezel> - <bezel name="9.7" element="led"><bounds x="18" y="14" width="1" height="1" /></bezel> - <bezel name="9.8" element="led"><bounds x="18" y="16" width="1" height="1" /></bezel> - <bezel name="9.9" element="led"><bounds x="18" y="18" width="1" height="1" /></bezel> - <bezel name="9.10" element="led"><bounds x="18" y="20" width="1" height="1" /></bezel> - <bezel name="9.11" element="led"><bounds x="18" y="22" width="1" height="1" /></bezel> - <bezel name="9.12" element="led"><bounds x="18" y="24" width="1" height="1" /></bezel> - <bezel name="9.13" element="led"><bounds x="18" y="26" width="1" height="1" /></bezel> - <bezel name="9.14" element="led"><bounds x="18" y="28" width="1" height="1" /></bezel> - <bezel name="9.15" element="led"><bounds x="18" y="30" width="1" height="1" /></bezel> - <bezel name="9.16" element="led"><bounds x="18" y="32" width="1" height="1" /></bezel> - <bezel name="9.17" element="led"><bounds x="18" y="34" width="1" height="1" /></bezel> - <bezel name="9.18" element="led"><bounds x="18" y="36" width="1" height="1" /></bezel> - <bezel name="9.19" element="led"><bounds x="18" y="38" width="1" height="1" /></bezel> - <bezel name="9.20" element="led"><bounds x="18" y="40" width="1" height="1" /></bezel> - <bezel name="9.21" element="led"><bounds x="18" y="42" width="1" height="1" /></bezel> - <bezel name="9.22" element="led"><bounds x="18" y="44" width="1" height="1" /></bezel> - <bezel name="9.23" element="led"><bounds x="18" y="46" width="1" height="1" /></bezel> - <bezel name="9.24" element="led"><bounds x="18" y="48" width="1" height="1" /></bezel> - <bezel name="9.25" element="led"><bounds x="18" y="50" width="1" height="1" /></bezel> - <bezel name="9.26" element="led"><bounds x="18" y="52" width="1" height="1" /></bezel> - <bezel name="9.27" element="led"><bounds x="18" y="54" width="1" height="1" /></bezel> - <bezel name="9.28" element="led"><bounds x="18" y="56" width="1" height="1" /></bezel> - <bezel name="9.29" element="led"><bounds x="18" y="58" width="1" height="1" /></bezel> - <bezel name="9.30" element="led"><bounds x="18" y="60" width="1" height="1" /></bezel> - <bezel name="9.31" element="led"><bounds x="18" y="62" width="1" height="1" /></bezel> - - <bezel name="10.0" element="led"><bounds x="20" y="0" width="1" height="1" /></bezel> - <bezel name="10.1" element="led"><bounds x="20" y="2" width="1" height="1" /></bezel> - <bezel name="10.2" element="led"><bounds x="20" y="4" width="1" height="1" /></bezel> - <bezel name="10.3" element="led"><bounds x="20" y="6" width="1" height="1" /></bezel> - <bezel name="10.4" element="led"><bounds x="20" y="8" width="1" height="1" /></bezel> - <bezel name="10.5" element="led"><bounds x="20" y="10" width="1" height="1" /></bezel> - <bezel name="10.6" element="led"><bounds x="20" y="12" width="1" height="1" /></bezel> - <bezel name="10.7" element="led"><bounds x="20" y="14" width="1" height="1" /></bezel> - <bezel name="10.8" element="led"><bounds x="20" y="16" width="1" height="1" /></bezel> - <bezel name="10.9" element="led"><bounds x="20" y="18" width="1" height="1" /></bezel> - <bezel name="10.10" element="led"><bounds x="20" y="20" width="1" height="1" /></bezel> - <bezel name="10.11" element="led"><bounds x="20" y="22" width="1" height="1" /></bezel> - <bezel name="10.12" element="led"><bounds x="20" y="24" width="1" height="1" /></bezel> - <bezel name="10.13" element="led"><bounds x="20" y="26" width="1" height="1" /></bezel> - <bezel name="10.14" element="led"><bounds x="20" y="28" width="1" height="1" /></bezel> - <bezel name="10.15" element="led"><bounds x="20" y="30" width="1" height="1" /></bezel> - <bezel name="10.16" element="led"><bounds x="20" y="32" width="1" height="1" /></bezel> - <bezel name="10.17" element="led"><bounds x="20" y="34" width="1" height="1" /></bezel> - <bezel name="10.18" element="led"><bounds x="20" y="36" width="1" height="1" /></bezel> - <bezel name="10.19" element="led"><bounds x="20" y="38" width="1" height="1" /></bezel> - <bezel name="10.20" element="led"><bounds x="20" y="40" width="1" height="1" /></bezel> - <bezel name="10.21" element="led"><bounds x="20" y="42" width="1" height="1" /></bezel> - <bezel name="10.22" element="led"><bounds x="20" y="44" width="1" height="1" /></bezel> - <bezel name="10.23" element="led"><bounds x="20" y="46" width="1" height="1" /></bezel> - <bezel name="10.24" element="led"><bounds x="20" y="48" width="1" height="1" /></bezel> - <bezel name="10.25" element="led"><bounds x="20" y="50" width="1" height="1" /></bezel> - <bezel name="10.26" element="led"><bounds x="20" y="52" width="1" height="1" /></bezel> - <bezel name="10.27" element="led"><bounds x="20" y="54" width="1" height="1" /></bezel> - <bezel name="10.28" element="led"><bounds x="20" y="56" width="1" height="1" /></bezel> - <bezel name="10.29" element="led"><bounds x="20" y="58" width="1" height="1" /></bezel> - <bezel name="10.30" element="led"><bounds x="20" y="60" width="1" height="1" /></bezel> - <bezel name="10.31" element="led"><bounds x="20" y="62" width="1" height="1" /></bezel> - - <bezel name="11.0" element="led"><bounds x="22" y="0" width="1" height="1" /></bezel> - <bezel name="11.1" element="led"><bounds x="22" y="2" width="1" height="1" /></bezel> - <bezel name="11.2" element="led"><bounds x="22" y="4" width="1" height="1" /></bezel> - <bezel name="11.3" element="led"><bounds x="22" y="6" width="1" height="1" /></bezel> - <bezel name="11.4" element="led"><bounds x="22" y="8" width="1" height="1" /></bezel> - <bezel name="11.5" element="led"><bounds x="22" y="10" width="1" height="1" /></bezel> - <bezel name="11.6" element="led"><bounds x="22" y="12" width="1" height="1" /></bezel> - <bezel name="11.7" element="led"><bounds x="22" y="14" width="1" height="1" /></bezel> - <bezel name="11.8" element="led"><bounds x="22" y="16" width="1" height="1" /></bezel> - <bezel name="11.9" element="led"><bounds x="22" y="18" width="1" height="1" /></bezel> - <bezel name="11.10" element="led"><bounds x="22" y="20" width="1" height="1" /></bezel> - <bezel name="11.11" element="led"><bounds x="22" y="22" width="1" height="1" /></bezel> - <bezel name="11.12" element="led"><bounds x="22" y="24" width="1" height="1" /></bezel> - <bezel name="11.13" element="led"><bounds x="22" y="26" width="1" height="1" /></bezel> - <bezel name="11.14" element="led"><bounds x="22" y="28" width="1" height="1" /></bezel> - <bezel name="11.15" element="led"><bounds x="22" y="30" width="1" height="1" /></bezel> - <bezel name="11.16" element="led"><bounds x="22" y="32" width="1" height="1" /></bezel> - <bezel name="11.17" element="led"><bounds x="22" y="34" width="1" height="1" /></bezel> - <bezel name="11.18" element="led"><bounds x="22" y="36" width="1" height="1" /></bezel> - <bezel name="11.19" element="led"><bounds x="22" y="38" width="1" height="1" /></bezel> - <bezel name="11.20" element="led"><bounds x="22" y="40" width="1" height="1" /></bezel> - <bezel name="11.21" element="led"><bounds x="22" y="42" width="1" height="1" /></bezel> - <bezel name="11.22" element="led"><bounds x="22" y="44" width="1" height="1" /></bezel> - <bezel name="11.23" element="led"><bounds x="22" y="46" width="1" height="1" /></bezel> - <bezel name="11.24" element="led"><bounds x="22" y="48" width="1" height="1" /></bezel> - <bezel name="11.25" element="led"><bounds x="22" y="50" width="1" height="1" /></bezel> - <bezel name="11.26" element="led"><bounds x="22" y="52" width="1" height="1" /></bezel> - <bezel name="11.27" element="led"><bounds x="22" y="54" width="1" height="1" /></bezel> - <bezel name="11.28" element="led"><bounds x="22" y="56" width="1" height="1" /></bezel> - <bezel name="11.29" element="led"><bounds x="22" y="58" width="1" height="1" /></bezel> - <bezel name="11.30" element="led"><bounds x="22" y="60" width="1" height="1" /></bezel> - <bezel name="11.31" element="led"><bounds x="22" y="62" width="1" height="1" /></bezel> - - <bezel name="12.0" element="led"><bounds x="24" y="0" width="1" height="1" /></bezel> - <bezel name="12.1" element="led"><bounds x="24" y="2" width="1" height="1" /></bezel> - <bezel name="12.2" element="led"><bounds x="24" y="4" width="1" height="1" /></bezel> - <bezel name="12.3" element="led"><bounds x="24" y="6" width="1" height="1" /></bezel> - <bezel name="12.4" element="led"><bounds x="24" y="8" width="1" height="1" /></bezel> - <bezel name="12.5" element="led"><bounds x="24" y="10" width="1" height="1" /></bezel> - <bezel name="12.6" element="led"><bounds x="24" y="12" width="1" height="1" /></bezel> - <bezel name="12.7" element="led"><bounds x="24" y="14" width="1" height="1" /></bezel> - <bezel name="12.8" element="led"><bounds x="24" y="16" width="1" height="1" /></bezel> - <bezel name="12.9" element="led"><bounds x="24" y="18" width="1" height="1" /></bezel> - <bezel name="12.10" element="led"><bounds x="24" y="20" width="1" height="1" /></bezel> - <bezel name="12.11" element="led"><bounds x="24" y="22" width="1" height="1" /></bezel> - <bezel name="12.12" element="led"><bounds x="24" y="24" width="1" height="1" /></bezel> - <bezel name="12.13" element="led"><bounds x="24" y="26" width="1" height="1" /></bezel> - <bezel name="12.14" element="led"><bounds x="24" y="28" width="1" height="1" /></bezel> - <bezel name="12.15" element="led"><bounds x="24" y="30" width="1" height="1" /></bezel> - <bezel name="12.16" element="led"><bounds x="24" y="32" width="1" height="1" /></bezel> - <bezel name="12.17" element="led"><bounds x="24" y="34" width="1" height="1" /></bezel> - <bezel name="12.18" element="led"><bounds x="24" y="36" width="1" height="1" /></bezel> - <bezel name="12.19" element="led"><bounds x="24" y="38" width="1" height="1" /></bezel> - <bezel name="12.20" element="led"><bounds x="24" y="40" width="1" height="1" /></bezel> - <bezel name="12.21" element="led"><bounds x="24" y="42" width="1" height="1" /></bezel> - <bezel name="12.22" element="led"><bounds x="24" y="44" width="1" height="1" /></bezel> - <bezel name="12.23" element="led"><bounds x="24" y="46" width="1" height="1" /></bezel> - <bezel name="12.24" element="led"><bounds x="24" y="48" width="1" height="1" /></bezel> - <bezel name="12.25" element="led"><bounds x="24" y="50" width="1" height="1" /></bezel> - <bezel name="12.26" element="led"><bounds x="24" y="52" width="1" height="1" /></bezel> - <bezel name="12.27" element="led"><bounds x="24" y="54" width="1" height="1" /></bezel> - <bezel name="12.28" element="led"><bounds x="24" y="56" width="1" height="1" /></bezel> - <bezel name="12.29" element="led"><bounds x="24" y="58" width="1" height="1" /></bezel> - <bezel name="12.30" element="led"><bounds x="24" y="60" width="1" height="1" /></bezel> - <bezel name="12.31" element="led"><bounds x="24" y="62" width="1" height="1" /></bezel> - - <bezel name="13.0" element="led"><bounds x="26" y="0" width="1" height="1" /></bezel> - <bezel name="13.1" element="led"><bounds x="26" y="2" width="1" height="1" /></bezel> - <bezel name="13.2" element="led"><bounds x="26" y="4" width="1" height="1" /></bezel> - <bezel name="13.3" element="led"><bounds x="26" y="6" width="1" height="1" /></bezel> - <bezel name="13.4" element="led"><bounds x="26" y="8" width="1" height="1" /></bezel> - <bezel name="13.5" element="led"><bounds x="26" y="10" width="1" height="1" /></bezel> - <bezel name="13.6" element="led"><bounds x="26" y="12" width="1" height="1" /></bezel> - <bezel name="13.7" element="led"><bounds x="26" y="14" width="1" height="1" /></bezel> - <bezel name="13.8" element="led"><bounds x="26" y="16" width="1" height="1" /></bezel> - <bezel name="13.9" element="led"><bounds x="26" y="18" width="1" height="1" /></bezel> - <bezel name="13.10" element="led"><bounds x="26" y="20" width="1" height="1" /></bezel> - <bezel name="13.11" element="led"><bounds x="26" y="22" width="1" height="1" /></bezel> - <bezel name="13.12" element="led"><bounds x="26" y="24" width="1" height="1" /></bezel> - <bezel name="13.13" element="led"><bounds x="26" y="26" width="1" height="1" /></bezel> - <bezel name="13.14" element="led"><bounds x="26" y="28" width="1" height="1" /></bezel> - <bezel name="13.15" element="led"><bounds x="26" y="30" width="1" height="1" /></bezel> - <bezel name="13.16" element="led"><bounds x="26" y="32" width="1" height="1" /></bezel> - <bezel name="13.17" element="led"><bounds x="26" y="34" width="1" height="1" /></bezel> - <bezel name="13.18" element="led"><bounds x="26" y="36" width="1" height="1" /></bezel> - <bezel name="13.19" element="led"><bounds x="26" y="38" width="1" height="1" /></bezel> - <bezel name="13.20" element="led"><bounds x="26" y="40" width="1" height="1" /></bezel> - <bezel name="13.21" element="led"><bounds x="26" y="42" width="1" height="1" /></bezel> - <bezel name="13.22" element="led"><bounds x="26" y="44" width="1" height="1" /></bezel> - <bezel name="13.23" element="led"><bounds x="26" y="46" width="1" height="1" /></bezel> - <bezel name="13.24" element="led"><bounds x="26" y="48" width="1" height="1" /></bezel> - <bezel name="13.25" element="led"><bounds x="26" y="50" width="1" height="1" /></bezel> - <bezel name="13.26" element="led"><bounds x="26" y="52" width="1" height="1" /></bezel> - <bezel name="13.27" element="led"><bounds x="26" y="54" width="1" height="1" /></bezel> - <bezel name="13.28" element="led"><bounds x="26" y="56" width="1" height="1" /></bezel> - <bezel name="13.29" element="led"><bounds x="26" y="58" width="1" height="1" /></bezel> - <bezel name="13.30" element="led"><bounds x="26" y="60" width="1" height="1" /></bezel> - <bezel name="13.31" element="led"><bounds x="26" y="62" width="1" height="1" /></bezel> - - <bezel name="14.0" element="led"><bounds x="28" y="0" width="1" height="1" /></bezel> - <bezel name="14.1" element="led"><bounds x="28" y="2" width="1" height="1" /></bezel> - <bezel name="14.2" element="led"><bounds x="28" y="4" width="1" height="1" /></bezel> - <bezel name="14.3" element="led"><bounds x="28" y="6" width="1" height="1" /></bezel> - <bezel name="14.4" element="led"><bounds x="28" y="8" width="1" height="1" /></bezel> - <bezel name="14.5" element="led"><bounds x="28" y="10" width="1" height="1" /></bezel> - <bezel name="14.6" element="led"><bounds x="28" y="12" width="1" height="1" /></bezel> - <bezel name="14.7" element="led"><bounds x="28" y="14" width="1" height="1" /></bezel> - <bezel name="14.8" element="led"><bounds x="28" y="16" width="1" height="1" /></bezel> - <bezel name="14.9" element="led"><bounds x="28" y="18" width="1" height="1" /></bezel> - <bezel name="14.10" element="led"><bounds x="28" y="20" width="1" height="1" /></bezel> - <bezel name="14.11" element="led"><bounds x="28" y="22" width="1" height="1" /></bezel> - <bezel name="14.12" element="led"><bounds x="28" y="24" width="1" height="1" /></bezel> - <bezel name="14.13" element="led"><bounds x="28" y="26" width="1" height="1" /></bezel> - <bezel name="14.14" element="led"><bounds x="28" y="28" width="1" height="1" /></bezel> - <bezel name="14.15" element="led"><bounds x="28" y="30" width="1" height="1" /></bezel> - <bezel name="14.16" element="led"><bounds x="28" y="32" width="1" height="1" /></bezel> - <bezel name="14.17" element="led"><bounds x="28" y="34" width="1" height="1" /></bezel> - <bezel name="14.18" element="led"><bounds x="28" y="36" width="1" height="1" /></bezel> - <bezel name="14.19" element="led"><bounds x="28" y="38" width="1" height="1" /></bezel> - <bezel name="14.20" element="led"><bounds x="28" y="40" width="1" height="1" /></bezel> - <bezel name="14.21" element="led"><bounds x="28" y="42" width="1" height="1" /></bezel> - <bezel name="14.22" element="led"><bounds x="28" y="44" width="1" height="1" /></bezel> - <bezel name="14.23" element="led"><bounds x="28" y="46" width="1" height="1" /></bezel> - <bezel name="14.24" element="led"><bounds x="28" y="48" width="1" height="1" /></bezel> - <bezel name="14.25" element="led"><bounds x="28" y="50" width="1" height="1" /></bezel> - <bezel name="14.26" element="led"><bounds x="28" y="52" width="1" height="1" /></bezel> - <bezel name="14.27" element="led"><bounds x="28" y="54" width="1" height="1" /></bezel> - <bezel name="14.28" element="led"><bounds x="28" y="56" width="1" height="1" /></bezel> - <bezel name="14.29" element="led"><bounds x="28" y="58" width="1" height="1" /></bezel> - <bezel name="14.30" element="led"><bounds x="28" y="60" width="1" height="1" /></bezel> - <bezel name="14.31" element="led"><bounds x="28" y="62" width="1" height="1" /></bezel> - - <bezel name="15.0" element="led"><bounds x="30" y="0" width="1" height="1" /></bezel> - <bezel name="15.1" element="led"><bounds x="30" y="2" width="1" height="1" /></bezel> - <bezel name="15.2" element="led"><bounds x="30" y="4" width="1" height="1" /></bezel> - <bezel name="15.3" element="led"><bounds x="30" y="6" width="1" height="1" /></bezel> - <bezel name="15.4" element="led"><bounds x="30" y="8" width="1" height="1" /></bezel> - <bezel name="15.5" element="led"><bounds x="30" y="10" width="1" height="1" /></bezel> - <bezel name="15.6" element="led"><bounds x="30" y="12" width="1" height="1" /></bezel> - <bezel name="15.7" element="led"><bounds x="30" y="14" width="1" height="1" /></bezel> - <bezel name="15.8" element="led"><bounds x="30" y="16" width="1" height="1" /></bezel> - <bezel name="15.9" element="led"><bounds x="30" y="18" width="1" height="1" /></bezel> - <bezel name="15.10" element="led"><bounds x="30" y="20" width="1" height="1" /></bezel> - <bezel name="15.11" element="led"><bounds x="30" y="22" width="1" height="1" /></bezel> - <bezel name="15.12" element="led"><bounds x="30" y="24" width="1" height="1" /></bezel> - <bezel name="15.13" element="led"><bounds x="30" y="26" width="1" height="1" /></bezel> - <bezel name="15.14" element="led"><bounds x="30" y="28" width="1" height="1" /></bezel> - <bezel name="15.15" element="led"><bounds x="30" y="30" width="1" height="1" /></bezel> - <bezel name="15.16" element="led"><bounds x="30" y="32" width="1" height="1" /></bezel> - <bezel name="15.17" element="led"><bounds x="30" y="34" width="1" height="1" /></bezel> - <bezel name="15.18" element="led"><bounds x="30" y="36" width="1" height="1" /></bezel> - <bezel name="15.19" element="led"><bounds x="30" y="38" width="1" height="1" /></bezel> - <bezel name="15.20" element="led"><bounds x="30" y="40" width="1" height="1" /></bezel> - <bezel name="15.21" element="led"><bounds x="30" y="42" width="1" height="1" /></bezel> - <bezel name="15.22" element="led"><bounds x="30" y="44" width="1" height="1" /></bezel> - <bezel name="15.23" element="led"><bounds x="30" y="46" width="1" height="1" /></bezel> - <bezel name="15.24" element="led"><bounds x="30" y="48" width="1" height="1" /></bezel> - <bezel name="15.25" element="led"><bounds x="30" y="50" width="1" height="1" /></bezel> - <bezel name="15.26" element="led"><bounds x="30" y="52" width="1" height="1" /></bezel> - <bezel name="15.27" element="led"><bounds x="30" y="54" width="1" height="1" /></bezel> - <bezel name="15.28" element="led"><bounds x="30" y="56" width="1" height="1" /></bezel> - <bezel name="15.29" element="led"><bounds x="30" y="58" width="1" height="1" /></bezel> - <bezel name="15.30" element="led"><bounds x="30" y="60" width="1" height="1" /></bezel> - <bezel name="15.31" element="led"><bounds x="30" y="62" width="1" height="1" /></bezel> + <repeat count="32"> + <param name="x" start="0" increment="1" /> + <bezel name="~y~.~x~" element="led"><bounds x="~x~" y="~y~" width="0.5" height="0.5" /></bezel> + </repeat> + </repeat> </view> </mamelayout> diff --git a/src/mame/layout/hh_hmcs40_test.lay b/src/mame/layout/hh_hmcs40_test.lay index 17c5582a501..270ad36fff9 100644 --- a/src/mame/layout/hh_hmcs40_test.lay +++ b/src/mame/layout/hh_hmcs40_test.lay @@ -14,668 +14,21 @@ <!-- build screen --> <view name="Test Layout"> - <bounds left="0" right="64" top="0" bottom="80" /> + <bounds left="0" right="40" top="0" bottom="16" /> <bezel element="static_black"> - <bounds left="0" right="64" top="0" bottom="80" /> + <bounds left="0" right="40" top="0" bottom="16" /> </bezel> <!-- max 16*40 matrix --> - <bezel name="0.0" element="led"><bounds x="0" y="0" width="1" height="1" /></bezel> - <bezel name="0.1" element="led"><bounds x="0" y="2" width="1" height="1" /></bezel> - <bezel name="0.2" element="led"><bounds x="0" y="4" width="1" height="1" /></bezel> - <bezel name="0.3" element="led"><bounds x="0" y="6" width="1" height="1" /></bezel> - <bezel name="0.4" element="led"><bounds x="0" y="8" width="1" height="1" /></bezel> - <bezel name="0.5" element="led"><bounds x="0" y="10" width="1" height="1" /></bezel> - <bezel name="0.6" element="led"><bounds x="0" y="12" width="1" height="1" /></bezel> - <bezel name="0.7" element="led"><bounds x="0" y="14" width="1" height="1" /></bezel> - <bezel name="0.8" element="led"><bounds x="0" y="16" width="1" height="1" /></bezel> - <bezel name="0.9" element="led"><bounds x="0" y="18" width="1" height="1" /></bezel> - <bezel name="0.10" element="led"><bounds x="0" y="20" width="1" height="1" /></bezel> - <bezel name="0.11" element="led"><bounds x="0" y="22" width="1" height="1" /></bezel> - <bezel name="0.12" element="led"><bounds x="0" y="24" width="1" height="1" /></bezel> - <bezel name="0.13" element="led"><bounds x="0" y="26" width="1" height="1" /></bezel> - <bezel name="0.14" element="led"><bounds x="0" y="28" width="1" height="1" /></bezel> - <bezel name="0.15" element="led"><bounds x="0" y="30" width="1" height="1" /></bezel> - <bezel name="0.16" element="led"><bounds x="0" y="32" width="1" height="1" /></bezel> - <bezel name="0.17" element="led"><bounds x="0" y="34" width="1" height="1" /></bezel> - <bezel name="0.18" element="led"><bounds x="0" y="36" width="1" height="1" /></bezel> - <bezel name="0.19" element="led"><bounds x="0" y="38" width="1" height="1" /></bezel> - <bezel name="0.20" element="led"><bounds x="0" y="40" width="1" height="1" /></bezel> - <bezel name="0.21" element="led"><bounds x="0" y="42" width="1" height="1" /></bezel> - <bezel name="0.22" element="led"><bounds x="0" y="44" width="1" height="1" /></bezel> - <bezel name="0.23" element="led"><bounds x="0" y="46" width="1" height="1" /></bezel> - <bezel name="0.24" element="led"><bounds x="0" y="48" width="1" height="1" /></bezel> - <bezel name="0.25" element="led"><bounds x="0" y="50" width="1" height="1" /></bezel> - <bezel name="0.26" element="led"><bounds x="0" y="52" width="1" height="1" /></bezel> - <bezel name="0.27" element="led"><bounds x="0" y="54" width="1" height="1" /></bezel> - <bezel name="0.28" element="led"><bounds x="0" y="56" width="1" height="1" /></bezel> - <bezel name="0.29" element="led"><bounds x="0" y="58" width="1" height="1" /></bezel> - <bezel name="0.30" element="led"><bounds x="0" y="60" width="1" height="1" /></bezel> - <bezel name="0.31" element="led"><bounds x="0" y="62" width="1" height="1" /></bezel> - <bezel name="0.32" element="led"><bounds x="0" y="64" width="1" height="1" /></bezel> - <bezel name="0.33" element="led"><bounds x="0" y="66" width="1" height="1" /></bezel> - <bezel name="0.34" element="led"><bounds x="0" y="68" width="1" height="1" /></bezel> - <bezel name="0.35" element="led"><bounds x="0" y="70" width="1" height="1" /></bezel> - <bezel name="0.36" element="led"><bounds x="0" y="72" width="1" height="1" /></bezel> - <bezel name="0.37" element="led"><bounds x="0" y="74" width="1" height="1" /></bezel> - <bezel name="0.38" element="led"><bounds x="0" y="76" width="1" height="1" /></bezel> - <bezel name="0.39" element="led"><bounds x="0" y="78" width="1" height="1" /></bezel> + <repeat count="16"> + <param name="y" start="0" increment="1" /> - <bezel name="1.0" element="led"><bounds x="2" y="0" width="1" height="1" /></bezel> - <bezel name="1.1" element="led"><bounds x="2" y="2" width="1" height="1" /></bezel> - <bezel name="1.2" element="led"><bounds x="2" y="4" width="1" height="1" /></bezel> - <bezel name="1.3" element="led"><bounds x="2" y="6" width="1" height="1" /></bezel> - <bezel name="1.4" element="led"><bounds x="2" y="8" width="1" height="1" /></bezel> - <bezel name="1.5" element="led"><bounds x="2" y="10" width="1" height="1" /></bezel> - <bezel name="1.6" element="led"><bounds x="2" y="12" width="1" height="1" /></bezel> - <bezel name="1.7" element="led"><bounds x="2" y="14" width="1" height="1" /></bezel> - <bezel name="1.8" element="led"><bounds x="2" y="16" width="1" height="1" /></bezel> - <bezel name="1.9" element="led"><bounds x="2" y="18" width="1" height="1" /></bezel> - <bezel name="1.10" element="led"><bounds x="2" y="20" width="1" height="1" /></bezel> - <bezel name="1.11" element="led"><bounds x="2" y="22" width="1" height="1" /></bezel> - <bezel name="1.12" element="led"><bounds x="2" y="24" width="1" height="1" /></bezel> - <bezel name="1.13" element="led"><bounds x="2" y="26" width="1" height="1" /></bezel> - <bezel name="1.14" element="led"><bounds x="2" y="28" width="1" height="1" /></bezel> - <bezel name="1.15" element="led"><bounds x="2" y="30" width="1" height="1" /></bezel> - <bezel name="1.16" element="led"><bounds x="2" y="32" width="1" height="1" /></bezel> - <bezel name="1.17" element="led"><bounds x="2" y="34" width="1" height="1" /></bezel> - <bezel name="1.18" element="led"><bounds x="2" y="36" width="1" height="1" /></bezel> - <bezel name="1.19" element="led"><bounds x="2" y="38" width="1" height="1" /></bezel> - <bezel name="1.20" element="led"><bounds x="2" y="40" width="1" height="1" /></bezel> - <bezel name="1.21" element="led"><bounds x="2" y="42" width="1" height="1" /></bezel> - <bezel name="1.22" element="led"><bounds x="2" y="44" width="1" height="1" /></bezel> - <bezel name="1.23" element="led"><bounds x="2" y="46" width="1" height="1" /></bezel> - <bezel name="1.24" element="led"><bounds x="2" y="48" width="1" height="1" /></bezel> - <bezel name="1.25" element="led"><bounds x="2" y="50" width="1" height="1" /></bezel> - <bezel name="1.26" element="led"><bounds x="2" y="52" width="1" height="1" /></bezel> - <bezel name="1.27" element="led"><bounds x="2" y="54" width="1" height="1" /></bezel> - <bezel name="1.28" element="led"><bounds x="2" y="56" width="1" height="1" /></bezel> - <bezel name="1.29" element="led"><bounds x="2" y="58" width="1" height="1" /></bezel> - <bezel name="1.30" element="led"><bounds x="2" y="60" width="1" height="1" /></bezel> - <bezel name="1.31" element="led"><bounds x="2" y="62" width="1" height="1" /></bezel> - <bezel name="1.32" element="led"><bounds x="2" y="64" width="1" height="1" /></bezel> - <bezel name="1.33" element="led"><bounds x="2" y="66" width="1" height="1" /></bezel> - <bezel name="1.34" element="led"><bounds x="2" y="68" width="1" height="1" /></bezel> - <bezel name="1.35" element="led"><bounds x="2" y="70" width="1" height="1" /></bezel> - <bezel name="1.36" element="led"><bounds x="2" y="72" width="1" height="1" /></bezel> - <bezel name="1.37" element="led"><bounds x="2" y="74" width="1" height="1" /></bezel> - <bezel name="1.38" element="led"><bounds x="2" y="76" width="1" height="1" /></bezel> - <bezel name="1.39" element="led"><bounds x="2" y="78" width="1" height="1" /></bezel> - - <bezel name="2.0" element="led"><bounds x="4" y="0" width="1" height="1" /></bezel> - <bezel name="2.1" element="led"><bounds x="4" y="2" width="1" height="1" /></bezel> - <bezel name="2.2" element="led"><bounds x="4" y="4" width="1" height="1" /></bezel> - <bezel name="2.3" element="led"><bounds x="4" y="6" width="1" height="1" /></bezel> - <bezel name="2.4" element="led"><bounds x="4" y="8" width="1" height="1" /></bezel> - <bezel name="2.5" element="led"><bounds x="4" y="10" width="1" height="1" /></bezel> - <bezel name="2.6" element="led"><bounds x="4" y="12" width="1" height="1" /></bezel> - <bezel name="2.7" element="led"><bounds x="4" y="14" width="1" height="1" /></bezel> - <bezel name="2.8" element="led"><bounds x="4" y="16" width="1" height="1" /></bezel> - <bezel name="2.9" element="led"><bounds x="4" y="18" width="1" height="1" /></bezel> - <bezel name="2.10" element="led"><bounds x="4" y="20" width="1" height="1" /></bezel> - <bezel name="2.11" element="led"><bounds x="4" y="22" width="1" height="1" /></bezel> - <bezel name="2.12" element="led"><bounds x="4" y="24" width="1" height="1" /></bezel> - <bezel name="2.13" element="led"><bounds x="4" y="26" width="1" height="1" /></bezel> - <bezel name="2.14" element="led"><bounds x="4" y="28" width="1" height="1" /></bezel> - <bezel name="2.15" element="led"><bounds x="4" y="30" width="1" height="1" /></bezel> - <bezel name="2.16" element="led"><bounds x="4" y="32" width="1" height="1" /></bezel> - <bezel name="2.17" element="led"><bounds x="4" y="34" width="1" height="1" /></bezel> - <bezel name="2.18" element="led"><bounds x="4" y="36" width="1" height="1" /></bezel> - <bezel name="2.19" element="led"><bounds x="4" y="38" width="1" height="1" /></bezel> - <bezel name="2.20" element="led"><bounds x="4" y="40" width="1" height="1" /></bezel> - <bezel name="2.21" element="led"><bounds x="4" y="42" width="1" height="1" /></bezel> - <bezel name="2.22" element="led"><bounds x="4" y="44" width="1" height="1" /></bezel> - <bezel name="2.23" element="led"><bounds x="4" y="46" width="1" height="1" /></bezel> - <bezel name="2.24" element="led"><bounds x="4" y="48" width="1" height="1" /></bezel> - <bezel name="2.25" element="led"><bounds x="4" y="50" width="1" height="1" /></bezel> - <bezel name="2.26" element="led"><bounds x="4" y="52" width="1" height="1" /></bezel> - <bezel name="2.27" element="led"><bounds x="4" y="54" width="1" height="1" /></bezel> - <bezel name="2.28" element="led"><bounds x="4" y="56" width="1" height="1" /></bezel> - <bezel name="2.29" element="led"><bounds x="4" y="58" width="1" height="1" /></bezel> - <bezel name="2.30" element="led"><bounds x="4" y="60" width="1" height="1" /></bezel> - <bezel name="2.31" element="led"><bounds x="4" y="62" width="1" height="1" /></bezel> - <bezel name="2.32" element="led"><bounds x="4" y="64" width="1" height="1" /></bezel> - <bezel name="2.33" element="led"><bounds x="4" y="66" width="1" height="1" /></bezel> - <bezel name="2.34" element="led"><bounds x="4" y="68" width="1" height="1" /></bezel> - <bezel name="2.35" element="led"><bounds x="4" y="70" width="1" height="1" /></bezel> - <bezel name="2.36" element="led"><bounds x="4" y="72" width="1" height="1" /></bezel> - <bezel name="2.37" element="led"><bounds x="4" y="74" width="1" height="1" /></bezel> - <bezel name="2.38" element="led"><bounds x="4" y="76" width="1" height="1" /></bezel> - <bezel name="2.39" element="led"><bounds x="4" y="78" width="1" height="1" /></bezel> - - <bezel name="3.0" element="led"><bounds x="6" y="0" width="1" height="1" /></bezel> - <bezel name="3.1" element="led"><bounds x="6" y="2" width="1" height="1" /></bezel> - <bezel name="3.2" element="led"><bounds x="6" y="4" width="1" height="1" /></bezel> - <bezel name="3.3" element="led"><bounds x="6" y="6" width="1" height="1" /></bezel> - <bezel name="3.4" element="led"><bounds x="6" y="8" width="1" height="1" /></bezel> - <bezel name="3.5" element="led"><bounds x="6" y="10" width="1" height="1" /></bezel> - <bezel name="3.6" element="led"><bounds x="6" y="12" width="1" height="1" /></bezel> - <bezel name="3.7" element="led"><bounds x="6" y="14" width="1" height="1" /></bezel> - <bezel name="3.8" element="led"><bounds x="6" y="16" width="1" height="1" /></bezel> - <bezel name="3.9" element="led"><bounds x="6" y="18" width="1" height="1" /></bezel> - <bezel name="3.10" element="led"><bounds x="6" y="20" width="1" height="1" /></bezel> - <bezel name="3.11" element="led"><bounds x="6" y="22" width="1" height="1" /></bezel> - <bezel name="3.12" element="led"><bounds x="6" y="24" width="1" height="1" /></bezel> - <bezel name="3.13" element="led"><bounds x="6" y="26" width="1" height="1" /></bezel> - <bezel name="3.14" element="led"><bounds x="6" y="28" width="1" height="1" /></bezel> - <bezel name="3.15" element="led"><bounds x="6" y="30" width="1" height="1" /></bezel> - <bezel name="3.16" element="led"><bounds x="6" y="32" width="1" height="1" /></bezel> - <bezel name="3.17" element="led"><bounds x="6" y="34" width="1" height="1" /></bezel> - <bezel name="3.18" element="led"><bounds x="6" y="36" width="1" height="1" /></bezel> - <bezel name="3.19" element="led"><bounds x="6" y="38" width="1" height="1" /></bezel> - <bezel name="3.20" element="led"><bounds x="6" y="40" width="1" height="1" /></bezel> - <bezel name="3.21" element="led"><bounds x="6" y="42" width="1" height="1" /></bezel> - <bezel name="3.22" element="led"><bounds x="6" y="44" width="1" height="1" /></bezel> - <bezel name="3.23" element="led"><bounds x="6" y="46" width="1" height="1" /></bezel> - <bezel name="3.24" element="led"><bounds x="6" y="48" width="1" height="1" /></bezel> - <bezel name="3.25" element="led"><bounds x="6" y="50" width="1" height="1" /></bezel> - <bezel name="3.26" element="led"><bounds x="6" y="52" width="1" height="1" /></bezel> - <bezel name="3.27" element="led"><bounds x="6" y="54" width="1" height="1" /></bezel> - <bezel name="3.28" element="led"><bounds x="6" y="56" width="1" height="1" /></bezel> - <bezel name="3.29" element="led"><bounds x="6" y="58" width="1" height="1" /></bezel> - <bezel name="3.30" element="led"><bounds x="6" y="60" width="1" height="1" /></bezel> - <bezel name="3.31" element="led"><bounds x="6" y="62" width="1" height="1" /></bezel> - <bezel name="3.32" element="led"><bounds x="6" y="64" width="1" height="1" /></bezel> - <bezel name="3.33" element="led"><bounds x="6" y="66" width="1" height="1" /></bezel> - <bezel name="3.34" element="led"><bounds x="6" y="68" width="1" height="1" /></bezel> - <bezel name="3.35" element="led"><bounds x="6" y="70" width="1" height="1" /></bezel> - <bezel name="3.36" element="led"><bounds x="6" y="72" width="1" height="1" /></bezel> - <bezel name="3.37" element="led"><bounds x="6" y="74" width="1" height="1" /></bezel> - <bezel name="3.38" element="led"><bounds x="6" y="76" width="1" height="1" /></bezel> - <bezel name="3.39" element="led"><bounds x="6" y="78" width="1" height="1" /></bezel> - - <bezel name="4.0" element="led"><bounds x="8" y="0" width="1" height="1" /></bezel> - <bezel name="4.1" element="led"><bounds x="8" y="2" width="1" height="1" /></bezel> - <bezel name="4.2" element="led"><bounds x="8" y="4" width="1" height="1" /></bezel> - <bezel name="4.3" element="led"><bounds x="8" y="6" width="1" height="1" /></bezel> - <bezel name="4.4" element="led"><bounds x="8" y="8" width="1" height="1" /></bezel> - <bezel name="4.5" element="led"><bounds x="8" y="10" width="1" height="1" /></bezel> - <bezel name="4.6" element="led"><bounds x="8" y="12" width="1" height="1" /></bezel> - <bezel name="4.7" element="led"><bounds x="8" y="14" width="1" height="1" /></bezel> - <bezel name="4.8" element="led"><bounds x="8" y="16" width="1" height="1" /></bezel> - <bezel name="4.9" element="led"><bounds x="8" y="18" width="1" height="1" /></bezel> - <bezel name="4.10" element="led"><bounds x="8" y="20" width="1" height="1" /></bezel> - <bezel name="4.11" element="led"><bounds x="8" y="22" width="1" height="1" /></bezel> - <bezel name="4.12" element="led"><bounds x="8" y="24" width="1" height="1" /></bezel> - <bezel name="4.13" element="led"><bounds x="8" y="26" width="1" height="1" /></bezel> - <bezel name="4.14" element="led"><bounds x="8" y="28" width="1" height="1" /></bezel> - <bezel name="4.15" element="led"><bounds x="8" y="30" width="1" height="1" /></bezel> - <bezel name="4.16" element="led"><bounds x="8" y="32" width="1" height="1" /></bezel> - <bezel name="4.17" element="led"><bounds x="8" y="34" width="1" height="1" /></bezel> - <bezel name="4.18" element="led"><bounds x="8" y="36" width="1" height="1" /></bezel> - <bezel name="4.19" element="led"><bounds x="8" y="38" width="1" height="1" /></bezel> - <bezel name="4.20" element="led"><bounds x="8" y="40" width="1" height="1" /></bezel> - <bezel name="4.21" element="led"><bounds x="8" y="42" width="1" height="1" /></bezel> - <bezel name="4.22" element="led"><bounds x="8" y="44" width="1" height="1" /></bezel> - <bezel name="4.23" element="led"><bounds x="8" y="46" width="1" height="1" /></bezel> - <bezel name="4.24" element="led"><bounds x="8" y="48" width="1" height="1" /></bezel> - <bezel name="4.25" element="led"><bounds x="8" y="50" width="1" height="1" /></bezel> - <bezel name="4.26" element="led"><bounds x="8" y="52" width="1" height="1" /></bezel> - <bezel name="4.27" element="led"><bounds x="8" y="54" width="1" height="1" /></bezel> - <bezel name="4.28" element="led"><bounds x="8" y="56" width="1" height="1" /></bezel> - <bezel name="4.29" element="led"><bounds x="8" y="58" width="1" height="1" /></bezel> - <bezel name="4.30" element="led"><bounds x="8" y="60" width="1" height="1" /></bezel> - <bezel name="4.31" element="led"><bounds x="8" y="62" width="1" height="1" /></bezel> - <bezel name="4.32" element="led"><bounds x="8" y="64" width="1" height="1" /></bezel> - <bezel name="4.33" element="led"><bounds x="8" y="66" width="1" height="1" /></bezel> - <bezel name="4.34" element="led"><bounds x="8" y="68" width="1" height="1" /></bezel> - <bezel name="4.35" element="led"><bounds x="8" y="70" width="1" height="1" /></bezel> - <bezel name="4.36" element="led"><bounds x="8" y="72" width="1" height="1" /></bezel> - <bezel name="4.37" element="led"><bounds x="8" y="74" width="1" height="1" /></bezel> - <bezel name="4.38" element="led"><bounds x="8" y="76" width="1" height="1" /></bezel> - <bezel name="4.39" element="led"><bounds x="8" y="78" width="1" height="1" /></bezel> - - <bezel name="5.0" element="led"><bounds x="10" y="0" width="1" height="1" /></bezel> - <bezel name="5.1" element="led"><bounds x="10" y="2" width="1" height="1" /></bezel> - <bezel name="5.2" element="led"><bounds x="10" y="4" width="1" height="1" /></bezel> - <bezel name="5.3" element="led"><bounds x="10" y="6" width="1" height="1" /></bezel> - <bezel name="5.4" element="led"><bounds x="10" y="8" width="1" height="1" /></bezel> - <bezel name="5.5" element="led"><bounds x="10" y="10" width="1" height="1" /></bezel> - <bezel name="5.6" element="led"><bounds x="10" y="12" width="1" height="1" /></bezel> - <bezel name="5.7" element="led"><bounds x="10" y="14" width="1" height="1" /></bezel> - <bezel name="5.8" element="led"><bounds x="10" y="16" width="1" height="1" /></bezel> - <bezel name="5.9" element="led"><bounds x="10" y="18" width="1" height="1" /></bezel> - <bezel name="5.10" element="led"><bounds x="10" y="20" width="1" height="1" /></bezel> - <bezel name="5.11" element="led"><bounds x="10" y="22" width="1" height="1" /></bezel> - <bezel name="5.12" element="led"><bounds x="10" y="24" width="1" height="1" /></bezel> - <bezel name="5.13" element="led"><bounds x="10" y="26" width="1" height="1" /></bezel> - <bezel name="5.14" element="led"><bounds x="10" y="28" width="1" height="1" /></bezel> - <bezel name="5.15" element="led"><bounds x="10" y="30" width="1" height="1" /></bezel> - <bezel name="5.16" element="led"><bounds x="10" y="32" width="1" height="1" /></bezel> - <bezel name="5.17" element="led"><bounds x="10" y="34" width="1" height="1" /></bezel> - <bezel name="5.18" element="led"><bounds x="10" y="36" width="1" height="1" /></bezel> - <bezel name="5.19" element="led"><bounds x="10" y="38" width="1" height="1" /></bezel> - <bezel name="5.20" element="led"><bounds x="10" y="40" width="1" height="1" /></bezel> - <bezel name="5.21" element="led"><bounds x="10" y="42" width="1" height="1" /></bezel> - <bezel name="5.22" element="led"><bounds x="10" y="44" width="1" height="1" /></bezel> - <bezel name="5.23" element="led"><bounds x="10" y="46" width="1" height="1" /></bezel> - <bezel name="5.24" element="led"><bounds x="10" y="48" width="1" height="1" /></bezel> - <bezel name="5.25" element="led"><bounds x="10" y="50" width="1" height="1" /></bezel> - <bezel name="5.26" element="led"><bounds x="10" y="52" width="1" height="1" /></bezel> - <bezel name="5.27" element="led"><bounds x="10" y="54" width="1" height="1" /></bezel> - <bezel name="5.28" element="led"><bounds x="10" y="56" width="1" height="1" /></bezel> - <bezel name="5.29" element="led"><bounds x="10" y="58" width="1" height="1" /></bezel> - <bezel name="5.30" element="led"><bounds x="10" y="60" width="1" height="1" /></bezel> - <bezel name="5.31" element="led"><bounds x="10" y="62" width="1" height="1" /></bezel> - <bezel name="5.32" element="led"><bounds x="10" y="64" width="1" height="1" /></bezel> - <bezel name="5.33" element="led"><bounds x="10" y="66" width="1" height="1" /></bezel> - <bezel name="5.34" element="led"><bounds x="10" y="68" width="1" height="1" /></bezel> - <bezel name="5.35" element="led"><bounds x="10" y="70" width="1" height="1" /></bezel> - <bezel name="5.36" element="led"><bounds x="10" y="72" width="1" height="1" /></bezel> - <bezel name="5.37" element="led"><bounds x="10" y="74" width="1" height="1" /></bezel> - <bezel name="5.38" element="led"><bounds x="10" y="76" width="1" height="1" /></bezel> - <bezel name="5.39" element="led"><bounds x="10" y="78" width="1" height="1" /></bezel> - - <bezel name="6.0" element="led"><bounds x="12" y="0" width="1" height="1" /></bezel> - <bezel name="6.1" element="led"><bounds x="12" y="2" width="1" height="1" /></bezel> - <bezel name="6.2" element="led"><bounds x="12" y="4" width="1" height="1" /></bezel> - <bezel name="6.3" element="led"><bounds x="12" y="6" width="1" height="1" /></bezel> - <bezel name="6.4" element="led"><bounds x="12" y="8" width="1" height="1" /></bezel> - <bezel name="6.5" element="led"><bounds x="12" y="10" width="1" height="1" /></bezel> - <bezel name="6.6" element="led"><bounds x="12" y="12" width="1" height="1" /></bezel> - <bezel name="6.7" element="led"><bounds x="12" y="14" width="1" height="1" /></bezel> - <bezel name="6.8" element="led"><bounds x="12" y="16" width="1" height="1" /></bezel> - <bezel name="6.9" element="led"><bounds x="12" y="18" width="1" height="1" /></bezel> - <bezel name="6.10" element="led"><bounds x="12" y="20" width="1" height="1" /></bezel> - <bezel name="6.11" element="led"><bounds x="12" y="22" width="1" height="1" /></bezel> - <bezel name="6.12" element="led"><bounds x="12" y="24" width="1" height="1" /></bezel> - <bezel name="6.13" element="led"><bounds x="12" y="26" width="1" height="1" /></bezel> - <bezel name="6.14" element="led"><bounds x="12" y="28" width="1" height="1" /></bezel> - <bezel name="6.15" element="led"><bounds x="12" y="30" width="1" height="1" /></bezel> - <bezel name="6.16" element="led"><bounds x="12" y="32" width="1" height="1" /></bezel> - <bezel name="6.17" element="led"><bounds x="12" y="34" width="1" height="1" /></bezel> - <bezel name="6.18" element="led"><bounds x="12" y="36" width="1" height="1" /></bezel> - <bezel name="6.19" element="led"><bounds x="12" y="38" width="1" height="1" /></bezel> - <bezel name="6.20" element="led"><bounds x="12" y="40" width="1" height="1" /></bezel> - <bezel name="6.21" element="led"><bounds x="12" y="42" width="1" height="1" /></bezel> - <bezel name="6.22" element="led"><bounds x="12" y="44" width="1" height="1" /></bezel> - <bezel name="6.23" element="led"><bounds x="12" y="46" width="1" height="1" /></bezel> - <bezel name="6.24" element="led"><bounds x="12" y="48" width="1" height="1" /></bezel> - <bezel name="6.25" element="led"><bounds x="12" y="50" width="1" height="1" /></bezel> - <bezel name="6.26" element="led"><bounds x="12" y="52" width="1" height="1" /></bezel> - <bezel name="6.27" element="led"><bounds x="12" y="54" width="1" height="1" /></bezel> - <bezel name="6.28" element="led"><bounds x="12" y="56" width="1" height="1" /></bezel> - <bezel name="6.29" element="led"><bounds x="12" y="58" width="1" height="1" /></bezel> - <bezel name="6.30" element="led"><bounds x="12" y="60" width="1" height="1" /></bezel> - <bezel name="6.31" element="led"><bounds x="12" y="62" width="1" height="1" /></bezel> - <bezel name="6.32" element="led"><bounds x="12" y="64" width="1" height="1" /></bezel> - <bezel name="6.33" element="led"><bounds x="12" y="66" width="1" height="1" /></bezel> - <bezel name="6.34" element="led"><bounds x="12" y="68" width="1" height="1" /></bezel> - <bezel name="6.35" element="led"><bounds x="12" y="70" width="1" height="1" /></bezel> - <bezel name="6.36" element="led"><bounds x="12" y="72" width="1" height="1" /></bezel> - <bezel name="6.37" element="led"><bounds x="12" y="74" width="1" height="1" /></bezel> - <bezel name="6.38" element="led"><bounds x="12" y="76" width="1" height="1" /></bezel> - <bezel name="6.39" element="led"><bounds x="12" y="78" width="1" height="1" /></bezel> - - <bezel name="7.0" element="led"><bounds x="14" y="0" width="1" height="1" /></bezel> - <bezel name="7.1" element="led"><bounds x="14" y="2" width="1" height="1" /></bezel> - <bezel name="7.2" element="led"><bounds x="14" y="4" width="1" height="1" /></bezel> - <bezel name="7.3" element="led"><bounds x="14" y="6" width="1" height="1" /></bezel> - <bezel name="7.4" element="led"><bounds x="14" y="8" width="1" height="1" /></bezel> - <bezel name="7.5" element="led"><bounds x="14" y="10" width="1" height="1" /></bezel> - <bezel name="7.6" element="led"><bounds x="14" y="12" width="1" height="1" /></bezel> - <bezel name="7.7" element="led"><bounds x="14" y="14" width="1" height="1" /></bezel> - <bezel name="7.8" element="led"><bounds x="14" y="16" width="1" height="1" /></bezel> - <bezel name="7.9" element="led"><bounds x="14" y="18" width="1" height="1" /></bezel> - <bezel name="7.10" element="led"><bounds x="14" y="20" width="1" height="1" /></bezel> - <bezel name="7.11" element="led"><bounds x="14" y="22" width="1" height="1" /></bezel> - <bezel name="7.12" element="led"><bounds x="14" y="24" width="1" height="1" /></bezel> - <bezel name="7.13" element="led"><bounds x="14" y="26" width="1" height="1" /></bezel> - <bezel name="7.14" element="led"><bounds x="14" y="28" width="1" height="1" /></bezel> - <bezel name="7.15" element="led"><bounds x="14" y="30" width="1" height="1" /></bezel> - <bezel name="7.16" element="led"><bounds x="14" y="32" width="1" height="1" /></bezel> - <bezel name="7.17" element="led"><bounds x="14" y="34" width="1" height="1" /></bezel> - <bezel name="7.18" element="led"><bounds x="14" y="36" width="1" height="1" /></bezel> - <bezel name="7.19" element="led"><bounds x="14" y="38" width="1" height="1" /></bezel> - <bezel name="7.20" element="led"><bounds x="14" y="40" width="1" height="1" /></bezel> - <bezel name="7.21" element="led"><bounds x="14" y="42" width="1" height="1" /></bezel> - <bezel name="7.22" element="led"><bounds x="14" y="44" width="1" height="1" /></bezel> - <bezel name="7.23" element="led"><bounds x="14" y="46" width="1" height="1" /></bezel> - <bezel name="7.24" element="led"><bounds x="14" y="48" width="1" height="1" /></bezel> - <bezel name="7.25" element="led"><bounds x="14" y="50" width="1" height="1" /></bezel> - <bezel name="7.26" element="led"><bounds x="14" y="52" width="1" height="1" /></bezel> - <bezel name="7.27" element="led"><bounds x="14" y="54" width="1" height="1" /></bezel> - <bezel name="7.28" element="led"><bounds x="14" y="56" width="1" height="1" /></bezel> - <bezel name="7.29" element="led"><bounds x="14" y="58" width="1" height="1" /></bezel> - <bezel name="7.30" element="led"><bounds x="14" y="60" width="1" height="1" /></bezel> - <bezel name="7.31" element="led"><bounds x="14" y="62" width="1" height="1" /></bezel> - <bezel name="7.32" element="led"><bounds x="14" y="64" width="1" height="1" /></bezel> - <bezel name="7.33" element="led"><bounds x="14" y="66" width="1" height="1" /></bezel> - <bezel name="7.34" element="led"><bounds x="14" y="68" width="1" height="1" /></bezel> - <bezel name="7.35" element="led"><bounds x="14" y="70" width="1" height="1" /></bezel> - <bezel name="7.36" element="led"><bounds x="14" y="72" width="1" height="1" /></bezel> - <bezel name="7.37" element="led"><bounds x="14" y="74" width="1" height="1" /></bezel> - <bezel name="7.38" element="led"><bounds x="14" y="76" width="1" height="1" /></bezel> - <bezel name="7.39" element="led"><bounds x="14" y="78" width="1" height="1" /></bezel> - - <bezel name="8.0" element="led"><bounds x="16" y="0" width="1" height="1" /></bezel> - <bezel name="8.1" element="led"><bounds x="16" y="2" width="1" height="1" /></bezel> - <bezel name="8.2" element="led"><bounds x="16" y="4" width="1" height="1" /></bezel> - <bezel name="8.3" element="led"><bounds x="16" y="6" width="1" height="1" /></bezel> - <bezel name="8.4" element="led"><bounds x="16" y="8" width="1" height="1" /></bezel> - <bezel name="8.5" element="led"><bounds x="16" y="10" width="1" height="1" /></bezel> - <bezel name="8.6" element="led"><bounds x="16" y="12" width="1" height="1" /></bezel> - <bezel name="8.7" element="led"><bounds x="16" y="14" width="1" height="1" /></bezel> - <bezel name="8.8" element="led"><bounds x="16" y="16" width="1" height="1" /></bezel> - <bezel name="8.9" element="led"><bounds x="16" y="18" width="1" height="1" /></bezel> - <bezel name="8.10" element="led"><bounds x="16" y="20" width="1" height="1" /></bezel> - <bezel name="8.11" element="led"><bounds x="16" y="22" width="1" height="1" /></bezel> - <bezel name="8.12" element="led"><bounds x="16" y="24" width="1" height="1" /></bezel> - <bezel name="8.13" element="led"><bounds x="16" y="26" width="1" height="1" /></bezel> - <bezel name="8.14" element="led"><bounds x="16" y="28" width="1" height="1" /></bezel> - <bezel name="8.15" element="led"><bounds x="16" y="30" width="1" height="1" /></bezel> - <bezel name="8.16" element="led"><bounds x="16" y="32" width="1" height="1" /></bezel> - <bezel name="8.17" element="led"><bounds x="16" y="34" width="1" height="1" /></bezel> - <bezel name="8.18" element="led"><bounds x="16" y="36" width="1" height="1" /></bezel> - <bezel name="8.19" element="led"><bounds x="16" y="38" width="1" height="1" /></bezel> - <bezel name="8.20" element="led"><bounds x="16" y="40" width="1" height="1" /></bezel> - <bezel name="8.21" element="led"><bounds x="16" y="42" width="1" height="1" /></bezel> - <bezel name="8.22" element="led"><bounds x="16" y="44" width="1" height="1" /></bezel> - <bezel name="8.23" element="led"><bounds x="16" y="46" width="1" height="1" /></bezel> - <bezel name="8.24" element="led"><bounds x="16" y="48" width="1" height="1" /></bezel> - <bezel name="8.25" element="led"><bounds x="16" y="50" width="1" height="1" /></bezel> - <bezel name="8.26" element="led"><bounds x="16" y="52" width="1" height="1" /></bezel> - <bezel name="8.27" element="led"><bounds x="16" y="54" width="1" height="1" /></bezel> - <bezel name="8.28" element="led"><bounds x="16" y="56" width="1" height="1" /></bezel> - <bezel name="8.29" element="led"><bounds x="16" y="58" width="1" height="1" /></bezel> - <bezel name="8.30" element="led"><bounds x="16" y="60" width="1" height="1" /></bezel> - <bezel name="8.31" element="led"><bounds x="16" y="62" width="1" height="1" /></bezel> - <bezel name="8.32" element="led"><bounds x="16" y="64" width="1" height="1" /></bezel> - <bezel name="8.33" element="led"><bounds x="16" y="66" width="1" height="1" /></bezel> - <bezel name="8.34" element="led"><bounds x="16" y="68" width="1" height="1" /></bezel> - <bezel name="8.35" element="led"><bounds x="16" y="70" width="1" height="1" /></bezel> - <bezel name="8.36" element="led"><bounds x="16" y="72" width="1" height="1" /></bezel> - <bezel name="8.37" element="led"><bounds x="16" y="74" width="1" height="1" /></bezel> - <bezel name="8.38" element="led"><bounds x="16" y="76" width="1" height="1" /></bezel> - <bezel name="8.39" element="led"><bounds x="16" y="78" width="1" height="1" /></bezel> - - <bezel name="9.0" element="led"><bounds x="18" y="0" width="1" height="1" /></bezel> - <bezel name="9.1" element="led"><bounds x="18" y="2" width="1" height="1" /></bezel> - <bezel name="9.2" element="led"><bounds x="18" y="4" width="1" height="1" /></bezel> - <bezel name="9.3" element="led"><bounds x="18" y="6" width="1" height="1" /></bezel> - <bezel name="9.4" element="led"><bounds x="18" y="8" width="1" height="1" /></bezel> - <bezel name="9.5" element="led"><bounds x="18" y="10" width="1" height="1" /></bezel> - <bezel name="9.6" element="led"><bounds x="18" y="12" width="1" height="1" /></bezel> - <bezel name="9.7" element="led"><bounds x="18" y="14" width="1" height="1" /></bezel> - <bezel name="9.8" element="led"><bounds x="18" y="16" width="1" height="1" /></bezel> - <bezel name="9.9" element="led"><bounds x="18" y="18" width="1" height="1" /></bezel> - <bezel name="9.10" element="led"><bounds x="18" y="20" width="1" height="1" /></bezel> - <bezel name="9.11" element="led"><bounds x="18" y="22" width="1" height="1" /></bezel> - <bezel name="9.12" element="led"><bounds x="18" y="24" width="1" height="1" /></bezel> - <bezel name="9.13" element="led"><bounds x="18" y="26" width="1" height="1" /></bezel> - <bezel name="9.14" element="led"><bounds x="18" y="28" width="1" height="1" /></bezel> - <bezel name="9.15" element="led"><bounds x="18" y="30" width="1" height="1" /></bezel> - <bezel name="9.16" element="led"><bounds x="18" y="32" width="1" height="1" /></bezel> - <bezel name="9.17" element="led"><bounds x="18" y="34" width="1" height="1" /></bezel> - <bezel name="9.18" element="led"><bounds x="18" y="36" width="1" height="1" /></bezel> - <bezel name="9.19" element="led"><bounds x="18" y="38" width="1" height="1" /></bezel> - <bezel name="9.20" element="led"><bounds x="18" y="40" width="1" height="1" /></bezel> - <bezel name="9.21" element="led"><bounds x="18" y="42" width="1" height="1" /></bezel> - <bezel name="9.22" element="led"><bounds x="18" y="44" width="1" height="1" /></bezel> - <bezel name="9.23" element="led"><bounds x="18" y="46" width="1" height="1" /></bezel> - <bezel name="9.24" element="led"><bounds x="18" y="48" width="1" height="1" /></bezel> - <bezel name="9.25" element="led"><bounds x="18" y="50" width="1" height="1" /></bezel> - <bezel name="9.26" element="led"><bounds x="18" y="52" width="1" height="1" /></bezel> - <bezel name="9.27" element="led"><bounds x="18" y="54" width="1" height="1" /></bezel> - <bezel name="9.28" element="led"><bounds x="18" y="56" width="1" height="1" /></bezel> - <bezel name="9.29" element="led"><bounds x="18" y="58" width="1" height="1" /></bezel> - <bezel name="9.30" element="led"><bounds x="18" y="60" width="1" height="1" /></bezel> - <bezel name="9.31" element="led"><bounds x="18" y="62" width="1" height="1" /></bezel> - <bezel name="9.32" element="led"><bounds x="18" y="64" width="1" height="1" /></bezel> - <bezel name="9.33" element="led"><bounds x="18" y="66" width="1" height="1" /></bezel> - <bezel name="9.34" element="led"><bounds x="18" y="68" width="1" height="1" /></bezel> - <bezel name="9.35" element="led"><bounds x="18" y="70" width="1" height="1" /></bezel> - <bezel name="9.36" element="led"><bounds x="18" y="72" width="1" height="1" /></bezel> - <bezel name="9.37" element="led"><bounds x="18" y="74" width="1" height="1" /></bezel> - <bezel name="9.38" element="led"><bounds x="18" y="76" width="1" height="1" /></bezel> - <bezel name="9.39" element="led"><bounds x="18" y="78" width="1" height="1" /></bezel> - - <bezel name="10.0" element="led"><bounds x="20" y="0" width="1" height="1" /></bezel> - <bezel name="10.1" element="led"><bounds x="20" y="2" width="1" height="1" /></bezel> - <bezel name="10.2" element="led"><bounds x="20" y="4" width="1" height="1" /></bezel> - <bezel name="10.3" element="led"><bounds x="20" y="6" width="1" height="1" /></bezel> - <bezel name="10.4" element="led"><bounds x="20" y="8" width="1" height="1" /></bezel> - <bezel name="10.5" element="led"><bounds x="20" y="10" width="1" height="1" /></bezel> - <bezel name="10.6" element="led"><bounds x="20" y="12" width="1" height="1" /></bezel> - <bezel name="10.7" element="led"><bounds x="20" y="14" width="1" height="1" /></bezel> - <bezel name="10.8" element="led"><bounds x="20" y="16" width="1" height="1" /></bezel> - <bezel name="10.9" element="led"><bounds x="20" y="18" width="1" height="1" /></bezel> - <bezel name="10.10" element="led"><bounds x="20" y="20" width="1" height="1" /></bezel> - <bezel name="10.11" element="led"><bounds x="20" y="22" width="1" height="1" /></bezel> - <bezel name="10.12" element="led"><bounds x="20" y="24" width="1" height="1" /></bezel> - <bezel name="10.13" element="led"><bounds x="20" y="26" width="1" height="1" /></bezel> - <bezel name="10.14" element="led"><bounds x="20" y="28" width="1" height="1" /></bezel> - <bezel name="10.15" element="led"><bounds x="20" y="30" width="1" height="1" /></bezel> - <bezel name="10.16" element="led"><bounds x="20" y="32" width="1" height="1" /></bezel> - <bezel name="10.17" element="led"><bounds x="20" y="34" width="1" height="1" /></bezel> - <bezel name="10.18" element="led"><bounds x="20" y="36" width="1" height="1" /></bezel> - <bezel name="10.19" element="led"><bounds x="20" y="38" width="1" height="1" /></bezel> - <bezel name="10.20" element="led"><bounds x="20" y="40" width="1" height="1" /></bezel> - <bezel name="10.21" element="led"><bounds x="20" y="42" width="1" height="1" /></bezel> - <bezel name="10.22" element="led"><bounds x="20" y="44" width="1" height="1" /></bezel> - <bezel name="10.23" element="led"><bounds x="20" y="46" width="1" height="1" /></bezel> - <bezel name="10.24" element="led"><bounds x="20" y="48" width="1" height="1" /></bezel> - <bezel name="10.25" element="led"><bounds x="20" y="50" width="1" height="1" /></bezel> - <bezel name="10.26" element="led"><bounds x="20" y="52" width="1" height="1" /></bezel> - <bezel name="10.27" element="led"><bounds x="20" y="54" width="1" height="1" /></bezel> - <bezel name="10.28" element="led"><bounds x="20" y="56" width="1" height="1" /></bezel> - <bezel name="10.29" element="led"><bounds x="20" y="58" width="1" height="1" /></bezel> - <bezel name="10.30" element="led"><bounds x="20" y="60" width="1" height="1" /></bezel> - <bezel name="10.31" element="led"><bounds x="20" y="62" width="1" height="1" /></bezel> - <bezel name="10.32" element="led"><bounds x="20" y="64" width="1" height="1" /></bezel> - <bezel name="10.33" element="led"><bounds x="20" y="66" width="1" height="1" /></bezel> - <bezel name="10.34" element="led"><bounds x="20" y="68" width="1" height="1" /></bezel> - <bezel name="10.35" element="led"><bounds x="20" y="70" width="1" height="1" /></bezel> - <bezel name="10.36" element="led"><bounds x="20" y="72" width="1" height="1" /></bezel> - <bezel name="10.37" element="led"><bounds x="20" y="74" width="1" height="1" /></bezel> - <bezel name="10.38" element="led"><bounds x="20" y="76" width="1" height="1" /></bezel> - <bezel name="10.39" element="led"><bounds x="20" y="78" width="1" height="1" /></bezel> - - <bezel name="11.0" element="led"><bounds x="22" y="0" width="1" height="1" /></bezel> - <bezel name="11.1" element="led"><bounds x="22" y="2" width="1" height="1" /></bezel> - <bezel name="11.2" element="led"><bounds x="22" y="4" width="1" height="1" /></bezel> - <bezel name="11.3" element="led"><bounds x="22" y="6" width="1" height="1" /></bezel> - <bezel name="11.4" element="led"><bounds x="22" y="8" width="1" height="1" /></bezel> - <bezel name="11.5" element="led"><bounds x="22" y="10" width="1" height="1" /></bezel> - <bezel name="11.6" element="led"><bounds x="22" y="12" width="1" height="1" /></bezel> - <bezel name="11.7" element="led"><bounds x="22" y="14" width="1" height="1" /></bezel> - <bezel name="11.8" element="led"><bounds x="22" y="16" width="1" height="1" /></bezel> - <bezel name="11.9" element="led"><bounds x="22" y="18" width="1" height="1" /></bezel> - <bezel name="11.10" element="led"><bounds x="22" y="20" width="1" height="1" /></bezel> - <bezel name="11.11" element="led"><bounds x="22" y="22" width="1" height="1" /></bezel> - <bezel name="11.12" element="led"><bounds x="22" y="24" width="1" height="1" /></bezel> - <bezel name="11.13" element="led"><bounds x="22" y="26" width="1" height="1" /></bezel> - <bezel name="11.14" element="led"><bounds x="22" y="28" width="1" height="1" /></bezel> - <bezel name="11.15" element="led"><bounds x="22" y="30" width="1" height="1" /></bezel> - <bezel name="11.16" element="led"><bounds x="22" y="32" width="1" height="1" /></bezel> - <bezel name="11.17" element="led"><bounds x="22" y="34" width="1" height="1" /></bezel> - <bezel name="11.18" element="led"><bounds x="22" y="36" width="1" height="1" /></bezel> - <bezel name="11.19" element="led"><bounds x="22" y="38" width="1" height="1" /></bezel> - <bezel name="11.20" element="led"><bounds x="22" y="40" width="1" height="1" /></bezel> - <bezel name="11.21" element="led"><bounds x="22" y="42" width="1" height="1" /></bezel> - <bezel name="11.22" element="led"><bounds x="22" y="44" width="1" height="1" /></bezel> - <bezel name="11.23" element="led"><bounds x="22" y="46" width="1" height="1" /></bezel> - <bezel name="11.24" element="led"><bounds x="22" y="48" width="1" height="1" /></bezel> - <bezel name="11.25" element="led"><bounds x="22" y="50" width="1" height="1" /></bezel> - <bezel name="11.26" element="led"><bounds x="22" y="52" width="1" height="1" /></bezel> - <bezel name="11.27" element="led"><bounds x="22" y="54" width="1" height="1" /></bezel> - <bezel name="11.28" element="led"><bounds x="22" y="56" width="1" height="1" /></bezel> - <bezel name="11.29" element="led"><bounds x="22" y="58" width="1" height="1" /></bezel> - <bezel name="11.30" element="led"><bounds x="22" y="60" width="1" height="1" /></bezel> - <bezel name="11.31" element="led"><bounds x="22" y="62" width="1" height="1" /></bezel> - <bezel name="11.32" element="led"><bounds x="22" y="64" width="1" height="1" /></bezel> - <bezel name="11.33" element="led"><bounds x="22" y="66" width="1" height="1" /></bezel> - <bezel name="11.34" element="led"><bounds x="22" y="68" width="1" height="1" /></bezel> - <bezel name="11.35" element="led"><bounds x="22" y="70" width="1" height="1" /></bezel> - <bezel name="11.36" element="led"><bounds x="22" y="72" width="1" height="1" /></bezel> - <bezel name="11.37" element="led"><bounds x="22" y="74" width="1" height="1" /></bezel> - <bezel name="11.38" element="led"><bounds x="22" y="76" width="1" height="1" /></bezel> - <bezel name="11.39" element="led"><bounds x="22" y="78" width="1" height="1" /></bezel> - - <bezel name="12.0" element="led"><bounds x="24" y="0" width="1" height="1" /></bezel> - <bezel name="12.1" element="led"><bounds x="24" y="2" width="1" height="1" /></bezel> - <bezel name="12.2" element="led"><bounds x="24" y="4" width="1" height="1" /></bezel> - <bezel name="12.3" element="led"><bounds x="24" y="6" width="1" height="1" /></bezel> - <bezel name="12.4" element="led"><bounds x="24" y="8" width="1" height="1" /></bezel> - <bezel name="12.5" element="led"><bounds x="24" y="10" width="1" height="1" /></bezel> - <bezel name="12.6" element="led"><bounds x="24" y="12" width="1" height="1" /></bezel> - <bezel name="12.7" element="led"><bounds x="24" y="14" width="1" height="1" /></bezel> - <bezel name="12.8" element="led"><bounds x="24" y="16" width="1" height="1" /></bezel> - <bezel name="12.9" element="led"><bounds x="24" y="18" width="1" height="1" /></bezel> - <bezel name="12.10" element="led"><bounds x="24" y="20" width="1" height="1" /></bezel> - <bezel name="12.11" element="led"><bounds x="24" y="22" width="1" height="1" /></bezel> - <bezel name="12.12" element="led"><bounds x="24" y="24" width="1" height="1" /></bezel> - <bezel name="12.13" element="led"><bounds x="24" y="26" width="1" height="1" /></bezel> - <bezel name="12.14" element="led"><bounds x="24" y="28" width="1" height="1" /></bezel> - <bezel name="12.15" element="led"><bounds x="24" y="30" width="1" height="1" /></bezel> - <bezel name="12.16" element="led"><bounds x="24" y="32" width="1" height="1" /></bezel> - <bezel name="12.17" element="led"><bounds x="24" y="34" width="1" height="1" /></bezel> - <bezel name="12.18" element="led"><bounds x="24" y="36" width="1" height="1" /></bezel> - <bezel name="12.19" element="led"><bounds x="24" y="38" width="1" height="1" /></bezel> - <bezel name="12.20" element="led"><bounds x="24" y="40" width="1" height="1" /></bezel> - <bezel name="12.21" element="led"><bounds x="24" y="42" width="1" height="1" /></bezel> - <bezel name="12.22" element="led"><bounds x="24" y="44" width="1" height="1" /></bezel> - <bezel name="12.23" element="led"><bounds x="24" y="46" width="1" height="1" /></bezel> - <bezel name="12.24" element="led"><bounds x="24" y="48" width="1" height="1" /></bezel> - <bezel name="12.25" element="led"><bounds x="24" y="50" width="1" height="1" /></bezel> - <bezel name="12.26" element="led"><bounds x="24" y="52" width="1" height="1" /></bezel> - <bezel name="12.27" element="led"><bounds x="24" y="54" width="1" height="1" /></bezel> - <bezel name="12.28" element="led"><bounds x="24" y="56" width="1" height="1" /></bezel> - <bezel name="12.29" element="led"><bounds x="24" y="58" width="1" height="1" /></bezel> - <bezel name="12.30" element="led"><bounds x="24" y="60" width="1" height="1" /></bezel> - <bezel name="12.31" element="led"><bounds x="24" y="62" width="1" height="1" /></bezel> - <bezel name="12.32" element="led"><bounds x="24" y="64" width="1" height="1" /></bezel> - <bezel name="12.33" element="led"><bounds x="24" y="66" width="1" height="1" /></bezel> - <bezel name="12.34" element="led"><bounds x="24" y="68" width="1" height="1" /></bezel> - <bezel name="12.35" element="led"><bounds x="24" y="70" width="1" height="1" /></bezel> - <bezel name="12.36" element="led"><bounds x="24" y="72" width="1" height="1" /></bezel> - <bezel name="12.37" element="led"><bounds x="24" y="74" width="1" height="1" /></bezel> - <bezel name="12.38" element="led"><bounds x="24" y="76" width="1" height="1" /></bezel> - <bezel name="12.39" element="led"><bounds x="24" y="78" width="1" height="1" /></bezel> - - <bezel name="13.0" element="led"><bounds x="26" y="0" width="1" height="1" /></bezel> - <bezel name="13.1" element="led"><bounds x="26" y="2" width="1" height="1" /></bezel> - <bezel name="13.2" element="led"><bounds x="26" y="4" width="1" height="1" /></bezel> - <bezel name="13.3" element="led"><bounds x="26" y="6" width="1" height="1" /></bezel> - <bezel name="13.4" element="led"><bounds x="26" y="8" width="1" height="1" /></bezel> - <bezel name="13.5" element="led"><bounds x="26" y="10" width="1" height="1" /></bezel> - <bezel name="13.6" element="led"><bounds x="26" y="12" width="1" height="1" /></bezel> - <bezel name="13.7" element="led"><bounds x="26" y="14" width="1" height="1" /></bezel> - <bezel name="13.8" element="led"><bounds x="26" y="16" width="1" height="1" /></bezel> - <bezel name="13.9" element="led"><bounds x="26" y="18" width="1" height="1" /></bezel> - <bezel name="13.10" element="led"><bounds x="26" y="20" width="1" height="1" /></bezel> - <bezel name="13.11" element="led"><bounds x="26" y="22" width="1" height="1" /></bezel> - <bezel name="13.12" element="led"><bounds x="26" y="24" width="1" height="1" /></bezel> - <bezel name="13.13" element="led"><bounds x="26" y="26" width="1" height="1" /></bezel> - <bezel name="13.14" element="led"><bounds x="26" y="28" width="1" height="1" /></bezel> - <bezel name="13.15" element="led"><bounds x="26" y="30" width="1" height="1" /></bezel> - <bezel name="13.16" element="led"><bounds x="26" y="32" width="1" height="1" /></bezel> - <bezel name="13.17" element="led"><bounds x="26" y="34" width="1" height="1" /></bezel> - <bezel name="13.18" element="led"><bounds x="26" y="36" width="1" height="1" /></bezel> - <bezel name="13.19" element="led"><bounds x="26" y="38" width="1" height="1" /></bezel> - <bezel name="13.20" element="led"><bounds x="26" y="40" width="1" height="1" /></bezel> - <bezel name="13.21" element="led"><bounds x="26" y="42" width="1" height="1" /></bezel> - <bezel name="13.22" element="led"><bounds x="26" y="44" width="1" height="1" /></bezel> - <bezel name="13.23" element="led"><bounds x="26" y="46" width="1" height="1" /></bezel> - <bezel name="13.24" element="led"><bounds x="26" y="48" width="1" height="1" /></bezel> - <bezel name="13.25" element="led"><bounds x="26" y="50" width="1" height="1" /></bezel> - <bezel name="13.26" element="led"><bounds x="26" y="52" width="1" height="1" /></bezel> - <bezel name="13.27" element="led"><bounds x="26" y="54" width="1" height="1" /></bezel> - <bezel name="13.28" element="led"><bounds x="26" y="56" width="1" height="1" /></bezel> - <bezel name="13.29" element="led"><bounds x="26" y="58" width="1" height="1" /></bezel> - <bezel name="13.30" element="led"><bounds x="26" y="60" width="1" height="1" /></bezel> - <bezel name="13.31" element="led"><bounds x="26" y="62" width="1" height="1" /></bezel> - <bezel name="13.32" element="led"><bounds x="26" y="64" width="1" height="1" /></bezel> - <bezel name="13.33" element="led"><bounds x="26" y="66" width="1" height="1" /></bezel> - <bezel name="13.34" element="led"><bounds x="26" y="68" width="1" height="1" /></bezel> - <bezel name="13.35" element="led"><bounds x="26" y="70" width="1" height="1" /></bezel> - <bezel name="13.36" element="led"><bounds x="26" y="72" width="1" height="1" /></bezel> - <bezel name="13.37" element="led"><bounds x="26" y="74" width="1" height="1" /></bezel> - <bezel name="13.38" element="led"><bounds x="26" y="76" width="1" height="1" /></bezel> - <bezel name="13.39" element="led"><bounds x="26" y="78" width="1" height="1" /></bezel> - - <bezel name="14.0" element="led"><bounds x="28" y="0" width="1" height="1" /></bezel> - <bezel name="14.1" element="led"><bounds x="28" y="2" width="1" height="1" /></bezel> - <bezel name="14.2" element="led"><bounds x="28" y="4" width="1" height="1" /></bezel> - <bezel name="14.3" element="led"><bounds x="28" y="6" width="1" height="1" /></bezel> - <bezel name="14.4" element="led"><bounds x="28" y="8" width="1" height="1" /></bezel> - <bezel name="14.5" element="led"><bounds x="28" y="10" width="1" height="1" /></bezel> - <bezel name="14.6" element="led"><bounds x="28" y="12" width="1" height="1" /></bezel> - <bezel name="14.7" element="led"><bounds x="28" y="14" width="1" height="1" /></bezel> - <bezel name="14.8" element="led"><bounds x="28" y="16" width="1" height="1" /></bezel> - <bezel name="14.9" element="led"><bounds x="28" y="18" width="1" height="1" /></bezel> - <bezel name="14.10" element="led"><bounds x="28" y="20" width="1" height="1" /></bezel> - <bezel name="14.11" element="led"><bounds x="28" y="22" width="1" height="1" /></bezel> - <bezel name="14.12" element="led"><bounds x="28" y="24" width="1" height="1" /></bezel> - <bezel name="14.13" element="led"><bounds x="28" y="26" width="1" height="1" /></bezel> - <bezel name="14.14" element="led"><bounds x="28" y="28" width="1" height="1" /></bezel> - <bezel name="14.15" element="led"><bounds x="28" y="30" width="1" height="1" /></bezel> - <bezel name="14.16" element="led"><bounds x="28" y="32" width="1" height="1" /></bezel> - <bezel name="14.17" element="led"><bounds x="28" y="34" width="1" height="1" /></bezel> - <bezel name="14.18" element="led"><bounds x="28" y="36" width="1" height="1" /></bezel> - <bezel name="14.19" element="led"><bounds x="28" y="38" width="1" height="1" /></bezel> - <bezel name="14.20" element="led"><bounds x="28" y="40" width="1" height="1" /></bezel> - <bezel name="14.21" element="led"><bounds x="28" y="42" width="1" height="1" /></bezel> - <bezel name="14.22" element="led"><bounds x="28" y="44" width="1" height="1" /></bezel> - <bezel name="14.23" element="led"><bounds x="28" y="46" width="1" height="1" /></bezel> - <bezel name="14.24" element="led"><bounds x="28" y="48" width="1" height="1" /></bezel> - <bezel name="14.25" element="led"><bounds x="28" y="50" width="1" height="1" /></bezel> - <bezel name="14.26" element="led"><bounds x="28" y="52" width="1" height="1" /></bezel> - <bezel name="14.27" element="led"><bounds x="28" y="54" width="1" height="1" /></bezel> - <bezel name="14.28" element="led"><bounds x="28" y="56" width="1" height="1" /></bezel> - <bezel name="14.29" element="led"><bounds x="28" y="58" width="1" height="1" /></bezel> - <bezel name="14.30" element="led"><bounds x="28" y="60" width="1" height="1" /></bezel> - <bezel name="14.31" element="led"><bounds x="28" y="62" width="1" height="1" /></bezel> - <bezel name="14.32" element="led"><bounds x="28" y="64" width="1" height="1" /></bezel> - <bezel name="14.33" element="led"><bounds x="28" y="66" width="1" height="1" /></bezel> - <bezel name="14.34" element="led"><bounds x="28" y="68" width="1" height="1" /></bezel> - <bezel name="14.35" element="led"><bounds x="28" y="70" width="1" height="1" /></bezel> - <bezel name="14.36" element="led"><bounds x="28" y="72" width="1" height="1" /></bezel> - <bezel name="14.37" element="led"><bounds x="28" y="74" width="1" height="1" /></bezel> - <bezel name="14.38" element="led"><bounds x="28" y="76" width="1" height="1" /></bezel> - <bezel name="14.39" element="led"><bounds x="28" y="78" width="1" height="1" /></bezel> - - <bezel name="15.0" element="led"><bounds x="30" y="0" width="1" height="1" /></bezel> - <bezel name="15.1" element="led"><bounds x="30" y="2" width="1" height="1" /></bezel> - <bezel name="15.2" element="led"><bounds x="30" y="4" width="1" height="1" /></bezel> - <bezel name="15.3" element="led"><bounds x="30" y="6" width="1" height="1" /></bezel> - <bezel name="15.4" element="led"><bounds x="30" y="8" width="1" height="1" /></bezel> - <bezel name="15.5" element="led"><bounds x="30" y="10" width="1" height="1" /></bezel> - <bezel name="15.6" element="led"><bounds x="30" y="12" width="1" height="1" /></bezel> - <bezel name="15.7" element="led"><bounds x="30" y="14" width="1" height="1" /></bezel> - <bezel name="15.8" element="led"><bounds x="30" y="16" width="1" height="1" /></bezel> - <bezel name="15.9" element="led"><bounds x="30" y="18" width="1" height="1" /></bezel> - <bezel name="15.10" element="led"><bounds x="30" y="20" width="1" height="1" /></bezel> - <bezel name="15.11" element="led"><bounds x="30" y="22" width="1" height="1" /></bezel> - <bezel name="15.12" element="led"><bounds x="30" y="24" width="1" height="1" /></bezel> - <bezel name="15.13" element="led"><bounds x="30" y="26" width="1" height="1" /></bezel> - <bezel name="15.14" element="led"><bounds x="30" y="28" width="1" height="1" /></bezel> - <bezel name="15.15" element="led"><bounds x="30" y="30" width="1" height="1" /></bezel> - <bezel name="15.16" element="led"><bounds x="30" y="32" width="1" height="1" /></bezel> - <bezel name="15.17" element="led"><bounds x="30" y="34" width="1" height="1" /></bezel> - <bezel name="15.18" element="led"><bounds x="30" y="36" width="1" height="1" /></bezel> - <bezel name="15.19" element="led"><bounds x="30" y="38" width="1" height="1" /></bezel> - <bezel name="15.20" element="led"><bounds x="30" y="40" width="1" height="1" /></bezel> - <bezel name="15.21" element="led"><bounds x="30" y="42" width="1" height="1" /></bezel> - <bezel name="15.22" element="led"><bounds x="30" y="44" width="1" height="1" /></bezel> - <bezel name="15.23" element="led"><bounds x="30" y="46" width="1" height="1" /></bezel> - <bezel name="15.24" element="led"><bounds x="30" y="48" width="1" height="1" /></bezel> - <bezel name="15.25" element="led"><bounds x="30" y="50" width="1" height="1" /></bezel> - <bezel name="15.26" element="led"><bounds x="30" y="52" width="1" height="1" /></bezel> - <bezel name="15.27" element="led"><bounds x="30" y="54" width="1" height="1" /></bezel> - <bezel name="15.28" element="led"><bounds x="30" y="56" width="1" height="1" /></bezel> - <bezel name="15.29" element="led"><bounds x="30" y="58" width="1" height="1" /></bezel> - <bezel name="15.30" element="led"><bounds x="30" y="60" width="1" height="1" /></bezel> - <bezel name="15.31" element="led"><bounds x="30" y="62" width="1" height="1" /></bezel> - <bezel name="15.32" element="led"><bounds x="30" y="64" width="1" height="1" /></bezel> - <bezel name="15.33" element="led"><bounds x="30" y="66" width="1" height="1" /></bezel> - <bezel name="15.34" element="led"><bounds x="30" y="68" width="1" height="1" /></bezel> - <bezel name="15.35" element="led"><bounds x="30" y="70" width="1" height="1" /></bezel> - <bezel name="15.36" element="led"><bounds x="30" y="72" width="1" height="1" /></bezel> - <bezel name="15.37" element="led"><bounds x="30" y="74" width="1" height="1" /></bezel> - <bezel name="15.38" element="led"><bounds x="30" y="76" width="1" height="1" /></bezel> - <bezel name="15.39" element="led"><bounds x="30" y="78" width="1" height="1" /></bezel> + <repeat count="40"> + <param name="x" start="0" increment="1" /> + <bezel name="~y~.~x~" element="led"><bounds x="~x~" y="~y~" width="0.5" height="0.5" /></bezel> + </repeat> + </repeat> </view> </mamelayout> diff --git a/src/mame/layout/hh_melps4_test.lay b/src/mame/layout/hh_melps4_test.lay index e073b4989bb..e23cebf24f7 100644 --- a/src/mame/layout/hh_melps4_test.lay +++ b/src/mame/layout/hh_melps4_test.lay @@ -14,540 +14,21 @@ <!-- build screen --> <view name="Test Layout"> - <bounds left="0" right="64" top="0" bottom="64" /> + <bounds left="0" right="32" top="0" bottom="16" /> <bezel element="static_black"> - <bounds left="0" right="64" top="0" bottom="64" /> + <bounds left="0" right="32" top="0" bottom="16" /> </bezel> <!-- max 16*32 matrix --> - <bezel name="0.0" element="led"><bounds x="0" y="0" width="1" height="1" /></bezel> - <bezel name="0.1" element="led"><bounds x="0" y="2" width="1" height="1" /></bezel> - <bezel name="0.2" element="led"><bounds x="0" y="4" width="1" height="1" /></bezel> - <bezel name="0.3" element="led"><bounds x="0" y="6" width="1" height="1" /></bezel> - <bezel name="0.4" element="led"><bounds x="0" y="8" width="1" height="1" /></bezel> - <bezel name="0.5" element="led"><bounds x="0" y="10" width="1" height="1" /></bezel> - <bezel name="0.6" element="led"><bounds x="0" y="12" width="1" height="1" /></bezel> - <bezel name="0.7" element="led"><bounds x="0" y="14" width="1" height="1" /></bezel> - <bezel name="0.8" element="led"><bounds x="0" y="16" width="1" height="1" /></bezel> - <bezel name="0.9" element="led"><bounds x="0" y="18" width="1" height="1" /></bezel> - <bezel name="0.10" element="led"><bounds x="0" y="20" width="1" height="1" /></bezel> - <bezel name="0.11" element="led"><bounds x="0" y="22" width="1" height="1" /></bezel> - <bezel name="0.12" element="led"><bounds x="0" y="24" width="1" height="1" /></bezel> - <bezel name="0.13" element="led"><bounds x="0" y="26" width="1" height="1" /></bezel> - <bezel name="0.14" element="led"><bounds x="0" y="28" width="1" height="1" /></bezel> - <bezel name="0.15" element="led"><bounds x="0" y="30" width="1" height="1" /></bezel> - <bezel name="0.16" element="led"><bounds x="0" y="32" width="1" height="1" /></bezel> - <bezel name="0.17" element="led"><bounds x="0" y="34" width="1" height="1" /></bezel> - <bezel name="0.18" element="led"><bounds x="0" y="36" width="1" height="1" /></bezel> - <bezel name="0.19" element="led"><bounds x="0" y="38" width="1" height="1" /></bezel> - <bezel name="0.20" element="led"><bounds x="0" y="40" width="1" height="1" /></bezel> - <bezel name="0.21" element="led"><bounds x="0" y="42" width="1" height="1" /></bezel> - <bezel name="0.22" element="led"><bounds x="0" y="44" width="1" height="1" /></bezel> - <bezel name="0.23" element="led"><bounds x="0" y="46" width="1" height="1" /></bezel> - <bezel name="0.24" element="led"><bounds x="0" y="48" width="1" height="1" /></bezel> - <bezel name="0.25" element="led"><bounds x="0" y="50" width="1" height="1" /></bezel> - <bezel name="0.26" element="led"><bounds x="0" y="52" width="1" height="1" /></bezel> - <bezel name="0.27" element="led"><bounds x="0" y="54" width="1" height="1" /></bezel> - <bezel name="0.28" element="led"><bounds x="0" y="56" width="1" height="1" /></bezel> - <bezel name="0.29" element="led"><bounds x="0" y="58" width="1" height="1" /></bezel> - <bezel name="0.30" element="led"><bounds x="0" y="60" width="1" height="1" /></bezel> - <bezel name="0.31" element="led"><bounds x="0" y="62" width="1" height="1" /></bezel> + <repeat count="16"> + <param name="y" start="0" increment="1" /> - <bezel name="1.0" element="led"><bounds x="2" y="0" width="1" height="1" /></bezel> - <bezel name="1.1" element="led"><bounds x="2" y="2" width="1" height="1" /></bezel> - <bezel name="1.2" element="led"><bounds x="2" y="4" width="1" height="1" /></bezel> - <bezel name="1.3" element="led"><bounds x="2" y="6" width="1" height="1" /></bezel> - <bezel name="1.4" element="led"><bounds x="2" y="8" width="1" height="1" /></bezel> - <bezel name="1.5" element="led"><bounds x="2" y="10" width="1" height="1" /></bezel> - <bezel name="1.6" element="led"><bounds x="2" y="12" width="1" height="1" /></bezel> - <bezel name="1.7" element="led"><bounds x="2" y="14" width="1" height="1" /></bezel> - <bezel name="1.8" element="led"><bounds x="2" y="16" width="1" height="1" /></bezel> - <bezel name="1.9" element="led"><bounds x="2" y="18" width="1" height="1" /></bezel> - <bezel name="1.10" element="led"><bounds x="2" y="20" width="1" height="1" /></bezel> - <bezel name="1.11" element="led"><bounds x="2" y="22" width="1" height="1" /></bezel> - <bezel name="1.12" element="led"><bounds x="2" y="24" width="1" height="1" /></bezel> - <bezel name="1.13" element="led"><bounds x="2" y="26" width="1" height="1" /></bezel> - <bezel name="1.14" element="led"><bounds x="2" y="28" width="1" height="1" /></bezel> - <bezel name="1.15" element="led"><bounds x="2" y="30" width="1" height="1" /></bezel> - <bezel name="1.16" element="led"><bounds x="2" y="32" width="1" height="1" /></bezel> - <bezel name="1.17" element="led"><bounds x="2" y="34" width="1" height="1" /></bezel> - <bezel name="1.18" element="led"><bounds x="2" y="36" width="1" height="1" /></bezel> - <bezel name="1.19" element="led"><bounds x="2" y="38" width="1" height="1" /></bezel> - <bezel name="1.20" element="led"><bounds x="2" y="40" width="1" height="1" /></bezel> - <bezel name="1.21" element="led"><bounds x="2" y="42" width="1" height="1" /></bezel> - <bezel name="1.22" element="led"><bounds x="2" y="44" width="1" height="1" /></bezel> - <bezel name="1.23" element="led"><bounds x="2" y="46" width="1" height="1" /></bezel> - <bezel name="1.24" element="led"><bounds x="2" y="48" width="1" height="1" /></bezel> - <bezel name="1.25" element="led"><bounds x="2" y="50" width="1" height="1" /></bezel> - <bezel name="1.26" element="led"><bounds x="2" y="52" width="1" height="1" /></bezel> - <bezel name="1.27" element="led"><bounds x="2" y="54" width="1" height="1" /></bezel> - <bezel name="1.28" element="led"><bounds x="2" y="56" width="1" height="1" /></bezel> - <bezel name="1.29" element="led"><bounds x="2" y="58" width="1" height="1" /></bezel> - <bezel name="1.30" element="led"><bounds x="2" y="60" width="1" height="1" /></bezel> - <bezel name="1.31" element="led"><bounds x="2" y="62" width="1" height="1" /></bezel> - - <bezel name="2.0" element="led"><bounds x="4" y="0" width="1" height="1" /></bezel> - <bezel name="2.1" element="led"><bounds x="4" y="2" width="1" height="1" /></bezel> - <bezel name="2.2" element="led"><bounds x="4" y="4" width="1" height="1" /></bezel> - <bezel name="2.3" element="led"><bounds x="4" y="6" width="1" height="1" /></bezel> - <bezel name="2.4" element="led"><bounds x="4" y="8" width="1" height="1" /></bezel> - <bezel name="2.5" element="led"><bounds x="4" y="10" width="1" height="1" /></bezel> - <bezel name="2.6" element="led"><bounds x="4" y="12" width="1" height="1" /></bezel> - <bezel name="2.7" element="led"><bounds x="4" y="14" width="1" height="1" /></bezel> - <bezel name="2.8" element="led"><bounds x="4" y="16" width="1" height="1" /></bezel> - <bezel name="2.9" element="led"><bounds x="4" y="18" width="1" height="1" /></bezel> - <bezel name="2.10" element="led"><bounds x="4" y="20" width="1" height="1" /></bezel> - <bezel name="2.11" element="led"><bounds x="4" y="22" width="1" height="1" /></bezel> - <bezel name="2.12" element="led"><bounds x="4" y="24" width="1" height="1" /></bezel> - <bezel name="2.13" element="led"><bounds x="4" y="26" width="1" height="1" /></bezel> - <bezel name="2.14" element="led"><bounds x="4" y="28" width="1" height="1" /></bezel> - <bezel name="2.15" element="led"><bounds x="4" y="30" width="1" height="1" /></bezel> - <bezel name="2.16" element="led"><bounds x="4" y="32" width="1" height="1" /></bezel> - <bezel name="2.17" element="led"><bounds x="4" y="34" width="1" height="1" /></bezel> - <bezel name="2.18" element="led"><bounds x="4" y="36" width="1" height="1" /></bezel> - <bezel name="2.19" element="led"><bounds x="4" y="38" width="1" height="1" /></bezel> - <bezel name="2.20" element="led"><bounds x="4" y="40" width="1" height="1" /></bezel> - <bezel name="2.21" element="led"><bounds x="4" y="42" width="1" height="1" /></bezel> - <bezel name="2.22" element="led"><bounds x="4" y="44" width="1" height="1" /></bezel> - <bezel name="2.23" element="led"><bounds x="4" y="46" width="1" height="1" /></bezel> - <bezel name="2.24" element="led"><bounds x="4" y="48" width="1" height="1" /></bezel> - <bezel name="2.25" element="led"><bounds x="4" y="50" width="1" height="1" /></bezel> - <bezel name="2.26" element="led"><bounds x="4" y="52" width="1" height="1" /></bezel> - <bezel name="2.27" element="led"><bounds x="4" y="54" width="1" height="1" /></bezel> - <bezel name="2.28" element="led"><bounds x="4" y="56" width="1" height="1" /></bezel> - <bezel name="2.29" element="led"><bounds x="4" y="58" width="1" height="1" /></bezel> - <bezel name="2.30" element="led"><bounds x="4" y="60" width="1" height="1" /></bezel> - <bezel name="2.31" element="led"><bounds x="4" y="62" width="1" height="1" /></bezel> - - <bezel name="3.0" element="led"><bounds x="6" y="0" width="1" height="1" /></bezel> - <bezel name="3.1" element="led"><bounds x="6" y="2" width="1" height="1" /></bezel> - <bezel name="3.2" element="led"><bounds x="6" y="4" width="1" height="1" /></bezel> - <bezel name="3.3" element="led"><bounds x="6" y="6" width="1" height="1" /></bezel> - <bezel name="3.4" element="led"><bounds x="6" y="8" width="1" height="1" /></bezel> - <bezel name="3.5" element="led"><bounds x="6" y="10" width="1" height="1" /></bezel> - <bezel name="3.6" element="led"><bounds x="6" y="12" width="1" height="1" /></bezel> - <bezel name="3.7" element="led"><bounds x="6" y="14" width="1" height="1" /></bezel> - <bezel name="3.8" element="led"><bounds x="6" y="16" width="1" height="1" /></bezel> - <bezel name="3.9" element="led"><bounds x="6" y="18" width="1" height="1" /></bezel> - <bezel name="3.10" element="led"><bounds x="6" y="20" width="1" height="1" /></bezel> - <bezel name="3.11" element="led"><bounds x="6" y="22" width="1" height="1" /></bezel> - <bezel name="3.12" element="led"><bounds x="6" y="24" width="1" height="1" /></bezel> - <bezel name="3.13" element="led"><bounds x="6" y="26" width="1" height="1" /></bezel> - <bezel name="3.14" element="led"><bounds x="6" y="28" width="1" height="1" /></bezel> - <bezel name="3.15" element="led"><bounds x="6" y="30" width="1" height="1" /></bezel> - <bezel name="3.16" element="led"><bounds x="6" y="32" width="1" height="1" /></bezel> - <bezel name="3.17" element="led"><bounds x="6" y="34" width="1" height="1" /></bezel> - <bezel name="3.18" element="led"><bounds x="6" y="36" width="1" height="1" /></bezel> - <bezel name="3.19" element="led"><bounds x="6" y="38" width="1" height="1" /></bezel> - <bezel name="3.20" element="led"><bounds x="6" y="40" width="1" height="1" /></bezel> - <bezel name="3.21" element="led"><bounds x="6" y="42" width="1" height="1" /></bezel> - <bezel name="3.22" element="led"><bounds x="6" y="44" width="1" height="1" /></bezel> - <bezel name="3.23" element="led"><bounds x="6" y="46" width="1" height="1" /></bezel> - <bezel name="3.24" element="led"><bounds x="6" y="48" width="1" height="1" /></bezel> - <bezel name="3.25" element="led"><bounds x="6" y="50" width="1" height="1" /></bezel> - <bezel name="3.26" element="led"><bounds x="6" y="52" width="1" height="1" /></bezel> - <bezel name="3.27" element="led"><bounds x="6" y="54" width="1" height="1" /></bezel> - <bezel name="3.28" element="led"><bounds x="6" y="56" width="1" height="1" /></bezel> - <bezel name="3.29" element="led"><bounds x="6" y="58" width="1" height="1" /></bezel> - <bezel name="3.30" element="led"><bounds x="6" y="60" width="1" height="1" /></bezel> - <bezel name="3.31" element="led"><bounds x="6" y="62" width="1" height="1" /></bezel> - - <bezel name="4.0" element="led"><bounds x="8" y="0" width="1" height="1" /></bezel> - <bezel name="4.1" element="led"><bounds x="8" y="2" width="1" height="1" /></bezel> - <bezel name="4.2" element="led"><bounds x="8" y="4" width="1" height="1" /></bezel> - <bezel name="4.3" element="led"><bounds x="8" y="6" width="1" height="1" /></bezel> - <bezel name="4.4" element="led"><bounds x="8" y="8" width="1" height="1" /></bezel> - <bezel name="4.5" element="led"><bounds x="8" y="10" width="1" height="1" /></bezel> - <bezel name="4.6" element="led"><bounds x="8" y="12" width="1" height="1" /></bezel> - <bezel name="4.7" element="led"><bounds x="8" y="14" width="1" height="1" /></bezel> - <bezel name="4.8" element="led"><bounds x="8" y="16" width="1" height="1" /></bezel> - <bezel name="4.9" element="led"><bounds x="8" y="18" width="1" height="1" /></bezel> - <bezel name="4.10" element="led"><bounds x="8" y="20" width="1" height="1" /></bezel> - <bezel name="4.11" element="led"><bounds x="8" y="22" width="1" height="1" /></bezel> - <bezel name="4.12" element="led"><bounds x="8" y="24" width="1" height="1" /></bezel> - <bezel name="4.13" element="led"><bounds x="8" y="26" width="1" height="1" /></bezel> - <bezel name="4.14" element="led"><bounds x="8" y="28" width="1" height="1" /></bezel> - <bezel name="4.15" element="led"><bounds x="8" y="30" width="1" height="1" /></bezel> - <bezel name="4.16" element="led"><bounds x="8" y="32" width="1" height="1" /></bezel> - <bezel name="4.17" element="led"><bounds x="8" y="34" width="1" height="1" /></bezel> - <bezel name="4.18" element="led"><bounds x="8" y="36" width="1" height="1" /></bezel> - <bezel name="4.19" element="led"><bounds x="8" y="38" width="1" height="1" /></bezel> - <bezel name="4.20" element="led"><bounds x="8" y="40" width="1" height="1" /></bezel> - <bezel name="4.21" element="led"><bounds x="8" y="42" width="1" height="1" /></bezel> - <bezel name="4.22" element="led"><bounds x="8" y="44" width="1" height="1" /></bezel> - <bezel name="4.23" element="led"><bounds x="8" y="46" width="1" height="1" /></bezel> - <bezel name="4.24" element="led"><bounds x="8" y="48" width="1" height="1" /></bezel> - <bezel name="4.25" element="led"><bounds x="8" y="50" width="1" height="1" /></bezel> - <bezel name="4.26" element="led"><bounds x="8" y="52" width="1" height="1" /></bezel> - <bezel name="4.27" element="led"><bounds x="8" y="54" width="1" height="1" /></bezel> - <bezel name="4.28" element="led"><bounds x="8" y="56" width="1" height="1" /></bezel> - <bezel name="4.29" element="led"><bounds x="8" y="58" width="1" height="1" /></bezel> - <bezel name="4.30" element="led"><bounds x="8" y="60" width="1" height="1" /></bezel> - <bezel name="4.31" element="led"><bounds x="8" y="62" width="1" height="1" /></bezel> - - <bezel name="5.0" element="led"><bounds x="10" y="0" width="1" height="1" /></bezel> - <bezel name="5.1" element="led"><bounds x="10" y="2" width="1" height="1" /></bezel> - <bezel name="5.2" element="led"><bounds x="10" y="4" width="1" height="1" /></bezel> - <bezel name="5.3" element="led"><bounds x="10" y="6" width="1" height="1" /></bezel> - <bezel name="5.4" element="led"><bounds x="10" y="8" width="1" height="1" /></bezel> - <bezel name="5.5" element="led"><bounds x="10" y="10" width="1" height="1" /></bezel> - <bezel name="5.6" element="led"><bounds x="10" y="12" width="1" height="1" /></bezel> - <bezel name="5.7" element="led"><bounds x="10" y="14" width="1" height="1" /></bezel> - <bezel name="5.8" element="led"><bounds x="10" y="16" width="1" height="1" /></bezel> - <bezel name="5.9" element="led"><bounds x="10" y="18" width="1" height="1" /></bezel> - <bezel name="5.10" element="led"><bounds x="10" y="20" width="1" height="1" /></bezel> - <bezel name="5.11" element="led"><bounds x="10" y="22" width="1" height="1" /></bezel> - <bezel name="5.12" element="led"><bounds x="10" y="24" width="1" height="1" /></bezel> - <bezel name="5.13" element="led"><bounds x="10" y="26" width="1" height="1" /></bezel> - <bezel name="5.14" element="led"><bounds x="10" y="28" width="1" height="1" /></bezel> - <bezel name="5.15" element="led"><bounds x="10" y="30" width="1" height="1" /></bezel> - <bezel name="5.16" element="led"><bounds x="10" y="32" width="1" height="1" /></bezel> - <bezel name="5.17" element="led"><bounds x="10" y="34" width="1" height="1" /></bezel> - <bezel name="5.18" element="led"><bounds x="10" y="36" width="1" height="1" /></bezel> - <bezel name="5.19" element="led"><bounds x="10" y="38" width="1" height="1" /></bezel> - <bezel name="5.20" element="led"><bounds x="10" y="40" width="1" height="1" /></bezel> - <bezel name="5.21" element="led"><bounds x="10" y="42" width="1" height="1" /></bezel> - <bezel name="5.22" element="led"><bounds x="10" y="44" width="1" height="1" /></bezel> - <bezel name="5.23" element="led"><bounds x="10" y="46" width="1" height="1" /></bezel> - <bezel name="5.24" element="led"><bounds x="10" y="48" width="1" height="1" /></bezel> - <bezel name="5.25" element="led"><bounds x="10" y="50" width="1" height="1" /></bezel> - <bezel name="5.26" element="led"><bounds x="10" y="52" width="1" height="1" /></bezel> - <bezel name="5.27" element="led"><bounds x="10" y="54" width="1" height="1" /></bezel> - <bezel name="5.28" element="led"><bounds x="10" y="56" width="1" height="1" /></bezel> - <bezel name="5.29" element="led"><bounds x="10" y="58" width="1" height="1" /></bezel> - <bezel name="5.30" element="led"><bounds x="10" y="60" width="1" height="1" /></bezel> - <bezel name="5.31" element="led"><bounds x="10" y="62" width="1" height="1" /></bezel> - - <bezel name="6.0" element="led"><bounds x="12" y="0" width="1" height="1" /></bezel> - <bezel name="6.1" element="led"><bounds x="12" y="2" width="1" height="1" /></bezel> - <bezel name="6.2" element="led"><bounds x="12" y="4" width="1" height="1" /></bezel> - <bezel name="6.3" element="led"><bounds x="12" y="6" width="1" height="1" /></bezel> - <bezel name="6.4" element="led"><bounds x="12" y="8" width="1" height="1" /></bezel> - <bezel name="6.5" element="led"><bounds x="12" y="10" width="1" height="1" /></bezel> - <bezel name="6.6" element="led"><bounds x="12" y="12" width="1" height="1" /></bezel> - <bezel name="6.7" element="led"><bounds x="12" y="14" width="1" height="1" /></bezel> - <bezel name="6.8" element="led"><bounds x="12" y="16" width="1" height="1" /></bezel> - <bezel name="6.9" element="led"><bounds x="12" y="18" width="1" height="1" /></bezel> - <bezel name="6.10" element="led"><bounds x="12" y="20" width="1" height="1" /></bezel> - <bezel name="6.11" element="led"><bounds x="12" y="22" width="1" height="1" /></bezel> - <bezel name="6.12" element="led"><bounds x="12" y="24" width="1" height="1" /></bezel> - <bezel name="6.13" element="led"><bounds x="12" y="26" width="1" height="1" /></bezel> - <bezel name="6.14" element="led"><bounds x="12" y="28" width="1" height="1" /></bezel> - <bezel name="6.15" element="led"><bounds x="12" y="30" width="1" height="1" /></bezel> - <bezel name="6.16" element="led"><bounds x="12" y="32" width="1" height="1" /></bezel> - <bezel name="6.17" element="led"><bounds x="12" y="34" width="1" height="1" /></bezel> - <bezel name="6.18" element="led"><bounds x="12" y="36" width="1" height="1" /></bezel> - <bezel name="6.19" element="led"><bounds x="12" y="38" width="1" height="1" /></bezel> - <bezel name="6.20" element="led"><bounds x="12" y="40" width="1" height="1" /></bezel> - <bezel name="6.21" element="led"><bounds x="12" y="42" width="1" height="1" /></bezel> - <bezel name="6.22" element="led"><bounds x="12" y="44" width="1" height="1" /></bezel> - <bezel name="6.23" element="led"><bounds x="12" y="46" width="1" height="1" /></bezel> - <bezel name="6.24" element="led"><bounds x="12" y="48" width="1" height="1" /></bezel> - <bezel name="6.25" element="led"><bounds x="12" y="50" width="1" height="1" /></bezel> - <bezel name="6.26" element="led"><bounds x="12" y="52" width="1" height="1" /></bezel> - <bezel name="6.27" element="led"><bounds x="12" y="54" width="1" height="1" /></bezel> - <bezel name="6.28" element="led"><bounds x="12" y="56" width="1" height="1" /></bezel> - <bezel name="6.29" element="led"><bounds x="12" y="58" width="1" height="1" /></bezel> - <bezel name="6.30" element="led"><bounds x="12" y="60" width="1" height="1" /></bezel> - <bezel name="6.31" element="led"><bounds x="12" y="62" width="1" height="1" /></bezel> - - <bezel name="7.0" element="led"><bounds x="14" y="0" width="1" height="1" /></bezel> - <bezel name="7.1" element="led"><bounds x="14" y="2" width="1" height="1" /></bezel> - <bezel name="7.2" element="led"><bounds x="14" y="4" width="1" height="1" /></bezel> - <bezel name="7.3" element="led"><bounds x="14" y="6" width="1" height="1" /></bezel> - <bezel name="7.4" element="led"><bounds x="14" y="8" width="1" height="1" /></bezel> - <bezel name="7.5" element="led"><bounds x="14" y="10" width="1" height="1" /></bezel> - <bezel name="7.6" element="led"><bounds x="14" y="12" width="1" height="1" /></bezel> - <bezel name="7.7" element="led"><bounds x="14" y="14" width="1" height="1" /></bezel> - <bezel name="7.8" element="led"><bounds x="14" y="16" width="1" height="1" /></bezel> - <bezel name="7.9" element="led"><bounds x="14" y="18" width="1" height="1" /></bezel> - <bezel name="7.10" element="led"><bounds x="14" y="20" width="1" height="1" /></bezel> - <bezel name="7.11" element="led"><bounds x="14" y="22" width="1" height="1" /></bezel> - <bezel name="7.12" element="led"><bounds x="14" y="24" width="1" height="1" /></bezel> - <bezel name="7.13" element="led"><bounds x="14" y="26" width="1" height="1" /></bezel> - <bezel name="7.14" element="led"><bounds x="14" y="28" width="1" height="1" /></bezel> - <bezel name="7.15" element="led"><bounds x="14" y="30" width="1" height="1" /></bezel> - <bezel name="7.16" element="led"><bounds x="14" y="32" width="1" height="1" /></bezel> - <bezel name="7.17" element="led"><bounds x="14" y="34" width="1" height="1" /></bezel> - <bezel name="7.18" element="led"><bounds x="14" y="36" width="1" height="1" /></bezel> - <bezel name="7.19" element="led"><bounds x="14" y="38" width="1" height="1" /></bezel> - <bezel name="7.20" element="led"><bounds x="14" y="40" width="1" height="1" /></bezel> - <bezel name="7.21" element="led"><bounds x="14" y="42" width="1" height="1" /></bezel> - <bezel name="7.22" element="led"><bounds x="14" y="44" width="1" height="1" /></bezel> - <bezel name="7.23" element="led"><bounds x="14" y="46" width="1" height="1" /></bezel> - <bezel name="7.24" element="led"><bounds x="14" y="48" width="1" height="1" /></bezel> - <bezel name="7.25" element="led"><bounds x="14" y="50" width="1" height="1" /></bezel> - <bezel name="7.26" element="led"><bounds x="14" y="52" width="1" height="1" /></bezel> - <bezel name="7.27" element="led"><bounds x="14" y="54" width="1" height="1" /></bezel> - <bezel name="7.28" element="led"><bounds x="14" y="56" width="1" height="1" /></bezel> - <bezel name="7.29" element="led"><bounds x="14" y="58" width="1" height="1" /></bezel> - <bezel name="7.30" element="led"><bounds x="14" y="60" width="1" height="1" /></bezel> - <bezel name="7.31" element="led"><bounds x="14" y="62" width="1" height="1" /></bezel> - - <bezel name="8.0" element="led"><bounds x="16" y="0" width="1" height="1" /></bezel> - <bezel name="8.1" element="led"><bounds x="16" y="2" width="1" height="1" /></bezel> - <bezel name="8.2" element="led"><bounds x="16" y="4" width="1" height="1" /></bezel> - <bezel name="8.3" element="led"><bounds x="16" y="6" width="1" height="1" /></bezel> - <bezel name="8.4" element="led"><bounds x="16" y="8" width="1" height="1" /></bezel> - <bezel name="8.5" element="led"><bounds x="16" y="10" width="1" height="1" /></bezel> - <bezel name="8.6" element="led"><bounds x="16" y="12" width="1" height="1" /></bezel> - <bezel name="8.7" element="led"><bounds x="16" y="14" width="1" height="1" /></bezel> - <bezel name="8.8" element="led"><bounds x="16" y="16" width="1" height="1" /></bezel> - <bezel name="8.9" element="led"><bounds x="16" y="18" width="1" height="1" /></bezel> - <bezel name="8.10" element="led"><bounds x="16" y="20" width="1" height="1" /></bezel> - <bezel name="8.11" element="led"><bounds x="16" y="22" width="1" height="1" /></bezel> - <bezel name="8.12" element="led"><bounds x="16" y="24" width="1" height="1" /></bezel> - <bezel name="8.13" element="led"><bounds x="16" y="26" width="1" height="1" /></bezel> - <bezel name="8.14" element="led"><bounds x="16" y="28" width="1" height="1" /></bezel> - <bezel name="8.15" element="led"><bounds x="16" y="30" width="1" height="1" /></bezel> - <bezel name="8.16" element="led"><bounds x="16" y="32" width="1" height="1" /></bezel> - <bezel name="8.17" element="led"><bounds x="16" y="34" width="1" height="1" /></bezel> - <bezel name="8.18" element="led"><bounds x="16" y="36" width="1" height="1" /></bezel> - <bezel name="8.19" element="led"><bounds x="16" y="38" width="1" height="1" /></bezel> - <bezel name="8.20" element="led"><bounds x="16" y="40" width="1" height="1" /></bezel> - <bezel name="8.21" element="led"><bounds x="16" y="42" width="1" height="1" /></bezel> - <bezel name="8.22" element="led"><bounds x="16" y="44" width="1" height="1" /></bezel> - <bezel name="8.23" element="led"><bounds x="16" y="46" width="1" height="1" /></bezel> - <bezel name="8.24" element="led"><bounds x="16" y="48" width="1" height="1" /></bezel> - <bezel name="8.25" element="led"><bounds x="16" y="50" width="1" height="1" /></bezel> - <bezel name="8.26" element="led"><bounds x="16" y="52" width="1" height="1" /></bezel> - <bezel name="8.27" element="led"><bounds x="16" y="54" width="1" height="1" /></bezel> - <bezel name="8.28" element="led"><bounds x="16" y="56" width="1" height="1" /></bezel> - <bezel name="8.29" element="led"><bounds x="16" y="58" width="1" height="1" /></bezel> - <bezel name="8.30" element="led"><bounds x="16" y="60" width="1" height="1" /></bezel> - <bezel name="8.31" element="led"><bounds x="16" y="62" width="1" height="1" /></bezel> - - <bezel name="9.0" element="led"><bounds x="18" y="0" width="1" height="1" /></bezel> - <bezel name="9.1" element="led"><bounds x="18" y="2" width="1" height="1" /></bezel> - <bezel name="9.2" element="led"><bounds x="18" y="4" width="1" height="1" /></bezel> - <bezel name="9.3" element="led"><bounds x="18" y="6" width="1" height="1" /></bezel> - <bezel name="9.4" element="led"><bounds x="18" y="8" width="1" height="1" /></bezel> - <bezel name="9.5" element="led"><bounds x="18" y="10" width="1" height="1" /></bezel> - <bezel name="9.6" element="led"><bounds x="18" y="12" width="1" height="1" /></bezel> - <bezel name="9.7" element="led"><bounds x="18" y="14" width="1" height="1" /></bezel> - <bezel name="9.8" element="led"><bounds x="18" y="16" width="1" height="1" /></bezel> - <bezel name="9.9" element="led"><bounds x="18" y="18" width="1" height="1" /></bezel> - <bezel name="9.10" element="led"><bounds x="18" y="20" width="1" height="1" /></bezel> - <bezel name="9.11" element="led"><bounds x="18" y="22" width="1" height="1" /></bezel> - <bezel name="9.12" element="led"><bounds x="18" y="24" width="1" height="1" /></bezel> - <bezel name="9.13" element="led"><bounds x="18" y="26" width="1" height="1" /></bezel> - <bezel name="9.14" element="led"><bounds x="18" y="28" width="1" height="1" /></bezel> - <bezel name="9.15" element="led"><bounds x="18" y="30" width="1" height="1" /></bezel> - <bezel name="9.16" element="led"><bounds x="18" y="32" width="1" height="1" /></bezel> - <bezel name="9.17" element="led"><bounds x="18" y="34" width="1" height="1" /></bezel> - <bezel name="9.18" element="led"><bounds x="18" y="36" width="1" height="1" /></bezel> - <bezel name="9.19" element="led"><bounds x="18" y="38" width="1" height="1" /></bezel> - <bezel name="9.20" element="led"><bounds x="18" y="40" width="1" height="1" /></bezel> - <bezel name="9.21" element="led"><bounds x="18" y="42" width="1" height="1" /></bezel> - <bezel name="9.22" element="led"><bounds x="18" y="44" width="1" height="1" /></bezel> - <bezel name="9.23" element="led"><bounds x="18" y="46" width="1" height="1" /></bezel> - <bezel name="9.24" element="led"><bounds x="18" y="48" width="1" height="1" /></bezel> - <bezel name="9.25" element="led"><bounds x="18" y="50" width="1" height="1" /></bezel> - <bezel name="9.26" element="led"><bounds x="18" y="52" width="1" height="1" /></bezel> - <bezel name="9.27" element="led"><bounds x="18" y="54" width="1" height="1" /></bezel> - <bezel name="9.28" element="led"><bounds x="18" y="56" width="1" height="1" /></bezel> - <bezel name="9.29" element="led"><bounds x="18" y="58" width="1" height="1" /></bezel> - <bezel name="9.30" element="led"><bounds x="18" y="60" width="1" height="1" /></bezel> - <bezel name="9.31" element="led"><bounds x="18" y="62" width="1" height="1" /></bezel> - - <bezel name="10.0" element="led"><bounds x="20" y="0" width="1" height="1" /></bezel> - <bezel name="10.1" element="led"><bounds x="20" y="2" width="1" height="1" /></bezel> - <bezel name="10.2" element="led"><bounds x="20" y="4" width="1" height="1" /></bezel> - <bezel name="10.3" element="led"><bounds x="20" y="6" width="1" height="1" /></bezel> - <bezel name="10.4" element="led"><bounds x="20" y="8" width="1" height="1" /></bezel> - <bezel name="10.5" element="led"><bounds x="20" y="10" width="1" height="1" /></bezel> - <bezel name="10.6" element="led"><bounds x="20" y="12" width="1" height="1" /></bezel> - <bezel name="10.7" element="led"><bounds x="20" y="14" width="1" height="1" /></bezel> - <bezel name="10.8" element="led"><bounds x="20" y="16" width="1" height="1" /></bezel> - <bezel name="10.9" element="led"><bounds x="20" y="18" width="1" height="1" /></bezel> - <bezel name="10.10" element="led"><bounds x="20" y="20" width="1" height="1" /></bezel> - <bezel name="10.11" element="led"><bounds x="20" y="22" width="1" height="1" /></bezel> - <bezel name="10.12" element="led"><bounds x="20" y="24" width="1" height="1" /></bezel> - <bezel name="10.13" element="led"><bounds x="20" y="26" width="1" height="1" /></bezel> - <bezel name="10.14" element="led"><bounds x="20" y="28" width="1" height="1" /></bezel> - <bezel name="10.15" element="led"><bounds x="20" y="30" width="1" height="1" /></bezel> - <bezel name="10.16" element="led"><bounds x="20" y="32" width="1" height="1" /></bezel> - <bezel name="10.17" element="led"><bounds x="20" y="34" width="1" height="1" /></bezel> - <bezel name="10.18" element="led"><bounds x="20" y="36" width="1" height="1" /></bezel> - <bezel name="10.19" element="led"><bounds x="20" y="38" width="1" height="1" /></bezel> - <bezel name="10.20" element="led"><bounds x="20" y="40" width="1" height="1" /></bezel> - <bezel name="10.21" element="led"><bounds x="20" y="42" width="1" height="1" /></bezel> - <bezel name="10.22" element="led"><bounds x="20" y="44" width="1" height="1" /></bezel> - <bezel name="10.23" element="led"><bounds x="20" y="46" width="1" height="1" /></bezel> - <bezel name="10.24" element="led"><bounds x="20" y="48" width="1" height="1" /></bezel> - <bezel name="10.25" element="led"><bounds x="20" y="50" width="1" height="1" /></bezel> - <bezel name="10.26" element="led"><bounds x="20" y="52" width="1" height="1" /></bezel> - <bezel name="10.27" element="led"><bounds x="20" y="54" width="1" height="1" /></bezel> - <bezel name="10.28" element="led"><bounds x="20" y="56" width="1" height="1" /></bezel> - <bezel name="10.29" element="led"><bounds x="20" y="58" width="1" height="1" /></bezel> - <bezel name="10.30" element="led"><bounds x="20" y="60" width="1" height="1" /></bezel> - <bezel name="10.31" element="led"><bounds x="20" y="62" width="1" height="1" /></bezel> - - <bezel name="11.0" element="led"><bounds x="22" y="0" width="1" height="1" /></bezel> - <bezel name="11.1" element="led"><bounds x="22" y="2" width="1" height="1" /></bezel> - <bezel name="11.2" element="led"><bounds x="22" y="4" width="1" height="1" /></bezel> - <bezel name="11.3" element="led"><bounds x="22" y="6" width="1" height="1" /></bezel> - <bezel name="11.4" element="led"><bounds x="22" y="8" width="1" height="1" /></bezel> - <bezel name="11.5" element="led"><bounds x="22" y="10" width="1" height="1" /></bezel> - <bezel name="11.6" element="led"><bounds x="22" y="12" width="1" height="1" /></bezel> - <bezel name="11.7" element="led"><bounds x="22" y="14" width="1" height="1" /></bezel> - <bezel name="11.8" element="led"><bounds x="22" y="16" width="1" height="1" /></bezel> - <bezel name="11.9" element="led"><bounds x="22" y="18" width="1" height="1" /></bezel> - <bezel name="11.10" element="led"><bounds x="22" y="20" width="1" height="1" /></bezel> - <bezel name="11.11" element="led"><bounds x="22" y="22" width="1" height="1" /></bezel> - <bezel name="11.12" element="led"><bounds x="22" y="24" width="1" height="1" /></bezel> - <bezel name="11.13" element="led"><bounds x="22" y="26" width="1" height="1" /></bezel> - <bezel name="11.14" element="led"><bounds x="22" y="28" width="1" height="1" /></bezel> - <bezel name="11.15" element="led"><bounds x="22" y="30" width="1" height="1" /></bezel> - <bezel name="11.16" element="led"><bounds x="22" y="32" width="1" height="1" /></bezel> - <bezel name="11.17" element="led"><bounds x="22" y="34" width="1" height="1" /></bezel> - <bezel name="11.18" element="led"><bounds x="22" y="36" width="1" height="1" /></bezel> - <bezel name="11.19" element="led"><bounds x="22" y="38" width="1" height="1" /></bezel> - <bezel name="11.20" element="led"><bounds x="22" y="40" width="1" height="1" /></bezel> - <bezel name="11.21" element="led"><bounds x="22" y="42" width="1" height="1" /></bezel> - <bezel name="11.22" element="led"><bounds x="22" y="44" width="1" height="1" /></bezel> - <bezel name="11.23" element="led"><bounds x="22" y="46" width="1" height="1" /></bezel> - <bezel name="11.24" element="led"><bounds x="22" y="48" width="1" height="1" /></bezel> - <bezel name="11.25" element="led"><bounds x="22" y="50" width="1" height="1" /></bezel> - <bezel name="11.26" element="led"><bounds x="22" y="52" width="1" height="1" /></bezel> - <bezel name="11.27" element="led"><bounds x="22" y="54" width="1" height="1" /></bezel> - <bezel name="11.28" element="led"><bounds x="22" y="56" width="1" height="1" /></bezel> - <bezel name="11.29" element="led"><bounds x="22" y="58" width="1" height="1" /></bezel> - <bezel name="11.30" element="led"><bounds x="22" y="60" width="1" height="1" /></bezel> - <bezel name="11.31" element="led"><bounds x="22" y="62" width="1" height="1" /></bezel> - - <bezel name="12.0" element="led"><bounds x="24" y="0" width="1" height="1" /></bezel> - <bezel name="12.1" element="led"><bounds x="24" y="2" width="1" height="1" /></bezel> - <bezel name="12.2" element="led"><bounds x="24" y="4" width="1" height="1" /></bezel> - <bezel name="12.3" element="led"><bounds x="24" y="6" width="1" height="1" /></bezel> - <bezel name="12.4" element="led"><bounds x="24" y="8" width="1" height="1" /></bezel> - <bezel name="12.5" element="led"><bounds x="24" y="10" width="1" height="1" /></bezel> - <bezel name="12.6" element="led"><bounds x="24" y="12" width="1" height="1" /></bezel> - <bezel name="12.7" element="led"><bounds x="24" y="14" width="1" height="1" /></bezel> - <bezel name="12.8" element="led"><bounds x="24" y="16" width="1" height="1" /></bezel> - <bezel name="12.9" element="led"><bounds x="24" y="18" width="1" height="1" /></bezel> - <bezel name="12.10" element="led"><bounds x="24" y="20" width="1" height="1" /></bezel> - <bezel name="12.11" element="led"><bounds x="24" y="22" width="1" height="1" /></bezel> - <bezel name="12.12" element="led"><bounds x="24" y="24" width="1" height="1" /></bezel> - <bezel name="12.13" element="led"><bounds x="24" y="26" width="1" height="1" /></bezel> - <bezel name="12.14" element="led"><bounds x="24" y="28" width="1" height="1" /></bezel> - <bezel name="12.15" element="led"><bounds x="24" y="30" width="1" height="1" /></bezel> - <bezel name="12.16" element="led"><bounds x="24" y="32" width="1" height="1" /></bezel> - <bezel name="12.17" element="led"><bounds x="24" y="34" width="1" height="1" /></bezel> - <bezel name="12.18" element="led"><bounds x="24" y="36" width="1" height="1" /></bezel> - <bezel name="12.19" element="led"><bounds x="24" y="38" width="1" height="1" /></bezel> - <bezel name="12.20" element="led"><bounds x="24" y="40" width="1" height="1" /></bezel> - <bezel name="12.21" element="led"><bounds x="24" y="42" width="1" height="1" /></bezel> - <bezel name="12.22" element="led"><bounds x="24" y="44" width="1" height="1" /></bezel> - <bezel name="12.23" element="led"><bounds x="24" y="46" width="1" height="1" /></bezel> - <bezel name="12.24" element="led"><bounds x="24" y="48" width="1" height="1" /></bezel> - <bezel name="12.25" element="led"><bounds x="24" y="50" width="1" height="1" /></bezel> - <bezel name="12.26" element="led"><bounds x="24" y="52" width="1" height="1" /></bezel> - <bezel name="12.27" element="led"><bounds x="24" y="54" width="1" height="1" /></bezel> - <bezel name="12.28" element="led"><bounds x="24" y="56" width="1" height="1" /></bezel> - <bezel name="12.29" element="led"><bounds x="24" y="58" width="1" height="1" /></bezel> - <bezel name="12.30" element="led"><bounds x="24" y="60" width="1" height="1" /></bezel> - <bezel name="12.31" element="led"><bounds x="24" y="62" width="1" height="1" /></bezel> - - <bezel name="13.0" element="led"><bounds x="26" y="0" width="1" height="1" /></bezel> - <bezel name="13.1" element="led"><bounds x="26" y="2" width="1" height="1" /></bezel> - <bezel name="13.2" element="led"><bounds x="26" y="4" width="1" height="1" /></bezel> - <bezel name="13.3" element="led"><bounds x="26" y="6" width="1" height="1" /></bezel> - <bezel name="13.4" element="led"><bounds x="26" y="8" width="1" height="1" /></bezel> - <bezel name="13.5" element="led"><bounds x="26" y="10" width="1" height="1" /></bezel> - <bezel name="13.6" element="led"><bounds x="26" y="12" width="1" height="1" /></bezel> - <bezel name="13.7" element="led"><bounds x="26" y="14" width="1" height="1" /></bezel> - <bezel name="13.8" element="led"><bounds x="26" y="16" width="1" height="1" /></bezel> - <bezel name="13.9" element="led"><bounds x="26" y="18" width="1" height="1" /></bezel> - <bezel name="13.10" element="led"><bounds x="26" y="20" width="1" height="1" /></bezel> - <bezel name="13.11" element="led"><bounds x="26" y="22" width="1" height="1" /></bezel> - <bezel name="13.12" element="led"><bounds x="26" y="24" width="1" height="1" /></bezel> - <bezel name="13.13" element="led"><bounds x="26" y="26" width="1" height="1" /></bezel> - <bezel name="13.14" element="led"><bounds x="26" y="28" width="1" height="1" /></bezel> - <bezel name="13.15" element="led"><bounds x="26" y="30" width="1" height="1" /></bezel> - <bezel name="13.16" element="led"><bounds x="26" y="32" width="1" height="1" /></bezel> - <bezel name="13.17" element="led"><bounds x="26" y="34" width="1" height="1" /></bezel> - <bezel name="13.18" element="led"><bounds x="26" y="36" width="1" height="1" /></bezel> - <bezel name="13.19" element="led"><bounds x="26" y="38" width="1" height="1" /></bezel> - <bezel name="13.20" element="led"><bounds x="26" y="40" width="1" height="1" /></bezel> - <bezel name="13.21" element="led"><bounds x="26" y="42" width="1" height="1" /></bezel> - <bezel name="13.22" element="led"><bounds x="26" y="44" width="1" height="1" /></bezel> - <bezel name="13.23" element="led"><bounds x="26" y="46" width="1" height="1" /></bezel> - <bezel name="13.24" element="led"><bounds x="26" y="48" width="1" height="1" /></bezel> - <bezel name="13.25" element="led"><bounds x="26" y="50" width="1" height="1" /></bezel> - <bezel name="13.26" element="led"><bounds x="26" y="52" width="1" height="1" /></bezel> - <bezel name="13.27" element="led"><bounds x="26" y="54" width="1" height="1" /></bezel> - <bezel name="13.28" element="led"><bounds x="26" y="56" width="1" height="1" /></bezel> - <bezel name="13.29" element="led"><bounds x="26" y="58" width="1" height="1" /></bezel> - <bezel name="13.30" element="led"><bounds x="26" y="60" width="1" height="1" /></bezel> - <bezel name="13.31" element="led"><bounds x="26" y="62" width="1" height="1" /></bezel> - - <bezel name="14.0" element="led"><bounds x="28" y="0" width="1" height="1" /></bezel> - <bezel name="14.1" element="led"><bounds x="28" y="2" width="1" height="1" /></bezel> - <bezel name="14.2" element="led"><bounds x="28" y="4" width="1" height="1" /></bezel> - <bezel name="14.3" element="led"><bounds x="28" y="6" width="1" height="1" /></bezel> - <bezel name="14.4" element="led"><bounds x="28" y="8" width="1" height="1" /></bezel> - <bezel name="14.5" element="led"><bounds x="28" y="10" width="1" height="1" /></bezel> - <bezel name="14.6" element="led"><bounds x="28" y="12" width="1" height="1" /></bezel> - <bezel name="14.7" element="led"><bounds x="28" y="14" width="1" height="1" /></bezel> - <bezel name="14.8" element="led"><bounds x="28" y="16" width="1" height="1" /></bezel> - <bezel name="14.9" element="led"><bounds x="28" y="18" width="1" height="1" /></bezel> - <bezel name="14.10" element="led"><bounds x="28" y="20" width="1" height="1" /></bezel> - <bezel name="14.11" element="led"><bounds x="28" y="22" width="1" height="1" /></bezel> - <bezel name="14.12" element="led"><bounds x="28" y="24" width="1" height="1" /></bezel> - <bezel name="14.13" element="led"><bounds x="28" y="26" width="1" height="1" /></bezel> - <bezel name="14.14" element="led"><bounds x="28" y="28" width="1" height="1" /></bezel> - <bezel name="14.15" element="led"><bounds x="28" y="30" width="1" height="1" /></bezel> - <bezel name="14.16" element="led"><bounds x="28" y="32" width="1" height="1" /></bezel> - <bezel name="14.17" element="led"><bounds x="28" y="34" width="1" height="1" /></bezel> - <bezel name="14.18" element="led"><bounds x="28" y="36" width="1" height="1" /></bezel> - <bezel name="14.19" element="led"><bounds x="28" y="38" width="1" height="1" /></bezel> - <bezel name="14.20" element="led"><bounds x="28" y="40" width="1" height="1" /></bezel> - <bezel name="14.21" element="led"><bounds x="28" y="42" width="1" height="1" /></bezel> - <bezel name="14.22" element="led"><bounds x="28" y="44" width="1" height="1" /></bezel> - <bezel name="14.23" element="led"><bounds x="28" y="46" width="1" height="1" /></bezel> - <bezel name="14.24" element="led"><bounds x="28" y="48" width="1" height="1" /></bezel> - <bezel name="14.25" element="led"><bounds x="28" y="50" width="1" height="1" /></bezel> - <bezel name="14.26" element="led"><bounds x="28" y="52" width="1" height="1" /></bezel> - <bezel name="14.27" element="led"><bounds x="28" y="54" width="1" height="1" /></bezel> - <bezel name="14.28" element="led"><bounds x="28" y="56" width="1" height="1" /></bezel> - <bezel name="14.29" element="led"><bounds x="28" y="58" width="1" height="1" /></bezel> - <bezel name="14.30" element="led"><bounds x="28" y="60" width="1" height="1" /></bezel> - <bezel name="14.31" element="led"><bounds x="28" y="62" width="1" height="1" /></bezel> - - <bezel name="15.0" element="led"><bounds x="30" y="0" width="1" height="1" /></bezel> - <bezel name="15.1" element="led"><bounds x="30" y="2" width="1" height="1" /></bezel> - <bezel name="15.2" element="led"><bounds x="30" y="4" width="1" height="1" /></bezel> - <bezel name="15.3" element="led"><bounds x="30" y="6" width="1" height="1" /></bezel> - <bezel name="15.4" element="led"><bounds x="30" y="8" width="1" height="1" /></bezel> - <bezel name="15.5" element="led"><bounds x="30" y="10" width="1" height="1" /></bezel> - <bezel name="15.6" element="led"><bounds x="30" y="12" width="1" height="1" /></bezel> - <bezel name="15.7" element="led"><bounds x="30" y="14" width="1" height="1" /></bezel> - <bezel name="15.8" element="led"><bounds x="30" y="16" width="1" height="1" /></bezel> - <bezel name="15.9" element="led"><bounds x="30" y="18" width="1" height="1" /></bezel> - <bezel name="15.10" element="led"><bounds x="30" y="20" width="1" height="1" /></bezel> - <bezel name="15.11" element="led"><bounds x="30" y="22" width="1" height="1" /></bezel> - <bezel name="15.12" element="led"><bounds x="30" y="24" width="1" height="1" /></bezel> - <bezel name="15.13" element="led"><bounds x="30" y="26" width="1" height="1" /></bezel> - <bezel name="15.14" element="led"><bounds x="30" y="28" width="1" height="1" /></bezel> - <bezel name="15.15" element="led"><bounds x="30" y="30" width="1" height="1" /></bezel> - <bezel name="15.16" element="led"><bounds x="30" y="32" width="1" height="1" /></bezel> - <bezel name="15.17" element="led"><bounds x="30" y="34" width="1" height="1" /></bezel> - <bezel name="15.18" element="led"><bounds x="30" y="36" width="1" height="1" /></bezel> - <bezel name="15.19" element="led"><bounds x="30" y="38" width="1" height="1" /></bezel> - <bezel name="15.20" element="led"><bounds x="30" y="40" width="1" height="1" /></bezel> - <bezel name="15.21" element="led"><bounds x="30" y="42" width="1" height="1" /></bezel> - <bezel name="15.22" element="led"><bounds x="30" y="44" width="1" height="1" /></bezel> - <bezel name="15.23" element="led"><bounds x="30" y="46" width="1" height="1" /></bezel> - <bezel name="15.24" element="led"><bounds x="30" y="48" width="1" height="1" /></bezel> - <bezel name="15.25" element="led"><bounds x="30" y="50" width="1" height="1" /></bezel> - <bezel name="15.26" element="led"><bounds x="30" y="52" width="1" height="1" /></bezel> - <bezel name="15.27" element="led"><bounds x="30" y="54" width="1" height="1" /></bezel> - <bezel name="15.28" element="led"><bounds x="30" y="56" width="1" height="1" /></bezel> - <bezel name="15.29" element="led"><bounds x="30" y="58" width="1" height="1" /></bezel> - <bezel name="15.30" element="led"><bounds x="30" y="60" width="1" height="1" /></bezel> - <bezel name="15.31" element="led"><bounds x="30" y="62" width="1" height="1" /></bezel> + <repeat count="32"> + <param name="x" start="0" increment="1" /> + <bezel name="~y~.~x~" element="led"><bounds x="~x~" y="~y~" width="0.5" height="0.5" /></bezel> + </repeat> + </repeat> </view> </mamelayout> diff --git a/src/mame/layout/hh_pic16_test.lay b/src/mame/layout/hh_pic16_test.lay index faca1bc722e..675ea6960c9 100644 --- a/src/mame/layout/hh_pic16_test.lay +++ b/src/mame/layout/hh_pic16_test.lay @@ -14,540 +14,21 @@ <!-- build screen --> <view name="Test Layout"> - <bounds left="0" right="64" top="0" bottom="64" /> + <bounds left="0" right="32" top="0" bottom="16" /> <bezel element="static_black"> - <bounds left="0" right="64" top="0" bottom="64" /> + <bounds left="0" right="32" top="0" bottom="16" /> </bezel> <!-- max 16*32 matrix --> - <bezel name="0.0" element="led"><bounds x="0" y="0" width="1" height="1" /></bezel> - <bezel name="0.1" element="led"><bounds x="0" y="2" width="1" height="1" /></bezel> - <bezel name="0.2" element="led"><bounds x="0" y="4" width="1" height="1" /></bezel> - <bezel name="0.3" element="led"><bounds x="0" y="6" width="1" height="1" /></bezel> - <bezel name="0.4" element="led"><bounds x="0" y="8" width="1" height="1" /></bezel> - <bezel name="0.5" element="led"><bounds x="0" y="10" width="1" height="1" /></bezel> - <bezel name="0.6" element="led"><bounds x="0" y="12" width="1" height="1" /></bezel> - <bezel name="0.7" element="led"><bounds x="0" y="14" width="1" height="1" /></bezel> - <bezel name="0.8" element="led"><bounds x="0" y="16" width="1" height="1" /></bezel> - <bezel name="0.9" element="led"><bounds x="0" y="18" width="1" height="1" /></bezel> - <bezel name="0.10" element="led"><bounds x="0" y="20" width="1" height="1" /></bezel> - <bezel name="0.11" element="led"><bounds x="0" y="22" width="1" height="1" /></bezel> - <bezel name="0.12" element="led"><bounds x="0" y="24" width="1" height="1" /></bezel> - <bezel name="0.13" element="led"><bounds x="0" y="26" width="1" height="1" /></bezel> - <bezel name="0.14" element="led"><bounds x="0" y="28" width="1" height="1" /></bezel> - <bezel name="0.15" element="led"><bounds x="0" y="30" width="1" height="1" /></bezel> - <bezel name="0.16" element="led"><bounds x="0" y="32" width="1" height="1" /></bezel> - <bezel name="0.17" element="led"><bounds x="0" y="34" width="1" height="1" /></bezel> - <bezel name="0.18" element="led"><bounds x="0" y="36" width="1" height="1" /></bezel> - <bezel name="0.19" element="led"><bounds x="0" y="38" width="1" height="1" /></bezel> - <bezel name="0.20" element="led"><bounds x="0" y="40" width="1" height="1" /></bezel> - <bezel name="0.21" element="led"><bounds x="0" y="42" width="1" height="1" /></bezel> - <bezel name="0.22" element="led"><bounds x="0" y="44" width="1" height="1" /></bezel> - <bezel name="0.23" element="led"><bounds x="0" y="46" width="1" height="1" /></bezel> - <bezel name="0.24" element="led"><bounds x="0" y="48" width="1" height="1" /></bezel> - <bezel name="0.25" element="led"><bounds x="0" y="50" width="1" height="1" /></bezel> - <bezel name="0.26" element="led"><bounds x="0" y="52" width="1" height="1" /></bezel> - <bezel name="0.27" element="led"><bounds x="0" y="54" width="1" height="1" /></bezel> - <bezel name="0.28" element="led"><bounds x="0" y="56" width="1" height="1" /></bezel> - <bezel name="0.29" element="led"><bounds x="0" y="58" width="1" height="1" /></bezel> - <bezel name="0.30" element="led"><bounds x="0" y="60" width="1" height="1" /></bezel> - <bezel name="0.31" element="led"><bounds x="0" y="62" width="1" height="1" /></bezel> + <repeat count="16"> + <param name="y" start="0" increment="1" /> - <bezel name="1.0" element="led"><bounds x="2" y="0" width="1" height="1" /></bezel> - <bezel name="1.1" element="led"><bounds x="2" y="2" width="1" height="1" /></bezel> - <bezel name="1.2" element="led"><bounds x="2" y="4" width="1" height="1" /></bezel> - <bezel name="1.3" element="led"><bounds x="2" y="6" width="1" height="1" /></bezel> - <bezel name="1.4" element="led"><bounds x="2" y="8" width="1" height="1" /></bezel> - <bezel name="1.5" element="led"><bounds x="2" y="10" width="1" height="1" /></bezel> - <bezel name="1.6" element="led"><bounds x="2" y="12" width="1" height="1" /></bezel> - <bezel name="1.7" element="led"><bounds x="2" y="14" width="1" height="1" /></bezel> - <bezel name="1.8" element="led"><bounds x="2" y="16" width="1" height="1" /></bezel> - <bezel name="1.9" element="led"><bounds x="2" y="18" width="1" height="1" /></bezel> - <bezel name="1.10" element="led"><bounds x="2" y="20" width="1" height="1" /></bezel> - <bezel name="1.11" element="led"><bounds x="2" y="22" width="1" height="1" /></bezel> - <bezel name="1.12" element="led"><bounds x="2" y="24" width="1" height="1" /></bezel> - <bezel name="1.13" element="led"><bounds x="2" y="26" width="1" height="1" /></bezel> - <bezel name="1.14" element="led"><bounds x="2" y="28" width="1" height="1" /></bezel> - <bezel name="1.15" element="led"><bounds x="2" y="30" width="1" height="1" /></bezel> - <bezel name="1.16" element="led"><bounds x="2" y="32" width="1" height="1" /></bezel> - <bezel name="1.17" element="led"><bounds x="2" y="34" width="1" height="1" /></bezel> - <bezel name="1.18" element="led"><bounds x="2" y="36" width="1" height="1" /></bezel> - <bezel name="1.19" element="led"><bounds x="2" y="38" width="1" height="1" /></bezel> - <bezel name="1.20" element="led"><bounds x="2" y="40" width="1" height="1" /></bezel> - <bezel name="1.21" element="led"><bounds x="2" y="42" width="1" height="1" /></bezel> - <bezel name="1.22" element="led"><bounds x="2" y="44" width="1" height="1" /></bezel> - <bezel name="1.23" element="led"><bounds x="2" y="46" width="1" height="1" /></bezel> - <bezel name="1.24" element="led"><bounds x="2" y="48" width="1" height="1" /></bezel> - <bezel name="1.25" element="led"><bounds x="2" y="50" width="1" height="1" /></bezel> - <bezel name="1.26" element="led"><bounds x="2" y="52" width="1" height="1" /></bezel> - <bezel name="1.27" element="led"><bounds x="2" y="54" width="1" height="1" /></bezel> - <bezel name="1.28" element="led"><bounds x="2" y="56" width="1" height="1" /></bezel> - <bezel name="1.29" element="led"><bounds x="2" y="58" width="1" height="1" /></bezel> - <bezel name="1.30" element="led"><bounds x="2" y="60" width="1" height="1" /></bezel> - <bezel name="1.31" element="led"><bounds x="2" y="62" width="1" height="1" /></bezel> - - <bezel name="2.0" element="led"><bounds x="4" y="0" width="1" height="1" /></bezel> - <bezel name="2.1" element="led"><bounds x="4" y="2" width="1" height="1" /></bezel> - <bezel name="2.2" element="led"><bounds x="4" y="4" width="1" height="1" /></bezel> - <bezel name="2.3" element="led"><bounds x="4" y="6" width="1" height="1" /></bezel> - <bezel name="2.4" element="led"><bounds x="4" y="8" width="1" height="1" /></bezel> - <bezel name="2.5" element="led"><bounds x="4" y="10" width="1" height="1" /></bezel> - <bezel name="2.6" element="led"><bounds x="4" y="12" width="1" height="1" /></bezel> - <bezel name="2.7" element="led"><bounds x="4" y="14" width="1" height="1" /></bezel> - <bezel name="2.8" element="led"><bounds x="4" y="16" width="1" height="1" /></bezel> - <bezel name="2.9" element="led"><bounds x="4" y="18" width="1" height="1" /></bezel> - <bezel name="2.10" element="led"><bounds x="4" y="20" width="1" height="1" /></bezel> - <bezel name="2.11" element="led"><bounds x="4" y="22" width="1" height="1" /></bezel> - <bezel name="2.12" element="led"><bounds x="4" y="24" width="1" height="1" /></bezel> - <bezel name="2.13" element="led"><bounds x="4" y="26" width="1" height="1" /></bezel> - <bezel name="2.14" element="led"><bounds x="4" y="28" width="1" height="1" /></bezel> - <bezel name="2.15" element="led"><bounds x="4" y="30" width="1" height="1" /></bezel> - <bezel name="2.16" element="led"><bounds x="4" y="32" width="1" height="1" /></bezel> - <bezel name="2.17" element="led"><bounds x="4" y="34" width="1" height="1" /></bezel> - <bezel name="2.18" element="led"><bounds x="4" y="36" width="1" height="1" /></bezel> - <bezel name="2.19" element="led"><bounds x="4" y="38" width="1" height="1" /></bezel> - <bezel name="2.20" element="led"><bounds x="4" y="40" width="1" height="1" /></bezel> - <bezel name="2.21" element="led"><bounds x="4" y="42" width="1" height="1" /></bezel> - <bezel name="2.22" element="led"><bounds x="4" y="44" width="1" height="1" /></bezel> - <bezel name="2.23" element="led"><bounds x="4" y="46" width="1" height="1" /></bezel> - <bezel name="2.24" element="led"><bounds x="4" y="48" width="1" height="1" /></bezel> - <bezel name="2.25" element="led"><bounds x="4" y="50" width="1" height="1" /></bezel> - <bezel name="2.26" element="led"><bounds x="4" y="52" width="1" height="1" /></bezel> - <bezel name="2.27" element="led"><bounds x="4" y="54" width="1" height="1" /></bezel> - <bezel name="2.28" element="led"><bounds x="4" y="56" width="1" height="1" /></bezel> - <bezel name="2.29" element="led"><bounds x="4" y="58" width="1" height="1" /></bezel> - <bezel name="2.30" element="led"><bounds x="4" y="60" width="1" height="1" /></bezel> - <bezel name="2.31" element="led"><bounds x="4" y="62" width="1" height="1" /></bezel> - - <bezel name="3.0" element="led"><bounds x="6" y="0" width="1" height="1" /></bezel> - <bezel name="3.1" element="led"><bounds x="6" y="2" width="1" height="1" /></bezel> - <bezel name="3.2" element="led"><bounds x="6" y="4" width="1" height="1" /></bezel> - <bezel name="3.3" element="led"><bounds x="6" y="6" width="1" height="1" /></bezel> - <bezel name="3.4" element="led"><bounds x="6" y="8" width="1" height="1" /></bezel> - <bezel name="3.5" element="led"><bounds x="6" y="10" width="1" height="1" /></bezel> - <bezel name="3.6" element="led"><bounds x="6" y="12" width="1" height="1" /></bezel> - <bezel name="3.7" element="led"><bounds x="6" y="14" width="1" height="1" /></bezel> - <bezel name="3.8" element="led"><bounds x="6" y="16" width="1" height="1" /></bezel> - <bezel name="3.9" element="led"><bounds x="6" y="18" width="1" height="1" /></bezel> - <bezel name="3.10" element="led"><bounds x="6" y="20" width="1" height="1" /></bezel> - <bezel name="3.11" element="led"><bounds x="6" y="22" width="1" height="1" /></bezel> - <bezel name="3.12" element="led"><bounds x="6" y="24" width="1" height="1" /></bezel> - <bezel name="3.13" element="led"><bounds x="6" y="26" width="1" height="1" /></bezel> - <bezel name="3.14" element="led"><bounds x="6" y="28" width="1" height="1" /></bezel> - <bezel name="3.15" element="led"><bounds x="6" y="30" width="1" height="1" /></bezel> - <bezel name="3.16" element="led"><bounds x="6" y="32" width="1" height="1" /></bezel> - <bezel name="3.17" element="led"><bounds x="6" y="34" width="1" height="1" /></bezel> - <bezel name="3.18" element="led"><bounds x="6" y="36" width="1" height="1" /></bezel> - <bezel name="3.19" element="led"><bounds x="6" y="38" width="1" height="1" /></bezel> - <bezel name="3.20" element="led"><bounds x="6" y="40" width="1" height="1" /></bezel> - <bezel name="3.21" element="led"><bounds x="6" y="42" width="1" height="1" /></bezel> - <bezel name="3.22" element="led"><bounds x="6" y="44" width="1" height="1" /></bezel> - <bezel name="3.23" element="led"><bounds x="6" y="46" width="1" height="1" /></bezel> - <bezel name="3.24" element="led"><bounds x="6" y="48" width="1" height="1" /></bezel> - <bezel name="3.25" element="led"><bounds x="6" y="50" width="1" height="1" /></bezel> - <bezel name="3.26" element="led"><bounds x="6" y="52" width="1" height="1" /></bezel> - <bezel name="3.27" element="led"><bounds x="6" y="54" width="1" height="1" /></bezel> - <bezel name="3.28" element="led"><bounds x="6" y="56" width="1" height="1" /></bezel> - <bezel name="3.29" element="led"><bounds x="6" y="58" width="1" height="1" /></bezel> - <bezel name="3.30" element="led"><bounds x="6" y="60" width="1" height="1" /></bezel> - <bezel name="3.31" element="led"><bounds x="6" y="62" width="1" height="1" /></bezel> - - <bezel name="4.0" element="led"><bounds x="8" y="0" width="1" height="1" /></bezel> - <bezel name="4.1" element="led"><bounds x="8" y="2" width="1" height="1" /></bezel> - <bezel name="4.2" element="led"><bounds x="8" y="4" width="1" height="1" /></bezel> - <bezel name="4.3" element="led"><bounds x="8" y="6" width="1" height="1" /></bezel> - <bezel name="4.4" element="led"><bounds x="8" y="8" width="1" height="1" /></bezel> - <bezel name="4.5" element="led"><bounds x="8" y="10" width="1" height="1" /></bezel> - <bezel name="4.6" element="led"><bounds x="8" y="12" width="1" height="1" /></bezel> - <bezel name="4.7" element="led"><bounds x="8" y="14" width="1" height="1" /></bezel> - <bezel name="4.8" element="led"><bounds x="8" y="16" width="1" height="1" /></bezel> - <bezel name="4.9" element="led"><bounds x="8" y="18" width="1" height="1" /></bezel> - <bezel name="4.10" element="led"><bounds x="8" y="20" width="1" height="1" /></bezel> - <bezel name="4.11" element="led"><bounds x="8" y="22" width="1" height="1" /></bezel> - <bezel name="4.12" element="led"><bounds x="8" y="24" width="1" height="1" /></bezel> - <bezel name="4.13" element="led"><bounds x="8" y="26" width="1" height="1" /></bezel> - <bezel name="4.14" element="led"><bounds x="8" y="28" width="1" height="1" /></bezel> - <bezel name="4.15" element="led"><bounds x="8" y="30" width="1" height="1" /></bezel> - <bezel name="4.16" element="led"><bounds x="8" y="32" width="1" height="1" /></bezel> - <bezel name="4.17" element="led"><bounds x="8" y="34" width="1" height="1" /></bezel> - <bezel name="4.18" element="led"><bounds x="8" y="36" width="1" height="1" /></bezel> - <bezel name="4.19" element="led"><bounds x="8" y="38" width="1" height="1" /></bezel> - <bezel name="4.20" element="led"><bounds x="8" y="40" width="1" height="1" /></bezel> - <bezel name="4.21" element="led"><bounds x="8" y="42" width="1" height="1" /></bezel> - <bezel name="4.22" element="led"><bounds x="8" y="44" width="1" height="1" /></bezel> - <bezel name="4.23" element="led"><bounds x="8" y="46" width="1" height="1" /></bezel> - <bezel name="4.24" element="led"><bounds x="8" y="48" width="1" height="1" /></bezel> - <bezel name="4.25" element="led"><bounds x="8" y="50" width="1" height="1" /></bezel> - <bezel name="4.26" element="led"><bounds x="8" y="52" width="1" height="1" /></bezel> - <bezel name="4.27" element="led"><bounds x="8" y="54" width="1" height="1" /></bezel> - <bezel name="4.28" element="led"><bounds x="8" y="56" width="1" height="1" /></bezel> - <bezel name="4.29" element="led"><bounds x="8" y="58" width="1" height="1" /></bezel> - <bezel name="4.30" element="led"><bounds x="8" y="60" width="1" height="1" /></bezel> - <bezel name="4.31" element="led"><bounds x="8" y="62" width="1" height="1" /></bezel> - - <bezel name="5.0" element="led"><bounds x="10" y="0" width="1" height="1" /></bezel> - <bezel name="5.1" element="led"><bounds x="10" y="2" width="1" height="1" /></bezel> - <bezel name="5.2" element="led"><bounds x="10" y="4" width="1" height="1" /></bezel> - <bezel name="5.3" element="led"><bounds x="10" y="6" width="1" height="1" /></bezel> - <bezel name="5.4" element="led"><bounds x="10" y="8" width="1" height="1" /></bezel> - <bezel name="5.5" element="led"><bounds x="10" y="10" width="1" height="1" /></bezel> - <bezel name="5.6" element="led"><bounds x="10" y="12" width="1" height="1" /></bezel> - <bezel name="5.7" element="led"><bounds x="10" y="14" width="1" height="1" /></bezel> - <bezel name="5.8" element="led"><bounds x="10" y="16" width="1" height="1" /></bezel> - <bezel name="5.9" element="led"><bounds x="10" y="18" width="1" height="1" /></bezel> - <bezel name="5.10" element="led"><bounds x="10" y="20" width="1" height="1" /></bezel> - <bezel name="5.11" element="led"><bounds x="10" y="22" width="1" height="1" /></bezel> - <bezel name="5.12" element="led"><bounds x="10" y="24" width="1" height="1" /></bezel> - <bezel name="5.13" element="led"><bounds x="10" y="26" width="1" height="1" /></bezel> - <bezel name="5.14" element="led"><bounds x="10" y="28" width="1" height="1" /></bezel> - <bezel name="5.15" element="led"><bounds x="10" y="30" width="1" height="1" /></bezel> - <bezel name="5.16" element="led"><bounds x="10" y="32" width="1" height="1" /></bezel> - <bezel name="5.17" element="led"><bounds x="10" y="34" width="1" height="1" /></bezel> - <bezel name="5.18" element="led"><bounds x="10" y="36" width="1" height="1" /></bezel> - <bezel name="5.19" element="led"><bounds x="10" y="38" width="1" height="1" /></bezel> - <bezel name="5.20" element="led"><bounds x="10" y="40" width="1" height="1" /></bezel> - <bezel name="5.21" element="led"><bounds x="10" y="42" width="1" height="1" /></bezel> - <bezel name="5.22" element="led"><bounds x="10" y="44" width="1" height="1" /></bezel> - <bezel name="5.23" element="led"><bounds x="10" y="46" width="1" height="1" /></bezel> - <bezel name="5.24" element="led"><bounds x="10" y="48" width="1" height="1" /></bezel> - <bezel name="5.25" element="led"><bounds x="10" y="50" width="1" height="1" /></bezel> - <bezel name="5.26" element="led"><bounds x="10" y="52" width="1" height="1" /></bezel> - <bezel name="5.27" element="led"><bounds x="10" y="54" width="1" height="1" /></bezel> - <bezel name="5.28" element="led"><bounds x="10" y="56" width="1" height="1" /></bezel> - <bezel name="5.29" element="led"><bounds x="10" y="58" width="1" height="1" /></bezel> - <bezel name="5.30" element="led"><bounds x="10" y="60" width="1" height="1" /></bezel> - <bezel name="5.31" element="led"><bounds x="10" y="62" width="1" height="1" /></bezel> - - <bezel name="6.0" element="led"><bounds x="12" y="0" width="1" height="1" /></bezel> - <bezel name="6.1" element="led"><bounds x="12" y="2" width="1" height="1" /></bezel> - <bezel name="6.2" element="led"><bounds x="12" y="4" width="1" height="1" /></bezel> - <bezel name="6.3" element="led"><bounds x="12" y="6" width="1" height="1" /></bezel> - <bezel name="6.4" element="led"><bounds x="12" y="8" width="1" height="1" /></bezel> - <bezel name="6.5" element="led"><bounds x="12" y="10" width="1" height="1" /></bezel> - <bezel name="6.6" element="led"><bounds x="12" y="12" width="1" height="1" /></bezel> - <bezel name="6.7" element="led"><bounds x="12" y="14" width="1" height="1" /></bezel> - <bezel name="6.8" element="led"><bounds x="12" y="16" width="1" height="1" /></bezel> - <bezel name="6.9" element="led"><bounds x="12" y="18" width="1" height="1" /></bezel> - <bezel name="6.10" element="led"><bounds x="12" y="20" width="1" height="1" /></bezel> - <bezel name="6.11" element="led"><bounds x="12" y="22" width="1" height="1" /></bezel> - <bezel name="6.12" element="led"><bounds x="12" y="24" width="1" height="1" /></bezel> - <bezel name="6.13" element="led"><bounds x="12" y="26" width="1" height="1" /></bezel> - <bezel name="6.14" element="led"><bounds x="12" y="28" width="1" height="1" /></bezel> - <bezel name="6.15" element="led"><bounds x="12" y="30" width="1" height="1" /></bezel> - <bezel name="6.16" element="led"><bounds x="12" y="32" width="1" height="1" /></bezel> - <bezel name="6.17" element="led"><bounds x="12" y="34" width="1" height="1" /></bezel> - <bezel name="6.18" element="led"><bounds x="12" y="36" width="1" height="1" /></bezel> - <bezel name="6.19" element="led"><bounds x="12" y="38" width="1" height="1" /></bezel> - <bezel name="6.20" element="led"><bounds x="12" y="40" width="1" height="1" /></bezel> - <bezel name="6.21" element="led"><bounds x="12" y="42" width="1" height="1" /></bezel> - <bezel name="6.22" element="led"><bounds x="12" y="44" width="1" height="1" /></bezel> - <bezel name="6.23" element="led"><bounds x="12" y="46" width="1" height="1" /></bezel> - <bezel name="6.24" element="led"><bounds x="12" y="48" width="1" height="1" /></bezel> - <bezel name="6.25" element="led"><bounds x="12" y="50" width="1" height="1" /></bezel> - <bezel name="6.26" element="led"><bounds x="12" y="52" width="1" height="1" /></bezel> - <bezel name="6.27" element="led"><bounds x="12" y="54" width="1" height="1" /></bezel> - <bezel name="6.28" element="led"><bounds x="12" y="56" width="1" height="1" /></bezel> - <bezel name="6.29" element="led"><bounds x="12" y="58" width="1" height="1" /></bezel> - <bezel name="6.30" element="led"><bounds x="12" y="60" width="1" height="1" /></bezel> - <bezel name="6.31" element="led"><bounds x="12" y="62" width="1" height="1" /></bezel> - - <bezel name="7.0" element="led"><bounds x="14" y="0" width="1" height="1" /></bezel> - <bezel name="7.1" element="led"><bounds x="14" y="2" width="1" height="1" /></bezel> - <bezel name="7.2" element="led"><bounds x="14" y="4" width="1" height="1" /></bezel> - <bezel name="7.3" element="led"><bounds x="14" y="6" width="1" height="1" /></bezel> - <bezel name="7.4" element="led"><bounds x="14" y="8" width="1" height="1" /></bezel> - <bezel name="7.5" element="led"><bounds x="14" y="10" width="1" height="1" /></bezel> - <bezel name="7.6" element="led"><bounds x="14" y="12" width="1" height="1" /></bezel> - <bezel name="7.7" element="led"><bounds x="14" y="14" width="1" height="1" /></bezel> - <bezel name="7.8" element="led"><bounds x="14" y="16" width="1" height="1" /></bezel> - <bezel name="7.9" element="led"><bounds x="14" y="18" width="1" height="1" /></bezel> - <bezel name="7.10" element="led"><bounds x="14" y="20" width="1" height="1" /></bezel> - <bezel name="7.11" element="led"><bounds x="14" y="22" width="1" height="1" /></bezel> - <bezel name="7.12" element="led"><bounds x="14" y="24" width="1" height="1" /></bezel> - <bezel name="7.13" element="led"><bounds x="14" y="26" width="1" height="1" /></bezel> - <bezel name="7.14" element="led"><bounds x="14" y="28" width="1" height="1" /></bezel> - <bezel name="7.15" element="led"><bounds x="14" y="30" width="1" height="1" /></bezel> - <bezel name="7.16" element="led"><bounds x="14" y="32" width="1" height="1" /></bezel> - <bezel name="7.17" element="led"><bounds x="14" y="34" width="1" height="1" /></bezel> - <bezel name="7.18" element="led"><bounds x="14" y="36" width="1" height="1" /></bezel> - <bezel name="7.19" element="led"><bounds x="14" y="38" width="1" height="1" /></bezel> - <bezel name="7.20" element="led"><bounds x="14" y="40" width="1" height="1" /></bezel> - <bezel name="7.21" element="led"><bounds x="14" y="42" width="1" height="1" /></bezel> - <bezel name="7.22" element="led"><bounds x="14" y="44" width="1" height="1" /></bezel> - <bezel name="7.23" element="led"><bounds x="14" y="46" width="1" height="1" /></bezel> - <bezel name="7.24" element="led"><bounds x="14" y="48" width="1" height="1" /></bezel> - <bezel name="7.25" element="led"><bounds x="14" y="50" width="1" height="1" /></bezel> - <bezel name="7.26" element="led"><bounds x="14" y="52" width="1" height="1" /></bezel> - <bezel name="7.27" element="led"><bounds x="14" y="54" width="1" height="1" /></bezel> - <bezel name="7.28" element="led"><bounds x="14" y="56" width="1" height="1" /></bezel> - <bezel name="7.29" element="led"><bounds x="14" y="58" width="1" height="1" /></bezel> - <bezel name="7.30" element="led"><bounds x="14" y="60" width="1" height="1" /></bezel> - <bezel name="7.31" element="led"><bounds x="14" y="62" width="1" height="1" /></bezel> - - <bezel name="8.0" element="led"><bounds x="16" y="0" width="1" height="1" /></bezel> - <bezel name="8.1" element="led"><bounds x="16" y="2" width="1" height="1" /></bezel> - <bezel name="8.2" element="led"><bounds x="16" y="4" width="1" height="1" /></bezel> - <bezel name="8.3" element="led"><bounds x="16" y="6" width="1" height="1" /></bezel> - <bezel name="8.4" element="led"><bounds x="16" y="8" width="1" height="1" /></bezel> - <bezel name="8.5" element="led"><bounds x="16" y="10" width="1" height="1" /></bezel> - <bezel name="8.6" element="led"><bounds x="16" y="12" width="1" height="1" /></bezel> - <bezel name="8.7" element="led"><bounds x="16" y="14" width="1" height="1" /></bezel> - <bezel name="8.8" element="led"><bounds x="16" y="16" width="1" height="1" /></bezel> - <bezel name="8.9" element="led"><bounds x="16" y="18" width="1" height="1" /></bezel> - <bezel name="8.10" element="led"><bounds x="16" y="20" width="1" height="1" /></bezel> - <bezel name="8.11" element="led"><bounds x="16" y="22" width="1" height="1" /></bezel> - <bezel name="8.12" element="led"><bounds x="16" y="24" width="1" height="1" /></bezel> - <bezel name="8.13" element="led"><bounds x="16" y="26" width="1" height="1" /></bezel> - <bezel name="8.14" element="led"><bounds x="16" y="28" width="1" height="1" /></bezel> - <bezel name="8.15" element="led"><bounds x="16" y="30" width="1" height="1" /></bezel> - <bezel name="8.16" element="led"><bounds x="16" y="32" width="1" height="1" /></bezel> - <bezel name="8.17" element="led"><bounds x="16" y="34" width="1" height="1" /></bezel> - <bezel name="8.18" element="led"><bounds x="16" y="36" width="1" height="1" /></bezel> - <bezel name="8.19" element="led"><bounds x="16" y="38" width="1" height="1" /></bezel> - <bezel name="8.20" element="led"><bounds x="16" y="40" width="1" height="1" /></bezel> - <bezel name="8.21" element="led"><bounds x="16" y="42" width="1" height="1" /></bezel> - <bezel name="8.22" element="led"><bounds x="16" y="44" width="1" height="1" /></bezel> - <bezel name="8.23" element="led"><bounds x="16" y="46" width="1" height="1" /></bezel> - <bezel name="8.24" element="led"><bounds x="16" y="48" width="1" height="1" /></bezel> - <bezel name="8.25" element="led"><bounds x="16" y="50" width="1" height="1" /></bezel> - <bezel name="8.26" element="led"><bounds x="16" y="52" width="1" height="1" /></bezel> - <bezel name="8.27" element="led"><bounds x="16" y="54" width="1" height="1" /></bezel> - <bezel name="8.28" element="led"><bounds x="16" y="56" width="1" height="1" /></bezel> - <bezel name="8.29" element="led"><bounds x="16" y="58" width="1" height="1" /></bezel> - <bezel name="8.30" element="led"><bounds x="16" y="60" width="1" height="1" /></bezel> - <bezel name="8.31" element="led"><bounds x="16" y="62" width="1" height="1" /></bezel> - - <bezel name="9.0" element="led"><bounds x="18" y="0" width="1" height="1" /></bezel> - <bezel name="9.1" element="led"><bounds x="18" y="2" width="1" height="1" /></bezel> - <bezel name="9.2" element="led"><bounds x="18" y="4" width="1" height="1" /></bezel> - <bezel name="9.3" element="led"><bounds x="18" y="6" width="1" height="1" /></bezel> - <bezel name="9.4" element="led"><bounds x="18" y="8" width="1" height="1" /></bezel> - <bezel name="9.5" element="led"><bounds x="18" y="10" width="1" height="1" /></bezel> - <bezel name="9.6" element="led"><bounds x="18" y="12" width="1" height="1" /></bezel> - <bezel name="9.7" element="led"><bounds x="18" y="14" width="1" height="1" /></bezel> - <bezel name="9.8" element="led"><bounds x="18" y="16" width="1" height="1" /></bezel> - <bezel name="9.9" element="led"><bounds x="18" y="18" width="1" height="1" /></bezel> - <bezel name="9.10" element="led"><bounds x="18" y="20" width="1" height="1" /></bezel> - <bezel name="9.11" element="led"><bounds x="18" y="22" width="1" height="1" /></bezel> - <bezel name="9.12" element="led"><bounds x="18" y="24" width="1" height="1" /></bezel> - <bezel name="9.13" element="led"><bounds x="18" y="26" width="1" height="1" /></bezel> - <bezel name="9.14" element="led"><bounds x="18" y="28" width="1" height="1" /></bezel> - <bezel name="9.15" element="led"><bounds x="18" y="30" width="1" height="1" /></bezel> - <bezel name="9.16" element="led"><bounds x="18" y="32" width="1" height="1" /></bezel> - <bezel name="9.17" element="led"><bounds x="18" y="34" width="1" height="1" /></bezel> - <bezel name="9.18" element="led"><bounds x="18" y="36" width="1" height="1" /></bezel> - <bezel name="9.19" element="led"><bounds x="18" y="38" width="1" height="1" /></bezel> - <bezel name="9.20" element="led"><bounds x="18" y="40" width="1" height="1" /></bezel> - <bezel name="9.21" element="led"><bounds x="18" y="42" width="1" height="1" /></bezel> - <bezel name="9.22" element="led"><bounds x="18" y="44" width="1" height="1" /></bezel> - <bezel name="9.23" element="led"><bounds x="18" y="46" width="1" height="1" /></bezel> - <bezel name="9.24" element="led"><bounds x="18" y="48" width="1" height="1" /></bezel> - <bezel name="9.25" element="led"><bounds x="18" y="50" width="1" height="1" /></bezel> - <bezel name="9.26" element="led"><bounds x="18" y="52" width="1" height="1" /></bezel> - <bezel name="9.27" element="led"><bounds x="18" y="54" width="1" height="1" /></bezel> - <bezel name="9.28" element="led"><bounds x="18" y="56" width="1" height="1" /></bezel> - <bezel name="9.29" element="led"><bounds x="18" y="58" width="1" height="1" /></bezel> - <bezel name="9.30" element="led"><bounds x="18" y="60" width="1" height="1" /></bezel> - <bezel name="9.31" element="led"><bounds x="18" y="62" width="1" height="1" /></bezel> - - <bezel name="10.0" element="led"><bounds x="20" y="0" width="1" height="1" /></bezel> - <bezel name="10.1" element="led"><bounds x="20" y="2" width="1" height="1" /></bezel> - <bezel name="10.2" element="led"><bounds x="20" y="4" width="1" height="1" /></bezel> - <bezel name="10.3" element="led"><bounds x="20" y="6" width="1" height="1" /></bezel> - <bezel name="10.4" element="led"><bounds x="20" y="8" width="1" height="1" /></bezel> - <bezel name="10.5" element="led"><bounds x="20" y="10" width="1" height="1" /></bezel> - <bezel name="10.6" element="led"><bounds x="20" y="12" width="1" height="1" /></bezel> - <bezel name="10.7" element="led"><bounds x="20" y="14" width="1" height="1" /></bezel> - <bezel name="10.8" element="led"><bounds x="20" y="16" width="1" height="1" /></bezel> - <bezel name="10.9" element="led"><bounds x="20" y="18" width="1" height="1" /></bezel> - <bezel name="10.10" element="led"><bounds x="20" y="20" width="1" height="1" /></bezel> - <bezel name="10.11" element="led"><bounds x="20" y="22" width="1" height="1" /></bezel> - <bezel name="10.12" element="led"><bounds x="20" y="24" width="1" height="1" /></bezel> - <bezel name="10.13" element="led"><bounds x="20" y="26" width="1" height="1" /></bezel> - <bezel name="10.14" element="led"><bounds x="20" y="28" width="1" height="1" /></bezel> - <bezel name="10.15" element="led"><bounds x="20" y="30" width="1" height="1" /></bezel> - <bezel name="10.16" element="led"><bounds x="20" y="32" width="1" height="1" /></bezel> - <bezel name="10.17" element="led"><bounds x="20" y="34" width="1" height="1" /></bezel> - <bezel name="10.18" element="led"><bounds x="20" y="36" width="1" height="1" /></bezel> - <bezel name="10.19" element="led"><bounds x="20" y="38" width="1" height="1" /></bezel> - <bezel name="10.20" element="led"><bounds x="20" y="40" width="1" height="1" /></bezel> - <bezel name="10.21" element="led"><bounds x="20" y="42" width="1" height="1" /></bezel> - <bezel name="10.22" element="led"><bounds x="20" y="44" width="1" height="1" /></bezel> - <bezel name="10.23" element="led"><bounds x="20" y="46" width="1" height="1" /></bezel> - <bezel name="10.24" element="led"><bounds x="20" y="48" width="1" height="1" /></bezel> - <bezel name="10.25" element="led"><bounds x="20" y="50" width="1" height="1" /></bezel> - <bezel name="10.26" element="led"><bounds x="20" y="52" width="1" height="1" /></bezel> - <bezel name="10.27" element="led"><bounds x="20" y="54" width="1" height="1" /></bezel> - <bezel name="10.28" element="led"><bounds x="20" y="56" width="1" height="1" /></bezel> - <bezel name="10.29" element="led"><bounds x="20" y="58" width="1" height="1" /></bezel> - <bezel name="10.30" element="led"><bounds x="20" y="60" width="1" height="1" /></bezel> - <bezel name="10.31" element="led"><bounds x="20" y="62" width="1" height="1" /></bezel> - - <bezel name="11.0" element="led"><bounds x="22" y="0" width="1" height="1" /></bezel> - <bezel name="11.1" element="led"><bounds x="22" y="2" width="1" height="1" /></bezel> - <bezel name="11.2" element="led"><bounds x="22" y="4" width="1" height="1" /></bezel> - <bezel name="11.3" element="led"><bounds x="22" y="6" width="1" height="1" /></bezel> - <bezel name="11.4" element="led"><bounds x="22" y="8" width="1" height="1" /></bezel> - <bezel name="11.5" element="led"><bounds x="22" y="10" width="1" height="1" /></bezel> - <bezel name="11.6" element="led"><bounds x="22" y="12" width="1" height="1" /></bezel> - <bezel name="11.7" element="led"><bounds x="22" y="14" width="1" height="1" /></bezel> - <bezel name="11.8" element="led"><bounds x="22" y="16" width="1" height="1" /></bezel> - <bezel name="11.9" element="led"><bounds x="22" y="18" width="1" height="1" /></bezel> - <bezel name="11.10" element="led"><bounds x="22" y="20" width="1" height="1" /></bezel> - <bezel name="11.11" element="led"><bounds x="22" y="22" width="1" height="1" /></bezel> - <bezel name="11.12" element="led"><bounds x="22" y="24" width="1" height="1" /></bezel> - <bezel name="11.13" element="led"><bounds x="22" y="26" width="1" height="1" /></bezel> - <bezel name="11.14" element="led"><bounds x="22" y="28" width="1" height="1" /></bezel> - <bezel name="11.15" element="led"><bounds x="22" y="30" width="1" height="1" /></bezel> - <bezel name="11.16" element="led"><bounds x="22" y="32" width="1" height="1" /></bezel> - <bezel name="11.17" element="led"><bounds x="22" y="34" width="1" height="1" /></bezel> - <bezel name="11.18" element="led"><bounds x="22" y="36" width="1" height="1" /></bezel> - <bezel name="11.19" element="led"><bounds x="22" y="38" width="1" height="1" /></bezel> - <bezel name="11.20" element="led"><bounds x="22" y="40" width="1" height="1" /></bezel> - <bezel name="11.21" element="led"><bounds x="22" y="42" width="1" height="1" /></bezel> - <bezel name="11.22" element="led"><bounds x="22" y="44" width="1" height="1" /></bezel> - <bezel name="11.23" element="led"><bounds x="22" y="46" width="1" height="1" /></bezel> - <bezel name="11.24" element="led"><bounds x="22" y="48" width="1" height="1" /></bezel> - <bezel name="11.25" element="led"><bounds x="22" y="50" width="1" height="1" /></bezel> - <bezel name="11.26" element="led"><bounds x="22" y="52" width="1" height="1" /></bezel> - <bezel name="11.27" element="led"><bounds x="22" y="54" width="1" height="1" /></bezel> - <bezel name="11.28" element="led"><bounds x="22" y="56" width="1" height="1" /></bezel> - <bezel name="11.29" element="led"><bounds x="22" y="58" width="1" height="1" /></bezel> - <bezel name="11.30" element="led"><bounds x="22" y="60" width="1" height="1" /></bezel> - <bezel name="11.31" element="led"><bounds x="22" y="62" width="1" height="1" /></bezel> - - <bezel name="12.0" element="led"><bounds x="24" y="0" width="1" height="1" /></bezel> - <bezel name="12.1" element="led"><bounds x="24" y="2" width="1" height="1" /></bezel> - <bezel name="12.2" element="led"><bounds x="24" y="4" width="1" height="1" /></bezel> - <bezel name="12.3" element="led"><bounds x="24" y="6" width="1" height="1" /></bezel> - <bezel name="12.4" element="led"><bounds x="24" y="8" width="1" height="1" /></bezel> - <bezel name="12.5" element="led"><bounds x="24" y="10" width="1" height="1" /></bezel> - <bezel name="12.6" element="led"><bounds x="24" y="12" width="1" height="1" /></bezel> - <bezel name="12.7" element="led"><bounds x="24" y="14" width="1" height="1" /></bezel> - <bezel name="12.8" element="led"><bounds x="24" y="16" width="1" height="1" /></bezel> - <bezel name="12.9" element="led"><bounds x="24" y="18" width="1" height="1" /></bezel> - <bezel name="12.10" element="led"><bounds x="24" y="20" width="1" height="1" /></bezel> - <bezel name="12.11" element="led"><bounds x="24" y="22" width="1" height="1" /></bezel> - <bezel name="12.12" element="led"><bounds x="24" y="24" width="1" height="1" /></bezel> - <bezel name="12.13" element="led"><bounds x="24" y="26" width="1" height="1" /></bezel> - <bezel name="12.14" element="led"><bounds x="24" y="28" width="1" height="1" /></bezel> - <bezel name="12.15" element="led"><bounds x="24" y="30" width="1" height="1" /></bezel> - <bezel name="12.16" element="led"><bounds x="24" y="32" width="1" height="1" /></bezel> - <bezel name="12.17" element="led"><bounds x="24" y="34" width="1" height="1" /></bezel> - <bezel name="12.18" element="led"><bounds x="24" y="36" width="1" height="1" /></bezel> - <bezel name="12.19" element="led"><bounds x="24" y="38" width="1" height="1" /></bezel> - <bezel name="12.20" element="led"><bounds x="24" y="40" width="1" height="1" /></bezel> - <bezel name="12.21" element="led"><bounds x="24" y="42" width="1" height="1" /></bezel> - <bezel name="12.22" element="led"><bounds x="24" y="44" width="1" height="1" /></bezel> - <bezel name="12.23" element="led"><bounds x="24" y="46" width="1" height="1" /></bezel> - <bezel name="12.24" element="led"><bounds x="24" y="48" width="1" height="1" /></bezel> - <bezel name="12.25" element="led"><bounds x="24" y="50" width="1" height="1" /></bezel> - <bezel name="12.26" element="led"><bounds x="24" y="52" width="1" height="1" /></bezel> - <bezel name="12.27" element="led"><bounds x="24" y="54" width="1" height="1" /></bezel> - <bezel name="12.28" element="led"><bounds x="24" y="56" width="1" height="1" /></bezel> - <bezel name="12.29" element="led"><bounds x="24" y="58" width="1" height="1" /></bezel> - <bezel name="12.30" element="led"><bounds x="24" y="60" width="1" height="1" /></bezel> - <bezel name="12.31" element="led"><bounds x="24" y="62" width="1" height="1" /></bezel> - - <bezel name="13.0" element="led"><bounds x="26" y="0" width="1" height="1" /></bezel> - <bezel name="13.1" element="led"><bounds x="26" y="2" width="1" height="1" /></bezel> - <bezel name="13.2" element="led"><bounds x="26" y="4" width="1" height="1" /></bezel> - <bezel name="13.3" element="led"><bounds x="26" y="6" width="1" height="1" /></bezel> - <bezel name="13.4" element="led"><bounds x="26" y="8" width="1" height="1" /></bezel> - <bezel name="13.5" element="led"><bounds x="26" y="10" width="1" height="1" /></bezel> - <bezel name="13.6" element="led"><bounds x="26" y="12" width="1" height="1" /></bezel> - <bezel name="13.7" element="led"><bounds x="26" y="14" width="1" height="1" /></bezel> - <bezel name="13.8" element="led"><bounds x="26" y="16" width="1" height="1" /></bezel> - <bezel name="13.9" element="led"><bounds x="26" y="18" width="1" height="1" /></bezel> - <bezel name="13.10" element="led"><bounds x="26" y="20" width="1" height="1" /></bezel> - <bezel name="13.11" element="led"><bounds x="26" y="22" width="1" height="1" /></bezel> - <bezel name="13.12" element="led"><bounds x="26" y="24" width="1" height="1" /></bezel> - <bezel name="13.13" element="led"><bounds x="26" y="26" width="1" height="1" /></bezel> - <bezel name="13.14" element="led"><bounds x="26" y="28" width="1" height="1" /></bezel> - <bezel name="13.15" element="led"><bounds x="26" y="30" width="1" height="1" /></bezel> - <bezel name="13.16" element="led"><bounds x="26" y="32" width="1" height="1" /></bezel> - <bezel name="13.17" element="led"><bounds x="26" y="34" width="1" height="1" /></bezel> - <bezel name="13.18" element="led"><bounds x="26" y="36" width="1" height="1" /></bezel> - <bezel name="13.19" element="led"><bounds x="26" y="38" width="1" height="1" /></bezel> - <bezel name="13.20" element="led"><bounds x="26" y="40" width="1" height="1" /></bezel> - <bezel name="13.21" element="led"><bounds x="26" y="42" width="1" height="1" /></bezel> - <bezel name="13.22" element="led"><bounds x="26" y="44" width="1" height="1" /></bezel> - <bezel name="13.23" element="led"><bounds x="26" y="46" width="1" height="1" /></bezel> - <bezel name="13.24" element="led"><bounds x="26" y="48" width="1" height="1" /></bezel> - <bezel name="13.25" element="led"><bounds x="26" y="50" width="1" height="1" /></bezel> - <bezel name="13.26" element="led"><bounds x="26" y="52" width="1" height="1" /></bezel> - <bezel name="13.27" element="led"><bounds x="26" y="54" width="1" height="1" /></bezel> - <bezel name="13.28" element="led"><bounds x="26" y="56" width="1" height="1" /></bezel> - <bezel name="13.29" element="led"><bounds x="26" y="58" width="1" height="1" /></bezel> - <bezel name="13.30" element="led"><bounds x="26" y="60" width="1" height="1" /></bezel> - <bezel name="13.31" element="led"><bounds x="26" y="62" width="1" height="1" /></bezel> - - <bezel name="14.0" element="led"><bounds x="28" y="0" width="1" height="1" /></bezel> - <bezel name="14.1" element="led"><bounds x="28" y="2" width="1" height="1" /></bezel> - <bezel name="14.2" element="led"><bounds x="28" y="4" width="1" height="1" /></bezel> - <bezel name="14.3" element="led"><bounds x="28" y="6" width="1" height="1" /></bezel> - <bezel name="14.4" element="led"><bounds x="28" y="8" width="1" height="1" /></bezel> - <bezel name="14.5" element="led"><bounds x="28" y="10" width="1" height="1" /></bezel> - <bezel name="14.6" element="led"><bounds x="28" y="12" width="1" height="1" /></bezel> - <bezel name="14.7" element="led"><bounds x="28" y="14" width="1" height="1" /></bezel> - <bezel name="14.8" element="led"><bounds x="28" y="16" width="1" height="1" /></bezel> - <bezel name="14.9" element="led"><bounds x="28" y="18" width="1" height="1" /></bezel> - <bezel name="14.10" element="led"><bounds x="28" y="20" width="1" height="1" /></bezel> - <bezel name="14.11" element="led"><bounds x="28" y="22" width="1" height="1" /></bezel> - <bezel name="14.12" element="led"><bounds x="28" y="24" width="1" height="1" /></bezel> - <bezel name="14.13" element="led"><bounds x="28" y="26" width="1" height="1" /></bezel> - <bezel name="14.14" element="led"><bounds x="28" y="28" width="1" height="1" /></bezel> - <bezel name="14.15" element="led"><bounds x="28" y="30" width="1" height="1" /></bezel> - <bezel name="14.16" element="led"><bounds x="28" y="32" width="1" height="1" /></bezel> - <bezel name="14.17" element="led"><bounds x="28" y="34" width="1" height="1" /></bezel> - <bezel name="14.18" element="led"><bounds x="28" y="36" width="1" height="1" /></bezel> - <bezel name="14.19" element="led"><bounds x="28" y="38" width="1" height="1" /></bezel> - <bezel name="14.20" element="led"><bounds x="28" y="40" width="1" height="1" /></bezel> - <bezel name="14.21" element="led"><bounds x="28" y="42" width="1" height="1" /></bezel> - <bezel name="14.22" element="led"><bounds x="28" y="44" width="1" height="1" /></bezel> - <bezel name="14.23" element="led"><bounds x="28" y="46" width="1" height="1" /></bezel> - <bezel name="14.24" element="led"><bounds x="28" y="48" width="1" height="1" /></bezel> - <bezel name="14.25" element="led"><bounds x="28" y="50" width="1" height="1" /></bezel> - <bezel name="14.26" element="led"><bounds x="28" y="52" width="1" height="1" /></bezel> - <bezel name="14.27" element="led"><bounds x="28" y="54" width="1" height="1" /></bezel> - <bezel name="14.28" element="led"><bounds x="28" y="56" width="1" height="1" /></bezel> - <bezel name="14.29" element="led"><bounds x="28" y="58" width="1" height="1" /></bezel> - <bezel name="14.30" element="led"><bounds x="28" y="60" width="1" height="1" /></bezel> - <bezel name="14.31" element="led"><bounds x="28" y="62" width="1" height="1" /></bezel> - - <bezel name="15.0" element="led"><bounds x="30" y="0" width="1" height="1" /></bezel> - <bezel name="15.1" element="led"><bounds x="30" y="2" width="1" height="1" /></bezel> - <bezel name="15.2" element="led"><bounds x="30" y="4" width="1" height="1" /></bezel> - <bezel name="15.3" element="led"><bounds x="30" y="6" width="1" height="1" /></bezel> - <bezel name="15.4" element="led"><bounds x="30" y="8" width="1" height="1" /></bezel> - <bezel name="15.5" element="led"><bounds x="30" y="10" width="1" height="1" /></bezel> - <bezel name="15.6" element="led"><bounds x="30" y="12" width="1" height="1" /></bezel> - <bezel name="15.7" element="led"><bounds x="30" y="14" width="1" height="1" /></bezel> - <bezel name="15.8" element="led"><bounds x="30" y="16" width="1" height="1" /></bezel> - <bezel name="15.9" element="led"><bounds x="30" y="18" width="1" height="1" /></bezel> - <bezel name="15.10" element="led"><bounds x="30" y="20" width="1" height="1" /></bezel> - <bezel name="15.11" element="led"><bounds x="30" y="22" width="1" height="1" /></bezel> - <bezel name="15.12" element="led"><bounds x="30" y="24" width="1" height="1" /></bezel> - <bezel name="15.13" element="led"><bounds x="30" y="26" width="1" height="1" /></bezel> - <bezel name="15.14" element="led"><bounds x="30" y="28" width="1" height="1" /></bezel> - <bezel name="15.15" element="led"><bounds x="30" y="30" width="1" height="1" /></bezel> - <bezel name="15.16" element="led"><bounds x="30" y="32" width="1" height="1" /></bezel> - <bezel name="15.17" element="led"><bounds x="30" y="34" width="1" height="1" /></bezel> - <bezel name="15.18" element="led"><bounds x="30" y="36" width="1" height="1" /></bezel> - <bezel name="15.19" element="led"><bounds x="30" y="38" width="1" height="1" /></bezel> - <bezel name="15.20" element="led"><bounds x="30" y="40" width="1" height="1" /></bezel> - <bezel name="15.21" element="led"><bounds x="30" y="42" width="1" height="1" /></bezel> - <bezel name="15.22" element="led"><bounds x="30" y="44" width="1" height="1" /></bezel> - <bezel name="15.23" element="led"><bounds x="30" y="46" width="1" height="1" /></bezel> - <bezel name="15.24" element="led"><bounds x="30" y="48" width="1" height="1" /></bezel> - <bezel name="15.25" element="led"><bounds x="30" y="50" width="1" height="1" /></bezel> - <bezel name="15.26" element="led"><bounds x="30" y="52" width="1" height="1" /></bezel> - <bezel name="15.27" element="led"><bounds x="30" y="54" width="1" height="1" /></bezel> - <bezel name="15.28" element="led"><bounds x="30" y="56" width="1" height="1" /></bezel> - <bezel name="15.29" element="led"><bounds x="30" y="58" width="1" height="1" /></bezel> - <bezel name="15.30" element="led"><bounds x="30" y="60" width="1" height="1" /></bezel> - <bezel name="15.31" element="led"><bounds x="30" y="62" width="1" height="1" /></bezel> + <repeat count="32"> + <param name="x" start="0" increment="1" /> + <bezel name="~y~.~x~" element="led"><bounds x="~x~" y="~y~" width="0.5" height="0.5" /></bezel> + </repeat> + </repeat> </view> </mamelayout> diff --git a/src/mame/layout/hh_sm500_test.lay b/src/mame/layout/hh_sm500_test.lay index 4ad1c920600..2c6a0ccd988 100644 --- a/src/mame/layout/hh_sm500_test.lay +++ b/src/mame/layout/hh_sm500_test.lay @@ -15,96 +15,30 @@ <!-- build screen --> <view name="Test Layout"> - <bounds left="0" right="64" top="0" bottom="64" /> + <bounds left="0" right="10" top="0" bottom="10" /> <bezel element="static_black"> - <bounds left="0" right="64" top="0" bottom="64" /> + <bounds left="0" right="10" top="0" bottom="10" /> </bezel> <!-- max 9*4*2 matrix --> - <!-- h1 --> - - <bezel name="0.0.0" element="led"><bounds x="0" y="0" width="1" height="1" /></bezel> - <bezel name="1.0.0" element="led"><bounds x="0" y="2" width="1" height="1" /></bezel> - <bezel name="2.0.0" element="led"><bounds x="0" y="4" width="1" height="1" /></bezel> - <bezel name="3.0.0" element="led"><bounds x="0" y="6" width="1" height="1" /></bezel> - <bezel name="4.0.0" element="led"><bounds x="0" y="8" width="1" height="1" /></bezel> - <bezel name="5.0.0" element="led"><bounds x="0" y="10" width="1" height="1" /></bezel> - <bezel name="6.0.0" element="led"><bounds x="0" y="12" width="1" height="1" /></bezel> - <bezel name="7.0.0" element="led"><bounds x="0" y="14" width="1" height="1" /></bezel> - <bezel name="8.0.0" element="led"><bounds x="0" y="16" width="1" height="1" /></bezel> - - <bezel name="0.1.0" element="led"><bounds x="2" y="0" width="1" height="1" /></bezel> - <bezel name="1.1.0" element="led"><bounds x="2" y="2" width="1" height="1" /></bezel> - <bezel name="2.1.0" element="led"><bounds x="2" y="4" width="1" height="1" /></bezel> - <bezel name="3.1.0" element="led"><bounds x="2" y="6" width="1" height="1" /></bezel> - <bezel name="4.1.0" element="led"><bounds x="2" y="8" width="1" height="1" /></bezel> - <bezel name="5.1.0" element="led"><bounds x="2" y="10" width="1" height="1" /></bezel> - <bezel name="6.1.0" element="led"><bounds x="2" y="12" width="1" height="1" /></bezel> - <bezel name="7.1.0" element="led"><bounds x="2" y="14" width="1" height="1" /></bezel> - <bezel name="8.1.0" element="led"><bounds x="2" y="16" width="1" height="1" /></bezel> - - <bezel name="0.2.0" element="led"><bounds x="4" y="0" width="1" height="1" /></bezel> - <bezel name="1.2.0" element="led"><bounds x="4" y="2" width="1" height="1" /></bezel> - <bezel name="2.2.0" element="led"><bounds x="4" y="4" width="1" height="1" /></bezel> - <bezel name="3.2.0" element="led"><bounds x="4" y="6" width="1" height="1" /></bezel> - <bezel name="4.2.0" element="led"><bounds x="4" y="8" width="1" height="1" /></bezel> - <bezel name="5.2.0" element="led"><bounds x="4" y="10" width="1" height="1" /></bezel> - <bezel name="6.2.0" element="led"><bounds x="4" y="12" width="1" height="1" /></bezel> - <bezel name="7.2.0" element="led"><bounds x="4" y="14" width="1" height="1" /></bezel> - <bezel name="8.2.0" element="led"><bounds x="4" y="16" width="1" height="1" /></bezel> - - <bezel name="0.3.0" element="led"><bounds x="6" y="0" width="1" height="1" /></bezel> - <bezel name="1.3.0" element="led"><bounds x="6" y="2" width="1" height="1" /></bezel> - <bezel name="2.3.0" element="led"><bounds x="6" y="4" width="1" height="1" /></bezel> - <bezel name="3.3.0" element="led"><bounds x="6" y="6" width="1" height="1" /></bezel> - <bezel name="4.3.0" element="led"><bounds x="6" y="8" width="1" height="1" /></bezel> - <bezel name="5.3.0" element="led"><bounds x="6" y="10" width="1" height="1" /></bezel> - <bezel name="6.3.0" element="led"><bounds x="6" y="12" width="1" height="1" /></bezel> - <bezel name="7.3.0" element="led"><bounds x="6" y="14" width="1" height="1" /></bezel> - <bezel name="8.3.0" element="led"><bounds x="6" y="16" width="1" height="1" /></bezel> - - <!-- h2 --> - - <bezel name="0.0.1" element="led"><bounds x="10" y="0" width="1" height="1" /></bezel> - <bezel name="1.0.1" element="led"><bounds x="10" y="2" width="1" height="1" /></bezel> - <bezel name="2.0.1" element="led"><bounds x="10" y="4" width="1" height="1" /></bezel> - <bezel name="3.0.1" element="led"><bounds x="10" y="6" width="1" height="1" /></bezel> - <bezel name="4.0.1" element="led"><bounds x="10" y="8" width="1" height="1" /></bezel> - <bezel name="5.0.1" element="led"><bounds x="10" y="10" width="1" height="1" /></bezel> - <bezel name="6.0.1" element="led"><bounds x="10" y="12" width="1" height="1" /></bezel> - <bezel name="7.0.1" element="led"><bounds x="10" y="14" width="1" height="1" /></bezel> - <bezel name="8.0.1" element="led"><bounds x="10" y="16" width="1" height="1" /></bezel> - - <bezel name="0.1.1" element="led"><bounds x="12" y="0" width="1" height="1" /></bezel> - <bezel name="1.1.1" element="led"><bounds x="12" y="2" width="1" height="1" /></bezel> - <bezel name="2.1.1" element="led"><bounds x="12" y="4" width="1" height="1" /></bezel> - <bezel name="3.1.1" element="led"><bounds x="12" y="6" width="1" height="1" /></bezel> - <bezel name="4.1.1" element="led"><bounds x="12" y="8" width="1" height="1" /></bezel> - <bezel name="5.1.1" element="led"><bounds x="12" y="10" width="1" height="1" /></bezel> - <bezel name="6.1.1" element="led"><bounds x="12" y="12" width="1" height="1" /></bezel> - <bezel name="7.1.1" element="led"><bounds x="12" y="14" width="1" height="1" /></bezel> - <bezel name="8.1.1" element="led"><bounds x="12" y="16" width="1" height="1" /></bezel> - - <bezel name="0.2.1" element="led"><bounds x="14" y="0" width="1" height="1" /></bezel> - <bezel name="1.2.1" element="led"><bounds x="14" y="2" width="1" height="1" /></bezel> - <bezel name="2.2.1" element="led"><bounds x="14" y="4" width="1" height="1" /></bezel> - <bezel name="3.2.1" element="led"><bounds x="14" y="6" width="1" height="1" /></bezel> - <bezel name="4.2.1" element="led"><bounds x="14" y="8" width="1" height="1" /></bezel> - <bezel name="5.2.1" element="led"><bounds x="14" y="10" width="1" height="1" /></bezel> - <bezel name="6.2.1" element="led"><bounds x="14" y="12" width="1" height="1" /></bezel> - <bezel name="7.2.1" element="led"><bounds x="14" y="14" width="1" height="1" /></bezel> - <bezel name="8.2.1" element="led"><bounds x="14" y="16" width="1" height="1" /></bezel> - - <bezel name="0.3.1" element="led"><bounds x="16" y="0" width="1" height="1" /></bezel> - <bezel name="1.3.1" element="led"><bounds x="16" y="2" width="1" height="1" /></bezel> - <bezel name="2.3.1" element="led"><bounds x="16" y="4" width="1" height="1" /></bezel> - <bezel name="3.3.1" element="led"><bounds x="16" y="6" width="1" height="1" /></bezel> - <bezel name="4.3.1" element="led"><bounds x="16" y="8" width="1" height="1" /></bezel> - <bezel name="5.3.1" element="led"><bounds x="16" y="10" width="1" height="1" /></bezel> - <bezel name="6.3.1" element="led"><bounds x="16" y="12" width="1" height="1" /></bezel> - <bezel name="7.3.1" element="led"><bounds x="16" y="14" width="1" height="1" /></bezel> - <bezel name="8.3.1" element="led"><bounds x="16" y="16" width="1" height="1" /></bezel> + <repeat count="9"> + <param name="y" start="0" increment="1" /> + + <!-- h1 --> + <repeat count="4"> + <param name="x" start="0" increment="1" /> + <param name="p" start="0" increment="1" /> + <bezel name="~y~.~x~.0" element="led"><bounds x="~p~" y="~y~" width="0.5" height="0.5" /></bezel> + </repeat> + + <!-- h2 --> + <repeat count="4"> + <param name="x" start="0" increment="1" /> + <param name="p" start="5" increment="1" /> + <bezel name="~y~.~x~.1" element="led"><bounds x="~p~" y="~y~" width="0.5" height="0.5" /></bezel> + </repeat> + </repeat> </view> </mamelayout> diff --git a/src/mame/layout/hh_sm510_test.lay b/src/mame/layout/hh_sm510_test.lay index 48a3c7a282a..3fdf9bdb40a 100644 --- a/src/mame/layout/hh_sm510_test.lay +++ b/src/mame/layout/hh_sm510_test.lay @@ -15,292 +15,44 @@ <!-- build screen --> <view name="Test Layout"> - <bounds left="0" right="64" top="0" bottom="64" /> + <bounds left="0" right="20" top="0" bottom="16" /> <bezel element="static_black"> - <bounds left="0" right="64" top="0" bottom="64" /> + <bounds left="0" right="20" top="0" bottom="16" /> </bezel> <!-- max 4*16*4 matrix --> - <!-- a --> - - <bezel name="0.0.0" element="led"><bounds x="0" y="0" width="1" height="1" /></bezel> - <bezel name="0.1.0" element="led"><bounds x="0" y="2" width="1" height="1" /></bezel> - <bezel name="0.2.0" element="led"><bounds x="0" y="4" width="1" height="1" /></bezel> - <bezel name="0.3.0" element="led"><bounds x="0" y="6" width="1" height="1" /></bezel> - <bezel name="0.4.0" element="led"><bounds x="0" y="8" width="1" height="1" /></bezel> - <bezel name="0.5.0" element="led"><bounds x="0" y="10" width="1" height="1" /></bezel> - <bezel name="0.6.0" element="led"><bounds x="0" y="12" width="1" height="1" /></bezel> - <bezel name="0.7.0" element="led"><bounds x="0" y="14" width="1" height="1" /></bezel> - <bezel name="0.8.0" element="led"><bounds x="0" y="16" width="1" height="1" /></bezel> - <bezel name="0.9.0" element="led"><bounds x="0" y="18" width="1" height="1" /></bezel> - <bezel name="0.10.0" element="led"><bounds x="0" y="20" width="1" height="1" /></bezel> - <bezel name="0.11.0" element="led"><bounds x="0" y="22" width="1" height="1" /></bezel> - <bezel name="0.12.0" element="led"><bounds x="0" y="24" width="1" height="1" /></bezel> - <bezel name="0.13.0" element="led"><bounds x="0" y="26" width="1" height="1" /></bezel> - <bezel name="0.14.0" element="led"><bounds x="0" y="28" width="1" height="1" /></bezel> - <bezel name="0.15.0" element="led"><bounds x="0" y="30" width="1" height="1" /></bezel> - - <bezel name="0.0.1" element="led"><bounds x="2" y="0" width="1" height="1" /></bezel> - <bezel name="0.1.1" element="led"><bounds x="2" y="2" width="1" height="1" /></bezel> - <bezel name="0.2.1" element="led"><bounds x="2" y="4" width="1" height="1" /></bezel> - <bezel name="0.3.1" element="led"><bounds x="2" y="6" width="1" height="1" /></bezel> - <bezel name="0.4.1" element="led"><bounds x="2" y="8" width="1" height="1" /></bezel> - <bezel name="0.5.1" element="led"><bounds x="2" y="10" width="1" height="1" /></bezel> - <bezel name="0.6.1" element="led"><bounds x="2" y="12" width="1" height="1" /></bezel> - <bezel name="0.7.1" element="led"><bounds x="2" y="14" width="1" height="1" /></bezel> - <bezel name="0.8.1" element="led"><bounds x="2" y="16" width="1" height="1" /></bezel> - <bezel name="0.9.1" element="led"><bounds x="2" y="18" width="1" height="1" /></bezel> - <bezel name="0.10.1" element="led"><bounds x="2" y="20" width="1" height="1" /></bezel> - <bezel name="0.11.1" element="led"><bounds x="2" y="22" width="1" height="1" /></bezel> - <bezel name="0.12.1" element="led"><bounds x="2" y="24" width="1" height="1" /></bezel> - <bezel name="0.13.1" element="led"><bounds x="2" y="26" width="1" height="1" /></bezel> - <bezel name="0.14.1" element="led"><bounds x="2" y="28" width="1" height="1" /></bezel> - <bezel name="0.15.1" element="led"><bounds x="2" y="30" width="1" height="1" /></bezel> - - <bezel name="0.0.2" element="led"><bounds x="4" y="0" width="1" height="1" /></bezel> - <bezel name="0.1.2" element="led"><bounds x="4" y="2" width="1" height="1" /></bezel> - <bezel name="0.2.2" element="led"><bounds x="4" y="4" width="1" height="1" /></bezel> - <bezel name="0.3.2" element="led"><bounds x="4" y="6" width="1" height="1" /></bezel> - <bezel name="0.4.2" element="led"><bounds x="4" y="8" width="1" height="1" /></bezel> - <bezel name="0.5.2" element="led"><bounds x="4" y="10" width="1" height="1" /></bezel> - <bezel name="0.6.2" element="led"><bounds x="4" y="12" width="1" height="1" /></bezel> - <bezel name="0.7.2" element="led"><bounds x="4" y="14" width="1" height="1" /></bezel> - <bezel name="0.8.2" element="led"><bounds x="4" y="16" width="1" height="1" /></bezel> - <bezel name="0.9.2" element="led"><bounds x="4" y="18" width="1" height="1" /></bezel> - <bezel name="0.10.2" element="led"><bounds x="4" y="20" width="1" height="1" /></bezel> - <bezel name="0.11.2" element="led"><bounds x="4" y="22" width="1" height="1" /></bezel> - <bezel name="0.12.2" element="led"><bounds x="4" y="24" width="1" height="1" /></bezel> - <bezel name="0.13.2" element="led"><bounds x="4" y="26" width="1" height="1" /></bezel> - <bezel name="0.14.2" element="led"><bounds x="4" y="28" width="1" height="1" /></bezel> - <bezel name="0.15.2" element="led"><bounds x="4" y="30" width="1" height="1" /></bezel> - - <bezel name="0.0.3" element="led"><bounds x="6" y="0" width="1" height="1" /></bezel> - <bezel name="0.1.3" element="led"><bounds x="6" y="2" width="1" height="1" /></bezel> - <bezel name="0.2.3" element="led"><bounds x="6" y="4" width="1" height="1" /></bezel> - <bezel name="0.3.3" element="led"><bounds x="6" y="6" width="1" height="1" /></bezel> - <bezel name="0.4.3" element="led"><bounds x="6" y="8" width="1" height="1" /></bezel> - <bezel name="0.5.3" element="led"><bounds x="6" y="10" width="1" height="1" /></bezel> - <bezel name="0.6.3" element="led"><bounds x="6" y="12" width="1" height="1" /></bezel> - <bezel name="0.7.3" element="led"><bounds x="6" y="14" width="1" height="1" /></bezel> - <bezel name="0.8.3" element="led"><bounds x="6" y="16" width="1" height="1" /></bezel> - <bezel name="0.9.3" element="led"><bounds x="6" y="18" width="1" height="1" /></bezel> - <bezel name="0.10.3" element="led"><bounds x="6" y="20" width="1" height="1" /></bezel> - <bezel name="0.11.3" element="led"><bounds x="6" y="22" width="1" height="1" /></bezel> - <bezel name="0.12.3" element="led"><bounds x="6" y="24" width="1" height="1" /></bezel> - <bezel name="0.13.3" element="led"><bounds x="6" y="26" width="1" height="1" /></bezel> - <bezel name="0.14.3" element="led"><bounds x="6" y="28" width="1" height="1" /></bezel> - <bezel name="0.15.3" element="led"><bounds x="6" y="30" width="1" height="1" /></bezel> - - <!-- b --> - - <bezel name="1.0.0" element="led"><bounds x="10" y="0" width="1" height="1" /></bezel> - <bezel name="1.1.0" element="led"><bounds x="10" y="2" width="1" height="1" /></bezel> - <bezel name="1.2.0" element="led"><bounds x="10" y="4" width="1" height="1" /></bezel> - <bezel name="1.3.0" element="led"><bounds x="10" y="6" width="1" height="1" /></bezel> - <bezel name="1.4.0" element="led"><bounds x="10" y="8" width="1" height="1" /></bezel> - <bezel name="1.5.0" element="led"><bounds x="10" y="10" width="1" height="1" /></bezel> - <bezel name="1.6.0" element="led"><bounds x="10" y="12" width="1" height="1" /></bezel> - <bezel name="1.7.0" element="led"><bounds x="10" y="14" width="1" height="1" /></bezel> - <bezel name="1.8.0" element="led"><bounds x="10" y="16" width="1" height="1" /></bezel> - <bezel name="1.9.0" element="led"><bounds x="10" y="18" width="1" height="1" /></bezel> - <bezel name="1.10.0" element="led"><bounds x="10" y="20" width="1" height="1" /></bezel> - <bezel name="1.11.0" element="led"><bounds x="10" y="22" width="1" height="1" /></bezel> - <bezel name="1.12.0" element="led"><bounds x="10" y="24" width="1" height="1" /></bezel> - <bezel name="1.13.0" element="led"><bounds x="10" y="26" width="1" height="1" /></bezel> - <bezel name="1.14.0" element="led"><bounds x="10" y="28" width="1" height="1" /></bezel> - <bezel name="1.15.0" element="led"><bounds x="10" y="30" width="1" height="1" /></bezel> - - <bezel name="1.0.1" element="led"><bounds x="12" y="0" width="1" height="1" /></bezel> - <bezel name="1.1.1" element="led"><bounds x="12" y="2" width="1" height="1" /></bezel> - <bezel name="1.2.1" element="led"><bounds x="12" y="4" width="1" height="1" /></bezel> - <bezel name="1.3.1" element="led"><bounds x="12" y="6" width="1" height="1" /></bezel> - <bezel name="1.4.1" element="led"><bounds x="12" y="8" width="1" height="1" /></bezel> - <bezel name="1.5.1" element="led"><bounds x="12" y="10" width="1" height="1" /></bezel> - <bezel name="1.6.1" element="led"><bounds x="12" y="12" width="1" height="1" /></bezel> - <bezel name="1.7.1" element="led"><bounds x="12" y="14" width="1" height="1" /></bezel> - <bezel name="1.8.1" element="led"><bounds x="12" y="16" width="1" height="1" /></bezel> - <bezel name="1.9.1" element="led"><bounds x="12" y="18" width="1" height="1" /></bezel> - <bezel name="1.10.1" element="led"><bounds x="12" y="20" width="1" height="1" /></bezel> - <bezel name="1.11.1" element="led"><bounds x="12" y="22" width="1" height="1" /></bezel> - <bezel name="1.12.1" element="led"><bounds x="12" y="24" width="1" height="1" /></bezel> - <bezel name="1.13.1" element="led"><bounds x="12" y="26" width="1" height="1" /></bezel> - <bezel name="1.14.1" element="led"><bounds x="12" y="28" width="1" height="1" /></bezel> - <bezel name="1.15.1" element="led"><bounds x="12" y="30" width="1" height="1" /></bezel> - - <bezel name="1.0.2" element="led"><bounds x="14" y="0" width="1" height="1" /></bezel> - <bezel name="1.1.2" element="led"><bounds x="14" y="2" width="1" height="1" /></bezel> - <bezel name="1.2.2" element="led"><bounds x="14" y="4" width="1" height="1" /></bezel> - <bezel name="1.3.2" element="led"><bounds x="14" y="6" width="1" height="1" /></bezel> - <bezel name="1.4.2" element="led"><bounds x="14" y="8" width="1" height="1" /></bezel> - <bezel name="1.5.2" element="led"><bounds x="14" y="10" width="1" height="1" /></bezel> - <bezel name="1.6.2" element="led"><bounds x="14" y="12" width="1" height="1" /></bezel> - <bezel name="1.7.2" element="led"><bounds x="14" y="14" width="1" height="1" /></bezel> - <bezel name="1.8.2" element="led"><bounds x="14" y="16" width="1" height="1" /></bezel> - <bezel name="1.9.2" element="led"><bounds x="14" y="18" width="1" height="1" /></bezel> - <bezel name="1.10.2" element="led"><bounds x="14" y="20" width="1" height="1" /></bezel> - <bezel name="1.11.2" element="led"><bounds x="14" y="22" width="1" height="1" /></bezel> - <bezel name="1.12.2" element="led"><bounds x="14" y="24" width="1" height="1" /></bezel> - <bezel name="1.13.2" element="led"><bounds x="14" y="26" width="1" height="1" /></bezel> - <bezel name="1.14.2" element="led"><bounds x="14" y="28" width="1" height="1" /></bezel> - <bezel name="1.15.2" element="led"><bounds x="14" y="30" width="1" height="1" /></bezel> - - <bezel name="1.0.3" element="led"><bounds x="16" y="0" width="1" height="1" /></bezel> - <bezel name="1.1.3" element="led"><bounds x="16" y="2" width="1" height="1" /></bezel> - <bezel name="1.2.3" element="led"><bounds x="16" y="4" width="1" height="1" /></bezel> - <bezel name="1.3.3" element="led"><bounds x="16" y="6" width="1" height="1" /></bezel> - <bezel name="1.4.3" element="led"><bounds x="16" y="8" width="1" height="1" /></bezel> - <bezel name="1.5.3" element="led"><bounds x="16" y="10" width="1" height="1" /></bezel> - <bezel name="1.6.3" element="led"><bounds x="16" y="12" width="1" height="1" /></bezel> - <bezel name="1.7.3" element="led"><bounds x="16" y="14" width="1" height="1" /></bezel> - <bezel name="1.8.3" element="led"><bounds x="16" y="16" width="1" height="1" /></bezel> - <bezel name="1.9.3" element="led"><bounds x="16" y="18" width="1" height="1" /></bezel> - <bezel name="1.10.3" element="led"><bounds x="16" y="20" width="1" height="1" /></bezel> - <bezel name="1.11.3" element="led"><bounds x="16" y="22" width="1" height="1" /></bezel> - <bezel name="1.12.3" element="led"><bounds x="16" y="24" width="1" height="1" /></bezel> - <bezel name="1.13.3" element="led"><bounds x="16" y="26" width="1" height="1" /></bezel> - <bezel name="1.14.3" element="led"><bounds x="16" y="28" width="1" height="1" /></bezel> - <bezel name="1.15.3" element="led"><bounds x="16" y="30" width="1" height="1" /></bezel> - - <!-- bs --> - - <bezel name="2.0.0" element="led"><bounds x="20" y="0" width="1" height="1" /></bezel> - <bezel name="2.1.0" element="led"><bounds x="20" y="2" width="1" height="1" /></bezel> - <bezel name="2.2.0" element="led"><bounds x="20" y="4" width="1" height="1" /></bezel> - <bezel name="2.3.0" element="led"><bounds x="20" y="6" width="1" height="1" /></bezel> - <bezel name="2.4.0" element="led"><bounds x="20" y="8" width="1" height="1" /></bezel> - <bezel name="2.5.0" element="led"><bounds x="20" y="10" width="1" height="1" /></bezel> - <bezel name="2.6.0" element="led"><bounds x="20" y="12" width="1" height="1" /></bezel> - <bezel name="2.7.0" element="led"><bounds x="20" y="14" width="1" height="1" /></bezel> - <bezel name="2.8.0" element="led"><bounds x="20" y="16" width="1" height="1" /></bezel> - <bezel name="2.9.0" element="led"><bounds x="20" y="18" width="1" height="1" /></bezel> - <bezel name="2.10.0" element="led"><bounds x="20" y="20" width="1" height="1" /></bezel> - <bezel name="2.11.0" element="led"><bounds x="20" y="22" width="1" height="1" /></bezel> - <bezel name="2.12.0" element="led"><bounds x="20" y="24" width="1" height="1" /></bezel> - <bezel name="2.13.0" element="led"><bounds x="20" y="26" width="1" height="1" /></bezel> - <bezel name="2.14.0" element="led"><bounds x="20" y="28" width="1" height="1" /></bezel> - <bezel name="2.15.0" element="led"><bounds x="20" y="30" width="1" height="1" /></bezel> - - <bezel name="2.0.1" element="led"><bounds x="22" y="0" width="1" height="1" /></bezel> - <bezel name="2.1.1" element="led"><bounds x="22" y="2" width="1" height="1" /></bezel> - <bezel name="2.2.1" element="led"><bounds x="22" y="4" width="1" height="1" /></bezel> - <bezel name="2.3.1" element="led"><bounds x="22" y="6" width="1" height="1" /></bezel> - <bezel name="2.4.1" element="led"><bounds x="22" y="8" width="1" height="1" /></bezel> - <bezel name="2.5.1" element="led"><bounds x="22" y="10" width="1" height="1" /></bezel> - <bezel name="2.6.1" element="led"><bounds x="22" y="12" width="1" height="1" /></bezel> - <bezel name="2.7.1" element="led"><bounds x="22" y="14" width="1" height="1" /></bezel> - <bezel name="2.8.1" element="led"><bounds x="22" y="16" width="1" height="1" /></bezel> - <bezel name="2.9.1" element="led"><bounds x="22" y="18" width="1" height="1" /></bezel> - <bezel name="2.10.1" element="led"><bounds x="22" y="20" width="1" height="1" /></bezel> - <bezel name="2.11.1" element="led"><bounds x="22" y="22" width="1" height="1" /></bezel> - <bezel name="2.12.1" element="led"><bounds x="22" y="24" width="1" height="1" /></bezel> - <bezel name="2.13.1" element="led"><bounds x="22" y="26" width="1" height="1" /></bezel> - <bezel name="2.14.1" element="led"><bounds x="22" y="28" width="1" height="1" /></bezel> - <bezel name="2.15.1" element="led"><bounds x="22" y="30" width="1" height="1" /></bezel> - - <bezel name="2.0.2" element="led"><bounds x="24" y="0" width="1" height="1" /></bezel> - <bezel name="2.1.2" element="led"><bounds x="24" y="2" width="1" height="1" /></bezel> - <bezel name="2.2.2" element="led"><bounds x="24" y="4" width="1" height="1" /></bezel> - <bezel name="2.3.2" element="led"><bounds x="24" y="6" width="1" height="1" /></bezel> - <bezel name="2.4.2" element="led"><bounds x="24" y="8" width="1" height="1" /></bezel> - <bezel name="2.5.2" element="led"><bounds x="24" y="10" width="1" height="1" /></bezel> - <bezel name="2.6.2" element="led"><bounds x="24" y="12" width="1" height="1" /></bezel> - <bezel name="2.7.2" element="led"><bounds x="24" y="14" width="1" height="1" /></bezel> - <bezel name="2.8.2" element="led"><bounds x="24" y="16" width="1" height="1" /></bezel> - <bezel name="2.9.2" element="led"><bounds x="24" y="18" width="1" height="1" /></bezel> - <bezel name="2.10.2" element="led"><bounds x="24" y="20" width="1" height="1" /></bezel> - <bezel name="2.11.2" element="led"><bounds x="24" y="22" width="1" height="1" /></bezel> - <bezel name="2.12.2" element="led"><bounds x="24" y="24" width="1" height="1" /></bezel> - <bezel name="2.13.2" element="led"><bounds x="24" y="26" width="1" height="1" /></bezel> - <bezel name="2.14.2" element="led"><bounds x="24" y="28" width="1" height="1" /></bezel> - <bezel name="2.15.2" element="led"><bounds x="24" y="30" width="1" height="1" /></bezel> - - <bezel name="2.0.3" element="led"><bounds x="26" y="0" width="1" height="1" /></bezel> - <bezel name="2.1.3" element="led"><bounds x="26" y="2" width="1" height="1" /></bezel> - <bezel name="2.2.3" element="led"><bounds x="26" y="4" width="1" height="1" /></bezel> - <bezel name="2.3.3" element="led"><bounds x="26" y="6" width="1" height="1" /></bezel> - <bezel name="2.4.3" element="led"><bounds x="26" y="8" width="1" height="1" /></bezel> - <bezel name="2.5.3" element="led"><bounds x="26" y="10" width="1" height="1" /></bezel> - <bezel name="2.6.3" element="led"><bounds x="26" y="12" width="1" height="1" /></bezel> - <bezel name="2.7.3" element="led"><bounds x="26" y="14" width="1" height="1" /></bezel> - <bezel name="2.8.3" element="led"><bounds x="26" y="16" width="1" height="1" /></bezel> - <bezel name="2.9.3" element="led"><bounds x="26" y="18" width="1" height="1" /></bezel> - <bezel name="2.10.3" element="led"><bounds x="26" y="20" width="1" height="1" /></bezel> - <bezel name="2.11.3" element="led"><bounds x="26" y="22" width="1" height="1" /></bezel> - <bezel name="2.12.3" element="led"><bounds x="26" y="24" width="1" height="1" /></bezel> - <bezel name="2.13.3" element="led"><bounds x="26" y="26" width="1" height="1" /></bezel> - <bezel name="2.14.3" element="led"><bounds x="26" y="28" width="1" height="1" /></bezel> - <bezel name="2.15.3" element="led"><bounds x="26" y="30" width="1" height="1" /></bezel> - - <!-- c --> - - <bezel name="3.0.0" element="led"><bounds x="30" y="0" width="1" height="1" /></bezel> - <bezel name="3.1.0" element="led"><bounds x="30" y="2" width="1" height="1" /></bezel> - <bezel name="3.2.0" element="led"><bounds x="30" y="4" width="1" height="1" /></bezel> - <bezel name="3.3.0" element="led"><bounds x="30" y="6" width="1" height="1" /></bezel> - <bezel name="3.4.0" element="led"><bounds x="30" y="8" width="1" height="1" /></bezel> - <bezel name="3.5.0" element="led"><bounds x="30" y="10" width="1" height="1" /></bezel> - <bezel name="3.6.0" element="led"><bounds x="30" y="12" width="1" height="1" /></bezel> - <bezel name="3.7.0" element="led"><bounds x="30" y="14" width="1" height="1" /></bezel> - <bezel name="3.8.0" element="led"><bounds x="30" y="16" width="1" height="1" /></bezel> - <bezel name="3.9.0" element="led"><bounds x="30" y="18" width="1" height="1" /></bezel> - <bezel name="3.10.0" element="led"><bounds x="30" y="20" width="1" height="1" /></bezel> - <bezel name="3.11.0" element="led"><bounds x="30" y="22" width="1" height="1" /></bezel> - <bezel name="3.12.0" element="led"><bounds x="30" y="24" width="1" height="1" /></bezel> - <bezel name="3.13.0" element="led"><bounds x="30" y="26" width="1" height="1" /></bezel> - <bezel name="3.14.0" element="led"><bounds x="30" y="28" width="1" height="1" /></bezel> - <bezel name="3.15.0" element="led"><bounds x="30" y="30" width="1" height="1" /></bezel> - - <bezel name="3.0.1" element="led"><bounds x="32" y="0" width="1" height="1" /></bezel> - <bezel name="3.1.1" element="led"><bounds x="32" y="2" width="1" height="1" /></bezel> - <bezel name="3.2.1" element="led"><bounds x="32" y="4" width="1" height="1" /></bezel> - <bezel name="3.3.1" element="led"><bounds x="32" y="6" width="1" height="1" /></bezel> - <bezel name="3.4.1" element="led"><bounds x="32" y="8" width="1" height="1" /></bezel> - <bezel name="3.5.1" element="led"><bounds x="32" y="10" width="1" height="1" /></bezel> - <bezel name="3.6.1" element="led"><bounds x="32" y="12" width="1" height="1" /></bezel> - <bezel name="3.7.1" element="led"><bounds x="32" y="14" width="1" height="1" /></bezel> - <bezel name="3.8.1" element="led"><bounds x="32" y="16" width="1" height="1" /></bezel> - <bezel name="3.9.1" element="led"><bounds x="32" y="18" width="1" height="1" /></bezel> - <bezel name="3.10.1" element="led"><bounds x="32" y="20" width="1" height="1" /></bezel> - <bezel name="3.11.1" element="led"><bounds x="32" y="22" width="1" height="1" /></bezel> - <bezel name="3.12.1" element="led"><bounds x="32" y="24" width="1" height="1" /></bezel> - <bezel name="3.13.1" element="led"><bounds x="32" y="26" width="1" height="1" /></bezel> - <bezel name="3.14.1" element="led"><bounds x="32" y="28" width="1" height="1" /></bezel> - <bezel name="3.15.1" element="led"><bounds x="32" y="30" width="1" height="1" /></bezel> - - <bezel name="3.0.2" element="led"><bounds x="34" y="0" width="1" height="1" /></bezel> - <bezel name="3.1.2" element="led"><bounds x="34" y="2" width="1" height="1" /></bezel> - <bezel name="3.2.2" element="led"><bounds x="34" y="4" width="1" height="1" /></bezel> - <bezel name="3.3.2" element="led"><bounds x="34" y="6" width="1" height="1" /></bezel> - <bezel name="3.4.2" element="led"><bounds x="34" y="8" width="1" height="1" /></bezel> - <bezel name="3.5.2" element="led"><bounds x="34" y="10" width="1" height="1" /></bezel> - <bezel name="3.6.2" element="led"><bounds x="34" y="12" width="1" height="1" /></bezel> - <bezel name="3.7.2" element="led"><bounds x="34" y="14" width="1" height="1" /></bezel> - <bezel name="3.8.2" element="led"><bounds x="34" y="16" width="1" height="1" /></bezel> - <bezel name="3.9.2" element="led"><bounds x="34" y="18" width="1" height="1" /></bezel> - <bezel name="3.10.2" element="led"><bounds x="34" y="20" width="1" height="1" /></bezel> - <bezel name="3.11.2" element="led"><bounds x="34" y="22" width="1" height="1" /></bezel> - <bezel name="3.12.2" element="led"><bounds x="34" y="24" width="1" height="1" /></bezel> - <bezel name="3.13.2" element="led"><bounds x="34" y="26" width="1" height="1" /></bezel> - <bezel name="3.14.2" element="led"><bounds x="34" y="28" width="1" height="1" /></bezel> - <bezel name="3.15.2" element="led"><bounds x="34" y="30" width="1" height="1" /></bezel> - - <bezel name="3.0.3" element="led"><bounds x="36" y="0" width="1" height="1" /></bezel> - <bezel name="3.1.3" element="led"><bounds x="36" y="2" width="1" height="1" /></bezel> - <bezel name="3.2.3" element="led"><bounds x="36" y="4" width="1" height="1" /></bezel> - <bezel name="3.3.3" element="led"><bounds x="36" y="6" width="1" height="1" /></bezel> - <bezel name="3.4.3" element="led"><bounds x="36" y="8" width="1" height="1" /></bezel> - <bezel name="3.5.3" element="led"><bounds x="36" y="10" width="1" height="1" /></bezel> - <bezel name="3.6.3" element="led"><bounds x="36" y="12" width="1" height="1" /></bezel> - <bezel name="3.7.3" element="led"><bounds x="36" y="14" width="1" height="1" /></bezel> - <bezel name="3.8.3" element="led"><bounds x="36" y="16" width="1" height="1" /></bezel> - <bezel name="3.9.3" element="led"><bounds x="36" y="18" width="1" height="1" /></bezel> - <bezel name="3.10.3" element="led"><bounds x="36" y="20" width="1" height="1" /></bezel> - <bezel name="3.11.3" element="led"><bounds x="36" y="22" width="1" height="1" /></bezel> - <bezel name="3.12.3" element="led"><bounds x="36" y="24" width="1" height="1" /></bezel> - <bezel name="3.13.3" element="led"><bounds x="36" y="26" width="1" height="1" /></bezel> - <bezel name="3.14.3" element="led"><bounds x="36" y="28" width="1" height="1" /></bezel> - <bezel name="3.15.3" element="led"><bounds x="36" y="30" width="1" height="1" /></bezel> + <repeat count="16"> + <param name="y" start="0" increment="1" /> + + <!-- a --> + <repeat count="4"> + <param name="x" start="0" increment="1" /> + <param name="p" start="0" increment="1" /> + <bezel name="0.~y~.~x~" element="led"><bounds x="~p~" y="~y~" width="0.5" height="0.5" /></bezel> + </repeat> + + <!-- b --> + <repeat count="4"> + <param name="x" start="0" increment="1" /> + <param name="p" start="5" increment="1" /> + <bezel name="1.~y~.~x~" element="led"><bounds x="~p~" y="~y~" width="0.5" height="0.5" /></bezel> + </repeat> + + <!-- bs --> + <repeat count="4"> + <param name="x" start="0" increment="1" /> + <param name="p" start="10" increment="1" /> + <bezel name="2.~y~.~x~" element="led"><bounds x="~p~" y="~y~" width="0.5" height="0.5" /></bezel> + </repeat> + + <!-- c --> + <repeat count="4"> + <param name="x" start="0" increment="1" /> + <param name="p" start="15" increment="1" /> + <bezel name="3.~y~.~x~" element="led"><bounds x="~p~" y="~y~" width="0.5" height="0.5" /></bezel> + </repeat> + </repeat> </view> </mamelayout> diff --git a/src/mame/layout/hh_tms1k_test.lay b/src/mame/layout/hh_tms1k_test.lay index faca1bc722e..675ea6960c9 100644 --- a/src/mame/layout/hh_tms1k_test.lay +++ b/src/mame/layout/hh_tms1k_test.lay @@ -14,540 +14,21 @@ <!-- build screen --> <view name="Test Layout"> - <bounds left="0" right="64" top="0" bottom="64" /> + <bounds left="0" right="32" top="0" bottom="16" /> <bezel element="static_black"> - <bounds left="0" right="64" top="0" bottom="64" /> + <bounds left="0" right="32" top="0" bottom="16" /> </bezel> <!-- max 16*32 matrix --> - <bezel name="0.0" element="led"><bounds x="0" y="0" width="1" height="1" /></bezel> - <bezel name="0.1" element="led"><bounds x="0" y="2" width="1" height="1" /></bezel> - <bezel name="0.2" element="led"><bounds x="0" y="4" width="1" height="1" /></bezel> - <bezel name="0.3" element="led"><bounds x="0" y="6" width="1" height="1" /></bezel> - <bezel name="0.4" element="led"><bounds x="0" y="8" width="1" height="1" /></bezel> - <bezel name="0.5" element="led"><bounds x="0" y="10" width="1" height="1" /></bezel> - <bezel name="0.6" element="led"><bounds x="0" y="12" width="1" height="1" /></bezel> - <bezel name="0.7" element="led"><bounds x="0" y="14" width="1" height="1" /></bezel> - <bezel name="0.8" element="led"><bounds x="0" y="16" width="1" height="1" /></bezel> - <bezel name="0.9" element="led"><bounds x="0" y="18" width="1" height="1" /></bezel> - <bezel name="0.10" element="led"><bounds x="0" y="20" width="1" height="1" /></bezel> - <bezel name="0.11" element="led"><bounds x="0" y="22" width="1" height="1" /></bezel> - <bezel name="0.12" element="led"><bounds x="0" y="24" width="1" height="1" /></bezel> - <bezel name="0.13" element="led"><bounds x="0" y="26" width="1" height="1" /></bezel> - <bezel name="0.14" element="led"><bounds x="0" y="28" width="1" height="1" /></bezel> - <bezel name="0.15" element="led"><bounds x="0" y="30" width="1" height="1" /></bezel> - <bezel name="0.16" element="led"><bounds x="0" y="32" width="1" height="1" /></bezel> - <bezel name="0.17" element="led"><bounds x="0" y="34" width="1" height="1" /></bezel> - <bezel name="0.18" element="led"><bounds x="0" y="36" width="1" height="1" /></bezel> - <bezel name="0.19" element="led"><bounds x="0" y="38" width="1" height="1" /></bezel> - <bezel name="0.20" element="led"><bounds x="0" y="40" width="1" height="1" /></bezel> - <bezel name="0.21" element="led"><bounds x="0" y="42" width="1" height="1" /></bezel> - <bezel name="0.22" element="led"><bounds x="0" y="44" width="1" height="1" /></bezel> - <bezel name="0.23" element="led"><bounds x="0" y="46" width="1" height="1" /></bezel> - <bezel name="0.24" element="led"><bounds x="0" y="48" width="1" height="1" /></bezel> - <bezel name="0.25" element="led"><bounds x="0" y="50" width="1" height="1" /></bezel> - <bezel name="0.26" element="led"><bounds x="0" y="52" width="1" height="1" /></bezel> - <bezel name="0.27" element="led"><bounds x="0" y="54" width="1" height="1" /></bezel> - <bezel name="0.28" element="led"><bounds x="0" y="56" width="1" height="1" /></bezel> - <bezel name="0.29" element="led"><bounds x="0" y="58" width="1" height="1" /></bezel> - <bezel name="0.30" element="led"><bounds x="0" y="60" width="1" height="1" /></bezel> - <bezel name="0.31" element="led"><bounds x="0" y="62" width="1" height="1" /></bezel> + <repeat count="16"> + <param name="y" start="0" increment="1" /> - <bezel name="1.0" element="led"><bounds x="2" y="0" width="1" height="1" /></bezel> - <bezel name="1.1" element="led"><bounds x="2" y="2" width="1" height="1" /></bezel> - <bezel name="1.2" element="led"><bounds x="2" y="4" width="1" height="1" /></bezel> - <bezel name="1.3" element="led"><bounds x="2" y="6" width="1" height="1" /></bezel> - <bezel name="1.4" element="led"><bounds x="2" y="8" width="1" height="1" /></bezel> - <bezel name="1.5" element="led"><bounds x="2" y="10" width="1" height="1" /></bezel> - <bezel name="1.6" element="led"><bounds x="2" y="12" width="1" height="1" /></bezel> - <bezel name="1.7" element="led"><bounds x="2" y="14" width="1" height="1" /></bezel> - <bezel name="1.8" element="led"><bounds x="2" y="16" width="1" height="1" /></bezel> - <bezel name="1.9" element="led"><bounds x="2" y="18" width="1" height="1" /></bezel> - <bezel name="1.10" element="led"><bounds x="2" y="20" width="1" height="1" /></bezel> - <bezel name="1.11" element="led"><bounds x="2" y="22" width="1" height="1" /></bezel> - <bezel name="1.12" element="led"><bounds x="2" y="24" width="1" height="1" /></bezel> - <bezel name="1.13" element="led"><bounds x="2" y="26" width="1" height="1" /></bezel> - <bezel name="1.14" element="led"><bounds x="2" y="28" width="1" height="1" /></bezel> - <bezel name="1.15" element="led"><bounds x="2" y="30" width="1" height="1" /></bezel> - <bezel name="1.16" element="led"><bounds x="2" y="32" width="1" height="1" /></bezel> - <bezel name="1.17" element="led"><bounds x="2" y="34" width="1" height="1" /></bezel> - <bezel name="1.18" element="led"><bounds x="2" y="36" width="1" height="1" /></bezel> - <bezel name="1.19" element="led"><bounds x="2" y="38" width="1" height="1" /></bezel> - <bezel name="1.20" element="led"><bounds x="2" y="40" width="1" height="1" /></bezel> - <bezel name="1.21" element="led"><bounds x="2" y="42" width="1" height="1" /></bezel> - <bezel name="1.22" element="led"><bounds x="2" y="44" width="1" height="1" /></bezel> - <bezel name="1.23" element="led"><bounds x="2" y="46" width="1" height="1" /></bezel> - <bezel name="1.24" element="led"><bounds x="2" y="48" width="1" height="1" /></bezel> - <bezel name="1.25" element="led"><bounds x="2" y="50" width="1" height="1" /></bezel> - <bezel name="1.26" element="led"><bounds x="2" y="52" width="1" height="1" /></bezel> - <bezel name="1.27" element="led"><bounds x="2" y="54" width="1" height="1" /></bezel> - <bezel name="1.28" element="led"><bounds x="2" y="56" width="1" height="1" /></bezel> - <bezel name="1.29" element="led"><bounds x="2" y="58" width="1" height="1" /></bezel> - <bezel name="1.30" element="led"><bounds x="2" y="60" width="1" height="1" /></bezel> - <bezel name="1.31" element="led"><bounds x="2" y="62" width="1" height="1" /></bezel> - - <bezel name="2.0" element="led"><bounds x="4" y="0" width="1" height="1" /></bezel> - <bezel name="2.1" element="led"><bounds x="4" y="2" width="1" height="1" /></bezel> - <bezel name="2.2" element="led"><bounds x="4" y="4" width="1" height="1" /></bezel> - <bezel name="2.3" element="led"><bounds x="4" y="6" width="1" height="1" /></bezel> - <bezel name="2.4" element="led"><bounds x="4" y="8" width="1" height="1" /></bezel> - <bezel name="2.5" element="led"><bounds x="4" y="10" width="1" height="1" /></bezel> - <bezel name="2.6" element="led"><bounds x="4" y="12" width="1" height="1" /></bezel> - <bezel name="2.7" element="led"><bounds x="4" y="14" width="1" height="1" /></bezel> - <bezel name="2.8" element="led"><bounds x="4" y="16" width="1" height="1" /></bezel> - <bezel name="2.9" element="led"><bounds x="4" y="18" width="1" height="1" /></bezel> - <bezel name="2.10" element="led"><bounds x="4" y="20" width="1" height="1" /></bezel> - <bezel name="2.11" element="led"><bounds x="4" y="22" width="1" height="1" /></bezel> - <bezel name="2.12" element="led"><bounds x="4" y="24" width="1" height="1" /></bezel> - <bezel name="2.13" element="led"><bounds x="4" y="26" width="1" height="1" /></bezel> - <bezel name="2.14" element="led"><bounds x="4" y="28" width="1" height="1" /></bezel> - <bezel name="2.15" element="led"><bounds x="4" y="30" width="1" height="1" /></bezel> - <bezel name="2.16" element="led"><bounds x="4" y="32" width="1" height="1" /></bezel> - <bezel name="2.17" element="led"><bounds x="4" y="34" width="1" height="1" /></bezel> - <bezel name="2.18" element="led"><bounds x="4" y="36" width="1" height="1" /></bezel> - <bezel name="2.19" element="led"><bounds x="4" y="38" width="1" height="1" /></bezel> - <bezel name="2.20" element="led"><bounds x="4" y="40" width="1" height="1" /></bezel> - <bezel name="2.21" element="led"><bounds x="4" y="42" width="1" height="1" /></bezel> - <bezel name="2.22" element="led"><bounds x="4" y="44" width="1" height="1" /></bezel> - <bezel name="2.23" element="led"><bounds x="4" y="46" width="1" height="1" /></bezel> - <bezel name="2.24" element="led"><bounds x="4" y="48" width="1" height="1" /></bezel> - <bezel name="2.25" element="led"><bounds x="4" y="50" width="1" height="1" /></bezel> - <bezel name="2.26" element="led"><bounds x="4" y="52" width="1" height="1" /></bezel> - <bezel name="2.27" element="led"><bounds x="4" y="54" width="1" height="1" /></bezel> - <bezel name="2.28" element="led"><bounds x="4" y="56" width="1" height="1" /></bezel> - <bezel name="2.29" element="led"><bounds x="4" y="58" width="1" height="1" /></bezel> - <bezel name="2.30" element="led"><bounds x="4" y="60" width="1" height="1" /></bezel> - <bezel name="2.31" element="led"><bounds x="4" y="62" width="1" height="1" /></bezel> - - <bezel name="3.0" element="led"><bounds x="6" y="0" width="1" height="1" /></bezel> - <bezel name="3.1" element="led"><bounds x="6" y="2" width="1" height="1" /></bezel> - <bezel name="3.2" element="led"><bounds x="6" y="4" width="1" height="1" /></bezel> - <bezel name="3.3" element="led"><bounds x="6" y="6" width="1" height="1" /></bezel> - <bezel name="3.4" element="led"><bounds x="6" y="8" width="1" height="1" /></bezel> - <bezel name="3.5" element="led"><bounds x="6" y="10" width="1" height="1" /></bezel> - <bezel name="3.6" element="led"><bounds x="6" y="12" width="1" height="1" /></bezel> - <bezel name="3.7" element="led"><bounds x="6" y="14" width="1" height="1" /></bezel> - <bezel name="3.8" element="led"><bounds x="6" y="16" width="1" height="1" /></bezel> - <bezel name="3.9" element="led"><bounds x="6" y="18" width="1" height="1" /></bezel> - <bezel name="3.10" element="led"><bounds x="6" y="20" width="1" height="1" /></bezel> - <bezel name="3.11" element="led"><bounds x="6" y="22" width="1" height="1" /></bezel> - <bezel name="3.12" element="led"><bounds x="6" y="24" width="1" height="1" /></bezel> - <bezel name="3.13" element="led"><bounds x="6" y="26" width="1" height="1" /></bezel> - <bezel name="3.14" element="led"><bounds x="6" y="28" width="1" height="1" /></bezel> - <bezel name="3.15" element="led"><bounds x="6" y="30" width="1" height="1" /></bezel> - <bezel name="3.16" element="led"><bounds x="6" y="32" width="1" height="1" /></bezel> - <bezel name="3.17" element="led"><bounds x="6" y="34" width="1" height="1" /></bezel> - <bezel name="3.18" element="led"><bounds x="6" y="36" width="1" height="1" /></bezel> - <bezel name="3.19" element="led"><bounds x="6" y="38" width="1" height="1" /></bezel> - <bezel name="3.20" element="led"><bounds x="6" y="40" width="1" height="1" /></bezel> - <bezel name="3.21" element="led"><bounds x="6" y="42" width="1" height="1" /></bezel> - <bezel name="3.22" element="led"><bounds x="6" y="44" width="1" height="1" /></bezel> - <bezel name="3.23" element="led"><bounds x="6" y="46" width="1" height="1" /></bezel> - <bezel name="3.24" element="led"><bounds x="6" y="48" width="1" height="1" /></bezel> - <bezel name="3.25" element="led"><bounds x="6" y="50" width="1" height="1" /></bezel> - <bezel name="3.26" element="led"><bounds x="6" y="52" width="1" height="1" /></bezel> - <bezel name="3.27" element="led"><bounds x="6" y="54" width="1" height="1" /></bezel> - <bezel name="3.28" element="led"><bounds x="6" y="56" width="1" height="1" /></bezel> - <bezel name="3.29" element="led"><bounds x="6" y="58" width="1" height="1" /></bezel> - <bezel name="3.30" element="led"><bounds x="6" y="60" width="1" height="1" /></bezel> - <bezel name="3.31" element="led"><bounds x="6" y="62" width="1" height="1" /></bezel> - - <bezel name="4.0" element="led"><bounds x="8" y="0" width="1" height="1" /></bezel> - <bezel name="4.1" element="led"><bounds x="8" y="2" width="1" height="1" /></bezel> - <bezel name="4.2" element="led"><bounds x="8" y="4" width="1" height="1" /></bezel> - <bezel name="4.3" element="led"><bounds x="8" y="6" width="1" height="1" /></bezel> - <bezel name="4.4" element="led"><bounds x="8" y="8" width="1" height="1" /></bezel> - <bezel name="4.5" element="led"><bounds x="8" y="10" width="1" height="1" /></bezel> - <bezel name="4.6" element="led"><bounds x="8" y="12" width="1" height="1" /></bezel> - <bezel name="4.7" element="led"><bounds x="8" y="14" width="1" height="1" /></bezel> - <bezel name="4.8" element="led"><bounds x="8" y="16" width="1" height="1" /></bezel> - <bezel name="4.9" element="led"><bounds x="8" y="18" width="1" height="1" /></bezel> - <bezel name="4.10" element="led"><bounds x="8" y="20" width="1" height="1" /></bezel> - <bezel name="4.11" element="led"><bounds x="8" y="22" width="1" height="1" /></bezel> - <bezel name="4.12" element="led"><bounds x="8" y="24" width="1" height="1" /></bezel> - <bezel name="4.13" element="led"><bounds x="8" y="26" width="1" height="1" /></bezel> - <bezel name="4.14" element="led"><bounds x="8" y="28" width="1" height="1" /></bezel> - <bezel name="4.15" element="led"><bounds x="8" y="30" width="1" height="1" /></bezel> - <bezel name="4.16" element="led"><bounds x="8" y="32" width="1" height="1" /></bezel> - <bezel name="4.17" element="led"><bounds x="8" y="34" width="1" height="1" /></bezel> - <bezel name="4.18" element="led"><bounds x="8" y="36" width="1" height="1" /></bezel> - <bezel name="4.19" element="led"><bounds x="8" y="38" width="1" height="1" /></bezel> - <bezel name="4.20" element="led"><bounds x="8" y="40" width="1" height="1" /></bezel> - <bezel name="4.21" element="led"><bounds x="8" y="42" width="1" height="1" /></bezel> - <bezel name="4.22" element="led"><bounds x="8" y="44" width="1" height="1" /></bezel> - <bezel name="4.23" element="led"><bounds x="8" y="46" width="1" height="1" /></bezel> - <bezel name="4.24" element="led"><bounds x="8" y="48" width="1" height="1" /></bezel> - <bezel name="4.25" element="led"><bounds x="8" y="50" width="1" height="1" /></bezel> - <bezel name="4.26" element="led"><bounds x="8" y="52" width="1" height="1" /></bezel> - <bezel name="4.27" element="led"><bounds x="8" y="54" width="1" height="1" /></bezel> - <bezel name="4.28" element="led"><bounds x="8" y="56" width="1" height="1" /></bezel> - <bezel name="4.29" element="led"><bounds x="8" y="58" width="1" height="1" /></bezel> - <bezel name="4.30" element="led"><bounds x="8" y="60" width="1" height="1" /></bezel> - <bezel name="4.31" element="led"><bounds x="8" y="62" width="1" height="1" /></bezel> - - <bezel name="5.0" element="led"><bounds x="10" y="0" width="1" height="1" /></bezel> - <bezel name="5.1" element="led"><bounds x="10" y="2" width="1" height="1" /></bezel> - <bezel name="5.2" element="led"><bounds x="10" y="4" width="1" height="1" /></bezel> - <bezel name="5.3" element="led"><bounds x="10" y="6" width="1" height="1" /></bezel> - <bezel name="5.4" element="led"><bounds x="10" y="8" width="1" height="1" /></bezel> - <bezel name="5.5" element="led"><bounds x="10" y="10" width="1" height="1" /></bezel> - <bezel name="5.6" element="led"><bounds x="10" y="12" width="1" height="1" /></bezel> - <bezel name="5.7" element="led"><bounds x="10" y="14" width="1" height="1" /></bezel> - <bezel name="5.8" element="led"><bounds x="10" y="16" width="1" height="1" /></bezel> - <bezel name="5.9" element="led"><bounds x="10" y="18" width="1" height="1" /></bezel> - <bezel name="5.10" element="led"><bounds x="10" y="20" width="1" height="1" /></bezel> - <bezel name="5.11" element="led"><bounds x="10" y="22" width="1" height="1" /></bezel> - <bezel name="5.12" element="led"><bounds x="10" y="24" width="1" height="1" /></bezel> - <bezel name="5.13" element="led"><bounds x="10" y="26" width="1" height="1" /></bezel> - <bezel name="5.14" element="led"><bounds x="10" y="28" width="1" height="1" /></bezel> - <bezel name="5.15" element="led"><bounds x="10" y="30" width="1" height="1" /></bezel> - <bezel name="5.16" element="led"><bounds x="10" y="32" width="1" height="1" /></bezel> - <bezel name="5.17" element="led"><bounds x="10" y="34" width="1" height="1" /></bezel> - <bezel name="5.18" element="led"><bounds x="10" y="36" width="1" height="1" /></bezel> - <bezel name="5.19" element="led"><bounds x="10" y="38" width="1" height="1" /></bezel> - <bezel name="5.20" element="led"><bounds x="10" y="40" width="1" height="1" /></bezel> - <bezel name="5.21" element="led"><bounds x="10" y="42" width="1" height="1" /></bezel> - <bezel name="5.22" element="led"><bounds x="10" y="44" width="1" height="1" /></bezel> - <bezel name="5.23" element="led"><bounds x="10" y="46" width="1" height="1" /></bezel> - <bezel name="5.24" element="led"><bounds x="10" y="48" width="1" height="1" /></bezel> - <bezel name="5.25" element="led"><bounds x="10" y="50" width="1" height="1" /></bezel> - <bezel name="5.26" element="led"><bounds x="10" y="52" width="1" height="1" /></bezel> - <bezel name="5.27" element="led"><bounds x="10" y="54" width="1" height="1" /></bezel> - <bezel name="5.28" element="led"><bounds x="10" y="56" width="1" height="1" /></bezel> - <bezel name="5.29" element="led"><bounds x="10" y="58" width="1" height="1" /></bezel> - <bezel name="5.30" element="led"><bounds x="10" y="60" width="1" height="1" /></bezel> - <bezel name="5.31" element="led"><bounds x="10" y="62" width="1" height="1" /></bezel> - - <bezel name="6.0" element="led"><bounds x="12" y="0" width="1" height="1" /></bezel> - <bezel name="6.1" element="led"><bounds x="12" y="2" width="1" height="1" /></bezel> - <bezel name="6.2" element="led"><bounds x="12" y="4" width="1" height="1" /></bezel> - <bezel name="6.3" element="led"><bounds x="12" y="6" width="1" height="1" /></bezel> - <bezel name="6.4" element="led"><bounds x="12" y="8" width="1" height="1" /></bezel> - <bezel name="6.5" element="led"><bounds x="12" y="10" width="1" height="1" /></bezel> - <bezel name="6.6" element="led"><bounds x="12" y="12" width="1" height="1" /></bezel> - <bezel name="6.7" element="led"><bounds x="12" y="14" width="1" height="1" /></bezel> - <bezel name="6.8" element="led"><bounds x="12" y="16" width="1" height="1" /></bezel> - <bezel name="6.9" element="led"><bounds x="12" y="18" width="1" height="1" /></bezel> - <bezel name="6.10" element="led"><bounds x="12" y="20" width="1" height="1" /></bezel> - <bezel name="6.11" element="led"><bounds x="12" y="22" width="1" height="1" /></bezel> - <bezel name="6.12" element="led"><bounds x="12" y="24" width="1" height="1" /></bezel> - <bezel name="6.13" element="led"><bounds x="12" y="26" width="1" height="1" /></bezel> - <bezel name="6.14" element="led"><bounds x="12" y="28" width="1" height="1" /></bezel> - <bezel name="6.15" element="led"><bounds x="12" y="30" width="1" height="1" /></bezel> - <bezel name="6.16" element="led"><bounds x="12" y="32" width="1" height="1" /></bezel> - <bezel name="6.17" element="led"><bounds x="12" y="34" width="1" height="1" /></bezel> - <bezel name="6.18" element="led"><bounds x="12" y="36" width="1" height="1" /></bezel> - <bezel name="6.19" element="led"><bounds x="12" y="38" width="1" height="1" /></bezel> - <bezel name="6.20" element="led"><bounds x="12" y="40" width="1" height="1" /></bezel> - <bezel name="6.21" element="led"><bounds x="12" y="42" width="1" height="1" /></bezel> - <bezel name="6.22" element="led"><bounds x="12" y="44" width="1" height="1" /></bezel> - <bezel name="6.23" element="led"><bounds x="12" y="46" width="1" height="1" /></bezel> - <bezel name="6.24" element="led"><bounds x="12" y="48" width="1" height="1" /></bezel> - <bezel name="6.25" element="led"><bounds x="12" y="50" width="1" height="1" /></bezel> - <bezel name="6.26" element="led"><bounds x="12" y="52" width="1" height="1" /></bezel> - <bezel name="6.27" element="led"><bounds x="12" y="54" width="1" height="1" /></bezel> - <bezel name="6.28" element="led"><bounds x="12" y="56" width="1" height="1" /></bezel> - <bezel name="6.29" element="led"><bounds x="12" y="58" width="1" height="1" /></bezel> - <bezel name="6.30" element="led"><bounds x="12" y="60" width="1" height="1" /></bezel> - <bezel name="6.31" element="led"><bounds x="12" y="62" width="1" height="1" /></bezel> - - <bezel name="7.0" element="led"><bounds x="14" y="0" width="1" height="1" /></bezel> - <bezel name="7.1" element="led"><bounds x="14" y="2" width="1" height="1" /></bezel> - <bezel name="7.2" element="led"><bounds x="14" y="4" width="1" height="1" /></bezel> - <bezel name="7.3" element="led"><bounds x="14" y="6" width="1" height="1" /></bezel> - <bezel name="7.4" element="led"><bounds x="14" y="8" width="1" height="1" /></bezel> - <bezel name="7.5" element="led"><bounds x="14" y="10" width="1" height="1" /></bezel> - <bezel name="7.6" element="led"><bounds x="14" y="12" width="1" height="1" /></bezel> - <bezel name="7.7" element="led"><bounds x="14" y="14" width="1" height="1" /></bezel> - <bezel name="7.8" element="led"><bounds x="14" y="16" width="1" height="1" /></bezel> - <bezel name="7.9" element="led"><bounds x="14" y="18" width="1" height="1" /></bezel> - <bezel name="7.10" element="led"><bounds x="14" y="20" width="1" height="1" /></bezel> - <bezel name="7.11" element="led"><bounds x="14" y="22" width="1" height="1" /></bezel> - <bezel name="7.12" element="led"><bounds x="14" y="24" width="1" height="1" /></bezel> - <bezel name="7.13" element="led"><bounds x="14" y="26" width="1" height="1" /></bezel> - <bezel name="7.14" element="led"><bounds x="14" y="28" width="1" height="1" /></bezel> - <bezel name="7.15" element="led"><bounds x="14" y="30" width="1" height="1" /></bezel> - <bezel name="7.16" element="led"><bounds x="14" y="32" width="1" height="1" /></bezel> - <bezel name="7.17" element="led"><bounds x="14" y="34" width="1" height="1" /></bezel> - <bezel name="7.18" element="led"><bounds x="14" y="36" width="1" height="1" /></bezel> - <bezel name="7.19" element="led"><bounds x="14" y="38" width="1" height="1" /></bezel> - <bezel name="7.20" element="led"><bounds x="14" y="40" width="1" height="1" /></bezel> - <bezel name="7.21" element="led"><bounds x="14" y="42" width="1" height="1" /></bezel> - <bezel name="7.22" element="led"><bounds x="14" y="44" width="1" height="1" /></bezel> - <bezel name="7.23" element="led"><bounds x="14" y="46" width="1" height="1" /></bezel> - <bezel name="7.24" element="led"><bounds x="14" y="48" width="1" height="1" /></bezel> - <bezel name="7.25" element="led"><bounds x="14" y="50" width="1" height="1" /></bezel> - <bezel name="7.26" element="led"><bounds x="14" y="52" width="1" height="1" /></bezel> - <bezel name="7.27" element="led"><bounds x="14" y="54" width="1" height="1" /></bezel> - <bezel name="7.28" element="led"><bounds x="14" y="56" width="1" height="1" /></bezel> - <bezel name="7.29" element="led"><bounds x="14" y="58" width="1" height="1" /></bezel> - <bezel name="7.30" element="led"><bounds x="14" y="60" width="1" height="1" /></bezel> - <bezel name="7.31" element="led"><bounds x="14" y="62" width="1" height="1" /></bezel> - - <bezel name="8.0" element="led"><bounds x="16" y="0" width="1" height="1" /></bezel> - <bezel name="8.1" element="led"><bounds x="16" y="2" width="1" height="1" /></bezel> - <bezel name="8.2" element="led"><bounds x="16" y="4" width="1" height="1" /></bezel> - <bezel name="8.3" element="led"><bounds x="16" y="6" width="1" height="1" /></bezel> - <bezel name="8.4" element="led"><bounds x="16" y="8" width="1" height="1" /></bezel> - <bezel name="8.5" element="led"><bounds x="16" y="10" width="1" height="1" /></bezel> - <bezel name="8.6" element="led"><bounds x="16" y="12" width="1" height="1" /></bezel> - <bezel name="8.7" element="led"><bounds x="16" y="14" width="1" height="1" /></bezel> - <bezel name="8.8" element="led"><bounds x="16" y="16" width="1" height="1" /></bezel> - <bezel name="8.9" element="led"><bounds x="16" y="18" width="1" height="1" /></bezel> - <bezel name="8.10" element="led"><bounds x="16" y="20" width="1" height="1" /></bezel> - <bezel name="8.11" element="led"><bounds x="16" y="22" width="1" height="1" /></bezel> - <bezel name="8.12" element="led"><bounds x="16" y="24" width="1" height="1" /></bezel> - <bezel name="8.13" element="led"><bounds x="16" y="26" width="1" height="1" /></bezel> - <bezel name="8.14" element="led"><bounds x="16" y="28" width="1" height="1" /></bezel> - <bezel name="8.15" element="led"><bounds x="16" y="30" width="1" height="1" /></bezel> - <bezel name="8.16" element="led"><bounds x="16" y="32" width="1" height="1" /></bezel> - <bezel name="8.17" element="led"><bounds x="16" y="34" width="1" height="1" /></bezel> - <bezel name="8.18" element="led"><bounds x="16" y="36" width="1" height="1" /></bezel> - <bezel name="8.19" element="led"><bounds x="16" y="38" width="1" height="1" /></bezel> - <bezel name="8.20" element="led"><bounds x="16" y="40" width="1" height="1" /></bezel> - <bezel name="8.21" element="led"><bounds x="16" y="42" width="1" height="1" /></bezel> - <bezel name="8.22" element="led"><bounds x="16" y="44" width="1" height="1" /></bezel> - <bezel name="8.23" element="led"><bounds x="16" y="46" width="1" height="1" /></bezel> - <bezel name="8.24" element="led"><bounds x="16" y="48" width="1" height="1" /></bezel> - <bezel name="8.25" element="led"><bounds x="16" y="50" width="1" height="1" /></bezel> - <bezel name="8.26" element="led"><bounds x="16" y="52" width="1" height="1" /></bezel> - <bezel name="8.27" element="led"><bounds x="16" y="54" width="1" height="1" /></bezel> - <bezel name="8.28" element="led"><bounds x="16" y="56" width="1" height="1" /></bezel> - <bezel name="8.29" element="led"><bounds x="16" y="58" width="1" height="1" /></bezel> - <bezel name="8.30" element="led"><bounds x="16" y="60" width="1" height="1" /></bezel> - <bezel name="8.31" element="led"><bounds x="16" y="62" width="1" height="1" /></bezel> - - <bezel name="9.0" element="led"><bounds x="18" y="0" width="1" height="1" /></bezel> - <bezel name="9.1" element="led"><bounds x="18" y="2" width="1" height="1" /></bezel> - <bezel name="9.2" element="led"><bounds x="18" y="4" width="1" height="1" /></bezel> - <bezel name="9.3" element="led"><bounds x="18" y="6" width="1" height="1" /></bezel> - <bezel name="9.4" element="led"><bounds x="18" y="8" width="1" height="1" /></bezel> - <bezel name="9.5" element="led"><bounds x="18" y="10" width="1" height="1" /></bezel> - <bezel name="9.6" element="led"><bounds x="18" y="12" width="1" height="1" /></bezel> - <bezel name="9.7" element="led"><bounds x="18" y="14" width="1" height="1" /></bezel> - <bezel name="9.8" element="led"><bounds x="18" y="16" width="1" height="1" /></bezel> - <bezel name="9.9" element="led"><bounds x="18" y="18" width="1" height="1" /></bezel> - <bezel name="9.10" element="led"><bounds x="18" y="20" width="1" height="1" /></bezel> - <bezel name="9.11" element="led"><bounds x="18" y="22" width="1" height="1" /></bezel> - <bezel name="9.12" element="led"><bounds x="18" y="24" width="1" height="1" /></bezel> - <bezel name="9.13" element="led"><bounds x="18" y="26" width="1" height="1" /></bezel> - <bezel name="9.14" element="led"><bounds x="18" y="28" width="1" height="1" /></bezel> - <bezel name="9.15" element="led"><bounds x="18" y="30" width="1" height="1" /></bezel> - <bezel name="9.16" element="led"><bounds x="18" y="32" width="1" height="1" /></bezel> - <bezel name="9.17" element="led"><bounds x="18" y="34" width="1" height="1" /></bezel> - <bezel name="9.18" element="led"><bounds x="18" y="36" width="1" height="1" /></bezel> - <bezel name="9.19" element="led"><bounds x="18" y="38" width="1" height="1" /></bezel> - <bezel name="9.20" element="led"><bounds x="18" y="40" width="1" height="1" /></bezel> - <bezel name="9.21" element="led"><bounds x="18" y="42" width="1" height="1" /></bezel> - <bezel name="9.22" element="led"><bounds x="18" y="44" width="1" height="1" /></bezel> - <bezel name="9.23" element="led"><bounds x="18" y="46" width="1" height="1" /></bezel> - <bezel name="9.24" element="led"><bounds x="18" y="48" width="1" height="1" /></bezel> - <bezel name="9.25" element="led"><bounds x="18" y="50" width="1" height="1" /></bezel> - <bezel name="9.26" element="led"><bounds x="18" y="52" width="1" height="1" /></bezel> - <bezel name="9.27" element="led"><bounds x="18" y="54" width="1" height="1" /></bezel> - <bezel name="9.28" element="led"><bounds x="18" y="56" width="1" height="1" /></bezel> - <bezel name="9.29" element="led"><bounds x="18" y="58" width="1" height="1" /></bezel> - <bezel name="9.30" element="led"><bounds x="18" y="60" width="1" height="1" /></bezel> - <bezel name="9.31" element="led"><bounds x="18" y="62" width="1" height="1" /></bezel> - - <bezel name="10.0" element="led"><bounds x="20" y="0" width="1" height="1" /></bezel> - <bezel name="10.1" element="led"><bounds x="20" y="2" width="1" height="1" /></bezel> - <bezel name="10.2" element="led"><bounds x="20" y="4" width="1" height="1" /></bezel> - <bezel name="10.3" element="led"><bounds x="20" y="6" width="1" height="1" /></bezel> - <bezel name="10.4" element="led"><bounds x="20" y="8" width="1" height="1" /></bezel> - <bezel name="10.5" element="led"><bounds x="20" y="10" width="1" height="1" /></bezel> - <bezel name="10.6" element="led"><bounds x="20" y="12" width="1" height="1" /></bezel> - <bezel name="10.7" element="led"><bounds x="20" y="14" width="1" height="1" /></bezel> - <bezel name="10.8" element="led"><bounds x="20" y="16" width="1" height="1" /></bezel> - <bezel name="10.9" element="led"><bounds x="20" y="18" width="1" height="1" /></bezel> - <bezel name="10.10" element="led"><bounds x="20" y="20" width="1" height="1" /></bezel> - <bezel name="10.11" element="led"><bounds x="20" y="22" width="1" height="1" /></bezel> - <bezel name="10.12" element="led"><bounds x="20" y="24" width="1" height="1" /></bezel> - <bezel name="10.13" element="led"><bounds x="20" y="26" width="1" height="1" /></bezel> - <bezel name="10.14" element="led"><bounds x="20" y="28" width="1" height="1" /></bezel> - <bezel name="10.15" element="led"><bounds x="20" y="30" width="1" height="1" /></bezel> - <bezel name="10.16" element="led"><bounds x="20" y="32" width="1" height="1" /></bezel> - <bezel name="10.17" element="led"><bounds x="20" y="34" width="1" height="1" /></bezel> - <bezel name="10.18" element="led"><bounds x="20" y="36" width="1" height="1" /></bezel> - <bezel name="10.19" element="led"><bounds x="20" y="38" width="1" height="1" /></bezel> - <bezel name="10.20" element="led"><bounds x="20" y="40" width="1" height="1" /></bezel> - <bezel name="10.21" element="led"><bounds x="20" y="42" width="1" height="1" /></bezel> - <bezel name="10.22" element="led"><bounds x="20" y="44" width="1" height="1" /></bezel> - <bezel name="10.23" element="led"><bounds x="20" y="46" width="1" height="1" /></bezel> - <bezel name="10.24" element="led"><bounds x="20" y="48" width="1" height="1" /></bezel> - <bezel name="10.25" element="led"><bounds x="20" y="50" width="1" height="1" /></bezel> - <bezel name="10.26" element="led"><bounds x="20" y="52" width="1" height="1" /></bezel> - <bezel name="10.27" element="led"><bounds x="20" y="54" width="1" height="1" /></bezel> - <bezel name="10.28" element="led"><bounds x="20" y="56" width="1" height="1" /></bezel> - <bezel name="10.29" element="led"><bounds x="20" y="58" width="1" height="1" /></bezel> - <bezel name="10.30" element="led"><bounds x="20" y="60" width="1" height="1" /></bezel> - <bezel name="10.31" element="led"><bounds x="20" y="62" width="1" height="1" /></bezel> - - <bezel name="11.0" element="led"><bounds x="22" y="0" width="1" height="1" /></bezel> - <bezel name="11.1" element="led"><bounds x="22" y="2" width="1" height="1" /></bezel> - <bezel name="11.2" element="led"><bounds x="22" y="4" width="1" height="1" /></bezel> - <bezel name="11.3" element="led"><bounds x="22" y="6" width="1" height="1" /></bezel> - <bezel name="11.4" element="led"><bounds x="22" y="8" width="1" height="1" /></bezel> - <bezel name="11.5" element="led"><bounds x="22" y="10" width="1" height="1" /></bezel> - <bezel name="11.6" element="led"><bounds x="22" y="12" width="1" height="1" /></bezel> - <bezel name="11.7" element="led"><bounds x="22" y="14" width="1" height="1" /></bezel> - <bezel name="11.8" element="led"><bounds x="22" y="16" width="1" height="1" /></bezel> - <bezel name="11.9" element="led"><bounds x="22" y="18" width="1" height="1" /></bezel> - <bezel name="11.10" element="led"><bounds x="22" y="20" width="1" height="1" /></bezel> - <bezel name="11.11" element="led"><bounds x="22" y="22" width="1" height="1" /></bezel> - <bezel name="11.12" element="led"><bounds x="22" y="24" width="1" height="1" /></bezel> - <bezel name="11.13" element="led"><bounds x="22" y="26" width="1" height="1" /></bezel> - <bezel name="11.14" element="led"><bounds x="22" y="28" width="1" height="1" /></bezel> - <bezel name="11.15" element="led"><bounds x="22" y="30" width="1" height="1" /></bezel> - <bezel name="11.16" element="led"><bounds x="22" y="32" width="1" height="1" /></bezel> - <bezel name="11.17" element="led"><bounds x="22" y="34" width="1" height="1" /></bezel> - <bezel name="11.18" element="led"><bounds x="22" y="36" width="1" height="1" /></bezel> - <bezel name="11.19" element="led"><bounds x="22" y="38" width="1" height="1" /></bezel> - <bezel name="11.20" element="led"><bounds x="22" y="40" width="1" height="1" /></bezel> - <bezel name="11.21" element="led"><bounds x="22" y="42" width="1" height="1" /></bezel> - <bezel name="11.22" element="led"><bounds x="22" y="44" width="1" height="1" /></bezel> - <bezel name="11.23" element="led"><bounds x="22" y="46" width="1" height="1" /></bezel> - <bezel name="11.24" element="led"><bounds x="22" y="48" width="1" height="1" /></bezel> - <bezel name="11.25" element="led"><bounds x="22" y="50" width="1" height="1" /></bezel> - <bezel name="11.26" element="led"><bounds x="22" y="52" width="1" height="1" /></bezel> - <bezel name="11.27" element="led"><bounds x="22" y="54" width="1" height="1" /></bezel> - <bezel name="11.28" element="led"><bounds x="22" y="56" width="1" height="1" /></bezel> - <bezel name="11.29" element="led"><bounds x="22" y="58" width="1" height="1" /></bezel> - <bezel name="11.30" element="led"><bounds x="22" y="60" width="1" height="1" /></bezel> - <bezel name="11.31" element="led"><bounds x="22" y="62" width="1" height="1" /></bezel> - - <bezel name="12.0" element="led"><bounds x="24" y="0" width="1" height="1" /></bezel> - <bezel name="12.1" element="led"><bounds x="24" y="2" width="1" height="1" /></bezel> - <bezel name="12.2" element="led"><bounds x="24" y="4" width="1" height="1" /></bezel> - <bezel name="12.3" element="led"><bounds x="24" y="6" width="1" height="1" /></bezel> - <bezel name="12.4" element="led"><bounds x="24" y="8" width="1" height="1" /></bezel> - <bezel name="12.5" element="led"><bounds x="24" y="10" width="1" height="1" /></bezel> - <bezel name="12.6" element="led"><bounds x="24" y="12" width="1" height="1" /></bezel> - <bezel name="12.7" element="led"><bounds x="24" y="14" width="1" height="1" /></bezel> - <bezel name="12.8" element="led"><bounds x="24" y="16" width="1" height="1" /></bezel> - <bezel name="12.9" element="led"><bounds x="24" y="18" width="1" height="1" /></bezel> - <bezel name="12.10" element="led"><bounds x="24" y="20" width="1" height="1" /></bezel> - <bezel name="12.11" element="led"><bounds x="24" y="22" width="1" height="1" /></bezel> - <bezel name="12.12" element="led"><bounds x="24" y="24" width="1" height="1" /></bezel> - <bezel name="12.13" element="led"><bounds x="24" y="26" width="1" height="1" /></bezel> - <bezel name="12.14" element="led"><bounds x="24" y="28" width="1" height="1" /></bezel> - <bezel name="12.15" element="led"><bounds x="24" y="30" width="1" height="1" /></bezel> - <bezel name="12.16" element="led"><bounds x="24" y="32" width="1" height="1" /></bezel> - <bezel name="12.17" element="led"><bounds x="24" y="34" width="1" height="1" /></bezel> - <bezel name="12.18" element="led"><bounds x="24" y="36" width="1" height="1" /></bezel> - <bezel name="12.19" element="led"><bounds x="24" y="38" width="1" height="1" /></bezel> - <bezel name="12.20" element="led"><bounds x="24" y="40" width="1" height="1" /></bezel> - <bezel name="12.21" element="led"><bounds x="24" y="42" width="1" height="1" /></bezel> - <bezel name="12.22" element="led"><bounds x="24" y="44" width="1" height="1" /></bezel> - <bezel name="12.23" element="led"><bounds x="24" y="46" width="1" height="1" /></bezel> - <bezel name="12.24" element="led"><bounds x="24" y="48" width="1" height="1" /></bezel> - <bezel name="12.25" element="led"><bounds x="24" y="50" width="1" height="1" /></bezel> - <bezel name="12.26" element="led"><bounds x="24" y="52" width="1" height="1" /></bezel> - <bezel name="12.27" element="led"><bounds x="24" y="54" width="1" height="1" /></bezel> - <bezel name="12.28" element="led"><bounds x="24" y="56" width="1" height="1" /></bezel> - <bezel name="12.29" element="led"><bounds x="24" y="58" width="1" height="1" /></bezel> - <bezel name="12.30" element="led"><bounds x="24" y="60" width="1" height="1" /></bezel> - <bezel name="12.31" element="led"><bounds x="24" y="62" width="1" height="1" /></bezel> - - <bezel name="13.0" element="led"><bounds x="26" y="0" width="1" height="1" /></bezel> - <bezel name="13.1" element="led"><bounds x="26" y="2" width="1" height="1" /></bezel> - <bezel name="13.2" element="led"><bounds x="26" y="4" width="1" height="1" /></bezel> - <bezel name="13.3" element="led"><bounds x="26" y="6" width="1" height="1" /></bezel> - <bezel name="13.4" element="led"><bounds x="26" y="8" width="1" height="1" /></bezel> - <bezel name="13.5" element="led"><bounds x="26" y="10" width="1" height="1" /></bezel> - <bezel name="13.6" element="led"><bounds x="26" y="12" width="1" height="1" /></bezel> - <bezel name="13.7" element="led"><bounds x="26" y="14" width="1" height="1" /></bezel> - <bezel name="13.8" element="led"><bounds x="26" y="16" width="1" height="1" /></bezel> - <bezel name="13.9" element="led"><bounds x="26" y="18" width="1" height="1" /></bezel> - <bezel name="13.10" element="led"><bounds x="26" y="20" width="1" height="1" /></bezel> - <bezel name="13.11" element="led"><bounds x="26" y="22" width="1" height="1" /></bezel> - <bezel name="13.12" element="led"><bounds x="26" y="24" width="1" height="1" /></bezel> - <bezel name="13.13" element="led"><bounds x="26" y="26" width="1" height="1" /></bezel> - <bezel name="13.14" element="led"><bounds x="26" y="28" width="1" height="1" /></bezel> - <bezel name="13.15" element="led"><bounds x="26" y="30" width="1" height="1" /></bezel> - <bezel name="13.16" element="led"><bounds x="26" y="32" width="1" height="1" /></bezel> - <bezel name="13.17" element="led"><bounds x="26" y="34" width="1" height="1" /></bezel> - <bezel name="13.18" element="led"><bounds x="26" y="36" width="1" height="1" /></bezel> - <bezel name="13.19" element="led"><bounds x="26" y="38" width="1" height="1" /></bezel> - <bezel name="13.20" element="led"><bounds x="26" y="40" width="1" height="1" /></bezel> - <bezel name="13.21" element="led"><bounds x="26" y="42" width="1" height="1" /></bezel> - <bezel name="13.22" element="led"><bounds x="26" y="44" width="1" height="1" /></bezel> - <bezel name="13.23" element="led"><bounds x="26" y="46" width="1" height="1" /></bezel> - <bezel name="13.24" element="led"><bounds x="26" y="48" width="1" height="1" /></bezel> - <bezel name="13.25" element="led"><bounds x="26" y="50" width="1" height="1" /></bezel> - <bezel name="13.26" element="led"><bounds x="26" y="52" width="1" height="1" /></bezel> - <bezel name="13.27" element="led"><bounds x="26" y="54" width="1" height="1" /></bezel> - <bezel name="13.28" element="led"><bounds x="26" y="56" width="1" height="1" /></bezel> - <bezel name="13.29" element="led"><bounds x="26" y="58" width="1" height="1" /></bezel> - <bezel name="13.30" element="led"><bounds x="26" y="60" width="1" height="1" /></bezel> - <bezel name="13.31" element="led"><bounds x="26" y="62" width="1" height="1" /></bezel> - - <bezel name="14.0" element="led"><bounds x="28" y="0" width="1" height="1" /></bezel> - <bezel name="14.1" element="led"><bounds x="28" y="2" width="1" height="1" /></bezel> - <bezel name="14.2" element="led"><bounds x="28" y="4" width="1" height="1" /></bezel> - <bezel name="14.3" element="led"><bounds x="28" y="6" width="1" height="1" /></bezel> - <bezel name="14.4" element="led"><bounds x="28" y="8" width="1" height="1" /></bezel> - <bezel name="14.5" element="led"><bounds x="28" y="10" width="1" height="1" /></bezel> - <bezel name="14.6" element="led"><bounds x="28" y="12" width="1" height="1" /></bezel> - <bezel name="14.7" element="led"><bounds x="28" y="14" width="1" height="1" /></bezel> - <bezel name="14.8" element="led"><bounds x="28" y="16" width="1" height="1" /></bezel> - <bezel name="14.9" element="led"><bounds x="28" y="18" width="1" height="1" /></bezel> - <bezel name="14.10" element="led"><bounds x="28" y="20" width="1" height="1" /></bezel> - <bezel name="14.11" element="led"><bounds x="28" y="22" width="1" height="1" /></bezel> - <bezel name="14.12" element="led"><bounds x="28" y="24" width="1" height="1" /></bezel> - <bezel name="14.13" element="led"><bounds x="28" y="26" width="1" height="1" /></bezel> - <bezel name="14.14" element="led"><bounds x="28" y="28" width="1" height="1" /></bezel> - <bezel name="14.15" element="led"><bounds x="28" y="30" width="1" height="1" /></bezel> - <bezel name="14.16" element="led"><bounds x="28" y="32" width="1" height="1" /></bezel> - <bezel name="14.17" element="led"><bounds x="28" y="34" width="1" height="1" /></bezel> - <bezel name="14.18" element="led"><bounds x="28" y="36" width="1" height="1" /></bezel> - <bezel name="14.19" element="led"><bounds x="28" y="38" width="1" height="1" /></bezel> - <bezel name="14.20" element="led"><bounds x="28" y="40" width="1" height="1" /></bezel> - <bezel name="14.21" element="led"><bounds x="28" y="42" width="1" height="1" /></bezel> - <bezel name="14.22" element="led"><bounds x="28" y="44" width="1" height="1" /></bezel> - <bezel name="14.23" element="led"><bounds x="28" y="46" width="1" height="1" /></bezel> - <bezel name="14.24" element="led"><bounds x="28" y="48" width="1" height="1" /></bezel> - <bezel name="14.25" element="led"><bounds x="28" y="50" width="1" height="1" /></bezel> - <bezel name="14.26" element="led"><bounds x="28" y="52" width="1" height="1" /></bezel> - <bezel name="14.27" element="led"><bounds x="28" y="54" width="1" height="1" /></bezel> - <bezel name="14.28" element="led"><bounds x="28" y="56" width="1" height="1" /></bezel> - <bezel name="14.29" element="led"><bounds x="28" y="58" width="1" height="1" /></bezel> - <bezel name="14.30" element="led"><bounds x="28" y="60" width="1" height="1" /></bezel> - <bezel name="14.31" element="led"><bounds x="28" y="62" width="1" height="1" /></bezel> - - <bezel name="15.0" element="led"><bounds x="30" y="0" width="1" height="1" /></bezel> - <bezel name="15.1" element="led"><bounds x="30" y="2" width="1" height="1" /></bezel> - <bezel name="15.2" element="led"><bounds x="30" y="4" width="1" height="1" /></bezel> - <bezel name="15.3" element="led"><bounds x="30" y="6" width="1" height="1" /></bezel> - <bezel name="15.4" element="led"><bounds x="30" y="8" width="1" height="1" /></bezel> - <bezel name="15.5" element="led"><bounds x="30" y="10" width="1" height="1" /></bezel> - <bezel name="15.6" element="led"><bounds x="30" y="12" width="1" height="1" /></bezel> - <bezel name="15.7" element="led"><bounds x="30" y="14" width="1" height="1" /></bezel> - <bezel name="15.8" element="led"><bounds x="30" y="16" width="1" height="1" /></bezel> - <bezel name="15.9" element="led"><bounds x="30" y="18" width="1" height="1" /></bezel> - <bezel name="15.10" element="led"><bounds x="30" y="20" width="1" height="1" /></bezel> - <bezel name="15.11" element="led"><bounds x="30" y="22" width="1" height="1" /></bezel> - <bezel name="15.12" element="led"><bounds x="30" y="24" width="1" height="1" /></bezel> - <bezel name="15.13" element="led"><bounds x="30" y="26" width="1" height="1" /></bezel> - <bezel name="15.14" element="led"><bounds x="30" y="28" width="1" height="1" /></bezel> - <bezel name="15.15" element="led"><bounds x="30" y="30" width="1" height="1" /></bezel> - <bezel name="15.16" element="led"><bounds x="30" y="32" width="1" height="1" /></bezel> - <bezel name="15.17" element="led"><bounds x="30" y="34" width="1" height="1" /></bezel> - <bezel name="15.18" element="led"><bounds x="30" y="36" width="1" height="1" /></bezel> - <bezel name="15.19" element="led"><bounds x="30" y="38" width="1" height="1" /></bezel> - <bezel name="15.20" element="led"><bounds x="30" y="40" width="1" height="1" /></bezel> - <bezel name="15.21" element="led"><bounds x="30" y="42" width="1" height="1" /></bezel> - <bezel name="15.22" element="led"><bounds x="30" y="44" width="1" height="1" /></bezel> - <bezel name="15.23" element="led"><bounds x="30" y="46" width="1" height="1" /></bezel> - <bezel name="15.24" element="led"><bounds x="30" y="48" width="1" height="1" /></bezel> - <bezel name="15.25" element="led"><bounds x="30" y="50" width="1" height="1" /></bezel> - <bezel name="15.26" element="led"><bounds x="30" y="52" width="1" height="1" /></bezel> - <bezel name="15.27" element="led"><bounds x="30" y="54" width="1" height="1" /></bezel> - <bezel name="15.28" element="led"><bounds x="30" y="56" width="1" height="1" /></bezel> - <bezel name="15.29" element="led"><bounds x="30" y="58" width="1" height="1" /></bezel> - <bezel name="15.30" element="led"><bounds x="30" y="60" width="1" height="1" /></bezel> - <bezel name="15.31" element="led"><bounds x="30" y="62" width="1" height="1" /></bezel> + <repeat count="32"> + <param name="x" start="0" increment="1" /> + <bezel name="~y~.~x~" element="led"><bounds x="~x~" y="~y~" width="0.5" height="0.5" /></bezel> + </repeat> + </repeat> </view> </mamelayout> diff --git a/src/mame/layout/hh_ucom4_test.lay b/src/mame/layout/hh_ucom4_test.lay index 19f0c66309f..63f5e0ce70c 100644 --- a/src/mame/layout/hh_ucom4_test.lay +++ b/src/mame/layout/hh_ucom4_test.lay @@ -14,540 +14,21 @@ <!-- build screen --> <view name="Test Layout"> - <bounds left="0" right="64" top="0" bottom="64" /> + <bounds left="0" right="32" top="0" bottom="16" /> <bezel element="static_black"> - <bounds left="0" right="64" top="0" bottom="64" /> + <bounds left="0" right="32" top="0" bottom="16" /> </bezel> <!-- max 16*32 matrix --> - <bezel name="0.0" element="led"><bounds x="0" y="0" width="1" height="1" /></bezel> - <bezel name="0.1" element="led"><bounds x="0" y="2" width="1" height="1" /></bezel> - <bezel name="0.2" element="led"><bounds x="0" y="4" width="1" height="1" /></bezel> - <bezel name="0.3" element="led"><bounds x="0" y="6" width="1" height="1" /></bezel> - <bezel name="0.4" element="led"><bounds x="0" y="8" width="1" height="1" /></bezel> - <bezel name="0.5" element="led"><bounds x="0" y="10" width="1" height="1" /></bezel> - <bezel name="0.6" element="led"><bounds x="0" y="12" width="1" height="1" /></bezel> - <bezel name="0.7" element="led"><bounds x="0" y="14" width="1" height="1" /></bezel> - <bezel name="0.8" element="led"><bounds x="0" y="16" width="1" height="1" /></bezel> - <bezel name="0.9" element="led"><bounds x="0" y="18" width="1" height="1" /></bezel> - <bezel name="0.10" element="led"><bounds x="0" y="20" width="1" height="1" /></bezel> - <bezel name="0.11" element="led"><bounds x="0" y="22" width="1" height="1" /></bezel> - <bezel name="0.12" element="led"><bounds x="0" y="24" width="1" height="1" /></bezel> - <bezel name="0.13" element="led"><bounds x="0" y="26" width="1" height="1" /></bezel> - <bezel name="0.14" element="led"><bounds x="0" y="28" width="1" height="1" /></bezel> - <bezel name="0.15" element="led"><bounds x="0" y="30" width="1" height="1" /></bezel> - <bezel name="0.16" element="led"><bounds x="0" y="32" width="1" height="1" /></bezel> - <bezel name="0.17" element="led"><bounds x="0" y="34" width="1" height="1" /></bezel> - <bezel name="0.18" element="led"><bounds x="0" y="36" width="1" height="1" /></bezel> - <bezel name="0.19" element="led"><bounds x="0" y="38" width="1" height="1" /></bezel> - <bezel name="0.20" element="led"><bounds x="0" y="40" width="1" height="1" /></bezel> - <bezel name="0.21" element="led"><bounds x="0" y="42" width="1" height="1" /></bezel> - <bezel name="0.22" element="led"><bounds x="0" y="44" width="1" height="1" /></bezel> - <bezel name="0.23" element="led"><bounds x="0" y="46" width="1" height="1" /></bezel> - <bezel name="0.24" element="led"><bounds x="0" y="48" width="1" height="1" /></bezel> - <bezel name="0.25" element="led"><bounds x="0" y="50" width="1" height="1" /></bezel> - <bezel name="0.26" element="led"><bounds x="0" y="52" width="1" height="1" /></bezel> - <bezel name="0.27" element="led"><bounds x="0" y="54" width="1" height="1" /></bezel> - <bezel name="0.28" element="led"><bounds x="0" y="56" width="1" height="1" /></bezel> - <bezel name="0.29" element="led"><bounds x="0" y="58" width="1" height="1" /></bezel> - <bezel name="0.30" element="led"><bounds x="0" y="60" width="1" height="1" /></bezel> - <bezel name="0.31" element="led"><bounds x="0" y="62" width="1" height="1" /></bezel> + <repeat count="16"> + <param name="y" start="0" increment="1" /> - <bezel name="1.0" element="led"><bounds x="2" y="0" width="1" height="1" /></bezel> - <bezel name="1.1" element="led"><bounds x="2" y="2" width="1" height="1" /></bezel> - <bezel name="1.2" element="led"><bounds x="2" y="4" width="1" height="1" /></bezel> - <bezel name="1.3" element="led"><bounds x="2" y="6" width="1" height="1" /></bezel> - <bezel name="1.4" element="led"><bounds x="2" y="8" width="1" height="1" /></bezel> - <bezel name="1.5" element="led"><bounds x="2" y="10" width="1" height="1" /></bezel> - <bezel name="1.6" element="led"><bounds x="2" y="12" width="1" height="1" /></bezel> - <bezel name="1.7" element="led"><bounds x="2" y="14" width="1" height="1" /></bezel> - <bezel name="1.8" element="led"><bounds x="2" y="16" width="1" height="1" /></bezel> - <bezel name="1.9" element="led"><bounds x="2" y="18" width="1" height="1" /></bezel> - <bezel name="1.10" element="led"><bounds x="2" y="20" width="1" height="1" /></bezel> - <bezel name="1.11" element="led"><bounds x="2" y="22" width="1" height="1" /></bezel> - <bezel name="1.12" element="led"><bounds x="2" y="24" width="1" height="1" /></bezel> - <bezel name="1.13" element="led"><bounds x="2" y="26" width="1" height="1" /></bezel> - <bezel name="1.14" element="led"><bounds x="2" y="28" width="1" height="1" /></bezel> - <bezel name="1.15" element="led"><bounds x="2" y="30" width="1" height="1" /></bezel> - <bezel name="1.16" element="led"><bounds x="2" y="32" width="1" height="1" /></bezel> - <bezel name="1.17" element="led"><bounds x="2" y="34" width="1" height="1" /></bezel> - <bezel name="1.18" element="led"><bounds x="2" y="36" width="1" height="1" /></bezel> - <bezel name="1.19" element="led"><bounds x="2" y="38" width="1" height="1" /></bezel> - <bezel name="1.20" element="led"><bounds x="2" y="40" width="1" height="1" /></bezel> - <bezel name="1.21" element="led"><bounds x="2" y="42" width="1" height="1" /></bezel> - <bezel name="1.22" element="led"><bounds x="2" y="44" width="1" height="1" /></bezel> - <bezel name="1.23" element="led"><bounds x="2" y="46" width="1" height="1" /></bezel> - <bezel name="1.24" element="led"><bounds x="2" y="48" width="1" height="1" /></bezel> - <bezel name="1.25" element="led"><bounds x="2" y="50" width="1" height="1" /></bezel> - <bezel name="1.26" element="led"><bounds x="2" y="52" width="1" height="1" /></bezel> - <bezel name="1.27" element="led"><bounds x="2" y="54" width="1" height="1" /></bezel> - <bezel name="1.28" element="led"><bounds x="2" y="56" width="1" height="1" /></bezel> - <bezel name="1.29" element="led"><bounds x="2" y="58" width="1" height="1" /></bezel> - <bezel name="1.30" element="led"><bounds x="2" y="60" width="1" height="1" /></bezel> - <bezel name="1.31" element="led"><bounds x="2" y="62" width="1" height="1" /></bezel> - - <bezel name="2.0" element="led"><bounds x="4" y="0" width="1" height="1" /></bezel> - <bezel name="2.1" element="led"><bounds x="4" y="2" width="1" height="1" /></bezel> - <bezel name="2.2" element="led"><bounds x="4" y="4" width="1" height="1" /></bezel> - <bezel name="2.3" element="led"><bounds x="4" y="6" width="1" height="1" /></bezel> - <bezel name="2.4" element="led"><bounds x="4" y="8" width="1" height="1" /></bezel> - <bezel name="2.5" element="led"><bounds x="4" y="10" width="1" height="1" /></bezel> - <bezel name="2.6" element="led"><bounds x="4" y="12" width="1" height="1" /></bezel> - <bezel name="2.7" element="led"><bounds x="4" y="14" width="1" height="1" /></bezel> - <bezel name="2.8" element="led"><bounds x="4" y="16" width="1" height="1" /></bezel> - <bezel name="2.9" element="led"><bounds x="4" y="18" width="1" height="1" /></bezel> - <bezel name="2.10" element="led"><bounds x="4" y="20" width="1" height="1" /></bezel> - <bezel name="2.11" element="led"><bounds x="4" y="22" width="1" height="1" /></bezel> - <bezel name="2.12" element="led"><bounds x="4" y="24" width="1" height="1" /></bezel> - <bezel name="2.13" element="led"><bounds x="4" y="26" width="1" height="1" /></bezel> - <bezel name="2.14" element="led"><bounds x="4" y="28" width="1" height="1" /></bezel> - <bezel name="2.15" element="led"><bounds x="4" y="30" width="1" height="1" /></bezel> - <bezel name="2.16" element="led"><bounds x="4" y="32" width="1" height="1" /></bezel> - <bezel name="2.17" element="led"><bounds x="4" y="34" width="1" height="1" /></bezel> - <bezel name="2.18" element="led"><bounds x="4" y="36" width="1" height="1" /></bezel> - <bezel name="2.19" element="led"><bounds x="4" y="38" width="1" height="1" /></bezel> - <bezel name="2.20" element="led"><bounds x="4" y="40" width="1" height="1" /></bezel> - <bezel name="2.21" element="led"><bounds x="4" y="42" width="1" height="1" /></bezel> - <bezel name="2.22" element="led"><bounds x="4" y="44" width="1" height="1" /></bezel> - <bezel name="2.23" element="led"><bounds x="4" y="46" width="1" height="1" /></bezel> - <bezel name="2.24" element="led"><bounds x="4" y="48" width="1" height="1" /></bezel> - <bezel name="2.25" element="led"><bounds x="4" y="50" width="1" height="1" /></bezel> - <bezel name="2.26" element="led"><bounds x="4" y="52" width="1" height="1" /></bezel> - <bezel name="2.27" element="led"><bounds x="4" y="54" width="1" height="1" /></bezel> - <bezel name="2.28" element="led"><bounds x="4" y="56" width="1" height="1" /></bezel> - <bezel name="2.29" element="led"><bounds x="4" y="58" width="1" height="1" /></bezel> - <bezel name="2.30" element="led"><bounds x="4" y="60" width="1" height="1" /></bezel> - <bezel name="2.31" element="led"><bounds x="4" y="62" width="1" height="1" /></bezel> - - <bezel name="3.0" element="led"><bounds x="6" y="0" width="1" height="1" /></bezel> - <bezel name="3.1" element="led"><bounds x="6" y="2" width="1" height="1" /></bezel> - <bezel name="3.2" element="led"><bounds x="6" y="4" width="1" height="1" /></bezel> - <bezel name="3.3" element="led"><bounds x="6" y="6" width="1" height="1" /></bezel> - <bezel name="3.4" element="led"><bounds x="6" y="8" width="1" height="1" /></bezel> - <bezel name="3.5" element="led"><bounds x="6" y="10" width="1" height="1" /></bezel> - <bezel name="3.6" element="led"><bounds x="6" y="12" width="1" height="1" /></bezel> - <bezel name="3.7" element="led"><bounds x="6" y="14" width="1" height="1" /></bezel> - <bezel name="3.8" element="led"><bounds x="6" y="16" width="1" height="1" /></bezel> - <bezel name="3.9" element="led"><bounds x="6" y="18" width="1" height="1" /></bezel> - <bezel name="3.10" element="led"><bounds x="6" y="20" width="1" height="1" /></bezel> - <bezel name="3.11" element="led"><bounds x="6" y="22" width="1" height="1" /></bezel> - <bezel name="3.12" element="led"><bounds x="6" y="24" width="1" height="1" /></bezel> - <bezel name="3.13" element="led"><bounds x="6" y="26" width="1" height="1" /></bezel> - <bezel name="3.14" element="led"><bounds x="6" y="28" width="1" height="1" /></bezel> - <bezel name="3.15" element="led"><bounds x="6" y="30" width="1" height="1" /></bezel> - <bezel name="3.16" element="led"><bounds x="6" y="32" width="1" height="1" /></bezel> - <bezel name="3.17" element="led"><bounds x="6" y="34" width="1" height="1" /></bezel> - <bezel name="3.18" element="led"><bounds x="6" y="36" width="1" height="1" /></bezel> - <bezel name="3.19" element="led"><bounds x="6" y="38" width="1" height="1" /></bezel> - <bezel name="3.20" element="led"><bounds x="6" y="40" width="1" height="1" /></bezel> - <bezel name="3.21" element="led"><bounds x="6" y="42" width="1" height="1" /></bezel> - <bezel name="3.22" element="led"><bounds x="6" y="44" width="1" height="1" /></bezel> - <bezel name="3.23" element="led"><bounds x="6" y="46" width="1" height="1" /></bezel> - <bezel name="3.24" element="led"><bounds x="6" y="48" width="1" height="1" /></bezel> - <bezel name="3.25" element="led"><bounds x="6" y="50" width="1" height="1" /></bezel> - <bezel name="3.26" element="led"><bounds x="6" y="52" width="1" height="1" /></bezel> - <bezel name="3.27" element="led"><bounds x="6" y="54" width="1" height="1" /></bezel> - <bezel name="3.28" element="led"><bounds x="6" y="56" width="1" height="1" /></bezel> - <bezel name="3.29" element="led"><bounds x="6" y="58" width="1" height="1" /></bezel> - <bezel name="3.30" element="led"><bounds x="6" y="60" width="1" height="1" /></bezel> - <bezel name="3.31" element="led"><bounds x="6" y="62" width="1" height="1" /></bezel> - - <bezel name="4.0" element="led"><bounds x="8" y="0" width="1" height="1" /></bezel> - <bezel name="4.1" element="led"><bounds x="8" y="2" width="1" height="1" /></bezel> - <bezel name="4.2" element="led"><bounds x="8" y="4" width="1" height="1" /></bezel> - <bezel name="4.3" element="led"><bounds x="8" y="6" width="1" height="1" /></bezel> - <bezel name="4.4" element="led"><bounds x="8" y="8" width="1" height="1" /></bezel> - <bezel name="4.5" element="led"><bounds x="8" y="10" width="1" height="1" /></bezel> - <bezel name="4.6" element="led"><bounds x="8" y="12" width="1" height="1" /></bezel> - <bezel name="4.7" element="led"><bounds x="8" y="14" width="1" height="1" /></bezel> - <bezel name="4.8" element="led"><bounds x="8" y="16" width="1" height="1" /></bezel> - <bezel name="4.9" element="led"><bounds x="8" y="18" width="1" height="1" /></bezel> - <bezel name="4.10" element="led"><bounds x="8" y="20" width="1" height="1" /></bezel> - <bezel name="4.11" element="led"><bounds x="8" y="22" width="1" height="1" /></bezel> - <bezel name="4.12" element="led"><bounds x="8" y="24" width="1" height="1" /></bezel> - <bezel name="4.13" element="led"><bounds x="8" y="26" width="1" height="1" /></bezel> - <bezel name="4.14" element="led"><bounds x="8" y="28" width="1" height="1" /></bezel> - <bezel name="4.15" element="led"><bounds x="8" y="30" width="1" height="1" /></bezel> - <bezel name="4.16" element="led"><bounds x="8" y="32" width="1" height="1" /></bezel> - <bezel name="4.17" element="led"><bounds x="8" y="34" width="1" height="1" /></bezel> - <bezel name="4.18" element="led"><bounds x="8" y="36" width="1" height="1" /></bezel> - <bezel name="4.19" element="led"><bounds x="8" y="38" width="1" height="1" /></bezel> - <bezel name="4.20" element="led"><bounds x="8" y="40" width="1" height="1" /></bezel> - <bezel name="4.21" element="led"><bounds x="8" y="42" width="1" height="1" /></bezel> - <bezel name="4.22" element="led"><bounds x="8" y="44" width="1" height="1" /></bezel> - <bezel name="4.23" element="led"><bounds x="8" y="46" width="1" height="1" /></bezel> - <bezel name="4.24" element="led"><bounds x="8" y="48" width="1" height="1" /></bezel> - <bezel name="4.25" element="led"><bounds x="8" y="50" width="1" height="1" /></bezel> - <bezel name="4.26" element="led"><bounds x="8" y="52" width="1" height="1" /></bezel> - <bezel name="4.27" element="led"><bounds x="8" y="54" width="1" height="1" /></bezel> - <bezel name="4.28" element="led"><bounds x="8" y="56" width="1" height="1" /></bezel> - <bezel name="4.29" element="led"><bounds x="8" y="58" width="1" height="1" /></bezel> - <bezel name="4.30" element="led"><bounds x="8" y="60" width="1" height="1" /></bezel> - <bezel name="4.31" element="led"><bounds x="8" y="62" width="1" height="1" /></bezel> - - <bezel name="5.0" element="led"><bounds x="10" y="0" width="1" height="1" /></bezel> - <bezel name="5.1" element="led"><bounds x="10" y="2" width="1" height="1" /></bezel> - <bezel name="5.2" element="led"><bounds x="10" y="4" width="1" height="1" /></bezel> - <bezel name="5.3" element="led"><bounds x="10" y="6" width="1" height="1" /></bezel> - <bezel name="5.4" element="led"><bounds x="10" y="8" width="1" height="1" /></bezel> - <bezel name="5.5" element="led"><bounds x="10" y="10" width="1" height="1" /></bezel> - <bezel name="5.6" element="led"><bounds x="10" y="12" width="1" height="1" /></bezel> - <bezel name="5.7" element="led"><bounds x="10" y="14" width="1" height="1" /></bezel> - <bezel name="5.8" element="led"><bounds x="10" y="16" width="1" height="1" /></bezel> - <bezel name="5.9" element="led"><bounds x="10" y="18" width="1" height="1" /></bezel> - <bezel name="5.10" element="led"><bounds x="10" y="20" width="1" height="1" /></bezel> - <bezel name="5.11" element="led"><bounds x="10" y="22" width="1" height="1" /></bezel> - <bezel name="5.12" element="led"><bounds x="10" y="24" width="1" height="1" /></bezel> - <bezel name="5.13" element="led"><bounds x="10" y="26" width="1" height="1" /></bezel> - <bezel name="5.14" element="led"><bounds x="10" y="28" width="1" height="1" /></bezel> - <bezel name="5.15" element="led"><bounds x="10" y="30" width="1" height="1" /></bezel> - <bezel name="5.16" element="led"><bounds x="10" y="32" width="1" height="1" /></bezel> - <bezel name="5.17" element="led"><bounds x="10" y="34" width="1" height="1" /></bezel> - <bezel name="5.18" element="led"><bounds x="10" y="36" width="1" height="1" /></bezel> - <bezel name="5.19" element="led"><bounds x="10" y="38" width="1" height="1" /></bezel> - <bezel name="5.20" element="led"><bounds x="10" y="40" width="1" height="1" /></bezel> - <bezel name="5.21" element="led"><bounds x="10" y="42" width="1" height="1" /></bezel> - <bezel name="5.22" element="led"><bounds x="10" y="44" width="1" height="1" /></bezel> - <bezel name="5.23" element="led"><bounds x="10" y="46" width="1" height="1" /></bezel> - <bezel name="5.24" element="led"><bounds x="10" y="48" width="1" height="1" /></bezel> - <bezel name="5.25" element="led"><bounds x="10" y="50" width="1" height="1" /></bezel> - <bezel name="5.26" element="led"><bounds x="10" y="52" width="1" height="1" /></bezel> - <bezel name="5.27" element="led"><bounds x="10" y="54" width="1" height="1" /></bezel> - <bezel name="5.28" element="led"><bounds x="10" y="56" width="1" height="1" /></bezel> - <bezel name="5.29" element="led"><bounds x="10" y="58" width="1" height="1" /></bezel> - <bezel name="5.30" element="led"><bounds x="10" y="60" width="1" height="1" /></bezel> - <bezel name="5.31" element="led"><bounds x="10" y="62" width="1" height="1" /></bezel> - - <bezel name="6.0" element="led"><bounds x="12" y="0" width="1" height="1" /></bezel> - <bezel name="6.1" element="led"><bounds x="12" y="2" width="1" height="1" /></bezel> - <bezel name="6.2" element="led"><bounds x="12" y="4" width="1" height="1" /></bezel> - <bezel name="6.3" element="led"><bounds x="12" y="6" width="1" height="1" /></bezel> - <bezel name="6.4" element="led"><bounds x="12" y="8" width="1" height="1" /></bezel> - <bezel name="6.5" element="led"><bounds x="12" y="10" width="1" height="1" /></bezel> - <bezel name="6.6" element="led"><bounds x="12" y="12" width="1" height="1" /></bezel> - <bezel name="6.7" element="led"><bounds x="12" y="14" width="1" height="1" /></bezel> - <bezel name="6.8" element="led"><bounds x="12" y="16" width="1" height="1" /></bezel> - <bezel name="6.9" element="led"><bounds x="12" y="18" width="1" height="1" /></bezel> - <bezel name="6.10" element="led"><bounds x="12" y="20" width="1" height="1" /></bezel> - <bezel name="6.11" element="led"><bounds x="12" y="22" width="1" height="1" /></bezel> - <bezel name="6.12" element="led"><bounds x="12" y="24" width="1" height="1" /></bezel> - <bezel name="6.13" element="led"><bounds x="12" y="26" width="1" height="1" /></bezel> - <bezel name="6.14" element="led"><bounds x="12" y="28" width="1" height="1" /></bezel> - <bezel name="6.15" element="led"><bounds x="12" y="30" width="1" height="1" /></bezel> - <bezel name="6.16" element="led"><bounds x="12" y="32" width="1" height="1" /></bezel> - <bezel name="6.17" element="led"><bounds x="12" y="34" width="1" height="1" /></bezel> - <bezel name="6.18" element="led"><bounds x="12" y="36" width="1" height="1" /></bezel> - <bezel name="6.19" element="led"><bounds x="12" y="38" width="1" height="1" /></bezel> - <bezel name="6.20" element="led"><bounds x="12" y="40" width="1" height="1" /></bezel> - <bezel name="6.21" element="led"><bounds x="12" y="42" width="1" height="1" /></bezel> - <bezel name="6.22" element="led"><bounds x="12" y="44" width="1" height="1" /></bezel> - <bezel name="6.23" element="led"><bounds x="12" y="46" width="1" height="1" /></bezel> - <bezel name="6.24" element="led"><bounds x="12" y="48" width="1" height="1" /></bezel> - <bezel name="6.25" element="led"><bounds x="12" y="50" width="1" height="1" /></bezel> - <bezel name="6.26" element="led"><bounds x="12" y="52" width="1" height="1" /></bezel> - <bezel name="6.27" element="led"><bounds x="12" y="54" width="1" height="1" /></bezel> - <bezel name="6.28" element="led"><bounds x="12" y="56" width="1" height="1" /></bezel> - <bezel name="6.29" element="led"><bounds x="12" y="58" width="1" height="1" /></bezel> - <bezel name="6.30" element="led"><bounds x="12" y="60" width="1" height="1" /></bezel> - <bezel name="6.31" element="led"><bounds x="12" y="62" width="1" height="1" /></bezel> - - <bezel name="7.0" element="led"><bounds x="14" y="0" width="1" height="1" /></bezel> - <bezel name="7.1" element="led"><bounds x="14" y="2" width="1" height="1" /></bezel> - <bezel name="7.2" element="led"><bounds x="14" y="4" width="1" height="1" /></bezel> - <bezel name="7.3" element="led"><bounds x="14" y="6" width="1" height="1" /></bezel> - <bezel name="7.4" element="led"><bounds x="14" y="8" width="1" height="1" /></bezel> - <bezel name="7.5" element="led"><bounds x="14" y="10" width="1" height="1" /></bezel> - <bezel name="7.6" element="led"><bounds x="14" y="12" width="1" height="1" /></bezel> - <bezel name="7.7" element="led"><bounds x="14" y="14" width="1" height="1" /></bezel> - <bezel name="7.8" element="led"><bounds x="14" y="16" width="1" height="1" /></bezel> - <bezel name="7.9" element="led"><bounds x="14" y="18" width="1" height="1" /></bezel> - <bezel name="7.10" element="led"><bounds x="14" y="20" width="1" height="1" /></bezel> - <bezel name="7.11" element="led"><bounds x="14" y="22" width="1" height="1" /></bezel> - <bezel name="7.12" element="led"><bounds x="14" y="24" width="1" height="1" /></bezel> - <bezel name="7.13" element="led"><bounds x="14" y="26" width="1" height="1" /></bezel> - <bezel name="7.14" element="led"><bounds x="14" y="28" width="1" height="1" /></bezel> - <bezel name="7.15" element="led"><bounds x="14" y="30" width="1" height="1" /></bezel> - <bezel name="7.16" element="led"><bounds x="14" y="32" width="1" height="1" /></bezel> - <bezel name="7.17" element="led"><bounds x="14" y="34" width="1" height="1" /></bezel> - <bezel name="7.18" element="led"><bounds x="14" y="36" width="1" height="1" /></bezel> - <bezel name="7.19" element="led"><bounds x="14" y="38" width="1" height="1" /></bezel> - <bezel name="7.20" element="led"><bounds x="14" y="40" width="1" height="1" /></bezel> - <bezel name="7.21" element="led"><bounds x="14" y="42" width="1" height="1" /></bezel> - <bezel name="7.22" element="led"><bounds x="14" y="44" width="1" height="1" /></bezel> - <bezel name="7.23" element="led"><bounds x="14" y="46" width="1" height="1" /></bezel> - <bezel name="7.24" element="led"><bounds x="14" y="48" width="1" height="1" /></bezel> - <bezel name="7.25" element="led"><bounds x="14" y="50" width="1" height="1" /></bezel> - <bezel name="7.26" element="led"><bounds x="14" y="52" width="1" height="1" /></bezel> - <bezel name="7.27" element="led"><bounds x="14" y="54" width="1" height="1" /></bezel> - <bezel name="7.28" element="led"><bounds x="14" y="56" width="1" height="1" /></bezel> - <bezel name="7.29" element="led"><bounds x="14" y="58" width="1" height="1" /></bezel> - <bezel name="7.30" element="led"><bounds x="14" y="60" width="1" height="1" /></bezel> - <bezel name="7.31" element="led"><bounds x="14" y="62" width="1" height="1" /></bezel> - - <bezel name="8.0" element="led"><bounds x="16" y="0" width="1" height="1" /></bezel> - <bezel name="8.1" element="led"><bounds x="16" y="2" width="1" height="1" /></bezel> - <bezel name="8.2" element="led"><bounds x="16" y="4" width="1" height="1" /></bezel> - <bezel name="8.3" element="led"><bounds x="16" y="6" width="1" height="1" /></bezel> - <bezel name="8.4" element="led"><bounds x="16" y="8" width="1" height="1" /></bezel> - <bezel name="8.5" element="led"><bounds x="16" y="10" width="1" height="1" /></bezel> - <bezel name="8.6" element="led"><bounds x="16" y="12" width="1" height="1" /></bezel> - <bezel name="8.7" element="led"><bounds x="16" y="14" width="1" height="1" /></bezel> - <bezel name="8.8" element="led"><bounds x="16" y="16" width="1" height="1" /></bezel> - <bezel name="8.9" element="led"><bounds x="16" y="18" width="1" height="1" /></bezel> - <bezel name="8.10" element="led"><bounds x="16" y="20" width="1" height="1" /></bezel> - <bezel name="8.11" element="led"><bounds x="16" y="22" width="1" height="1" /></bezel> - <bezel name="8.12" element="led"><bounds x="16" y="24" width="1" height="1" /></bezel> - <bezel name="8.13" element="led"><bounds x="16" y="26" width="1" height="1" /></bezel> - <bezel name="8.14" element="led"><bounds x="16" y="28" width="1" height="1" /></bezel> - <bezel name="8.15" element="led"><bounds x="16" y="30" width="1" height="1" /></bezel> - <bezel name="8.16" element="led"><bounds x="16" y="32" width="1" height="1" /></bezel> - <bezel name="8.17" element="led"><bounds x="16" y="34" width="1" height="1" /></bezel> - <bezel name="8.18" element="led"><bounds x="16" y="36" width="1" height="1" /></bezel> - <bezel name="8.19" element="led"><bounds x="16" y="38" width="1" height="1" /></bezel> - <bezel name="8.20" element="led"><bounds x="16" y="40" width="1" height="1" /></bezel> - <bezel name="8.21" element="led"><bounds x="16" y="42" width="1" height="1" /></bezel> - <bezel name="8.22" element="led"><bounds x="16" y="44" width="1" height="1" /></bezel> - <bezel name="8.23" element="led"><bounds x="16" y="46" width="1" height="1" /></bezel> - <bezel name="8.24" element="led"><bounds x="16" y="48" width="1" height="1" /></bezel> - <bezel name="8.25" element="led"><bounds x="16" y="50" width="1" height="1" /></bezel> - <bezel name="8.26" element="led"><bounds x="16" y="52" width="1" height="1" /></bezel> - <bezel name="8.27" element="led"><bounds x="16" y="54" width="1" height="1" /></bezel> - <bezel name="8.28" element="led"><bounds x="16" y="56" width="1" height="1" /></bezel> - <bezel name="8.29" element="led"><bounds x="16" y="58" width="1" height="1" /></bezel> - <bezel name="8.30" element="led"><bounds x="16" y="60" width="1" height="1" /></bezel> - <bezel name="8.31" element="led"><bounds x="16" y="62" width="1" height="1" /></bezel> - - <bezel name="9.0" element="led"><bounds x="18" y="0" width="1" height="1" /></bezel> - <bezel name="9.1" element="led"><bounds x="18" y="2" width="1" height="1" /></bezel> - <bezel name="9.2" element="led"><bounds x="18" y="4" width="1" height="1" /></bezel> - <bezel name="9.3" element="led"><bounds x="18" y="6" width="1" height="1" /></bezel> - <bezel name="9.4" element="led"><bounds x="18" y="8" width="1" height="1" /></bezel> - <bezel name="9.5" element="led"><bounds x="18" y="10" width="1" height="1" /></bezel> - <bezel name="9.6" element="led"><bounds x="18" y="12" width="1" height="1" /></bezel> - <bezel name="9.7" element="led"><bounds x="18" y="14" width="1" height="1" /></bezel> - <bezel name="9.8" element="led"><bounds x="18" y="16" width="1" height="1" /></bezel> - <bezel name="9.9" element="led"><bounds x="18" y="18" width="1" height="1" /></bezel> - <bezel name="9.10" element="led"><bounds x="18" y="20" width="1" height="1" /></bezel> - <bezel name="9.11" element="led"><bounds x="18" y="22" width="1" height="1" /></bezel> - <bezel name="9.12" element="led"><bounds x="18" y="24" width="1" height="1" /></bezel> - <bezel name="9.13" element="led"><bounds x="18" y="26" width="1" height="1" /></bezel> - <bezel name="9.14" element="led"><bounds x="18" y="28" width="1" height="1" /></bezel> - <bezel name="9.15" element="led"><bounds x="18" y="30" width="1" height="1" /></bezel> - <bezel name="9.16" element="led"><bounds x="18" y="32" width="1" height="1" /></bezel> - <bezel name="9.17" element="led"><bounds x="18" y="34" width="1" height="1" /></bezel> - <bezel name="9.18" element="led"><bounds x="18" y="36" width="1" height="1" /></bezel> - <bezel name="9.19" element="led"><bounds x="18" y="38" width="1" height="1" /></bezel> - <bezel name="9.20" element="led"><bounds x="18" y="40" width="1" height="1" /></bezel> - <bezel name="9.21" element="led"><bounds x="18" y="42" width="1" height="1" /></bezel> - <bezel name="9.22" element="led"><bounds x="18" y="44" width="1" height="1" /></bezel> - <bezel name="9.23" element="led"><bounds x="18" y="46" width="1" height="1" /></bezel> - <bezel name="9.24" element="led"><bounds x="18" y="48" width="1" height="1" /></bezel> - <bezel name="9.25" element="led"><bounds x="18" y="50" width="1" height="1" /></bezel> - <bezel name="9.26" element="led"><bounds x="18" y="52" width="1" height="1" /></bezel> - <bezel name="9.27" element="led"><bounds x="18" y="54" width="1" height="1" /></bezel> - <bezel name="9.28" element="led"><bounds x="18" y="56" width="1" height="1" /></bezel> - <bezel name="9.29" element="led"><bounds x="18" y="58" width="1" height="1" /></bezel> - <bezel name="9.30" element="led"><bounds x="18" y="60" width="1" height="1" /></bezel> - <bezel name="9.31" element="led"><bounds x="18" y="62" width="1" height="1" /></bezel> - - <bezel name="10.0" element="led"><bounds x="20" y="0" width="1" height="1" /></bezel> - <bezel name="10.1" element="led"><bounds x="20" y="2" width="1" height="1" /></bezel> - <bezel name="10.2" element="led"><bounds x="20" y="4" width="1" height="1" /></bezel> - <bezel name="10.3" element="led"><bounds x="20" y="6" width="1" height="1" /></bezel> - <bezel name="10.4" element="led"><bounds x="20" y="8" width="1" height="1" /></bezel> - <bezel name="10.5" element="led"><bounds x="20" y="10" width="1" height="1" /></bezel> - <bezel name="10.6" element="led"><bounds x="20" y="12" width="1" height="1" /></bezel> - <bezel name="10.7" element="led"><bounds x="20" y="14" width="1" height="1" /></bezel> - <bezel name="10.8" element="led"><bounds x="20" y="16" width="1" height="1" /></bezel> - <bezel name="10.9" element="led"><bounds x="20" y="18" width="1" height="1" /></bezel> - <bezel name="10.10" element="led"><bounds x="20" y="20" width="1" height="1" /></bezel> - <bezel name="10.11" element="led"><bounds x="20" y="22" width="1" height="1" /></bezel> - <bezel name="10.12" element="led"><bounds x="20" y="24" width="1" height="1" /></bezel> - <bezel name="10.13" element="led"><bounds x="20" y="26" width="1" height="1" /></bezel> - <bezel name="10.14" element="led"><bounds x="20" y="28" width="1" height="1" /></bezel> - <bezel name="10.15" element="led"><bounds x="20" y="30" width="1" height="1" /></bezel> - <bezel name="10.16" element="led"><bounds x="20" y="32" width="1" height="1" /></bezel> - <bezel name="10.17" element="led"><bounds x="20" y="34" width="1" height="1" /></bezel> - <bezel name="10.18" element="led"><bounds x="20" y="36" width="1" height="1" /></bezel> - <bezel name="10.19" element="led"><bounds x="20" y="38" width="1" height="1" /></bezel> - <bezel name="10.20" element="led"><bounds x="20" y="40" width="1" height="1" /></bezel> - <bezel name="10.21" element="led"><bounds x="20" y="42" width="1" height="1" /></bezel> - <bezel name="10.22" element="led"><bounds x="20" y="44" width="1" height="1" /></bezel> - <bezel name="10.23" element="led"><bounds x="20" y="46" width="1" height="1" /></bezel> - <bezel name="10.24" element="led"><bounds x="20" y="48" width="1" height="1" /></bezel> - <bezel name="10.25" element="led"><bounds x="20" y="50" width="1" height="1" /></bezel> - <bezel name="10.26" element="led"><bounds x="20" y="52" width="1" height="1" /></bezel> - <bezel name="10.27" element="led"><bounds x="20" y="54" width="1" height="1" /></bezel> - <bezel name="10.28" element="led"><bounds x="20" y="56" width="1" height="1" /></bezel> - <bezel name="10.29" element="led"><bounds x="20" y="58" width="1" height="1" /></bezel> - <bezel name="10.30" element="led"><bounds x="20" y="60" width="1" height="1" /></bezel> - <bezel name="10.31" element="led"><bounds x="20" y="62" width="1" height="1" /></bezel> - - <bezel name="11.0" element="led"><bounds x="22" y="0" width="1" height="1" /></bezel> - <bezel name="11.1" element="led"><bounds x="22" y="2" width="1" height="1" /></bezel> - <bezel name="11.2" element="led"><bounds x="22" y="4" width="1" height="1" /></bezel> - <bezel name="11.3" element="led"><bounds x="22" y="6" width="1" height="1" /></bezel> - <bezel name="11.4" element="led"><bounds x="22" y="8" width="1" height="1" /></bezel> - <bezel name="11.5" element="led"><bounds x="22" y="10" width="1" height="1" /></bezel> - <bezel name="11.6" element="led"><bounds x="22" y="12" width="1" height="1" /></bezel> - <bezel name="11.7" element="led"><bounds x="22" y="14" width="1" height="1" /></bezel> - <bezel name="11.8" element="led"><bounds x="22" y="16" width="1" height="1" /></bezel> - <bezel name="11.9" element="led"><bounds x="22" y="18" width="1" height="1" /></bezel> - <bezel name="11.10" element="led"><bounds x="22" y="20" width="1" height="1" /></bezel> - <bezel name="11.11" element="led"><bounds x="22" y="22" width="1" height="1" /></bezel> - <bezel name="11.12" element="led"><bounds x="22" y="24" width="1" height="1" /></bezel> - <bezel name="11.13" element="led"><bounds x="22" y="26" width="1" height="1" /></bezel> - <bezel name="11.14" element="led"><bounds x="22" y="28" width="1" height="1" /></bezel> - <bezel name="11.15" element="led"><bounds x="22" y="30" width="1" height="1" /></bezel> - <bezel name="11.16" element="led"><bounds x="22" y="32" width="1" height="1" /></bezel> - <bezel name="11.17" element="led"><bounds x="22" y="34" width="1" height="1" /></bezel> - <bezel name="11.18" element="led"><bounds x="22" y="36" width="1" height="1" /></bezel> - <bezel name="11.19" element="led"><bounds x="22" y="38" width="1" height="1" /></bezel> - <bezel name="11.20" element="led"><bounds x="22" y="40" width="1" height="1" /></bezel> - <bezel name="11.21" element="led"><bounds x="22" y="42" width="1" height="1" /></bezel> - <bezel name="11.22" element="led"><bounds x="22" y="44" width="1" height="1" /></bezel> - <bezel name="11.23" element="led"><bounds x="22" y="46" width="1" height="1" /></bezel> - <bezel name="11.24" element="led"><bounds x="22" y="48" width="1" height="1" /></bezel> - <bezel name="11.25" element="led"><bounds x="22" y="50" width="1" height="1" /></bezel> - <bezel name="11.26" element="led"><bounds x="22" y="52" width="1" height="1" /></bezel> - <bezel name="11.27" element="led"><bounds x="22" y="54" width="1" height="1" /></bezel> - <bezel name="11.28" element="led"><bounds x="22" y="56" width="1" height="1" /></bezel> - <bezel name="11.29" element="led"><bounds x="22" y="58" width="1" height="1" /></bezel> - <bezel name="11.30" element="led"><bounds x="22" y="60" width="1" height="1" /></bezel> - <bezel name="11.31" element="led"><bounds x="22" y="62" width="1" height="1" /></bezel> - - <bezel name="12.0" element="led"><bounds x="24" y="0" width="1" height="1" /></bezel> - <bezel name="12.1" element="led"><bounds x="24" y="2" width="1" height="1" /></bezel> - <bezel name="12.2" element="led"><bounds x="24" y="4" width="1" height="1" /></bezel> - <bezel name="12.3" element="led"><bounds x="24" y="6" width="1" height="1" /></bezel> - <bezel name="12.4" element="led"><bounds x="24" y="8" width="1" height="1" /></bezel> - <bezel name="12.5" element="led"><bounds x="24" y="10" width="1" height="1" /></bezel> - <bezel name="12.6" element="led"><bounds x="24" y="12" width="1" height="1" /></bezel> - <bezel name="12.7" element="led"><bounds x="24" y="14" width="1" height="1" /></bezel> - <bezel name="12.8" element="led"><bounds x="24" y="16" width="1" height="1" /></bezel> - <bezel name="12.9" element="led"><bounds x="24" y="18" width="1" height="1" /></bezel> - <bezel name="12.10" element="led"><bounds x="24" y="20" width="1" height="1" /></bezel> - <bezel name="12.11" element="led"><bounds x="24" y="22" width="1" height="1" /></bezel> - <bezel name="12.12" element="led"><bounds x="24" y="24" width="1" height="1" /></bezel> - <bezel name="12.13" element="led"><bounds x="24" y="26" width="1" height="1" /></bezel> - <bezel name="12.14" element="led"><bounds x="24" y="28" width="1" height="1" /></bezel> - <bezel name="12.15" element="led"><bounds x="24" y="30" width="1" height="1" /></bezel> - <bezel name="12.16" element="led"><bounds x="24" y="32" width="1" height="1" /></bezel> - <bezel name="12.17" element="led"><bounds x="24" y="34" width="1" height="1" /></bezel> - <bezel name="12.18" element="led"><bounds x="24" y="36" width="1" height="1" /></bezel> - <bezel name="12.19" element="led"><bounds x="24" y="38" width="1" height="1" /></bezel> - <bezel name="12.20" element="led"><bounds x="24" y="40" width="1" height="1" /></bezel> - <bezel name="12.21" element="led"><bounds x="24" y="42" width="1" height="1" /></bezel> - <bezel name="12.22" element="led"><bounds x="24" y="44" width="1" height="1" /></bezel> - <bezel name="12.23" element="led"><bounds x="24" y="46" width="1" height="1" /></bezel> - <bezel name="12.24" element="led"><bounds x="24" y="48" width="1" height="1" /></bezel> - <bezel name="12.25" element="led"><bounds x="24" y="50" width="1" height="1" /></bezel> - <bezel name="12.26" element="led"><bounds x="24" y="52" width="1" height="1" /></bezel> - <bezel name="12.27" element="led"><bounds x="24" y="54" width="1" height="1" /></bezel> - <bezel name="12.28" element="led"><bounds x="24" y="56" width="1" height="1" /></bezel> - <bezel name="12.29" element="led"><bounds x="24" y="58" width="1" height="1" /></bezel> - <bezel name="12.30" element="led"><bounds x="24" y="60" width="1" height="1" /></bezel> - <bezel name="12.31" element="led"><bounds x="24" y="62" width="1" height="1" /></bezel> - - <bezel name="13.0" element="led"><bounds x="26" y="0" width="1" height="1" /></bezel> - <bezel name="13.1" element="led"><bounds x="26" y="2" width="1" height="1" /></bezel> - <bezel name="13.2" element="led"><bounds x="26" y="4" width="1" height="1" /></bezel> - <bezel name="13.3" element="led"><bounds x="26" y="6" width="1" height="1" /></bezel> - <bezel name="13.4" element="led"><bounds x="26" y="8" width="1" height="1" /></bezel> - <bezel name="13.5" element="led"><bounds x="26" y="10" width="1" height="1" /></bezel> - <bezel name="13.6" element="led"><bounds x="26" y="12" width="1" height="1" /></bezel> - <bezel name="13.7" element="led"><bounds x="26" y="14" width="1" height="1" /></bezel> - <bezel name="13.8" element="led"><bounds x="26" y="16" width="1" height="1" /></bezel> - <bezel name="13.9" element="led"><bounds x="26" y="18" width="1" height="1" /></bezel> - <bezel name="13.10" element="led"><bounds x="26" y="20" width="1" height="1" /></bezel> - <bezel name="13.11" element="led"><bounds x="26" y="22" width="1" height="1" /></bezel> - <bezel name="13.12" element="led"><bounds x="26" y="24" width="1" height="1" /></bezel> - <bezel name="13.13" element="led"><bounds x="26" y="26" width="1" height="1" /></bezel> - <bezel name="13.14" element="led"><bounds x="26" y="28" width="1" height="1" /></bezel> - <bezel name="13.15" element="led"><bounds x="26" y="30" width="1" height="1" /></bezel> - <bezel name="13.16" element="led"><bounds x="26" y="32" width="1" height="1" /></bezel> - <bezel name="13.17" element="led"><bounds x="26" y="34" width="1" height="1" /></bezel> - <bezel name="13.18" element="led"><bounds x="26" y="36" width="1" height="1" /></bezel> - <bezel name="13.19" element="led"><bounds x="26" y="38" width="1" height="1" /></bezel> - <bezel name="13.20" element="led"><bounds x="26" y="40" width="1" height="1" /></bezel> - <bezel name="13.21" element="led"><bounds x="26" y="42" width="1" height="1" /></bezel> - <bezel name="13.22" element="led"><bounds x="26" y="44" width="1" height="1" /></bezel> - <bezel name="13.23" element="led"><bounds x="26" y="46" width="1" height="1" /></bezel> - <bezel name="13.24" element="led"><bounds x="26" y="48" width="1" height="1" /></bezel> - <bezel name="13.25" element="led"><bounds x="26" y="50" width="1" height="1" /></bezel> - <bezel name="13.26" element="led"><bounds x="26" y="52" width="1" height="1" /></bezel> - <bezel name="13.27" element="led"><bounds x="26" y="54" width="1" height="1" /></bezel> - <bezel name="13.28" element="led"><bounds x="26" y="56" width="1" height="1" /></bezel> - <bezel name="13.29" element="led"><bounds x="26" y="58" width="1" height="1" /></bezel> - <bezel name="13.30" element="led"><bounds x="26" y="60" width="1" height="1" /></bezel> - <bezel name="13.31" element="led"><bounds x="26" y="62" width="1" height="1" /></bezel> - - <bezel name="14.0" element="led"><bounds x="28" y="0" width="1" height="1" /></bezel> - <bezel name="14.1" element="led"><bounds x="28" y="2" width="1" height="1" /></bezel> - <bezel name="14.2" element="led"><bounds x="28" y="4" width="1" height="1" /></bezel> - <bezel name="14.3" element="led"><bounds x="28" y="6" width="1" height="1" /></bezel> - <bezel name="14.4" element="led"><bounds x="28" y="8" width="1" height="1" /></bezel> - <bezel name="14.5" element="led"><bounds x="28" y="10" width="1" height="1" /></bezel> - <bezel name="14.6" element="led"><bounds x="28" y="12" width="1" height="1" /></bezel> - <bezel name="14.7" element="led"><bounds x="28" y="14" width="1" height="1" /></bezel> - <bezel name="14.8" element="led"><bounds x="28" y="16" width="1" height="1" /></bezel> - <bezel name="14.9" element="led"><bounds x="28" y="18" width="1" height="1" /></bezel> - <bezel name="14.10" element="led"><bounds x="28" y="20" width="1" height="1" /></bezel> - <bezel name="14.11" element="led"><bounds x="28" y="22" width="1" height="1" /></bezel> - <bezel name="14.12" element="led"><bounds x="28" y="24" width="1" height="1" /></bezel> - <bezel name="14.13" element="led"><bounds x="28" y="26" width="1" height="1" /></bezel> - <bezel name="14.14" element="led"><bounds x="28" y="28" width="1" height="1" /></bezel> - <bezel name="14.15" element="led"><bounds x="28" y="30" width="1" height="1" /></bezel> - <bezel name="14.16" element="led"><bounds x="28" y="32" width="1" height="1" /></bezel> - <bezel name="14.17" element="led"><bounds x="28" y="34" width="1" height="1" /></bezel> - <bezel name="14.18" element="led"><bounds x="28" y="36" width="1" height="1" /></bezel> - <bezel name="14.19" element="led"><bounds x="28" y="38" width="1" height="1" /></bezel> - <bezel name="14.20" element="led"><bounds x="28" y="40" width="1" height="1" /></bezel> - <bezel name="14.21" element="led"><bounds x="28" y="42" width="1" height="1" /></bezel> - <bezel name="14.22" element="led"><bounds x="28" y="44" width="1" height="1" /></bezel> - <bezel name="14.23" element="led"><bounds x="28" y="46" width="1" height="1" /></bezel> - <bezel name="14.24" element="led"><bounds x="28" y="48" width="1" height="1" /></bezel> - <bezel name="14.25" element="led"><bounds x="28" y="50" width="1" height="1" /></bezel> - <bezel name="14.26" element="led"><bounds x="28" y="52" width="1" height="1" /></bezel> - <bezel name="14.27" element="led"><bounds x="28" y="54" width="1" height="1" /></bezel> - <bezel name="14.28" element="led"><bounds x="28" y="56" width="1" height="1" /></bezel> - <bezel name="14.29" element="led"><bounds x="28" y="58" width="1" height="1" /></bezel> - <bezel name="14.30" element="led"><bounds x="28" y="60" width="1" height="1" /></bezel> - <bezel name="14.31" element="led"><bounds x="28" y="62" width="1" height="1" /></bezel> - - <bezel name="15.0" element="led"><bounds x="30" y="0" width="1" height="1" /></bezel> - <bezel name="15.1" element="led"><bounds x="30" y="2" width="1" height="1" /></bezel> - <bezel name="15.2" element="led"><bounds x="30" y="4" width="1" height="1" /></bezel> - <bezel name="15.3" element="led"><bounds x="30" y="6" width="1" height="1" /></bezel> - <bezel name="15.4" element="led"><bounds x="30" y="8" width="1" height="1" /></bezel> - <bezel name="15.5" element="led"><bounds x="30" y="10" width="1" height="1" /></bezel> - <bezel name="15.6" element="led"><bounds x="30" y="12" width="1" height="1" /></bezel> - <bezel name="15.7" element="led"><bounds x="30" y="14" width="1" height="1" /></bezel> - <bezel name="15.8" element="led"><bounds x="30" y="16" width="1" height="1" /></bezel> - <bezel name="15.9" element="led"><bounds x="30" y="18" width="1" height="1" /></bezel> - <bezel name="15.10" element="led"><bounds x="30" y="20" width="1" height="1" /></bezel> - <bezel name="15.11" element="led"><bounds x="30" y="22" width="1" height="1" /></bezel> - <bezel name="15.12" element="led"><bounds x="30" y="24" width="1" height="1" /></bezel> - <bezel name="15.13" element="led"><bounds x="30" y="26" width="1" height="1" /></bezel> - <bezel name="15.14" element="led"><bounds x="30" y="28" width="1" height="1" /></bezel> - <bezel name="15.15" element="led"><bounds x="30" y="30" width="1" height="1" /></bezel> - <bezel name="15.16" element="led"><bounds x="30" y="32" width="1" height="1" /></bezel> - <bezel name="15.17" element="led"><bounds x="30" y="34" width="1" height="1" /></bezel> - <bezel name="15.18" element="led"><bounds x="30" y="36" width="1" height="1" /></bezel> - <bezel name="15.19" element="led"><bounds x="30" y="38" width="1" height="1" /></bezel> - <bezel name="15.20" element="led"><bounds x="30" y="40" width="1" height="1" /></bezel> - <bezel name="15.21" element="led"><bounds x="30" y="42" width="1" height="1" /></bezel> - <bezel name="15.22" element="led"><bounds x="30" y="44" width="1" height="1" /></bezel> - <bezel name="15.23" element="led"><bounds x="30" y="46" width="1" height="1" /></bezel> - <bezel name="15.24" element="led"><bounds x="30" y="48" width="1" height="1" /></bezel> - <bezel name="15.25" element="led"><bounds x="30" y="50" width="1" height="1" /></bezel> - <bezel name="15.26" element="led"><bounds x="30" y="52" width="1" height="1" /></bezel> - <bezel name="15.27" element="led"><bounds x="30" y="54" width="1" height="1" /></bezel> - <bezel name="15.28" element="led"><bounds x="30" y="56" width="1" height="1" /></bezel> - <bezel name="15.29" element="led"><bounds x="30" y="58" width="1" height="1" /></bezel> - <bezel name="15.30" element="led"><bounds x="30" y="60" width="1" height="1" /></bezel> - <bezel name="15.31" element="led"><bounds x="30" y="62" width="1" height="1" /></bezel> + <repeat count="32"> + <param name="x" start="0" increment="1" /> + <bezel name="~y~.~x~" element="led"><bounds x="~x~" y="~y~" width="0.5" height="0.5" /></bezel> + </repeat> + </repeat> </view> </mamelayout> diff --git a/src/mame/layout/msthawk.lay b/src/mame/layout/msthawk.lay new file mode 100644 index 00000000000..8a100ac0c88 --- /dev/null +++ b/src/mame/layout/msthawk.lay @@ -0,0 +1,22 @@ +<?xml version="1.0"?> +<mamelayout version="2"> + +<!-- define elements --> + + <element name="white"><rect><color red="0.85" green="0.85" blue="0.85" /></rect></element> + <element name="text_l"><text string="("><color red="0.85" green="0.85" blue="0.85" /></text></element> + <element name="text_r"><text string=")"><color red="0.85" green="0.85" blue="0.85" /></text></element> + + +<!-- build screen --> + + <view name="Internal Layout"> + <screen index="0"><bounds x="0" y="0" width="100" height="36.25" /></screen> + + <bezel element="text_l"><bounds x="38.2" y="14.5" width="1.35" height="6.5" /></bezel> + <bezel element="text_r"><bounds x="45.3" y="14.5" width="1.35" height="6.5" /></bezel> + <bezel element="white"><bounds x="37.45" y="18.25" width="1.1" height="0.35" /></bezel> + <bezel element="white"><bounds x="46.2" y="18.25" width="1.1" height="0.35" /></bezel> + + </view> +</mamelayout> diff --git a/src/mame/layout/mwcbaseb.lay b/src/mame/layout/mwcbaseb.lay new file mode 100644 index 00000000000..8a30292f40d --- /dev/null +++ b/src/mame/layout/mwcbaseb.lay @@ -0,0 +1,41 @@ +<?xml version="1.0"?> +<mamelayout version="2"> + +<!-- define elements --> + + <element name="gray"><disk><color red="0.45" green="0.45" blue="0.45" /></disk></element> + + +<!-- build screen --> + + <view name="Internal Layout"> + <screen index="0"><bounds x="0" y="0" width="96" height="23.9" /></screen> + + <!-- draw the baseball diamond --> + + <repeat count="200"> + <param name="x" start="21" increment="0.145" /> + <param name="y" start="16" increment="-0.0475" /> + <bezel element="gray"><bounds x="~x~" y="~y~" width="0.7" height="0.7" /><color alpha="0.15" /></bezel> + </repeat> + + <repeat count="199"> + <param name="x" start="21.145" increment="0.145" /> + <param name="y" start="16.0475" increment="0.0475" /> + <bezel element="gray"><bounds x="~x~" y="~y~" width="0.7" height="0.7" /><color alpha="0.15" /></bezel> + </repeat> + + <repeat count="200"> + <param name="x" start="50" increment="0.145" /> + <param name="y" start="6.5" increment="0.0475" /> + <bezel element="gray"><bounds x="~x~" y="~y~" width="0.7" height="0.7" /><color alpha="0.15" /></bezel> + </repeat> + + <repeat count="199"> + <param name="x" start="50" increment="0.145" /> + <param name="y" start="25.5" increment="-0.0475" /> + <bezel element="gray"><bounds x="~x~" y="~y~" width="0.7" height="0.7" /><color alpha="0.15" /></bezel> + </repeat> + + </view> +</mamelayout> diff --git a/src/mame/layout/packmon.lay b/src/mame/layout/packmon.lay new file mode 100644 index 00000000000..04078d516c4 --- /dev/null +++ b/src/mame/layout/packmon.lay @@ -0,0 +1,81 @@ +<?xml version="1.0"?> +<mamelayout version="2"> + +<!-- define elements --> + + <element name="white"><rect><color red="0.85" green="0.85" blue="0.85" /></rect></element> + + <element name="text_score"><text string="SCORE"><color red="0.95" green="0.95" blue="0.95" /></text></element> + <element name="text_warpl"><text string="< WARP" align="1"><color red="0.95" green="0.95" blue="0.95" /></text></element> + <element name="text_warpr"><text string="WARP >" align="1"><color red="0.95" green="0.95" blue="0.95" /></text></element> + + +<!-- build screen --> + + <view name="Internal Layout"> + <bounds left="-1.2" right="56.2" top="-2.9" bottom="17.4" /> + <screen index="0"><bounds x="0" y="0" width="48" height="17" /></screen> + + <bezel element="text_score"><bounds x="22.6" y="-2.8" width="10" height="2.2" /></bezel> + <bezel element="text_warpl"><bounds x="-0.7" y="14.7" width="10" height="2.2" /></bezel> + <bezel element="text_warpr"><bounds x="49" y="14.7" width="10" height="2.2" /></bezel> + + <!-- maze overlay --> + + <!-- h1 --> + <bezel element="white"><bounds x="6.3" y="-0.3" width="42.5" height="0.2" /></bezel> + + <!-- h2 --> + <bezel element="white"><bounds x="11.2" y="3.2" width="4.5" height="0.2" /></bezel> + <bezel element="white"><bounds x="20.4" y="3.2" width="14.3" height="0.2" /></bezel> + <bezel element="white"><bounds x="39.4" y="3.2" width="4.5" height="0.2" /></bezel> + + <!-- h3 --> + <bezel element="white"><bounds x="-1.2" y="6.7" width="5.1" height="0.2" /></bezel> + <bezel element="white"><bounds x="6.3" y="6.7" width="4.7" height="0.2" /></bezel> + <bezel element="white"><bounds x="15.9" y="6.7" width="9.2" height="0.2" /></bezel> + <bezel element="white"><bounds x="30.1" y="6.7" width="9.2" height="0.2" /></bezel> + <bezel element="white"><bounds x="44.1" y="6.7" width="4.7" height="0.2" /></bezel> + + <!-- h4 --> + <bezel element="white"><bounds x="-1.2" y="10.2" width="5.1" height="0.2" /></bezel> + <bezel element="white"><bounds x="11.0" y="10.2" width="4.7" height="0.2" /></bezel> + <bezel element="white"><bounds x="20.4" y="10.2" width="14.3" height="0.2" /></bezel> + <bezel element="white"><bounds x="39.4" y="10.2" width="4.7" height="0.2" /></bezel> + + <!-- h5 --> + <bezel element="white"><bounds x="-1.2" y="13.7" width="5.1" height="0.2" /></bezel> + <bezel element="white"><bounds x="5.5" y="13.7" width="1" height="0.2" /></bezel> + <bezel element="white"><bounds x="25.3" y="13.7" width="4.6" height="0.2" /></bezel> + <bezel element="white"><bounds x="48.6" y="13.7" width="1" height="0.2" /></bezel> + + <!-- h6 --> + <bezel element="white"><bounds x="7.3" y="17.2" width="40.5" height="0.2" /></bezel> + + <!-- v0 --> + <bezel element="white"><bounds x="3.7" y="6.7" width="0.2" height="7.2" /></bezel> + + <!-- v1 --> + <bezel element="white"><bounds x="6.3" y="-0.3" width="0.2" height="14.2" /></bezel> + + <!-- v2 --> + <bezel element="white"><bounds x="11.0" y="10.2" width="0.2" height="3.5" /></bezel> + + <!-- v4 --> + <bezel element="white"><bounds x="20.4" y="-0.3" width="0.2" height="3.7" /></bezel> + <bezel element="white"><bounds x="20.4" y="6.7" width="0.2" height="3.7" /></bezel> + <bezel element="white"><bounds x="20.4" y="13.9" width="0.2" height="3.5" /></bezel> + + <!-- v7 --> + <bezel element="white"><bounds x="34.5" y="-0.3" width="0.2" height="3.7" /></bezel> + <bezel element="white"><bounds x="34.5" y="6.7" width="0.2" height="3.7" /></bezel> + <bezel element="white"><bounds x="34.5" y="13.9" width="0.2" height="3.5" /></bezel> + + <!-- v9 --> + <bezel element="white"><bounds x="43.9" y="10.2" width="0.2" height="3.5" /></bezel> + + <!-- v10 --> + <bezel element="white"><bounds x="48.6" y="-0.3" width="0.2" height="14.2" /></bezel> + + </view> +</mamelayout> diff --git a/src/mame/layout/phpball.lay b/src/mame/layout/phpball.lay new file mode 100644 index 00000000000..bfaaf062914 --- /dev/null +++ b/src/mame/layout/phpball.lay @@ -0,0 +1,72 @@ +<?xml version="1.0"?> +<mamelayout version="2"> + +<!-- define elements --> + + <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.14" green="0.02" blue="0.03" /></disk> + <disk state="1"><color red="1.0" green="0.20" blue="0.22" /></disk> + </element> + <element name="ledr" defstate="0"> + <rect state="0"><color red="0.14" green="0.02" blue="0.03" /></rect> + <rect state="1"><color red="1.0" green="0.20" blue="0.22" /></rect> + </element> + + +<!-- build screen --> + + <view name="Internal Layout"> + <bounds left="0" right="100" top="0" bottom="178" /> + + <bezel name="digit2" element="digit"><bounds x="26" y="4" width="10" height="15" /></bezel> + <bezel name="digit1" element="digit"><bounds x="36" y="4" width="10" height="15" /></bezel> + <bezel name="digit0" element="digit"><bounds x="46" y="4" width="10" height="15" /></bezel> + + <bezel name="3.3" element="led"><bounds x="32.5" y="39.5" width="4.5" height="4.5" /></bezel> <!-- 1 --> + <bezel name="3.1" element="led"><bounds x="41.5" y="39.5" width="4.5" height="4.5" /></bezel> <!-- 2 --> + <bezel name="3.2" element="led"><bounds x="50.5" y="39.5" width="4.5" height="4.5" /></bezel> <!-- 3 --> + <bezel name="4.0" element="led"><bounds x="41.5" y="51" width="4.5" height="4.5" /></bezel> <!-- 4 --> + <bezel name="4.1" element="led"><bounds x="56.5" y="60" width="4.5" height="4.5" /></bezel> <!-- 5 --> + <bezel name="4.2" element="led"><bounds x="56.5" y="78" width="4.5" height="4.5" /></bezel> <!-- 6 --> + <bezel name="4.3" element="led"><bounds x="41.5" y="87" width="4.5" height="4.5" /></bezel> <!-- 7 --> + <bezel name="4.4" element="led"><bounds x="26.5" y="78" width="4.5" height="4.5" /></bezel> <!-- 8 --> + <bezel name="4.5" element="led"><bounds x="26.5" y="60" width="4.5" height="4.5" /></bezel> <!-- 9 --> + + <bezel name="5.0" element="led"><bounds x="81" y="46.5" width="4.5" height="4.5" /></bezel> <!-- 10 --> + <bezel name="5.5" element="led"><bounds x="70.5" y="69.5" width="4.5" height="4.5" /></bezel> <!-- 11 --> + <bezel name="5.1" element="led"><bounds x="81" y="92" width="4.5" height="4.5" /></bezel> <!-- 12 --> + <bezel name="5.2" element="led"><bounds x="41.5" y="105" width="4.5" height="4.5" /></bezel> <!-- 13 --> + <bezel name="5.3" element="led"><bounds x="2.5" y="92" width="4.5" height="4.5" /></bezel> <!-- 14 --> + <bezel name="6.0" element="led"><bounds x="12.5" y="69.5" width="4.5" height="4.5" /></bezel> <!-- 15 --> + <bezel name="5.4" element="led"><bounds x="6.5" y="46.5" width="4.5" height="4.5" /></bezel> <!-- 16 --> + <bezel name="6.1" element="led"><bounds x="41.5" y="123" width="4.5" height="4.5" /></bezel> <!-- 17 --> + <bezel name="6.2" element="led"><bounds x="24" y="133" width="4.5" height="4.5" /></bezel> <!-- 18 --> + <bezel name="6.3" element="led"><bounds x="58.5" y="133" width="4.5" height="4.5" /></bezel> <!-- 19 --> + + <bezel name="6.4" element="led"><bounds x="41.5" y="141" width="4.5" height="4.5" /></bezel> <!-- 20 --> + <bezel name="6.5" element="led"><bounds x="12.5" y="149" width="4.5" height="4.5" /></bezel> <!-- 21 --> + <bezel name="7.0" element="led"><bounds x="70.5" y="149" width="4.5" height="4.5" /></bezel> <!-- 22 --> + <bezel name="7.1" element="led"><bounds x="41.5" y="171" width="4.5" height="4.5" /></bezel> <!-- 23 --> + <bezel name="7.2" element="led"><bounds x="93" y="136.5" width="4.5" height="4.5" /></bezel> <!-- 24 --> + <bezel name="7.3" element="led"><bounds x="93" y="115" width="4.5" height="4.5" /></bezel> <!-- 25 --> + <bezel name="7.4" element="led"><bounds x="93" y="86.5" width="4.5" height="4.5" /></bezel> <!-- 26 --> + + <bezel name="3.0" element="led"><bounds x="41.5" y="69.5" width="4.5" height="4.5" /></bezel> <!-- A --> + <bezel name="3.4" element="led"><bounds x="20.5" y="105" width="4.5" height="4.5" /></bezel> <!-- B --> + <bezel name="3.5" element="led"><bounds x="62.5" y="105" width="4.5" height="4.5" /></bezel> <!-- C --> + <bezel name="8.0" element="led"><bounds x="7" y="115" width="4.5" height="4.5" /></bezel> <!-- D --> + <bezel name="8.1" element="led"><bounds x="76" y="115" width="4.5" height="4.5" /></bezel> <!-- E --> + <bezel name="8.2" element="led"><bounds x="35.5" y="156" width="4.5" height="4.5" /></bezel> <!-- F --> + <bezel name="8.3" element="led"><bounds x="47" y="156" width="4.5" height="4.5" /></bezel> <!-- G --> + + <bezel name="10.a" element="ledr"><bounds x="5.75" y="121" width="7" height="3" /></bezel> <!-- under D --> + <bezel name="9.a" element="ledr"><bounds x="74.75" y="121" width="7" height="3" /></bezel> <!-- under E --> + <bezel name="10.a" element="ledr"><bounds x="34.25" y="162" width="7" height="3" /></bezel> <!-- under F --> + <bezel name="9.a" element="ledr"><bounds x="45.75" y="162" width="7" height="3" /></bezel> <!-- under G --> + + </view> +</mamelayout> diff --git a/src/mame/layout/raisedvl.lay b/src/mame/layout/raisedvl.lay index 07893968116..e1025d378e0 100644 --- a/src/mame/layout/raisedvl.lay +++ b/src/mame/layout/raisedvl.lay @@ -23,54 +23,49 @@ <bezel name="digit0" element="digit"><bounds x="147" y="318" width="13" height="20" /></bezel> <bezel element="digit"><bounds x="160" y="318" width="13" height="20" /></bezel> <!-- unconnected --> - <bezel name="4.0" element="led"><bounds x="162" y="12" width="6" height="6" /></bezel> - <bezel name="4.1" element="led"><bounds x="118" y="12" width="6" height="6" /></bezel> - - <bezel name="4.2" element="led"><bounds x="63" y="47" width="6" height="6" /></bezel> - <bezel name="4.3" element="led"><bounds x="99" y="58" width="6" height="6" /></bezel> - <bezel name="4.4" element="led"><bounds x="140" y="58" width="6" height="6" /></bezel> - <bezel name="4.5" element="led"><bounds x="184" y="58" width="6" height="6" /></bezel> - <bezel name="3.4" element="led"><bounds x="217" y="47" width="6" height="6" /></bezel> - - <bezel name="3.0" element="led"><bounds x="235" y="226" width="6" height="6" /></bezel> - <bezel name="3.1" element="led"><bounds x="235" y="190" width="6" height="6" /></bezel> - <bezel name="3.2" element="led"><bounds x="235" y="154" width="6" height="6" /></bezel> - <bezel name="3.3" element="led"><bounds x="235" y="119" width="6" height="6" /></bezel> - - <bezel name="5.0" element="led"><bounds x="176" y="98" width="6" height="6" /></bezel> - <bezel name="5.1" element="led"><bounds x="140" y="110" width="6" height="6" /></bezel> - <bezel name="5.2" element="led"><bounds x="103" y="98" width="6" height="6" /></bezel> - - <bezel name="7.2" element="led"><bounds x="126" y="141" width="6" height="6" /></bezel> - <bezel name="7.3" element="led"><bounds x="153" y="141" width="6" height="6" /></bezel> - <bezel name="5.4" element="led"><bounds x="103" y="165" width="6" height="6" /></bezel> - <bezel name="7.4" element="led"><bounds x="140" y="177" width="6" height="6" /></bezel> - <bezel name="5.3" element="led"><bounds x="176" y="165" width="6" height="6" /></bezel> - - <bezel name="6.4" element="led"><bounds x="58" y="233" width="6" height="6" /></bezel> - <bezel name="6.0" element="led"><bounds x="89" y="201" width="6" height="6" /></bezel> - <bezel name="6.3" element="led"><bounds x="140" y="231" width="6" height="6" /></bezel> - <bezel name="6.1" element="led"><bounds x="188" y="201" width="6" height="6" /></bezel> - <bezel name="6.2" element="led"><bounds x="219" y="233" width="6" height="6" /></bezel> - <bezel name="6.5" element="led"><bounds x="140" y="293" width="6" height="6" /></bezel> - - <bezel name="8.4" element="led"><bounds x="113" y="250" width="6" height="6" /></bezel> - <bezel name="9.4" element="led"><bounds x="165" y="250" width="6" height="6" /></bezel> - - <bezel name="7.0" element="led"><bounds x="96" y="270" width="6" height="6" /></bezel> - <bezel name="8.1" element="led"><bounds x="108" y="264" width="6" height="6" /></bezel> - <bezel name="8.0" element="led"><bounds x="120" y="258" width="6" height="6" /></bezel> - <bezel name="9.1" element="led"><bounds x="158" y="258" width="6" height="6" /></bezel> - <bezel name="9.0" element="led"><bounds x="170" y="264" width="6" height="6" /></bezel> - <bezel name="7.1" element="led"><bounds x="180" y="270" width="6" height="6" /></bezel> - - <bezel name="8.2" element="led"><bounds x="108" y="276" width="6" height="6" /></bezel> - <bezel name="8.5" element="led"><bounds x="120" y="271" width="6" height="6" /></bezel> - <bezel name="9.5" element="led"><bounds x="158" y="271" width="6" height="6" /></bezel> - <bezel name="9.3" element="led"><bounds x="170" y="276" width="6" height="6" /></bezel> - - <bezel name="8.3" element="led"><bounds x="120" y="282" width="6" height="6" /></bezel> - <bezel name="9.2" element="led"><bounds x="158" y="282" width="6" height="6" /></bezel> + <bezel name="3.0" element="led"><bounds x="235" y="226" width="6" height="6" /></bezel> <!-- 1 --> + <bezel name="3.1" element="led"><bounds x="235" y="190" width="6" height="6" /></bezel> <!-- 2 --> + <bezel name="3.2" element="led"><bounds x="235" y="154" width="6" height="6" /></bezel> <!-- 3 --> + <bezel name="3.3" element="led"><bounds x="235" y="119" width="6" height="6" /></bezel> <!-- 4 --> + <bezel name="3.4" element="led"><bounds x="217" y="47" width="6" height="6" /></bezel> <!-- 5 --> + <bezel name="4.0" element="led"><bounds x="162" y="12" width="6" height="6" /></bezel> <!-- 6 --> + <bezel name="4.1" element="led"><bounds x="118" y="12" width="6" height="6" /></bezel> <!-- 7 --> + <bezel name="4.2" element="led"><bounds x="63" y="47" width="6" height="6" /></bezel> <!-- 8 --> + <bezel name="4.3" element="led"><bounds x="99" y="58" width="6" height="6" /></bezel> <!-- 9 --> + + <bezel name="4.4" element="led"><bounds x="140" y="58" width="6" height="6" /></bezel> <!-- 10 --> + <bezel name="4.5" element="led"><bounds x="184" y="58" width="6" height="6" /></bezel> <!-- 11 --> + <bezel name="5.0" element="led"><bounds x="176" y="98" width="6" height="6" /></bezel> <!-- 13 --> + <bezel name="5.1" element="led"><bounds x="140" y="110" width="6" height="6" /></bezel> <!-- 14 --> + <bezel name="5.2" element="led"><bounds x="103" y="98" width="6" height="6" /></bezel> <!-- 15 --> + <bezel name="7.2" element="led"><bounds x="126" y="141" width="6" height="6" /></bezel> <!-- 17 --> + <bezel name="7.3" element="led"><bounds x="153" y="141" width="6" height="6" /></bezel> <!-- 18 --> + + <bezel name="5.3" element="led"><bounds x="176" y="165" width="6" height="6" /></bezel> <!-- 20 --> + <bezel name="5.4" element="led"><bounds x="103" y="165" width="6" height="6" /></bezel> <!-- 21 --> + <bezel name="6.0" element="led"><bounds x="89" y="201" width="6" height="6" /></bezel> <!-- 23 --> + <bezel name="6.1" element="led"><bounds x="188" y="201" width="6" height="6" /></bezel> <!-- 24 --> + <bezel name="6.2" element="led"><bounds x="219" y="233" width="6" height="6" /></bezel> <!-- 25 --> + <bezel name="6.3" element="led"><bounds x="140" y="231" width="6" height="6" /></bezel> <!-- 26 --> + <bezel name="6.4" element="led"><bounds x="58" y="233" width="6" height="6" /></bezel> <!-- 27 --> + <bezel name="8.4" element="led"><bounds x="113" y="250" width="6" height="6" /></bezel> <!-- 28 --> + <bezel name="9.4" element="led"><bounds x="165" y="250" width="6" height="6" /></bezel> <!-- 29 --> + + <bezel name="9.5" element="led"><bounds x="158" y="271" width="6" height="6" /></bezel> <!-- 30 --> + <bezel name="8.5" element="led"><bounds x="120" y="271" width="6" height="6" /></bezel> <!-- 31 --> + <bezel name="6.5" element="led"><bounds x="140" y="293" width="6" height="6" /></bezel> <!-- 32 --> + <bezel name="7.4" element="led"><bounds x="140" y="177" width="6" height="6" /></bezel> <!-- 33 --> + <bezel name="7.0" element="led"><bounds x="96" y="270" width="6" height="6" /></bezel> <!-- 34 --> + <bezel name="7.1" element="led"><bounds x="180" y="270" width="6" height="6" /></bezel> <!-- 35 --> + <bezel name="8.0" element="led"><bounds x="120" y="258" width="6" height="6" /></bezel> <!-- 36 --> + <bezel name="8.1" element="led"><bounds x="108" y="264" width="6" height="6" /></bezel> <!-- 37 --> + <bezel name="8.2" element="led"><bounds x="108" y="276" width="6" height="6" /></bezel> <!-- 38 --> + <bezel name="8.3" element="led"><bounds x="120" y="282" width="6" height="6" /></bezel> <!-- 39 --> + + <bezel name="9.2" element="led"><bounds x="158" y="282" width="6" height="6" /></bezel> <!-- 40 --> + <bezel name="9.3" element="led"><bounds x="170" y="276" width="6" height="6" /></bezel> <!-- 41 --> + <bezel name="9.0" element="led"><bounds x="170" y="264" width="6" height="6" /></bezel> <!-- 42 --> + <bezel name="9.1" element="led"><bounds x="158" y="258" width="6" height="6" /></bezel> <!-- 43 --> </view> </mamelayout> diff --git a/src/mame/layout/tmtennis.lay b/src/mame/layout/tmtennis.lay new file mode 100644 index 00000000000..1bdddc7cd5e --- /dev/null +++ b/src/mame/layout/tmtennis.lay @@ -0,0 +1,56 @@ +<?xml version="1.0"?> +<mamelayout version="2"> + +<!-- define elements --> + + <element name="green"><rect><color red="0" green="0.5" blue="0" /></rect></element> + <element name="greena"><rect><color red="0" green="1" blue="0" /></rect></element> + <element name="greend"><rect><color red="0" green="1" blue="0" /></rect></element> + + +<!-- build screen --> + + <view name="Internal Layout"> + <screen index="0"><bounds x="10" y="10" width="64" height="13.9" /></screen> + + <!-- draw the tennis court --> + + <repeat count="201"> + <param name="x" start="6.9" increment="0.0475" /> + <param name="y" start="27" increment="-0.105" /> + <bezel element="greend"><bounds x="~x~" y="~y~" width="0.35" height="0.35" /><color alpha="0.18" /></bezel> + </repeat> + + <repeat count="201"> + <param name="x" start="76.8" increment="-0.0475" /> + <param name="y" start="27" increment="-0.105" /> + <bezel element="greend"><bounds x="~x~" y="~y~" width="0.35" height="0.35" /><color alpha="0.18" /></bezel> + </repeat> + + <repeat count="159"> + <param name="x" start="20.7" increment="0.029" /> + <param name="y" start="24.7" increment="-0.105" /> + <bezel element="greend"><bounds x="~x~" y="~y~" width="0.35" height="0.35" /><color alpha="0.18" /></bezel> + </repeat> + + <repeat count="159"> + <param name="x" start="63" increment="-0.029" /> + <param name="y" start="24.7" increment="-0.105" /> + <bezel element="greend"><bounds x="~x~" y="~y~" width="0.35" height="0.35" /><color alpha="0.18" /></bezel> + </repeat> + + <bezel element="greena"><bounds x="41.85" y="6" width="0.3" height="20" /><color alpha="0.5" /></bezel> + + <bezel element="green"><bounds x="16.5" y="6.1" width="51" height="0.3" /></bezel> + <bezel element="green"><bounds x="15.7" y="8" width="52.6" height="0.3" /></bezel> + + <bezel element="green"><bounds x="23.35" y="15.9" width="37.3" height="0.3" /></bezel> + + <bezel element="green"><bounds x="8.1" y="24.8" width="67.8" height="0.3" /></bezel> + <bezel element="green"><bounds x="7" y="27" width="70" height="0.3" /></bezel> + + <bezel element="green"><bounds x="41.4" y="2.3" width="1.2" height="3.9" /></bezel> + <bezel element="green"><bounds x="41.4" y="23" width="1.2" height="4.2" /></bezel> + + </view> +</mamelayout> diff --git a/src/mame/layout/wildfire.lay b/src/mame/layout/wildfire.lay index 3c9a3fae054..c8782668f27 100644 --- a/src/mame/layout/wildfire.lay +++ b/src/mame/layout/wildfire.lay @@ -3,41 +3,126 @@ <!-- define elements --> - <element name="static_black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></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="0"><color red="0.14" green="0.02" blue="0.03" /></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" /> - <bezel element="static_black"> - <bounds left="0" right="64" top="0" bottom="64" /> - </bezel> - - <bezel name="digit0" element="digit"><bounds x="0" y="0" width="10" height="15" /></bezel> - <bezel name="digit1" element="digit"><bounds x="10" y="0" width="10" height="15" /></bezel> - <bezel name="digit2" element="digit"><bounds x="20" y="0" width="10" height="15" /></bezel> - - <!-- 13*8 matrix (first 3 are the 7segs) --> - - <repeat count="13"> - <param name="ypos" start="20" increment="2" /> - <param name="rowno" start="0" increment="10" /> - <repeat count="8"> - <param name="xpos" start="0" increment="2" /> - <param name="lampno" start="~rowno~" increment="1" /> - <bezel name="lamp~lampno~" element="led"> - <bounds x="~xpos~" y="~ypos~" width="1" height="1" /> - </bezel> - </repeat> + <view name="Internal Layout"> + <bounds left="4" right="96.5" top="-2" bottom="172" /> + + <bezel name="digit0" element="digit"><bounds x="38" y="0" width="8" height="12" /></bezel> + <bezel name="digit1" element="digit"><bounds x="46" y="0" width="8" height="12" /></bezel> + <bezel name="digit2" element="digit"><bounds x="54" y="0" width="8" height="12" /></bezel> + + <bezel name="10.7" element="led"><bounds x="90.5" y="135" width="4" height="4" /></bezel> <!-- L1 --> + <bezel name="10.0" element="led"><bounds x="90.5" y="117" width="4" height="4" /></bezel> <!-- L2 --> + <bezel name="10.1" element="led"><bounds x="90.5" y="99" width="4" height="4" /></bezel> <!-- L3 --> + <bezel name="10.2" element="led"><bounds x="90.5" y="81.5" width="4" height="4" /></bezel> <!-- L4 --> + <bezel name="10.3" element="led"><bounds x="90.5" y="63.5" width="4" height="4" /></bezel> <!-- L5 --> + <bezel name="10.4" element="led"><bounds x="84" y="46" width="4" height="4" /></bezel> <!-- L6 --> + <bezel name="10.5" element="led"><bounds x="73" y="32.5" width="4" height="4" /></bezel> <!-- L7 --> + <bezel name="8.6" element="led"><bounds x="60.5" y="26" width="4" height="4" /></bezel> <!-- L8 --> + <bezel name="7.6" element="led"><bounds x="47.5" y="23.5" width="4" height="4" /></bezel> <!-- L9 --> + + <bezel name="6.6" element="led"><bounds x="34.5" y="26" width="4" height="4" /></bezel> <!-- L10 --> + <bezel name="5.6" element="led"><bounds x="21.5" y="32.5" width="4" height="4" /></bezel> <!-- L11 --> + <bezel name="6.5" element="led"><bounds x="34.5" y="43.5" width="4" height="4" /></bezel> <!-- L12 --> + <bezel name="7.5" element="led"><bounds x="47.5" y="41.5" width="4" height="4" /></bezel> <!-- L13 --> + <bezel name="8.5" element="led"><bounds x="60.5" y="43.5" width="4" height="4" /></bezel> <!-- L14 --> + <bezel name="9.4" element="led"><bounds x="73" y="54.5" width="4" height="4" /></bezel> <!-- L15 --> + <bezel name="8.4" element="led"><bounds x="65" y="59" width="4" height="4" /></bezel> <!-- L16 --> + <bezel name="7.4" element="led"><bounds x="52" y="65.5" width="4" height="4" /></bezel> <!-- L17 --> + <bezel name="11.2" element="led"><bounds x="34.5" y="57.5" width="4" height="4" /></bezel> <!-- L18 --> + <bezel name="5.5" element="led"><bounds x="21.5" y="54.5" width="4" height="4" /></bezel> <!-- L19 --> + + <bezel name="4.5" element="led"><bounds x="6.5" y="57.5" width="4" height="4" /></bezel> <!-- L20 --> + <bezel name="4.4" element="led"><bounds x="15.5" y="72.5" width="4" height="4" /></bezel> <!-- L21 --> + <bezel name="5.4" element="led"><bounds x="26" y="68" width="4" height="4" /></bezel> <!-- L22 --> + <bezel name="6.3" element="led"><bounds x="41" y="72.5" width="4" height="4" /></bezel> <!-- L23 --> + <bezel name="7.3" element="led"><bounds x="58.5" y="81.5" width="4" height="4" /></bezel> <!-- L24 --> + <bezel name="11.1" element="led"><bounds x="66.5" y="72.5" width="4" height="4" /></bezel> <!-- L25 --> + <bezel name="9.3" element="led"><bounds x="80" y="72.5" width="4" height="4" /></bezel> <!-- L26 --> + <bezel name="9.2" element="led"><bounds x="77.5" y="90" width="4" height="4" /></bezel> <!-- L27 --> + <bezel name="8.2" element="led"><bounds x="60.5" y="99" width="4" height="4" /></bezel> <!-- L28 --> + <bezel name="11.0" element="led"><bounds x="47.5" y="90" width="4" height="4" /></bezel> <!-- L29 --> + + <bezel name="5.3" element="led"><bounds x="30.5" y="81.5" width="4" height="4" /></bezel> <!-- L30 --> + <bezel name="4.3" element="led"><bounds x="17.5" y="90" width="4" height="4" /></bezel> <!-- L31 --> + <bezel name="5.2" element="led"><bounds x="32.5" y="90" width="4" height="4" /></bezel> <!-- L32 --> + <bezel name="5.1" element="led"><bounds x="21.5" y="108" width="4" height="4" /></bezel> <!-- L33 --> + <bezel name="11.7" element="led"><bounds x="32.5" y="108" width="4" height="4" /></bezel> <!-- L34 --> + <bezel name="7.1" element="led"><bounds x="47.5" y="112.5" width="4" height="4" /></bezel> <!-- L35 --> + <bezel name="9.1" element="led"><bounds x="73" y="108" width="4" height="4" /></bezel> <!-- L36 --> + <bezel name="5.0" element="led"><bounds x="13" y="126" width="4" height="4" /></bezel> <!-- L37 --> + <bezel name="6.1" element="led"><bounds x="32.5" y="121.5" width="4" height="4" /></bezel> <!-- L38 --> + <bezel name="8.1" element="led"><bounds x="63" y="121.5" width="4" height="4" /></bezel> <!-- L39 --> + + <bezel name="5.7" element="led"><bounds x="13" y="148.5" width="4" height="4" /></bezel> <!-- L40 --> + <bezel name="6.0" element="led"><bounds x="26" y="139" width="4" height="4" /></bezel> <!-- L41 --> + <bezel name="7.0" element="led"><bounds x="43" y="135" width="4" height="4" /></bezel> <!-- L42 --> + <bezel name="8.0" element="led"><bounds x="51.5" y="135" width="4" height="4" /></bezel> <!-- L43 --> + <bezel name="9.0" element="led"><bounds x="69" y="139" width="4" height="4" /></bezel> <!-- L44 --> + <bezel name="6.7" element="led"><bounds x="38.5" y="152.5" width="4" height="4" /></bezel> <!-- L45 --> + <bezel name="7.7" element="led"><bounds x="47.5" y="152.5" width="4" height="4" /></bezel> <!-- L46 --> + <bezel name="8.7" element="led"><bounds x="56.5" y="152.5" width="4" height="4" /></bezel> <!-- L47 --> + <bezel name="9.7" element="led"><bounds x="47.5" y="166" width="4" height="4" /></bezel> <!-- L48 --> + <bezel name="3.3" element="led"><bounds x="21.5" y="41.5" width="4" height="4" /></bezel> <!-- L70 --> + + <repeat count="40"> + <param name="x" start="10.8" increment="0.02308" /> + <param name="y" start="72" increment="-0.15128" /> + <bezel name="11.6" element="led"><bounds x="~x~" y="~y~" width="3" height="3" /></bezel> <!-- L50 --> + </repeat> + + <repeat count="40"> + <param name="x" start="28.6" increment="0.11795" /> + <param name="y" start="119" increment="-0.07949" /> + <bezel name="11.5" element="led"><bounds x="~x~" y="~y~" width="3" height="3" /></bezel> <!-- L51 --> + </repeat> + + <repeat count="40"> + <param name="x" start="78.7" increment="0.05128" /> + <param name="y" start="110.7" increment="-0.13846" /> + <bezel name="11.4" element="led"><bounds x="~x~" y="~y~" width="3" height="3" /></bezel> <!-- L52 --> + </repeat> + + <repeat count="40"> + <param name="x" start="10.7" increment="0.15897" /> + <param name="y" start="154.7" increment="0.0" /> + <bezel name="11.3" element="led"><bounds x="~x~" y="~y~" width="3" height="3" /></bezel> <!-- L53 --> + </repeat> + + <repeat count="40"> + <param name="x" start="61.8" increment="-0.11538" /> + <param name="y" start="151.4" increment="-0.12308" /> + <bezel name="3.6" element="led"><bounds x="~x~" y="~y~" width="3" height="3" /></bezel> <!-- L60 --> + </repeat> + + <repeat count="40"> + <param name="x" start="76.3" increment="0.13333" /> + <param name="y" start="84.2" increment="0.03333" /> + <bezel name="3.6" element="led"><bounds x="~x~" y="~y~" width="3" height="3" /></bezel> <!-- L61 --> + </repeat> + + <repeat count="40"> + <param name="x" start="34.2" increment="0.11538" /> + <param name="y" start="151.4" increment="-0.12308" /> + <bezel name="3.5" element="led"><bounds x="~x~" y="~y~" width="3" height="3" /></bezel> <!-- L62 --> </repeat> + + <repeat count="40"> + <param name="x" start="14.2" increment="0.14615" /> + <param name="y" start="86.5" increment="-0.05897" /> + <bezel name="3.5" element="led"><bounds x="~x~" y="~y~" width="3" height="3" /></bezel> <!-- L63 --> + </repeat> + </view> </mamelayout> diff --git a/src/mame/mame.lst b/src/mame/mame.lst index d5ee5f7d07f..57c1db7f4a9 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -12870,6 +12870,7 @@ vbrc // @source:fidel_cc10.cpp cc10 // +checkc4 // @source:fidel_cc7.cpp backgamc // @@ -12879,6 +12880,7 @@ cc7 // chesster // chesstera // kishon // +kishona // @source:fidel_csc.cpp csc // @@ -15075,6 +15077,7 @@ gnw_dkong // Nintendo gnw_dkong2 // Nintendo gnw_egg // Nintendo gnw_fire // Nintendo +gnw_fireatk // Nintendo gnw_ghouse // Nintendo gnw_lboat // Nintendo gnw_manhole // Nintendo @@ -15088,6 +15091,7 @@ gnw_rshower // Nintendo gnw_smb // Nintendo gnw_squish // Nintendo gnw_stennis // Nintendo +gnw_tbridge // Nintendo gnw_tfish // Nintendo kbilly // Konami kblades // Konami @@ -18182,8 +18186,10 @@ lckydraw // (c) 1979 Mirco lcmate2 // @source:leapfrog_leappad.cpp -leappad -mfleappad +leappad // (c) 2001 LeapFrog / Knowledge Kids Enterprises, Inc. +leappadca // (c) 2004 LeapFrog +mfleappad // (c) 2002 LeapFrog +mfleappadus // (c) 2004 LeapFrog @source:leapster.cpp leapster // @@ -38711,6 +38717,7 @@ vigilanto // (c) 1988 (US) @source:spg110.cpp jak_capb // +jak_spdmo // @source:vii.cpp jak_batm // The Batman, 2004 @@ -38746,6 +38753,7 @@ rad_fb2 // mattelcs // dreamlif // icanguit // +icanpian // @source:vsmile.cpp vsmile // @@ -39918,6 +39926,7 @@ rad_sbw // rad_bdp // has_wamg // ltv_tam // +tak_geig // ban_onep // ekara // ekaraa // @@ -39925,6 +39934,7 @@ ekaraj // ekarag // ekaraphs // epitch // +ekaramix // ddrfammt // popira // popira2 // diff --git a/src/osd/modules/debugger/qt/debuggerview.cpp b/src/osd/modules/debugger/qt/debuggerview.cpp index 71a736f6bb7..7dc16c0a3de 100644 --- a/src/osd/modules/debugger/qt/debuggerview.cpp +++ b/src/osd/modules/debugger/qt/debuggerview.cpp @@ -241,7 +241,7 @@ void DebuggerView::mousePressEvent(QMouseEvent* event) { QFontMetrics actualFont = fontMetrics(); const double fontWidth = actualFont.width(QString(100, '_')) / 100.; - const int fontHeight = std::max(1, actualFont.height()); + const int fontHeight = std::max(1, actualFont.lineSpacing()); debug_view_xy topLeft = m_view->visible_position(); debug_view_xy clickViewPosition; diff --git a/src/tools/unidasm.cpp b/src/tools/unidasm.cpp index 432a762c028..81b9f448140 100644 --- a/src/tools/unidasm.cpp +++ b/src/tools/unidasm.cpp @@ -55,6 +55,7 @@ using util::BIT; #include "cpu/hcd62121/hcd62121d.h" #include "cpu/hd61700/hd61700d.h" #include "cpu/hmcs40/hmcs40d.h" +#include "cpu/hpc/hpcdasm.h" #include "cpu/hphybrid/hphybrid_dasm.h" #include "cpu/i386/i386dasm.h" #include "cpu/i8008/8008dasm.h" @@ -360,6 +361,8 @@ static const dasm_table_entry dasm_table[] = { "hp_5061_3001", be, -1, []() -> util::disasm_interface * { return new hp_5061_3001_disassembler; } }, { "hp_5061_3011", be, -1, []() -> util::disasm_interface * { return new hp_5061_3011_disassembler; } }, { "hp_09825_67907", be, -1, []() -> util::disasm_interface * { return new hp_09825_67907_disassembler; } }, + { "hpc16083", le, 0, []() -> util::disasm_interface * { return new hpc16083_disassembler; } }, + { "hpc16164", le, 0, []() -> util::disasm_interface * { return new hpc16164_disassembler; } }, { "hyperstone", be, 0, []() -> util::disasm_interface * { return new hyperstone_disassembler(&hyperstone_unidasm); } }, { "i4004", le, 0, []() -> util::disasm_interface * { return new i4004_disassembler; } }, { "i4040", le, 0, []() -> util::disasm_interface * { return new i4040_disassembler; } }, |