mirror of
https://github.com/holub/mame
synced 2025-05-30 01:23:07 +03:00
Merge remote-tracking branch 'refs/remotes/mamedev/master' into interpro
This commit is contained in:
commit
f6cc05136b
5
3rdparty/bgfx/3rdparty/tinyexr/tinyexr.h
vendored
5
3rdparty/bgfx/3rdparty/tinyexr/tinyexr.h
vendored
@ -7076,8 +7076,7 @@ static const char *ReadString(std::string *s, const char *ptr) {
|
||||
static bool ReadAttribute(std::string *name, std::string *type,
|
||||
std::vector<unsigned char> *data, size_t *marker_size,
|
||||
const char *marker, size_t size) {
|
||||
using namespace bx;
|
||||
size_t name_len = strnlen(marker, size);
|
||||
size_t name_len = bx::strnlen(marker, size);
|
||||
if (name_len == size) {
|
||||
// String does not have a terminating character.
|
||||
return false;
|
||||
@ -7087,7 +7086,7 @@ static bool ReadAttribute(std::string *name, std::string *type,
|
||||
marker += name_len + 1;
|
||||
size -= name_len + 1;
|
||||
|
||||
size_t type_len = strnlen(marker, size);
|
||||
size_t type_len = bx::strnlen(marker, size);
|
||||
if (type_len == size) {
|
||||
return false;
|
||||
}
|
||||
|
@ -5035,8 +5035,8 @@ Info from Atariage and Atarimania
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="dodgeeme" cloneof="dodgeem">
|
||||
<description>Dodge 'Em (PAL)</description>
|
||||
<software name="dodgeeme2" cloneof="dodgeem">
|
||||
<description>Dodge 'Em (PAL, Earlier)</description>
|
||||
<year>1980</year>
|
||||
<publisher>Atari</publisher>
|
||||
<part name="cart" interface="a2600_cart">
|
||||
@ -5046,13 +5046,16 @@ Info from Atariage and Atarimania
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="dodgeemef" cloneof="dodgeem">
|
||||
<description>Dodge 'Em (PAL) (Fixed?)</description>
|
||||
<year>1980</year>
|
||||
<software name="dodgeeme" cloneof="dodgeem">
|
||||
<description>Dodge 'Em (PAL, Later)</description>
|
||||
<year>1987</year>
|
||||
<publisher>Atari</publisher>
|
||||
<info name="serial" value="CX2637" />
|
||||
<part name="cart" interface="a2600_cart">
|
||||
<feature name="pcb" value="C011885 REV F" />
|
||||
<feature name="u1" value="" /> <!-- ROM -->
|
||||
<dataarea name="rom" size="4096">
|
||||
<rom name="dodge 'em (head on) (1980) (atari, carla meninsky) (cx2637, cx2637p) (pal) [fixed].bin" size="4096" crc="10cfc6c0" sha1="b26674d6e30d1a0bb2719b9bb1b3ccfa346260cf" offset="0" />
|
||||
<rom name="AIP.u1" size="4096" crc="10cfc6c0" sha1="b26674d6e30d1a0bb2719b9bb1b3ccfa346260cf" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -7275,12 +7278,15 @@ Info from Atariage and Atarimania
|
||||
</software>
|
||||
|
||||
<software name="haunted">
|
||||
<description>Haunted House</description>
|
||||
<year>1982</year>
|
||||
<description>Haunted House (NTSC)</description>
|
||||
<year>1981</year>
|
||||
<publisher>Atari</publisher>
|
||||
<info name="serial" value="CX2654" />
|
||||
<part name="cart" interface="a2600_cart">
|
||||
<feature name="pcb" value="C011885 REV F" />
|
||||
<feature name="u1" value="" /> <!-- ROM -->
|
||||
<dataarea name="rom" size="4096">
|
||||
<rom name="haunted house (mystery mansion, graves' manor, nightmare manor) (1982) (atari, james andreasen - sears) (cx2654 - 49-75141).bin" size="4096" crc="aa62d961" sha1="1476c869619075b551b20f2c7f95b11e0d16aec1" offset="0" />
|
||||
<rom name="054.u1" size="4096" crc="aa62d961" sha1="1476c869619075b551b20f2c7f95b11e0d16aec1" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -10655,11 +10661,14 @@ Info from Atariage and Atarimania
|
||||
|
||||
<software name="outlawe" cloneof="outlaw">
|
||||
<description>Outlaw (PAL)</description>
|
||||
<year>1978</year>
|
||||
<year>1979</year>
|
||||
<publisher>Atari</publisher>
|
||||
<info name="serial" value="CX-2605-P" />
|
||||
<part name="cart" interface="a2600_cart">
|
||||
<feature name="pcb" value="C010789" />
|
||||
<feature name="u1" value="" /> <!-- ROM -->
|
||||
<dataarea name="rom" size="2048">
|
||||
<rom name="outlaw (1978) (atari, david crane) (cx2605, cx2605p) (pal).bin" size="2048" crc="64f136d2" sha1="4a1514a7cf4279fded1b0db6f5b31818b9ff011c" offset="0" />
|
||||
<rom name="B113.u1" size="2048" crc="64f136d2" sha1="4a1514a7cf4279fded1b0db6f5b31818b9ff011c" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -16865,11 +16874,15 @@ Info from Atariage and Atarimania
|
||||
|
||||
<software name="tubybird">
|
||||
<description>Tuby Bird (PAL)</description>
|
||||
<year>19??</year>
|
||||
<publisher>Suntek</publisher>
|
||||
<year>1983?</year>
|
||||
<publisher>Suntek, Quelle</publisher>
|
||||
<info name="serial" value="SS-020 (Suntek), 465.302 8 (Quelle)" />
|
||||
<info name="alt_title" value="Vogel Flieh (Quelle)"/>
|
||||
<part name="cart" interface="a2600_cart">
|
||||
<feature name="pcb" value="21003A" />
|
||||
<feature name="u1" value="" /> <!-- Epoxy blob ROM -->
|
||||
<dataarea name="rom" size="4096">
|
||||
<rom name="tuby bird (aka dolphin) (rainbow vision - suntek) (ss-020) (pal).bin" size="4096" crc="1ca034ca" sha1="f4f941b779bcb7902df0eb7cf6b985f56e751183" offset="0" />
|
||||
<rom name="u1" size="4096" crc="1ca034ca" sha1="f4f941b779bcb7902df0eb7cf6b985f56e751183" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -17539,9 +17552,12 @@ Info from Atariage and Atarimania
|
||||
<description>Weltraumtunnel (PAL)</description>
|
||||
<year>1983</year>
|
||||
<publisher>Quelle</publisher>
|
||||
<info name="alt_title" value="Laaser Voley"/>
|
||||
<part name="cart" interface="a2600_cart">
|
||||
<feature name="pcb" value="0019" />
|
||||
<feature name="u1" value="" /> <!-- Epoxy blob ROM -->
|
||||
<dataarea name="rom" size="4096">
|
||||
<rom name="weltraumtunnel (aka laser gates) (1983) (quelle) (292.651 7) (pal).bin" size="4096" crc="dc1d3627" sha1="c513703d638c01b0c26922d5e3e7bfb65ea597da" offset="0" />
|
||||
<rom name="u1" size="4096" crc="dc1d3627" sha1="c513703d638c01b0c26922d5e3e7bfb65ea597da" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
@ -4816,11 +4816,12 @@ Info on Sega chip labels (from Sunbeam / Digital Corruption)
|
||||
<description>Mega Games I (Euro)</description>
|
||||
<year>1992</year>
|
||||
<publisher>Sega</publisher>
|
||||
<info name="release" value="19921001"/>
|
||||
<part name="cart" interface="megadriv_cart">
|
||||
<feature name="pcb" value="171-5978BA"/>
|
||||
<feature name="pcb" value="171-5978BA"/> <!-- Also found with 171-5978B -->
|
||||
<feature name="u1" value="MPR-15009 W50"/> <!-- location not really marked on PCB, using u1 for consistency -->
|
||||
<dataarea name="rom" width="16" endianness="big" size="1048576">
|
||||
<rom name="mpr-15009 w50.u1" size="1048576" crc="db753224" sha1="076df34a01094ce0893f32600e24323567e2a23b" offset="0x000000"/>
|
||||
<rom name="MPR-15009 W50.u1" size="1048576" crc="db753224" sha1="076df34a01094ce0893f32600e24323567e2a23b" offset="0x000000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -7385,11 +7386,12 @@ Info on Sega chip labels (from Sunbeam / Digital Corruption)
|
||||
<description>Sonic the Hedgehog (Euro, USA)</description>
|
||||
<year>1991</year>
|
||||
<publisher>Sega</publisher>
|
||||
<info name="release" value="19910623"/>
|
||||
<part name="cart" interface="megadriv_cart">
|
||||
<feature name="pcb" value="171-5703"/>
|
||||
<feature name="ic1" value="MPR-13913-F, MPR-13913 W33"/>
|
||||
<dataarea name="rom" width="16" endianness="big" size="524288">
|
||||
<rom name="mpr-13913-f.ic1" size="524288" crc="f9394e97" sha1="6ddb7de1e17e7f6cdb88927bd906352030daa194" offset="0x000000"/>
|
||||
<rom name="MPR-13913-F.ic1" size="524288" crc="f9394e97" sha1="6ddb7de1e17e7f6cdb88927bd906352030daa194" offset="0x000000"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
@ -10899,9 +10899,16 @@ clips onto the player's ear.
|
||||
<year>1999</year>
|
||||
<publisher>Acclaim Entertainment</publisher>
|
||||
<info name="serial" value="NUS-NRWD-NOE"/>
|
||||
<info name="release" value="19991226"/>
|
||||
<info name="alt_title" value="Turok - Rage Wars (Cart)"/>
|
||||
<part name="cart" interface="n64_cart">
|
||||
<feature name="pcb_model" value="NUS-01A-02" />
|
||||
<feature name="u1" value="U1" /> <!-- ROM -->
|
||||
<feature name="u2" value="U2" /> <!-- empty socket -->
|
||||
<feature name="u3" value="U3" /> <!-- CIC -->
|
||||
<feature name="cart_back_label" value="NUS-EUR-1" />
|
||||
<dataarea name="rom" size="8388608">
|
||||
<rom name="turok - legenden des verlorenen landes (germany).bin" size="8388608" crc="a2754ca4" sha1="51792351f4fd61c11f4b3b755a5eb8b9ea725b72" offset="000000" />
|
||||
<rom name="NUS-NRWD-0.u1" size="8388608" crc="a2754ca4" sha1="51792351f4fd61c11f4b3b755a5eb8b9ea725b72" offset="000000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
@ -9929,8 +9929,8 @@ more investigation needed...
|
||||
<feature name="cart_back_label" value="920214" />
|
||||
<feature name="slot" value="hirom" />
|
||||
<dataarea name="rom" size="3145728">
|
||||
<rom name="shvc-adkj-0 p0.u1" size="2097152" crc="5b606ef7" sha1="6b47084fba80ce07347010a7bb4af063f058936b" offset="0x000000" />
|
||||
<rom name="shvc-adkj-0 p3.u2" size="1048576" crc="5b379b50" sha1="83b0507f1a84e686d76b5b869c1a5f2e22278097" offset="0x200000" />
|
||||
<rom name="SHVC-ADKJ-0 P0.u1" size="2097152" crc="5b606ef7" sha1="6b47084fba80ce07347010a7bb4af063f058936b" offset="0x000000" />
|
||||
<rom name="SHVC-ADKJ-0 P3.u2" size="1048576" crc="5b379b50" sha1="83b0507f1a84e686d76b5b869c1a5f2e22278097" offset="0x200000" />
|
||||
</dataarea>
|
||||
<dataarea name="nvram" size="8192">
|
||||
</dataarea>
|
||||
@ -11930,7 +11930,7 @@ more investigation needed...
|
||||
<feature name="cart_back_label" value="901121" />
|
||||
<feature name="slot" value="lorom" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="shvc-eh-0.u1" size="1048576" crc="5cb9bc35" sha1="745ebf8164ca7be58829c6130c0e06f330cd0748" offset="0x000000" />
|
||||
<rom name="SHVC-EH-0.u1" size="1048576" crc="5cb9bc35" sha1="745ebf8164ca7be58829c6130c0e06f330cd0748" offset="0x000000" />
|
||||
</dataarea>
|
||||
<dataarea name="nvram" size="8192">
|
||||
</dataarea>
|
||||
@ -19340,17 +19340,17 @@ more investigation needed...
|
||||
<description>Nintendo Scope 6 (Euro)</description>
|
||||
<year>1992</year>
|
||||
<publisher>Nintendo</publisher>
|
||||
<info name="serial" value="SNSP-LR-FAH, SNSP-LR-FAH-1" />
|
||||
<info name="serial" value="SNSP-LR-FAH, SNSP-LR-FAH-1, SNSP-LR-UKV" />
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="pcb" value="SHVC-1A0N-02" />
|
||||
<feature name="u1" value="U1 MASK ROM" />
|
||||
<feature name="u2" value="U2 CIC" />
|
||||
<feature name="lockout" value="" />
|
||||
<feature name="cart_model" value="SNSP-006" />
|
||||
<feature name="cart_back_label" value="SNSP-FAH" />
|
||||
<feature name="cart_back_label" value="SNSP-FAH, SNSP-UKV" />
|
||||
<feature name="slot" value="lorom" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="spal-lr-0.u1" size="1048576" crc="b1859ca4" sha1="e5efb589e2dd783ef2d99f01caa866d8a3a04d16" offset="0x000000" />
|
||||
<rom name="SPAL-LR-0.u1" size="1048576" crc="b1859ca4" sha1="e5efb589e2dd783ef2d99f01caa866d8a3a04d16" offset="0x000000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -25243,7 +25243,7 @@ more investigation needed...
|
||||
<feature name="cart_back_label" value="920214" />
|
||||
<feature name="slot" value="lorom" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="shvc-fc-0.u1" size="1048576" crc="7c94c86c" sha1="9d60d55b690c02413aa668ed9da196b4f1449e81" offset="0x000000" />
|
||||
<rom name="SHVC-FC-0.u1" size="1048576" crc="7c94c86c" sha1="9d60d55b690c02413aa668ed9da196b4f1449e81" offset="0x000000" />
|
||||
</dataarea>
|
||||
<dataarea name="nvram" size="8192">
|
||||
</dataarea>
|
||||
@ -28147,7 +28147,7 @@ Alternate board (XL-1)
|
||||
<feature name="cart_back_label" value="SNSP-EUR, SNSP-FAH" />
|
||||
<feature name="slot" value="lorom" />
|
||||
<dataarea name="rom" size="524288">
|
||||
<rom name="spal-fs-0.u1" size="524288" crc="442c47cb" sha1="6eb6dd6da1e8eefad24c30b59ededbd671b9db2c" offset="0x000000" />
|
||||
<rom name="SPAL-FS-0.u1" size="524288" crc="442c47cb" sha1="6eb6dd6da1e8eefad24c30b59ededbd671b9db2c" offset="0x000000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -33286,6 +33286,26 @@ Alternate board (XL-1)
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="lostvik">
|
||||
<description>The Lost Vikings (Euro)</description>
|
||||
<year>1993</year>
|
||||
<publisher>Interplay</publisher>
|
||||
<info name="serial" value="SNSP-LV-SCN" />
|
||||
<info name="release" value="19931028" />
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="pcb" value="SHVC-1A0N-20" />
|
||||
<feature name="u1" value="U1 MASK ROM" />
|
||||
<feature name="u2" value="U2 CIC" />
|
||||
<feature name="lockout" value="" />
|
||||
<feature name="cart_model" value="SNSP-006" />
|
||||
<feature name="cart_back_label" value="SNSP-UKV" />
|
||||
<feature name="slot" value="lorom" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="SPAL-LV-0.u1" size="1048576" crc="66989491" sha1="2bd4c2af6e5d7252d16342fd1a64454dca3ce557" offset="0x000000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="turnburns" cloneof="turnburn">
|
||||
<!-- single cartridge source: Zidanax -->
|
||||
@ -46113,18 +46133,6 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="lostvik">
|
||||
<description>The Lost Vikings (Euro)</description>
|
||||
<year>1993</year>
|
||||
<publisher>Interplay</publisher>
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="slot" value="lorom" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="lost vikings, the (europe).sfc" size="1048576" crc="66989491" sha1="2bd4c2af6e5d7252d16342fd1a64454dca3ce557" offset="0x000000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="lostvikf" cloneof="lostvik">
|
||||
<description>The Lost Vikings (Fra)</description>
|
||||
<year>1993</year>
|
||||
@ -59520,19 +59528,6 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- Most likely this is simply a bad dump of syvalionp. -->
|
||||
<software name="syvalionp2" cloneof="syvalion">
|
||||
<description>Syvalion (Euro, Prototype 2)</description>
|
||||
<year>1992</year>
|
||||
<publisher>Toshiba EMI</publisher>
|
||||
<part name="cart" interface="snes_cart">
|
||||
<feature name="slot" value="lorom" />
|
||||
<dataarea name="rom" size="1048576">
|
||||
<rom name="syvalion (europe) (beta).sfc" size="1048576" crc="be122755" sha1="ddfa611f1177f371c1107dbd8e8ecdb19011a232" offset="0x000000" status="baddump" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="syvalion">
|
||||
<description>Syvalion (Euro)</description>
|
||||
<year>1992</year>
|
||||
|
3608
hash/vsmile_cart.xml
3608
hash/vsmile_cart.xml
File diff suppressed because it is too large
Load Diff
181
hash/vsmileb_cart.xml
Normal file
181
hash/vsmileb_cart.xml
Normal file
@ -0,0 +1,181 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
|
||||
<!--
|
||||
NOTE: This list is here only to document available dumps and it's not used (yet) by MESS!
|
||||
-->
|
||||
|
||||
<!--
|
||||
|
||||
V.Smile Motion: 80-08**** (Smartridges are orange)
|
||||
V.Smile Smartbook Software: 80-089*** (Smartridges are red)
|
||||
V.Smile: 80-09**** (Smartridges are purple, some are gray because of plastic defects)
|
||||
V.Smile Baby 80-099*** (Smartridges are yellow, incompatible with TV based V.Smile consoles)
|
||||
|
||||
Language:
|
||||
********0 = US (White labels on back)
|
||||
********1 = Italy Apparently distributed by company 'Giochi Preziosi'
|
||||
********2 = Netherlands (Red or White labels on back)
|
||||
********3 = UK (Red labels on back)
|
||||
********4 = Germany (Blue labels on back)
|
||||
********5 = France (Yellow labels on back, also for NTSC French-Canadian)
|
||||
********6 = Portugal Apparently distributed by company 'Concentra' (White labels on back)
|
||||
********7 = Spain (Green labels on back)
|
||||
*******13 = Denmark Distributed by the company 'Top Toy A/S'
|
||||
*******14 = Sweden Distributed by the company 'Top Toy A/S'
|
||||
*******15 = Norway
|
||||
*******?? = Finland
|
||||
|
||||
VTech V.Smile Baby cartridges
|
||||
+========+===================+============================================================================+
|
||||
| Dumped | Serial | Name |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-099000(US) | Learn and Discover Home (white background on title) (pack-in) |
|
||||
| | 80-099000(US) | Learn and Discover Home (green background on title) (standalone) |
|
||||
| | 80-099002(NL) | Dierenhuis |
|
||||
| | 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 |
|
||||
+========+===================+============================================================================+
|
||||
| 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 |
|
||||
| | 80-099025(FR) | Winnie et ses amis dans la Faret des Reves Bieus |
|
||||
| XX | 80-099034(SE) | Nalle Puhs Äventyr i Sjumilaskogen |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-099040(US) | Baby Einstein - World of Discoveries |
|
||||
| | 80-099040(US) | Baby Einstein - World of Discoveries (no # on front label) |
|
||||
| | 80-099043(UK) | Baby Einstein - World of Discoveries |
|
||||
| | 80-099045(FR) | Baby Einstein - Un Monde de decouvertes |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-099060(US) | A Day On The Farm |
|
||||
| | 80-099063(UK) | A Day On The Farm |
|
||||
| XX | 80-099064(GE) | Mein erster Bauernhof |
|
||||
| | 80-099065(FR) | Un jour a la ferme |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-099080(US) | <Unknown> |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-099100(US) | Noah's Ark Animal Adventure |
|
||||
| | 80-099102(NL) | De ark van Noach |
|
||||
| | 80-099103(UK) | Noah's Ark Animal Adventure |
|
||||
| | 80-099105(FR) | L'arche de Noe - L'aventure des animaux |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-099120(US) | Barney - Let's Go to a Party |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-099140(US) | Teletubbies |
|
||||
| | 80-099142(NL) | Teletubbies |
|
||||
| | 80-099143(UK) | Teletubbies |
|
||||
| | 80-099145(FR) | Teletubbies |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-099160(US) | Discovery with Baby Mickey and Friends |
|
||||
| | 80-099163(UK) | Discovery with Baby Mickey and Friends |
|
||||
| | 80-099165(UK) | Les decouvertes de Mickey et ses amis |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-099180(US) | Bailey Goes To Town (Included Bailey Plush Bear Controller) |
|
||||
| | 80-099183(UK) | Bailey Goes To Town (Included Bailey Plush Bear Controller) |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-099200(US) | Mother Goose |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-099220(US) | Care Bears Play Day |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-099240(US) | Backyardigans: Big Backyard Adventures |
|
||||
+========+===================+============================================================================+
|
||||
|
||||
VTech V.Baby cartridges. Note that the VTech V.Baby is not the same console as the VTech V.Smile Baby.
|
||||
The V.Baby currently have no dumps available, hence the carts are temporarily listed here.
|
||||
+========+===================+============================================================================+
|
||||
| Dumped | Serial | Name |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-107100-001(US) | Meet Me at the Zoo (Orange, V.Baby packin) |
|
||||
| | 80-220000(US) | The World of Eric Carle - The Very Hungry Caterpillar |
|
||||
| | 80-220600(US) | Backyardigans |
|
||||
| | 80-220700(US) | Noah's Ark - Animal Adventures |
|
||||
| | 80-220800(US) | Mother Goose |
|
||||
+========+===================+============================================================================+
|
||||
|
||||
-->
|
||||
|
||||
<softwarelist name="vsmileb_cart" description="VTech V.Smile Baby cartridges">
|
||||
|
||||
<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>
|
||||
|
||||
<software name="bauernhf" supported="no">
|
||||
<description>Mein erster Bauernhof (Ger)</description>
|
||||
<year>200?</year>
|
||||
<publisher>VTech</publisher>
|
||||
<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" /> <!-- ROM -->
|
||||
<dataarea name="rom" size="8388608">
|
||||
<rom name="27-08788-000.u4" size="8388608" crc="581e16f9" sha1="330b309644db9f017d275b9df0ffe7530ed5bcef" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="poohhawa" supported="no">
|
||||
<description>Pooh's Hundred Acre Wood Adventure (USA)</description>
|
||||
<year>2007</year>
|
||||
<publisher>VTech</publisher>
|
||||
<info name="serial" value="80-099020(US)" />
|
||||
<part name="cart" interface="vsmileb_cart">
|
||||
<dataarea name="rom" size="8388608">
|
||||
<rom name="099020.bin" size="8388608" crc="a3ac4cd4" sha1="3562c632e0a1e70cb9e382ebb823449757afed67" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="poohhawag" cloneof="poohhawa" supported="no">
|
||||
<description>Puuhs Hundert-Morgen-Wald (Ger)</description>
|
||||
<year>2006?</year>
|
||||
<publisher>VTech</publisher>
|
||||
<info name="serial" value="80-099024(GE)" />
|
||||
<part name="cart" interface="vsmileb_cart">
|
||||
<feature name="pcb" value="707155" />
|
||||
<feature name="pcb_model" value="707155-2" />
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="poohhawasw" cloneof="poohhawa" supported="no">
|
||||
<description>Nalle Puhs Äventyr i Sjumilaskogen (Swe)</description>
|
||||
<year>2007?</year>
|
||||
<publisher>VTech</publisher>
|
||||
<info name="serial" value="80-099034(SE)" />
|
||||
<part name="cart" interface="vsmileb_cart">
|
||||
<feature name="pcb" value="707154" />
|
||||
<feature name="pcb_model" value="707154-4" />
|
||||
<feature name="u4" value="U4" /> <!-- EPOXY BLOB ROM -->
|
||||
<dataarea name="rom" size="8388608">
|
||||
<rom name="99034.u4" size="8388608" crc="5dbe1c20" sha1="51f56cedbe99fc7438429a4c02c08f65d2313790" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="lupptack" cloneof="mktierf" supported="no">
|
||||
<description>Lär och upptäck (Swe)</description>
|
||||
<year>200?</year>
|
||||
<publisher>VTech</publisher>
|
||||
<info name="serial" value="80-099014(SE)" />
|
||||
<part name="cart" interface="vsmileb_cart">
|
||||
<feature name="pcb" value="707155" />
|
||||
<feature name="pcb_model" value="707155-2" />
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
331
hash/vsmilem_cart.xml
Normal file
331
hash/vsmilem_cart.xml
Normal file
@ -0,0 +1,331 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
|
||||
<!--
|
||||
NOTE: This list is here only to document available dumps and it's not used (yet) by MESS!
|
||||
-->
|
||||
|
||||
<!--
|
||||
|
||||
V.Smile Motion: 80-08**** (Smartridges are orange)
|
||||
V.Smile Smartbook Software: 80-089*** (Smartridges are red)
|
||||
V.Smile: 80-09**** (Smartridges are purple, some are gray because of plastic defects)
|
||||
V.Smile Baby 80-099*** (Smartridges are yellow, incompatible with TV based V.Smile consoles)
|
||||
|
||||
Language:
|
||||
********0 = US (White labels on back)
|
||||
********1 = Italy Apparently distributed by company 'Giochi Preziosi'
|
||||
********2 = Netherlands (Red or White labels on back)
|
||||
********3 = UK (Red labels on back)
|
||||
********4 = Germany (Blue labels on back)
|
||||
********5 = France (Yellow labels on back, also for NTSC French-Canadian)
|
||||
********6 = Portugal Apparently distributed by company 'Concentra' (White labels on back)
|
||||
********7 = Spain (Green labels on back)
|
||||
*******13 = Denmark Distributed by the company 'Top Toy A/S'
|
||||
*******14 = Sweden Distributed by the company 'Top Toy A/S'
|
||||
*******15 = Norway
|
||||
*******?? = Finland
|
||||
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084000(US) | Action Mania |
|
||||
| | (IT) | ????? |
|
||||
| | 80-084002(NL) | Sports Games |
|
||||
| | 80-084003(UK) | Action Mania |
|
||||
| | 80-084004(GE) | Sportskanone |
|
||||
| | 80-084005(FR) | Sporti Folies |
|
||||
| | 80-084006(PT) | Action Mania (84016 on cart) |
|
||||
| | 80-084007(SP) | Action Mania |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084020(US) | Dora the Explorer: Dora's Fix It Adventure |
|
||||
| | 80-084021(US) | Dora the Explorer: Dora's Fix It Adventure (pocket version) |
|
||||
| | 80-084022(NL) | Dora: Dora's Reparatie Avontuur |
|
||||
| | 80-084023(UK) | Dora the Explorer: Dora's Fix It Adventure |
|
||||
| XX | 80-084024(GE) | Dora: Doras Reparatur-Abenteuer |
|
||||
| | 80-084025(FR) | Dora L'Exploratrice : Les Adventures De Dora Apprentie Mecano |
|
||||
| | 80-084026(PT) | Dora : em busca das pecas perdidas |
|
||||
| | 80-084027(SP) | Dora : La Aventura arregla-todo de Dora |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084040(US) | Scooby-Doo! - Funland Frenzy |
|
||||
| | 80-084043(UK) | Scooby-Doo! - Funland Frenzy |
|
||||
| | 80-084044(GE) | Scooby-Doo! - Im Lernpark |
|
||||
| | 80-084045(FR) | Scooby-Doo - Panique A Funland |
|
||||
| | 80-084047(SP) | Scooby-Doo - Misterio en el Parque |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084060(US) | Thomas and Friends - Engines Working Together |
|
||||
| | 80-084063(UK) | Thomas and Friends - Engines Working Together |
|
||||
| | 80-084064(GE) | Thomas - Freunde halten zusammen |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084080(US) | Wall-E |
|
||||
| | 80-084083(UK) | Wall-E |
|
||||
| | 80-084084(GE) | Wall-E |
|
||||
| | 80-084085(FR) | Wall-E |
|
||||
| | 80-084087(SP) | Wall-E |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084100(US) | Wonder Pets - Save the Animals! |
|
||||
| | 80-084103(UK) | Wonder Pets - Save the Animals! |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084120(US) | Kung Fu Panda - Path of the Panda |
|
||||
| | 80-084123(UK) | Kung Fu Panda - Path of the Panda |
|
||||
| XX | 80-084124(GE) | Kung Fu Panda - Der Weg des Panda |
|
||||
| | 80-084125(FR) | Kung Fu Panda - La mission de Po |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084140(US) | Spider-Man & Friends - Secret Missions (AKA Professor V's Secret Missions with diff label)
|
||||
| | 80-084143(UK) | Spider-Man & Friends - Secret Missions |
|
||||
| | 80-084144(GE) | Spider-Man & Freunde - Geheime Missionen |
|
||||
| | 80-084145(FR) | Spider-Man and ses amis - Missions Secretes |
|
||||
| | 80-084147(SP) | Spider-Man y Amigos: Misiones Secretas (no # on label) |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084160(US) | Disney's Little Einsteins: The Glass Slipper Ball |
|
||||
| | 80-084163(UK) | Disney's Little Einsteins: The Glass Slipper Ball |
|
||||
| XX | 80-084164(GE) | Disney's Kleine Einsteins: Der Glaspantoffel-Ball |
|
||||
| | 80-084167(SP) | Little Einsteins de Disney: El baile del zapatito de cristal |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084180(US) | Mickey Mouse Clubhouse |
|
||||
| | 80-084182(NL) | Mickey Mouse Clubhouse |
|
||||
| | 80-084183(UK) | Mickey Mouse Clubhouse |
|
||||
| | 80-084184(GE) | Micky Maus Wunderhaus |
|
||||
| | 80-084185(FR) | La Maison de Mickey |
|
||||
| | 80-084186(PT) | A Casa do Mickey Mouse (84196 on cart) |
|
||||
| | 80-084187(SP) | La Casa de Mickey Mouse |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084200(US) | Nascar Academy - Race Car Superstar |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084220(US) | Snow Park Challenge |
|
||||
| | 80-084222(NL) | Wintersport Games |
|
||||
| | 80-084223(UK) | Snow Park Challenge |
|
||||
| | 80-084224(GE) | Wintersport |
|
||||
| | 80-084225(FR) | ?????? picture too fuzzy for positve confirm |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084240(US) | Ni Hao Kai Lan |
|
||||
| | 80-084245(FR) | Ni Hao Kai Lan |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084260(US) | My Pet Puppy (unreleased in USA?? UK version plays AOK on NTSC console) |
|
||||
| | 80-084262(NL) | Mijn Puppy! |
|
||||
| | 80-084263(UK) | My Pet Puppy |
|
||||
| | 80-084264(GE) | Mein erster Hund |
|
||||
| | 80-084265(FR) | Mon Youtou Tout Fou! |
|
||||
| | 80-084267(SP) | Dakota y su Mascota |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084280(US) | Wild Waves |
|
||||
| | 80-084282(NL) | Water-sport Games |
|
||||
| | 80-084283(UJ) | Wild Waves |
|
||||
| | 80-084284(GE) | Dolphis Wasser-abenteuer |
|
||||
| | 80-084285(FR) | Martin le Dauphin |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084300(US) | Soccer Challenge |
|
||||
| | 80-084303(UK) | Football Challenge |
|
||||
| | 80-084304(GE) | Fussball Meisterschaft |
|
||||
| | 80-084305(FR) | Football Challenge |
|
||||
| | 80-084306(PT) | Football Challenge (cart#??) |
|
||||
| | 80-084307(SP) | Campeonato de Futbol |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084320(US) | Disney Fairies: TinkerBell |
|
||||
| | 80-084321(US) | Disney Fairies: TinkerBell (pocket version) |
|
||||
| | 80-084322(NL) | TinkerBell |
|
||||
| | 80-084323(UK) | TinkerBell |
|
||||
| XX | 80-084324(GE) | TinkerBell |
|
||||
| | 80-084325(FR) | La fee Clochette |
|
||||
| | 80-084326(PT) | Sininho (84336 on cart) |
|
||||
| | 80-084327(SP) | Campanilla |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084340(US) | Up! |
|
||||
| | 80-084342(NL) | Up! |
|
||||
| | 80-084344(GE) | Oben |
|
||||
| | 80-084345(FR) | La-Haut |
|
||||
| | 80-084347(SP) | Up! |
|
||||
| | 80-084347-022(SP) | Up! (-022 is odd for SP) |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084360(US) | Handy Manny |
|
||||
| | 80-084362(NL) | Handy Manny |
|
||||
| | 80-084363(UK) | Handy Manny |
|
||||
| | 80-084364(GE) | Meister Manny's Werkzeugkiste |
|
||||
| | 80-084365(FR) | Manny Et Ses Outils |
|
||||
| | 80-084366(PT) | Manny Maozinhas (84376 on cart) |
|
||||
| | 80-084367(SP) | Manny Manitas |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084380(US) | Winnie the Pooh - The Honey Hunt |
|
||||
| | (IT) | Winnie the Pooh - e la caccia al miele ??? |
|
||||
| | 80-084383(UK) | Winnie the Pooh - The Honey Hunt |
|
||||
| XX | 80-084384(GE) | Winnie Puuh - Die Honigjagd |
|
||||
| | 80-084385(FR) | Winnie Rourson - La Chasse au miel de Winnie |
|
||||
| | 80-084386(PT) | Winnie - Em Busca do Mel (84396 on cart) |
|
||||
| | 80-084387(SP) | Winnie the Pooh - En busca de la miel |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084400(US) | Cars: Rev It Up in Radiator Springs |
|
||||
| | 80-084402(NL) | Cars: Spektakel in Radiator Springs |
|
||||
| | 80-084403(UK) | Cars: Rev it up in Radiator Springs |
|
||||
| | 80-084404(GE) | Cars: Vollgas in Radiator Springs |
|
||||
| | 80-084405(FR) | Cars: Quatre Roues |
|
||||
| | 80-084406(PT) | Cars: Aventura Em Radiator Springs (84416 on cart) |
|
||||
| | 80-084407(SP) | Cars: Acelera el Motor en Radiador Springs |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084420(US) | Toy Story 3 |
|
||||
| | 80-084421(US) | Toy Story 3 (pocket version) |
|
||||
| | (IT) | Toy Story 3 (EAN 8033836704196) GP470419? |
|
||||
| | 80-084422(NL) | Toy Story 3 |
|
||||
| | 80-084423(UK) | Toy Story 3 |
|
||||
| | 80-084424(GE) | Toy Story 3 |
|
||||
| | 80-084425(FR) | Toy Story 3 |
|
||||
| | 80-084427(SP) | Toy Story 3 |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084440(US) | Monsters vs. Aliens |
|
||||
| | 80-084442(NL) | Monsters vs. Aliens |
|
||||
| | 80-084443(UK) | Monsters vs. Aliens |
|
||||
| | 80-084444(GE) | Monsters vs. Aliens |
|
||||
| | 80-084445(FR) | Monsters vs. Aliens |
|
||||
| | 80-084447(SP) | Monstruos contra Alienigenas |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084460(US) | Noddy - Detective for a Day (unreleased in USA??) see 80-092540 |
|
||||
| | 80-084463(UK) | Noddy - Detective for a Day |
|
||||
| | 80-084465(FR) | Oui-Oui - Detective d'un jour |
|
||||
| | 80-084467(SP) | Noddy - Detective por un Dia |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084480(US) | The Princess and the Frog (motion version) |
|
||||
| | 80-084481(US) | The Princess and the Frog (pocket version) |
|
||||
| | 80-084482(NL) | Prinses en de Kikker (label in english) |
|
||||
| | 80-084483(UK) | The Princess and the Frog |
|
||||
| | 80-084484(GE) | Kuess den Frosch |
|
||||
| | 80-084485(FR) | La Princesse Et La Grenouille |
|
||||
| | 80-084487(SP) | Tiana y el sapo - El gran Sueno de Tiana |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084500(US) | Shrek Forever After |
|
||||
| | 80-084502(NL) | Sjrek voor eeuwig en altijd |
|
||||
| | 80-084503(UK) | Shrek Forever After |
|
||||
| | 80-084504(GE) | Fuer immer Shrek |
|
||||
| | 80-084505(FR) | Shrek 4 - Il Etait une Fin |
|
||||
| | 80-084507(SP) | Shrek Felices para siempre |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084520(US) | <Unknown> |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084540(US) | Super Why to the Rescue! The Beach Day Mystery |
|
||||
| | 80-084541(US) | Super Why to the Rescue! The Beach Day Mystery (pocket version) |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084560(US) | <Unknown> |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084580(US) | Cars 2 (motion version) |
|
||||
| | 80-084581(US) | Cars 2 (pocket version) |
|
||||
| | 80-084583(UK) | Cars 2 |
|
||||
| | 80-084584(GE) | Cars 2 |
|
||||
| | 80-084585(FR) | Cars 2 |
|
||||
| | 80-084587(SP) | Cars 2 |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084600(US) | <Unknown> (Should be Orange colored Cinderella - Cinderella's Magic Wishes)|
|
||||
| | 80-084603(UK) | Cinderella - Cinderella's Magic Wishes |
|
||||
| XX | 80-084604(GE) | Cinderella - Lernen im Maerchenland |
|
||||
| | 80-084605(FR) | Cendrillon - ????? |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084620(US) | <Unknown> (Should be Orange colored Finding Nemo) |
|
||||
| | 80-084624(GE) | Findet Nemo - Nemos Unterwasserabenteuer |
|
||||
| | 80-084625(FR) | Le Monde de Nemo - Nemo a la decourverte de l'ocean |
|
||||
| | 80-084627(SP) | Buscando a Nemo - Los Descubrimientos de Nemo |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-084640(US) | <Unknown> (Should be Orange colored Spongebob) |
|
||||
| | 80-084644(GE) | Spongebob Schwammkopf - Der Tag des Schwamms |
|
||||
| | 80-084647(SP) | Bob Epsonja - Un dia en la vida de una esponja |
|
||||
+========+===================+============================================================================+
|
||||
|
||||
V.Smile Smartbooks
|
||||
Smartbooks currently have no dumps available, hence they are temporarily listed here.
|
||||
+========+===================+============================================================================+
|
||||
| | 80-089000(US) | Spider-Man & Friends Where is Hulk? |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-089020(US) | Toy Story 2 |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-089040(US) | Dora the Explorer - Dora's Got a Puppy |
|
||||
| | 80-089045(FR) | Dora's ?????? |
|
||||
+========+===================+============================================================================+
|
||||
| | 80-089060(US) | Scooby-Doo! - A Night of Fright is no Delight |
|
||||
+========+===================+============================================================================+
|
||||
|
||||
-->
|
||||
|
||||
<softwarelist name="vsmilem_cart" description="VTech V.Smile Motion cartridges">
|
||||
|
||||
<software name="cinderla" supported="no">
|
||||
<description>Disney Princess Cinderella - Lernen im Märchenland (Ger)</description>
|
||||
<year>2010?</year>
|
||||
<publisher>VTech</publisher>
|
||||
<info name="serial" value="80-084604(GE)" />
|
||||
<part name="cart" interface="vsmilem_cart">
|
||||
<feature name="pcb" value="708201" />
|
||||
<feature name="pcb_model" value="708201-7" />
|
||||
<feature name="u1" value="" /> <!-- EPOXY BLOB ROM -->
|
||||
<dataarea name="rom" size="8388608">
|
||||
<rom name="C84604.u1" size="8388608" crc="0229cf3a" sha1="9c08e6370ecf08992924f067b64dd1950e3a2c6c" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="kfpanda" supported="no">
|
||||
<description>DreamWorks Kung Fu Panda - Der Weg des Panda (Ger)</description>
|
||||
<year>2008?</year>
|
||||
<publisher>VTech</publisher>
|
||||
<info name="serial" value="80-084124(GE)" />
|
||||
<part name="cart" interface="vsmilem_cart">
|
||||
<feature name="pcb" value="708201" />
|
||||
<feature name="pcb_model" value="708201-4" />
|
||||
<feature name="u1" value="" /> <!-- EPOXY BLOB ROM -->
|
||||
<dataarea name="rom" size="8388608">
|
||||
<rom name="84124 OK.u1" size="8388608" crc="16493095" sha1="07c75e46c294901ee9309d98c925a39dc1b5e384" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="dora" supported="no">
|
||||
<description>Nick Dora - Doras Reparatur-Abenteuer (Ger)</description>
|
||||
<year>2009?</year>
|
||||
<publisher>VTech</publisher>
|
||||
<info name="serial" value="80-084024(GE)" />
|
||||
<part name="cart" interface="vsmilem_cart">
|
||||
<feature name="pcb" value="708201" />
|
||||
<feature name="pcb_model" value="708201-4" />
|
||||
<feature name="u1" value="" /> <!-- EPOXY BLOB ROM -->
|
||||
<dataarea name="rom" size="8388608">
|
||||
<rom name="84024 OK.u1" size="8388608" crc="6769cb8b" sha1="615177d959983cdb67acdb8f3be063b3d09cb5db" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="kleinstn" supported="no">
|
||||
<description>Kleine Einsteins (Ger)</description>
|
||||
<year>200?</year>
|
||||
<publisher>VTech</publisher>
|
||||
<info name="serial" value="80-084164(GE)" />
|
||||
<part name="cart" interface="vsmilem_cart">
|
||||
<dataarea name="rom" size="8388608">
|
||||
<rom name="80-084164.bin" size="8388608" crc="b0ec807e" sha1="e947c84efd3f061cbf10f73e412d4cfdd474bade" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="tinker" supported="no">
|
||||
<description>TinkerBell (Ger)</description>
|
||||
<year>2009?</year>
|
||||
<publisher>VTech</publisher>
|
||||
<info name="serial" value="80-084324(GE)" />
|
||||
<part name="cart" interface="vsmilem_cart">
|
||||
<feature name="pcb" value="708201" />
|
||||
<feature name="pcb_model" value="708201-7" />
|
||||
<feature name="u1" value="" /> <!-- EPOXY BLOB ROM -->
|
||||
<dataarea name="rom" size="8388608">
|
||||
<rom name="C84324.u1" size="8388608" crc="9e207566" sha1="bb3e180a2c69306b56f08909a05dc83309be0f09" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="pooh" supported="no">
|
||||
<description>Winnie Puuh - Die Honigjagd (Ger)</description>
|
||||
<year>2009?</year>
|
||||
<publisher>VTech</publisher>
|
||||
<info name="serial" value="80-084384(GE)" />
|
||||
<part name="cart" interface="vsmilem_cart">
|
||||
<feature name="pcb" value="708201" />
|
||||
<feature name="pcb_model" value="708201-4" />
|
||||
<feature name="u1" value="" /> <!-- EPOXY BLOB ROM -->
|
||||
<dataarea name="rom" size="8388608">
|
||||
<rom name="84384.u1" size="8388608" crc="60649955" sha1="2eda79cbf138e25ffb33281987cc885ec98e9b04" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
@ -1037,7 +1037,7 @@ void phi_device::update_fsm(void)
|
||||
m_int_write_func(m_int_line);
|
||||
}
|
||||
|
||||
// TODO: update DMARQ
|
||||
(void)m_dmarq_line; // TODO: update DMARQ
|
||||
m_no_recursion = false;
|
||||
}
|
||||
|
||||
|
@ -130,6 +130,8 @@ public:
|
||||
void tc_w(bool val) override;
|
||||
void ready_w(bool val);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(tc_line_w) { tc_w(state == ASSERT_LINE); }
|
||||
|
||||
void set_rate(int rate); // rate in bps, to be used when the fdc is externally frequency-controlled
|
||||
|
||||
void set_mode(int mode);
|
||||
|
@ -36,14 +36,19 @@ public:
|
||||
};
|
||||
|
||||
argo_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_p_videoram(*this, "p_videoram"){ }
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_p_videoram(*this, "videoram")
|
||||
{ }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
DECLARE_WRITE8_MEMBER(argo_videoram_w);
|
||||
DECLARE_READ8_MEMBER(argo_io_r);
|
||||
DECLARE_WRITE8_MEMBER(argo_io_w);
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_DRIVER_INIT(argo);
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_shared_ptr<uint8_t> m_p_videoram;
|
||||
const uint8_t *m_p_chargen;
|
||||
uint8_t m_framecnt;
|
||||
@ -53,8 +58,6 @@ public:
|
||||
uint8_t m_scroll_ctrl;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_DRIVER_INIT(argo);
|
||||
|
||||
protected:
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
|
@ -50,29 +50,42 @@
|
||||
#include "coreutil.h"
|
||||
|
||||
// Board Ctrl Reg Offsets
|
||||
#define CTRL_POWER0 0
|
||||
#define CTRL_POWER1 1
|
||||
#define CTRL_IRQ1_EN 2
|
||||
#define CTRL_IRQ2_EN 3
|
||||
#define CTRL_IRQ3_EN 4
|
||||
#define CTRL_IRQ4_EN 5
|
||||
#define CTRL_GLOBAL_EN 6
|
||||
#define CTRL_CAUSE 7
|
||||
#define CTRL_STATUS 8
|
||||
#define CTRL_SIZE 9
|
||||
#define CTRL_PLD_REV 0
|
||||
#define CTRL_RESET 1
|
||||
#define CTRL_VSYNC_CLEAR 2
|
||||
#define CTRL_IRQ_MAP1 3
|
||||
#define CTRL_IRQ_MAP2 4
|
||||
#define CTRL_IRQ_MAP3 5
|
||||
// Empty?? 6
|
||||
#define CTRL_IRQ_EN 7
|
||||
#define CTRL_CAUSE 8
|
||||
#define CTRL_STATUS 9
|
||||
#define CTRL_SIZE 10
|
||||
|
||||
// These need more verification
|
||||
// Reset bits
|
||||
#define RESET_IOASIC 0x01
|
||||
#define RESET_ROMBUS 0x02
|
||||
#define RESET_ZEUS 0x04
|
||||
#define RESET_ROMBUS_IN 0x08
|
||||
#define RESET_IDE 0x10
|
||||
#define RESET_DUART 0x20
|
||||
|
||||
// IRQ Bits
|
||||
#define IOASIC_IRQ_SHIFT 0
|
||||
#define GALILEO_IRQ_SHIFT 1
|
||||
#define ZEUS_IRQ_SHIFT 2
|
||||
#define PARALLEL_IRQ_SHIFT 3
|
||||
#define UART1_SHIFT 4
|
||||
#define UART2_SHIFT 5
|
||||
#define ROMBUS_IRQ_SHIFT 1
|
||||
#define ZEUS0_IRQ_SHIFT 2
|
||||
#define ZEUS1_IRQ_SHIFT 3
|
||||
#define ZEUS2_IRQ_SHIFT 4
|
||||
#define WDOG_IRQ_SHIFT 5
|
||||
#define A2D_IRQ_SHIFT 6
|
||||
#define VBLANK_IRQ_SHIFT 7
|
||||
|
||||
// Not sure how duart interrupts are mapped
|
||||
#define UART1_IRQ_SHIFT ZEUS2_IRQ_SHIFT
|
||||
#define UART2_IRQ_SHIFT ZEUS2_IRQ_SHIFT
|
||||
|
||||
/* static interrupts */
|
||||
#define GALILEO_IRQ_NUM MIPS3_IRQ0
|
||||
#define VBLANK_IRQ_NUM MIPS3_IRQ3
|
||||
#define IDE_IRQ_NUM MIPS3_IRQ4
|
||||
|
||||
#define DEBUG_CONSOLE (0)
|
||||
@ -127,10 +140,8 @@ public:
|
||||
DECLARE_WRITE32_MEMBER(asic_fifo_w);
|
||||
DECLARE_WRITE32_MEMBER(dcs3_fifo_full_w);
|
||||
|
||||
READ32_MEMBER (green_r);
|
||||
WRITE32_MEMBER(green_w);
|
||||
READ8_MEMBER (blue_r);
|
||||
WRITE8_MEMBER(blue_w);
|
||||
READ8_MEMBER (exprom_r);
|
||||
WRITE8_MEMBER(exprom_w);
|
||||
|
||||
WRITE32_MEMBER(user_io_output);
|
||||
READ32_MEMBER(user_io_input);
|
||||
@ -151,37 +162,28 @@ public:
|
||||
DECLARE_WRITE_LINE_MEMBER(uart2_irq_callback);
|
||||
|
||||
DECLARE_CUSTOM_INPUT_MEMBER(port_mod_r);
|
||||
DECLARE_READ32_MEMBER(port_ctrl_r);
|
||||
DECLARE_WRITE32_MEMBER(port_ctrl_w);
|
||||
uint32_t m_port_ctrl_reg[0x8];
|
||||
DECLARE_READ16_MEMBER(port_ctrl_r);
|
||||
DECLARE_WRITE16_MEMBER(port_ctrl_w);
|
||||
uint16_t m_port_data;
|
||||
uint16_t m_a2d_data;
|
||||
|
||||
DECLARE_READ16_MEMBER(a2d_ctrl_r);
|
||||
DECLARE_WRITE16_MEMBER(a2d_ctrl_w);
|
||||
|
||||
DECLARE_READ16_MEMBER(a2d_data_r);
|
||||
DECLARE_WRITE16_MEMBER(a2d_data_w);
|
||||
};
|
||||
|
||||
READ32_MEMBER(atlantis_state::green_r)
|
||||
READ8_MEMBER (atlantis_state::exprom_r)
|
||||
{
|
||||
// If not 0x80 cpu writes to 00e80000 = 0
|
||||
if ((offset | 0x20000) != m_last_offset)
|
||||
logerror("%06X: green_r %08x = %02x\n", machine().device("maincpu")->safe_pc(), offset, 0x80);
|
||||
m_last_offset = offset | 0x20000;
|
||||
return 0x80;
|
||||
}
|
||||
|
||||
WRITE32_MEMBER(atlantis_state::green_w)
|
||||
{
|
||||
logerror("%06X: green_w %08x = %02x\n", machine().device("maincpu")->safe_pc(), offset, data);
|
||||
m_last_offset = offset | 0x20000;
|
||||
}
|
||||
|
||||
READ8_MEMBER (atlantis_state::blue_r)
|
||||
{
|
||||
//uint8_t data = m_red_data[offset];
|
||||
logerror("%06X: blue_r %08x = %02x\n", machine().device("maincpu")->safe_pc(), offset, 0);
|
||||
logerror("%06X: exprom_r %08x = %02x\n", machine().device("maincpu")->safe_pc(), offset, 0);
|
||||
//return data;
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(atlantis_state::blue_w)
|
||||
WRITE8_MEMBER(atlantis_state::exprom_w)
|
||||
{
|
||||
logerror("%06X: blue_w %08x = %02x\n", machine().device("maincpu")->safe_pc(), offset, data);
|
||||
logerror("%06X: exprom_w %08x = %02x\n", machine().device("maincpu")->safe_pc(), offset, data);
|
||||
}
|
||||
|
||||
READ32_MEMBER(atlantis_state::board_ctrl_r)
|
||||
@ -189,9 +191,10 @@ READ32_MEMBER(atlantis_state::board_ctrl_r)
|
||||
uint32_t newOffset = offset >> 17;
|
||||
uint32_t data = board_ctrl[newOffset];
|
||||
switch (newOffset) {
|
||||
case CTRL_PLD_REV:
|
||||
// ???
|
||||
data = 0x1;
|
||||
case CTRL_STATUS:
|
||||
if (1 && m_screen->vblank())
|
||||
data |= 1 << VBLANK_IRQ_SHIFT;
|
||||
if (m_last_offset != (newOffset | 0x40000))
|
||||
if (LOG_IRQ)
|
||||
logerror("%s:board_ctrl_r read from CTRL_STATUS offset %04X = %08X & %08X bus offset = %08X\n", machine().describe_context(), newOffset, data, mem_mask, offset);
|
||||
@ -211,12 +214,12 @@ WRITE32_MEMBER(atlantis_state::board_ctrl_w)
|
||||
uint32_t changeData = board_ctrl[newOffset] ^ data;
|
||||
COMBINE_DATA(&board_ctrl[newOffset]);
|
||||
switch (newOffset) {
|
||||
case CTRL_POWER0:
|
||||
case CTRL_RESET:
|
||||
// 0x1 IOASIC Reset
|
||||
// 0x4 Zeus2 Reset
|
||||
// 0x10 IDE Reset
|
||||
if (changeData & 0x1) {
|
||||
if ((data & 0x0001) == 0) {
|
||||
if (changeData & RESET_IOASIC) {
|
||||
if ((data & RESET_IOASIC) == 0) {
|
||||
m_ioasic->ioasic_reset();
|
||||
m_dcs->reset_w(ASSERT_LINE);
|
||||
}
|
||||
@ -225,14 +228,15 @@ WRITE32_MEMBER(atlantis_state::board_ctrl_w)
|
||||
}
|
||||
}
|
||||
if (LOG_IRQ)
|
||||
logerror("%s:board_ctrl_w write to CTRL_POWER0 offset %04X = %08X & %08X bus offset = %08X\n", machine().describe_context(), newOffset, data, mem_mask, offset);
|
||||
logerror("%s:board_ctrl_w write to CTRL_RESET offset %04X = %08X & %08X bus offset = %08X\n", machine().describe_context(), newOffset, data, mem_mask, offset);
|
||||
break;
|
||||
case CTRL_POWER1:
|
||||
case CTRL_VSYNC_CLEAR:
|
||||
//VSYNC_IE (0x1)
|
||||
//VSYNC_POL (0x2) off=negative true, on=positive true
|
||||
// 0x1 VBlank clear?
|
||||
if (changeData & 0x1) {
|
||||
if ((data & 0x0001) == 0) {
|
||||
//uint32_t status_bit = (1 << VBLANK_IRQ_SHIFT);
|
||||
uint32_t status_bit = (1 << 7);
|
||||
uint32_t status_bit = (1 << VBLANK_IRQ_SHIFT);
|
||||
board_ctrl[CTRL_CAUSE] &= ~status_bit;
|
||||
board_ctrl[CTRL_STATUS] &= ~status_bit;
|
||||
update_asic_irq();
|
||||
@ -240,15 +244,15 @@ WRITE32_MEMBER(atlantis_state::board_ctrl_w)
|
||||
else {
|
||||
}
|
||||
}
|
||||
if (LOG_IRQ)
|
||||
logerror("%s:board_ctrl_w write to CTRL_POWER1 offset %04X = %08X & %08X bus offset = %08X\n", machine().describe_context(), newOffset, data, mem_mask, offset);
|
||||
if (0 && LOG_IRQ)
|
||||
logerror("%s:board_ctrl_w write to CTRL_VSYNC_CLEAR offset %04X = %08X & %08X bus offset = %08X\n", machine().describe_context(), newOffset, data, mem_mask, offset);
|
||||
break;
|
||||
case CTRL_GLOBAL_EN:
|
||||
case CTRL_IRQ_EN:
|
||||
// Zero bit will clear cause
|
||||
board_ctrl[CTRL_CAUSE] &= data;
|
||||
update_asic_irq();
|
||||
if (LOG_IRQ)
|
||||
logerror("%s:board_ctrl_w write to CTRL_GLOBAL_EN offset %04X = %08X & %08X bus offset = %08X\n", machine().describe_context(), newOffset, data, mem_mask, offset);
|
||||
logerror("%s:board_ctrl_w write to CTRL_IRQ_EN offset %04X = %08X & %08X bus offset = %08X\n", machine().describe_context(), newOffset, data, mem_mask, offset);
|
||||
break;
|
||||
default:
|
||||
if (LOG_IRQ)
|
||||
@ -423,7 +427,7 @@ READ32_MEMBER(atlantis_state::user_io_input)
|
||||
*************************************/
|
||||
WRITE_LINE_MEMBER(atlantis_state::uart1_irq_callback)
|
||||
{
|
||||
uint32_t status_bit = (1 << UART1_SHIFT);
|
||||
uint32_t status_bit = UART1_IRQ_SHIFT;
|
||||
if (state && !(board_ctrl[CTRL_STATUS] & status_bit)) {
|
||||
board_ctrl[CTRL_STATUS] |= status_bit;
|
||||
update_asic_irq();
|
||||
@ -441,7 +445,7 @@ WRITE_LINE_MEMBER(atlantis_state::uart1_irq_callback)
|
||||
*************************************/
|
||||
WRITE_LINE_MEMBER(atlantis_state::uart2_irq_callback)
|
||||
{
|
||||
uint32_t status_bit = (1 << UART2_SHIFT);
|
||||
uint32_t status_bit = UART2_IRQ_SHIFT;
|
||||
if (state && !(board_ctrl[CTRL_STATUS] & status_bit)) {
|
||||
board_ctrl[CTRL_STATUS] |= status_bit;
|
||||
update_asic_irq();
|
||||
@ -460,18 +464,14 @@ WRITE_LINE_MEMBER(atlantis_state::uart2_irq_callback)
|
||||
WRITE_LINE_MEMBER(atlantis_state::vblank_irq)
|
||||
{
|
||||
//logerror("%s: atlantis_state::vblank state = %i\n", machine().describe_context(), state);
|
||||
if (1) {
|
||||
if (state) {
|
||||
board_ctrl[CTRL_STATUS] |= (1 << VBLANK_IRQ_SHIFT);
|
||||
update_asic_irq();
|
||||
}
|
||||
else {
|
||||
board_ctrl[CTRL_STATUS] &= ~(1 << VBLANK_IRQ_SHIFT);
|
||||
board_ctrl[CTRL_CAUSE] &= ~(1 << VBLANK_IRQ_SHIFT);
|
||||
update_asic_irq();
|
||||
}
|
||||
} else {
|
||||
m_maincpu->set_input_line(VBLANK_IRQ_NUM, state);
|
||||
if (state) {
|
||||
board_ctrl[CTRL_STATUS] |= (1 << VBLANK_IRQ_SHIFT);
|
||||
update_asic_irq();
|
||||
}
|
||||
else {
|
||||
board_ctrl[CTRL_STATUS] &= ~(1 << VBLANK_IRQ_SHIFT);
|
||||
board_ctrl[CTRL_CAUSE] &= ~(1 << VBLANK_IRQ_SHIFT);
|
||||
update_asic_irq();
|
||||
}
|
||||
}
|
||||
|
||||
@ -479,12 +479,12 @@ WRITE_LINE_MEMBER(atlantis_state::zeus_irq)
|
||||
{
|
||||
//logerror("%s: atlantis_state::zeus_irq state = %i\n", machine().describe_context(), state);
|
||||
if (state) {
|
||||
board_ctrl[CTRL_STATUS] |= (1 << ZEUS_IRQ_SHIFT);
|
||||
board_ctrl[CTRL_STATUS] |= (1 << ZEUS0_IRQ_SHIFT);
|
||||
update_asic_irq();
|
||||
}
|
||||
else {
|
||||
board_ctrl[CTRL_STATUS] &= ~(1 << ZEUS_IRQ_SHIFT);
|
||||
board_ctrl[CTRL_CAUSE] &= ~(1 << ZEUS_IRQ_SHIFT);
|
||||
board_ctrl[CTRL_STATUS] &= ~(1 << ZEUS0_IRQ_SHIFT);
|
||||
board_ctrl[CTRL_CAUSE] &= ~(1 << ZEUS0_IRQ_SHIFT);
|
||||
update_asic_irq();
|
||||
}
|
||||
}
|
||||
@ -522,21 +522,20 @@ WRITE_LINE_MEMBER(atlantis_state::ioasic_irq)
|
||||
*************************************/
|
||||
void atlantis_state::update_asic_irq()
|
||||
{
|
||||
// Uknown if CTRL_POWER1 is actually a separate power register. Skip it for now.
|
||||
for (int irqIndex = 1; irqIndex <= 4; irqIndex++) {
|
||||
uint32_t irqBits = (board_ctrl[CTRL_GLOBAL_EN] & board_ctrl[CTRL_POWER1 + irqIndex] & board_ctrl[CTRL_STATUS]);
|
||||
uint32_t causeBits = (board_ctrl[CTRL_GLOBAL_EN] & board_ctrl[CTRL_POWER1 + irqIndex] & board_ctrl[CTRL_CAUSE]);
|
||||
uint32_t currState = m_irq_state & (1 << irqIndex);
|
||||
for (int irqIndex = 0; irqIndex < 3; irqIndex++) {
|
||||
uint32_t irqBits = (board_ctrl[CTRL_IRQ_EN] & board_ctrl[CTRL_IRQ_MAP1 + irqIndex] & board_ctrl[CTRL_STATUS]);
|
||||
uint32_t causeBits = (board_ctrl[CTRL_IRQ_EN] & board_ctrl[CTRL_IRQ_MAP1 + irqIndex] & board_ctrl[CTRL_CAUSE]);
|
||||
uint32_t currState = m_irq_state & (2 << irqIndex);
|
||||
board_ctrl[CTRL_CAUSE] |= irqBits;
|
||||
if (irqBits && !currState) {
|
||||
m_maincpu->set_input_line(MIPS3_IRQ0 + irqIndex, ASSERT_LINE);
|
||||
m_irq_state |= (1 << irqIndex);
|
||||
m_maincpu->set_input_line(MIPS3_IRQ1 + irqIndex, ASSERT_LINE);
|
||||
m_irq_state |= (2 << irqIndex);
|
||||
if (LOG_IRQ)
|
||||
logerror("atlantis_state::update_asic_irq Asserting IRQ(%d) CAUSE = %02X\n", irqIndex, board_ctrl[CTRL_CAUSE]);
|
||||
}
|
||||
else if (!(causeBits) && currState) {
|
||||
m_maincpu->set_input_line(MIPS3_IRQ0 + irqIndex, CLEAR_LINE);
|
||||
m_irq_state &= ~(1 << irqIndex);
|
||||
m_maincpu->set_input_line(MIPS3_IRQ1 + irqIndex, CLEAR_LINE);
|
||||
m_irq_state &= ~(2 << irqIndex);
|
||||
if (LOG_IRQ)
|
||||
logerror("atlantis_state::update_asic_irq Clearing IRQ(%d) CAUSE = %02X\n", irqIndex, board_ctrl[CTRL_CAUSE]);
|
||||
}
|
||||
@ -545,43 +544,36 @@ void atlantis_state::update_asic_irq()
|
||||
/*************************************
|
||||
* I/O Port control
|
||||
*************************************/
|
||||
READ32_MEMBER(atlantis_state::port_ctrl_r)
|
||||
READ16_MEMBER(atlantis_state::port_ctrl_r)
|
||||
{
|
||||
uint32_t newOffset = offset >> 17;
|
||||
uint32_t result = m_port_ctrl_reg[newOffset];
|
||||
uint32_t result = m_port_data;
|
||||
if (LOG_PORT)
|
||||
logerror("%s: port_ctrl_r newOffset = %02X data = %08X\n", machine().describe_context(), newOffset, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
WRITE32_MEMBER(atlantis_state::port_ctrl_w)
|
||||
WRITE16_MEMBER(atlantis_state::port_ctrl_w)
|
||||
{
|
||||
uint32_t newOffset = offset >> 17;
|
||||
COMBINE_DATA(&m_port_ctrl_reg[newOffset]);
|
||||
|
||||
switch (newOffset) {
|
||||
case 1:
|
||||
{
|
||||
uint32_t bits = ioport("KEYPAD")->read();
|
||||
m_port_ctrl_reg[2] = 0;
|
||||
m_port_data = 0;
|
||||
if (!(data & 0x8))
|
||||
m_port_ctrl_reg[2] = bits & 7; // Row 0
|
||||
m_port_data = bits & 7; // Row 0
|
||||
else if (!(data & 0x10))
|
||||
m_port_ctrl_reg[2] = (bits >> 4) & 7; // Row 1
|
||||
m_port_data = (bits >> 4) & 7; // Row 1
|
||||
else if (!(data & 0x20))
|
||||
m_port_ctrl_reg[2] = (bits >> 8) & 7; // Row 2
|
||||
m_port_data = (bits >> 8) & 7; // Row 2
|
||||
else if (!(data & 0x40))
|
||||
m_port_ctrl_reg[2] = (bits >> 12) & 7; // Row 3
|
||||
m_port_data = (bits >> 12) & 7; // Row 3
|
||||
if (LOG_PORT)
|
||||
logerror("%s: port_ctrl_w Keypad Row Sel = %04X bits = %08X\n", machine().describe_context(), data, bits);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
if (data==0x8f)
|
||||
m_port_ctrl_reg[4] = ioport("AN.1")->read();
|
||||
else
|
||||
m_port_ctrl_reg[4] = ioport("AN.0")->read();
|
||||
break;
|
||||
default:
|
||||
if (LOG_PORT)
|
||||
logerror("%s: port_ctrl_w write to offset %04X = %08X & %08X bus offset = %08X\n", machine().describe_context(), newOffset, data, mem_mask, offset);
|
||||
@ -589,13 +581,38 @@ WRITE32_MEMBER(atlantis_state::port_ctrl_w)
|
||||
}
|
||||
}
|
||||
|
||||
CUSTOM_INPUT_MEMBER(atlantis_state::port_mod_r)
|
||||
/*************************************
|
||||
* A2D
|
||||
*************************************/
|
||||
#define A2D_CTRL_COMPLETE 0x1
|
||||
#define A2D_CTRL_ENABLE 0x2
|
||||
#define A2D_CTRL_SINGLEND 0x4
|
||||
#define A2D_CTRL_UNIPOLAR 0x8
|
||||
#define A2D_CTRL_CHAN_SHIFT 4
|
||||
#define A2D_CTRL_CHAN_MASK 0x70
|
||||
#define A2D_CTRL_START 0x80
|
||||
|
||||
READ16_MEMBER(atlantis_state::a2d_ctrl_r)
|
||||
{
|
||||
uint32_t bits = ioport((const char *)param)->read();
|
||||
//bits &= m_port_ctrl_reg[1];
|
||||
//bits >>= m_port_ctrl_reg[1];
|
||||
logerror("%s: port_mod_r read data %s = %08X m_port_ctrl_reg[1] = %08X\n", machine().describe_context(), (const char *)param, bits, m_port_ctrl_reg[1]);
|
||||
return bits;
|
||||
return A2D_CTRL_COMPLETE;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(atlantis_state::a2d_ctrl_w)
|
||||
{
|
||||
if (data == 0x8f)
|
||||
m_a2d_data = ioport("AN.1")->read();
|
||||
else
|
||||
m_a2d_data = ioport("AN.0")->read();
|
||||
}
|
||||
|
||||
READ16_MEMBER(atlantis_state::a2d_data_r)
|
||||
{
|
||||
return m_a2d_data;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(atlantis_state::a2d_data_w)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/*************************************
|
||||
@ -619,7 +636,6 @@ void atlantis_state::machine_start()
|
||||
// Save states
|
||||
save_item(NAME(m_irq_state));
|
||||
save_item(NAME(board_ctrl));
|
||||
save_item(NAME(m_port_ctrl_reg));
|
||||
}
|
||||
|
||||
|
||||
@ -636,7 +652,6 @@ void atlantis_state::machine_reset()
|
||||
m_serial_count = 0;
|
||||
m_irq_state = 0;
|
||||
memset(board_ctrl, 0, sizeof(board_ctrl));
|
||||
memset(m_port_ctrl_reg, 0, sizeof(m_port_ctrl_reg));
|
||||
}
|
||||
|
||||
/*************************************
|
||||
@ -644,39 +659,32 @@ void atlantis_state::machine_reset()
|
||||
*************************************/
|
||||
static ADDRESS_MAP_START( map0, AS_PROGRAM, 32, atlantis_state )
|
||||
AM_RANGE(0x00000000, 0x0001ffff) AM_READWRITE8(cmos_r, cmos_w, 0xff)
|
||||
//AM_RANGE(0x00080000, 0x000?0000) AM_READWRITE8(zeus debug)
|
||||
AM_RANGE(0x00100000, 0x0010001f) AM_DEVREADWRITE8("uart1", ns16550_device, ins8250_r, ins8250_w, 0xff) // Serial UART1 (TL16C552 CS0)
|
||||
AM_RANGE(0x00180000, 0x0018001f) AM_DEVREADWRITE8("uart2", ns16550_device, ins8250_r, ins8250_w, 0xff) // Serial UART2 (TL16C552 CS1)
|
||||
//AM_RANGE(0x00200000, 0x0020001f) // Parallel UART (TL16C552 CS2)
|
||||
AM_RANGE(0x00400000, 0x004000bf) AM_READWRITE8(blue_r, blue_w, 0xff)
|
||||
AM_RANGE(0x00880000, 0x00c80003) AM_READWRITE(board_ctrl_r, board_ctrl_w)
|
||||
//AM_RANGE(0x00880000, 0x00880003) // Sub-module Power0
|
||||
//AM_RANGE(0x00900000, 0x00900003) // Sub_module Power1 (Zeus or vblank?)
|
||||
//AM_RANGE(0x00980000, 0x00980003) // IRQ1 Enable
|
||||
//AM_RANGE(0x00a00000, 0x00a00003) // IRQ2 Enable
|
||||
//AM_RANGE(0x00a80000, 0x00a80003) // IRQ3 Enable
|
||||
//AM_RANGE(0x00b00000, 0x00b00003) // IRQ4 Enable Not Seen (Hardcoded to IDE?)
|
||||
//AM_RANGE(0x00b80000, 0x00b80003) // IRQ Global Enable
|
||||
//AM_RANGE(0x00c00000, 0x00c00003) // IRQ Cause
|
||||
//AM_RANGE(0x00c80000, 0x00c80003) // IRQ Status
|
||||
AM_RANGE(0x00400000, 0x007fffff) AM_READWRITE8(exprom_r, exprom_w, 0xff) // EXPROM
|
||||
AM_RANGE(0x00800000, 0x00c80003) AM_READWRITE(board_ctrl_r, board_ctrl_w)
|
||||
AM_RANGE(0x00d80000, 0x00d80003) AM_READWRITE(status_leds_r, status_leds_w)
|
||||
AM_RANGE(0x00e00000, 0x00e00003) AM_READWRITE(cmos_protect_r, cmos_protect_w)
|
||||
AM_RANGE(0x00e80000, 0x00e80003) AM_NOP // Watchdog?
|
||||
ADDRESS_MAP_END
|
||||
AM_RANGE(0x00e80000, 0x00e80003) AM_NOP // Watchdog
|
||||
//AM_RANGE(0x00f00000, 0x00f00003) AM_NOP // Trackball ctrl
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( map1, AS_PROGRAM, 32, atlantis_state )
|
||||
AM_RANGE(0x00000000, 0x0000003f) AM_DEVREADWRITE("ioasic", midway_ioasic_device, read, write)
|
||||
// asic_fifo_w
|
||||
// dcs3_fifo_full_w
|
||||
AM_RANGE(0x00200000, 0x00200003) AM_WRITE(dcs3_fifo_full_w)
|
||||
AM_RANGE(0x00400000, 0x00400003) AM_DEVWRITE("dcs", dcs_audio_device, dsio_idma_addr_w)
|
||||
AM_RANGE(0x00600000, 0x00600003) AM_DEVREADWRITE("dcs", dcs_audio_device, dsio_idma_data_r, dsio_idma_data_w)
|
||||
AM_RANGE(0x00800000, 0x00a00003) AM_READWRITE(port_ctrl_r, port_ctrl_w)
|
||||
//AM_RANGE(0x00800000, 0x00800003) // Written once = 0000fff8
|
||||
//AM_RANGE(0x00880000, 0x00880003) // Initial write 0000fff0, follow by sequence ffef, ffdf, ffbf, fff7. Row Select?
|
||||
//AM_RANGE(0x00900000, 0x00900003) // Read once before each sequence write to 0x00880000. Code checks bits 0,1,2. Keypad?
|
||||
//AM_RANGE(0x00980000, 0x00980003) // Read / Write. Bytes written 0x8f, 0xcf. Code if read 0x1 then read 00a00000. POTs?
|
||||
//AM_RANGE(0x00a00000, 0x00a00003)
|
||||
//AM_RANGE(0x00980000, 0x00980003) AM_NOP // AM_WRITE(asic_fifo_w)
|
||||
AM_RANGE(0x00800000, 0x00900003) AM_READWRITE16(port_ctrl_r, port_ctrl_w, 0xffff)
|
||||
//AM_RANGE(0x00880000, 0x00880003) // AUX Output Initial write 0000fff0, follow by sequence ffef, ffdf, ffbf, fff7. Row Select?
|
||||
//AM_RANGE(0x00900000, 0x00900003) // AUX Input Read once before each sequence write to 0x00880000. Code checks bits 0,1,2. Keypad?
|
||||
AM_RANGE(0x00980000, 0x00980003) AM_READWRITE16(a2d_ctrl_r, a2d_ctrl_w, 0xffff) // A2D Control Read / Write. Bytes written 0x8f, 0xcf. Code if read 0x1 then read 00a00000.
|
||||
AM_RANGE(0x00a00000, 0x00a00003) AM_READWRITE16(a2d_data_r, a2d_data_w, 0xffff) // A2D Data
|
||||
//AM_RANGE(0x00a80000, 0x00a80003) // Trackball Chan 0 16 bits
|
||||
//AM_RANGE(0x00b00000, 0x00b00003) // Trackball Chan 1 16 bits
|
||||
//AM_RANGE(0x00b80000, 0x00b80003) // Trackball Error 16 bits
|
||||
//AM_RANGE(0x00c00000, 0x00c00003) // Trackball Pins 16 bits
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START(map2, AS_PROGRAM, 32, atlantis_state)
|
||||
@ -684,7 +692,7 @@ static ADDRESS_MAP_START(map2, AS_PROGRAM, 32, atlantis_state)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( map3, AS_PROGRAM, 32, atlantis_state )
|
||||
//AM_RANGE(0x000000, 0xffffff) AM_READWRITE(blue_r, blue_w)
|
||||
//AM_RANGE(0x000000, 0xffffff) ROMBUS
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/*************************************
|
||||
@ -876,31 +884,31 @@ static MACHINE_CONFIG_START( mwskins, atlantis_state )
|
||||
|
||||
// TL16C552 UART
|
||||
MCFG_DEVICE_ADD("uart1", NS16550, XTAL_24MHz)
|
||||
//MCFG_INS8250_OUT_TX_CB(DEVWRITELINE("com1", rs232_port_device, write_txd))
|
||||
//MCFG_INS8250_OUT_DTR_CB(DEVWRITELINE("com1", rs232_port_device, write_dtr))
|
||||
//MCFG_INS8250_OUT_RTS_CB(DEVWRITELINE("com1", rs232_port_device, write_rts))
|
||||
//MCFG_INS8250_OUT_INT_CB(DEVWRITELINE(":", atlantis_state, uart1_irq_callback))
|
||||
MCFG_INS8250_OUT_TX_CB(DEVWRITELINE("com1", rs232_port_device, write_txd))
|
||||
MCFG_INS8250_OUT_DTR_CB(DEVWRITELINE("com1", rs232_port_device, write_dtr))
|
||||
MCFG_INS8250_OUT_RTS_CB(DEVWRITELINE("com1", rs232_port_device, write_rts))
|
||||
MCFG_INS8250_OUT_INT_CB(DEVWRITELINE(":", atlantis_state, uart1_irq_callback))
|
||||
|
||||
MCFG_DEVICE_ADD("uart2", NS16550, XTAL_24MHz)
|
||||
//MCFG_INS8250_OUT_TX_CB(DEVWRITELINE("com2", rs232_port_device, write_txd))
|
||||
//MCFG_INS8250_OUT_DTR_CB(DEVWRITELINE("com2", rs232_port_device, write_dtr))
|
||||
//MCFG_INS8250_OUT_RTS_CB(DEVWRITELINE("com2", rs232_port_device, write_rts))
|
||||
//MCFG_INS8250_OUT_INT_CB(DEVWRITELINE(":", atlantis_state, uart2_irq_callback))
|
||||
MCFG_INS8250_OUT_TX_CB(DEVWRITELINE("com2", rs232_port_device, write_txd))
|
||||
MCFG_INS8250_OUT_DTR_CB(DEVWRITELINE("com2", rs232_port_device, write_dtr))
|
||||
MCFG_INS8250_OUT_RTS_CB(DEVWRITELINE("com2", rs232_port_device, write_rts))
|
||||
MCFG_INS8250_OUT_INT_CB(DEVWRITELINE(":", atlantis_state, uart2_irq_callback))
|
||||
|
||||
//MCFG_RS232_PORT_ADD("com1", default_rs232_devices, nullptr)
|
||||
//MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart1", ins8250_uart_device, rx_w))
|
||||
//MCFG_RS232_DCD_HANDLER(DEVWRITELINE("uart1", ins8250_uart_device, dcd_w))
|
||||
//MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart1", ins8250_uart_device, dsr_w))
|
||||
//MCFG_RS232_RI_HANDLER(DEVWRITELINE("uart1", ins8250_uart_device, ri_w))
|
||||
//MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart1", ins8250_uart_device, cts_w))
|
||||
MCFG_RS232_PORT_ADD("com1", default_rs232_devices, nullptr)
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart1", ins8250_uart_device, rx_w))
|
||||
MCFG_RS232_DCD_HANDLER(DEVWRITELINE("uart1", ins8250_uart_device, dcd_w))
|
||||
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart1", ins8250_uart_device, dsr_w))
|
||||
MCFG_RS232_RI_HANDLER(DEVWRITELINE("uart1", ins8250_uart_device, ri_w))
|
||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart1", ins8250_uart_device, cts_w))
|
||||
//MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("com1", mwskins_comm)
|
||||
|
||||
//MCFG_RS232_PORT_ADD("com2", default_rs232_devices, nullptr)
|
||||
//MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart2", ins8250_uart_device, rx_w))
|
||||
//MCFG_RS232_DCD_HANDLER(DEVWRITELINE("uart2", ins8250_uart_device, dcd_w))
|
||||
//MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart2", ins8250_uart_device, dsr_w))
|
||||
//MCFG_RS232_RI_HANDLER(DEVWRITELINE("uart2", ins8250_uart_device, ri_w))
|
||||
//MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart2", ins8250_uart_device, cts_w))
|
||||
MCFG_RS232_PORT_ADD("com2", default_rs232_devices, nullptr)
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart2", ins8250_uart_device, rx_w))
|
||||
MCFG_RS232_DCD_HANDLER(DEVWRITELINE("uart2", ins8250_uart_device, dcd_w))
|
||||
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart2", ins8250_uart_device, dsr_w))
|
||||
MCFG_RS232_RI_HANDLER(DEVWRITELINE("uart2", ins8250_uart_device, ri_w))
|
||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart2", ins8250_uart_device, cts_w))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -926,6 +934,14 @@ ROM_START( mwskinsa )
|
||||
DISK_IMAGE( "mwskinsa", 0, SHA1(72497917b31156eb11a46bbcc6f22a254dcec044) )
|
||||
ROM_END
|
||||
|
||||
ROM_START(mwskinsa_mod)
|
||||
ROM_REGION32_LE(0x80000, PCI_ID_NILE":rom", 0) /* 512k for R4310 code */
|
||||
ROM_LOAD("skins_game_u4_boot_1.00.u4", 0x000000, 0x080000, CRC(0fe87720) SHA1(4b24abbe662a2d7b61e6a3f079e28b73605ba19f))
|
||||
|
||||
DISK_REGION(PCI_ID_IDE":ide:0:hdd:image")
|
||||
DISK_IMAGE( "mwskinsc", 0, SHA1(437bc145b7b852f7b4a1da35cab6569f4c357658) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( mwskinso )
|
||||
ROM_REGION32_LE( 0x80000, PCI_ID_NILE":rom", 0 ) /* 512k for R4310 code */
|
||||
ROM_LOAD( "skins_game_u4_boot_1.00.u4", 0x000000, 0x080000, CRC(0fe87720) SHA1(4b24abbe662a2d7b61e6a3f079e28b73605ba19f) )
|
||||
|
@ -28,19 +28,22 @@ class beehive_state : public driver_device
|
||||
{
|
||||
public:
|
||||
beehive_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_p_videoram(*this, "videoram"){ }
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_p_videoram(*this, "videoram")
|
||||
{ }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
DECLARE_READ8_MEMBER(beehive_60_r);
|
||||
DECLARE_WRITE8_MEMBER(beehive_62_w);
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
const uint8_t *m_p_chargen;
|
||||
required_shared_ptr<uint8_t> m_p_videoram;
|
||||
uint8_t m_keyline;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
};
|
||||
|
||||
READ8_MEMBER(beehive_state::beehive_60_r)
|
||||
|
@ -56,14 +56,12 @@
|
||||
#include "sound/wave.h"
|
||||
#include "imagedev/snapquik.h"
|
||||
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
class binbug_state : public driver_device
|
||||
{
|
||||
public:
|
||||
binbug_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_rs232(*this, KEYBOARD_TAG),
|
||||
m_rs232(*this, "keyboard"),
|
||||
m_cass(*this, "cassette"),
|
||||
m_p_videoram(*this, "videoram"),
|
||||
m_p_attribram(*this, "attribram"),
|
||||
@ -309,7 +307,7 @@ static MACHINE_CONFIG_START( binbug, binbug_state )
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
/* Keyboard */
|
||||
MCFG_RS232_PORT_ADD(KEYBOARD_TAG, default_rs232_devices, "keyboard")
|
||||
MCFG_RS232_PORT_ADD("keyboard", default_rs232_devices, "keyboard")
|
||||
MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("keyboard", keyboard)
|
||||
|
||||
/* Cassette */
|
||||
|
@ -25,17 +25,19 @@ public:
|
||||
};
|
||||
|
||||
c10_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_p_videoram(*this, "p_videoram"){ }
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_p_videoram(*this, "videoram")
|
||||
{ }
|
||||
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_DRIVER_INIT(c10);
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
const uint8_t *m_p_chargen;
|
||||
required_shared_ptr<uint8_t> m_p_videoram;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_DRIVER_INIT(c10);
|
||||
|
||||
protected:
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
@ -49,7 +51,7 @@ static ADDRESS_MAP_START(c10_mem, AS_PROGRAM, 8, c10_state)
|
||||
AM_RANGE(0x1000, 0x7fff) AM_RAM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xf0a1) AM_RAM
|
||||
AM_RANGE(0xf0a2, 0xffff) AM_RAM AM_SHARE("p_videoram")
|
||||
AM_RANGE(0xf0a2, 0xffff) AM_RAM AM_SHARE("videoram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( c10_io, AS_IO, 8, c10_state)
|
||||
|
@ -36,8 +36,6 @@ TODO
|
||||
#include "sound/wave.h"
|
||||
#include "sound/beep.h"
|
||||
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
class cd2650_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -291,7 +289,7 @@ static MACHINE_CONFIG_START( cd2650, cd2650_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
|
||||
/* Devices */
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(cd2650_state, kbd_put))
|
||||
MCFG_CASSETTE_ADD( "cassette" )
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -18,17 +18,17 @@ class cdc721_state : public driver_device
|
||||
public:
|
||||
cdc721_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_p_videoram(*this, "videoram")
|
||||
, m_maincpu(*this, "maincpu")
|
||||
{ }
|
||||
, m_p_videoram(*this, "videoram")
|
||||
, m_maincpu(*this, "maincpu")
|
||||
{ }
|
||||
|
||||
public:
|
||||
virtual void machine_reset() override;
|
||||
DECLARE_PALETTE_INIT(cdc721);
|
||||
const uint8_t *m_p_chargen;
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
required_shared_ptr<uint8_t> m_p_videoram;
|
||||
DECLARE_PALETTE_INIT(cdc721);
|
||||
|
||||
private:
|
||||
virtual void machine_reset() override;
|
||||
const uint8_t *m_p_chargen;
|
||||
required_shared_ptr<uint8_t> m_p_videoram;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
|
||||
|
||||
|
@ -55,11 +55,10 @@ Notes:
|
||||
- sprtmtch and drgpunch are "clones", but the gfx are very different; sprtmtch
|
||||
is a trimmed down version, without all animations between levels.
|
||||
|
||||
- according to the readme, mjfriday should have a M5205. However there don't seem to be
|
||||
accesses to it, and looking at the ROMs I don't see ADPCM data. Note that apart from a
|
||||
minor difference in the memory map mjfriday and mjdialq2 are identical, and mjdialq2
|
||||
doesn't have a 5205 either. Therefore, I think it's either a mistake in the readme or
|
||||
the chip is on the board but unused.
|
||||
- according to the readme, mjfriday should have a M5205. However the program ROMs don't
|
||||
seem to make accesses to it or contain ADPCM data for it, and photos of the game's
|
||||
PCB don't even show an unpopulated location for one. Note that gekisha and mjdialq2,
|
||||
which run on similar hardware, also lack 5205s. Likely it's a mistake in the readme.
|
||||
|
||||
TODO:
|
||||
|
||||
@ -5287,7 +5286,7 @@ Mahjong Friday
|
||||
D2607198L1
|
||||
|
||||
CPU : Zilog Z0840006PSC (Z80)
|
||||
Sound: YM2413 M5205
|
||||
Sound: YM2413
|
||||
OSC : 24MHz (X1)
|
||||
|
||||
CRT Controller: HD46505SP (6845)
|
||||
|
@ -1,5 +1,5 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Victor Trucco,Steve Ellenoff,Phil Stroffolino,Tatsuyuki Satoh,Tomasz Slanina,Nicola Salmoria
|
||||
// copyright-holders:Victor Trucco,Steve Ellenoff,Phil Stroffolino,Tatsuyuki Satoh,Tomasz Slanina,Nicola Salmoria,Vas Crabb
|
||||
/***************************************************************************
|
||||
|
||||
Ping Pong King (c) Taito 1985
|
||||
@ -12,13 +12,15 @@ Credits:
|
||||
Golden Castle Rom Set Support
|
||||
- Phil Stroffolino: palette, sprites, misc video driver fixes
|
||||
- Tatsuyuki Satoh: YM2203 sound improvements, NEC 8741 simulation, ADPCM with MC6809
|
||||
- Tomasz Slanina preliminary Ping Pong King driver
|
||||
- Nicola Salmoria clean up
|
||||
- Tomasz Slanina: preliminary Ping Pong King driver
|
||||
- Nicola Salmoria: clean up
|
||||
- Vas Crabb: MCU hookup
|
||||
|
||||
special thanks to:
|
||||
- Camilty for precious hardware information and screenshots
|
||||
- Jason Richmond for hardware information and misc. notes
|
||||
- Joe Rounceville for schematics
|
||||
- JunoMan for measuring and tracing signals
|
||||
- and everyone else who's offered support along the way!
|
||||
|
||||
|
||||
@ -163,8 +165,11 @@ Notes:
|
||||
- The fg tilemap is a 1bpp layer which selects the second palette bank when
|
||||
active, so it could be used for some cool effects. Gladiator just sets the
|
||||
whole palette to white so we can just treat it as a monochromatic layer.
|
||||
- tilemap Y scroll is not implemented because the game doesn't use it so I can't
|
||||
verify it's right.
|
||||
- Tilemap Y scroll is not implemented because the game doesn't use it so I
|
||||
can't verify it's right.
|
||||
- gladiatr and clones start with one credit due to the way MAME initialises
|
||||
memory and the dodgy code the bootleg MCUs use to synchronise with the host
|
||||
CPUs. On an F3 reset they randomly start with one credit or no credits.
|
||||
|
||||
TODO:
|
||||
-----
|
||||
@ -178,78 +183,36 @@ TODO:
|
||||
- YM2203 some sound effects just don't sound correct
|
||||
- Audio Filter Switch not hooked up (might solve YM2203 mixing issue)
|
||||
- Ports 60,61,80,81 not fully understood yet...
|
||||
- The four 8741 ROMs are available but not used.
|
||||
|
||||
- The four 8741 dumps come from an unprotected bootleg, we need dumps from
|
||||
original boards.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "machine/tait8741.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "sound/2203intf.h"
|
||||
#include "sound/msm5205.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "includes/gladiatr.h"
|
||||
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "cpu/mcs48/mcs48.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
|
||||
#include "machine/clock.h"
|
||||
#include "machine/nvram.h"
|
||||
|
||||
#include "sound/2203intf.h"
|
||||
#include "sound/msm5205.h"
|
||||
|
||||
|
||||
/*Rom bankswitching*/
|
||||
WRITE8_MEMBER(gladiatr_state::gladiatr_bankswitch_w)
|
||||
{
|
||||
// ROM bankswitching
|
||||
membank("bank1")->set_entry(data & 0x01);
|
||||
}
|
||||
|
||||
|
||||
READ8_MEMBER(gladiatr_state::gladiator_dsw1_r )
|
||||
{
|
||||
int orig = ioport("DSW1")->read()^0xff;
|
||||
|
||||
return BITSWAP8(orig, 0,1,2,3,4,5,6,7);
|
||||
}
|
||||
|
||||
READ8_MEMBER(gladiatr_state::gladiator_dsw2_r )
|
||||
{
|
||||
int orig = ioport("DSW2")->read()^0xff;
|
||||
|
||||
return BITSWAP8(orig, 2,3,4,5,6,7,1,0);
|
||||
}
|
||||
|
||||
READ8_MEMBER(gladiatr_state::gladiator_controls_r )
|
||||
{
|
||||
int coins = 0;
|
||||
|
||||
if(ioport("COINS")->read() & 0xc0 ) coins = 0x80;
|
||||
switch(offset)
|
||||
{
|
||||
case 0x01: /* start button , coins */
|
||||
return ioport("IN0")->read() | coins;
|
||||
case 0x02: /* Player 1 Controller , coins */
|
||||
return ioport("IN1")->read() | coins;
|
||||
case 0x04: /* Player 2 Controller , coins */
|
||||
return ioport("IN2")->read() | coins;
|
||||
}
|
||||
/* unknown */
|
||||
return 0;
|
||||
}
|
||||
|
||||
READ8_MEMBER(gladiatr_state::gladiator_button3_r )
|
||||
{
|
||||
switch(offset)
|
||||
{
|
||||
case 0x01: /* button 3 */
|
||||
return ioport("IN3")->read();
|
||||
}
|
||||
/* unknown */
|
||||
return 0;
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(gladiatr_state,gladiator)
|
||||
{
|
||||
/* 6809 bank memory set */
|
||||
{
|
||||
membank("bank2")->set_entry(0);
|
||||
m_audiocpu->reset();
|
||||
}
|
||||
// 6809 bank memory set
|
||||
membank("bank2")->set_entry(0);
|
||||
m_audiocpu->reset();
|
||||
}
|
||||
|
||||
/* YM2203 port B handler (output) */
|
||||
@ -269,12 +232,12 @@ WRITE_LINE_MEMBER(gladiatr_state::gladiator_ym_irq)
|
||||
/*Sound Functions*/
|
||||
WRITE8_MEMBER(gladiatr_state::gladiator_adpcm_w)
|
||||
{
|
||||
/* bit6 = bank offset */
|
||||
// bit 6 = bank offset
|
||||
membank("bank2")->set_entry((data & 0x40) ? 1 : 0);
|
||||
|
||||
m_msm->data_w(data); /* bit0..3 */
|
||||
m_msm->reset_w(BIT(data, 5)); /* bit 5 */
|
||||
m_msm->vclk_w (BIT(data, 4)); /* bit4 */
|
||||
m_msm->data_w(data); // bit 0..3
|
||||
m_msm->reset_w(BIT(data, 5)); // bit 5
|
||||
m_msm->vclk_w (BIT(data, 4)); // bit 4
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(gladiatr_state::gladiator_cpu_sound_command_w)
|
||||
@ -304,60 +267,182 @@ WRITE8_MEMBER(gladiatr_state::gladiatr_irq_patch_w)
|
||||
#endif
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER(gladiatr_state::tclk_w)
|
||||
{
|
||||
m_tclk_val = state != 0;
|
||||
|
||||
// these are actually edge-triggered, but MAME only supports polled inputs
|
||||
|
||||
u8 const new_in0_val(m_in0->read());
|
||||
if (BIT(~new_in0_val & (new_in0_val ^ m_in0_val), 5))
|
||||
m_cctl_p1 = (m_cctl_p1 & 0xfc) | BIT(~new_in0_val, 5) | (BIT(~new_in0_val, 5) << 1);
|
||||
else
|
||||
m_cctl_p1 = (m_cctl_p1 & 0xfe) | BIT(~new_in0_val, 5);
|
||||
m_in0_val = new_in0_val;
|
||||
|
||||
u8 const new_in1_val(m_in0->read());
|
||||
if (BIT(~new_in1_val & (new_in1_val ^ m_in1_val), 5))
|
||||
m_cctl_p2 = (m_cctl_p2 & 0xfc) | BIT(~new_in1_val, 5) | (BIT(~new_in1_val, 5) << 1);
|
||||
else
|
||||
m_cctl_p2 = (m_cctl_p2 & 0xfe) | BIT(~new_in1_val, 5);
|
||||
m_in1_val = new_in1_val;
|
||||
}
|
||||
|
||||
READ8_MEMBER(gladiatr_state::cctl_p1_r)
|
||||
{
|
||||
return m_cctl_p1 & m_in2->read();
|
||||
}
|
||||
|
||||
READ8_MEMBER(gladiatr_state::cctl_p2_r)
|
||||
{
|
||||
return m_cctl_p2;
|
||||
}
|
||||
|
||||
READ8_MEMBER(gladiatr_state::ucpu_p2_r)
|
||||
{
|
||||
return BITSWAP8(m_dsw1->read(), 0,1,2,3,4,5,6,7);
|
||||
}
|
||||
|
||||
READ8_MEMBER(gladiatr_state::cctl_t_r)
|
||||
{
|
||||
return BIT(m_coins->read(), offset + 2);
|
||||
}
|
||||
|
||||
READ8_MEMBER(gladiatr_state::ccpu_t_r)
|
||||
{
|
||||
return BIT(m_coins->read(), offset);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(gladiatr_state::ccpu_p2_w)
|
||||
{
|
||||
// FIXME: active high or active low? (bootleg MCU never uses these outputs)
|
||||
machine().bookkeeping().coin_counter_w(0, BIT(data, 6));
|
||||
machine().bookkeeping().coin_counter_w(1, BIT(data, 7));
|
||||
}
|
||||
|
||||
READ8_MEMBER(gladiatr_state::tclk_r)
|
||||
{
|
||||
// fed to t0 on comms MCUs
|
||||
return m_tclk_val ? 0x01 : 0x00;
|
||||
}
|
||||
|
||||
READ8_MEMBER(gladiatr_state::ucpu_t1_r)
|
||||
{
|
||||
// connected to p1 on other MCU
|
||||
return BIT(m_csnd_p1, 1);
|
||||
}
|
||||
|
||||
READ8_MEMBER(gladiatr_state::ucpu_p1_r)
|
||||
{
|
||||
// p10 connected to corresponding line on other MCU
|
||||
// p11 connected to t1 on other MCU
|
||||
// other lines floating
|
||||
return m_csnd_p1 |= 0xfe;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(gladiatr_state::ucpu_p1_w)
|
||||
{
|
||||
m_ucpu_p1 = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(gladiatr_state::csnd_t1_r)
|
||||
{
|
||||
// connected to p1 on other MCU
|
||||
return BIT(m_ucpu_p1, 1);
|
||||
}
|
||||
|
||||
READ8_MEMBER(gladiatr_state::csnd_p1_r)
|
||||
{
|
||||
// p10 connected to corresponding line on other MCU
|
||||
// p11 connected to t1 on other MCU
|
||||
// other lines floating
|
||||
return m_ucpu_p1 |= 0xfe;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(gladiatr_state::csnd_p1_w)
|
||||
{
|
||||
m_csnd_p1 = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(gladiatr_state::csnd_p2_r)
|
||||
{
|
||||
return BITSWAP8(m_dsw2->read(), 2,3,4,5,6,7,1,0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
READ8_MEMBER(ppking_state::ppking_f1_r)
|
||||
{
|
||||
return machine().rand();
|
||||
}
|
||||
|
||||
READ8_MEMBER(ppking_state::ppking_f6a3_r)
|
||||
{
|
||||
if (space.device().safe_pcbase() == 0x8e)
|
||||
m_nvram[0x6a3] = 1;
|
||||
|
||||
WRITE8_MEMBER(gladiatr_state::ppking_qx0_w)
|
||||
return m_nvram[0x6a3];
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(ppking_state::ppking_qx0_w)
|
||||
{
|
||||
if(!offset)
|
||||
{
|
||||
m_data2=data;
|
||||
m_flag2=1;
|
||||
m_data2 = data;
|
||||
m_flag2 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(gladiatr_state::ppking_qx1_w)
|
||||
WRITE8_MEMBER(ppking_state::ppking_qx1_w)
|
||||
{
|
||||
if(!offset)
|
||||
{
|
||||
m_data1=data;
|
||||
m_flag1=1;
|
||||
m_data1 = data;
|
||||
m_flag1 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(gladiatr_state::ppking_qx2_w){ }
|
||||
|
||||
WRITE8_MEMBER(gladiatr_state::ppking_qx3_w){ }
|
||||
|
||||
READ8_MEMBER(gladiatr_state::ppking_qx2_r){ return machine().rand(); }
|
||||
|
||||
READ8_MEMBER(gladiatr_state::ppking_qx3_r){ return machine().rand()&0xf; }
|
||||
|
||||
READ8_MEMBER(gladiatr_state::ppking_qx0_r)
|
||||
WRITE8_MEMBER(ppking_state::ppking_qx2_w)
|
||||
{
|
||||
if(!offset)
|
||||
return m_data1;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(ppking_state::ppking_qx3_w)
|
||||
{
|
||||
}
|
||||
|
||||
READ8_MEMBER(ppking_state::ppking_qx0_r)
|
||||
{
|
||||
if (!offset)
|
||||
return m_data1;
|
||||
else
|
||||
return m_flag2;
|
||||
}
|
||||
|
||||
READ8_MEMBER(gladiatr_state::ppking_qx1_r)
|
||||
READ8_MEMBER(ppking_state::ppking_qx1_r)
|
||||
{
|
||||
if(!offset)
|
||||
if (!offset)
|
||||
return m_data2;
|
||||
else
|
||||
return m_flag1;
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(gladiatr_state,ppking)
|
||||
READ8_MEMBER(ppking_state::ppking_qx2_r)
|
||||
{
|
||||
return machine().rand();
|
||||
}
|
||||
|
||||
READ8_MEMBER(ppking_state::ppking_qx3_r)
|
||||
{
|
||||
return machine().rand()&0xf;
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(ppking_state, ppking)
|
||||
{
|
||||
m_data1 = m_data2 = 0;
|
||||
m_flag1 = m_flag2 = 1;
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( ppking_cpu1_map, AS_PROGRAM, 8, gladiatr_state )
|
||||
static ADDRESS_MAP_START( ppking_cpu1_map, AS_PROGRAM, 8, ppking_state )
|
||||
AM_RANGE(0x0000, 0xbfff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xcbff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0xcc00, 0xcfff) AM_WRITE(ppking_video_registers_w)
|
||||
@ -369,12 +454,12 @@ static ADDRESS_MAP_START( ppking_cpu1_map, AS_PROGRAM, 8, gladiatr_state )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( ppking_cpu3_map, AS_PROGRAM, 8, gladiatr_state )
|
||||
static ADDRESS_MAP_START( ppking_cpu3_map, AS_PROGRAM, 8, ppking_state )
|
||||
AM_RANGE(0x2000, 0x2fff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( ppking_cpu1_io, AS_IO, 8, gladiatr_state )
|
||||
static ADDRESS_MAP_START( ppking_cpu1_io, AS_IO, 8, ppking_state )
|
||||
// ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0xc000, 0xc000) AM_WRITE(spritebuffer_w)
|
||||
AM_RANGE(0xc004, 0xc004) AM_NOP // WRITE(ppking_irq_patch_w)
|
||||
@ -382,7 +467,7 @@ static ADDRESS_MAP_START( ppking_cpu1_io, AS_IO, 8, gladiatr_state )
|
||||
AM_RANGE(0xc0bf, 0xc0bf) AM_NOP
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( ppking_cpu2_io, AS_IO, 8, gladiatr_state )
|
||||
static ADDRESS_MAP_START( ppking_cpu2_io, AS_IO, 8, ppking_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2203_device, read, write)
|
||||
AM_RANGE(0x20, 0x21) AM_READ(ppking_qx1_r) AM_WRITE(ppking_qx1_w)
|
||||
@ -425,37 +510,63 @@ static ADDRESS_MAP_START( gladiatr_cpu1_io, AS_IO, 8, gladiatr_state )
|
||||
AM_RANGE(0xc002, 0xc002) AM_WRITE(gladiatr_bankswitch_w)
|
||||
AM_RANGE(0xc004, 0xc004) AM_WRITE(gladiatr_irq_patch_w) /* !!! patch to 2nd CPU IRQ !!! */
|
||||
AM_RANGE(0xc007, 0xc007) AM_WRITE(gladiatr_flipscreen_w)
|
||||
AM_RANGE(0xc09e, 0xc09f) AM_DEVREADWRITE("taito8741", taito8741_4pack_device, read_0, write_0)
|
||||
AM_RANGE(0xc09e, 0xc09f) AM_DEVREADWRITE("ucpu", upi41_cpu_device, upi41_master_r, upi41_master_w)
|
||||
AM_RANGE(0xc0bf, 0xc0bf) AM_NOP // watchdog_reset_w doesn't work
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( gladiatr_cpu2_io, AS_IO, 8, gladiatr_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2203_device, read, write)
|
||||
AM_RANGE(0x20, 0x21) AM_DEVREADWRITE("taito8741", taito8741_4pack_device, read_1, write_1)
|
||||
AM_RANGE(0x20, 0x21) AM_DEVREADWRITE("csnd", upi41_cpu_device, upi41_master_r, upi41_master_w)
|
||||
AM_RANGE(0x40, 0x40) AM_NOP // WRITE(sub_irq_ack_w)
|
||||
AM_RANGE(0x60, 0x61) AM_DEVREADWRITE("taito8741", taito8741_4pack_device, read_2, write_2)
|
||||
AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("taito8741", taito8741_4pack_device, read_3, write_3)
|
||||
AM_RANGE(0x60, 0x61) AM_DEVREADWRITE("cctl", upi41_cpu_device, upi41_master_r, upi41_master_w)
|
||||
AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("ccpu", upi41_cpu_device, upi41_master_r, upi41_master_w)
|
||||
AM_RANGE(0xa0, 0xa7) AM_NOP // filters on sound output
|
||||
AM_RANGE(0xe0, 0xe0) AM_WRITE(gladiator_cpu_sound_command_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( cctl_io_map, AS_IO, 8, gladiatr_state )
|
||||
AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T1) AM_READ(cctl_t_r)
|
||||
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READ(cctl_p1_r)
|
||||
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READ(cctl_p2_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( ccpu_io_map, AS_IO, 8, gladiatr_state )
|
||||
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READ_PORT("IN0")
|
||||
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READ_PORT("IN1") AM_WRITE(ccpu_p2_w)
|
||||
AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T1) AM_READ(ccpu_t_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( ucpu_io_map, AS_IO, 8, gladiatr_state )
|
||||
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READWRITE(ucpu_p1_r, ucpu_p1_w)
|
||||
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READ(ucpu_p2_r)
|
||||
AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ(tclk_r)
|
||||
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(ucpu_t1_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( csnd_io_map, AS_IO, 8, gladiatr_state )
|
||||
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READWRITE(csnd_p1_r, csnd_p1_w)
|
||||
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READ(csnd_p2_r)
|
||||
AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ(tclk_r)
|
||||
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(csnd_t1_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( gladiatr )
|
||||
PORT_START("DSW1") /* (8741-0 parallel port)*/
|
||||
PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:1,2")
|
||||
PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:1,2")
|
||||
PORT_DIPSETTING( 0x03, DEF_STR( Easy ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Medium ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Hard ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
|
||||
PORT_DIPNAME( 0x04, 0x00, "After 4 Stages" ) PORT_DIPLOCATION("SW1:3")
|
||||
PORT_DIPNAME( 0x04, 0x00, "After 4 Stages" ) PORT_DIPLOCATION("SW1:3")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Continues ) )
|
||||
PORT_DIPSETTING( 0x04, "Ends" )
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:4") /*NOTE: Actual manual has these settings reversed(typo?)! */
|
||||
PORT_DIPSETTING( 0x00, "Only at 100000" )
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:4") /*NOTE: Actual manual has these settings reversed(typo?)! */
|
||||
PORT_DIPSETTING( 0x08, "Only at 100000" )
|
||||
PORT_DIPSETTING( 0x00, "Every 100000" )
|
||||
PORT_DIPNAME( 0x30, 0x10, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:5,6")
|
||||
PORT_DIPNAME( 0x30, 0x10, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:5,6")
|
||||
PORT_DIPSETTING( 0x30, "1" )
|
||||
PORT_DIPSETTING( 0x20, "2" )
|
||||
PORT_DIPSETTING( 0x10, "3" )
|
||||
@ -463,29 +574,29 @@ static INPUT_PORTS_START( gladiatr )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW1:7")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:8")
|
||||
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:8")
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_START("DSW2") /* (8741-1 parallel port) - Dips 6 Unused */
|
||||
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2")
|
||||
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:1,2")
|
||||
PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( 1C_4C ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) )
|
||||
PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:3,4")
|
||||
PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW2:3,4")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 4C_1C ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) )
|
||||
PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:5")
|
||||
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:5")
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW2:6" ) /* Listed as "Unused" */
|
||||
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:7")
|
||||
PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW2:6" ) /* Listed as "Unused" */
|
||||
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:7")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:8")
|
||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:8")
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
@ -493,68 +604,48 @@ static INPUT_PORTS_START( gladiatr )
|
||||
PORT_DIPNAME( 0x01, 0x01, "Invulnerability (Cheat)") PORT_DIPLOCATION("SW3:1")
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, "Memory Backup" ) PORT_DIPLOCATION("SW3:2")
|
||||
PORT_DIPNAME( 0x02, 0x02, "Memory Backup" ) PORT_DIPLOCATION("SW3:2")
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Normal ) )
|
||||
PORT_DIPSETTING( 0x00, "Clear" )
|
||||
PORT_DIPNAME( 0x0c, 0x0c, "Starting Stage" ) PORT_DIPLOCATION("SW3:3,4")
|
||||
PORT_DIPNAME( 0x0c, 0x0c, "Starting Stage" ) PORT_DIPLOCATION("SW3:3,4")
|
||||
PORT_DIPSETTING( 0x0c, "1" )
|
||||
PORT_DIPSETTING( 0x08, "2" )
|
||||
PORT_DIPSETTING( 0x04, "3" )
|
||||
PORT_DIPSETTING( 0x00, "4" )
|
||||
PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW3:5" ) /* Listed as "Unused" */
|
||||
PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW3:6" ) /* Listed as "Unused" */
|
||||
PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW3:7" ) /* Listed as "Unused" */
|
||||
PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW3:5" ) /* Listed as "Unused" */
|
||||
PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW3:6" ) /* Listed as "Unused" */
|
||||
PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW3:7" ) /* Listed as "Unused" */
|
||||
PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW3:8" )
|
||||
|
||||
PORT_START("IN0") /*(8741-3 parallel port 1) */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* COINS */
|
||||
PORT_START("IN0") // ccpu p1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_8WAY
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_8WAY
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
|
||||
|
||||
PORT_START("COINS") /*(8741-3 parallel port bit7) */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(1)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(1)
|
||||
PORT_START("IN1") // ccpu p2
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
|
||||
PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) // coin counter outputs
|
||||
|
||||
PORT_START("IN1") /* (8741-3 parallel port 2) */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* COINS */
|
||||
PORT_START("IN2") // cctl p1
|
||||
PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) // other stuff mixed here
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL
|
||||
|
||||
PORT_START("IN2") /* (8741-3 parallel port 4) */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* COINS */
|
||||
|
||||
PORT_START("IN3") /* (8741-2 parallel port 1) */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_COCKTAIL
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_START("COINS") // ccpu test, cctl test
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
/*******************************************************************/
|
||||
@ -608,30 +699,25 @@ GFXDECODE_END
|
||||
|
||||
|
||||
|
||||
READ8_MEMBER(gladiatr_state::ppking_f1_r)
|
||||
{
|
||||
return machine().rand();
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( ppking, gladiatr_state )
|
||||
static MACHINE_CONFIG_START( ppking, ppking_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* verified on pcb */
|
||||
MCFG_CPU_PROGRAM_MAP(ppking_cpu1_map)
|
||||
MCFG_CPU_IO_MAP(ppking_cpu1_io)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", gladiatr_state, irq0_line_hold)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", ppking_state, irq0_line_hold)
|
||||
|
||||
MCFG_CPU_ADD("sub", Z80, XTAL_12MHz/4) /* verified on pcb */
|
||||
MCFG_CPU_PROGRAM_MAP(cpu2_map)
|
||||
MCFG_CPU_IO_MAP(ppking_cpu2_io)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", gladiatr_state, irq0_line_hold)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", ppking_state, irq0_line_hold)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", M6809, XTAL_12MHz/16) /* verified on pcb */
|
||||
MCFG_CPU_PROGRAM_MAP(ppking_cpu3_map)
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
|
||||
|
||||
MCFG_MACHINE_RESET_OVERRIDE(gladiatr_state,ppking)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(ppking_state, ppking)
|
||||
MCFG_NVRAM_ADD_0FILL("nvram")
|
||||
|
||||
/* video hardware */
|
||||
@ -640,13 +726,13 @@ static MACHINE_CONFIG_START( ppking, gladiatr_state )
|
||||
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(gladiatr_state, screen_update_ppking)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(ppking_state, screen_update_ppking)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", ppking)
|
||||
MCFG_PALETTE_ADD("palette", 1024)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(gladiatr_state,ppking)
|
||||
MCFG_VIDEO_START_OVERRIDE(ppking_state, ppking)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
@ -654,8 +740,8 @@ static MACHINE_CONFIG_START( ppking, gladiatr_state )
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
|
||||
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/8) /* verified on pcb */
|
||||
MCFG_AY8910_PORT_A_READ_CB(READ8(gladiatr_state, ppking_f1_r))
|
||||
MCFG_AY8910_PORT_B_READ_CB(READ8(gladiatr_state, ppking_f1_r))
|
||||
MCFG_AY8910_PORT_A_READ_CB(READ8(ppking_state, ppking_f1_r))
|
||||
MCFG_AY8910_PORT_B_READ_CB(READ8(ppking_state, ppking_f1_r))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.60)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.60)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.60)
|
||||
@ -681,15 +767,26 @@ static MACHINE_CONFIG_START( gladiatr, gladiatr_state )
|
||||
MCFG_CPU_ADD("audiocpu", M6809, XTAL_12MHz/16) /* verified on pcb */
|
||||
MCFG_CPU_PROGRAM_MAP(gladiatr_cpu3_map)
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(600))
|
||||
|
||||
MCFG_MACHINE_RESET_OVERRIDE(gladiatr_state,gladiator)
|
||||
MCFG_NVRAM_ADD_0FILL("nvram")
|
||||
|
||||
MCFG_TAITO8741_ADD("taito8741")
|
||||
MCFG_TAITO8741_MODES(TAITO8741_MASTER,TAITO8741_SLAVE,TAITO8741_PORT,TAITO8741_PORT)
|
||||
MCFG_TAITO8741_CONNECT(1,0,0,0)
|
||||
MCFG_TAITO8741_PORT_HANDLERS(READ8(gladiatr_state,gladiator_dsw1_r),READ8(gladiatr_state,gladiator_dsw2_r),READ8(gladiatr_state,gladiator_button3_r),READ8(gladiatr_state,gladiator_controls_r))
|
||||
MCFG_DEVICE_ADD("cctl", I8741, XTAL_12MHz/2) /* verified on pcb */
|
||||
MCFG_CPU_IO_MAP(cctl_io_map)
|
||||
|
||||
MCFG_DEVICE_ADD("ccpu", I8741, XTAL_12MHz/2) /* verified on pcb */
|
||||
MCFG_CPU_IO_MAP(ccpu_io_map)
|
||||
|
||||
MCFG_DEVICE_ADD("ucpu", I8741, XTAL_12MHz/2) /* verified on pcb */
|
||||
MCFG_CPU_IO_MAP(ucpu_io_map)
|
||||
|
||||
MCFG_DEVICE_ADD("csnd", I8741, XTAL_12MHz/2) /* verified on pcb */
|
||||
MCFG_CPU_IO_MAP(csnd_io_map)
|
||||
|
||||
/* lazy way to make polled serial between MCUs work */
|
||||
MCFG_QUANTUM_PERFECT_CPU("ucpu")
|
||||
|
||||
MCFG_CLOCK_ADD("tclk", XTAL_12MHz/8/128/2) /* verified on pcb */
|
||||
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(gladiatr_state, tclk_w));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
@ -724,6 +821,7 @@ static MACHINE_CONFIG_START( gladiatr, gladiatr_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Game driver(s)
|
||||
@ -811,6 +909,18 @@ ROM_START( gladiatr )
|
||||
ROM_REGION( 0x00040, "proms", 0 ) /* unused */
|
||||
ROM_LOAD( "q3.2b", 0x00000, 0x0020, CRC(6a7c3c60) SHA1(5125bfeb03752c8d76b140a4e74d5cac29dcdaa6) ) /* address decoding */
|
||||
ROM_LOAD( "q4.5s", 0x00020, 0x0020, CRC(e325808e) SHA1(5fd92ad4eff24f6ccf2df19d268a6cafba72202e) )
|
||||
|
||||
ROM_REGION( 0x0400, "cctl", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "aq_002.9b", 0x00000, 0x0400, CRC(b30d225f) SHA1(f383286530975c440589c276aa8c46fdfe5292b6) BAD_DUMP )
|
||||
|
||||
ROM_REGION( 0x0400, "ccpu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "aq_003.xx", 0x00000, 0x0400, CRC(1d02cd5f) SHA1(f7242039788c66a1d91b01852d7d447330b847c4) BAD_DUMP )
|
||||
|
||||
ROM_REGION( 0x0400, "ucpu", 0 ) /* comms MCU */
|
||||
ROM_LOAD( "aq_006.3a", 0x00000, 0x0400, CRC(3c5ca4c6) SHA1(0d8c2e1c2142ada11e30cfb9a48663386fee9cb8) BAD_DUMP )
|
||||
|
||||
ROM_REGION( 0x0400, "csnd", 0 ) /* comms MCU */
|
||||
ROM_LOAD( "aq_006.6c", 0x00000, 0x0400, CRC(3c5ca4c6) SHA1(0d8c2e1c2142ada11e30cfb9a48663386fee9cb8) BAD_DUMP )
|
||||
ROM_END
|
||||
|
||||
ROM_START( ogonsiro )
|
||||
@ -854,6 +964,18 @@ ROM_START( ogonsiro )
|
||||
ROM_REGION( 0x00040, "proms", 0 ) /* unused */
|
||||
ROM_LOAD( "q3.2b", 0x00000, 0x0020, CRC(6a7c3c60) SHA1(5125bfeb03752c8d76b140a4e74d5cac29dcdaa6) ) /* address decoding */
|
||||
ROM_LOAD( "q4.5s", 0x00020, 0x0020, CRC(e325808e) SHA1(5fd92ad4eff24f6ccf2df19d268a6cafba72202e) )
|
||||
|
||||
ROM_REGION( 0x0400, "cctl", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "aq_002.9b", 0x00000, 0x0400, CRC(b30d225f) SHA1(f383286530975c440589c276aa8c46fdfe5292b6) BAD_DUMP )
|
||||
|
||||
ROM_REGION( 0x0400, "ccpu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "aq_003.xx", 0x00000, 0x0400, CRC(1d02cd5f) SHA1(f7242039788c66a1d91b01852d7d447330b847c4) BAD_DUMP )
|
||||
|
||||
ROM_REGION( 0x0400, "ucpu", 0 ) /* comms MCU */
|
||||
ROM_LOAD( "aq_006.3a", 0x00000, 0x0400, CRC(3c5ca4c6) SHA1(0d8c2e1c2142ada11e30cfb9a48663386fee9cb8) BAD_DUMP )
|
||||
|
||||
ROM_REGION( 0x0400, "csnd", 0 ) /* comms MCU */
|
||||
ROM_LOAD( "aq_006.6c", 0x00000, 0x0400, CRC(3c5ca4c6) SHA1(0d8c2e1c2142ada11e30cfb9a48663386fee9cb8) BAD_DUMP )
|
||||
ROM_END
|
||||
|
||||
ROM_START( greatgur )
|
||||
@ -898,10 +1020,16 @@ ROM_START( greatgur )
|
||||
ROM_LOAD( "q3.2b", 0x00000, 0x0020, CRC(6a7c3c60) SHA1(5125bfeb03752c8d76b140a4e74d5cac29dcdaa6) ) /* address decoding */
|
||||
ROM_LOAD( "q4.5s", 0x00020, 0x0020, CRC(e325808e) SHA1(5fd92ad4eff24f6ccf2df19d268a6cafba72202e) )
|
||||
|
||||
ROM_REGION( 0x0400, "user1", 0 ) /* ROMs for the four 8741 (not emulated yet) */
|
||||
ROM_REGION( 0x0400, "cctl", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "gladcctl.1", 0x00000, 0x0400, CRC(b30d225f) SHA1(f383286530975c440589c276aa8c46fdfe5292b6) )
|
||||
|
||||
ROM_REGION( 0x0400, "ccpu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "gladccpu.2", 0x00000, 0x0400, CRC(1d02cd5f) SHA1(f7242039788c66a1d91b01852d7d447330b847c4) )
|
||||
|
||||
ROM_REGION( 0x0400, "ucpu", 0 ) /* comms MCU */
|
||||
ROM_LOAD( "gladucpu.17", 0x00000, 0x0400, CRC(3c5ca4c6) SHA1(0d8c2e1c2142ada11e30cfb9a48663386fee9cb8) )
|
||||
|
||||
ROM_REGION( 0x0400, "csnd", 0 ) /* comms MCU */
|
||||
ROM_LOAD( "gladcsnd.18", 0x00000, 0x0400, CRC(3c5ca4c6) SHA1(0d8c2e1c2142ada11e30cfb9a48663386fee9cb8) )
|
||||
ROM_END
|
||||
|
||||
@ -946,6 +1074,18 @@ ROM_START( gcastle )
|
||||
ROM_REGION( 0x00040, "proms", 0 ) /* unused */
|
||||
ROM_LOAD( "q3.2b", 0x00000, 0x0020, CRC(6a7c3c60) SHA1(5125bfeb03752c8d76b140a4e74d5cac29dcdaa6) ) /* address decoding */
|
||||
ROM_LOAD( "q4.5s", 0x00020, 0x0020, CRC(e325808e) SHA1(5fd92ad4eff24f6ccf2df19d268a6cafba72202e) )
|
||||
|
||||
ROM_REGION( 0x0400, "cctl", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "aq_002.9b", 0x00000, 0x0400, CRC(b30d225f) SHA1(f383286530975c440589c276aa8c46fdfe5292b6) BAD_DUMP )
|
||||
|
||||
ROM_REGION( 0x0400, "ccpu", 0 ) /* I/O MCU */
|
||||
ROM_LOAD( "aq_003.xx", 0x00000, 0x0400, CRC(1d02cd5f) SHA1(f7242039788c66a1d91b01852d7d447330b847c4) BAD_DUMP )
|
||||
|
||||
ROM_REGION( 0x0400, "ucpu", 0 ) /* comms MCU */
|
||||
ROM_LOAD( "aq_006.3a", 0x00000, 0x0400, CRC(3c5ca4c6) SHA1(0d8c2e1c2142ada11e30cfb9a48663386fee9cb8) BAD_DUMP )
|
||||
|
||||
ROM_REGION( 0x0400, "csnd", 0 ) /* comms MCU */
|
||||
ROM_LOAD( "aq_006.6c", 0x00000, 0x0400, CRC(3c5ca4c6) SHA1(0d8c2e1c2142ada11e30cfb9a48663386fee9cb8) BAD_DUMP )
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -1001,18 +1141,26 @@ DRIVER_INIT_MEMBER(gladiatr_state,gladiatr)
|
||||
|
||||
/* make sure bank is valid in cpu-reset */
|
||||
membank("bank2")->set_entry(0);
|
||||
|
||||
m_tclk_val = false;
|
||||
m_in0_val = 0xff;
|
||||
m_in1_val = 0xff;
|
||||
m_cctl_p1 = 0xff;
|
||||
m_cctl_p2 = 0xff;
|
||||
m_ucpu_p1 = 0xff;
|
||||
m_csnd_p1 = 0xff;
|
||||
|
||||
save_item(NAME(m_tclk_val));
|
||||
save_item(NAME(m_in0_val));
|
||||
save_item(NAME(m_in1_val));
|
||||
save_item(NAME(m_cctl_p1));
|
||||
save_item(NAME(m_cctl_p2));
|
||||
save_item(NAME(m_ucpu_p1));
|
||||
save_item(NAME(m_csnd_p1));
|
||||
}
|
||||
|
||||
|
||||
READ8_MEMBER(gladiatr_state::ppking_f6a3_r)
|
||||
{
|
||||
if(space.device().safe_pcbase()==0x8e)
|
||||
m_nvram[0x6a3]=1;
|
||||
|
||||
return m_nvram[0x6a3];
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(gladiatr_state,ppking)
|
||||
DRIVER_INIT_MEMBER(ppking_state, ppking)
|
||||
{
|
||||
uint8_t *rom;
|
||||
int i,j;
|
||||
@ -1034,7 +1182,7 @@ DRIVER_INIT_MEMBER(gladiatr_state,ppking)
|
||||
rom[i+2*j*0x2000] = rom[i+j*0x2000];
|
||||
}
|
||||
}
|
||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0xf6a3,0xf6a3,read8_delegate(FUNC(gladiatr_state::ppking_f6a3_r),this));
|
||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0xf6a3,0xf6a3,read8_delegate(FUNC(ppking_state::ppking_f6a3_r),this));
|
||||
|
||||
save_item(NAME(m_data1));
|
||||
save_item(NAME(m_data2));
|
||||
@ -1042,7 +1190,7 @@ DRIVER_INIT_MEMBER(gladiatr_state,ppking)
|
||||
|
||||
|
||||
|
||||
GAME( 1985, ppking, 0, ppking, 0, gladiatr_state, ppking, ROT90, "Taito America Corporation", "Ping-Pong King", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, ppking, 0, ppking, 0, ppking_state, ppking, ROT90, "Taito America Corporation", "Ping-Pong King", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, gladiatr, 0, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito America Corporation", "Gladiator (US)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, ogonsiro, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito Corporation", "Ougon no Shiro (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, greatgur, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito Corporation", "Great Gurianos (Japan?)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -39,9 +39,9 @@ class grfd2301_state : public driver_device
|
||||
public:
|
||||
grfd2301_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_p_videoram(*this, "videoram")
|
||||
, m_maincpu(*this, "maincpu")
|
||||
{ }
|
||||
, m_p_videoram(*this, "videoram")
|
||||
, m_maincpu(*this, "maincpu")
|
||||
{ }
|
||||
|
||||
public:
|
||||
virtual void machine_reset() override;
|
||||
|
@ -41,8 +41,6 @@
|
||||
#include "machine/ins8250.h"
|
||||
#include "machine/keyboard.h"
|
||||
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
#define H19_CLOCK (XTAL_12_288MHz / 6)
|
||||
#define H19_BEEP_FRQ (H19_CLOCK / 1024)
|
||||
|
||||
@ -407,7 +405,7 @@ static MACHINE_CONFIG_START( h19, h19_state )
|
||||
MCFG_DEVICE_ADD("ins8250", INS8250, XTAL_12_288MHz / 4) // 3.072mhz clock which gets divided down for the various baud rates
|
||||
MCFG_INS8250_OUT_INT_CB(INPUTLINE("maincpu", 0)) // interrupt
|
||||
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(h19_state, h19_kbd_put))
|
||||
|
||||
/* sound hardware */
|
||||
|
@ -28,10 +28,10 @@ class homez80_state : public driver_device
|
||||
{
|
||||
public:
|
||||
homez80_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu")
|
||||
,
|
||||
m_p_videoram(*this, "p_videoram"){ }
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_p_videoram(*this, "videoram")
|
||||
{ }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
DECLARE_READ8_MEMBER( homez80_keyboard_r );
|
||||
@ -55,7 +55,7 @@ READ8_MEMBER( homez80_state::homez80_keyboard_r )
|
||||
static ADDRESS_MAP_START(homez80_mem, AS_PROGRAM, 8, homez80_state)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE( 0x0000, 0x0fff ) AM_ROM // Monitor
|
||||
AM_RANGE( 0x2000, 0x23ff ) AM_RAM AM_SHARE("p_videoram") // Video RAM
|
||||
AM_RANGE( 0x2000, 0x23ff ) AM_RAM AM_SHARE("videoram") // Video RAM
|
||||
AM_RANGE( 0x7020, 0x702f ) AM_READ(homez80_keyboard_r)
|
||||
AM_RANGE( 0x8000, 0xffff ) AM_RAM // 32 K RAM
|
||||
ADDRESS_MAP_END
|
||||
|
@ -13,8 +13,6 @@
|
||||
#include "video/i8275.h"
|
||||
#include "machine/keyboard.h"
|
||||
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
class ipds_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -146,7 +144,7 @@ static MACHINE_CONFIG_START( ipds, ipds_state )
|
||||
MCFG_I8275_CHARACTER_WIDTH(6)
|
||||
MCFG_I8275_DRAW_CHARACTER_CALLBACK_OWNER(ipds_state, crtc_display_pixels)
|
||||
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(ipds_state, kbd_put))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -27,9 +27,6 @@ ToDo:
|
||||
#include "machine/wd_fdc.h"
|
||||
#include "includes/jupiter.h"
|
||||
|
||||
#define TERMINAL_TAG "terminal"
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// ADDRESS MAPS
|
||||
@ -75,7 +72,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( jupiter3_mem, AS_PROGRAM, 8, jupiter3_state )
|
||||
AM_RANGE(0x0000, 0xbfff) AM_RAM AM_SHARE("p_ram")
|
||||
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_SHARE("p_videoram")
|
||||
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_SHARE("videoram")
|
||||
AM_RANGE(0xe000, 0xefff) AM_ROM AM_REGION(Z80_TAG, 0)
|
||||
AM_RANGE(0xf000, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
@ -229,7 +226,7 @@ static MACHINE_CONFIG_START( jupiter, jupiter2_state )
|
||||
MCFG_FLOPPY_DRIVE_ADD(INS1771N1_TAG":0", jupiter_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(INS1771N1_TAG":1", jupiter_floppies, nullptr, floppy_image_device::default_floppy_formats)
|
||||
|
||||
MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
|
||||
MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0)
|
||||
|
||||
// internal ram
|
||||
MCFG_RAM_ADD(RAM_TAG)
|
||||
@ -263,7 +260,7 @@ static MACHINE_CONFIG_START( jupiter3, jupiter3_state )
|
||||
MCFG_FLOPPY_DRIVE_ADD(INS1771N1_TAG":0", jupiter_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(INS1771N1_TAG":1", jupiter_floppies, nullptr, floppy_image_device::default_floppy_formats)
|
||||
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(jupiter3_state, kbd_put))
|
||||
|
||||
// internal ram
|
||||
|
@ -14,15 +14,13 @@
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "machine/keyboard.h"
|
||||
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
class k8915_state : public driver_device
|
||||
{
|
||||
public:
|
||||
k8915_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_p_videoram(*this, "p_videoram")
|
||||
m_p_videoram(*this, "videoram")
|
||||
{
|
||||
}
|
||||
|
||||
@ -67,7 +65,7 @@ WRITE8_MEMBER( k8915_state::k8915_a8_w )
|
||||
static ADDRESS_MAP_START(k8915_mem, AS_PROGRAM, 8, k8915_state)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("boot")
|
||||
AM_RANGE(0x1000, 0x17ff) AM_RAM AM_SHARE("p_videoram")
|
||||
AM_RANGE(0x1000, 0x17ff) AM_RAM AM_SHARE("videoram")
|
||||
AM_RANGE(0x1800, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -166,7 +164,7 @@ static MACHINE_CONFIG_START( k8915, k8915_state )
|
||||
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(k8915_state, kbd_put))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -51,8 +51,6 @@
|
||||
#include "includes/llc.h"
|
||||
#include "llc1.lh"
|
||||
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
/* Address maps */
|
||||
static ADDRESS_MAP_START( llc1_mem, AS_PROGRAM, 8, llc_state )
|
||||
AM_RANGE(0x0000, 0x07ff) AM_ROM // Monitor ROM
|
||||
@ -234,7 +232,7 @@ static MACHINE_CONFIG_START( llc1, llc_state )
|
||||
MCFG_Z80CTC_ZC0_CB(DEVWRITELINE("z80ctc", z80ctc_device, trg1))
|
||||
MCFG_Z80CTC_ZC1_CB(DEVWRITELINE("z80ctc", z80ctc_device, trg3))
|
||||
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(llc_state, kbd_put))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -68,7 +68,7 @@ public:
|
||||
m_floppy0(*this, "fd1797:0:5dd"),
|
||||
m_floppy1(*this, "fd1797:1:5dd"),
|
||||
m_apb(*this, "apb"),
|
||||
m_p_videoram(*this, "p_videoram"),
|
||||
m_p_videoram(*this, "videoram"),
|
||||
m_palette(*this, "palette")
|
||||
{
|
||||
}
|
||||
@ -312,13 +312,13 @@ B/W, 128K cards, 3 cards => 512K of memory:
|
||||
|
||||
static ADDRESS_MAP_START(m20_program_mem, AS_PROGRAM, 16, m20_state)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE( 0x30000, 0x33fff ) AM_RAM AM_SHARE("p_videoram")
|
||||
AM_RANGE( 0x30000, 0x33fff ) AM_RAM AM_SHARE("videoram")
|
||||
AM_RANGE( 0x40000, 0x41fff ) AM_ROM AM_REGION("maincpu", 0x00000)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START(m20_data_mem, AS_DATA, 16, m20_state)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE( 0x30000, 0x33fff ) AM_RAM AM_SHARE("p_videoram")
|
||||
AM_RANGE( 0x30000, 0x33fff ) AM_RAM AM_SHARE("videoram")
|
||||
AM_RANGE( 0x40000, 0x41fff ) AM_ROM AM_REGION("maincpu", 0x00000)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -18,8 +18,8 @@ class m79152pc_state : public driver_device
|
||||
public:
|
||||
m79152pc_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_p_videoram(*this, "p_videoram"),
|
||||
m_p_attributes(*this, "p_attributes"),
|
||||
m_p_videoram(*this, "videoram"),
|
||||
m_p_attributes(*this, "attributes"),
|
||||
m_maincpu(*this, "maincpu") { }
|
||||
|
||||
uint8_t *m_p_chargen;
|
||||
@ -35,8 +35,8 @@ static ADDRESS_MAP_START(m79152pc_mem, AS_PROGRAM, 8, m79152pc_state)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x3fff) AM_ROM
|
||||
AM_RANGE(0x4000, 0x47ff) AM_RAM
|
||||
AM_RANGE(0x8000, 0x8fff) AM_RAM AM_SHARE("p_videoram")
|
||||
AM_RANGE(0x9000, 0x9fff) AM_RAM AM_SHARE("p_attributes")
|
||||
AM_RANGE(0x8000, 0x8fff) AM_RAM AM_SHARE("videoram")
|
||||
AM_RANGE(0x9000, 0x9fff) AM_RAM AM_SHARE("attributes")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( m79152pc_io, AS_IO, 8, m79152pc_state)
|
||||
|
@ -18,7 +18,7 @@ public:
|
||||
mes_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_p_videoram(*this, "p_videoram"){ }
|
||||
m_p_videoram(*this, "videoram"){ }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
const uint8_t *m_p_chargen;
|
||||
@ -34,7 +34,7 @@ static ADDRESS_MAP_START(mes_mem, AS_PROGRAM, 8, mes_state)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x0fff) AM_ROM
|
||||
AM_RANGE(0x1000, 0xefff) AM_RAM
|
||||
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("p_videoram")
|
||||
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("videoram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( mes_io, AS_IO, 8, mes_state)
|
||||
|
@ -20,8 +20,6 @@
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "machine/keyboard.h"
|
||||
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
class modellot_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -167,7 +165,7 @@ static MACHINE_CONFIG_START( modellot, modellot_state )
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
/* Devices */
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(modellot_state, kbd_put))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -26,8 +26,6 @@
|
||||
#include "machine/clock.h"
|
||||
#include "machine/keyboard.h"
|
||||
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
class mx2178_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -181,7 +179,7 @@ static MACHINE_CONFIG_START( mx2178, mx2178_state )
|
||||
|
||||
/// TODO: hook up acia to keyboard and memory map
|
||||
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(mx2178_state, kbd_put))
|
||||
|
||||
MCFG_DEVICE_ADD("acia_clock", CLOCK, 614400)
|
||||
|
@ -244,7 +244,7 @@ static ADDRESS_MAP_START( mz80k_mem, AS_PROGRAM, 8, mz80_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x0fff) AM_ROM
|
||||
AM_RANGE(0x1000, 0xcfff) AM_RAM AM_SHARE("p_ram") // 48 KB of RAM
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("p_videoram") // Video RAM
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("videoram") // Video RAM
|
||||
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) /* PPIA 8255 */
|
||||
AM_RANGE(0xe004, 0xe007) AM_DEVREADWRITE("pit8253", pit8253_device, read, write) /* PIT 8253 */
|
||||
AM_RANGE(0xe008, 0xe00b) AM_READWRITE( mz80k_strobe_r, mz80k_strobe_w)
|
||||
|
@ -54,9 +54,6 @@ Usage of terminal:
|
||||
#include "machine/keyboard.h"
|
||||
#include "machine/terminal.h"
|
||||
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
#define TERMINAL_TAG "terminal"
|
||||
|
||||
class okean240_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -70,7 +67,7 @@ public:
|
||||
m_term_data(0),
|
||||
m_j(0),
|
||||
m_scroll(0),
|
||||
m_p_videoram(*this, "p_videoram"),
|
||||
m_p_videoram(*this, "videoram"),
|
||||
m_io_modifiers(*this, "MODIFIERS"),
|
||||
m_maincpu(*this, "maincpu")
|
||||
{
|
||||
@ -206,7 +203,7 @@ static ADDRESS_MAP_START(okean240_mem, AS_PROGRAM, 8, okean240_state)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x07ff) AM_RAMBANK("boot")
|
||||
AM_RANGE(0x0800, 0x3fff) AM_RAM
|
||||
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_SHARE("p_videoram")
|
||||
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_SHARE("videoram")
|
||||
AM_RANGE(0x8000, 0xbfff) AM_RAM
|
||||
AM_RANGE(0xc000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
@ -243,7 +240,7 @@ static ADDRESS_MAP_START(okean240t_io, AS_IO, 8, okean240_state)
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x40, 0x42) AM_READWRITE(okean240_keyboard_r,okean240_keyboard_w)
|
||||
AM_RANGE(0x80, 0x80) AM_READ(okean240_kbd_status_r)
|
||||
AM_RANGE(0xa0, 0xa0) AM_DEVWRITE(TERMINAL_TAG, generic_terminal_device, write)
|
||||
AM_RANGE(0xa0, 0xa0) AM_DEVWRITE("terminal", generic_terminal_device, write)
|
||||
AM_RANGE(0xa0, 0xa0) AM_READ(term_r)
|
||||
AM_RANGE(0xa1, 0xa1) AM_READ(term_status_r)
|
||||
AM_RANGE(0xc0, 0xc0) AM_WRITE(scroll_w)
|
||||
@ -490,7 +487,7 @@ static MACHINE_CONFIG_START( okean240t, okean240_state )
|
||||
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
|
||||
MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0)
|
||||
MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(okean240_state, kbd_put))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -498,8 +495,8 @@ static MACHINE_CONFIG_DERIVED( okean240a, okean240t )
|
||||
MCFG_CPU_MODIFY("maincpu")
|
||||
MCFG_CPU_IO_MAP(okean240a_io)
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", okean240a)
|
||||
MCFG_DEVICE_REMOVE(TERMINAL_TAG)
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_REMOVE("terminal")
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(okean240_state, kbd_put))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -507,8 +504,8 @@ static MACHINE_CONFIG_DERIVED( okean240, okean240t )
|
||||
MCFG_CPU_MODIFY("maincpu")
|
||||
MCFG_CPU_IO_MAP(okean240_io)
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", okean240)
|
||||
MCFG_DEVICE_REMOVE(TERMINAL_TAG)
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_REMOVE("terminal")
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(okean240_state, kbd_put))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -37,8 +37,6 @@
|
||||
|
||||
#define LOG 1
|
||||
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
class phunsy_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -363,7 +361,7 @@ static MACHINE_CONFIG_START( phunsy, phunsy_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
|
||||
/* Devices */
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(phunsy_state, kbd_put))
|
||||
MCFG_CASSETTE_ADD( "cassette" )
|
||||
|
||||
|
@ -38,7 +38,7 @@ public:
|
||||
plan80_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_p_videoram(*this, "p_videoram")
|
||||
, m_p_videoram(*this, "videoram")
|
||||
{ }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
@ -88,7 +88,7 @@ static ADDRESS_MAP_START(plan80_mem, AS_PROGRAM, 8, plan80_state)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x07ff) AM_RAMBANK("boot")
|
||||
AM_RANGE(0x0800, 0xefff) AM_RAM
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("p_videoram")
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("videoram")
|
||||
AM_RANGE(0xf800, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -41,8 +41,6 @@
|
||||
#include "machine/keyboard.h"
|
||||
#include "sound/speaker.h"
|
||||
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
class poly_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -198,7 +196,7 @@ static MACHINE_CONFIG_START( poly, poly_state )
|
||||
|
||||
MCFG_DEVICE_ADD("adlc", MC6854, 0)
|
||||
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(poly_state, kbd_put))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -147,7 +147,7 @@ public:
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_sound(*this, "pv1000_sound"),
|
||||
m_cart(*this, "cartslot"),
|
||||
m_p_videoram(*this, "p_videoram"),
|
||||
m_p_videoram(*this, "videoram"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_screen(*this, "screen"),
|
||||
m_palette(*this, "palette")
|
||||
@ -187,7 +187,7 @@ public:
|
||||
|
||||
static ADDRESS_MAP_START( pv1000, AS_PROGRAM, 8, pv1000_state )
|
||||
//AM_RANGE(0x0000, 0x7fff) // mapped by the cartslot
|
||||
AM_RANGE(0xb800, 0xbbff) AM_RAM AM_SHARE("p_videoram")
|
||||
AM_RANGE(0xb800, 0xbbff) AM_RAM AM_SHARE("videoram")
|
||||
AM_RANGE(0xbc00, 0xbfff) AM_RAM_WRITE(gfxram_w) AM_REGION("gfxram", 0)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -38,9 +38,6 @@ Unable to proceed due to no info available (& in English).
|
||||
#include "machine/keyboard.h"
|
||||
#include "machine/terminal.h"
|
||||
|
||||
#define TERMINAL_TAG "terminal"
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
class sapi1_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -226,7 +223,7 @@ static ADDRESS_MAP_START( sapi3a_io, AS_IO, 8, sapi1_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_WRITE(sapi3_00_w)
|
||||
AM_RANGE(0x12, 0x12) AM_READ(sapi2_keyboard_data_r) AM_DEVWRITE(TERMINAL_TAG, generic_terminal_device, write)
|
||||
AM_RANGE(0x12, 0x12) AM_READ(sapi2_keyboard_data_r) AM_DEVWRITE("terminal", generic_terminal_device, write)
|
||||
AM_RANGE(0x25, 0x25) AM_READWRITE(sapi3_25_r,sapi3_25_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -560,7 +557,7 @@ static MACHINE_CONFIG_DERIVED( sapi2, sapi1 )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_MODIFY("maincpu")
|
||||
MCFG_CPU_PROGRAM_MAP(sapi2_mem)
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(sapi1_state, kbd_put))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -600,7 +597,7 @@ static MACHINE_CONFIG_START( sapi3a, sapi1_state )
|
||||
MCFG_MACHINE_RESET_OVERRIDE(sapi1_state, sapizps3 )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0)
|
||||
MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0)
|
||||
MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(sapi1_state, kbd_put))
|
||||
|
||||
/* internal ram */
|
||||
|
@ -17,7 +17,7 @@
|
||||
static ADDRESS_MAP_START(specialist_mem, AS_PROGRAM, 8, special_state )
|
||||
AM_RANGE( 0x0000, 0x2fff ) AM_RAMBANK("bank1") // First bank
|
||||
AM_RANGE( 0x3000, 0x8fff ) AM_RAM // RAM
|
||||
AM_RANGE( 0x9000, 0xbfff ) AM_RAM AM_SHARE("p_videoram") // Video RAM
|
||||
AM_RANGE( 0x9000, 0xbfff ) AM_RAM AM_SHARE("videoram") // Video RAM
|
||||
AM_RANGE( 0xc000, 0xefff ) AM_ROM // System ROM
|
||||
AM_RANGE( 0xf800, 0xf803 ) AM_MIRROR(0x7fc) AM_DEVREADWRITE("ppi8255", i8255_device, read, write)
|
||||
ADDRESS_MAP_END
|
||||
@ -25,7 +25,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START(specialp_mem, AS_PROGRAM, 8, special_state )
|
||||
AM_RANGE( 0x0000, 0x2fff ) AM_RAMBANK("bank1") // First bank
|
||||
AM_RANGE( 0x3000, 0x7fff ) AM_RAM // RAM
|
||||
AM_RANGE( 0x8000, 0xbfff ) AM_RAM AM_SHARE("p_videoram") // Video RAM
|
||||
AM_RANGE( 0x8000, 0xbfff ) AM_RAM AM_SHARE("videoram") // Video RAM
|
||||
AM_RANGE( 0xc000, 0xefff ) AM_ROM // System ROM
|
||||
AM_RANGE( 0xf800, 0xf803 ) AM_MIRROR(0x7fc) AM_DEVREADWRITE("ppi8255", i8255_device, read, write)
|
||||
ADDRESS_MAP_END
|
||||
|
@ -62,8 +62,6 @@ Z - more scan lines per row (cursor is bigger)
|
||||
#include "sound/beep.h"
|
||||
#include "tavernie.lh"
|
||||
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
class tavernie_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -356,7 +354,7 @@ static MACHINE_CONFIG_DERIVED( ivg09, cpu09 )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
|
||||
/* Devices */
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(tavernie_state, kbd_put))
|
||||
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", 1008000) // unknown clock
|
||||
|
@ -27,8 +27,6 @@ TODO:
|
||||
#include "machine/i8255.h"
|
||||
#include "machine/keyboard.h"
|
||||
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
class tk80bs_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -189,7 +187,7 @@ static MACHINE_CONFIG_START( tk80bs, tk80bs_state )
|
||||
MCFG_I8255_IN_PORTA_CB(READ8(tk80bs_state, port_a_r))
|
||||
MCFG_I8255_IN_PORTB_CB(READ8(tk80bs_state, port_b_r))
|
||||
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(tk80bs_state, kbd_put))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -143,7 +143,7 @@ There don't seem to be any JV1 boot disks for Model III/4.
|
||||
static ADDRESS_MAP_START( trs80_map, AS_PROGRAM, 8, trs80_state )
|
||||
AM_RANGE(0x0000, 0x0fff) AM_ROM
|
||||
AM_RANGE(0x3800, 0x38ff) AM_READ(trs80_keyboard_r)
|
||||
AM_RANGE(0x3c00, 0x3fff) AM_READWRITE(trs80_videoram_r, trs80_videoram_w) AM_SHARE("p_videoram")
|
||||
AM_RANGE(0x3c00, 0x3fff) AM_READWRITE(trs80_videoram_r, trs80_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0x4000, 0x7fff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -166,7 +166,7 @@ static ADDRESS_MAP_START( model1_map, AS_PROGRAM, 8, trs80_state )
|
||||
AM_RANGE(0x37ee, 0x37ee) AM_DEVREADWRITE("fdc", fd1793_t, sector_r, sector_w)
|
||||
AM_RANGE(0x37ef, 0x37ef) AM_DEVREADWRITE("fdc", fd1793_t, data_r, data_w)
|
||||
AM_RANGE(0x3800, 0x38ff) AM_MIRROR(0x300) AM_READ(trs80_keyboard_r)
|
||||
AM_RANGE(0x3c00, 0x3fff) AM_READWRITE(trs80_videoram_r, trs80_videoram_w) AM_SHARE("p_videoram")
|
||||
AM_RANGE(0x3c00, 0x3fff) AM_READWRITE(trs80_videoram_r, trs80_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0x4000, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -274,7 +274,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( meritum_map, AS_PROGRAM, 8, trs80_state )
|
||||
AM_RANGE(0x0000, 0x37ff) AM_ROM
|
||||
AM_RANGE(0x3800, 0x38ff) AM_MIRROR(0x300) AM_READ(trs80_keyboard_r)
|
||||
AM_RANGE(0x3c00, 0x3fff) AM_READWRITE(trs80_videoram_r, trs80_videoram_w) AM_SHARE("p_videoram")
|
||||
AM_RANGE(0x3c00, 0x3fff) AM_READWRITE(trs80_videoram_r, trs80_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0x4000, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -44,7 +44,7 @@ static ADDRESS_MAP_START( ut88_mem, AS_PROGRAM, 8, ut88_state )
|
||||
AM_RANGE( 0x0000, 0x07ff ) AM_RAMBANK("bank1") // First bank
|
||||
AM_RANGE( 0x0800, 0xdfff ) AM_RAM // RAM
|
||||
AM_RANGE( 0xe000, 0xe7ff ) AM_RAM // Video RAM (not used)
|
||||
AM_RANGE( 0xe800, 0xefff ) AM_RAM AM_SHARE("p_videoram") // Video RAM
|
||||
AM_RANGE( 0xe800, 0xefff ) AM_RAM AM_SHARE("videoram") // Video RAM
|
||||
AM_RANGE( 0xf400, 0xf7ff ) AM_RAM // System RAM
|
||||
AM_RANGE( 0xf800, 0xffff ) AM_ROM // System ROM
|
||||
ADDRESS_MAP_END
|
||||
|
@ -60,8 +60,6 @@ ToDo:
|
||||
#include "sound/speaker.h"
|
||||
#include "machine/wd_fdc.h"
|
||||
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
class v6809_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -323,7 +321,7 @@ static MACHINE_CONFIG_START( v6809, v6809_state )
|
||||
MCFG_MC6845_UPDATE_ROW_CB(v6809_state, crtc_update_row)
|
||||
MCFG_MC6845_ADDR_CHANGED_CB(v6809_state, crtc_update_addr)
|
||||
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(v6809_state, kbd_put))
|
||||
|
||||
// port A = drive select and 2 control lines ; port B = keyboard
|
||||
|
@ -39,8 +39,6 @@ ToDo:
|
||||
// temporary
|
||||
#include "machine/keyboard.h"
|
||||
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
class z9001_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -227,7 +225,7 @@ static MACHINE_CONFIG_START( z9001, z9001_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
|
||||
/* Devices */
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(z9001_state, kbd_put))
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("z9001_timer", z9001_state, timer_callback, attotime::from_msec(10))
|
||||
|
||||
|
@ -23,8 +23,6 @@
|
||||
#include "machine/keyboard.h"
|
||||
#include "sound/beep.h"
|
||||
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
class zrt80_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -302,7 +300,7 @@ static MACHINE_CONFIG_START( zrt80, zrt80_state )
|
||||
|
||||
MCFG_DEVICE_ADD( "ins8250", INS8250, 2457600 )
|
||||
MCFG_INS8250_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(zrt80_state, kbd_put))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -1,73 +1,103 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Victor Trucco,Steve Ellenoff,Phil Stroffolino,Tatsuyuki Satoh,Tomasz Slanina,Nicola Salmoria
|
||||
// copyright-holders:Victor Trucco,Steve Ellenoff,Phil Stroffolino,Tatsuyuki Satoh,Tomasz Slanina,Nicola Salmoria,Vas Crabb
|
||||
|
||||
#include "machine/gen_latch.h"
|
||||
|
||||
#include "sound/msm5205.h"
|
||||
|
||||
class gladiatr_state : public driver_device
|
||||
|
||||
class gladiatr_state_base : public driver_device
|
||||
{
|
||||
public:
|
||||
gladiatr_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_subcpu(*this, "sub"),
|
||||
m_msm(*this, "msm"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette"),
|
||||
m_soundlatch(*this, "soundlatch"),
|
||||
m_nvram(*this, "nvram") ,
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_videoram(*this, "videoram"),
|
||||
m_colorram(*this, "colorram"),
|
||||
m_textram(*this, "textram"),
|
||||
m_generic_paletteram_8(*this, "paletteram") { }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<cpu_device> m_subcpu;
|
||||
required_device<msm5205_device> m_msm;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<generic_latch_8_device> m_soundlatch;
|
||||
|
||||
required_shared_ptr<uint8_t> m_nvram;
|
||||
required_shared_ptr<uint8_t> m_spriteram;
|
||||
required_shared_ptr<uint8_t> m_videoram;
|
||||
required_shared_ptr<uint8_t> m_colorram;
|
||||
required_shared_ptr<uint8_t> m_textram;
|
||||
required_shared_ptr<uint8_t> m_generic_paletteram_8;
|
||||
|
||||
int m_data1;
|
||||
int m_data2;
|
||||
int m_flag1;
|
||||
int m_flag2;
|
||||
int m_video_attributes;
|
||||
int m_fg_scrollx;
|
||||
int m_fg_scrolly;
|
||||
int m_bg_scrollx;
|
||||
int m_bg_scrolly;
|
||||
int m_sprite_bank;
|
||||
int m_sprite_buffer;
|
||||
tilemap_t *m_fg_tilemap;
|
||||
tilemap_t *m_bg_tilemap;
|
||||
int m_fg_tile_bank;
|
||||
int m_bg_tile_bank;
|
||||
|
||||
// common
|
||||
DECLARE_WRITE8_MEMBER(videoram_w);
|
||||
DECLARE_WRITE8_MEMBER(colorram_w);
|
||||
DECLARE_WRITE8_MEMBER(textram_w);
|
||||
DECLARE_WRITE8_MEMBER(paletteram_w);
|
||||
DECLARE_WRITE8_MEMBER(spritebuffer_w);
|
||||
|
||||
// gladiator specific
|
||||
DECLARE_READ8_MEMBER(gladiator_dsw1_r);
|
||||
DECLARE_READ8_MEMBER(gladiator_dsw2_r);
|
||||
DECLARE_READ8_MEMBER(gladiator_controls_r);
|
||||
DECLARE_READ8_MEMBER(gladiator_button3_r);
|
||||
protected:
|
||||
gladiatr_state_base(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_subcpu(*this, "sub")
|
||||
, m_audiocpu(*this, "audiocpu")
|
||||
, m_gfxdecode(*this, "gfxdecode")
|
||||
, m_palette(*this, "palette")
|
||||
, m_msm(*this, "msm")
|
||||
, m_soundlatch(*this, "soundlatch")
|
||||
, m_videoram(*this, "videoram")
|
||||
, m_colorram(*this, "colorram")
|
||||
, m_textram(*this, "textram")
|
||||
, m_paletteram(*this, "paletteram")
|
||||
, m_spriteram(*this, "spriteram")
|
||||
, m_video_attributes(0)
|
||||
, m_fg_scrolly(0)
|
||||
, m_fg_tile_bank(0)
|
||||
, m_bg_tile_bank(0)
|
||||
, m_sprite_bank(0)
|
||||
, m_sprite_buffer(0)
|
||||
, m_fg_tilemap(nullptr)
|
||||
, m_bg_tilemap(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(bg_get_tile_info);
|
||||
TILE_GET_INFO_MEMBER(fg_get_tile_info);
|
||||
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_subcpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<msm5205_device> m_msm;
|
||||
required_device<generic_latch_8_device> m_soundlatch;
|
||||
|
||||
required_shared_ptr<uint8_t> m_videoram;
|
||||
required_shared_ptr<uint8_t> m_colorram;
|
||||
required_shared_ptr<uint8_t> m_textram;
|
||||
required_shared_ptr<uint8_t> m_paletteram;
|
||||
required_shared_ptr<uint8_t> m_spriteram;
|
||||
|
||||
int m_video_attributes;
|
||||
int m_fg_scrolly;
|
||||
int m_fg_tile_bank;
|
||||
int m_bg_tile_bank;
|
||||
int m_sprite_bank;
|
||||
int m_sprite_buffer;
|
||||
|
||||
tilemap_t *m_fg_tilemap;
|
||||
tilemap_t *m_bg_tilemap;
|
||||
};
|
||||
|
||||
class gladiatr_state : public gladiatr_state_base
|
||||
{
|
||||
public:
|
||||
gladiatr_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: gladiatr_state_base(mconfig, type, tag)
|
||||
, m_dsw1(*this, "DSW1")
|
||||
, m_dsw2(*this, "DSW2")
|
||||
, m_in0(*this, "IN0")
|
||||
, m_in1(*this, "IN1")
|
||||
, m_in2(*this, "IN2")
|
||||
, m_coins(*this, "COINS")
|
||||
, m_tclk_val(false)
|
||||
, m_in0_val(0xff)
|
||||
, m_in1_val(0xff)
|
||||
, m_cctl_p1(0xff)
|
||||
, m_cctl_p2(0xff)
|
||||
, m_ucpu_p1(0xff)
|
||||
, m_csnd_p1(0xff)
|
||||
, m_fg_scrollx(0)
|
||||
, m_bg_scrollx(0)
|
||||
, m_bg_scrolly(0)
|
||||
{
|
||||
}
|
||||
|
||||
DECLARE_WRITE8_MEMBER(gladiatr_spritebank_w);
|
||||
DECLARE_WRITE8_MEMBER(gladiatr_video_registers_w);
|
||||
|
||||
DECLARE_WRITE8_MEMBER(gladiatr_bankswitch_w);
|
||||
DECLARE_WRITE8_MEMBER(gladiator_cpu_sound_command_w);
|
||||
DECLARE_READ8_MEMBER(gladiator_cpu_sound_command_r);
|
||||
@ -77,7 +107,58 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(gladiator_adpcm_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(gladiator_ym_irq);
|
||||
|
||||
// ppking specific
|
||||
DECLARE_WRITE_LINE_MEMBER(tclk_w);
|
||||
DECLARE_READ8_MEMBER(cctl_t_r);
|
||||
DECLARE_READ8_MEMBER(cctl_p1_r);
|
||||
DECLARE_READ8_MEMBER(cctl_p2_r);
|
||||
DECLARE_READ8_MEMBER(ccpu_t_r);
|
||||
DECLARE_WRITE8_MEMBER(ccpu_p2_w);
|
||||
DECLARE_READ8_MEMBER(tclk_r);
|
||||
DECLARE_READ8_MEMBER(ucpu_t1_r);
|
||||
DECLARE_READ8_MEMBER(ucpu_p1_r);
|
||||
DECLARE_WRITE8_MEMBER(ucpu_p1_w);
|
||||
DECLARE_READ8_MEMBER(ucpu_p2_r);
|
||||
DECLARE_READ8_MEMBER(csnd_t1_r);
|
||||
DECLARE_READ8_MEMBER(csnd_p1_r);
|
||||
DECLARE_WRITE8_MEMBER(csnd_p1_w);
|
||||
DECLARE_READ8_MEMBER(csnd_p2_r);
|
||||
|
||||
DECLARE_DRIVER_INIT(gladiatr);
|
||||
|
||||
DECLARE_MACHINE_RESET(gladiator);
|
||||
DECLARE_VIDEO_START(gladiatr);
|
||||
|
||||
uint32_t screen_update_gladiatr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void swap_block(uint8_t *src1,uint8_t *src2,int len);
|
||||
|
||||
private:
|
||||
required_ioport m_dsw1, m_dsw2;
|
||||
required_ioport m_in0, m_in1, m_in2;
|
||||
required_ioport m_coins;
|
||||
|
||||
bool m_tclk_val;
|
||||
u8 m_in0_val, m_in1_val;
|
||||
u8 m_cctl_p1, m_cctl_p2;
|
||||
u8 m_ucpu_p1, m_csnd_p1;
|
||||
|
||||
int m_fg_scrollx;
|
||||
int m_bg_scrollx;
|
||||
int m_bg_scrolly;
|
||||
};
|
||||
|
||||
class ppking_state : public gladiatr_state_base
|
||||
{
|
||||
public:
|
||||
ppking_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: gladiatr_state_base(mconfig, type, tag)
|
||||
, m_nvram(*this, "nvram")
|
||||
, m_data1(0)
|
||||
, m_data2(0)
|
||||
, m_flag1(0)
|
||||
, m_flag2(0)
|
||||
{
|
||||
}
|
||||
|
||||
DECLARE_READ8_MEMBER(ppking_f1_r);
|
||||
DECLARE_READ8_MEMBER(ppking_f6a3_r);
|
||||
DECLARE_WRITE8_MEMBER(ppking_qx0_w);
|
||||
@ -90,19 +171,18 @@ public:
|
||||
DECLARE_READ8_MEMBER(ppking_qx1_r);
|
||||
DECLARE_WRITE8_MEMBER(ppking_video_registers_w);
|
||||
|
||||
DECLARE_DRIVER_INIT(gladiatr);
|
||||
DECLARE_DRIVER_INIT(ppking);
|
||||
|
||||
TILE_GET_INFO_MEMBER(bg_get_tile_info);
|
||||
TILE_GET_INFO_MEMBER(fg_get_tile_info);
|
||||
|
||||
DECLARE_MACHINE_RESET(ppking);
|
||||
DECLARE_VIDEO_START(ppking);
|
||||
DECLARE_MACHINE_RESET(gladiator);
|
||||
DECLARE_VIDEO_START(gladiatr);
|
||||
|
||||
uint32_t screen_update_ppking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_gladiatr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void swap_block(uint8_t *src1,uint8_t *src2,int len);
|
||||
|
||||
private:
|
||||
required_shared_ptr<uint8_t> m_nvram;
|
||||
|
||||
u8 m_data1;
|
||||
u8 m_data2;
|
||||
u8 m_flag1;
|
||||
u8 m_flag2;
|
||||
};
|
||||
|
@ -17,43 +17,42 @@ class jupiter2_state : public driver_device
|
||||
{
|
||||
public:
|
||||
jupiter2_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, MCM6571AP_TAG)
|
||||
{ }
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, MCM6571AP_TAG)
|
||||
{ }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
|
||||
virtual void machine_start() override;
|
||||
DECLARE_DRIVER_INIT(jupiter);
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
virtual void machine_start() override;
|
||||
};
|
||||
|
||||
class jupiter3_state : public driver_device
|
||||
{
|
||||
public:
|
||||
jupiter3_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, Z80_TAG),
|
||||
m_p_videoram(*this, "p_videoram"),
|
||||
m_p_ram(*this, "p_ram")
|
||||
{ }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, Z80_TAG)
|
||||
, m_p_videoram(*this, "videoram")
|
||||
, m_p_ram(*this, "p_ram")
|
||||
{ }
|
||||
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_DRIVER_INIT(jupiter3);
|
||||
DECLARE_WRITE8_MEMBER(kbd_put);
|
||||
DECLARE_READ8_MEMBER(status_r);
|
||||
DECLARE_READ8_MEMBER(key_r);
|
||||
DECLARE_READ8_MEMBER(ff_r);
|
||||
uint8_t m_term_data;
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
uint8_t m_term_data;
|
||||
required_shared_ptr<uint8_t> m_p_videoram;
|
||||
required_shared_ptr<uint8_t> m_p_ram;
|
||||
const uint8_t *m_p_chargen;
|
||||
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
DECLARE_DRIVER_INIT(jupiter3);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -40,7 +40,7 @@ public:
|
||||
m_floppy3(*this, "fdc:3"),
|
||||
m_speaker(*this, "speaker"),
|
||||
m_cassette(*this, "cassette"),
|
||||
m_p_videoram(*this, "p_videoram"),
|
||||
m_p_videoram(*this, "videoram"),
|
||||
m_region_maincpu(*this, "maincpu"),
|
||||
m_io_config(*this, "CONFIG"),
|
||||
m_io_line0(*this, "LINE0"),
|
||||
|
@ -112,8 +112,6 @@ public:
|
||||
uint8_t m_lx383_scan_counter;
|
||||
uint8_t m_lx383_key[LX383_KEYS];
|
||||
int m_lx383_downsampler;
|
||||
int m_nmi_delay_counter;
|
||||
int m_reset_delay_counter;
|
||||
uint8_t m_lx385_ctrl;
|
||||
emu_timer *m_cassette_timer;
|
||||
z80ne_cass_data_t m_cass_data;
|
||||
@ -126,9 +124,6 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(lx385_ctrl_w);
|
||||
DECLARE_READ8_MEMBER(lx388_data_r);
|
||||
DECLARE_READ8_MEMBER(lx388_read_field_sync);
|
||||
DECLARE_DIRECT_UPDATE_MEMBER(z80ne_default);
|
||||
DECLARE_DIRECT_UPDATE_MEMBER(z80ne_nmi_delay_count);
|
||||
DECLARE_DIRECT_UPDATE_MEMBER(z80ne_reset_delay_count);
|
||||
DECLARE_DRIVER_INIT(z80netf);
|
||||
DECLARE_DRIVER_INIT(z80net);
|
||||
DECLARE_DRIVER_INIT(z80netb);
|
||||
@ -153,6 +148,8 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(lx390_fdc_w);
|
||||
|
||||
protected:
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
optional_device<floppy_connector> m_floppy0;
|
||||
optional_device<floppy_connector> m_floppy1;
|
||||
@ -183,6 +180,9 @@ protected:
|
||||
optional_ioport m_io_modifiers;
|
||||
optional_ioport m_io_config;
|
||||
|
||||
emu_timer *m_timer_nmi;
|
||||
emu_timer *m_timer_reset;
|
||||
|
||||
cassette_image_device *cassette_device_image();
|
||||
void reset_lx388();
|
||||
void reset_lx382_banking();
|
||||
|
@ -2,8 +2,6 @@
|
||||
// copyright-holders:Miodrag Milanovic
|
||||
#include "teleprinter.h"
|
||||
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
|
||||
static const uint8_t teleprinter_font[128*8] =
|
||||
{
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
@ -215,7 +213,7 @@ MACHINE_CONFIG_FRAGMENT( generic_teleprinter )
|
||||
MCFG_SCREEN_SIZE(TELEPRINTER_WIDTH*8, TELEPRINTER_HEIGHT*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, TELEPRINTER_WIDTH*8-1, 0, TELEPRINTER_HEIGHT*8-1)
|
||||
MCFG_SCREEN_UPDATE_DEVICE(DEVICE_SELF, teleprinter_device, tp_update)
|
||||
MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0)
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(generic_terminal_device, kbd_put))
|
||||
|
||||
MCFG_SPEAKER_STANDARD_MONO("bell")
|
||||
|
@ -154,47 +154,18 @@ TIMER_CALLBACK_MEMBER(z80ne_state::z80ne_kbd_scan)
|
||||
}
|
||||
}
|
||||
|
||||
DIRECT_UPDATE_MEMBER(z80ne_state::z80ne_default)
|
||||
void z80ne_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
|
||||
{
|
||||
return address;
|
||||
}
|
||||
/*
|
||||
* Handle NMI delay for single step instruction
|
||||
*/
|
||||
DIRECT_UPDATE_MEMBER(z80ne_state::z80ne_nmi_delay_count)
|
||||
{
|
||||
m_nmi_delay_counter--;
|
||||
|
||||
if (!m_nmi_delay_counter)
|
||||
switch (id)
|
||||
{
|
||||
m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(&z80ne_state::z80ne_default, this));
|
||||
case 0:
|
||||
m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
|
||||
break;
|
||||
case 1:
|
||||
// switch to RAM bank at address 0x0000
|
||||
m_bank1->set_entry(0);
|
||||
break;
|
||||
}
|
||||
return address;
|
||||
}
|
||||
|
||||
/*
|
||||
* Handle delayed ROM/RAM banking at RESET
|
||||
* after the first reset_delay_counter bytes have been read from ROM, switch the RAM back in
|
||||
*/
|
||||
DIRECT_UPDATE_MEMBER(z80ne_state::z80ne_reset_delay_count)
|
||||
{
|
||||
address_space &space = m_maincpu->space(AS_PROGRAM);
|
||||
/*
|
||||
* TODO: when debugger is active, his memory access causes this callback
|
||||
*
|
||||
*/
|
||||
if(!space.debugger_access())
|
||||
m_reset_delay_counter--;
|
||||
|
||||
if (!m_reset_delay_counter)
|
||||
{
|
||||
/* remove this callback */
|
||||
m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(&z80ne_state::z80ne_default, this));
|
||||
/* and switch to RAM bank at address 0x0000 */
|
||||
m_bank1->set_entry( 0 ); /* RAM at 0x0000 (bank 1) */
|
||||
}
|
||||
return address;
|
||||
}
|
||||
|
||||
void z80ne_state::reset_lx388()
|
||||
@ -210,15 +181,13 @@ void z80ne_state::reset_lx382_banking()
|
||||
m_bank2->set_entry(0); /* ep382 at 0x8000 */
|
||||
|
||||
/* after the first 3 bytes have been read from ROM, switch the RAM back in */
|
||||
m_reset_delay_counter = 2;
|
||||
m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(&z80ne_state::z80ne_reset_delay_count, this));
|
||||
m_timer_reset->adjust(m_maincpu->cycles_to_attotime(2));
|
||||
}
|
||||
|
||||
void z80ne_state::reset_lx390_banking()
|
||||
{
|
||||
m_reset_delay_counter = 0;
|
||||
|
||||
switch (m_io_config->read() & 0x07) {
|
||||
switch (m_io_config->read() & 0x07)
|
||||
{
|
||||
case 0x01: /* EP382 Hex Monitor */
|
||||
if (VERBOSE)
|
||||
logerror("reset_lx390_banking: banking ep382\n");
|
||||
@ -226,9 +195,8 @@ void z80ne_state::reset_lx390_banking()
|
||||
m_bank2->set_entry(0); /* RAM at 0x0400 */
|
||||
m_bank3->set_entry(1); /* ep382 at 0x8000 */
|
||||
m_bank4->set_entry(0); /* RAM at 0xF000 */
|
||||
/* after the first 3 bytes have been read from ROM, switch the RAM back in */
|
||||
m_reset_delay_counter = 2;
|
||||
m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(&z80ne_state::z80ne_reset_delay_count, this));
|
||||
// after the first 3 bytes have been read from ROM, switch the RAM back in
|
||||
m_timer_reset->adjust(m_maincpu->cycles_to_attotime(2));
|
||||
break;
|
||||
case 0x02: /* EP548 16k BASIC */
|
||||
if (VERBOSE)
|
||||
@ -237,7 +205,6 @@ void z80ne_state::reset_lx390_banking()
|
||||
m_bank2->set_entry(1); /* ep548 at 0x0400-0x3FFF */
|
||||
m_bank3->set_entry(0); /* RAM at 0x8000 */
|
||||
m_bank4->set_entry(0); /* RAM at 0xF000 */
|
||||
m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(&z80ne_state::z80ne_default, this));
|
||||
break;
|
||||
case 0x03: /* EP390 Boot Loader for 5.5k floppy BASIC */
|
||||
if (VERBOSE)
|
||||
@ -246,7 +213,6 @@ void z80ne_state::reset_lx390_banking()
|
||||
m_bank2->set_entry(0); /* RAM at 0x0400-0x3FFF */
|
||||
m_bank3->set_entry(0); /* RAM at 0x8000 */
|
||||
m_bank4->set_entry(1); /* ep390 at 0xF000 */
|
||||
m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(&z80ne_state::z80ne_default, this));
|
||||
break;
|
||||
case 0x04: /* EP1390 Boot Loader for NE DOS 1.0/1.5 */
|
||||
if (VERBOSE)
|
||||
@ -255,7 +221,6 @@ void z80ne_state::reset_lx390_banking()
|
||||
m_bank2->set_entry(0); /* RAM at 0x0400-0x3FFF */
|
||||
m_bank3->set_entry(0); /* RAM at 0x8000 */
|
||||
m_bank4->set_entry(2); /* ep1390 at 0xF000 */
|
||||
m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(&z80ne_state::z80ne_default, this));
|
||||
break;
|
||||
case 0x05: /* EP2390 Boot Loader for NE DOS G.1 */
|
||||
if (VERBOSE)
|
||||
@ -264,7 +229,6 @@ void z80ne_state::reset_lx390_banking()
|
||||
m_bank2->set_entry(0); /* RAM at 0x0400-0x3FFF */
|
||||
m_bank3->set_entry(0); /* RAM at 0x8000 */
|
||||
m_bank4->set_entry(3); /* ep2390 at 0xF000 */
|
||||
m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(&z80ne_state::z80ne_default, this));
|
||||
break;
|
||||
}
|
||||
|
||||
@ -321,7 +285,6 @@ MACHINE_RESET_MEMBER(z80ne_state,z80ne_base)
|
||||
m_ay31015->set_receiver_clock(m_cass_data.speed * 16.0);
|
||||
m_ay31015->set_transmitter_clock(m_cass_data.speed * 16.0);
|
||||
|
||||
m_nmi_delay_counter = 0;
|
||||
lx385_ctrl_w(m_maincpu->space(AS_PROGRAM), 0, 0);
|
||||
|
||||
}
|
||||
@ -380,11 +343,14 @@ INPUT_CHANGED_MEMBER(z80ne_state::z80ne_nmi)
|
||||
MACHINE_START_MEMBER(z80ne_state,z80ne)
|
||||
{
|
||||
LOG(("In MACHINE_START z80ne\n"));
|
||||
|
||||
m_timer_nmi = timer_alloc(0);
|
||||
m_timer_reset = timer_alloc(1);
|
||||
|
||||
m_lx385_ctrl = 0x1f;
|
||||
save_item(NAME(m_lx383_scan_counter));
|
||||
save_item(NAME(m_lx383_downsampler));
|
||||
save_item(NAME(m_lx383_key));
|
||||
save_item(NAME(m_nmi_delay_counter));
|
||||
m_cassette_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(z80ne_state::z80ne_cassette_tc),this));
|
||||
machine().scheduler().timer_pulse( attotime::from_hz(1000), timer_expired_delegate(FUNC(z80ne_state::z80ne_kbd_scan),this));
|
||||
}
|
||||
@ -465,9 +431,8 @@ WRITE8_MEMBER(z80ne_state::lx383_w)
|
||||
output().set_digit_value( offset, data ^ 0xff );
|
||||
else
|
||||
{
|
||||
/* after writing to port 0xF8 and the first ~M1 cycles strike a NMI for single step execution */
|
||||
m_nmi_delay_counter = 1;
|
||||
m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(&z80ne_state::z80ne_nmi_delay_count, this));
|
||||
// after writing to port 0xF8 and the first ~M1 cycles strike a NMI for single step execution
|
||||
m_timer_reset->adjust(m_maincpu->cycles_to_attotime(1));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -57,10 +57,10 @@ marioo // (c) 1983 Nintendo of America
|
||||
masao // bootleg
|
||||
|
||||
// popeye.cpp
|
||||
popeye // (c) 1982
|
||||
popeyeu // (c) 1982
|
||||
popeyef // (c) 1982
|
||||
popeyebl // bootleg
|
||||
popeye // (c) 1982
|
||||
popeyeu // (c) 1982
|
||||
popeyef // (c) 1982
|
||||
popeyebl // bootleg
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
TILE_GET_INFO_MEMBER(gladiatr_state::bg_get_tile_info)
|
||||
TILE_GET_INFO_MEMBER(gladiatr_state_base::bg_get_tile_info)
|
||||
{
|
||||
uint8_t attr = m_colorram[tile_index];
|
||||
|
||||
@ -26,7 +26,7 @@ TILE_GET_INFO_MEMBER(gladiatr_state::bg_get_tile_info)
|
||||
0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(gladiatr_state::fg_get_tile_info)
|
||||
TILE_GET_INFO_MEMBER(gladiatr_state_base::fg_get_tile_info)
|
||||
{
|
||||
SET_TILE_INFO_MEMBER(0,
|
||||
m_textram[tile_index] + (m_fg_tile_bank << 8),
|
||||
@ -42,10 +42,10 @@ TILE_GET_INFO_MEMBER(gladiatr_state::fg_get_tile_info)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
VIDEO_START_MEMBER(gladiatr_state,ppking)
|
||||
VIDEO_START_MEMBER(ppking_state,ppking)
|
||||
{
|
||||
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gladiatr_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,64);
|
||||
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(gladiatr_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,64);
|
||||
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ppking_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,64);
|
||||
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ppking_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,64);
|
||||
|
||||
m_fg_tilemap->set_transparent_pen(0);
|
||||
|
||||
@ -90,44 +90,44 @@ VIDEO_START_MEMBER(gladiatr_state,gladiatr)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
WRITE8_MEMBER(gladiatr_state::videoram_w)
|
||||
WRITE8_MEMBER(gladiatr_state_base::videoram_w)
|
||||
{
|
||||
m_videoram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(gladiatr_state::colorram_w)
|
||||
WRITE8_MEMBER(gladiatr_state_base::colorram_w)
|
||||
{
|
||||
m_colorram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(gladiatr_state::textram_w)
|
||||
WRITE8_MEMBER(gladiatr_state_base::textram_w)
|
||||
{
|
||||
m_textram[offset] = data;
|
||||
m_fg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(gladiatr_state::paletteram_w)
|
||||
WRITE8_MEMBER(gladiatr_state_base::paletteram_w)
|
||||
{
|
||||
int r,g,b;
|
||||
|
||||
m_generic_paletteram_8[offset] = data;
|
||||
m_paletteram[offset] = data;
|
||||
offset &= 0x3ff;
|
||||
|
||||
r = (m_generic_paletteram_8[offset] >> 0) & 0x0f;
|
||||
g = (m_generic_paletteram_8[offset] >> 4) & 0x0f;
|
||||
b = (m_generic_paletteram_8[offset + 0x400] >> 0) & 0x0f;
|
||||
r = (m_paletteram[offset] >> 0) & 0x0f;
|
||||
g = (m_paletteram[offset] >> 4) & 0x0f;
|
||||
b = (m_paletteram[offset + 0x400] >> 0) & 0x0f;
|
||||
|
||||
r = (r << 1) + ((m_generic_paletteram_8[offset + 0x400] >> 4) & 0x01);
|
||||
g = (g << 1) + ((m_generic_paletteram_8[offset + 0x400] >> 5) & 0x01);
|
||||
b = (b << 1) + ((m_generic_paletteram_8[offset + 0x400] >> 6) & 0x01);
|
||||
r = (r << 1) + ((m_paletteram[offset + 0x400] >> 4) & 0x01);
|
||||
g = (g << 1) + ((m_paletteram[offset + 0x400] >> 5) & 0x01);
|
||||
b = (b << 1) + ((m_paletteram[offset + 0x400] >> 6) & 0x01);
|
||||
|
||||
m_palette->set_pen_color(offset,pal5bit(r),pal5bit(g),pal5bit(b));
|
||||
m_palette->set_pen_color(offset, pal5bit(r), pal5bit(g), pal5bit(b));
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(gladiatr_state::spritebuffer_w)
|
||||
WRITE8_MEMBER(gladiatr_state_base::spritebuffer_w)
|
||||
{
|
||||
m_sprite_buffer = data & 1;
|
||||
}
|
||||
@ -138,7 +138,7 @@ WRITE8_MEMBER(gladiatr_state::gladiatr_spritebank_w)
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(gladiatr_state::ppking_video_registers_w)
|
||||
WRITE8_MEMBER(ppking_state::ppking_video_registers_w)
|
||||
{
|
||||
switch (offset & 0x300)
|
||||
{
|
||||
@ -204,7 +204,7 @@ WRITE8_MEMBER(gladiatr_state::gladiatr_video_registers_w)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void gladiatr_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
void gladiatr_state_base::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int offs;
|
||||
|
||||
@ -254,7 +254,7 @@ void gladiatr_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
|
||||
|
||||
|
||||
|
||||
uint32_t gladiatr_state::screen_update_ppking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
uint32_t ppking_state::screen_update_ppking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);
|
||||
draw_sprites(bitmap,cliprect);
|
||||
|
53
src/tools/discrepancy-fixer.py
Executable file
53
src/tools/discrepancy-fixer.py
Executable file
@ -0,0 +1,53 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
# Fix discrepancies in arcade ROM dump names, by Zoe Blade
|
||||
# For Python 2
|
||||
|
||||
import xml.etree.ElementTree
|
||||
|
||||
print('Loading XML file...')
|
||||
root = xml.etree.ElementTree.parse('arcade.xml').getroot()
|
||||
print('Done.')
|
||||
|
||||
for childMachine in root.iter('machine'):
|
||||
if not childMachine.get('cloneof'):
|
||||
continue
|
||||
|
||||
for parentMachine in root.iter('machine'):
|
||||
if not parentMachine.get('name') == childMachine.get('cloneof'):
|
||||
continue
|
||||
|
||||
# Machine pair found
|
||||
|
||||
for childRom in childMachine.iter('rom'):
|
||||
for parentRom in parentMachine.iter('rom'):
|
||||
if not parentRom.get('sha1') == childRom.get('sha1'):
|
||||
continue
|
||||
|
||||
# ROM pair found
|
||||
|
||||
if parentRom.get('name') == childRom.get('name'):
|
||||
break
|
||||
|
||||
# The names don't match
|
||||
|
||||
sourceFilename = childMachine.get('sourcefile')
|
||||
|
||||
input = open(sourceFilename, 'r')
|
||||
source = input.read()
|
||||
input.close()
|
||||
|
||||
oldRomFilename = '"' + childRom.get('name') + '"'
|
||||
newRomFilename = '"' + parentRom.get('name') + '"'
|
||||
|
||||
oldRomFilenamePadded = oldRomFilename.ljust(14, ' ')
|
||||
newRomFilenamePadded = newRomFilename.ljust(14, ' ')
|
||||
|
||||
source = source.replace(oldRomFilenamePadded, newRomFilenamePadded) # Try to preserve fancy spacing where possible
|
||||
source = source.replace(oldRomFilename, newRomFilename) # Fallback on just replacing the filename
|
||||
|
||||
output = open(sourceFilename, 'w')
|
||||
output.write(source)
|
||||
output.close()
|
||||
|
||||
print(sourceFilename + ': ' + oldRomFilename + ' -> ' + newRomFilename)
|
34
src/tools/discrepancy-spotter.py
Executable file
34
src/tools/discrepancy-spotter.py
Executable file
@ -0,0 +1,34 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
# Find discrepancies in arcade ROM dump names, by Zoe Blade
|
||||
# For Python 2
|
||||
|
||||
import xml.etree.ElementTree
|
||||
|
||||
print('Loading XML file...')
|
||||
root = xml.etree.ElementTree.parse('arcade.xml').getroot()
|
||||
print('Done.')
|
||||
|
||||
for childMachine in root.iter('machine'):
|
||||
if not childMachine.get('cloneof'):
|
||||
continue
|
||||
|
||||
for parentMachine in root.iter('machine'):
|
||||
if not parentMachine.get('name') == childMachine.get('cloneof'):
|
||||
continue
|
||||
|
||||
# Machine pair found
|
||||
|
||||
for childRom in childMachine.iter('rom'):
|
||||
for parentRom in parentMachine.iter('rom'):
|
||||
if not parentRom.get('sha1') == childRom.get('sha1'):
|
||||
continue
|
||||
|
||||
# ROM pair found
|
||||
|
||||
if parentRom.get('name') == childRom.get('name'):
|
||||
break
|
||||
|
||||
# The names don't match
|
||||
|
||||
print(childMachine.get('sourcefile') + ' ' + childMachine.get('name') + ': ' + childRom.get('name') + ' -> ' + parentRom.get('name'))
|
Loading…
Reference in New Issue
Block a user