Previous 199869 Revisions Next

r33014 Monday 27th October, 2014 at 13:42:59 UTC by Cowering
More updates (NW)
[hash]intv.xml intvecs.xml pet_cass.xml vsmile_cart.xml
[src/emu/bus/isa]hdc.c hdc.h xsu_cards.c
[src/emu/cpu/i386]i386.c i386.h i386ops.h i386ops.inc
[src/mame/drivers]jackie.c konamigx.c mystwarr.c peplus.c
[src/mame/includes]konamigx.h
[src/mame/machine]konamigx.c
[src/mame/video]konamigx.c

trunk/hash/intv.xml
r241525r241526
2626      </part>
2727   </software>
2828
29   <software name="add">
30      <description>Advanced Dungeons &amp; Dragons</description>
29   <software name="addc">
30      <description>Advanced Dungeons &amp; Dragons Cartridge</description>
3131      <year>1982</year>
3232      <publisher>Mattel Electronics</publisher>
3333      <info name="serial" value="3410"/>
r241525r241526
4040   </software>
4141
4242   <software name="addtot">
43      <description>Advanced Dungeons &amp; Dragons - Treasure of Tarmin</description>
43      <description>Advanced Dungeons &amp; Dragons: Treasure of Tarmin</description>
4444      <year>1982</year>
4545      <publisher>Mattel Electronics</publisher>
4646      <info name="serial" value="5300"/>
r241525r241526
6565      </part>
6666   </software>
6767
68   <software name="astrosms">
69      <description>AstroSmash</description>
68   <software name="astrosm">
69      <description>Astro Smash</description>
7070      <year>1981</year>
7171      <publisher>Mattel Electronics</publisher>
7272      <info name="serial" value="3605"/>
r241525r241526
7878      </part>
7979   </software>
8080
81   <software name="astrosmsc" cloneof="astrosms">
82      <description>AstroSmash Competition</description>
83      <year>1981</year>
84      <publisher>Mattel Electronics</publisher>
85      <part name="cart" interface="intv_cart">
86         <feature name="slot" value="intv_rom" />
87         <dataarea name="5000" size="8192">
88            <rom name="astrosmash competition.50" size="8192" crc="d0f83698" sha1="fbb2df69cfda87976cf279be6ad028e00c47ce9d" offset="0x0000" />
89         </dataarea>
90      </part>
91   </software>
92
9381   <software name="atlantis">
9482      <description>Atlantis</description>
9583      <year>1982</year>
r241525r241526
17681756   <software name="voice">
17691757      <description>Intellivoice</description>
17701758      <year>19??</year>
1771      <publisher>Mattel Electronics</publisher>
1759      <publisher>Mattel</publisher>
17721760      <part name="cart" interface="intv_cart">
17731761         <feature name="slot" value="intv_voice" />
17741762         <dataarea name="5000" size="0x4000">
r241525r241526
17811769   <software name="ecs">
17821770      <description>Entertainment Computer System</description>
17831771      <year>19??</year>
1784      <publisher>Mattel Electronics</publisher>
1772      <publisher>Mattel</publisher>
17851773      <part name="cart" interface="intv_cart">
17861774         <feature name="slot" value="intv_ecs" />
17871775         <dataarea name="2000" size="0x2000">
r241525r241526
18021790
18031791<!-- Unreleased / Prototypes / Homebrew -->
18041792
1805   <software name="addtom">
1806      <description>Advanced Dungeons &amp; Dragons - Tower of Mystery (Unreleased)</description>
1793   <software name="allstar">
1794      <description>All Star Major League Baseball (Prototype)</description>
18071795      <year>1983</year>
18081796      <publisher>Mattel Electronics</publisher>
18091797      <part name="cart" interface="intv_cart">
18101798         <feature name="slot" value="intv_rom" />
1811         <dataarea name="5000" size="16384">
1812            <rom name="ad&amp;d tower of mystery.50" size="16384" crc="4d7022c4" sha1="968875dbb5c9af72b746cde4f9a6dc4677d8aceb" offset="0x0000" />
1799         <dataarea name="5000" size="0x4000">
1800            <rom name="all star major league baseball.50" size="0x4000" crc="4a7e080a" sha1="ee2edd084c371d39dfcd725ed4aa5679e0c34a27" offset="0x0000"/>
18131801         </dataarea>
1814         <dataarea name="9000" size="16384">
1815            <rom name="ad&amp;d tower of mystery.90" size="16384" crc="69ea443d" sha1="5348845531a326cf66991697c55efd9287b4874b" offset="0x0000" />
1802         <dataarea name="D000" size="0x2000">
1803            <rom name="all star major league baseball.d0" size="0x2000" crc="31325854" sha1="fe7b5f3969e214ac23d20c5c137dc23f4515108d" offset="0x0000"/>
18161804         </dataarea>
1817         <dataarea name="D000" size="8192">
1818            <rom name="ad&amp;d tower of mystery.d0" size="8192" crc="35f27a1e" sha1="2cfdee85347c1226c48d15cdfd6b8819136db130" offset="0x0000" />
1819         </dataarea>
1820         <dataarea name="F000" size="8192">
1821            <rom name="ad&amp;d tower of mystery.f0" size="8192" crc="c60bb7f6" sha1="9f53d330453807c18dcb4c0ed37ad0e77251213a" offset="0x0000" />
1822         </dataarea>
18231805      </part>
18241806   </software>
18251807
1826   <software name="advtron">
1827      <description>Adventures of TRON (Unreleased)</description>
1828      <year>1982</year>
1829      <publisher>Mattel Electronics</publisher>
1830      <part name="cart" interface="intv_cart">
1831         <feature name="slot" value="intv_rom" />
1832         <dataarea name="5000" size="16384">
1833            <rom name="adventures of tron.50" size="16384" crc="5a144835" sha1="c2125776338cbce61aabce80fbdb911a9814e564" offset="0x0000" />
1834         </dataarea>
1835      </part>
1836   </software>
1837
18381808   <software name="airstrk">
18391809      <description>Air Strike (Prototype)</description>
18401810      <year>1982</year>
r241525r241526
18471817      </part>
18481818   </software>
18491819
1850   <software name="allstar">
1851      <description>All Star Major League Baseball (Prototype)</description>
1852      <year>1983</year>
1853      <publisher>Mattel Electronics</publisher>
1854      <part name="cart" interface="intv_cart">
1855         <feature name="slot" value="intv_rom" />
1856         <dataarea name="5000" size="0x4000">
1857            <rom name="all star major league baseball.50" size="0x4000" crc="4a7e080a" sha1="ee2edd084c371d39dfcd725ed4aa5679e0c34a27" offset="0x0000"/>
1858         </dataarea>
1859         <dataarea name="D000" size="0x2000">
1860            <rom name="all star major league baseball.d0" size="0x2000" crc="31325854" sha1="fe7b5f3969e214ac23d20c5c137dc23f4515108d" offset="0x0000"/>
1861         </dataarea>
1862      </part>
1863   </software>
1864
18651820   <software name="brickout">
18661821      <description>Brickout! (Unreleased)</description>
18671822      <year>1981</year>
r241525r241526
19641919      </part>
19651920   </software>
19661921
1967   <software name="hvrfor3d">
1968      <description>Hover Force 3D (Unreleased)</description>
1969      <year>1984</year>
1970      <publisher>Mattel Electronics</publisher>
1971      <part name="cart" interface="intv_cart">
1972         <feature name="slot" value="intv_rom" />
1973         <dataarea name="5000" size="16384">
1974            <rom name="hover force_3d.50" size="16384" crc="37772f79" sha1="fa8f02330397fc47665e727fb7f214b551130b29" offset="0x0000" />
1975         </dataarea>
1976         <dataarea name="9000" size="24576">
1977            <rom name="hover force_3d.90" size="24576" crc="1cf011ef" sha1="5cfc7a9bb09937d499b3cdfd5e84a3e975f543a6" offset="0x0000" />
1978         </dataarea>
1979         <dataarea name="D000" size="8192">
1980            <rom name="hover force_3d.d0" size="8192" crc="d6e96ddc" sha1="2833c891028772d2a3acf23dce67e3cd597d486f" offset="0x0000" />
1981         </dataarea>
1982      </part>
1983   </software>
1984
19851922   <software name="hlights">
19861923      <description>Hypnotic Lights (Prototype)</description>
19871924      <year>1981</year>
r241525r241526
19941931      </part>
19951932   </software>
19961933
1997   <software name="illusion">
1998      <description>Illusions (Unreleased)</description>
1999      <year>1983</year>
2000      <publisher>Mattel Electronics</publisher>
2001      <part name="cart" interface="intv_cart">
2002         <feature name="slot" value="intv_rom" />
2003         <dataarea name="5000" size="16384">
2004            <rom name="illusions.50" size="16384" crc="851f3ccb" sha1="fd7bb50812e207b03295ff2abf973b935a0d28de" offset="0x0000" />
2005         </dataarea>
2006      </part>
2007   </software>
2008
20091934   <software name="kingotm">
20101935      <description>King of the Mountain (Unreleased)</description>
20111936      <year>1982</year>
r241525r241526
20752000      </part>
20762001   </software>
20772002
2078   <software name="mycastle" cloneof="thcastle">
2079      <description>Mystic Castle (Prototype)</description>
2080      <year>1982</year>
2081      <publisher>Mattel Electronics</publisher>
2082      <part name="cart" interface="intv_cart">
2083         <feature name="slot" value="intv_rom" />
2084         <dataarea name="5000" size="16384">
2085            <rom name="mystic castle.50" size="16384" crc="7751256b" sha1="73f61c7dce233a605c8cecd49aec13b1d5985315" offset="0x0000" />
2086         </dataarea>
2087         <dataarea name="9000" size="16384">
2088            <rom name="mystic castle.90" size="16384" crc="4acbeb19" sha1="65c2ec11e5d1a9d8d8f2e044428cbf5bf2022532" offset="0x0000" />
2089         </dataarea>
2090      </part>
2091   </software>
2092
20932003   <software name="blowout">
20942004      <description>Party Line: Blow Out (Unreleased)</description>
20952005      <year>1983</year>
r241525r241526
21052015      </part>
21062016   </software>
21072017
2108   <software name="blowouta" cloneof="blowout">
2109      <description>Party Line: Blow Out (Unreleased, Alt)</description>
2110      <year>1983</year>
2111      <publisher>Mattel Electronics</publisher>
2112      <part name="cart" interface="intv_cart">
2113         <feature name="slot" value="intv_rom" />
2114         <dataarea name="5000" size="0x2000">
2115            <rom name="blowouta.50" size="0x2000" crc="25b7aa92" sha1="a232a43407bfa5781b30c5afded8df4af75e1788" offset="0x0000"/>
2116         </dataarea>
2117         <dataarea name="D000" size="0x2000">
2118            <rom name="blowouta.d0" size="0x2000" crc="b7e29589" sha1="4e1b1c2bf93952d52827b13752e61584a66672ea" offset="0x0000"/>
2119         </dataarea>
2120      </part>
2121   </software>
2122
21232018   <software name="hardhat">
21242019      <description>Party Line: Hard Hat (Unreleased)</description>
21252020      <year>1983</year>
r241525r241526
21322027      </part>
21332028   </software>
21342029
2135   <software name="spacecad">
2136      <description>Party Line: Space Cadet (Unreleased)</description>
2137      <year>1983</year>
2138      <publisher>Mattel Electronics</publisher>
2139      <part name="cart" interface="intv_cart">
2140         <feature name="slot" value="intv_rom" />
2141         <dataarea name="5000" size="0x4000">
2142            <rom name="space cadet.50" size="0x4000" crc="f8ef3e5a" sha1="f3cfbe285a12194ef2f6087fc70d0ed887c4ec91" offset="0x0000"/>
2143         </dataarea>
2144      </part>
2145   </software>
2146
21472030   <software name="rrubble">
21482031      <description>Robot Rubble (Prototype)</description>
21492032      <year>1983</year>
r241525r241526
21562039      </part>
21572040   </software>
21582041
2159   <software name="rockybw">
2160      <description>Rocky &amp; Bullwinckle (Unreleased)</description>
2042   <software name="spacecad">
2043      <description>Party Line: Space Cadet (Unreleased)</description>
21612044      <year>1983</year>
21622045      <publisher>Mattel Electronics</publisher>
21632046      <part name="cart" interface="intv_cart">
21642047         <feature name="slot" value="intv_rom" />
2165         <dataarea name="5000" size="16384">
2166            <rom name="rockey &amp; bullwinckle.50" size="16384" crc="867f1941" sha1="86053c388dbee82216159fa7f4d95756ffd9d37d" offset="0x0000" />
2048         <dataarea name="5000" size="0x4000">
2049            <rom name="space cadet.50" size="0x4000" crc="f8ef3e5a" sha1="f3cfbe285a12194ef2f6087fc70d0ed887c4ec91" offset="0x0000"/>
21672050         </dataarea>
21682051      </part>
21692052   </software>
21702053
2171   <software name="scarfing">
2172      <description>Scarfinger (Unfinished)</description>
2173      <year>1982</year>
2174      <publisher>Mattel Electronics</publisher>
2175      <part name="cart" interface="intv_cart">
2176         <feature name="slot" value="intv_rom" />
2177         <dataarea name="5000" size="16384">
2178            <rom name="scarfinger.50" size="16384" crc="a57862f7" sha1="a691ad56285526738760f18b8d86b07195039df0" offset="0x0000" />
2179         </dataarea>
2180         <dataarea name="9000" size="16384">
2181            <rom name="scarfinger.90" size="16384" crc="d3d5e5af" sha1="3a4dddbcb04aeacea15a03267dc55d8a913434a6" offset="0x0000" />
2182         </dataarea>
2183      </part>
2184   </software>
2185
2186   <software name="soccer2" cloneof="worldcup">
2187      <description>Soccer 2 (Prototype)</description>
2188      <year>198?</year>
2189      <publisher>Mattel Electronics</publisher>
2190      <part name="cart" interface="intv_cart">
2191         <feature name="slot" value="intv_rom" />
2192         <dataarea name="5000" size="16384">
2193            <rom name="soccer_2.50" size="16384" crc="4d4af24e" sha1="dd08e16ba509cd1761e1007f616267e5f96f9127" offset="0x0000" />
2194         </dataarea>
2195         <dataarea name="9000" size="16384">
2196            <rom name="soccer_2.90" size="16384" crc="c6889d72" sha1="4507d0159b1fc2c18d44330eaa70d677629b5d82" offset="0x0000" />
2197         </dataarea>
2198      </part>
2199   </software>
2200
22012054   <software name="sshuttle">
22022055      <description>Space Shuttle (Prototype)</description>
22032056      <year>1981</year>
r241525r241526
22432096      </part>
22442097   </software>
22452098
2246   <software name="yogi">
2247      <description>Yogi's Frustration (Unreleased)</description>
2248      <year>1983</year>
2249      <publisher>Mattel Electronics</publisher>
2250      <part name="cart" interface="intv_cart">
2251         <feature name="slot" value="intv_rom" />
2252         <dataarea name="5000" size="16384">
2253            <rom name="yogi's frustration.50" size="16384" crc="7f4ba6ad" sha1="277a3ad0bdbad4fa8086655bb7508ff4bb0dde5c" offset="0x0000" />
2254         </dataarea>
2255         <dataarea name="D000" size="8192">
2256            <rom name="yogi's frustration.d0" size="8192" crc="cf15e8c5" sha1="bbc103a8fc3d979a05dc42aa5b773355ab11df60" offset="0x0000" />
2257         </dataarea>
2258         <dataarea name="F000" size="8192">
2259            <rom name="yogi's frustration.f0" size="8192" crc="2bc63759" sha1="463b7a8f2e139fcb8434c565b2b275b313a9d52e" offset="0x0000" />
2260         </dataarea>
2261      </part>
2262   </software>
2263
2264
22652099   <software name="imitc">
22662100      <description>IMI Test Cartridge</description>
22672101      <year>1978</year>
r241525r241526
22892123      </part>
22902124   </software>
22912125
2292
22932126   <software name="4tris">
22942127      <description>4-Tris (Download Version)</description>
22952128      <year>2000</year>
r241525r241526
23032136      </part>
23042137   </software>
23052138
2306   <software name="dkongarc" supported="partial">
2307      <description>Donkey Kong Arcade</description>
2308      <year>200?</year>
2309      <publisher>IntelligentVision</publisher>
2310      <part name="cart" interface="intv_cart">
2311         <feature name="slot" value="intv_rom" />
2312         <dataarea name="5000" size="16384">
2313            <rom name="dkinty.50" size="16384" crc="93a9826c" sha1="477ab844aaea8fd18fc8b8c846dbfb78280b924d" offset="0x0000" />
2314         </dataarea>
2315         <dataarea name="9000" size="16384">
2316            <rom name="dkinty.90" size="16384" crc="a927412f" sha1="acb7359db142c1b77c3a17d1547ecc8a259d3f02" offset="0x0000" />
2317         </dataarea>
2318         <dataarea name="D000" size="8192">
2319            <rom name="dkinty.d0" size="8192" crc="642d6557" sha1="5a2fa6bd9a6c173581da5d08699a44198da0231c" offset="0x0000" />
2320         </dataarea>
2321         <dataarea name="F000" size="8192">
2322            <rom name="dkinty.f0" size="8192" crc="3e39ee68" sha1="c266e320a9b2266c7db44bc0965e2b68ffa18e27" offset="0x0000" />
2323         </dataarea>
2324      </part>
2325   </software>
2326
2327   <software name="istar">
2328      <description>Istar</description>
2329      <year>2010?</year>
2330      <publisher>IntelligentVision</publisher>
2331      <part name="cart" interface="intv_cart">
2332         <feature name="slot" value="intv_rom" />
2333         <dataarea name="5000" size="12288">
2334            <rom name="istar.50" size="12288" crc="7899e5ba" sha1="997d1b679768296fc2db120a93cc1880318637cf" offset="0x0000" />
2335         </dataarea>
2336      </part>
2337   </software>
2338
2339   <software name="minehunt">
2139   <software name="minehntr">
23402140      <description>Minehunter (Download Version)</description>
23412141      <year>2004</year>
23422142      <publisher>IntelligentVision</publisher>
r241525r241526
23442144      <part name="cart" interface="intv_cart">
23452145         <feature name="slot" value="intv_rom" />
23462146         <dataarea name="5000" size="0x4000">
2347         <!-- cutting this at 0x3e00 gives crc32 594c230e -->
23482147            <rom name="minehunter.50" size="0x4000" crc="a9f1d874" sha1="4bbac2b5264f4d357e7223b2373b078c622c08a9" offset="0x0000"/>
23492148         </dataarea>
23502149      </part>
23512150   </software>
23522151
2353   <software name="minehunta" cloneof="minehunt">
2354      <description>Minehunter (Download Version, Alt?)</description>
2355      <year>2004</year>
2356      <publisher>IntelligentVision</publisher>
2357      <part name="cart" interface="intv_cart">
2358         <feature name="slot" value="intv_rom" />
2359         <dataarea name="5000" size="16384">
2360            <rom name="minehunta.50" size="15872" crc="94096229" sha1="a351edd058431ed2aeccc0554041a17258c01c28" offset="0x0000" />
2361         </dataarea>
2362      </part>
2363   </software>
2364
23652152   <software name="sgr">
23662153      <description>SameGame &amp; Robots (Download Version)</description>
23672154      <year>2005</year>
r241525r241526
23812168      </part>
23822169   </software>
23832170
2384   <software name="spina">
2385      <description>ZZZZZ! Spina the Bee</description>
2386      <year>200?</year>
2387      <publisher>IntelligentVision</publisher>
2388      <part name="cart" interface="intv_cart">
2389         <feature name="slot" value="intv_rom" />
2390         <dataarea name="5000" size="16384">
2391            <rom name="zzzzz! spina the bee.50" size="16384" crc="01efa214" sha1="1a70d73512da0f78957bbd74b14077303e4fb905" offset="0x0000" />
2392         </dataarea>
2393      </part>
2394   </software>
2395
2396   <software name="spacecnt">
2397      <description>Space Cunt</description>
2398      <year>200?</year>
2399      <publisher>IntelligentVision</publisher>
2400      <info name="usage" value="Uses Intellivoice"/>
2401      <part name="cart" interface="intv_cart">
2402         <feature name="slot" value="intv_rom" />
2403         <dataarea name="5000" size="16384">
2404            <rom name="space cunt.50" size="16384" crc="4542d593" sha1="c946b40ba51c48d8fedc4cdb40c27e3779e2b84b" offset="0x0000" />
2405         </dataarea>
2406      </part>
2407   </software>
2408
2409   <software name="spatrol">
2410      <description>Space Patrol Teaser Edition</description>
2411      <year>2007?</year>
2412      <publisher>IntelligentVision</publisher>
2413      <part name="cart" interface="intv_cart">
2414         <feature name="slot" value="intv_rom" />
2415         <dataarea name="5000" size="16384">
2416            <rom name="space patrol teaser edition.50" size="16384" crc="3c3d75bf" sha1="761e379d43ba1551198dab8199764356fc615b1b" offset="0x0000" />
2417         </dataarea>
2418         <dataarea name="D000" size="8192">
2419            <rom name="space patrol teaser edition.d0" size="8192" crc="04101767" sha1="54f8dfe0d5413097c280f72b45f6684bc9e1a3d5" offset="0x0000" />
2420         </dataarea>
2421         <dataarea name="F000" size="8192">
2422            <rom name="space patrol teaser edition.f0" size="8192" crc="a6950b88" sha1="27891c3026f0a1fb34a13438502960485d33b24f" offset="0x0000" />
2423         </dataarea>
2424      </part>
2425   </software>
2426
24272171   <software name="stonix">
24282172      <description>Stonix (Download Version)</description>
24292173      <year>2005</year>
r241525r241526
24422186         </dataarea>
24432187      </part>
24442188   </software>
2445
2446   <software name="suprchef">
2447      <description>Super Chef BT</description>
2448      <year>2013?</year>
2449      <publisher>IntelligentVision</publisher>
2450      <part name="cart" interface="intv_cart">
2451         <feature name="slot" value="intv_rom" />
2452         <dataarea name="5000" size="16384">
2453            <rom name="burgrtm2.50" size="16384" crc="54848723" sha1="e791fe7ae0af267689fc831e60c407c02c5ee280" offset="0x0000" />
2454         </dataarea>
2455         <dataarea name="D000" size="24576">
2456            <rom name="burgrtm2.d0" size="24576" crc="53feb216" sha1="d462c44ddbe91fdbfad8ef26658dc07cea4a6dbc" offset="0x0000" />
2457         </dataarea>
2458      </part>
2459   </software>
2460
2461   <software name="todd">
2462      <description>Tag Along Todd (Unfinished)</description>
2463      <year>200?</year>
2464      <publisher>IntelligentVision</publisher>
2465      <part name="cart" interface="intv_cart">
2466         <feature name="slot" value="intv_rom" />
2467         <dataarea name="5000" size="16384">
2468            <rom name="tag-along-todd.50" size="10752" crc="1ecdd51b" sha1="9e1666a68d50bb4a1f618cc2f9bcd7dfbadc8188" offset="0x0000" />
2469         </dataarea>
2470      </part>
2471   </software>
2472
2473
2474
2475<!-- TODO: Investigate these files -->
2476
2477   <software name="kingotmf" cloneof="kingotm" supported="no">
2478      <description>King of the Mountain (Fixed?)</description>
2479      <year>200?</year>
2480      <publisher>IntelligentVision</publisher>
2481      <part name="cart" interface="intv_cart">
2482         <feature name="slot" value="intv_rom" />
2483         <dataarea name="5000" size="16384">
2484            <rom name="king of the mountain (alt).50" size="16384" crc="3634697b" sha1="c20c17bd68e92b7f81a522c4c1d0dd4ae8926bdd" offset="0x0000" />
2485         </dataarea>
2486         <dataarea name="D000" size="16896">
2487            <rom name="king of the mountain (alt).d0" size="16896" crc="2c7f5de1" sha1="c86a04a969542a08b46ef50dd30c649ad6ef5b47" offset="0x0000" />
2488         </dataarea>
2489      </part>
2490   </software>
2491
2492   <software name="quest" supported="no">
2493      <description>Quest</description>
2494      <year>19??</year>
2495      <publisher>&lt;unknown&gt;</publisher>
2496      <part name="cart" interface="intv_cart">
2497         <feature name="slot" value="intv_rom" />
2498         <dataarea name="0000" size="16384">
2499            <rom name="quest.00" size="16384" crc="540281d5" sha1="30a3c0d4cf1d939f8a1b4e6ff3fc18a2e13f3e7e" offset="0x0000" />
2500         </dataarea>
2501         <dataarea name="5000" size="16384">
2502            <rom name="quest.50" size="16384" crc="6d5013df" sha1="c1535a9dd54d621ca3d44fd9ca1b5d5c745eb3ad" offset="0x0000" />
2503         </dataarea>
2504         <dataarea name="D000" size="16384">
2505            <rom name="quest.d0" size="16384" crc="869ce44f" sha1="43196b47bde3fccf281c355f2966c71099a6a436" offset="0x0000" />
2506         </dataarea>
2507      </part>
2508   </software>
2509
25102189</softwarelist>
trunk/hash/intvecs.xml
r241525r241526
11<?xml version="1.0"?>
22<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
4
35<softwarelist name="intvecs" description="Intellivision ECS cartridges">
46
57   <software name="jetsons">
r241525r241526
148150         </dataarea>
149151      </part>
150152   </software>
151
152
153   <software name="flintkf">
154      <description>Flintstones Keyboard Fun (Unreleased)</description>
155      <year>200?</year>
156      <publisher>IntelligentVision</publisher>
157      <info name="usage" value="Requires ECS and Keyboard"/>
158      <part name="cart" interface="intv_cart">
159         <feature name="slot" value="intv_rom" />
160         <dataarea name="5000" size="16384">
161            <rom name="flintstones keyboard fun.50" size="16384" crc="87996f3a" sha1="ffc8986782a461e1c99de24f92578295216e7b5f" offset="0x0000" />
162         </dataarea>
163         <dataarea name="D000" size="8192">
164            <rom name="flintstones keyboard fun.d0" size="8192" crc="e813510b" sha1="fa6203172faf46d89fd3a9276f642cbaf6b6f2ab" offset="0x0000" />
165         </dataarea>
166      </part>
167   </software>
168153</softwarelist>
trunk/hash/pet_cass.xml
r241525r241526
11<?xml version="1.0"?>
22<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
3
43<softwarelist name="pet_cass" description="Commodore PET cassettes">
54
6   <software name="acquire">
7      <description>Acquire</description>
8      <year>1982</year>
9      <publisher>Microcomputer Games</publisher>
5   <software name="lunarlnd">
6      <description>Lunar Lander</description>
7      <year>197?</year>
8      <publisher>&lt;unknown&gt;</publisher>
109
11      <!-- pet2001n16 Side A: Acquire -->
12      <part name="cass" interface="cbm_cass">
13         <dataarea name="cass" size="24368704">
14            <rom name="acquire (1982)(avalon hill).wav" size="24368704" crc="65ceaa57" sha1="e8b1d072356526c31a509a267507e9aaa74f17fa" offset="0" />
15         </dataarea>
16      </part>
17   </software>
18
19   <software name="androm">
20      <description>Andromeda Conquest</description>
21      <year>1982</year>
22
23      <!-- pet2001n16 Side A: Andromeda -->
24      <publisher>Microcomputer Games</publisher>
25      <part name="cass" interface="cbm_cass">
26         <dataarea name="cass" size="22685838">
27            <rom name="andromeda conquest (1982)(avalon hill).wav" size="22685838" crc="8716b6d9" sha1="7d21e69fe5c1831b3f3244d1236b7e7ed57a2fb4" offset="0" />
28         </dataarea>
29      </part>
30   </software>
31
32   <software name="b1bomb">
33      <description>B-1 Bomber Game</description>
34      <year>1982</year>
35
36      <!-- pet2001n16 Side A: B-1 Bomber -->
37      <publisher>Microcomputer Games</publisher>
38      <part name="cass" interface="cbm_cass">
39         <dataarea name="cass" size="15154010">
40            <rom name="b-1 nuclear bomber (1981)(avalon hill).wav" size="15154010" crc="69fcf587" sha1="de3cb18e63a45943e7357af16d4b3994c3dbae46" offset="0" />
41         </dataarea>
42      </part>
43   </software>
44
45   <software name="bbstrat">
46      <description>Baseball Strategy</description>
47      <year>1982</year>
48
49      <!-- pet4032 Side A: Baseball Strateg -->
50      <publisher>Microcomputer Games</publisher>
51      <part name="cass" interface="cbm_cass">
52         <dataarea name="cass" size="30735222">
53            <rom name="baseball strategy (1982)(avalon hill).wav" size="30735222" crc="1d50607d" sha1="dcb6571346f8da9777d6a4654413303d6320f55e" offset="0" />
54         </dataarea>
55      </part>
56   </software>
57
58   <software name="bjack">
59      <!-- 321009 -->
60      <description>Blackjack</description>
61      <year>1978</year>
62
63      <!-- pet20018 Side A: Blackjack -->
64      <publisher>Commodore Business Machines, Inc.</publisher>
65      <part name="cass" interface="cbm_cass">
66         <dataarea name="cass" size="11284678">
67            <rom name="blackjack (1978)(commodore business machines).wav" size="11284678" crc="b65acc8b" sha1="a5a3261a04bde04309e539b72ddaadd462e21c70" offset="0" />
68         </dataarea>
69      </part>
70   </software>
71
72   <software name="bomba">
73      <description>Arcade Pak #3 Bomber Attack</description>
74      <year>1982</year>
75
76      <!-- pet2001n Side A: Bomber Attack -->
77      <publisher>Avalon Hill</publisher>
78      <part name="cass" interface="cbm_cass">
79         <dataarea name="cass" size="10001002">
80            <rom name="Bomber Attack (1982)(avalon hill).wav" size="10001002" crc="4ff57e9c" sha1="b795a4d8c2f7891088ee6cf7147d785948d7b887" offset="0" />
81         </dataarea>
82      </part>
83   </software>
84
85   <software name="bullb">
86      <description>Bulls and Bears</description>
87      <year>1978</year>
88
89      <!-- pet20018 Side A: Bulls and Bears -->
90      <publisher>Speakeasy Software</publisher>
91      <part name="cass" interface="cbm_cass">
92         <dataarea name="cass" size="10926558">
93            <rom name="bulls and bears (1978)(speakeasy software).wav" size="10926558" crc="8fbd037f" sha1="20527ee4b6528c0daf31994bfed028583faa049f" offset="0" />
94         </dataarea>
95      </part>
96   </software>
97
98   <software name="bjack1">
99      <description>Casino Blackjack 5.7</description>
100      <year>1979</year>
101
102      <!-- pet20018 Side A: Blackjack -->
103      <publisher>Speakeasy Software</publisher>
104      <part name="cass" interface="cbm_cass">
105         <dataarea name="cass" size="11929950">
106            <rom name="casino blackjack 5.7 (1979)(cms software systems).wav" size="11929950" crc="de4f4383" sha1="2ac7ee53dc74a4696bf9dd72103e4ef569d94ec4" offset="0" />
107         </dataarea>
108      </part>
109   </software>
110
111   <software name="conflict">
112      <description>Conflict 2500</description>
113      <year>1981</year>
114
115      <!-- pet2001n16 Side A: Conflict 2500 -->
116      <publisher>Microcomputer Games</publisher>
117      <part name="cass" interface="cbm_cass">
118         <dataarea name="cass" size="23419766">
119            <rom name="conflict 2500 (1981)(avalon hill).wav" size="23419766" crc="872b73d6" sha1="c3941f3ce51bff8d0571ce2b43b7ccdd9a212733" offset="0" />
120         </dataarea>
121      </part>
122   </software>
123
124   <software name="cur1">
125      <description>Cursor 1</description>
126      <year>1978</year>
127
128      <!-- pet20018 Side A: Cover, Brick, Wander, Shark, Plot, Typer -->
129      <publisher>The Code Works</publisher>
130      <part name="cass" interface="cbm_cass">
131         <dataarea name="cass" size="34540096">
132            <rom name="cursor 1 (1978)(code works).wav" size="34540096" crc="c2a429f0" sha1="f732bdd48c4a7764352355098d01de3e950c2d9c" offset="0" />
133         </dataarea>
134      </part>
135   </software>
136
137   <software name="cur2">
138      <description>Cursor 2</description>
139      <year>1978</year>
140
141      <!-- pet20018 Side A: Cover, Race, Zap, Est, Guess, Mad -->
142      <publisher>The Code Works</publisher>
143      <part name="cass" interface="cbm_cass">
144         <dataarea name="cass" size="38802738">
145            <rom name="cursor 2 (1978)(code works).wav" size="38802738" crc="9925f292" sha1="a0f553dc3e052fe3556183bfd82318b92dd72642" offset="0" />
146         </dataarea>
147      </part>
148   </software>
149
150   <software name="cur3">
151      <description>Cursor 3</description>
152      <year>1978</year>
153
154      <!-- pet20018 Side A: Cover, Bar, Dots, Quix!, Flash, Cards -->
155      <publisher>The Code Works</publisher>
156      <part name="cass" interface="cbm_cass">
157         <dataarea name="cass" size="47849882">
158            <rom name="cursor 3 (1978)(code works).wav" size="47849882" crc="95283cb2" sha1="604f61d0f209aaef32e82bceaa67530511ef60c1" offset="0" />
159         </dataarea>
160      </part>
161   </software>
162
163   <software name="cur4">
164      <description>Cursor 4</description>
165      <year>1978</year>
166
167      <!-- pet20018 Side A: Cover!, Bop, Calc, Clock!, Inp, Ced -->
168      <publisher>The Code Works</publisher>
169      <part name="cass" interface="cbm_cass">
170         <dataarea name="cass" size="55455514">
171            <rom name="cursor 4 (1978)(code works).wav" size="55455514" crc="df747916" sha1="16640a5223a644dca3ef713cac6e70d1348cd6ef" offset="0" />
172         </dataarea>
173      </part>
174
175   </software>
176
177   <software name="cur5">
178      <description>Cursor 5</description>
179      <year>1978</year>
180
181      <!-- pet20018 Side A: Cover, Hanoi, Shoot, Bship, Face, Hman -->
182      <publisher>The Code Works</publisher>
183      <part name="cass" interface="cbm_cass">
184         <dataarea name="cass" size="46403528">
185            <rom name="cursor 5 (1978)(code works).wav" size="46403528" crc="c0c8f3ff" sha1="3f888f080e59853e5f89b0f3d565e125d1e5e852" offset="0" />
186         </dataarea>
187      </part>
188   </software>
189
190   <software name="cur6">
191      <description>Cursor 6</description>
192      <year>1979</year>
193
194      <!-- pet2001n Side A: Cover, Box, Bjack, pet20018: Pack, List, Cedpr -->
195      <publisher>The Code Works</publisher>
196      <part name="cass" interface="cbm_cass">
197         <dataarea name="cass" size="46753010">
198            <rom name="cursor 6 (1979)(code works).wav" size="46753010" crc="2f6ef813" sha1="750cd291f2653c03b6e2fd707cc1ededf97d5477" offset="0" />
199         </dataarea>
200      </part>
201   </software>
202
203   <software name="cur7">
204      <description>Cursor 7</description>
205      <year>1979</year>
206
207      <!-- pet2001n Side A: Cover, Pricer, Sound!, Mind, Fball, Paper -->
208      <publisher>The Code Works</publisher>
209      <part name="cass" interface="cbm_cass">
210         <dataarea name="cass" size="54620302">
211            <rom name="cursor 7 (1979)(code works).wav" size="54620302" crc="6f2bf0a4" sha1="44f13108e3945abbc432ed4cce166848661adf1d" offset="0" />
212         </dataarea>
213      </part>
214   </software>
215
216   <software name="cur8">
217      <description>Cursor 8</description>
218      <year>1979</year>
219
220      <!-- pet2001n Side A: Cover, Revers!, Dbook, Space!, Maze, Add, X -->
221      <publisher>The Code Works</publisher>
222      <part name="cass" interface="cbm_cass">
223         <dataarea name="cass" size="58017788">
224            <rom name="cursor 8 (1979)(code works).wav" size="58017788" crc="f6118fbf" sha1="e415cb0d26702836a44a798546960c21bcd96299" offset="0" />
225         </dataarea>
226      </part>
227   </software>
228
229   <software name="cur9">
230      <description>Cursor 9</description>
231      <year>1979</year>
232
233      <!-- pet2001n16 Side A: pet2001n: Cover, Yahtzee, Slot!, Flip, Circle, pet2001n16: Gammon -->
234      <publisher>The Code Works</publisher>
235      <part name="cass" interface="cbm_cass">
236         <dataarea name="cass" size="69494314">
237            <rom name="cursor 9 (1979)(code works).wav" size="69494314" crc="8abf8e8c" sha1="98e0b0f9d16a055cb2d11f2aff84a6c1884f7acf" offset="0" />
238         </dataarea>
239      </part>
240   </software>
241
242   <software name="cur10">
243      <description>Cursor 10</description>
244      <year>1979</year>
245
246      <!-- pet2001n Side A: Cover!, pet20018: Titrate, pet2001n: Finance, Course, pet20018: Asm, Reader -->
247      <publisher>The Code Works</publisher>
248      <part name="cass" interface="cbm_cass">
249         <dataarea name="cass" size="52635502">
250            <rom name="cursor 10 (1979)(code works).wav" size="52635502" crc="e64a1066" sha1="0559d40f259cf149f0bc88dfe19d64caeae7902b" offset="0" />
251         </dataarea>
252      </part>
253   </software>
254
255   <software name="cur11">
256      <description>Cursor 11</description>
257      <year>1979</year>
258
259      <!-- pet2001n Side A: Cover, Demon!, Hi calc, Wipeout, Peg, States -->
260      <publisher>The Code Works</publisher>
261      <part name="cass" interface="cbm_cass">
262         <dataarea name="cass" size="52073122">
263            <rom name="cursor 11 (1979)(code works).wav" size="52073122" crc="b4a6843a" sha1="1ef4ff08f02e140d5c74fed7fdcce4b332f933a4" offset="0" />
264         </dataarea>
265      </part>
266   </software>
267
268   <software name="cur12">
269      <description>Cursor 12</description>
270      <year>1979</year>
271
272      <!-- pet2001n Side A: Cover12, Canyon!, Gauss!, Pickup, Piegram, Flight! -->
273      <publisher>The Code Works</publisher>
274      <part name="cass" interface="cbm_cass">
275         <dataarea name="cass" size="60014980">
276            <rom name="cursor 12 (1979)(code works).wav" size="60014980" crc="6ceecff0" sha1="391e5c114dc60beec739908666e04b4f82000ce8" offset="0" />
277         </dataarea>
278      </part>
279   </software>
280
281   <software name="cur13">
282      <description>Cursor 13</description>
283      <year>1979</year>
284
285      <!-- pet2001n Side A: Cover13, Ratrun, Cars, Ferry!, Leap, Tcard -->
286      <publisher>The Code Works</publisher>
287      <part name="cass" interface="cbm_cass">
288         <dataarea name="cass" size="57500730">
289            <rom name="cursor 13 (1979)(code works).wav" size="57500730" crc="fd7dd623" sha1="779a6b763de8efd69942e5a89e220c4d670d63f0" offset="0" />
290         </dataarea>
291      </part>
292   </software>
293
294   <software name="cur14">
295      <description>Cursor 14</description>
296      <year>1979</year>
297
298      <!-- pet2001n Side A: Cover14, Match, Search, Bat!, Morse!, Cops, Coming -->
299      <publisher>The Code Works</publisher>
300      <part name="cass" interface="cbm_cass">
301         <dataarea name="cass" size="56915420">
302            <rom name="cursor 14 (1979)(code works).wav" size="56915420" crc="43442da6" sha1="e6b31659181da8bebe2b7e2d66b982030014192e" offset="0" />
303         </dataarea>
304      </part>
305   </software>
306
307   <software name="cur15">
308      <description>Cursor 15</description>
309      <year>1979</year>
310
311      <!-- pet2001n Side A: Cover15!, Dungeon, Fifteen, Gomoku, Everest, Hawaii! -->
312      <publisher>The Code Works</publisher>
313      <part name="cass" interface="cbm_cass">
314         <dataarea name="cass" size="54585328">
315            <rom name="cursor 15 (1979)(code works).wav" size="54585328" crc="3e176c08" sha1="9b133685dac34826b9505407aefa27c1affa3427" offset="0" />
316         </dataarea>
317      </part>
318   </software>
319
320   <software name="cur16">
321      <description>Cursor 16</description>
322      <year>1980</year>
323
324      <!-- pet2001n Side A: Cover16, Nab!, Fire!, Aliens!, Bonzo!, Catch! -->
325      <publisher>The Code Works</publisher>
326      <part name="cass" interface="cbm_cass">
327         <dataarea name="cass" size="45885486">
328            <rom name="cursor 16 (1980)(code works).wav" size="45885486" crc="53903b5a" sha1="db92181ea1c4cf65b93bda621b2d7a7c32c3bc7e" offset="0" />
329         </dataarea>
330      </part>
331   </software>
332
333   <software name="cur17">
334      <description>Cursor 17</description>
335      <year>1980</year>
336
337      <!-- pet2001n Side A: Cover17, Police!, Spot, Ruler, Letter, Merge, Npack -->
338      <publisher>The Code Works</publisher>
339      <part name="cass" interface="cbm_cass">
340         <dataarea name="cass" size="54618936">
341            <rom name="cursor 17 (1980)(code works).wav" size="54618936" crc="c8492708" sha1="2638641d44437b595d17fc9ca8f91a1432b78164" offset="0" />
342         </dataarea>
343      </part>
344   </software>
345
346   <software name="cur18">
347      <description>Cursor 18</description>
348      <year>1980</year>
349
350      <!-- pet2001n Side A: Cover18, Dromeda!, Joust, Weather, Hi-res, Sheep -->
351      <publisher>The Code Works</publisher>
352      <part name="cass" interface="cbm_cass">
353         <dataarea name="cass" size="56023512">
354            <rom name="cursor 18 (1980)(code works).wav" size="56023512" crc="399cee6b" sha1="3930f54ffc12e09dc3e651642ee8f0bac6d9dde8" offset="0" />
355         </dataarea>
356      </part>
357   </software>
358
359   <software name="cur19">
360      <description>Cursor 19</description>
361      <year>1980</year>
362
363      <!-- pet2001n Side A: Cover19, Frog!, Godzilla!, Miner!, Rail, Gbooka, Gbookb -->
364      <publisher>The Code Works</publisher>
365      <part name="cass" interface="cbm_cass">
366         <dataarea name="cass" size="66518600">
367            <rom name="cursor 19 (1980)(code works).wav" size="66518600" crc="9a1386b2" sha1="5c98728358ac6167f7e7e3c07b2362eedc1b0161" offset="0" />
368         </dataarea>
369      </part>
370   </software>
371
372   <software name="cur20">
373      <description>Cursor 20</description>
374      <year>1980</year>
375
376      <!-- pet2001n Side A: Cover20, Music!, Bets, Checkers!, Curves, Equip -->
377      <publisher>The Code Works</publisher>
378      <part name="cass" interface="cbm_cass">
379         <dataarea name="cass" size="53527416">
380            <rom name="cursor 20 (1980)(code works).wav" size="53527416" crc="2401c9e9" sha1="c2be524ba8a66b4c0a7541a09f29a839acadac8f" offset="0" />
381         </dataarea>
382      </part>
383   </software>
384
385   <software name="cur21">
386      <description>Cursor 21</description>
387      <year>1980</year>
388
389      <!-- pet2001n Side A: Cover21, Capture!, Dance!, Boswain, Ouranos!, Drag -->
390      <publisher>The Code Works</publisher>
391      <part name="cass" interface="cbm_cass">
392         <dataarea name="cass" size="58273484">
393            <rom name="cursor 21 (1980)(code works).wav" size="58273484" crc="7d2f858a" sha1="49cab5acfc20c7d86d25aaf4c8790cc2b2ffd32c" offset="0" />
394         </dataarea>
395      </part>
396   </software>
397
398   <software name="cur22">
399      <description>Cursor 22</description>
400      <year>1980</year>
401
402      <!-- pet2001n Side A: Cover22, Kalah, Poker, Match, Thunt!, Compare -->
403      <publisher>The Code Works</publisher>
404      <part name="cass" interface="cbm_cass">
405         <dataarea name="cass" size="53405634">
406            <rom name="cursor 22 (1980)(code works).wav" size="53405634" crc="c6e434ad" sha1="dfb03ed9a3cc51a0e75b884519d26f15e4e0de4b" offset="0" />
407         </dataarea>
408      </part>
409   </software>
410
411   <software name="cur23">
412      <description>Cursor 23</description>
413      <year>1980</year>
414
415      <!-- pet2001n16 Side A: pet2001n: Cover23, Recipe, Ambush!, pet2001n16: Orrey, pet2001n: Enigma, Mwhiz! -->
416      <publisher>The Code Works</publisher>
417      <part name="cass" interface="cbm_cass">
418         <dataarea name="cass" size="52482130">
419            <rom name="cursor 23 (1980)(code works).wav" size="52482130" crc="aace87f0" sha1="e8f566cbfdb28b3fbd508f806a09b57081830a78" offset="0" />
420         </dataarea>
421      </part>
422   </software>
423
424   <software name="cur24">
425      <description>Cursor 24</description>
426      <year>1981</year>
427
428      <!-- pet2001n Side A: Cover24, Defend!, G-word, Racer!, Printsit, Re-num -->
429      <publisher>The Code Works</publisher>
430      <part name="cass" interface="cbm_cass">
431         <dataarea name="cass" size="45591486">
432            <rom name="cursor 24 (1981)(code works).wav" size="45591486" crc="413fe583" sha1="7ac7333db71a6c6f363f26437961e50fb443dd12" offset="0" />
433         </dataarea>
434      </part>
435   </software>
436
437   <software name="cur25">
438      <description>Cursor 25</description>
439      <year>1981</year>
440
441      <!-- pet2001n16 Side A: pet2001n: Cover25, Maxit, pet2001n16: Mail, pet2001n: Rescue!, pet2001n16: Repair, pet2001n: Xref -->
442      <publisher>The Code Works</publisher>
443      <part name="cass" interface="cbm_cass">
444         <dataarea name="cass" size="58594030">
445            <rom name="cursor 25 (1981)(code works).wav" size="58594030" crc="ff3aa594" sha1="db60a8b2c751aeeffe5fcd9c7fc2ac1965e4ccc2" offset="0" />
446         </dataarea>
447      </part>
448   </software>
449
450   <software name="cur26">
451      <description>Cursor 26</description>
452      <year>1981</year>
453
454      <!-- pet2001n16 Side A: pet2001n: Cover26, Lawn!, Tank!, Ram, Safe!, pet2001n16: Test -->
455      <publisher>The Code Works</publisher>
456      <part name="cass" interface="cbm_cass">
457         <dataarea name="cass" size="59355380">
458            <rom name="cursor 26 (1981)(code works).wav" size="59355380" crc="5dbb9096" sha1="4ad21ed698ff0162b12615276daf2ebca14d5c97" offset="0" />
459         </dataarea>
460      </part>
461   </software>
462
463   <software name="cur27">
464      <description>Cursor 27</description>
465      <year>1981</year>
466
467      <!-- pet2001n Side A: Cover27!, Attack!, Emaze!, Duel!, Miser, Prochar -->
468      <publisher>The Code Works</publisher>
469      <part name="cass" interface="cbm_cass">
470         <dataarea name="cass" size="68273716">
471            <rom name="cursor 27 (1981)(code works).wav" size="68273716" crc="b87e72c4" sha1="3ca92d7de8cdb085759388cb7cb4a72b1d5438a9" offset="0" />
472         </dataarea>
473      </part>
474   </software>
475
476   <software name="cur28">
477      <description>Cursor 28</description>
478      <year>1981</year>
479
480      <!-- pet2001n Side A: Cover28!, Skeet!, Blasto!, Stop!, Voz, Flags -->
481      <publisher>The Code Works</publisher>
482      <part name="cass" interface="cbm_cass">
483         <dataarea name="cass" size="51620292">
484            <rom name="cursor 28 (1981)(code works).wav" size="51620292" crc="3cceca70" sha1="9430875aa6370e940c7b88351bccba7e27be5640" offset="0" />
485         </dataarea>
486      </part>
487   </software>
488
489   <software name="cur29">
490      <description>Cursor 29</description>
491      <year>1982</year>
492
493      <!-- pet2001n16 Side A: pet2001n: Cover29, Pong!, Clone!, pet2001n16: Drone!, pet2001n: Contact, Krypto -->
494      <publisher>The Code Works</publisher>
495      <part name="cass" interface="cbm_cass">
496         <dataarea name="cass" size="72864822">
497            <rom name="cursor 29 (1982)(code works).wav" size="72864822" crc="16fa7e17" sha1="d1f88d1e696b7b1c6488104a70ef372969521de6" offset="0" />
498         </dataarea>
499      </part>
500   </software>
501
502   <software name="cur30">
503      <description>Cursor 30</description>
504      <year>1982</year>
505
506      <!-- pet2001n Side A: Cover30, Dive, Slide, Break, Rebound, Zip -->
507      <publisher>The Code Works</publisher>
508      <part name="cass" interface="cbm_cass">
509         <dataarea name="cass" size="44679544">
510            <rom name="cursor 30 (1982)(code works).wav" size="44679544" crc="bdb20dfb" sha1="12be82c0122f53718bfb2b634c85663c47a6a7e6" offset="0" />
511         </dataarea>
512      </part>
513   </software>
514
515   <software name="dpoker">
516      <!-- 321008 -->
517      <description>Draw Poker</description>
518      <year>1978</year>
519      <publisher>Commodore Business Machines, Inc.</publisher>
520
521      <!-- pet20018 -->
522      <part name="cass" interface="cbm_cass">
523         <dataarea name="cass" size="10220420">
524            <rom name="draw poker (1978)(commodore busines machines).wav" size="10220420" crc="82f7871d" sha1="973cdc5d8ede2dffa6fb25abfadf8b5daabe6949" offset="0" />
525         </dataarea>
526      </part>
527   </software>
528
529   <software name="eaadj1n">
530      <description>Adjectives 1</description>
531      <year>1980</year>
532
533      <!-- pet2001n Side A: Adjectives 1 -->
534      <publisher>Activity Records, Inc.</publisher>
535      <part name="cass" interface="cbm_cass">
536         <dataarea name="cass" size="11189514">
537            <rom name="adjectives 1 (1980)(activity records, inc.).wav" size="11189514" crc="5cd88b03" sha1="2976ab72d36a8654a33c1f8220d9c862ae4849f7" offset="0" />
538         </dataarea>
539      </part>
540   </software>
541
542   <software name="eaadj2n">
543      <description>Adjectives 2</description>
544      <year>1980</year>
545
546      <!-- pet2001n Side A: Adjectives 2 -->
547      <publisher>Activity Records, Inc.</publisher>
548      <part name="cass" interface="cbm_cass">
549         <dataarea name="cass" size="11398034">
550            <rom name="adjectives 2 (1980)(activity records, inc.).wav" size="11398034" crc="beb939fa" sha1="3b3b7ef2118263a8bb7fa85bb0010ae2d1ed89d8" offset="0" />
551         </dataarea>
552      </part>
553   </software>
554
555   <software name="eaadj3n">
556      <description>Adjectives 3</description>
557      <year>1980</year>
558
559      <!-- pet2001n Side A: Adjectives 3 -->
560      <publisher>Activity Records, Inc.</publisher>
561      <part name="cass" interface="cbm_cass">
562         <dataarea name="cass" size="10179592">
563            <rom name="adjectives 3 (1980)(activity records, inc.).wav" size="10179592" crc="7019b74f" sha1="36ed0aac8f1c8ae9de7fc01c29d73d841a398d80" offset="0" />
564         </dataarea>
565      </part>
566   </software>
567
568   <software name="eaadj4n">
569      <description>Adjectives 4</description>
570      <year>1980</year>
571
572      <!-- pet2001n Side A: Adjectives 4 -->
573      <publisher>Activity rRecords, Inc.</publisher>
574      <part name="cass" interface="cbm_cass">
575         <dataarea name="cass" size="11520634">
576            <rom name="adjectives 4 (1980)(activity records, inc.).wav" size="11520634" crc="5a564aa4" sha1="2d7dad3d450158331ecfdc7289e70b3f0cfd68a5" offset="0" />
577         </dataarea>
578      </part>
579   </software>
580
581   <software name="eaadv1n">
582      <description>Adverbs 1</description>
583      <year>1980</year>
584
585      <!-- pet2001n Side A: Adverbs 1 -->
586      <publisher>Activity Records, Inc.</publisher>
587      <part name="cass" interface="cbm_cass">
588         <dataarea name="cass" size="11171990">
589            <rom name="adverbs 1 (1980)(activity records, inc.).wav" size="11171990" crc="4a264aa0" sha1="021f1f264130a46509c46ae46cefafda819deeb7" offset="0" />
590         </dataarea>
591      </part>
592   </software>
593
594   <software name="eaadv2n">
595      <description>Adverbs 2</description>
596      <year>1980</year>
597
598      <!-- pet2001n Side A: Adverbs 2 -->
599      <publisher>Activity Records, Inc.</publisher>
600      <part name="cass" interface="cbm_cass">
601         <dataarea name="cass" size="10775102">
602            <rom name="adverbs 2 (1980)(activity records, inc.).wav" size="10775102" crc="b52be4be" sha1="806da1c924aebf856a5d6236700d91b3b29a0b6f" offset="0" />
603         </dataarea>
604      </part>
605   </software>
606
607   <software name="eaadv3n">
608      <description>Adverbs 3</description>
609      <year>1980</year>
610
611      <!-- pet2001n Side A: Adverbs 3 -->
612      <publisher>Activity Records, Inc.</publisher>
613      <part name="cass" interface="cbm_cass">
614         <dataarea name="cass" size="7315782">
615            <rom name="adverbs 3 (1980)(activity records, inc.).wav" size="7315782" crc="5e2de1e4" sha1="12608f5ead991e9eb46705ff14f6a5c974c0c504" offset="0" />
616         </dataarea>
617      </part>
618   </software>
619
620   <software name="eaadv4n">
621      <description>Adverbs 4</description>
622      <year>1980</year>
623
624      <!-- pet2001n Side A: Adverbs 4 -->
625      <publisher>Activity Records, Inc.</publisher>
626      <part name="cass" interface="cbm_cass">
627         <dataarea name="cass" size="8865608">
628            <rom name="adverbs 4 (1980)(activity records, inc.).wav" size="8865608" crc="ecfddb13" sha1="f79db1d8fa625252f6c7dea8ae4556e5ce722e33" offset="0" />
629         </dataarea>
630      </part>
631   </software>
632
633   <software name="eacon1n">
634      <description>Contractions 1</description>
635      <year>1980</year>
636
637      <!-- pet2001n Side A: Contractions 1 -->
638      <publisher>Activity Records, Inc.</publisher>
639      <part name="cass" interface="cbm_cass">
640         <dataarea name="cass" size="8741664">
641            <rom name="contractions 1 (1980)(activity records, inc.).wav" size="8741664" crc="b05cebce" sha1="c38311bf71973d7bbc89754d46feb48e738f0cb4" offset="0" />
642         </dataarea>
643      </part>
644   </software>
645
646   <software name="eacon2n">
647      <description>Contractions 2</description>
648      <year>1980</year>
649
650      <!-- pet2001n Side A: Contractions 2 -->
651      <publisher>Activity Records, Inc.</publisher>
652      <part name="cass" interface="cbm_cass">
653         <dataarea name="cass" size="7618740">
654            <rom name="contractions 2 (1980)(activity records, inc.).wav" size="7618740" crc="10107694" sha1="fc27866f351a18f41e4c4528b53495a908694061" offset="0" />
655         </dataarea>
656      </part>
657   </software>
658
659   <software name="eacon3n">
660      <description>Contractions 3</description>
661      <year>1980</year>
662
663      <!-- pet2001n Side A: Contractions 3 -->
664      <publisher>Activity Records, Inc.</publisher>
665      <part name="cass" interface="cbm_cass">
666         <dataarea name="cass" size="8523464">
667            <rom name="contractions 3 (1980)(activity records, inc.).wav" size="8523464" crc="ab728b0b" sha1="f4e8e1c4745e40fe133e5c20104c929b4b693b56" offset="0" />
668         </dataarea>
669      </part>
670   </software>
671
672   <software name="eacon4n">
673      <description>Contractions 4</description>
674      <year>1980</year>
675
676      <!-- pet2001n Side A: Contractions 4 -->
677      <publisher>Activity Records, Inc.</publisher>
678      <part name="cass" interface="cbm_cass">
679         <dataarea name="cass" size="11211668">
680            <rom name="contractions 4 (1980)(activity records, inc.).wav" size="11211668" crc="707797e8" sha1="4b70d42f40037b707f5c56956cc5e2dd01b9b663" offset="0" />
681         </dataarea>
682      </part>
683   </software>
684
685   <software name="eaflasn">
686      <description>Flash Spelling</description>
687      <year>1980</year>
688
689      <!-- pet2001n Side A: Flash Spelling -->
690      <publisher>Activity Records, Inc.</publisher>
691      <part name="cass" interface="cbm_cass">
692         <dataarea name="cass" size="10924002">
693            <rom name="flash spelling (1980)(activity records, inc.).wav" size="10924002" crc="c848cf8d" sha1="274ed732a2878d61751558f601c1d47b6f62a027" offset="0" />
694         </dataarea>
695      </part>
696   </software>
697
698   <software name="eahom1n">
699      <description>Homonyms 1</description>
700      <year>1980</year>
701
702      <!-- pet2001n Side A: Homonyms 1 -->
703      <publisher>Activity Records, Inc.</publisher>
704      <part name="cass" interface="cbm_cass">
705         <dataarea name="cass" size="11327432">
706            <rom name="homonyms 1 (1980)(activity records, inc.).wav" size="11327432" crc="b7b4b906" sha1="b4e17fe21d43e4ad951bdfa93ea9963b714f4f40" offset="0" />
707         </dataarea>
708      </part>
709   </software>
710
711   <software name="eahom2n">
712      <description>Homonyms 2</description>
713      <year>1980</year>
714
715      <!-- pet2001n Side A: Homonyms 2 -->
716      <publisher>Activity Records, Inc.</publisher>
717      <part name="cass" interface="cbm_cass">
718         <dataarea name="cass" size="11861540">
719            <rom name="homonyms 2 (1980)(activity records, inc.).wav" size="11861540" crc="0975d654" sha1="eb16abd7711449966ad7517fd21afec0e629b7cd" offset="0" />
720         </dataarea>
721      </part>
722   </software>
723
724   <software name="eahom3n">
725      <description>Homonyms 3</description>
726      <year>1980</year>
727
728      <!-- pet2001n Side A: Homonyms 3 -->
729      <publisher>Activity Records, Inc.</publisher>
730      <part name="cass" interface="cbm_cass">
731         <dataarea name="cass" size="11615978">
732            <rom name="homonyms 3 (1980)(activity records, inc.).wav" size="11615978" crc="29ee6920" sha1="7f73f30e0403356a89a1febf8ff89deff7068fa6" offset="0" />
733         </dataarea>
734      </part>
735   </software>
736
737   <software name="eahom4n">
738      <description>Homonyms 4</description>
739      <year>1980</year>
740
741      <!-- pet2001n Side A: Homonyms 4 -->
742      <publisher>Activity Records, Inc.</publisher>
743      <part name="cass" interface="cbm_cass">
744         <dataarea name="cass" size="11683890">
745            <rom name="homonyms 4 (1980)(activity records, inc.).wav" size="11683890" crc="37dc7bc2" sha1="4337c812232055e81488a8fc9a56db374fa12147" offset="0" />
746         </dataarea>
747      </part>
748   </software>
749
750   <software name="eanou1n">
751      <description>Nouns 1</description>
752      <year>1980</year>
753
754      <!-- pet2001n Side A: Nouns 1 -->
755      <publisher>Activity Records, Inc.</publisher>
756      <part name="cass" interface="cbm_cass">
757         <dataarea name="cass" size="9658096">
758            <rom name="nouns 1 (1980)(activity records, inc.).wav" size="9658096" crc="c1f58189" sha1="0d99300bdecbc7b3e0dc88dec92e0904d3730636" offset="0" />
759         </dataarea>
760      </part>
761   </software>
762
763   <software name="eanou2n">
764      <description>Nouns 2</description>
765      <year>1980</year>
766
767      <!-- pet2001n Side A: Nouns 2 -->
768      <publisher>Activity Records, Inc.</publisher>
769      <part name="cass" interface="cbm_cass">
770         <dataarea name="cass" size="8256024">
771            <rom name="nouns 2 (1980)(activity records, inc.).wav" size="8256024" crc="9fd2c09e" sha1="12dfd01ed34811d35bda22049814521b694bdd1e" offset="0" />
772         </dataarea>
773      </part>
774   </software>
775
776   <software name="eanou3n">
777      <description>Nouns 3</description>
778      <year>1980</year>
779
780      <!-- pet2001n Side A: Nouns 3 -->
781      <publisher>Activity Records, Inc.</publisher>
782      <part name="cass" interface="cbm_cass">
783         <dataarea name="cass" size="10382360">
784            <rom name="nouns 3 (1980)(activity records, inc.).wav" size="10382360" crc="526391fd" sha1="7c9b6d8c8c07415e06d89188cf4abd06131f9c05" offset="0" />
785         </dataarea>
786      </part>
787   </software>
788
789   <software name="eanou4n">
790      <description>Nouns 4</description>
791      <year>1980</year>
792
793      <!-- pet2001n Side A: Nouns 4 -->
794      <publisher>Activity Records, Inc.</publisher>
795      <part name="cass" interface="cbm_cass">
796         <dataarea name="cass" size="10670724">
797            <rom name="nouns 4 (1980)(activity records, inc.).wav" size="10670724" crc="19f240f3" sha1="dfc672a27119b070440dacd9bdfe45fca36c49e6" offset="0" />
798         </dataarea>
799      </part>
800   </software>
801
802   <software name="eapro1n">
803      <description>Pronouns 1</description>
804      <year>1980</year>
805
806      <!-- pet2001n Side A: Pronouns 1 -->
807      <publisher>Activity Records, Inc.</publisher>
808      <part name="cass" interface="cbm_cass">
809         <dataarea name="cass" size="8304786">
810            <rom name="pronouns 1 (1980)(activity records, inc.).wav" size="8304786" crc="f19b0449" sha1="df5877f923b89a65619692e3bbda60540eac225f" offset="0" />
811         </dataarea>
812      </part>
813   </software>
814
815   <software name="eapro2n">
816      <description>Pronouns 2</description>
817      <year>1980</year>
818
819      <!-- pet2001n Side A: Pronouns 2 -->
820      <publisher>Activity Records, Inc.</publisher>
821      <part name="cass" interface="cbm_cass">
822         <dataarea name="cass" size="8766592">
823            <rom name="pronouns 2 (1980)(activity records, inc.).wav" size="8766592" crc="369ebd25" sha1="c21773b0807136aa48852b21f6395069a9daa38e" offset="0" />
824         </dataarea>
825      </part>
826   </software>
827
828   <software name="eapro3n">
829      <description>Pronouns 3</description>
830      <year>1980</year>
831
832      <!-- pet2001n Side A: Pronouns 3 -->
833      <publisher>Activity Records, Inc.</publisher>
834      <part name="cass" interface="cbm_cass">
835         <dataarea name="cass" size="11746820">
836            <rom name="pronouns 3 (1980)(activity records, inc.).wav" size="11746820" crc="32331088" sha1="dd8b94cef82c34fab6802a4962c6089c13d2003f" offset="0" />
837         </dataarea>
838      </part>
839   </software>
840
841   <software name="eapro4n">
842      <description>Pronouns 4</description>
843      <year>1980</year>
844
845      <!-- pet2001n Side A: Pronouns 4 -->
846      <publisher>Activity Records, Inc.</publisher>
847      <part name="cass" interface="cbm_cass">
848         <dataarea name="cass" size="11164358">
849            <rom name="pronouns 4 (1980)(activity records, inc.).wav" size="11164358" crc="3e59fc0a" sha1="9c7f23385261ebee93ea0cef13145683af0119eb" offset="0" />
850         </dataarea>
851      </part>
852   </software>
853
854   <software name="eascrln">
855      <description>Scrambled Letters</description>
856      <year>1980</year>
857
858      <!-- pet2001n Side A: Scrambled Letter -->
859      <publisher>Activity Records, Inc.</publisher>
860      <part name="cass" interface="cbm_cass">
861         <dataarea name="cass" size="10495222">
862            <rom name="scrambled letters (1980)(activity records, inc.).wav" size="10495222" crc="1d22b476" sha1="47b5c68929acc4542442a065a13d4de6bbfbd8dc" offset="0" />
863         </dataarea>
864      </part>
865   </software>
866
867   <software name="easyn1n">
868      <description>Synonyms 1</description>
869      <year>1980</year>
870
871      <!-- pet2001n Side A: Synonyms 1 -->
872      <publisher>Activity Records, Inc.</publisher>
873      <part name="cass" interface="cbm_cass">
874         <dataarea name="cass" size="10756002">
875            <rom name="synonyms 1 (1980)(activity records, inc.).wav" size="10756002" crc="84775373" sha1="7056dd8f4114b6da432ba60238e1c25577e03a56" offset="0" />
876         </dataarea>
877      </part>
878   </software>
879
880   <software name="easyn2n">
881      <description>Synonyms 2</description>
882      <year>1980</year>
883
884      <!-- pet2001n Side A: Synonyms 2 -->
885      <publisher>Activity Records, Inc.</publisher>
886      <part name="cass" interface="cbm_cass">
887         <dataarea name="cass" size="11090060">
888            <rom name="synonyms 2 (1980)(activity records, inc.).wav" size="11090060" crc="97b76ece" sha1="58b5180d0a4bc1ea7660f177b2ef474c83213f75" offset="0" />
889         </dataarea>
890      </part>
891   </software>
892
893   <software name="easyn3n">
894      <description>Synonyms 3</description>
895      <year>1980</year>
896
897      <!-- pet2001n Side A: Synonyms 3 -->
898      <publisher>Activity Records, Inc.</publisher>
899      <part name="cass" interface="cbm_cass">
900         <dataarea name="cass" size="11520754">
901            <rom name="synonyms 3 (1980)(activity records, inc.).wav" size="11520754" crc="b03171be" sha1="39dc6de8545160656b306d4b767140b055bbc426" offset="0" />
902         </dataarea>
903      </part>
904   </software>
905
906   <software name="easyn4n">
907      <description>Synonyms 4</description>
908      <year>1980</year>
909
910      <!-- pet2001n Side A: Synonyms 4 -->
911      <publisher>Activity Records, Inc.</publisher>
912      <part name="cass" interface="cbm_cass">
913         <dataarea name="cass" size="11056074">
914            <rom name="synonyms 4 (1980)(activity records, inc.).wav" size="11056074" crc="221953dc" sha1="0d9914a7f01ebbd5c3397f5dbc31b39daf3954c6" offset="0" />
915         </dataarea>
916      </part>
917   </software>
918
919   <software name="eaver1n">
920      <description>Verbs 1</description>
921      <year>1980</year>
922
923      <!-- pet2001n Side A: Verbs 1 -->
924      <publisher>Activity Records, Inc.</publisher>
925      <part name="cass" interface="cbm_cass">
926         <dataarea name="cass" size="11064470">
927            <rom name="verbs 1 (1980)(activity records, inc.).wav" size="11064470" crc="e0374a46" sha1="605b1965f4e801942674ad9dc809e753157d0144" offset="0" />
928         </dataarea>
929      </part>
930   </software>
931
932   <software name="eaver2n">
933      <description>Verbs 2</description>
934      <year>1980</year>
935
936      <!-- pet2001n Side A: Verbs 2 -->
937      <publisher>Activity Records, Inc.</publisher>
938      <part name="cass" interface="cbm_cass">
939         <dataarea name="cass" size="11635338">
940            <rom name="verbs 2 (1980)(activity records, inc.).wav" size="11635338" crc="0935674a" sha1="ecab049a8f243d669f000e2782621fb6b98443e9" offset="0" />
941         </dataarea>
942      </part>
943   </software>
944
945   <software name="eaver3n">
946      <description>Verbs 3</description>
947      <year>1980</year>
948
949      <!-- pet2001n Side A: Verbs 3 -->
950      <publisher>Activity Records, Inc.</publisher>
951      <part name="cass" interface="cbm_cass">
952         <dataarea name="cass" size="11407390">
953            <rom name="verbs 3 (1980)(activity records, inc.).wav" size="11407390" crc="0564d783" sha1="41e30fa7b480714f735fb6ad8933cd4a187d227a" offset="0" />
954         </dataarea>
955      </part>
956   </software>
957
958   <software name="eaver4n">
959      <description>Verbs 4</description>
960      <year>1980</year>
961
962      <!-- pet2001n Side A: Verbs 4 -->
963      <publisher>Activity Records, Inc.</publisher>
964      <part name="cass" interface="cbm_cass">
965         <dataarea name="cass" size="12043578">
966            <rom name="verbs 4 (1980)(activity records, inc.).wav" size="12043578" crc="84f2e68f" sha1="ba1a92a613cbaf1db870ee864d097c90c7842fc7" offset="0" />
967         </dataarea>
968      </part>
969   </software>
970
971   <software name="galaxy">
972      <description>GALAXY!</description>
973      <year>1982</year>
974
975      <!-- pet2001n16 Side A: Galaxy! -->
976      <publisher>Microcomputer Games</publisher>
977      <part name="cass" interface="cbm_cass">
978         <dataarea name="cass" size="21505180">
979            <rom name="galaxy! (1982)(avalon hill).wav" size="21505180" crc="d9475975" sha1="56532c57ebf8935212c410eebc7d9192c3c6578c" offset="0" />
980         </dataarea>
981      </part>
982   </software>
983
984
985   <software name="galxyg">
986      <!-- 321006 -->
987      <description>Galaxy Games</description>
988      <year>1978</year>
989
990      <!-- pet20018 Side A: Galaxy Games -->
991      <publisher>Commodore Business Machines, Inc.</publisher>
992      <part name="cass" interface="cbm_cass">
993         <dataarea name="cass" size="10910060">
994            <rom name="galaxy games (1978)(commodore business machines).wav" size="10910060" crc="42d61509" sha1="50111ae9ff9384c07f4abce2bb9630409673c96b" offset="0" />
995         </dataarea>
996      </part>
997   </software>
998
999   <software name="gunsfd">
1000      <description>The Guns of Fort Defiance</description>
1001      <year>1981</year>
1002
1003      <!-- pet2001n16 Side A: Guns of Fort D -->
1004      <publisher>Commodore Business Machines, Inc.</publisher>
1005      <part name="cass" interface="cbm_cass">
1006         <dataarea name="cass" size="23077818">
1007            <rom name="guns of fort defiance (1981)(avalon hill).wav" size="23077818" crc="cfd4e5fc" sha1="7a63c28e46ebd6893d7ea02aef0b9665b6e9dc8f" offset="0" />
1008         </dataarea>
1009      </part>
1010   </software>
1011
1012   <software name="mchess2">
1013      <description>Microchess 2.0</description>
1014      <year>1978</year>
1015
1016      <!-- pet2001n Side A: Microchess 2.0 -->
1017      <publisher>Micro-ware</publisher>
1018      <part name="cass" interface="cbm_cass">
1019         <dataarea name="cass" size="12645082">
1020            <rom name="microchess 2.0 (1978)(micro-ware).wav" size="12645082" crc="8b93c40b" sha1="9863092ba8e435749d98ad69e395c577dfc3cadf" offset="0" />
1021         </dataarea>
1022      </part>
1023   </software>
1024
1025   <software name="midway">
1026      <description>Midway Campaign</description>
1027      <year>1980</year>
1028      <publisher>Microcomputer Games</publisher>
1029
1030      <!-- pet2001n16 Side A: Midway -->
1031      <part name="cass" interface="cbm_cass">
1032         <dataarea name="cass" size="23443232">
1033            <rom name="midway campaign (1980)(avalon hill).wav" size="23443232" crc="7aa50725" sha1="420fadf2b52613860e5496284e97da229d67447e" offset="0" />
1034         </dataarea>
1035      </part>
1036   </software>
1037
1038   <software name="nacr">
1039      <description>North Atlantic Convoy Raider</description>
1040      <year>1980</year>
1041
1042      <!-- pet2001n16 Side A: North Atlant.c.r -->
1043      <publisher>Microcomputer Games</publisher>
1044      <part name="cass" interface="cbm_cass">
1045         <dataarea name="cass" size="12074650">
1046            <rom name="north atlantic convoy raider (1980)(avalon hill).wav" size="12074650" crc="fe5dc36a" sha1="8fb15474102d5cc3ce133f3688adb8ffa15704a7" offset="0" />
1047         </dataarea>
1048      </part>
1049   </software>
1050
1051   <software name="oserev">
1052      <!-- 321001 -->
1053      <description>Osero / Reverse</description>
1054      <year>1978</year>
1055      <publisher>Commodore Business Machines, Inc.</publisher>
1056
1057      <!-- pet20018 Side A: Osero  -->
105810      <part name="cass1" interface="cbm_cass">
1059         <dataarea name="cass" size="9777552">
1060            <rom name="osero (1978)(commodore business machines).wav" size="9777552" crc="f52d600f" sha1="57b0e42a4eb3dd7587f5a248bb549be752109f24" offset="0" />
11         <dataarea name="cass" size="342602">
12            <rom name="lunar-lander.tap" size="342602" crc="b4a77f48" sha1="28e2d8d4adce42968173996fac92365dcfc67b07" offset="0" />
106113         </dataarea>
106214      </part>
1063
1064      <!-- pet20018 Side B: Reverse -->
1065      <part name="cass2" interface="cbm_cass">
1066         <dataarea name="cass" size="5270380">
1067            <rom name="reverse (1978)(commodore business machines).wav" size="5270380" crc="890a53ec" sha1="a2280df2113b2aa250850eadb9247ca1a0d06079" offset="0" />
1068         </dataarea>
1069      </part>
107015   </software>
107116
1072   <software name="checkers">
1073      <description>PET Checkers</description>
1074      <year>1980</year>
1075
1076      <!-- pet20018 Side A: Checkers -->
1077      <publisher>CMS Software Systems</publisher>
1078      <part name="cass" interface="cbm_cass">
1079         <dataarea name="cass" size="10467148">
1080            <rom name="pet checkers (1980)(cms software systems).wav" size="10467148" crc="e3529a46" sha1="3fa8de3a8374e14f0d2b3bd97ff2d8393b3797f0" offset="0" />
1081         </dataarea>
1082      </part>
1083   </software>
1084
1085   <software name="planet">
1086      <description>The Planet Miners</description>
1087      <year>1979</year>
1088
1089      <!-- pet2001n16 Side A: Planet Miners -->
1090      <publisher>Microcomputer Games</publisher>
1091      <part name="cass" interface="cbm_cass">
1092         <dataarea name="cass" size="22746580">
1093            <rom name="planet miners (1979)(avalon hill).wav" size="22746580" crc="0f09b3ac" sha1="6914d25f928fa3f6a1f185744ada904eadea06ac" offset="0" />
1094         </dataarea>
1095      </part>
1096   </software>
1097
1098   <software name="santap">
1099      <description>Santa Paravia and Fiumaccio</description>
1100      <year>1978</year>
1101
1102      <!-- pet2001n16 Side A: Santa Paravia -->
1103      <publisher>Folklife Terminal Club</publisher>
1104      <part name="cass" interface="cbm_cass">
1105         <dataarea name="cass" size="22263674">
1106            <rom name="santa paravia and fiumaccio (1978)(folklife terminal club).wav" size="22263674" crc="4081b629" sha1="a46eac2ef42904d2b9778c697b36e23dbdcecf31" offset="0" />
1107         </dataarea>
1108      </part>
1109   </software>
1110
1111   <software name="spacef">
1112      <!-- 321010 -->
1113      <description>Space Fight</description>
1114      <year>1978</year>
1115      <publisher>Commodore Business Machines, Inc.</publisher>
1116
1117      <!-- pet20018 Side A: Space Fight -->
1118      <part name="cass" interface="cbm_cass">
1119         <dataarea name="cass" size="6234532">
1120            <rom name="space fight (1978)(commodore business machines).wav" size="6234532" crc="38618c0a" sha1="f100e751f41899ed6e157ed7a0d1d7d569676c7f" offset="0" />
1121         </dataarea>
1122      </part>
1123   </software>
1124
1125   <software name="tankt">
1126      <description>Tanktics</description>
1127      <year>1981</year>
1128
1129      <!-- pet2001n16 Side A: Tanktics -->
1130      <publisher>Microcomputer Games</publisher>
1131      <part name="cass" interface="cbm_cass">
1132         <dataarea name="cass" size="22165844">
1133            <rom name="tanktics (1981)(avalon hill).wav" size="22165844" crc="3a332c04" sha1="95bb207109f08e2cf95e12aa50b9d5840fc54656" offset="0" />
1134         </dataarea>
1135      </part>
1136   </software>
1137
1138   <software name="targoff">
1139      <!-- 321002 -->
1140      <description>Target Pong/Off-The-Wall</description>
1141      <year>1978</year>
1142      <publisher>Commodore Business Machines, Inc.</publisher>
1143
1144      <!-- pet20018 Side A: Target Pong -->
1145      <part name="cass1" interface="cbm_cass">
1146         <dataarea name="cass" size="6928406">
1147            <rom name="target pong (1978)(commodore business machines).wav" size="6928406" crc="a9b1fc5b" sha1="449149f0e5312b66b7296535e5b4840b0fd28556" offset="0" />
1148         </dataarea>
1149      </part>
1150
1151      <!-- pet20018 Side B: Off-The-Wall -->
1152      <part name="cass2" interface="cbm_cass">
1153         <dataarea name="cass" size="7515688">
1154            <rom name="off-the-wall (1978)(commodore business machines).wav" size="7515688" crc="afd30b2d" sha1="cc0c4c10fc6ad1dda4012740a20406693c1aa271" offset="0" />
1155         </dataarea>
1156      </part>
1157   </software>
1158
1159   <software name="telng">
1160      <description>Telengard</description>
1161      <year>1982</year>
1162
1163      <!-- pet2001n32 Side A: Telengard -->
1164      <publisher>Microcomputer Games</publisher>
1165      <part name="cass" interface="cbm_cass">
1166         <dataarea name="cass" size="49824646">
1167            <rom name="telengard (1982)(avalon hill).wav" size="49824646" crc="b6a459cb" sha1="1db22543cab974b7efa36134ee608d31511e06a1" offset="0" />
1168         </dataarea>
1169      </part>
1170   </software>
1171
1172   <software name="apshai">
1173      <description>Temple of Apshai</description>
1174      <year>1979</year>
1175      <publisher>Automated Simulations</publisher>
1176
1177      <!-- pet2001n32 Side A: Apshai, level 1.seq, level 2.seq, level 3.seq, level 4.seq -->
1178      <part name="cass1" interface="cbm_cass">
1179         <dataarea name="cass" size="76924190">
1180            <rom name="temple of apshai (1979)(automated simulations).wav" size="76924190" crc="faecb03c" sha1="be38fb082fa74c33f280bda401b215001670d54f" offset="0" />
1181         </dataarea>
1182      </part>
1183   </software>
1184
1185   <software name="ttgames">
1186      <!-- 321004 -->
1187      <description>A Treasure Trove of Games</description>
1188      <year>1978</year>
1189      <publisher>Commodore Business Machines, Inc.</publisher>
1190
1191      <!-- pet20018 Side A: Lunar Lander, Rotate -->
1192      <part name="cass1" interface="cbm_cass">
1193         <dataarea name="cass" size="14443032">
1194            <rom name="lunar lander, rotate (1978)(commodore business machines).wav" size="14443032" crc="9ec18354" sha1="5099624623d83a38bc211be86213d493e672291d" offset="0" />
1195         </dataarea>
1196      </part>
1197
1198      <!-- pet20018 Side B: Wumpus, Tic Tac Toe -->
1199      <part name="cass2" interface="cbm_cass">
1200         <dataarea name="cass" size="16588594">
1201            <rom name="wumpus, tic-tac-toe (1978)(commodore business machines).wav" size="16588594" crc="5345b9be" sha1="2c9ec6f68468b608f68926285f4367b6677e76e0" offset="0" />
1202         </dataarea>
1203      </part>
1204   </software>
1205
120617</softwarelist>
trunk/hash/vsmile_cart.xml
r241525r241526
77
88<!--
99
10- Known V.Smile Edutainment Smartridges (thanks to Cowering and Team Europe)
11
12
1310V.Smile Motion:               80-08****  (Smartridges are orange)
1411V.Smile Smartbook Software:   80-089***  (Smartridges are red)
1512V.Smile:                      80-09****  (Smartridges are purple, some are gray because of plastic defects)
1613V.Smile Baby                  80-099***  (Smartridges are yellow, incompatible with TV based V.Smile consoles)
1714
1815Addons (w/ yellow Smartridges)
19V.Smile Smart Keyboard    80-091440(US)
20V.Smile Smart Keyboard    80-091443(UK)
21V.Smile PC Pal            80-03600(US)
22V.Smile V.Smile PC        80-036800(US) (cart)
23V.Smile V.Smile PC        80-036822(SP) (cart)
24V.Smile Art Studio        80-67000(US)
25V.Smile Art Studio        80-67003(UK)
26V.Smile Jamming Gym Class 80-91320(US)
27V.Smile Dance'n'Learn     80-91323(UK)
28V.Smile Defi Gym          80-91325(FR)
2916
17V.Smile Smart Keyboard       80-091440(US)
18V.Smile Smart Keyboard       80-091443(UK)
19V.Smile Tastatur für Lernkonsole 80-091444(GE)
20
21V.Smile PC Pal               80-03600(US)
22
23V.Smile V.Smile PC           80-036800(US) (cart)
24V.Smile V.Smile PC           80-036822(SP) (cart)
25
26V.Smile Art Studio           80-67000(US)
27V.Smile Art Studio           80-67003(UK)
28V.Smile Zeichenatelier (Magic Malboard)       80-67004(GE)
29V.Smile Studio De Dessin     80-67005(FR)
30
31V.Smile Jamming Gym Class    80-91320(US)
32V.Smile Muziek en Leer Mat   80-91322(NL)
33V.Smile Dance'n'Learn        80-91323(UK)
34V.Smile Lern - und Tanzmatte 80-91324(GE)
35V.Smile Defi Gym             80-91325(FR)
36V.Smile Gimnasio Interactivo 80-91327(SP)
37
3038- Not compatible with V.Smile games, left as documentation
3139V.Flash (V.Smile Pro):        80-093***
3240V.Reader:                     80-28****
r241525r241526
4553
4654
475580-084000(US)   | Action Mania
5680-084002(NL)   | Sports Games
5780-084003(UK)   | Action Mania
485880-084004(GE)   | Sportskanone
495980-084005(FR)   | Sporti Folies
5080-084006(Port) | Action Mania
6080-084006(PT)   | Action Mania (84016 on cart)
6180-084007(SP)   | Action Mania
5162-
5280-084020(US)   | Dora's Fix It Adventure
5380-084022(NL)   | Dora's Reparatie Avontuur
5480-084023(UK)   | Dora's Fix-It Adventure
5580-084024(GE)   | Doras Reparatur-Abenteuer
5680-084025(FR)   | Les Adventures De Dora Apprentie Mecano
6380-084020(US)   | Dora the Explorer : Dora's Fix It Adventure
6480-084022(NL)   | DORA: Dora's Reparatie Avontuur
6580-084023(UK)   | Dora the Explorer : Dora's Fix It Adventure
6680-084024(GE)   | DORA: Doras Reparatur-Abenteuer
6780-084025(FR)   | Dora L'Exploratrice : Les Adventures De Dora Apprentie Mecano
6880-084026(PT)   | Dora - em busca das peças perdidas
5769-
5880-084040(US)   | Scooby-Doo! - Funland Frenzy (is V.Motion)
7080-084040(US)   | Scooby-Doo! - Funland Frenzy
597180-084043(UK)   | Scooby-Doo! - Funland Frenzy
607280-084044(GE)   | Scooby-Doo! - Im Lernpark
617380-084045(FR)   | Scooby-Doo - Panique A Funland
r241525r241526
789080-084124(GE)   | Kung Fu Panda - Der Weg des Panda
799180-084125(FR)   | Kung Fu Panda - La mission de Po
8092-
8180-084140(US)   | Spidey & Friends
9380-084140(US)   | Spidey & Friends - Secret Missions
9480-084143(UK)   | Spider-Man & Friends - Secret Missions
829580-084144(GE)   | Spider-Man & Freunde - Geheime Missionen
8396-
8480-084160(US)   | Little Einsteins
8580-084164(GE)   | Kleine Einsteins
8680-084167(SP)   | Little Einsteins
9780-084160(US)   | Disney's Little Einsteins: The Glass Slipper Ball
9880-084163(UK)   | Disney's Little Einsteins: The Glass Slipper Ball
9980-084164(GE)   | Disney's Kleine Einsteins: Der Glaspantoffel-Ball
10080-084167(SP)   | Little Einsteins de Disney: El baile del zapatito de cristal
87101-
8810280-084180(US)   | Mickey Mouse Clubhouse
10380-084182(NL)   | Mickey Mouse Clubhouse
8910480-084184(GE)   | Micky Maus Wunderhaus
10580-084186(PT)   | A Casa do Mickey Mouse (84196 on cart)
90106-
9110780-084200(US)   | Nascar Academy - Race Car Superstar
92108-
9310980-084220(US)   | Snow Park Challenge
11080-084222(NL)   | Wintersport Games
11180-084223(UK)   | Snow Park Challenge
9411280-084224(GE)   | Wintersport
95113-
9611480-084240(US)   | Ni Hao Kai Lan
9711580-084245(FR)   | Ni Hao Kai Lan
98116-
9911780-084260(US)   | My Pet Puppy (unreleased??)
11880-084262(NL)   | Mijn Puppy
10011980-084263(UK)   | My Pet Puppy
10112080-084264(GE)   | Mein erster Hund
10280-084267(SP)   | Dakota y su mascota
103121-
10412280-084280(US)   | Wild Waves
12380-084282(NL)   | Water-sport Games
10512480-084285(FR)   | Martin le Dauphin
106125-
10712680-084300(US)   | Soccer Challenge
12780-084303(UK)   | Football Challenge
10812880-084304(GE)   | Fußball Meisterschaft
10912980-084305(FR)   | Football Challenge
13080-084305(FR)   | Football Challenge (
13180-084307(SP)   | Campeonato de Futbol
110132-
11180-084320(US)   | Disney Fairies: Tinker Bell
13380-084320(US)   | Disney Fairies: TinkerBell
13480-084322(NL)   | TinkerBell
11213580-084323(UK)   | TinkerBell
11313680-084324(GE)   | TinkerBell
11413780-084325(FR)   | La fée Clochette
115138-
11613980-084340(US)   | Up!
14080-084342(NL)   | Up!
11714180-084344(GE)   | Oben
11880-084342(NL)   | Up!  (with motion?)
11914280-084345(FR)   | La-Haut
120143-
12114480-084360(US)   | Handy Manny
14580-084362(NL)   | Handy Manny
12214680-084363(UK)   | Handy Manny
12314780-084364(GE)   | Meister Manny's Werkzeugkiste
12414880-084365(FR)   | Manny Et Ses Outils
14980-084366(PT)   | Manny Maozinhas (84376 on cart)
12515080-084367(SP)   | Manny Manitas
126151-
12715280-084380(US)   | Winnie the Pooh - The Honey Hunt
12815380-084383(UK)   | Winnie the Pooh - The Honey Hunt
129         (ITA)  | Winnie the Pooh - e la caccia al miele
154         (IT)   | Winnie the Pooh - e la caccia al miele
13015580-084384(GE)   | Winnie Puuh - Die Honigjagd
13115680-084385(FR)   | Winnie Rourson - La Chasse au miel de Winnie
13280-084386(Port) | Winnie - ???????
15780-084386(PT)   | Winnie - Em Busca do Mel (84396? on cart)
13315880-084387(SP)   | Winnie the Pooh - En busca de la miel
134159-
13516080-084400(US)   | Cars - Rev it up in Radiator Springs
16180-084402(NL)   | Cars - Spektakel in Radiator Springs
13616280-084403(UK)   | Cars - Rev it up in Radiator Springs
13716380-084404(GE)   | Cars - Vollgas in Radiator Springs
13816480-084405(FR)   | Cars: Quatre Roues
16580-084406(PT)   | Cars: Aventura Em Radiator Springs (84416 on cart)
13916680-084407(SP)   | Cars - Acelera el Motor en Radiador Springs
140167-
14116880-084420(US)   | Toy Story 3
169         (IT)   | Toy Story 3 EAN 8033836704196
17080-084422(NL)   | Toy Story 3
14217180-084423(UK)   | Toy Story 3
14317280-084424(GE)   | Toy Story 3
144173-
14517480-084440(US)   | Monsters vs. Aliens
17580-084442(NL)   | Monsters vs. Aliens
14617680-084443(UK)   | Monsters vs. Aliens
14717780-084444(GE)   | Monsters vs. Aliens
17880-084445(FR)   | Monsters vs. Aliens
148179-
14918080-084460(US)   | Noddy (unreleased??)
15018180-084467(SP)   | Noddy - Detective por un Dia
151182-
15218380-084480(US)   | The Princess and the Frog
18480-084482(NL)   | Prinses en de Kikker (label in english)
15318580-084483(UK)   | The Princess and the Frog
15418680-084484(GE)   | Küss den Frosch
15518780-084485(FR)   | La Princesse Et La Grenouille
156188-
15780-084500(US)   | Shrek 4
18980-084500(US)   | Shrek Forever After
19080-084502(NL)   | Sjrek voor eeuwig en altijd
19180-084503(UK)   | Shrek Forever After
15819280-084504(GE)   | Für immer Shrek
15919380-084505(FR)   | Shrek 4 - Il Etait une Fin
160194-
r241525r241526
175209-
17621080-084620(US)   | <Unknown>
17721180-084624(GE)   | Findet Nemo - Nemos Unterwasserabenteuer
21280-084627(SP)   | Buscando a Nemo - Los Descubrimientos de Nemo
213-
21480-084640(US)   | <Unknown>
17821580-084644(GE)   | Spongebob Schwammkopf - Der Tag des Schwamms
17921680-084647(SP)   | Bob Epsonja - Un dia en la vida de una esponja
180-
217
218
219V.smile Smartbooks
18122080-089000(US)   | Spider-Man &amp; Friends Where is Hulk?
182221-
18322280-089020(US)   | Toy Story 2
184223-
18580-089040(US)   | Dora's Fix It Adventure
22480-089040(US)   | Dora's Fix It Adventure
22580-089045(FR)   | Dora's ??????
226
186227-
18722880-089060(US)   | Scooby-Doo! - A Night of Fright is no Delight
188229-
18923080-090000(US)   | Up
19023180-090004(GE)   | Oben
191232-
233
234Vtech ran out of UPC codes at 92999, these are wraparound
235
19223680-090020(US)   | Handy Manny
19323780-090024(GE)   | Meister Manny's Werkzeugkiste
19423880-090025(FR)   | Manny Et Ses Outils
195239-
19624080-090040(US)   | Wow Wow Wubbzy
241-
19724280-090144(GE)   | Mein erster Hund
19824380-090145(FR)   | Mon Toutou Tout Fou!
24480-090147(SP)   | Dakota y su mascota (EAN 3417766901475)
199245-
20024680-090160(US)   | <unknown> Should be Monsters vs. Aliens #80-084440
24780-090163(UK)   | Monsters vs. Aliens
20124880-090164(GE)   | Monsters vs. Aliens
20224980-090165(FR)   | Monsters Contre Aliens
203250-
r241525r241526
20725480-090200(US)   | <Unknown>
208255-
20925680-090220(US)   | <Unknown>
25780-090224(GE)   | Dolphis Wasser-abenteuer
210258-
21180-090224(GE)   | Dolphis Wasserabenteuer
212-
21325980-090260(US)   | Disney Fairies: Tinker Bell
214260-
21526180-092000(US)   | Alphabet Park Adventure (Red Haired Girl Version)
216-
21726280-092000-101(US)   | Alphabet Park Adventure (Blond Haired Girl Version)
26380-092002(NL)   | Alfabet Pretpark
26480-092003(UK)   | Alphabet Park Adventure (Blond Haired Girl Version)
21826580-092004(GE)   | Abenteuer im ABC Park
21926680-092005(FR)   | ABC Land Aventure
22026780-092007(SP)   | Aventuras en el Parque Alfabeto
r241525r241526
22427180-092025(FR)   | Les aventures du Le Petit Chaperon Rouge
225272-
22627380-092060(US)   | Winnie The Pooh: The Honey Hunt
27480-092062(NL)   | Winnie de Poeh (Tigger & Pooh?) - De winderwereld van Poeh
27580-092063(UK)   | Winnie The Pooh: The Honey Hunt
27680-092064(GE)   | Pooh - Die Honigjagd
22727780-092064(GE)   | Pooh - Die Honigjagd (ALT-no# on label)
22880-092064(GE)   | Pooh - Die Honigjagd (ALT-no# on label)
22927880-092064(GE)   | My Friends Tigger and Pooh - Die Honigjagd
23027980-092065(FR)   | Winnie Rourson - La Chasse au miel de Winnie
28080-092065-105(FR)   | Winnie Rourson - La Chasse au miel de Winnie (ALT)
28180-092066(PT)   | Winnie the Pooh - Em Busca Do Mel (92076 on cart)
28280-092067(SP)   | My Friends Tigger and Pooh - En Busca de la Miel
231283-
23228480-092080(US)   | Mickey Mouse - Mickey's Magical Adventures
233         (ITA)  | Topolino - Le Magiche Avventure di Topolino
28580-092080(NL)   | Mickey Mouse - De wonderwereld van Mickey
286         (IT)   | Topolino - Le Magiche Avventure di Topolino
23428780-092084(GE)   | Micky - Mickys magisches Abenteuer
23528880-092085(FR)   | Mickey - Mickey a la recherche de Pluto
23628980-092087(SP)   | Mickey - La Aventura Magica de Mickey
237290-
23829180-092100(US)   | The Lion King: Simba's Big Adventure
292         (IT)   | Il re leone - ???????
23929380-092102(NL)   | Leeuwenkoning - De wonderwereld van Simba
29480-092103(UK)   | The Lion King: Simba's Big Adventure
24029580-092104(GE)   | Der König der Löwen - Simbas großes Abenteuer
24129680-092105(FR)   | Roi Lion - Simba Decouvre la Jungle
24229780-092107(SP)   | Rey Leon - La Gran Aventura de Simba
243298-
24429980-092120(US)   | The Little Mermaid - Ariel's Majestic Journey
30080-092121(IT)   | Sirenetta - Ariel e le
24530180-092122(NL)   | De Kleine Zeemeermin - De Wunderwereld von Ariel
24630280-092124(GE)   | Arielle die Meerjungfrau - Arielles aufregendes Abenteuer
24730380-092125(FR)   | La Petite Sirene - Ariel devient une princesse
30480-092126(PT)   |
24830580-092127(SP)   | La Sirenita - El Vieje Fantástico de Ariel
249306-
25030780-092140(US)   | Spider-Man & Friends - Secret Missions
25130880-092140-101(US)   | Spider-Man & Friends - Secret Missions (ALT)
30980-092142(NL)   | Spider-Man Vrienden - Geheime Missies
25231080-092144(GE)   | Spider-Man & Freunde - Geheime Missionen
25331180-092146(FR)   | Spider-Man and ses amis - Missions Secretes
25431280-092146(SP)   | Spider-Man y Amigos - Misiones Secretas
255313-
25631480-092160(US)   | Scooby-Doo! - Funland Frenzy
25731580-092160-101(US)   | Scooby-Doo! - Funland Frenzy (ALT)
316         (IT)   | Scooby-Doo! - Avventura e Funland
31780-092162(NL)   | Scooby-Doo griezelen in het pretpark
25831880-092163(UK)   | Scooby-Doo! - Funland Frenzy
25980-092163-293(UK)   | Scooby-Doo! - Funland Frenzy (ALT)
31980-092163-293(UK)   | Scooby-Doo! - Funland Frenzy (Yellow, only Scooby on label might be motion version)
26032080-092167(SP)   | Scooby-Doo - Mysterio En El Parque
261321-
26232280-092180(US)   | Care Bears - A Lesson in Caring
r241525r241526
26832880-092205(FR)   | Aladdin - Les fabuleuses aventures d'Aladdin
26932980-092207(SP)   | Aladdin - El Maravilloso Mundo de Aladdin
270330-
27180-092220(US)   | Toy Story 2
33180-092220(US)   | Toy Story 2 - Operation Rescue Woody!
332         (IT)   | Toy Story 2 - Operazione: Salvataggio di Woody!
33380-092223(UK)   | Toy Story 2 - Operation Rescue Woody!
27233480-092224(GE)   | Toy Story 2 - Woodys Spannende Rettung
273         (ITA)  | Toy Story 2 - Operazione: Salvataggio di Woody!
27433580-092225(FR)   | Toy Story 2 - Buzz à la Rescousse
33680-092226(PT)   | Toy Story 2 - O Resgate de Woody (92236 on cart)
33780-092227(SP)   | Toy Story 2 - El Rescate De Woody
275338-
27633980-092240(US)   | Cinderella - Cinderella's Magic Wishes
340         (IT)   | Cenerentala - I desideri magici di Cenerentala
27734180-092242(NL)   | Assepoester - De wonderwereld van Assepoester
34280-092242-123(NL)   | Assepoester - De wonderwereld van Assepoester | 2007
27834380-092243(UK)   | Cinderella - Cinderella's Magic Wishes
27934480-092243-103(UK)   | Cinderella - Cinderella's Magic Wishes | 2007
280         (ITA)  | Cenerentala - I desideri magici di Cenerentala
28134580-092244(GE)   | Cinderella - Lernen im Märchenland | 2005
28234680-092244-104(GE)   | Cinderella - Lernen im Märchenland | 2007
34780-092244-204(GE)   | Cinderella - Lernen im Märchenland | 2007
28334880-092245-105(FR)   | Cendrillon - Le rêve enchanté de Cendrillon
34980-092246(PT)   |
28435080-092247(SP)   | La Cenicienta - Los sueños magicos de Cenicienta
285351-
28635280-092260(US)   | Elmo's World - Elmo's Big Discoveries
r241525r241526
28835480-092265(FR)   | Le Monde d'ELMO - Les Grandes Decouvertes D'Elmo
289355-
29035680-092280(US)   | Dora The Explorer - Dora's Fit-it Adventure
35780-092283(UK)   | Dora The Explorer - Dora's Fit-it Adventure
29135880-092280-101(US)   | Dora The Explorer - Dora's Fit-it Adventure (ALT)
29235980-092284(GE)   | Dora - Doras Reparatur-Abenteuer
36080-092286(PT)   | Dora - em busca das peças perdidas (cart#unknown)
29336180-092285(FR)   | Dora L'Exploratrice - Les aventures de Dora Apprentie Mecano
294362-
29536380-092300(US)   | Bob the Builder: Bob's Busy Day
29680-092303(UK)   | Bob the Builder: Bob's Busy Day (missing?)
36480-092303(UK)   | Bob the Builder: Bob's Busy Day
29736580-092303-103(UK)   | Bob the Builder: Bob's Busy Day (Yellow Label)
29836680-092304(GE)   | Bob der Baumeister - Achtung Baustelle
29936780-092304-104(GE)   | Bob der Baumeister - Bobs Spannender Arbeitstag
30036880-092305(FR)   | Bob Bricoleur: Les P'tits Chantiers de Bob
30136980-092305-105(FR)   |  Bob Bricoleur: Les P'tits Chantiers de Bob (ALT)
37080-092306(PT)   | Bob o Construtor - Um dia Atarefado (92316 on cart)
302371-
30337280-092320(US)   | The Wiggles - It's Wiggle Time!
30437380-092323(UK)   | The Wiggles - It's Wiggle Time!
305374-
30637580-092340(US)   | Thomas The Tank: Engines Working Together
30737680-092340-101(US)   | Thomas The Tank: Engines Working Together (ALT)
37780-092342(NL)   | Thomas de Stoomlocomotief'
30837880-092343(UK)   | Thomas and Friends: Engines Working Together
30937980-092343-103(UK)   | Thomas and Friends: Engines Working Together (ALT)
31038080-092343-203(UK)   | Thomas and Friends: Engines Working Together (ALT)
r241525r241526
31238280-092347(SP)   | Thomas and Friends: Juego de Aprendizaje
313383-
31438480-092360(US)   | Zayzoo My Alien Classmate
38580-092362(NL)   | Zayzoo - Mijn Buitenaardse Vriendje
31538680-092363(UK)   | Zayzoo My Alien Classmate <- ???
31638780-092365(FR)   | Zezou : Notre ami venu d'ailleurs
31738880-092367(SP)   | Zayzoo - Mi Amiga del Espacio
318389-
31939080-092360-101(US)   | Zayzoo - An Earth Adventure
32039180-092363(UK)   | Zayzoo - An Earth Adventure
32180-092363-101(UK)   | Zayzoo - An Earth Adventure
39280-092363-103(UK)   | Zayzoo - An Earth Adventure
32239380-092364(GE)   | Zayzoo Lernall
323394-
32439580-092380(US)   | Barney - The Land of Make Believe
r241525r241526
32739880-092400(US)   | Blue's Clues Collection Day
328399-
32940080-092420(US)   | Finding Nemo
40180-092422(NL)   | Finding Nemo - De wonderwereld van Nemo
33040280-092424(GE)   | Findet Nemo
33140380-092425(FR)   | Le Monde de Nemo - Nemo a la decourverte de l'ocean
332404-
33340580-092440(US)   | Spongebob Squarepants: A Day In The Life of A Sponge
40680-092442(NL)   | Spongebob Squarepants: Een Dag uit het Leven van een Spons
33440780-092443(UK)   | Spongebob Squarepants: A Day In The Life of A Sponge
33540880-092444(GE)   | Spongebob Schwammkopf - Der Tag des Schwamms
33640980-092445(FR)   | Bob L'eponge - Une journee dans la vie d'une eponge
41080-092447(SP)   | Bob Esponja - Un dia en la vida de una esponja
337411-
33841280-092460(US)   | Sesame Street : Bert and Ernie's Imagination Adventure
41380-092462(NL)   | Sesamstraat : Bert and Ernie's Fantasie Avontuur
33941480-092464(GE)   | Sesame Street : Ernie and Berts Fantastisches Abenteuer
34041580-092465(FR)   | 5, Rue Sesame : Les Aventures Imaginaires d'Ernest et Bert
41680-092467(SP)   | Barrio Sesamo : El Mundo Fantastico de Epy y Bias
341417-
34241880-092480(US)   | Batman: Gotham City Rescue
34380-09248?(ITA)  | Batman: Il Salvataggio di Gotham City
41980-09248?(IT)   | Batman: Il Salvataggio di Gotham City
34442080-092482(NL)   | Batman: De Redding van Gotham City
34542180-092483(UK)   | Batman: Gotham City Rescue
34642280-092484(GE)   | Batman - Rettung von Gotham City
34742380-092485(FR)   | Batman: Panique a Gotham City
348424-
34980-092500(US)   | Whiz Kid Wheels
42580-092500(US)   | Whiz Kid Wheels  (note to self.. no rider in this blue car)
42680-092502(NL)   | Truckie's Rekenrace
35042780-092503(UK)   | Whiz Kid Wheels
35180-092504(GE)   | Flitzers Schlaue Staedtetour (diff color!?)
35280-092505(FR)   | Mission Pilote
42880-092503(UK)   | Learning Wheels
42980-092504(GE)   | Flitzers Schlaue Staedtetour (diff color)
43080-092504(GE)   | Flitzers Schlaue Staedtetour (normal purple)
43180-092505(FR)   | Apprenti' Pilote  <- one of these is wrong
43280-092505(FR)   | Mission Pilote  <- one of these is wrong
43380-092506(PT)   | Conducio Daverido (SPELLING) (Cart# unknown)
35343480-092507(SP)   | Conduccion Divertida
354435-
35543680-092520(US)   | Spider-Man & Friends Doc Ock's Challenge
356         (ITA)  | Spider-Man la sfida del dottor Ock
437         (IT)   | Spider-Man la sfida del dottor Ock
43880-092523(UK)   | Spider-Man & Friends Doc Ock's Challenge
35743980-092524(GE)   | Spider-Man & Freunde Wettkampf im Space Labor
35844080-092525(FR)   | Spider-Man & ses amis Le defi du docteur Ock
35944180-092527(SP)   | Spider-man y Amigas - La Aventura Del Doctor Octopus
r241525r241526
36444680-092544(GE)   | Noddy
36544780-092545(FR)   | Oui-Oui - Detective d'un Jour
36644880-092545-105(FR)   | Oui-Oui - Detective d'un Jour (ALT)
44980-092546(PT)   | Noddy - detective por um dia (92556 on cart)
367450-
36845180-092560(US)   | <Unknown> should be 101 Dalmations (is in Vtech Master list)
36945280-092564(GE)   | 101 Dalmatiner
r241525r241526
37345680-092585(FR)   | Les Melodilous - Les explorateurs vikings
374457-
37545880-092600(US)   | Shrek - Dragon's Tale
45980-092602(NL)   | Shrek - Het verhaal van draakje
37646080-092604(GE)   | Shrek - Die Geschichte des Drachen
37746180-092605(FR)   | Shrek - Le Ehume de Dragonne
37846280-092607(SP)   | Shrek - El Cuento de la Dragona
r241525r241526
38046480-092620(US)   | Lil' Bratz - Friends, Fashion and Fun
381465-
38246680-092640(US)   | Superman - The Greatest Hero
46780-092642(NL)   | Superman - De Grootste Held
38346880-092643(UK)   | Superman - The Greatest Hero
38446980-092644(GE)   | Superman - Der Superheld
38547080-092645(FR)   | Superman - A la Rescousse
38647180-092647(SP)   | Superman - El Hombre de Acero
387472-
38847380-092660(US)   | Cars: Rev It Up In Radiator Springs
474         (IT)   | Cars: Motori Ruggenti
38947580-092662(NL)   | Cars: Spektakel in Radiator Springs
39047680-092663(UK)   | Cars: Rev It Up In Radiator Springs
39147780-092664(GE)   | Cars: Vollgas in Radiator Springs
392         (ITA)  | Cars: Motori Ruggenti
39347880-092665(FR)   | Cars: Quatre Roues
47980-092666(PT)   | Cars: Aventura em Radiator Springs (92676 on cart)
39448080-092667(SP)   | Cars: Acelera El Motor En Radiador Springs
395481-
39648280-092820(US)   | Soccer Challenge
48380-092822(NL)   | Voetbal
39748480-092823(UK)   | Football Challenge
39848580-092824(GE)   | Fußball Schule
486****
39948780-092831(IT)   | Football Club
488confirmed.. damn italians :)
489***
400490-
40149180-092840(US)   | Wall-E
49280-092842(NL)   | Wall-E
40249380-092843(UK)   | Wall-E
40349480-092844(GE)   | Wall-E
404         (ITA)  | Wall-E
495         (IT)   | Wall-E
49680-092847(SP)   | Wall-E         
405497-
40649880-092860(US)   | Shrek the Third: Arthur's School Day Adventure
499         (IT)   | Shrek Terzo L'Advventura Do Artu in un Giorno di Scuola
50080-092862(NL)   | Shrek de Derde - Arthurs Schooldag Avontuur
40750180-092863(UK)   | Shrek the Third: Arthur's School Day Adventure
408         (ITA)  | Shrek Terzo L'Advventura Do Artu in un Giorno do Scuola
40950280-092864(GE)   | Shrek der Dritte - Ein Spannender Schultag
41050380-092865(FR)   | Shrek Troisieme : L'aventure d'Arthur
41150480-092867(SP)   | Shrek Tercero - En Busca De Arturo
412505-
41350680-092880(US)   | Ratatouille - Remy's New Recipes
41480-092882(NL)   | Ratatouille
50780-092882(NL)   | Ratatouille - Remy's Nieuw Recept
41550880-092883(UK)   | Ratatouille - Remy's New Recipes
41650980-092884(GE)   | Ratatouille - Remys neue Rezepte
41751080-092884-104(GE)   | Ratatouille - Remys neue Rezepte (ALT)
r241525r241526
41951280-092887(SP)   | Ratatouille - Las recetas del Remy
420513-
42151480-092900(US)   | Go Diego Go - Save the Animal Familes!
51580-092902(NL)   | Go Diego Go - Red de dierenfamilies
42251680-092903(UK)   | Go Diego Go - Save the Animal Familes!
42351780-092905(FR)   | Go Diego! - A la rescousse des animaux!
424518-
42551980-092920(US)   | Cranium - Partyland Park
520
521****
52280-092924(GE)   | Freds Zahlen Rally  (note to self, guy in this blue car or wrong serial#)
523something wrong here
524****
52580-092924(GE)   | Cranium - Freizeit Park
42652680-092925(FR)   | Cranium - Le Parc D'attractions
427527-
42852880-092940(US)   | <Unknown> should be Mickey Mouse Clubhouse 80-084180
529         (IT)   | La Casa di Topolino
53080-092942(NL)   | Mickey Mouse Clubhause
42953180-092944(GE)   | Micky Maus Wunderhaus
430         (ITA)  | La Casa di Topolino
43153280-092945(FR)   | La Maison de Mickey
432533-
43353480-092960(US)   | Kung Fu Panda - Path of the Panda
53580-092962(NL)   | Kung Fu Panda - Het pad van de panda
43453680-092964(GE)   | Kung Fu Panda - Der Weg des Panda
53780-092965(FR)   | Kung Fu Panda - La ?????
435538-
43680-092980(US)   | Little Einsteins
53980-092980(US)   | Disney's Little Einsteins: The Glass Slipper Ball
54080-092983(UK)   | Disney's Little Einsteins: The Glass Slipper Ball
43754180-092984(GE)   | Kleine Einsteins
438542
439543
r241525r241526
445549
446550
44755180-093000(US)   | The Crystal Ball Adventures
55280-093004(GE)   | Das zauberhafte Märchenabenteuer
44855380-093005(FR)   | L'aventure enchantée
44955480-093007(SP)   | El Castillo de las Princesas
450555-
45180-093020(US)   | The Incredibles - Mission Incredibles
55680-093020(US)   | The Incredibles - Mission Incredible
55780-093023(UK)   | The Incredibles - Mission Incredible
55880-093024(GE)   | Die Unglaublichen - unglaublicher Mission
55980-093027(SP)   | Los Increibles - Mision Increible
452560-
45356180-093040(US)   | SpongeBob - Idea Sponge
45456280-093044(GE)   | SpongeBob - Ein Schwamm voller Ideen
455563-
45656480-093060(US)   | The Amazing Spider-Man - Countdown to Doom
56580-093064(GE)   | Spiderman - Angriff der Superschurken
45756680-093065(FR)   | Spider-Man - Course-poursuite à Manhattan
45856780-093067(SP)   | El Asombroso Spider-Man - Persecucion en la Cuidad
459568-
46056980-093080(US)   | Scooby-Doo! - Ancient Adventure
57080-093083(UK)   | Scooby-Doo! - Ancient Adventure
46157180-093085(FR)   | Scooby-Doo! - Les Civilisations Perdues
57280-093087(SP)   | Scooby-Doo - Viaje al Pasdao
462573-
46357480-093100(US)   | Cars - In The Fast Lane
46457580-093104(GE)   | Cars - Auf der Überholspur
46557680-093105(FR)   | Cars - A Fond la Caisse!
57780-093107(SP)   | Cars - El Carril Rapido
466578-
46757980-093120(US)   | Wacky Race on Jumpin' Bean Island
46858080-093124(GE)   | Das verrückte Rennen auf der Hüpf-Bohnen-Insel
469581-
47080-093140(US)   | Shrek 3
58280-093140(US)   | Shrek The Third - The Search for Arthur
58380-093143(UK)   | Shrek The Third - The Search for Arthur
47158480-093144(GE)   | Shrek - Der Dritte
47258580-093147(SP)   | Shrek Tercero - Donde esta Arturo?
473586-
r241525r241526
47959280-093204(GE)   | Multisports
480593-
48159480-093220(US)   | National Geographic Kids
595-
59680-093600(US)   | <Unknown>
59780-093604(GE)   | Multisports
482598
483599
484V.Baby
600V.Smile Baby
485601
486-80-099000(US)   | Learn and Discover Home (white background on title) (the packin)
60280-099000(US)   | Learn and Discover Home (white background on title) (the packin)
48760380-099000(US)   | Learn and Discover Home (green background on title) (standalone)
488-80-099020(US)   | Pooh's Hundred Acre Wood Adventure
489-80-099040(US)   | Baby Einstein - World of Discoveries
60480-099002(NL)   | Dierenhuis
60580-099003(UK)   | Learn and Discover Home (white background on title) (the packin)
60680-099004(GE)   | Meine kleinen Tierfreunde (Explore and Learn Home on label)
60780-099005(FR)   | La Maison des animaux
608-
60980-099020(US)   | Pooh's Hundred Acre Wood Adventure
61080-099022(NL)   | Poeh's Honderd Bunderbos Avontuur
61180-099023(UK)   | Pooh's Hundred Acre Wood Adventure
612-
61380-099040(US)   | Baby Einstein - World of Discoveries
49061480-099040(US)   | Baby Einstein - World of Discoveries (no # on front label)
491-80-099060(US)   | A Day On The Farm
49280-099065(FR)    | Un jour a la ferme
61580-099043(UK)   | Baby Einstein - World of Discoveries
61680-099045(FR)   | Baby Einstein - Un Monde de decouvertes
617
618-
61980-099060(US)   | A Day On The Farm
62080-099063(UK)   | A Day On The Farm
62180-099064(GE)   | Mein erster Bauernhof
62280-099065(FR)   | Un jour a la ferme
623-
49362480-099080(US)   | <Unknown>
494-80-099100(US)   | Noah's Ark Animal Adventure
625-
62680-099100(US)   | Noah's Ark Animal Adventure
62780-099102(NL)   | De ark van Noach
62880-099103(UK)   | Noah's Ark Animal Adventure
49562980-099105(FR)   | L'arche de Noe - L'aventure des animaux
496-80-099120(US)   | Barney
497-80-099140(US)   | Teletubbies
630-
63180-099120(US)   | Barney
632-
63380-099140(US)   | Teletubbies
63480-099142(NL)   | Teletubbies
49863580-099143(UK)   | Teletubbies
636-
49963780-099160(US)   | Discovery with Baby Mickey and Friends
500-80-099180(US)   | Bailey Goes To Town (Included Bailey Plush Bear Controller)
501-80-099200(US)   | Mother Goose
502-80-099220(US)   | Care Bears Play Day
503-80-099240(US)   | Backyardigans: Big Backyard Adventures
63880-099163(UK)   | Discovery with Baby Mickey and Friends
63980-099165(UK)   | Les decouvertes de Mickey et ses amis
640-
64180-099180(US)   | Bailey Goes To Town (Included Bailey Plush Bear Controller)
64280-099183(UK)   | Bailey Goes To Town (Included Bailey Plush Bear Controller)
643-
64480-099200(US)   | Mother Goose
645-
64680-099220(US)   | Care Bears Play Day
647-
64880-099240(US)   | Backyardigans: Big Backyard Adventures
504649
505-80-220000(US)   | The World of Eric Carle - The Very Hungry Caterpillar
506-80-107100-001(US) | Meet Me at the Zoo (Orange, V.Baby V2 packin)
507650
651/*V.Baby (USB)
65280-107100-001(US) | Meet Me at the Zoo (Orange, V.Baby packin)
65380-220000(US)   | The World of Eric Carle - The Very Hungry Caterpillar
65480-220600(US)   | Backyardigans
65580-220700(US)   | Noah's Ark - Animal Adventures
65680-220800(US)   | Mother Goose
657*/
508658
659
509660V.Reader
510661
51166280-280000(US)   | Animated E-Book Cartridge - Shrek's Vacation
trunk/src/emu/bus/isa/hdc.c
r241525r241526
149149//**************************************************************************
150150
151151const device_type ISA8_HDC = &device_creator<isa8_hdc_device>;
152const device_type ISA8_HDC_EC1841 = &device_creator<isa8_hdc_ec1841_device>;
153152
154153//-------------------------------------------------
155154//  machine_config_additions - device-specific
r241525r241526
191190      device_t(mconfig, ISA8_HDC, "Fixed Disk Controller Card", tag, owner, clock, "hdc", __FILE__),
192191      device_isa8_card_interface(mconfig, *this)
193192{
194   m_type = STANDARD;
195193}
196194
197isa8_hdc_device::isa8_hdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
198      device_t(mconfig, type, name, tag, owner, clock, shortname, source),
199      device_isa8_card_interface(mconfig, *this)
200{
201}
202
203isa8_hdc_ec1841_device::isa8_hdc_ec1841_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
204      isa8_hdc_device( mconfig, ISA8_HDC_EC1841, "EC1841 HDC", tag, owner, clock, "hdc_ec1841", __FILE__)
205{
206   m_type = EC1841;
207}
208
209195//-------------------------------------------------
210196//  device_start - device-specific startup
211197//-------------------------------------------------
r241525r241526
764750
765751      *buffer_ptr++ = data;
766752      // XXX ec1841 wants this
767      if (buffer[0] == CMD_SETPARAM && data_cnt == 9 && (m_type == EC1841)) {
753      if (buffer[0] == CMD_SETPARAM && data_cnt == 9) {
768754         status &= ~STA_READY;
769755      } else {
770756         status |= STA_READY;
trunk/src/emu/bus/isa/hdc.h
r241525r241526
2525public:
2626      // construction/destruction
2727      isa8_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
28      isa8_hdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
2928
3029      // optional information overrides
3130      virtual machine_config_constructor device_mconfig_additions() const;
r241525r241526
9089      void get_drive();
9190      void get_chsn();
9291      int test_ready();
93
94      enum {
95         STANDARD,
96         EC1841
97      };
98      int m_type;
9992public:
10093      void hdc_command();
10194      void pc_hdc_data_w(int data);
r241525r241526
108101};
109102
110103
111class isa8_hdc_ec1841_device : public isa8_hdc_device
112{
113public:
114   isa8_hdc_ec1841_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
115};
116
117104// device type definition
118105extern const device_type ISA8_HDC;
119extern const device_type ISA8_HDC_EC1841;
120106
121107#endif  /* ISA_HDC_H */
trunk/src/emu/bus/isa/xsu_cards.c
r241525r241526
4848   SLOT_INTERFACE("ec1841.0004", ISA8_EC1841_0004)   // BSC-like serial ports + parallel port
4949*/
5050   SLOT_INTERFACE("mda", ISA8_MDA)
51   SLOT_INTERFACE("hdc", ISA8_HDC_EC1841)
51   SLOT_INTERFACE("hdc", ISA8_HDC)
5252   SLOT_INTERFACE("pccom", ISA8_COM)
5353   SLOT_INTERFACE("pclpt", ISA8_LPT)
5454   SLOT_INTERFACE("xtide", ISA8_XTIDE)
trunk/src/emu/cpu/i386/i386.c
r241525r241526
687687   UINT16 segment;
688688   int entry = irq * (PROTECTED_MODE ? 8 : 4);
689689   int SetRPL = 0;
690   m_lock = false;
691690
692691   if( !(PROTECTED_MODE) )
693692   {
r241525r241526
28122811void i386_device::report_invalid_opcode()
28132812{
28142813#ifndef DEBUG_MISSING_OPCODE
2815   logerror("i386: Invalid opcode %02X at %08X %s\n", m_opcode, m_pc - 1, m_lock ? "with lock" : "");
2814   logerror("i386: Invalid opcode %02X at %08X\n", m_opcode, m_pc - 1);
28162815#else
28172816   logerror("i386: Invalid opcode");
28182817   for (int a = 0; a < m_opcode_bytes_length; a++)
r241525r241526
28462845void i386_device::i386_decode_opcode()
28472846{
28482847   m_opcode = FETCH();
2849
2850   if(m_lock && !m_lock_table[0][m_opcode])
2851      return i386_invalid();
2852
28532848   if( m_operand_size )
28542849      (this->*m_opcode_table1_32[m_opcode])();
28552850   else
r241525r241526
28602855void i386_device::i386_decode_two_byte()
28612856{
28622857   m_opcode = FETCH();
2863
2864   if(m_lock && !m_lock_table[1][m_opcode])
2865      return i386_invalid();
2866
28672858   if( m_operand_size )
28682859      (this->*m_opcode_table2_32[m_opcode])();
28692860   else
r241525r241526
31873178   save_item(NAME(m_nmi_masked));
31883179   save_item(NAME(m_nmi_latched));
31893180   save_item(NAME(m_smbase));
3190   save_item(NAME(m_lock));
31913181   machine().save().register_postload(save_prepost_delegate(FUNC(i386_device::i386_postload), this));
31923182
31933183   m_smiact.resolve_safe();
r241525r241526
34023392      m_opcode_table3f2_32[i] = &i386_device::i386_invalid;
34033393      m_opcode_table3f3_16[i] = &i386_device::i386_invalid;
34043394      m_opcode_table3f3_32[i] = &i386_device::i386_invalid;
3405      m_lock_table[0][i] = false;
3406      m_lock_table[1][i] = false;
34073395   }
34083396
34093397   for (i=0; i < sizeof(s_x86_opcode_table)/sizeof(X86_OPCODE); i++)
r241525r241526
34183406            m_opcode_table2_16[op->opcode] = op->handler16;
34193407            m_opcode_table366_32[op->opcode] = op->handler32;
34203408            m_opcode_table366_16[op->opcode] = op->handler16;
3421            m_lock_table[1][op->opcode] = op->lockable;
34223409         }
34233410         else if (op->flags & OP_3BYTE66)
34243411         {
r241525r241526
34393426         {
34403427            m_opcode_table1_32[op->opcode] = op->handler32;
34413428            m_opcode_table1_16[op->opcode] = op->handler16;
3442            m_lock_table[0][op->opcode] = op->lockable;
34433429         }
34443430      }
34453431   }
r241525r241526
35453531   m_smi_latched = false;
35463532   m_nmi_masked = false;
35473533   m_nmi_latched = false;
3548   m_lock = false;
35493534
35503535   m_a20_mask = ~0;
35513536
r241525r241526
37693754            m_ext = 1;
37703755            i386_trap(1,0,0);
37713756         }
3772         if(m_lock && (m_opcode != 0xf0))
3773            m_lock = false;
3757
37743758      }
37753759      catch(UINT64 e)
37763760      {
trunk/src/emu/cpu/i386/i386.h
r241525r241526
138138      UINT32 flags;
139139      i386_op_func handler16;
140140      i386_op_func handler32;
141      bool lockable;
142141   };
143142   static const X86_OPCODE s_x86_opcode_table[];
144143
r241525r241526
245244   i386_op_func m_opcode_table3f3_16[256];
246245   i386_op_func m_opcode_table3f3_32[256];
247246
248   bool m_lock_table[2][256];
249
250247   UINT8 *m_cycle_table_pm;
251248   UINT8 *m_cycle_table_rm;
252249
r241525r241526
259256   bool m_nmi_latched;
260257   UINT32 m_smbase;
261258   devcb_write_line m_smiact;
262   bool m_lock;
263259
264260   // bytes in current opcode, debug only
265261   UINT8 m_opcode_bytes[16];
trunk/src/emu/cpu/i386/i386ops.h
r241525r241526
1818const i386_device::X86_OPCODE i386_device::s_x86_opcode_table[] =
1919{
2020//  Opcode      Flags                       16-bit handler                  32-bit handler
21   { 0x00,     OP_I386,                    &i386_device::i386_add_rm8_r8,             &i386_device::i386_add_rm8_r8,         true },
22   { 0x01,     OP_I386,                    &i386_device::i386_add_rm16_r16,           &i386_device::i386_add_rm32_r32,       true },
23   { 0x02,     OP_I386,                    &i386_device::i386_add_r8_rm8,             &i386_device::i386_add_r8_rm8,         false},
24   { 0x03,     OP_I386,                    &i386_device::i386_add_r16_rm16,           &i386_device::i386_add_r32_rm32,       false},
25   { 0x04,     OP_I386,                    &i386_device::i386_add_al_i8,              &i386_device::i386_add_al_i8,          false},
26   { 0x05,     OP_I386,                    &i386_device::i386_add_ax_i16,             &i386_device::i386_add_eax_i32,        false},
27   { 0x06,     OP_I386,                    &i386_device::i386_push_es16,              &i386_device::i386_push_es32,          false},
28   { 0x07,     OP_I386,                    &i386_device::i386_pop_es16,               &i386_device::i386_pop_es32,           false},
29   { 0x08,     OP_I386,                    &i386_device::i386_or_rm8_r8,              &i386_device::i386_or_rm8_r8,          true },
30   { 0x09,     OP_I386,                    &i386_device::i386_or_rm16_r16,            &i386_device::i386_or_rm32_r32,        true },
31   { 0x0A,     OP_I386,                    &i386_device::i386_or_r8_rm8,              &i386_device::i386_or_r8_rm8,          false},
32   { 0x0B,     OP_I386,                    &i386_device::i386_or_r16_rm16,            &i386_device::i386_or_r32_rm32,        false},
33   { 0x0C,     OP_I386,                    &i386_device::i386_or_al_i8,               &i386_device::i386_or_al_i8,           false},
34   { 0x0D,     OP_I386,                    &i386_device::i386_or_ax_i16,              &i386_device::i386_or_eax_i32,         false},
35   { 0x0E,     OP_I386,                    &i386_device::i386_push_cs16,              &i386_device::i386_push_cs32,          false},
36   { 0x0F,     OP_I386,                    &i386_device::i386_decode_two_byte,        &i386_device::i386_decode_two_byte,    true },
37   { 0x10,     OP_I386,                    &i386_device::i386_adc_rm8_r8,             &i386_device::i386_adc_rm8_r8,         true },
38   { 0x11,     OP_I386,                    &i386_device::i386_adc_rm16_r16,           &i386_device::i386_adc_rm32_r32,       true },
39   { 0x12,     OP_I386,                    &i386_device::i386_adc_r8_rm8,             &i386_device::i386_adc_r8_rm8,         false},
40   { 0x13,     OP_I386,                    &i386_device::i386_adc_r16_rm16,           &i386_device::i386_adc_r32_rm32,       false},
41   { 0x14,     OP_I386,                    &i386_device::i386_adc_al_i8,              &i386_device::i386_adc_al_i8,          false},
42   { 0x15,     OP_I386,                    &i386_device::i386_adc_ax_i16,             &i386_device::i386_adc_eax_i32,        false},
43   { 0x16,     OP_I386,                    &i386_device::i386_push_ss16,              &i386_device::i386_push_ss32,          false},
44   { 0x17,     OP_I386,                    &i386_device::i386_pop_ss16,               &i386_device::i386_pop_ss32,           false},
45   { 0x18,     OP_I386,                    &i386_device::i386_sbb_rm8_r8,             &i386_device::i386_sbb_rm8_r8,         true },
46   { 0x19,     OP_I386,                    &i386_device::i386_sbb_rm16_r16,           &i386_device::i386_sbb_rm32_r32,       true },
47   { 0x1A,     OP_I386,                    &i386_device::i386_sbb_r8_rm8,             &i386_device::i386_sbb_r8_rm8,         false},
48   { 0x1B,     OP_I386,                    &i386_device::i386_sbb_r16_rm16,           &i386_device::i386_sbb_r32_rm32,       false},
49   { 0x1C,     OP_I386,                    &i386_device::i386_sbb_al_i8,              &i386_device::i386_sbb_al_i8,          false},
50   { 0x1D,     OP_I386,                    &i386_device::i386_sbb_ax_i16,             &i386_device::i386_sbb_eax_i32,        false},
51   { 0x1E,     OP_I386,                    &i386_device::i386_push_ds16,              &i386_device::i386_push_ds32,          false},
52   { 0x1F,     OP_I386,                    &i386_device::i386_pop_ds16,               &i386_device::i386_pop_ds32,           false},
53   { 0x20,     OP_I386,                    &i386_device::i386_and_rm8_r8,             &i386_device::i386_and_rm8_r8,         true },
54   { 0x21,     OP_I386,                    &i386_device::i386_and_rm16_r16,           &i386_device::i386_and_rm32_r32,       true },
55   { 0x22,     OP_I386,                    &i386_device::i386_and_r8_rm8,             &i386_device::i386_and_r8_rm8,         false},
56   { 0x23,     OP_I386,                    &i386_device::i386_and_r16_rm16,           &i386_device::i386_and_r32_rm32,       false},
57   { 0x24,     OP_I386,                    &i386_device::i386_and_al_i8,              &i386_device::i386_and_al_i8,          false},
58   { 0x25,     OP_I386,                    &i386_device::i386_and_ax_i16,             &i386_device::i386_and_eax_i32,        false},
59   { 0x26,     OP_I386,                    &i386_device::i386_segment_ES,             &i386_device::i386_segment_ES,         false},
60   { 0x27,     OP_I386,                    &i386_device::i386_daa,                    &i386_device::i386_daa,                false},
61   { 0x28,     OP_I386,                    &i386_device::i386_sub_rm8_r8,             &i386_device::i386_sub_rm8_r8,         true },
62   { 0x29,     OP_I386,                    &i386_device::i386_sub_rm16_r16,           &i386_device::i386_sub_rm32_r32,       true },
63   { 0x2A,     OP_I386,                    &i386_device::i386_sub_r8_rm8,             &i386_device::i386_sub_r8_rm8,         false},
64   { 0x2B,     OP_I386,                    &i386_device::i386_sub_r16_rm16,           &i386_device::i386_sub_r32_rm32,       false},
65   { 0x2C,     OP_I386,                    &i386_device::i386_sub_al_i8,              &i386_device::i386_sub_al_i8,          false},
66   { 0x2D,     OP_I386,                    &i386_device::i386_sub_ax_i16,             &i386_device::i386_sub_eax_i32,        false},
67   { 0x2E,     OP_I386,                    &i386_device::i386_segment_CS,             &i386_device::i386_segment_CS,         false},
68   { 0x2F,     OP_I386,                    &i386_device::i386_das,                    &i386_device::i386_das,                false},
69   { 0x30,     OP_I386,                    &i386_device::i386_xor_rm8_r8,             &i386_device::i386_xor_rm8_r8,         true },
70   { 0x31,     OP_I386,                    &i386_device::i386_xor_rm16_r16,           &i386_device::i386_xor_rm32_r32,       true },
71   { 0x32,     OP_I386,                    &i386_device::i386_xor_r8_rm8,             &i386_device::i386_xor_r8_rm8,         false},
72   { 0x33,     OP_I386,                    &i386_device::i386_xor_r16_rm16,           &i386_device::i386_xor_r32_rm32,       false},
73   { 0x34,     OP_I386,                    &i386_device::i386_xor_al_i8,              &i386_device::i386_xor_al_i8,          false},
74   { 0x35,     OP_I386,                    &i386_device::i386_xor_ax_i16,             &i386_device::i386_xor_eax_i32,        false},
75   { 0x36,     OP_I386,                    &i386_device::i386_segment_SS,             &i386_device::i386_segment_SS,         false},
76   { 0x37,     OP_I386,                    &i386_device::i386_aaa,                    &i386_device::i386_aaa,                false},
77   { 0x38,     OP_I386,                    &i386_device::i386_cmp_rm8_r8,             &i386_device::i386_cmp_rm8_r8,         false},
78   { 0x39,     OP_I386,                    &i386_device::i386_cmp_rm16_r16,           &i386_device::i386_cmp_rm32_r32,       false},
79   { 0x3A,     OP_I386,                    &i386_device::i386_cmp_r8_rm8,             &i386_device::i386_cmp_r8_rm8,         false},
80   { 0x3B,     OP_I386,                    &i386_device::i386_cmp_r16_rm16,           &i386_device::i386_cmp_r32_rm32,       false},
81   { 0x3C,     OP_I386,                    &i386_device::i386_cmp_al_i8,              &i386_device::i386_cmp_al_i8,          false},
82   { 0x3D,     OP_I386,                    &i386_device::i386_cmp_ax_i16,             &i386_device::i386_cmp_eax_i32,        false},
83   { 0x3E,     OP_I386,                    &i386_device::i386_segment_DS,             &i386_device::i386_segment_DS,         false},
84   { 0x3F,     OP_I386,                    &i386_device::i386_aas,                    &i386_device::i386_aas,                false},
85   { 0x40,     OP_I386,                    &i386_device::i386_inc_ax,                 &i386_device::i386_inc_eax,            false},
86   { 0x41,     OP_I386,                    &i386_device::i386_inc_cx,                 &i386_device::i386_inc_ecx,            false},
87   { 0x42,     OP_I386,                    &i386_device::i386_inc_dx,                 &i386_device::i386_inc_edx,            false},
88   { 0x43,     OP_I386,                    &i386_device::i386_inc_bx,                 &i386_device::i386_inc_ebx,            false},
89   { 0x44,     OP_I386,                    &i386_device::i386_inc_sp,                 &i386_device::i386_inc_esp,            false},
90   { 0x45,     OP_I386,                    &i386_device::i386_inc_bp,                 &i386_device::i386_inc_ebp,            false},
91   { 0x46,     OP_I386,                    &i386_device::i386_inc_si,                 &i386_device::i386_inc_esi,            false},
92   { 0x47,     OP_I386,                    &i386_device::i386_inc_di,                 &i386_device::i386_inc_edi,            false},
93   { 0x48,     OP_I386,                    &i386_device::i386_dec_ax,                 &i386_device::i386_dec_eax,            false},
94   { 0x49,     OP_I386,                    &i386_device::i386_dec_cx,                 &i386_device::i386_dec_ecx,            false},
95   { 0x4A,     OP_I386,                    &i386_device::i386_dec_dx,                 &i386_device::i386_dec_edx,            false},
96   { 0x4B,     OP_I386,                    &i386_device::i386_dec_bx,                 &i386_device::i386_dec_ebx,            false},
97   { 0x4C,     OP_I386,                    &i386_device::i386_dec_sp,                 &i386_device::i386_dec_esp,            false},
98   { 0x4D,     OP_I386,                    &i386_device::i386_dec_bp,                 &i386_device::i386_dec_ebp,            false},
99   { 0x4E,     OP_I386,                    &i386_device::i386_dec_si,                 &i386_device::i386_dec_esi,            false},
100   { 0x4F,     OP_I386,                    &i386_device::i386_dec_di,                 &i386_device::i386_dec_edi,            false},
101   { 0x50,     OP_I386,                    &i386_device::i386_push_ax,                &i386_device::i386_push_eax,           false},
102   { 0x51,     OP_I386,                    &i386_device::i386_push_cx,                &i386_device::i386_push_ecx,           false},
103   { 0x52,     OP_I386,                    &i386_device::i386_push_dx,                &i386_device::i386_push_edx,           false},
104   { 0x53,     OP_I386,                    &i386_device::i386_push_bx,                &i386_device::i386_push_ebx,           false},
105   { 0x54,     OP_I386,                    &i386_device::i386_push_sp,                &i386_device::i386_push_esp,           false},
106   { 0x55,     OP_I386,                    &i386_device::i386_push_bp,                &i386_device::i386_push_ebp,           false},
107   { 0x56,     OP_I386,                    &i386_device::i386_push_si,                &i386_device::i386_push_esi,           false},
108   { 0x57,     OP_I386,                    &i386_device::i386_push_di,                &i386_device::i386_push_edi,           false},
109   { 0x58,     OP_I386,                    &i386_device::i386_pop_ax,                 &i386_device::i386_pop_eax,            false},
110   { 0x59,     OP_I386,                    &i386_device::i386_pop_cx,                 &i386_device::i386_pop_ecx,            false},
111   { 0x5A,     OP_I386,                    &i386_device::i386_pop_dx,                 &i386_device::i386_pop_edx,            false},
112   { 0x5B,     OP_I386,                    &i386_device::i386_pop_bx,                 &i386_device::i386_pop_ebx,            false},
113   { 0x5C,     OP_I386,                    &i386_device::i386_pop_sp,                 &i386_device::i386_pop_esp,            false},
114   { 0x5D,     OP_I386,                    &i386_device::i386_pop_bp,                 &i386_device::i386_pop_ebp,            false},
115   { 0x5E,     OP_I386,                    &i386_device::i386_pop_si,                 &i386_device::i386_pop_esi,            false},
116   { 0x5F,     OP_I386,                    &i386_device::i386_pop_di,                 &i386_device::i386_pop_edi,            false},
117   { 0x60,     OP_I386,                    &i386_device::i386_pusha,                  &i386_device::i386_pushad,             false},
118   { 0x61,     OP_I386,                    &i386_device::i386_popa,                   &i386_device::i386_popad,              false},
119   { 0x62,     OP_I386,                    &i386_device::i386_bound_r16_m16_m16,      &i386_device::i386_bound_r32_m32_m32,  false},
120   { 0x63,     OP_I386,                    &i386_device::i386_arpl,                   &i386_device::i386_arpl,               false},
121   { 0x64,     OP_I386,                    &i386_device::i386_segment_FS,             &i386_device::i386_segment_FS,         false},
122   { 0x65,     OP_I386,                    &i386_device::i386_segment_GS,             &i386_device::i386_segment_GS,         false},
123   { 0x66,     OP_I386,                    &i386_device::i386_operand_size,           &i386_device::i386_operand_size,       false},
124   { 0x67,     OP_I386,                    &i386_device::i386_address_size,           &i386_device::i386_address_size,       false},
125   { 0x68,     OP_I386,                    &i386_device::i386_push_i16,               &i386_device::i386_push_i32,           false},
126   { 0x69,     OP_I386,                    &i386_device::i386_imul_r16_rm16_i16,      &i386_device::i386_imul_r32_rm32_i32,  false},
127   { 0x6A,     OP_I386,                    &i386_device::i386_push_i8,                &i386_device::i386_push_i8,            false},
128   { 0x6B,     OP_I386,                    &i386_device::i386_imul_r16_rm16_i8,       &i386_device::i386_imul_r32_rm32_i8,   false},
129   { 0x6C,     OP_I386,                    &i386_device::i386_insb,                   &i386_device::i386_insb,               false},
130   { 0x6D,     OP_I386,                    &i386_device::i386_insw,                   &i386_device::i386_insd,               false},
131   { 0x6E,     OP_I386,                    &i386_device::i386_outsb,                  &i386_device::i386_outsb,              false},
132   { 0x6F,     OP_I386,                    &i386_device::i386_outsw,                  &i386_device::i386_outsd,              false},
133   { 0x70,     OP_I386,                    &i386_device::i386_jo_rel8,                &i386_device::i386_jo_rel8,            false},
134   { 0x71,     OP_I386,                    &i386_device::i386_jno_rel8,               &i386_device::i386_jno_rel8,           false},
135   { 0x72,     OP_I386,                    &i386_device::i386_jc_rel8,                &i386_device::i386_jc_rel8,            false},
136   { 0x73,     OP_I386,                    &i386_device::i386_jnc_rel8,               &i386_device::i386_jnc_rel8,           false},
137   { 0x74,     OP_I386,                    &i386_device::i386_jz_rel8,                &i386_device::i386_jz_rel8,            false},
138   { 0x75,     OP_I386,                    &i386_device::i386_jnz_rel8,               &i386_device::i386_jnz_rel8,           false},
139   { 0x76,     OP_I386,                    &i386_device::i386_jbe_rel8,               &i386_device::i386_jbe_rel8,           false},
140   { 0x77,     OP_I386,                    &i386_device::i386_ja_rel8,                &i386_device::i386_ja_rel8,            false},
141   { 0x78,     OP_I386,                    &i386_device::i386_js_rel8,                &i386_device::i386_js_rel8,            false},
142   { 0x79,     OP_I386,                    &i386_device::i386_jns_rel8,               &i386_device::i386_jns_rel8,           false},
143   { 0x7A,     OP_I386,                    &i386_device::i386_jp_rel8,                &i386_device::i386_jp_rel8,            false},
144   { 0x7B,     OP_I386,                    &i386_device::i386_jnp_rel8,               &i386_device::i386_jnp_rel8,           false},
145   { 0x7C,     OP_I386,                    &i386_device::i386_jl_rel8,                &i386_device::i386_jl_rel8,            false},
146   { 0x7D,     OP_I386,                    &i386_device::i386_jge_rel8,               &i386_device::i386_jge_rel8,           false},
147   { 0x7E,     OP_I386,                    &i386_device::i386_jle_rel8,               &i386_device::i386_jle_rel8,           false},
148   { 0x7F,     OP_I386,                    &i386_device::i386_jg_rel8,                &i386_device::i386_jg_rel8,            false},
149   { 0x80,     OP_I386,                    &i386_device::i386_group80_8,              &i386_device::i386_group80_8,          true },
150   { 0x81,     OP_I386,                    &i386_device::i386_group81_16,             &i386_device::i386_group81_32,         true },
151   { 0x82,     OP_I386,                    &i386_device::i386_group80_8,              &i386_device::i386_group80_8,          true },
152   { 0x83,     OP_I386,                    &i386_device::i386_group83_16,             &i386_device::i386_group83_32,         true },
153   { 0x84,     OP_I386,                    &i386_device::i386_test_rm8_r8,            &i386_device::i386_test_rm8_r8,        false},
154   { 0x85,     OP_I386,                    &i386_device::i386_test_rm16_r16,          &i386_device::i386_test_rm32_r32,      false},
155   { 0x86,     OP_I386,                    &i386_device::i386_xchg_r8_rm8,            &i386_device::i386_xchg_r8_rm8,        true },
156   { 0x87,     OP_I386,                    &i386_device::i386_xchg_r16_rm16,          &i386_device::i386_xchg_r32_rm32,      true },
157   { 0x88,     OP_I386,                    &i386_device::i386_mov_rm8_r8,             &i386_device::i386_mov_rm8_r8,         false},
158   { 0x89,     OP_I386,                    &i386_device::i386_mov_rm16_r16,           &i386_device::i386_mov_rm32_r32,       false},
159   { 0x8A,     OP_I386,                    &i386_device::i386_mov_r8_rm8,             &i386_device::i386_mov_r8_rm8,         false},
160   { 0x8B,     OP_I386,                    &i386_device::i386_mov_r16_rm16,           &i386_device::i386_mov_r32_rm32,       false},
161   { 0x8C,     OP_I386,                    &i386_device::i386_mov_rm16_sreg,          &i386_device::i386_mov_rm16_sreg,      false},
162   { 0x8D,     OP_I386,                    &i386_device::i386_lea16,                  &i386_device::i386_lea32,              false},
163   { 0x8E,     OP_I386,                    &i386_device::i386_mov_sreg_rm16,          &i386_device::i386_mov_sreg_rm16,      false},
164   { 0x8F,     OP_I386,                    &i386_device::i386_pop_rm16,               &i386_device::i386_pop_rm32,           false},
165   { 0x90,     OP_I386,                    &i386_device::i386_nop,                    &i386_device::i386_nop,                false},
166   { 0x91,     OP_I386,                    &i386_device::i386_xchg_ax_cx,             &i386_device::i386_xchg_eax_ecx,       false},
167   { 0x92,     OP_I386,                    &i386_device::i386_xchg_ax_dx,             &i386_device::i386_xchg_eax_edx,       false},
168   { 0x93,     OP_I386,                    &i386_device::i386_xchg_ax_bx,             &i386_device::i386_xchg_eax_ebx,       false},
169   { 0x94,     OP_I386,                    &i386_device::i386_xchg_ax_sp,             &i386_device::i386_xchg_eax_esp,       false},
170   { 0x95,     OP_I386,                    &i386_device::i386_xchg_ax_bp,             &i386_device::i386_xchg_eax_ebp,       false},
171   { 0x96,     OP_I386,                    &i386_device::i386_xchg_ax_si,             &i386_device::i386_xchg_eax_esi,       false},
172   { 0x97,     OP_I386,                    &i386_device::i386_xchg_ax_di,             &i386_device::i386_xchg_eax_edi,       false},
173   { 0x98,     OP_I386,                    &i386_device::i386_cbw,                    &i386_device::i386_cwde,               false},
174   { 0x99,     OP_I386,                    &i386_device::i386_cwd,                    &i386_device::i386_cdq,                false},
175   { 0x9A,     OP_I386,                    &i386_device::i386_call_abs16,             &i386_device::i386_call_abs32,         false},
176   { 0x9B,     OP_I386,                    &i386_device::i386_wait,                   &i386_device::i386_wait,               false},
177   { 0x9C,     OP_I386,                    &i386_device::i386_pushf,                  &i386_device::i386_pushfd,             false},
178   { 0x9D,     OP_I386,                    &i386_device::i386_popf,                   &i386_device::i386_popfd,              false},
179   { 0x9E,     OP_I386,                    &i386_device::i386_sahf,                   &i386_device::i386_sahf,               false},
180   { 0x9F,     OP_I386,                    &i386_device::i386_lahf,                   &i386_device::i386_lahf,               false},
181   { 0xA0,     OP_I386,                    &i386_device::i386_mov_al_m8,              &i386_device::i386_mov_al_m8,          false},
182   { 0xA1,     OP_I386,                    &i386_device::i386_mov_ax_m16,             &i386_device::i386_mov_eax_m32,        false},
183   { 0xA2,     OP_I386,                    &i386_device::i386_mov_m8_al,              &i386_device::i386_mov_m8_al,          false},
184   { 0xA3,     OP_I386,                    &i386_device::i386_mov_m16_ax,             &i386_device::i386_mov_m32_eax,        false},
185   { 0xA4,     OP_I386,                    &i386_device::i386_movsb,                  &i386_device::i386_movsb,              false},
186   { 0xA5,     OP_I386,                    &i386_device::i386_movsw,                  &i386_device::i386_movsd,              false},
187   { 0xA6,     OP_I386,                    &i386_device::i386_cmpsb,                  &i386_device::i386_cmpsb,              false},
188   { 0xA7,     OP_I386,                    &i386_device::i386_cmpsw,                  &i386_device::i386_cmpsd,              false},
189   { 0xA8,     OP_I386,                    &i386_device::i386_test_al_i8,             &i386_device::i386_test_al_i8,         false},
190   { 0xA9,     OP_I386,                    &i386_device::i386_test_ax_i16,            &i386_device::i386_test_eax_i32,       false},
191   { 0xAA,     OP_I386,                    &i386_device::i386_stosb,                  &i386_device::i386_stosb,              false},
192   { 0xAB,     OP_I386,                    &i386_device::i386_stosw,                  &i386_device::i386_stosd,              false},
193   { 0xAC,     OP_I386,                    &i386_device::i386_lodsb,                  &i386_device::i386_lodsb,              false},
194   { 0xAD,     OP_I386,                    &i386_device::i386_lodsw,                  &i386_device::i386_lodsd,              false},
195   { 0xAE,     OP_I386,                    &i386_device::i386_scasb,                  &i386_device::i386_scasb,              false},
196   { 0xAF,     OP_I386,                    &i386_device::i386_scasw,                  &i386_device::i386_scasd,              false},
197   { 0xB0,     OP_I386,                    &i386_device::i386_mov_al_i8,              &i386_device::i386_mov_al_i8,          false},
198   { 0xB1,     OP_I386,                    &i386_device::i386_mov_cl_i8,              &i386_device::i386_mov_cl_i8,          false},
199   { 0xB2,     OP_I386,                    &i386_device::i386_mov_dl_i8,              &i386_device::i386_mov_dl_i8,          false},
200   { 0xB3,     OP_I386,                    &i386_device::i386_mov_bl_i8,              &i386_device::i386_mov_bl_i8,          false},
201   { 0xB4,     OP_I386,                    &i386_device::i386_mov_ah_i8,              &i386_device::i386_mov_ah_i8,          false},
202   { 0xB5,     OP_I386,                    &i386_device::i386_mov_ch_i8,              &i386_device::i386_mov_ch_i8,          false},
203   { 0xB6,     OP_I386,                    &i386_device::i386_mov_dh_i8,              &i386_device::i386_mov_dh_i8,          false},
204   { 0xB7,     OP_I386,                    &i386_device::i386_mov_bh_i8,              &i386_device::i386_mov_bh_i8,          false},
205   { 0xB8,     OP_I386,                    &i386_device::i386_mov_ax_i16,             &i386_device::i386_mov_eax_i32,        false},
206   { 0xB9,     OP_I386,                    &i386_device::i386_mov_cx_i16,             &i386_device::i386_mov_ecx_i32,        false},
207   { 0xBA,     OP_I386,                    &i386_device::i386_mov_dx_i16,             &i386_device::i386_mov_edx_i32,        false},
208   { 0xBB,     OP_I386,                    &i386_device::i386_mov_bx_i16,             &i386_device::i386_mov_ebx_i32,        false},
209   { 0xBC,     OP_I386,                    &i386_device::i386_mov_sp_i16,             &i386_device::i386_mov_esp_i32,        false},
210   { 0xBD,     OP_I386,                    &i386_device::i386_mov_bp_i16,             &i386_device::i386_mov_ebp_i32,        false},
211   { 0xBE,     OP_I386,                    &i386_device::i386_mov_si_i16,             &i386_device::i386_mov_esi_i32,        false},
212   { 0xBF,     OP_I386,                    &i386_device::i386_mov_di_i16,             &i386_device::i386_mov_edi_i32,        false},
213   { 0xC0,     OP_I386,                    &i386_device::i386_groupC0_8,              &i386_device::i386_groupC0_8,          false},
214   { 0xC1,     OP_I386,                    &i386_device::i386_groupC1_16,             &i386_device::i386_groupC1_32,         false},
215   { 0xC2,     OP_I386,                    &i386_device::i386_ret_near16_i16,         &i386_device::i386_ret_near32_i16,     false},
216   { 0xC3,     OP_I386,                    &i386_device::i386_ret_near16,             &i386_device::i386_ret_near32,         false},
217   { 0xC4,     OP_I386,                    &i386_device::i386_les16,                  &i386_device::i386_les32,              false},
218   { 0xC5,     OP_I386,                    &i386_device::i386_lds16,                  &i386_device::i386_lds32,              false},
219   { 0xC6,     OP_I386,                    &i386_device::i386_mov_rm8_i8,             &i386_device::i386_mov_rm8_i8,         false},
220   { 0xC7,     OP_I386,                    &i386_device::i386_mov_rm16_i16,           &i386_device::i386_mov_rm32_i32,       false},
221   { 0xC8,     OP_I386,                    &i386_device::i386_enter16,                &i386_device::i386_enter32,            false},
222   { 0xC9,     OP_I386,                    &i386_device::i386_leave16,                &i386_device::i386_leave32,            false},
223   { 0xCA,     OP_I386,                    &i386_device::i386_retf_i16,               &i386_device::i386_retf_i32,           false},
224   { 0xCB,     OP_I386,                    &i386_device::i386_retf16,                 &i386_device::i386_retf32,             false},
225   { 0xCC,     OP_I386,                    &i386_device::i386_int3,                   &i386_device::i386_int3,               false},
226   { 0xCD,     OP_I386,                    &i386_device::i386_int,                    &i386_device::i386_int,                false},
227   { 0xCE,     OP_I386,                    &i386_device::i386_into,                   &i386_device::i386_into,               false},
228   { 0xCF,     OP_I386,                    &i386_device::i386_iret16,                 &i386_device::i386_iret32,             false},
229   { 0xD0,     OP_I386,                    &i386_device::i386_groupD0_8,              &i386_device::i386_groupD0_8,          false},
230   { 0xD1,     OP_I386,                    &i386_device::i386_groupD1_16,             &i386_device::i386_groupD1_32,         false},
231   { 0xD2,     OP_I386,                    &i386_device::i386_groupD2_8,              &i386_device::i386_groupD2_8,          false},
232   { 0xD3,     OP_I386,                    &i386_device::i386_groupD3_16,             &i386_device::i386_groupD3_32,         false},
233   { 0xD4,     OP_I386,                    &i386_device::i386_aam,                    &i386_device::i386_aam,                false},
234   { 0xD5,     OP_I386,                    &i386_device::i386_aad,                    &i386_device::i386_aad,                false},
235   { 0xD6,     OP_I386,                    &i386_device::i386_setalc,                 &i386_device::i386_setalc,             false},
236   { 0xD7,     OP_I386,                    &i386_device::i386_xlat,                   &i386_device::i386_xlat,               false},
237   { 0xD8,     OP_I386,                    &i386_device::i386_escape,                 &i386_device::i386_escape,             false},
238   { 0xD9,     OP_I386,                    &i386_device::i386_escape,                 &i386_device::i386_escape,             false},
239   { 0xDA,     OP_I386,                    &i386_device::i386_escape,                 &i386_device::i386_escape,             false},
240   { 0xDB,     OP_I386,                    &i386_device::i386_escape,                 &i386_device::i386_escape,             false},
241   { 0xDC,     OP_I386,                    &i386_device::i386_escape,                 &i386_device::i386_escape,             false},
242   { 0xDD,     OP_I386,                    &i386_device::i386_escape,                 &i386_device::i386_escape,             false},
243   { 0xDE,     OP_I386,                    &i386_device::i386_escape,                 &i386_device::i386_escape,             false},
244   { 0xDF,     OP_I386,                    &i386_device::i386_escape,                 &i386_device::i386_escape,             false},
245   { 0xD8,     OP_FPU,                     &i386_device::i386_x87_group_d8,           &i386_device::i386_x87_group_d8,       false},
246   { 0xD9,     OP_FPU,                     &i386_device::i386_x87_group_d9,           &i386_device::i386_x87_group_d9,       false},
247   { 0xDA,     OP_FPU,                     &i386_device::i386_x87_group_da,           &i386_device::i386_x87_group_da,       false},
248   { 0xDB,     OP_FPU,                     &i386_device::i386_x87_group_db,           &i386_device::i386_x87_group_db,       false},
249   { 0xDC,     OP_FPU,                     &i386_device::i386_x87_group_dc,           &i386_device::i386_x87_group_dc,       false},
250   { 0xDD,     OP_FPU,                     &i386_device::i386_x87_group_dd,           &i386_device::i386_x87_group_dd,       false},
251   { 0xDE,     OP_FPU,                     &i386_device::i386_x87_group_de,           &i386_device::i386_x87_group_de,       false},
252   { 0xDF,     OP_FPU,                     &i386_device::i386_x87_group_df,           &i386_device::i386_x87_group_df,       false},
253   { 0xE0,     OP_I386,                    &i386_device::i386_loopne16,               &i386_device::i386_loopne32,           false},
254   { 0xE1,     OP_I386,                    &i386_device::i386_loopz16,                &i386_device::i386_loopz32,            false},
255   { 0xE2,     OP_I386,                    &i386_device::i386_loop16,                 &i386_device::i386_loop32,             false},
256   { 0xE3,     OP_I386,                    &i386_device::i386_jcxz16,                 &i386_device::i386_jcxz32,             false},
257   { 0xE4,     OP_I386,                    &i386_device::i386_in_al_i8,               &i386_device::i386_in_al_i8,           false},
258   { 0xE5,     OP_I386,                    &i386_device::i386_in_ax_i8,               &i386_device::i386_in_eax_i8,          false},
259   { 0xE6,     OP_I386,                    &i386_device::i386_out_al_i8,              &i386_device::i386_out_al_i8,          false},
260   { 0xE7,     OP_I386,                    &i386_device::i386_out_ax_i8,              &i386_device::i386_out_eax_i8,         false},
261   { 0xE8,     OP_I386,                    &i386_device::i386_call_rel16,             &i386_device::i386_call_rel32,         false},
262   { 0xE9,     OP_I386,                    &i386_device::i386_jmp_rel16,              &i386_device::i386_jmp_rel32,          false},
263   { 0xEA,     OP_I386,                    &i386_device::i386_jmp_abs16,              &i386_device::i386_jmp_abs32,          false},
264   { 0xEB,     OP_I386,                    &i386_device::i386_jmp_rel8,               &i386_device::i386_jmp_rel8,           false},
265   { 0xEC,     OP_I386,                    &i386_device::i386_in_al_dx,               &i386_device::i386_in_al_dx,           false},
266   { 0xED,     OP_I386,                    &i386_device::i386_in_ax_dx,               &i386_device::i386_in_eax_dx,          false},
267   { 0xEE,     OP_I386,                    &i386_device::i386_out_al_dx,              &i386_device::i386_out_al_dx,          false},
268   { 0xEF,     OP_I386,                    &i386_device::i386_out_ax_dx,              &i386_device::i386_out_eax_dx,         false},
269   { 0xF0,     OP_I386,                    &i386_device::i386_lock,                   &i386_device::i386_lock,               false},
270   { 0xF1,     OP_I386,                    &i386_device::i386_invalid,                &i386_device::i386_invalid,            false},
271   { 0xF2,     OP_I386,                    &i386_device::i386_repne,                  &i386_device::i386_repne,              false},
272   { 0xF3,     OP_I386,                    &i386_device::i386_rep,                    &i386_device::i386_rep,                false},
273   { 0xF4,     OP_I386,                    &i386_device::i386_hlt,                    &i386_device::i386_hlt,                false},
274   { 0xF5,     OP_I386,                    &i386_device::i386_cmc,                    &i386_device::i386_cmc,                false},
275   { 0xF6,     OP_I386,                    &i386_device::i386_groupF6_8,              &i386_device::i386_groupF6_8,          true },
276   { 0xF7,     OP_I386,                    &i386_device::i386_groupF7_16,             &i386_device::i386_groupF7_32,         true },
277   { 0xF8,     OP_I386,                    &i386_device::i386_clc,                    &i386_device::i386_clc,                false},
278   { 0xF9,     OP_I386,                    &i386_device::i386_stc,                    &i386_device::i386_stc,                false},
279   { 0xFA,     OP_I386,                    &i386_device::i386_cli,                    &i386_device::i386_cli,                false},
280   { 0xFB,     OP_I386,                    &i386_device::i386_sti,                    &i386_device::i386_sti,                false},
281   { 0xFC,     OP_I386,                    &i386_device::i386_cld,                    &i386_device::i386_cld,                false},
282   { 0xFD,     OP_I386,                    &i386_device::i386_std,                    &i386_device::i386_std,                false},
283   { 0xFE,     OP_I386,                    &i386_device::i386_groupFE_8,              &i386_device::i386_groupFE_8,          true },
284   { 0xFF,     OP_I386,                    &i386_device::i386_groupFF_16,             &i386_device::i386_groupFF_32,         true },
21   { 0x00,     OP_I386,                    &i386_device::i386_add_rm8_r8,             &i386_device::i386_add_rm8_r8,         },
22   { 0x01,     OP_I386,                    &i386_device::i386_add_rm16_r16,           &i386_device::i386_add_rm32_r32,       },
23   { 0x02,     OP_I386,                    &i386_device::i386_add_r8_rm8,             &i386_device::i386_add_r8_rm8,         },
24   { 0x03,     OP_I386,                    &i386_device::i386_add_r16_rm16,           &i386_device::i386_add_r32_rm32,       },
25   { 0x04,     OP_I386,                    &i386_device::i386_add_al_i8,              &i386_device::i386_add_al_i8,          },
26   { 0x05,     OP_I386,                    &i386_device::i386_add_ax_i16,             &i386_device::i386_add_eax_i32,        },
27   { 0x06,     OP_I386,                    &i386_device::i386_push_es16,              &i386_device::i386_push_es32,          },
28   { 0x07,     OP_I386,                    &i386_device::i386_pop_es16,               &i386_device::i386_pop_es32,           },
29   { 0x08,     OP_I386,                    &i386_device::i386_or_rm8_r8,              &i386_device::i386_or_rm8_r8,          },
30   { 0x09,     OP_I386,                    &i386_device::i386_or_rm16_r16,            &i386_device::i386_or_rm32_r32,        },
31   { 0x0A,     OP_I386,                    &i386_device::i386_or_r8_rm8,              &i386_device::i386_or_r8_rm8,          },
32   { 0x0B,     OP_I386,                    &i386_device::i386_or_r16_rm16,            &i386_device::i386_or_r32_rm32,        },
33   { 0x0C,     OP_I386,                    &i386_device::i386_or_al_i8,               &i386_device::i386_or_al_i8,           },
34   { 0x0D,     OP_I386,                    &i386_device::i386_or_ax_i16,              &i386_device::i386_or_eax_i32,         },
35   { 0x0E,     OP_I386,                    &i386_device::i386_push_cs16,              &i386_device::i386_push_cs32,          },
36   { 0x0F,     OP_I386,                    &i386_device::i386_decode_two_byte,        &i386_device::i386_decode_two_byte,    },
37   { 0x10,     OP_I386,                    &i386_device::i386_adc_rm8_r8,             &i386_device::i386_adc_rm8_r8,         },
38   { 0x11,     OP_I386,                    &i386_device::i386_adc_rm16_r16,           &i386_device::i386_adc_rm32_r32,       },
39   { 0x12,     OP_I386,                    &i386_device::i386_adc_r8_rm8,             &i386_device::i386_adc_r8_rm8,         },
40   { 0x13,     OP_I386,                    &i386_device::i386_adc_r16_rm16,           &i386_device::i386_adc_r32_rm32,       },
41   { 0x14,     OP_I386,                    &i386_device::i386_adc_al_i8,              &i386_device::i386_adc_al_i8,          },
42   { 0x15,     OP_I386,                    &i386_device::i386_adc_ax_i16,             &i386_device::i386_adc_eax_i32,        },
43   { 0x16,     OP_I386,                    &i386_device::i386_push_ss16,              &i386_device::i386_push_ss32,          },
44   { 0x17,     OP_I386,                    &i386_device::i386_pop_ss16,               &i386_device::i386_pop_ss32,           },
45   { 0x18,     OP_I386,                    &i386_device::i386_sbb_rm8_r8,             &i386_device::i386_sbb_rm8_r8,         },
46   { 0x19,     OP_I386,                    &i386_device::i386_sbb_rm16_r16,           &i386_device::i386_sbb_rm32_r32,       },
47   { 0x1A,     OP_I386,                    &i386_device::i386_sbb_r8_rm8,             &i386_device::i386_sbb_r8_rm8,         },
48   { 0x1B,     OP_I386,                    &i386_device::i386_sbb_r16_rm16,           &i386_device::i386_sbb_r32_rm32,       },
49   { 0x1C,     OP_I386,                    &i386_device::i386_sbb_al_i8,              &i386_device::i386_sbb_al_i8,          },
50   { 0x1D,     OP_I386,                    &i386_device::i386_sbb_ax_i16,             &i386_device::i386_sbb_eax_i32,        },
51   { 0x1E,     OP_I386,                    &i386_device::i386_push_ds16,              &i386_device::i386_push_ds32,          },
52   { 0x1F,     OP_I386,                    &i386_device::i386_pop_ds16,               &i386_device::i386_pop_ds32,           },
53   { 0x20,     OP_I386,                    &i386_device::i386_and_rm8_r8,             &i386_device::i386_and_rm8_r8,         },
54   { 0x21,     OP_I386,                    &i386_device::i386_and_rm16_r16,           &i386_device::i386_and_rm32_r32,       },
55   { 0x22,     OP_I386,                    &i386_device::i386_and_r8_rm8,             &i386_device::i386_and_r8_rm8,         },
56   { 0x23,     OP_I386,                    &i386_device::i386_and_r16_rm16,           &i386_device::i386_and_r32_rm32,       },
57   { 0x24,     OP_I386,                    &i386_device::i386_and_al_i8,              &i386_device::i386_and_al_i8,          },
58   { 0x25,     OP_I386,                    &i386_device::i386_and_ax_i16,             &i386_device::i386_and_eax_i32,        },
59   { 0x26,     OP_I386,                    &i386_device::i386_segment_ES,             &i386_device::i386_segment_ES,         },
60   { 0x27,     OP_I386,                    &i386_device::i386_daa,                    &i386_device::i386_daa,                },
61   { 0x28,     OP_I386,                    &i386_device::i386_sub_rm8_r8,             &i386_device::i386_sub_rm8_r8,         },
62   { 0x29,     OP_I386,                    &i386_device::i386_sub_rm16_r16,           &i386_device::i386_sub_rm32_r32,       },
63   { 0x2A,     OP_I386,                    &i386_device::i386_sub_r8_rm8,             &i386_device::i386_sub_r8_rm8,         },
64   { 0x2B,     OP_I386,                    &i386_device::i386_sub_r16_rm16,           &i386_device::i386_sub_r32_rm32,       },
65   { 0x2C,     OP_I386,                    &i386_device::i386_sub_al_i8,              &i386_device::i386_sub_al_i8,          },
66   { 0x2D,     OP_I386,                    &i386_device::i386_sub_ax_i16,             &i386_device::i386_sub_eax_i32,        },
67   { 0x2E,     OP_I386,                    &i386_device::i386_segment_CS,             &i386_device::i386_segment_CS,         },
68   { 0x2F,     OP_I386,                    &i386_device::i386_das,                    &i386_device::i386_das,                },
69   { 0x30,     OP_I386,                    &i386_device::i386_xor_rm8_r8,             &i386_device::i386_xor_rm8_r8,         },
70   { 0x31,     OP_I386,                    &i386_device::i386_xor_rm16_r16,           &i386_device::i386_xor_rm32_r32,       },
71   { 0x32,     OP_I386,                    &i386_device::i386_xor_r8_rm8,             &i386_device::i386_xor_r8_rm8,         },
72   { 0x33,     OP_I386,                    &i386_device::i386_xor_r16_rm16,           &i386_device::i386_xor_r32_rm32,       },
73   { 0x34,     OP_I386,                    &i386_device::i386_xor_al_i8,              &i386_device::i386_xor_al_i8,          },
74   { 0x35,     OP_I386,                    &i386_device::i386_xor_ax_i16,             &i386_device::i386_xor_eax_i32,        },
75   { 0x36,     OP_I386,                    &i386_device::i386_segment_SS,             &i386_device::i386_segment_SS,         },
76   { 0x37,     OP_I386,                    &i386_device::i386_aaa,                    &i386_device::i386_aaa,                },
77   { 0x38,     OP_I386,                    &i386_device::i386_cmp_rm8_r8,             &i386_device::i386_cmp_rm8_r8,         },
78   { 0x39,     OP_I386,                    &i386_device::i386_cmp_rm16_r16,           &i386_device::i386_cmp_rm32_r32,       },
79   { 0x3A,     OP_I386,                    &i386_device::i386_cmp_r8_rm8,             &i386_device::i386_cmp_r8_rm8,         },
80   { 0x3B,     OP_I386,                    &i386_device::i386_cmp_r16_rm16,           &i386_device::i386_cmp_r32_rm32,       },
81   { 0x3C,     OP_I386,                    &i386_device::i386_cmp_al_i8,              &i386_device::i386_cmp_al_i8,          },
82   { 0x3D,     OP_I386,                    &i386_device::i386_cmp_ax_i16,             &i386_device::i386_cmp_eax_i32,        },
83   { 0x3E,     OP_I386,                    &i386_device::i386_segment_DS,             &i386_device::i386_segment_DS,         },
84   { 0x3F,     OP_I386,                    &i386_device::i386_aas,                    &i386_device::i386_aas,                },
85   { 0x40,     OP_I386,                    &i386_device::i386_inc_ax,                 &i386_device::i386_inc_eax,            },
86   { 0x41,     OP_I386,                    &i386_device::i386_inc_cx,                 &i386_device::i386_inc_ecx,            },
87   { 0x42,     OP_I386,                    &i386_device::i386_inc_dx,                 &i386_device::i386_inc_edx,            },
88   { 0x43,     OP_I386,                    &i386_device::i386_inc_bx,                 &i386_device::i386_inc_ebx,            },
89   { 0x44,     OP_I386,                    &i386_device::i386_inc_sp,                 &i386_device::i386_inc_esp,            },
90   { 0x45,     OP_I386,                    &i386_device::i386_inc_bp,                 &i386_device::i386_inc_ebp,            },
91   { 0x46,     OP_I386,                    &i386_device::i386_inc_si,                 &i386_device::i386_inc_esi,            },
92   { 0x47,     OP_I386,                    &i386_device::i386_inc_di,                 &i386_device::i386_inc_edi,            },
93   { 0x48,     OP_I386,                    &i386_device::i386_dec_ax,                 &i386_device::i386_dec_eax,            },
94   { 0x49,     OP_I386,                    &i386_device::i386_dec_cx,                 &i386_device::i386_dec_ecx,            },
95   { 0x4A,     OP_I386,                    &i386_device::i386_dec_dx,                 &i386_device::i386_dec_edx,            },
96   { 0x4B,     OP_I386,                    &i386_device::i386_dec_bx,                 &i386_device::i386_dec_ebx,            },
97   { 0x4C,     OP_I386,                    &i386_device::i386_dec_sp,                 &i386_device::i386_dec_esp,            },
98   { 0x4D,     OP_I386,                    &i386_device::i386_dec_bp,                 &i386_device::i386_dec_ebp,            },
99   { 0x4E,     OP_I386,                    &i386_device::i386_dec_si,                 &i386_device::i386_dec_esi,            },
100   { 0x4F,     OP_I386,                    &i386_device::i386_dec_di,                 &i386_device::i386_dec_edi,            },
101   { 0x50,     OP_I386,                    &i386_device::i386_push_ax,                &i386_device::i386_push_eax,           },
102   { 0x51,     OP_I386,                    &i386_device::i386_push_cx,                &i386_device::i386_push_ecx,           },
103   { 0x52,     OP_I386,                    &i386_device::i386_push_dx,                &i386_device::i386_push_edx,           },
104   { 0x53,     OP_I386,                    &i386_device::i386_push_bx,                &i386_device::i386_push_ebx,           },
105   { 0x54,     OP_I386,                    &i386_device::i386_push_sp,                &i386_device::i386_push_esp,           },
106   { 0x55,     OP_I386,                    &i386_device::i386_push_bp,                &i386_device::i386_push_ebp,           },
107   { 0x56,     OP_I386,                    &i386_device::i386_push_si,                &i386_device::i386_push_esi,           },
108   { 0x57,     OP_I386,                    &i386_device::i386_push_di,                &i386_device::i386_push_edi,           },
109   { 0x58,     OP_I386,                    &i386_device::i386_pop_ax,                 &i386_device::i386_pop_eax,            },
110   { 0x59,     OP_I386,                    &i386_device::i386_pop_cx,                 &i386_device::i386_pop_ecx,            },
111   { 0x5A,     OP_I386,                    &i386_device::i386_pop_dx,                 &i386_device::i386_pop_edx,            },
112   { 0x5B,     OP_I386,                    &i386_device::i386_pop_bx,                 &i386_device::i386_pop_ebx,            },
113   { 0x5C,     OP_I386,                    &i386_device::i386_pop_sp,                 &i386_device::i386_pop_esp,            },
114   { 0x5D,     OP_I386,                    &i386_device::i386_pop_bp,                 &i386_device::i386_pop_ebp,            },
115   { 0x5E,     OP_I386,                    &i386_device::i386_pop_si,                 &i386_device::i386_pop_esi,            },
116   { 0x5F,     OP_I386,                    &i386_device::i386_pop_di,                 &i386_device::i386_pop_edi,            },
117   { 0x60,     OP_I386,                    &i386_device::i386_pusha,                  &i386_device::i386_pushad,             },
118   { 0x61,     OP_I386,                    &i386_device::i386_popa,                   &i386_device::i386_popad,              },
119   { 0x62,     OP_I386,                    &i386_device::i386_bound_r16_m16_m16,      &i386_device::i386_bound_r32_m32_m32,  },
120   { 0x63,     OP_I386,                    &i386_device::i386_arpl,                   &i386_device::i386_arpl,               },
121   { 0x64,     OP_I386,                    &i386_device::i386_segment_FS,             &i386_device::i386_segment_FS,         },
122   { 0x65,     OP_I386,                    &i386_device::i386_segment_GS,             &i386_device::i386_segment_GS,         },
123   { 0x66,     OP_I386,                    &i386_device::i386_operand_size,           &i386_device::i386_operand_size,       },
124   { 0x67,     OP_I386,                    &i386_device::i386_address_size,           &i386_device::i386_address_size,       },
125   { 0x68,     OP_I386,                    &i386_device::i386_push_i16,               &i386_device::i386_push_i32,           },
126   { 0x69,     OP_I386,                    &i386_device::i386_imul_r16_rm16_i16,      &i386_device::i386_imul_r32_rm32_i32,  },
127   { 0x6A,     OP_I386,                    &i386_device::i386_push_i8,                &i386_device::i386_push_i8,            },
128   { 0x6B,     OP_I386,                    &i386_device::i386_imul_r16_rm16_i8,       &i386_device::i386_imul_r32_rm32_i8,   },
129   { 0x6C,     OP_I386,                    &i386_device::i386_insb,                   &i386_device::i386_insb,               },
130   { 0x6D,     OP_I386,                    &i386_device::i386_insw,                   &i386_device::i386_insd,               },
131   { 0x6E,     OP_I386,                    &i386_device::i386_outsb,                  &i386_device::i386_outsb,              },
132   { 0x6F,     OP_I386,                    &i386_device::i386_outsw,                  &i386_device::i386_outsd,              },
133   { 0x70,     OP_I386,                    &i386_device::i386_jo_rel8,                &i386_device::i386_jo_rel8,            },
134   { 0x71,     OP_I386,                    &i386_device::i386_jno_rel8,               &i386_device::i386_jno_rel8,           },
135   { 0x72,     OP_I386,                    &i386_device::i386_jc_rel8,                &i386_device::i386_jc_rel8,            },
136   { 0x73,     OP_I386,                    &i386_device::i386_jnc_rel8,               &i386_device::i386_jnc_rel8,           },
137   { 0x74,     OP_I386,                    &i386_device::i386_jz_rel8,                &i386_device::i386_jz_rel8,            },
138   { 0x75,     OP_I386,                    &i386_device::i386_jnz_rel8,               &i386_device::i386_jnz_rel8,           },
139   { 0x76,     OP_I386,                    &i386_device::i386_jbe_rel8,               &i386_device::i386_jbe_rel8,           },
140   { 0x77,     OP_I386,                    &i386_device::i386_ja_rel8,                &i386_device::i386_ja_rel8,            },
141   { 0x78,     OP_I386,                    &i386_device::i386_js_rel8,                &i386_device::i386_js_rel8,            },
142   { 0x79,     OP_I386,                    &i386_device::i386_jns_rel8,               &i386_device::i386_jns_rel8,           },
143   { 0x7A,     OP_I386,                    &i386_device::i386_jp_rel8,                &i386_device::i386_jp_rel8,            },
144   { 0x7B,     OP_I386,                    &i386_device::i386_jnp_rel8,               &i386_device::i386_jnp_rel8,           },
145   { 0x7C,     OP_I386,                    &i386_device::i386_jl_rel8,                &i386_device::i386_jl_rel8,            },
146   { 0x7D,     OP_I386,                    &i386_device::i386_jge_rel8,               &i386_device::i386_jge_rel8,           },
147   { 0x7E,     OP_I386,                    &i386_device::i386_jle_rel8,               &i386_device::i386_jle_rel8,           },
148   { 0x7F,     OP_I386,                    &i386_device::i386_jg_rel8,                &i386_device::i386_jg_rel8,            },
149   { 0x80,     OP_I386,                    &i386_device::i386_group80_8,              &i386_device::i386_group80_8,          },
150   { 0x81,     OP_I386,                    &i386_device::i386_group81_16,             &i386_device::i386_group81_32,         },
151   { 0x82,     OP_I386,                    &i386_device::i386_group80_8,              &i386_device::i386_group80_8,          },
152   { 0x83,     OP_I386,                    &i386_device::i386_group83_16,             &i386_device::i386_group83_32,         },
153   { 0x84,     OP_I386,                    &i386_device::i386_test_rm8_r8,            &i386_device::i386_test_rm8_r8,        },
154   { 0x85,     OP_I386,                    &i386_device::i386_test_rm16_r16,          &i386_device::i386_test_rm32_r32,      },
155   { 0x86,     OP_I386,                    &i386_device::i386_xchg_r8_rm8,            &i386_device::i386_xchg_r8_rm8,        },
156   { 0x87,     OP_I386,                    &i386_device::i386_xchg_r16_rm16,          &i386_device::i386_xchg_r32_rm32,      },
157   { 0x88,     OP_I386,                    &i386_device::i386_mov_rm8_r8,             &i386_device::i386_mov_rm8_r8,         },
158   { 0x89,     OP_I386,                    &i386_device::i386_mov_rm16_r16,           &i386_device::i386_mov_rm32_r32,       },
159   { 0x8A,     OP_I386,                    &i386_device::i386_mov_r8_rm8,             &i386_device::i386_mov_r8_rm8,         },
160   { 0x8B,     OP_I386,                    &i386_device::i386_mov_r16_rm16,           &i386_device::i386_mov_r32_rm32,       },
161   { 0x8C,     OP_I386,                    &i386_device::i386_mov_rm16_sreg,          &i386_device::i386_mov_rm16_sreg,      },
162   { 0x8D,     OP_I386,                    &i386_device::i386_lea16,                  &i386_device::i386_lea32,              },
163   { 0x8E,     OP_I386,                    &i386_device::i386_mov_sreg_rm16,          &i386_device::i386_mov_sreg_rm16,      },
164   { 0x8F,     OP_I386,                    &i386_device::i386_pop_rm16,               &i386_device::i386_pop_rm32,           },
165   { 0x90,     OP_I386,                    &i386_device::i386_nop,                    &i386_device::i386_nop,                },
166   { 0x91,     OP_I386,                    &i386_device::i386_xchg_ax_cx,             &i386_device::i386_xchg_eax_ecx,       },
167   { 0x92,     OP_I386,                    &i386_device::i386_xchg_ax_dx,             &i386_device::i386_xchg_eax_edx,       },
168   { 0x93,     OP_I386,                    &i386_device::i386_xchg_ax_bx,             &i386_device::i386_xchg_eax_ebx,       },
169   { 0x94,     OP_I386,                    &i386_device::i386_xchg_ax_sp,             &i386_device::i386_xchg_eax_esp,       },
170   { 0x95,     OP_I386,                    &i386_device::i386_xchg_ax_bp,             &i386_device::i386_xchg_eax_ebp,       },
171   { 0x96,     OP_I386,                    &i386_device::i386_xchg_ax_si,             &i386_device::i386_xchg_eax_esi,       },
172   { 0x97,     OP_I386,                    &i386_device::i386_xchg_ax_di,             &i386_device::i386_xchg_eax_edi,       },
173   { 0x98,     OP_I386,                    &i386_device::i386_cbw,                    &i386_device::i386_cwde,               },
174   { 0x99,     OP_I386,                    &i386_device::i386_cwd,                    &i386_device::i386_cdq,                },
175   { 0x9A,     OP_I386,                    &i386_device::i386_call_abs16,             &i386_device::i386_call_abs32,         },
176   { 0x9B,     OP_I386,                    &i386_device::i386_wait,                   &i386_device::i386_wait,               },
177   { 0x9C,     OP_I386,                    &i386_device::i386_pushf,                  &i386_device::i386_pushfd,             },
178   { 0x9D,     OP_I386,                    &i386_device::i386_popf,                   &i386_device::i386_popfd,              },
179   { 0x9E,     OP_I386,                    &i386_device::i386_sahf,                   &i386_device::i386_sahf,               },
180   { 0x9F,     OP_I386,                    &i386_device::i386_lahf,                   &i386_device::i386_lahf,               },
181   { 0xA0,     OP_I386,                    &i386_device::i386_mov_al_m8,              &i386_device::i386_mov_al_m8,          },
182   { 0xA1,     OP_I386,                    &i386_device::i386_mov_ax_m16,             &i386_device::i386_mov_eax_m32,        },
183   { 0xA2,     OP_I386,                    &i386_device::i386_mov_m8_al,              &i386_device::i386_mov_m8_al,          },
184   { 0xA3,     OP_I386,                    &i386_device::i386_mov_m16_ax,             &i386_device::i386_mov_m32_eax,        },
185   { 0xA4,     OP_I386,                    &i386_device::i386_movsb,                  &i386_device::i386_movsb,              },
186   { 0xA5,     OP_I386,                    &i386_device::i386_movsw,                  &i386_device::i386_movsd,              },
187   { 0xA6,     OP_I386,                    &i386_device::i386_cmpsb,                  &i386_device::i386_cmpsb,              },
188   { 0xA7,     OP_I386,                    &i386_device::i386_cmpsw,                  &i386_device::i386_cmpsd,              },
189   { 0xA8,     OP_I386,                    &i386_device::i386_test_al_i8,             &i386_device::i386_test_al_i8,         },
190   { 0xA9,     OP_I386,                    &i386_device::i386_test_ax_i16,            &i386_device::i386_test_eax_i32,       },
191   { 0xAA,     OP_I386,                    &i386_device::i386_stosb,                  &i386_device::i386_stosb,              },
192   { 0xAB,     OP_I386,                    &i386_device::i386_stosw,                  &i386_device::i386_stosd,              },
193   { 0xAC,     OP_I386,                    &i386_device::i386_lodsb,                  &i386_device::i386_lodsb,              },
194   { 0xAD,     OP_I386,                    &i386_device::i386_lodsw,                  &i386_device::i386_lodsd,              },
195   { 0xAE,     OP_I386,                    &i386_device::i386_scasb,                  &i386_device::i386_scasb,              },
196   { 0xAF,     OP_I386,                    &i386_device::i386_scasw,                  &i386_device::i386_scasd,              },
197   { 0xB0,     OP_I386,                    &i386_device::i386_mov_al_i8,              &i386_device::i386_mov_al_i8,          },
198   { 0xB1,     OP_I386,                    &i386_device::i386_mov_cl_i8,              &i386_device::i386_mov_cl_i8,          },
199   { 0xB2,     OP_I386,                    &i386_device::i386_mov_dl_i8,              &i386_device::i386_mov_dl_i8,          },
200   { 0xB3,     OP_I386,                    &i386_device::i386_mov_bl_i8,              &i386_device::i386_mov_bl_i8,          },
201   { 0xB4,     OP_I386,                    &i386_device::i386_mov_ah_i8,              &i386_device::i386_mov_ah_i8,          },
202   { 0xB5,     OP_I386,                    &i386_device::i386_mov_ch_i8,              &i386_device::i386_mov_ch_i8,          },
203   { 0xB6,     OP_I386,                    &i386_device::i386_mov_dh_i8,              &i386_device::i386_mov_dh_i8,          },
204   { 0xB7,     OP_I386,                    &i386_device::i386_mov_bh_i8,              &i386_device::i386_mov_bh_i8,          },
205   { 0xB8,     OP_I386,                    &i386_device::i386_mov_ax_i16,             &i386_device::i386_mov_eax_i32,        },
206   { 0xB9,     OP_I386,                    &i386_device::i386_mov_cx_i16,             &i386_device::i386_mov_ecx_i32,        },
207   { 0xBA,     OP_I386,                    &i386_device::i386_mov_dx_i16,             &i386_device::i386_mov_edx_i32,        },
208   { 0xBB,     OP_I386,                    &i386_device::i386_mov_bx_i16,             &i386_device::i386_mov_ebx_i32,        },
209   { 0xBC,     OP_I386,                    &i386_device::i386_mov_sp_i16,             &i386_device::i386_mov_esp_i32,        },
210   { 0xBD,     OP_I386,                    &i386_device::i386_mov_bp_i16,             &i386_device::i386_mov_ebp_i32,        },
211   { 0xBE,     OP_I386,                    &i386_device::i386_mov_si_i16,             &i386_device::i386_mov_esi_i32,        },
212   { 0xBF,     OP_I386,                    &i386_device::i386_mov_di_i16,             &i386_device::i386_mov_edi_i32,        },
213   { 0xC0,     OP_I386,                    &i386_device::i386_groupC0_8,              &i386_device::i386_groupC0_8,          },
214   { 0xC1,     OP_I386,                    &i386_device::i386_groupC1_16,             &i386_device::i386_groupC1_32,         },
215   { 0xC2,     OP_I386,                    &i386_device::i386_ret_near16_i16,         &i386_device::i386_ret_near32_i16,     },
216   { 0xC3,     OP_I386,                    &i386_device::i386_ret_near16,             &i386_device::i386_ret_near32,         },
217   { 0xC4,     OP_I386,                    &i386_device::i386_les16,                  &i386_device::i386_les32,              },
218   { 0xC5,     OP_I386,                    &i386_device::i386_lds16,                  &i386_device::i386_lds32,              },
219   { 0xC6,     OP_I386,                    &i386_device::i386_mov_rm8_i8,             &i386_device::i386_mov_rm8_i8,         },
220   { 0xC7,     OP_I386,                    &i386_device::i386_mov_rm16_i16,           &i386_device::i386_mov_rm32_i32,       },
221   { 0xC8,     OP_I386,                    &i386_device::i386_enter16,                &i386_device::i386_enter32,            },
222   { 0xC9,     OP_I386,                    &i386_device::i386_leave16,                &i386_device::i386_leave32,            },
223   { 0xCA,     OP_I386,                    &i386_device::i386_retf_i16,               &i386_device::i386_retf_i32,           },
224   { 0xCB,     OP_I386,                    &i386_device::i386_retf16,                 &i386_device::i386_retf32,             },
225   { 0xCC,     OP_I386,                    &i386_device::i386_int3,                   &i386_device::i386_int3,               },
226   { 0xCD,     OP_I386,                    &i386_device::i386_int,                    &i386_device::i386_int,                },
227   { 0xCE,     OP_I386,                    &i386_device::i386_into,                   &i386_device::i386_into,               },
228   { 0xCF,     OP_I386,                    &i386_device::i386_iret16,                 &i386_device::i386_iret32,             },
229   { 0xD0,     OP_I386,                    &i386_device::i386_groupD0_8,              &i386_device::i386_groupD0_8,          },
230   { 0xD1,     OP_I386,                    &i386_device::i386_groupD1_16,             &i386_device::i386_groupD1_32,         },
231   { 0xD2,     OP_I386,                    &i386_device::i386_groupD2_8,              &i386_device::i386_groupD2_8,          },
232   { 0xD3,     OP_I386,                    &i386_device::i386_groupD3_16,             &i386_device::i386_groupD3_32,         },
233   { 0xD4,     OP_I386,                    &i386_device::i386_aam,                    &i386_device::i386_aam,                },
234   { 0xD5,     OP_I386,                    &i386_device::i386_aad,                    &i386_device::i386_aad,                },
235   { 0xD6,     OP_I386,                    &i386_device::i386_setalc,                 &i386_device::i386_setalc,             },
236   { 0xD7,     OP_I386,                    &i386_device::i386_xlat,                   &i386_device::i386_xlat,               },
237   { 0xD8,     OP_I386,                    &i386_device::i386_escape,                 &i386_device::i386_escape,             },
238   { 0xD9,     OP_I386,                    &i386_device::i386_escape,                 &i386_device::i386_escape,             },
239   { 0xDA,     OP_I386,                    &i386_device::i386_escape,                 &i386_device::i386_escape,             },
240   { 0xDB,     OP_I386,                    &i386_device::i386_escape,                 &i386_device::i386_escape,             },
241   { 0xDC,     OP_I386,                    &i386_device::i386_escape,                 &i386_device::i386_escape,             },
242   { 0xDD,     OP_I386,                    &i386_device::i386_escape,                 &i386_device::i386_escape,             },
243   { 0xDE,     OP_I386,                    &i386_device::i386_escape,                 &i386_device::i386_escape,             },
244   { 0xDF,     OP_I386,                    &i386_device::i386_escape,                 &i386_device::i386_escape,             },
245   { 0xD8,     OP_FPU,                     &i386_device::i386_x87_group_d8,           &i386_device::i386_x87_group_d8,       },
246   { 0xD9,     OP_FPU,                     &i386_device::i386_x87_group_d9,           &i386_device::i386_x87_group_d9,       },
247   { 0xDA,     OP_FPU,                     &i386_device::i386_x87_group_da,           &i386_device::i386_x87_group_da,       },
248   { 0xDB,     OP_FPU,                     &i386_device::i386_x87_group_db,           &i386_device::i386_x87_group_db,       },
249   { 0xDC,     OP_FPU,                     &i386_device::i386_x87_group_dc,           &i386_device::i386_x87_group_dc,       },
250   { 0xDD,     OP_FPU,                     &i386_device::i386_x87_group_dd,           &i386_device::i386_x87_group_dd,       },
251   { 0xDE,     OP_FPU,                     &i386_device::i386_x87_group_de,           &i386_device::i386_x87_group_de,       },
252   { 0xDF,     OP_FPU,                     &i386_device::i386_x87_group_df,           &i386_device::i386_x87_group_df,       },
253   { 0xE0,     OP_I386,                    &i386_device::i386_loopne16,               &i386_device::i386_loopne32,           },
254   { 0xE1,     OP_I386,                    &i386_device::i386_loopz16,                &i386_device::i386_loopz32,            },
255   { 0xE2,     OP_I386,                    &i386_device::i386_loop16,                 &i386_device::i386_loop32,             },
256   { 0xE3,     OP_I386,                    &i386_device::i386_jcxz16,                 &i386_device::i386_jcxz32,             },
257   { 0xE4,     OP_I386,                    &i386_device::i386_in_al_i8,               &i386_device::i386_in_al_i8,           },
258   { 0xE5,     OP_I386,                    &i386_device::i386_in_ax_i8,               &i386_device::i386_in_eax_i8,          },
259   { 0xE6,     OP_I386,                    &i386_device::i386_out_al_i8,              &i386_device::i386_out_al_i8,          },
260   { 0xE7,     OP_I386,                    &i386_device::i386_out_ax_i8,              &i386_device::i386_out_eax_i8,         },
261   { 0xE8,     OP_I386,                    &i386_device::i386_call_rel16,             &i386_device::i386_call_rel32,         },
262   { 0xE9,     OP_I386,                    &i386_device::i386_jmp_rel16,              &i386_device::i386_jmp_rel32,          },
263   { 0xEA,     OP_I386,                    &i386_device::i386_jmp_abs16,              &i386_device::i386_jmp_abs32,          },
264   { 0xEB,     OP_I386,                    &i386_device::i386_jmp_rel8,               &i386_device::i386_jmp_rel8,           },
265   { 0xEC,     OP_I386,                    &i386_device::i386_in_al_dx,               &i386_device::i386_in_al_dx,           },
266   { 0xED,     OP_I386,                    &i386_device::i386_in_ax_dx,               &i386_device::i386_in_eax_dx,          },
267   { 0xEE,     OP_I386,                    &i386_device::i386_out_al_dx,              &i386_device::i386_out_al_dx,          },
268   { 0xEF,     OP_I386,                    &i386_device::i386_out_ax_dx,              &i386_device::i386_out_eax_dx,         },
269   { 0xF0,     OP_I386,                    &i386_device::i386_lock,                   &i386_device::i386_lock,               },
270   { 0xF1,     OP_I386,                    &i386_device::i386_invalid,                &i386_device::i386_invalid,            },
271   { 0xF2,     OP_I386,                    &i386_device::i386_repne,                  &i386_device::i386_repne,              },
272   { 0xF3,     OP_I386,                    &i386_device::i386_rep,                    &i386_device::i386_rep,                },
273   { 0xF4,     OP_I386,                    &i386_device::i386_hlt,                    &i386_device::i386_hlt,                },
274   { 0xF5,     OP_I386,                    &i386_device::i386_cmc,                    &i386_device::i386_cmc,                },
275   { 0xF6,     OP_I386,                    &i386_device::i386_groupF6_8,              &i386_device::i386_groupF6_8,          },
276   { 0xF7,     OP_I386,                    &i386_device::i386_groupF7_16,             &i386_device::i386_groupF7_32,         },
277   { 0xF8,     OP_I386,                    &i386_device::i386_clc,                    &i386_device::i386_clc,                },
278   { 0xF9,     OP_I386,                    &i386_device::i386_stc,                    &i386_device::i386_stc,                },
279   { 0xFA,     OP_I386,                    &i386_device::i386_cli,                    &i386_device::i386_cli,                },
280   { 0xFB,     OP_I386,                    &i386_device::i386_sti,                    &i386_device::i386_sti,                },
281   { 0xFC,     OP_I386,                    &i386_device::i386_cld,                    &i386_device::i386_cld,                },
282   { 0xFD,     OP_I386,                    &i386_device::i386_std,                    &i386_device::i386_std,                },
283   { 0xFE,     OP_I386,                    &i386_device::i386_groupFE_8,              &i386_device::i386_groupFE_8,          },
284   { 0xFF,     OP_I386,                    &i386_device::i386_groupFF_16,             &i386_device::i386_groupFF_32,         },
285285   /* 0F ?? */
286   { 0x00,     OP_2BYTE|OP_I386,           &i386_device::i386_group0F00_16,           &i386_device::i386_group0F00_32,       false},
287   { 0x01,     OP_2BYTE|OP_I386,           &i386_device::i386_group0F01_16,           &i386_device::i386_group0F01_32,       false},
288   { 0x01,     OP_2BYTE|OP_I486,           &i386_device::i486_group0F01_16,           &i386_device::i486_group0F01_32,       false},
289   { 0x02,     OP_2BYTE|OP_I386,           &i386_device::i386_lar_r16_rm16,           &i386_device::i386_lar_r32_rm32,       false},
290   { 0x03,     OP_2BYTE|OP_I386,           &i386_device::i386_lsl_r16_rm16,           &i386_device::i386_lsl_r32_rm32,       false},
291   { 0x06,     OP_2BYTE|OP_I386,           &i386_device::i386_clts,                   &i386_device::i386_clts,               false},
292   { 0x07,     OP_2BYTE|OP_I386,           &i386_device::i386_loadall,                &i386_device::i386_loadall,            false},
293   { 0x08,     OP_2BYTE|OP_I486,           &i386_device::i486_invd,                   &i386_device::i486_invd,               false},
294   { 0x09,     OP_2BYTE|OP_I486,           &i386_device::i486_wbinvd,                 &i386_device::i486_wbinvd,             false},
295   { 0x0B,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_ud2,                 &i386_device::pentium_ud2,             false},
296   { 0x10,     OP_2BYTE|OP_SSE,            &i386_device::sse_movups_r128_rm128,       &i386_device::sse_movups_r128_rm128,   false},
297   { 0x11,     OP_2BYTE|OP_SSE,            &i386_device::sse_movups_rm128_r128,       &i386_device::sse_movups_rm128_r128,   false},
298   { 0x12,     OP_2BYTE|OP_SSE,            &i386_device::sse_movlps_r128_m64,         &i386_device::sse_movlps_r128_m64,     false},
299   { 0x13,     OP_2BYTE|OP_SSE,            &i386_device::sse_movlps_m64_r128,         &i386_device::sse_movlps_m64_r128,     false},
300   { 0x14,     OP_2BYTE|OP_SSE,            &i386_device::sse_unpcklps_r128_rm128,     &i386_device::sse_unpcklps_r128_rm128, false},
301   { 0x15,     OP_2BYTE|OP_SSE,            &i386_device::sse_unpckhps_r128_rm128,     &i386_device::sse_unpckhps_r128_rm128, false},
302   { 0x16,     OP_2BYTE|OP_SSE,            &i386_device::sse_movhps_r128_m64,         &i386_device::sse_movhps_r128_m64,     false},
303   { 0x17,     OP_2BYTE|OP_SSE,            &i386_device::sse_movhps_m64_r128,         &i386_device::sse_movhps_m64_r128,     false},
304   { 0x18,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_prefetch_m8,         &i386_device::pentium_prefetch_m8,     false},
305   { 0x20,     OP_2BYTE|OP_I386,           &i386_device::i386_mov_r32_cr,             &i386_device::i386_mov_r32_cr,         false},
306   { 0x21,     OP_2BYTE|OP_I386,           &i386_device::i386_mov_r32_dr,             &i386_device::i386_mov_r32_dr,         false},
307   { 0x22,     OP_2BYTE|OP_I386,           &i386_device::i386_mov_cr_r32,             &i386_device::i386_mov_cr_r32,         false},
308   { 0x22,     OP_2BYTE|OP_I486,           &i386_device::i486_mov_cr_r32,             &i386_device::i486_mov_cr_r32,         false},
309   { 0x23,     OP_2BYTE|OP_I386,           &i386_device::i386_mov_dr_r32,             &i386_device::i386_mov_dr_r32,         false},
310   { 0x24,     OP_2BYTE|OP_I386,           &i386_device::i386_mov_r32_tr,             &i386_device::i386_mov_r32_tr,         false},
311   { 0x26,     OP_2BYTE|OP_I386,           &i386_device::i386_mov_tr_r32,             &i386_device::i386_mov_tr_r32,         false},
312   { 0x28,     OP_2BYTE|OP_SSE,            &i386_device::sse_movaps_r128_rm128,       &i386_device::sse_movaps_r128_rm128,   false},
313   { 0x29,     OP_2BYTE|OP_SSE,            &i386_device::sse_movaps_rm128_r128,       &i386_device::sse_movaps_rm128_r128,   false},
314   { 0x2a,     OP_2BYTE|OP_SSE,            &i386_device::sse_cvtpi2ps_r128_rm64,      &i386_device::sse_cvtpi2ps_r128_rm64,  false},
315   { 0x2b,     OP_2BYTE|OP_SSE,            &i386_device::sse_movntps_m128_r128,       &i386_device::sse_movntps_m128_r128,   false},
316   { 0x2c,     OP_2BYTE|OP_SSE,            &i386_device::sse_cvttps2pi_r64_r128m64,   &i386_device::sse_cvttps2pi_r64_r128m64,false},
317   { 0x2d,     OP_2BYTE|OP_SSE,            &i386_device::sse_cvtps2pi_r64_r128m64,    &i386_device::sse_cvtps2pi_r64_r128m64,false},
318   { 0x2e,     OP_2BYTE|OP_SSE,            &i386_device::sse_ucomiss_r128_r128m32,    &i386_device::sse_ucomiss_r128_r128m32,false},
319   { 0x2f,     OP_2BYTE|OP_SSE,            &i386_device::sse_comiss_r128_r128m32,     &i386_device::sse_comiss_r128_r128m32, false},
320   { 0x30,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_wrmsr,               &i386_device::pentium_wrmsr,           false},
321   { 0x31,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_rdtsc,               &i386_device::pentium_rdtsc,           false},
322   { 0x32,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_rdmsr,               &i386_device::pentium_rdmsr,           false},
323   { 0x40,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovo_r16_rm16,      &i386_device::pentium_cmovo_r32_rm32,  false},
324   { 0x41,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovno_r16_rm16,     &i386_device::pentium_cmovno_r32_rm32, false},
325   { 0x42,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovb_r16_rm16,      &i386_device::pentium_cmovb_r32_rm32,  false},
326   { 0x43,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovae_r16_rm16,     &i386_device::pentium_cmovae_r32_rm32, false},
327   { 0x44,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmove_r16_rm16,      &i386_device::pentium_cmove_r32_rm32,  false},
328   { 0x45,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovne_r16_rm16,     &i386_device::pentium_cmovne_r32_rm32, false},
329   { 0x46,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovbe_r16_rm16,     &i386_device::pentium_cmovbe_r32_rm32, false},
330   { 0x47,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmova_r16_rm16,      &i386_device::pentium_cmova_r32_rm32,  false},
331   { 0x48,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovs_r16_rm16,      &i386_device::pentium_cmovs_r32_rm32,  false},
332   { 0x49,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovns_r16_rm16,     &i386_device::pentium_cmovns_r32_rm32, false},
333   { 0x4a,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovp_r16_rm16,      &i386_device::pentium_cmovp_r32_rm32,  false},
334   { 0x4b,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovnp_r16_rm16,     &i386_device::pentium_cmovnp_r32_rm32, false},
335   { 0x4c,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovl_r16_rm16,      &i386_device::pentium_cmovl_r32_rm32,  false},
336   { 0x4d,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovge_r16_rm16,     &i386_device::pentium_cmovge_r32_rm32, false},
337   { 0x4e,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovle_r16_rm16,     &i386_device::pentium_cmovle_r32_rm32, false},
338   { 0x4f,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovg_r16_rm16,      &i386_device::pentium_cmovg_r32_rm32,  false},
339   { 0x50,     OP_2BYTE|OP_SSE,            &i386_device::sse_movmskps_r16_r128,       &i386_device::sse_movmskps_r32_r128,   false},
340   { 0x51,     OP_2BYTE|OP_SSE,            &i386_device::sse_sqrtps_r128_rm128,       &i386_device::sse_sqrtps_r128_rm128,   false},
341   { 0x52,     OP_2BYTE|OP_SSE,            &i386_device::sse_rsqrtps_r128_rm128,      &i386_device::sse_rsqrtps_r128_rm128,  false},
342   { 0x53,     OP_2BYTE|OP_SSE,            &i386_device::sse_rcpps_r128_rm128,        &i386_device::sse_rcpps_r128_rm128,    false},
343   { 0x54,     OP_2BYTE|OP_SSE,            &i386_device::sse_andps_r128_rm128,        &i386_device::sse_andps_r128_rm128,    false},
344   { 0x55,     OP_2BYTE|OP_SSE,            &i386_device::sse_andnps_r128_rm128,       &i386_device::sse_andnps_r128_rm128,   false},
345   { 0x56,     OP_2BYTE|OP_SSE,            &i386_device::sse_orps_r128_rm128,         &i386_device::sse_orps_r128_rm128,     false},
346   { 0x57,     OP_2BYTE|OP_SSE,            &i386_device::sse_xorps,                   &i386_device::sse_xorps,               false},
347   { 0x58,     OP_2BYTE|OP_SSE,            &i386_device::sse_addps,                   &i386_device::sse_addps,               false},
348   { 0x59,     OP_2BYTE|OP_SSE,            &i386_device::sse_mulps,                   &i386_device::sse_mulps,               false},
349   { 0x5a,     OP_2BYTE|OP_SSE,            &i386_device::sse_cvtps2pd_r128_r128m64,   &i386_device::sse_cvtps2pd_r128_r128m64,false},
350   { 0x5b,     OP_2BYTE|OP_SSE,            &i386_device::sse_cvtdq2ps_r128_rm128,     &i386_device::sse_cvtdq2ps_r128_rm128, false},
351   { 0x5c,     OP_2BYTE|OP_SSE,            &i386_device::sse_subps,                   &i386_device::sse_subps,               false},
352   { 0x5d,     OP_2BYTE|OP_SSE,            &i386_device::sse_minps,                   &i386_device::sse_minps,               false},
353   { 0x5e,     OP_2BYTE|OP_SSE,            &i386_device::sse_divps,                   &i386_device::sse_divps,               false},
354   { 0x5f,     OP_2BYTE|OP_SSE,            &i386_device::sse_maxps,                   &i386_device::sse_maxps,               false},
355   { 0x60,     OP_2BYTE|OP_MMX,            &i386_device::mmx_punpcklbw_r64_r64m32,    &i386_device::mmx_punpcklbw_r64_r64m32,false},
356   { 0x61,     OP_2BYTE|OP_MMX,            &i386_device::mmx_punpcklwd_r64_r64m32,    &i386_device::mmx_punpcklwd_r64_r64m32,false},
357   { 0x62,     OP_2BYTE|OP_MMX,            &i386_device::mmx_punpckldq_r64_r64m32,    &i386_device::mmx_punpckldq_r64_r64m32,false},
358   { 0x63,     OP_2BYTE|OP_MMX,            &i386_device::mmx_packsswb_r64_rm64,       &i386_device::mmx_packsswb_r64_rm64,   false},
359   { 0x64,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pcmpgtb_r64_rm64,        &i386_device::mmx_pcmpgtb_r64_rm64,    false},
360   { 0x65,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pcmpgtw_r64_rm64,        &i386_device::mmx_pcmpgtw_r64_rm64,    false},
361   { 0x66,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pcmpgtd_r64_rm64,        &i386_device::mmx_pcmpgtd_r64_rm64,    false},
362   { 0x67,     OP_2BYTE|OP_MMX,            &i386_device::mmx_packuswb_r64_rm64,       &i386_device::mmx_packuswb_r64_rm64,   false},
363   { 0x68,     OP_2BYTE|OP_MMX,            &i386_device::mmx_punpckhbw_r64_rm64,      &i386_device::mmx_punpckhbw_r64_rm64,  false},
364   { 0x69,     OP_2BYTE|OP_MMX,            &i386_device::mmx_punpckhwd_r64_rm64,      &i386_device::mmx_punpckhwd_r64_rm64,  false},
365   { 0x6a,     OP_2BYTE|OP_MMX,            &i386_device::mmx_punpckhdq_r64_rm64,      &i386_device::mmx_punpckhdq_r64_rm64,  false},
366   { 0x6b,     OP_2BYTE|OP_MMX,            &i386_device::mmx_packssdw_r64_rm64,       &i386_device::mmx_packssdw_r64_rm64,   false},
367   { 0x6e,     OP_2BYTE|OP_MMX,            &i386_device::mmx_movd_r64_rm32,           &i386_device::mmx_movd_r64_rm32,       false},
368   { 0x6f,     OP_2BYTE|OP_MMX,            &i386_device::mmx_movq_r64_rm64,           &i386_device::mmx_movq_r64_rm64,       false},
369   { 0x70,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pshufw_r64_rm64_i8,      &i386_device::mmx_pshufw_r64_rm64_i8,  false},
370   { 0x71,     OP_2BYTE|OP_MMX,            &i386_device::mmx_group_0f71,              &i386_device::mmx_group_0f71,          false},
371   { 0x72,     OP_2BYTE|OP_MMX,            &i386_device::mmx_group_0f72,              &i386_device::mmx_group_0f72,          false},
372   { 0x73,     OP_2BYTE|OP_MMX,            &i386_device::mmx_group_0f73,              &i386_device::mmx_group_0f73,          false},
373   { 0x74,     OP_2BYTE|OP_CYRIX,          &i386_device::i386_cyrix_unknown,          &i386_device::i386_cyrix_unknown,      false},
374   { 0x74,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pcmpeqb_r64_rm64,        &i386_device::mmx_pcmpeqb_r64_rm64,    false},
375   { 0x75,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pcmpeqw_r64_rm64,        &i386_device::mmx_pcmpeqw_r64_rm64,    false},
376   { 0x76,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pcmpeqd_r64_rm64,        &i386_device::mmx_pcmpeqd_r64_rm64,    false},
377   { 0x77,     OP_2BYTE|OP_MMX,            &i386_device::mmx_emms,                    &i386_device::mmx_emms,                false},
378   { 0x7e,     OP_2BYTE|OP_MMX,            &i386_device::mmx_movd_rm32_r64,           &i386_device::mmx_movd_rm32_r64,       false},
379   { 0x7f,     OP_2BYTE|OP_MMX,            &i386_device::mmx_movq_rm64_r64,           &i386_device::mmx_movq_rm64_r64,       false},
380   { 0x80,     OP_2BYTE|OP_I386,           &i386_device::i386_jo_rel16,               &i386_device::i386_jo_rel32,           false},
381   { 0x81,     OP_2BYTE|OP_I386,           &i386_device::i386_jno_rel16,              &i386_device::i386_jno_rel32,          false},
382   { 0x82,     OP_2BYTE|OP_I386,           &i386_device::i386_jc_rel16,               &i386_device::i386_jc_rel32,           false},
383   { 0x83,     OP_2BYTE|OP_I386,           &i386_device::i386_jnc_rel16,              &i386_device::i386_jnc_rel32,          false},
384   { 0x84,     OP_2BYTE|OP_I386,           &i386_device::i386_jz_rel16,               &i386_device::i386_jz_rel32,           false},
385   { 0x85,     OP_2BYTE|OP_I386,           &i386_device::i386_jnz_rel16,              &i386_device::i386_jnz_rel32,          false},
386   { 0x86,     OP_2BYTE|OP_I386,           &i386_device::i386_jbe_rel16,              &i386_device::i386_jbe_rel32,          false},
387   { 0x87,     OP_2BYTE|OP_I386,           &i386_device::i386_ja_rel16,               &i386_device::i386_ja_rel32,           false},
388   { 0x88,     OP_2BYTE|OP_I386,           &i386_device::i386_js_rel16,               &i386_device::i386_js_rel32,           false},
389   { 0x89,     OP_2BYTE|OP_I386,           &i386_device::i386_jns_rel16,              &i386_device::i386_jns_rel32,          false},
390   { 0x8A,     OP_2BYTE|OP_I386,           &i386_device::i386_jp_rel16,               &i386_device::i386_jp_rel32,           false},
391   { 0x8B,     OP_2BYTE|OP_I386,           &i386_device::i386_jnp_rel16,              &i386_device::i386_jnp_rel32,          false},
392   { 0x8C,     OP_2BYTE|OP_I386,           &i386_device::i386_jl_rel16,               &i386_device::i386_jl_rel32,           false},
393   { 0x8D,     OP_2BYTE|OP_I386,           &i386_device::i386_jge_rel16,              &i386_device::i386_jge_rel32,          false},
394   { 0x8E,     OP_2BYTE|OP_I386,           &i386_device::i386_jle_rel16,              &i386_device::i386_jle_rel32,          false},
395   { 0x8F,     OP_2BYTE|OP_I386,           &i386_device::i386_jg_rel16,               &i386_device::i386_jg_rel32,           false},
396   { 0x90,     OP_2BYTE|OP_I386,           &i386_device::i386_seto_rm8,               &i386_device::i386_seto_rm8,           false},
397   { 0x91,     OP_2BYTE|OP_I386,           &i386_device::i386_setno_rm8,              &i386_device::i386_setno_rm8,          false},
398   { 0x92,     OP_2BYTE|OP_I386,           &i386_device::i386_setc_rm8,               &i386_device::i386_setc_rm8,           false},
399   { 0x93,     OP_2BYTE|OP_I386,           &i386_device::i386_setnc_rm8,              &i386_device::i386_setnc_rm8,          false},
400   { 0x94,     OP_2BYTE|OP_I386,           &i386_device::i386_setz_rm8,               &i386_device::i386_setz_rm8,           false},
401   { 0x95,     OP_2BYTE|OP_I386,           &i386_device::i386_setnz_rm8,              &i386_device::i386_setnz_rm8,          false},
402   { 0x96,     OP_2BYTE|OP_I386,           &i386_device::i386_setbe_rm8,              &i386_device::i386_setbe_rm8,          false},
403   { 0x97,     OP_2BYTE|OP_I386,           &i386_device::i386_seta_rm8,               &i386_device::i386_seta_rm8,           false},
404   { 0x98,     OP_2BYTE|OP_I386,           &i386_device::i386_sets_rm8,               &i386_device::i386_sets_rm8,           false},
405   { 0x99,     OP_2BYTE|OP_I386,           &i386_device::i386_setns_rm8,              &i386_device::i386_setns_rm8,          false},
406   { 0x9A,     OP_2BYTE|OP_I386,           &i386_device::i386_setp_rm8,               &i386_device::i386_setp_rm8,           false},
407   { 0x9B,     OP_2BYTE|OP_I386,           &i386_device::i386_setnp_rm8,              &i386_device::i386_setnp_rm8,          false},
408   { 0x9C,     OP_2BYTE|OP_I386,           &i386_device::i386_setl_rm8,               &i386_device::i386_setl_rm8,           false},
409   { 0x9D,     OP_2BYTE|OP_I386,           &i386_device::i386_setge_rm8,              &i386_device::i386_setge_rm8,          false},
410   { 0x9E,     OP_2BYTE|OP_I386,           &i386_device::i386_setle_rm8,              &i386_device::i386_setle_rm8,          false},
411   { 0x9F,     OP_2BYTE|OP_I386,           &i386_device::i386_setg_rm8,               &i386_device::i386_setg_rm8,           false},
412   { 0xA0,     OP_2BYTE|OP_I386,           &i386_device::i386_push_fs16,              &i386_device::i386_push_fs32,          false},
413   { 0xA1,     OP_2BYTE|OP_I386,           &i386_device::i386_pop_fs16,               &i386_device::i386_pop_fs32,           false},
414   { 0xA2,     OP_2BYTE|OP_I486,           &i386_device::i486_cpuid,                  &i386_device::i486_cpuid,              false},
415   { 0xA3,     OP_2BYTE|OP_I386,           &i386_device::i386_bt_rm16_r16,            &i386_device::i386_bt_rm32_r32,        false},
416   { 0xA4,     OP_2BYTE|OP_I386,           &i386_device::i386_shld16_i8,              &i386_device::i386_shld32_i8,          false},
417   { 0xA5,     OP_2BYTE|OP_I386,           &i386_device::i386_shld16_cl,              &i386_device::i386_shld32_cl,          false},
418   { 0xA8,     OP_2BYTE|OP_I386,           &i386_device::i386_push_gs16,              &i386_device::i386_push_gs32,          false},
419   { 0xA9,     OP_2BYTE|OP_I386,           &i386_device::i386_pop_gs16,               &i386_device::i386_pop_gs32,           false},
420   { 0xAA,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_rsm,                 &i386_device::pentium_rsm,             false},
421   { 0xAB,     OP_2BYTE|OP_I386,           &i386_device::i386_bts_rm16_r16,           &i386_device::i386_bts_rm32_r32,       true },
422   { 0xAC,     OP_2BYTE|OP_I386,           &i386_device::i386_shrd16_i8,              &i386_device::i386_shrd32_i8,          false},
423   { 0xAD,     OP_2BYTE|OP_I386,           &i386_device::i386_shrd16_cl,              &i386_device::i386_shrd32_cl,          false},
424   { 0xAE,     OP_2BYTE|OP_SSE,            &i386_device::sse_sse_group0fae,           &i386_device::sse_sse_group0fae,       false},
425   { 0xAF,     OP_2BYTE|OP_I386,           &i386_device::i386_imul_r16_rm16,          &i386_device::i386_imul_r32_rm32,      false},
426   { 0xB0,     OP_2BYTE|OP_I486,           &i386_device::i486_cmpxchg_rm8_r8,         &i386_device::i486_cmpxchg_rm8_r8,     true },
427   { 0xB1,     OP_2BYTE|OP_I486,           &i386_device::i486_cmpxchg_rm16_r16,       &i386_device::i486_cmpxchg_rm32_r32,   true },
428   { 0xB2,     OP_2BYTE|OP_I386,           &i386_device::i386_lss16,                  &i386_device::i386_lss32,              false},
429   { 0xB3,     OP_2BYTE|OP_I386,           &i386_device::i386_btr_rm16_r16,           &i386_device::i386_btr_rm32_r32,       true },
430   { 0xB4,     OP_2BYTE|OP_I386,           &i386_device::i386_lfs16,                  &i386_device::i386_lfs32,              false},
431   { 0xB5,     OP_2BYTE|OP_I386,           &i386_device::i386_lgs16,                  &i386_device::i386_lgs32,              false},
432   { 0xB6,     OP_2BYTE|OP_I386,           &i386_device::i386_movzx_r16_rm8,          &i386_device::i386_movzx_r32_rm8,      false},
433   { 0xB7,     OP_2BYTE|OP_I386,           &i386_device::i386_invalid,                &i386_device::i386_movzx_r32_rm16,     false},
434   { 0xBA,     OP_2BYTE|OP_I386,           &i386_device::i386_group0FBA_16,           &i386_device::i386_group0FBA_32,       true },
435   { 0xBB,     OP_2BYTE|OP_I386,           &i386_device::i386_btc_rm16_r16,           &i386_device::i386_btc_rm32_r32,       true },
436   { 0xBC,     OP_2BYTE|OP_I386,           &i386_device::i386_bsf_r16_rm16,           &i386_device::i386_bsf_r32_rm32,       false},
437   { 0xBD,     OP_2BYTE|OP_I386,           &i386_device::i386_bsr_r16_rm16,           &i386_device::i386_bsr_r32_rm32,       false},
438   { 0xBE,     OP_2BYTE|OP_I386,           &i386_device::i386_movsx_r16_rm8,          &i386_device::i386_movsx_r32_rm8,      false},
439   { 0xBF,     OP_2BYTE|OP_I386,           &i386_device::i386_invalid,                &i386_device::i386_movsx_r32_rm16,     false},
440   { 0xC0,     OP_2BYTE|OP_I486,           &i386_device::i486_xadd_rm8_r8,            &i386_device::i486_xadd_rm8_r8,        true },
441   { 0xC1,     OP_2BYTE|OP_I486,           &i386_device::i486_xadd_rm16_r16,          &i386_device::i486_xadd_rm32_r32,      true },
442   { 0xC2,     OP_2BYTE|OP_SSE,            &i386_device::sse_cmpps_r128_rm128_i8,     &i386_device::sse_cmpps_r128_rm128_i8, false},
443   { 0xC3,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_movnti_m16_r16,      &i386_device::pentium_movnti_m32_r32,  false},
444   { 0xC4,     OP_2BYTE|OP_SSE,            &i386_device::sse_pinsrw_r64_r16m16_i8,    &i386_device::sse_pinsrw_r64_r32m16_i8,false},
445   { 0xC5,     OP_2BYTE|OP_SSE,            &i386_device::sse_pextrw_r16_r64_i8,       &i386_device::sse_pextrw_r32_r64_i8,   false},
446   { 0xC6,     OP_2BYTE|OP_SSE,            &i386_device::sse_shufps,                  &i386_device::sse_shufps,              false},
447   { 0xC7,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmpxchg8b_m64,       &i386_device::pentium_cmpxchg8b_m64,   true },
448   { 0xC8,     OP_2BYTE|OP_I486,           &i386_device::i486_bswap_eax,              &i386_device::i486_bswap_eax,          false},
449   { 0xC9,     OP_2BYTE|OP_I486,           &i386_device::i486_bswap_ecx,              &i386_device::i486_bswap_ecx,          false},
450   { 0xCA,     OP_2BYTE|OP_I486,           &i386_device::i486_bswap_edx,              &i386_device::i486_bswap_edx,          false},
451   { 0xCB,     OP_2BYTE|OP_I486,           &i386_device::i486_bswap_ebx,              &i386_device::i486_bswap_ebx,          false},
452   { 0xCC,     OP_2BYTE|OP_I486,           &i386_device::i486_bswap_esp,              &i386_device::i486_bswap_esp,          false},
453   { 0xCD,     OP_2BYTE|OP_I486,           &i386_device::i486_bswap_ebp,              &i386_device::i486_bswap_ebp,          false},
454   { 0xCE,     OP_2BYTE|OP_I486,           &i386_device::i486_bswap_esi,              &i386_device::i486_bswap_esi,          false},
455   { 0xCF,     OP_2BYTE|OP_I486,           &i386_device::i486_bswap_edi,              &i386_device::i486_bswap_edi,          false},
456   { 0xD1,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psrlw_r64_rm64,          &i386_device::mmx_psrlw_r64_rm64,      false},
457   { 0xD2,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psrld_r64_rm64,          &i386_device::mmx_psrld_r64_rm64,      false},
458   { 0xD3,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psrlq_r64_rm64,          &i386_device::mmx_psrlq_r64_rm64,      false},
459   { 0xD4,     OP_2BYTE|OP_MMX,            &i386_device::mmx_paddq_r64_rm64,          &i386_device::mmx_paddq_r64_rm64,      false},
460   { 0xD5,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pmullw_r64_rm64,         &i386_device::mmx_pmullw_r64_rm64,     false},
461   { 0xD7,     OP_2BYTE|OP_SSE,            &i386_device::sse_pmovmskb_r16_r64,        &i386_device::sse_pmovmskb_r32_r64,    false},
462   { 0xD8,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psubusb_r64_rm64,        &i386_device::mmx_psubusb_r64_rm64,    false},
463   { 0xD9,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psubusw_r64_rm64,        &i386_device::mmx_psubusw_r64_rm64,    false},
464   { 0xDA,     OP_2BYTE|OP_SSE,            &i386_device::sse_pminub_r64_rm64,         &i386_device::sse_pminub_r64_rm64,     false},
465   { 0xDB,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pand_r64_rm64,           &i386_device::mmx_pand_r64_rm64,       false},
466   { 0xDC,     OP_2BYTE|OP_MMX,            &i386_device::mmx_paddusb_r64_rm64,        &i386_device::mmx_paddusb_r64_rm64,    false},
467   { 0xDD,     OP_2BYTE|OP_MMX,            &i386_device::mmx_paddusw_r64_rm64,        &i386_device::mmx_paddusw_r64_rm64,    false},
468   { 0xDE,     OP_2BYTE|OP_SSE,            &i386_device::sse_pmaxub_r64_rm64,         &i386_device::sse_pmaxub_r64_rm64,     false},
469   { 0xDF,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pandn_r64_rm64,          &i386_device::mmx_pandn_r64_rm64,      false},
470   { 0xE0,     OP_2BYTE|OP_SSE,            &i386_device::sse_pavgb_r64_rm64,          &i386_device::sse_pavgb_r64_rm64,      false},
471   { 0xE1,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psraw_r64_rm64,          &i386_device::mmx_psraw_r64_rm64,      false},
472   { 0xE2,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psrad_r64_rm64,          &i386_device::mmx_psrad_r64_rm64,      false},
473   { 0xE3,     OP_2BYTE|OP_SSE,            &i386_device::sse_pavgw_r64_rm64,          &i386_device::sse_pavgw_r64_rm64,      false},
474   { 0xE4,     OP_2BYTE|OP_SSE,            &i386_device::sse_pmulhuw_r64_rm64,        &i386_device::sse_pmulhuw_r64_rm64,    false},
475   { 0xE5,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pmulhw_r64_rm64,         &i386_device::mmx_pmulhw_r64_rm64,     false},
476   { 0xE7,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_movntq_m64_r64,      &i386_device::pentium_movntq_m64_r64,  false},
477   { 0xE8,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psubsb_r64_rm64,         &i386_device::mmx_psubsb_r64_rm64,     false},
478   { 0xE9,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psubsw_r64_rm64,         &i386_device::mmx_psubsw_r64_rm64,     false},
479   { 0xEA,     OP_2BYTE|OP_SSE,            &i386_device::sse_pminsw_r64_rm64,         &i386_device::sse_pminsw_r64_rm64,     false},
480   { 0xEB,     OP_2BYTE|OP_MMX,            &i386_device::mmx_por_r64_rm64,            &i386_device::mmx_por_r64_rm64,        false},
481   { 0xEC,     OP_2BYTE|OP_MMX,            &i386_device::mmx_paddsb_r64_rm64,         &i386_device::mmx_paddsb_r64_rm64,     false},
482   { 0xED,     OP_2BYTE|OP_MMX,            &i386_device::mmx_paddsw_r64_rm64,         &i386_device::mmx_paddsw_r64_rm64,     false},
483   { 0xEE,     OP_2BYTE|OP_SSE,            &i386_device::sse_pmaxsw_r64_rm64,         &i386_device::sse_pmaxsw_r64_rm64,     false},
484   { 0xEF,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pxor_r64_rm64,           &i386_device::mmx_pxor_r64_rm64,       false},
485   { 0xF1,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psllw_r64_rm64,          &i386_device::mmx_psllw_r64_rm64,      false},
486   { 0xF2,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pslld_r64_rm64,          &i386_device::mmx_pslld_r64_rm64,      false},
487   { 0xF3,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psllq_r64_rm64,          &i386_device::mmx_psllq_r64_rm64,      false},
488   { 0xF4,     OP_2BYTE|OP_SSE,            &i386_device::sse_pmuludq_r64_rm64,        &i386_device::sse_pmuludq_r64_rm64,    false},
489   { 0xF5,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pmaddwd_r64_rm64,        &i386_device::mmx_pmaddwd_r64_rm64,    false},
490   { 0xF6,     OP_2BYTE|OP_SSE,            &i386_device::sse_psadbw_r64_rm64,         &i386_device::sse_psadbw_r64_rm64,     false},
491   { 0xf7,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_maskmovq_r64_r64,    &i386_device::pentium_maskmovq_r64_r64,false},
492   { 0xF8,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psubb_r64_rm64,          &i386_device::mmx_psubb_r64_rm64,      false},
493   { 0xF9,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psubw_r64_rm64,          &i386_device::mmx_psubw_r64_rm64,      false},
494   { 0xFA,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psubd_r64_rm64,          &i386_device::mmx_psubd_r64_rm64,      false},
495   { 0xFB,     OP_2BYTE|OP_SSE,            &i386_device::sse_psubq_r64_rm64,          &i386_device::sse_psubq_r64_rm64,      false},
496   { 0xFC,     OP_2BYTE|OP_MMX,            &i386_device::mmx_paddb_r64_rm64,          &i386_device::mmx_paddb_r64_rm64,      false},
497   { 0xFD,     OP_2BYTE|OP_MMX,            &i386_device::mmx_paddw_r64_rm64,          &i386_device::mmx_paddw_r64_rm64,      false},
498   { 0xFE,     OP_2BYTE|OP_MMX,            &i386_device::mmx_paddd_r64_rm64,          &i386_device::mmx_paddd_r64_rm64,      false},
286   { 0x00,     OP_2BYTE|OP_I386,           &i386_device::i386_group0F00_16,           &i386_device::i386_group0F00_32,       },
287   { 0x01,     OP_2BYTE|OP_I386,           &i386_device::i386_group0F01_16,           &i386_device::i386_group0F01_32,       },
288   { 0x01,     OP_2BYTE|OP_I486,           &i386_device::i486_group0F01_16,           &i386_device::i486_group0F01_32,       },
289   { 0x02,     OP_2BYTE|OP_I386,           &i386_device::i386_lar_r16_rm16,           &i386_device::i386_lar_r32_rm32,       },
290   { 0x03,     OP_2BYTE|OP_I386,           &i386_device::i386_lsl_r16_rm16,           &i386_device::i386_lsl_r32_rm32,       },
291   { 0x06,     OP_2BYTE|OP_I386,           &i386_device::i386_clts,                   &i386_device::i386_clts,               },
292   { 0x07,     OP_2BYTE|OP_I386,           &i386_device::i386_loadall,                &i386_device::i386_loadall,            },
293   { 0x08,     OP_2BYTE|OP_I486,           &i386_device::i486_invd,                   &i386_device::i486_invd,               },
294   { 0x09,     OP_2BYTE|OP_I486,           &i386_device::i486_wbinvd,                 &i386_device::i486_wbinvd,             },
295   { 0x0B,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_ud2,                 &i386_device::pentium_ud2,             },
296   { 0x10,     OP_2BYTE|OP_SSE,            &i386_device::sse_movups_r128_rm128,       &i386_device::sse_movups_r128_rm128,   },
297   { 0x11,     OP_2BYTE|OP_SSE,            &i386_device::sse_movups_rm128_r128,       &i386_device::sse_movups_rm128_r128,   },
298   { 0x12,     OP_2BYTE|OP_SSE,            &i386_device::sse_movlps_r128_m64,         &i386_device::sse_movlps_r128_m64,     },
299   { 0x13,     OP_2BYTE|OP_SSE,            &i386_device::sse_movlps_m64_r128,         &i386_device::sse_movlps_m64_r128,     },
300   { 0x14,     OP_2BYTE|OP_SSE,            &i386_device::sse_unpcklps_r128_rm128,     &i386_device::sse_unpcklps_r128_rm128, },
301   { 0x15,     OP_2BYTE|OP_SSE,            &i386_device::sse_unpckhps_r128_rm128,     &i386_device::sse_unpckhps_r128_rm128, },
302   { 0x16,     OP_2BYTE|OP_SSE,            &i386_device::sse_movhps_r128_m64,         &i386_device::sse_movhps_r128_m64,     },
303   { 0x17,     OP_2BYTE|OP_SSE,            &i386_device::sse_movhps_m64_r128,         &i386_device::sse_movhps_m64_r128,     },
304   { 0x18,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_prefetch_m8,         &i386_device::pentium_prefetch_m8,     },
305   { 0x20,     OP_2BYTE|OP_I386,           &i386_device::i386_mov_r32_cr,             &i386_device::i386_mov_r32_cr,         },
306   { 0x21,     OP_2BYTE|OP_I386,           &i386_device::i386_mov_r32_dr,             &i386_device::i386_mov_r32_dr,         },
307   { 0x22,     OP_2BYTE|OP_I386,           &i386_device::i386_mov_cr_r32,             &i386_device::i386_mov_cr_r32,         },
308   { 0x22,     OP_2BYTE|OP_I486,           &i386_device::i486_mov_cr_r32,             &i386_device::i486_mov_cr_r32,         },
309   { 0x23,     OP_2BYTE|OP_I386,           &i386_device::i386_mov_dr_r32,             &i386_device::i386_mov_dr_r32,         },
310   { 0x24,     OP_2BYTE|OP_I386,           &i386_device::i386_mov_r32_tr,             &i386_device::i386_mov_r32_tr,         },
311   { 0x26,     OP_2BYTE|OP_I386,           &i386_device::i386_mov_tr_r32,             &i386_device::i386_mov_tr_r32,         },
312   { 0x28,     OP_2BYTE|OP_SSE,            &i386_device::sse_movaps_r128_rm128,       &i386_device::sse_movaps_r128_rm128,   },
313   { 0x29,     OP_2BYTE|OP_SSE,            &i386_device::sse_movaps_rm128_r128,       &i386_device::sse_movaps_rm128_r128,   },
314   { 0x2a,     OP_2BYTE|OP_SSE,            &i386_device::sse_cvtpi2ps_r128_rm64,      &i386_device::sse_cvtpi2ps_r128_rm64,  },
315   { 0x2b,     OP_2BYTE|OP_SSE,            &i386_device::sse_movntps_m128_r128,       &i386_device::sse_movntps_m128_r128,   },
316   { 0x2c,     OP_2BYTE|OP_SSE,            &i386_device::sse_cvttps2pi_r64_r128m64,   &i386_device::sse_cvttps2pi_r64_r128m64,},
317   { 0x2d,     OP_2BYTE|OP_SSE,            &i386_device::sse_cvtps2pi_r64_r128m64,    &i386_device::sse_cvtps2pi_r64_r128m64,},
318   { 0x2e,     OP_2BYTE|OP_SSE,            &i386_device::sse_ucomiss_r128_r128m32,    &i386_device::sse_ucomiss_r128_r128m32,},
319   { 0x2f,     OP_2BYTE|OP_SSE,            &i386_device::sse_comiss_r128_r128m32,     &i386_device::sse_comiss_r128_r128m32, },
320   { 0x30,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_wrmsr,               &i386_device::pentium_wrmsr,           },
321   { 0x31,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_rdtsc,               &i386_device::pentium_rdtsc,           },
322   { 0x32,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_rdmsr,               &i386_device::pentium_rdmsr,           },
323   { 0x40,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovo_r16_rm16,      &i386_device::pentium_cmovo_r32_rm32,  },
324   { 0x41,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovno_r16_rm16,     &i386_device::pentium_cmovno_r32_rm32, },
325   { 0x42,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovb_r16_rm16,      &i386_device::pentium_cmovb_r32_rm32,  },
326   { 0x43,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovae_r16_rm16,     &i386_device::pentium_cmovae_r32_rm32, },
327   { 0x44,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmove_r16_rm16,      &i386_device::pentium_cmove_r32_rm32,  },
328   { 0x45,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovne_r16_rm16,     &i386_device::pentium_cmovne_r32_rm32, },
329   { 0x46,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovbe_r16_rm16,     &i386_device::pentium_cmovbe_r32_rm32, },
330   { 0x47,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmova_r16_rm16,      &i386_device::pentium_cmova_r32_rm32,  },
331   { 0x48,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovs_r16_rm16,      &i386_device::pentium_cmovs_r32_rm32,  },
332   { 0x49,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovns_r16_rm16,     &i386_device::pentium_cmovns_r32_rm32, },
333   { 0x4a,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovp_r16_rm16,      &i386_device::pentium_cmovp_r32_rm32,  },
334   { 0x4b,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovnp_r16_rm16,     &i386_device::pentium_cmovnp_r32_rm32, },
335   { 0x4c,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovl_r16_rm16,      &i386_device::pentium_cmovl_r32_rm32,  },
336   { 0x4d,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovge_r16_rm16,     &i386_device::pentium_cmovge_r32_rm32, },
337   { 0x4e,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovle_r16_rm16,     &i386_device::pentium_cmovle_r32_rm32, },
338   { 0x4f,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmovg_r16_rm16,      &i386_device::pentium_cmovg_r32_rm32,  },
339   { 0x50,     OP_2BYTE|OP_SSE,            &i386_device::sse_movmskps_r16_r128,       &i386_device::sse_movmskps_r32_r128,   },
340   { 0x51,     OP_2BYTE|OP_SSE,            &i386_device::sse_sqrtps_r128_rm128,       &i386_device::sse_sqrtps_r128_rm128,   },
341   { 0x52,     OP_2BYTE|OP_SSE,            &i386_device::sse_rsqrtps_r128_rm128,      &i386_device::sse_rsqrtps_r128_rm128,  },
342   { 0x53,     OP_2BYTE|OP_SSE,            &i386_device::sse_rcpps_r128_rm128,        &i386_device::sse_rcpps_r128_rm128,    },
343   { 0x54,     OP_2BYTE|OP_SSE,            &i386_device::sse_andps_r128_rm128,        &i386_device::sse_andps_r128_rm128,    },
344   { 0x55,     OP_2BYTE|OP_SSE,            &i386_device::sse_andnps_r128_rm128,       &i386_device::sse_andnps_r128_rm128,   },
345   { 0x56,     OP_2BYTE|OP_SSE,            &i386_device::sse_orps_r128_rm128,         &i386_device::sse_orps_r128_rm128,     },
346   { 0x57,     OP_2BYTE|OP_SSE,            &i386_device::sse_xorps,                   &i386_device::sse_xorps,               },
347   { 0x58,     OP_2BYTE|OP_SSE,            &i386_device::sse_addps,                   &i386_device::sse_addps,               },
348   { 0x59,     OP_2BYTE|OP_SSE,            &i386_device::sse_mulps,                   &i386_device::sse_mulps,               },
349   { 0x5a,     OP_2BYTE|OP_SSE,            &i386_device::sse_cvtps2pd_r128_r128m64,   &i386_device::sse_cvtps2pd_r128_r128m64,},
350   { 0x5b,     OP_2BYTE|OP_SSE,            &i386_device::sse_cvtdq2ps_r128_rm128,     &i386_device::sse_cvtdq2ps_r128_rm128, },
351   { 0x5c,     OP_2BYTE|OP_SSE,            &i386_device::sse_subps,                   &i386_device::sse_subps,               },
352   { 0x5d,     OP_2BYTE|OP_SSE,            &i386_device::sse_minps,                   &i386_device::sse_minps,               },
353   { 0x5e,     OP_2BYTE|OP_SSE,            &i386_device::sse_divps,                   &i386_device::sse_divps,               },
354   { 0x5f,     OP_2BYTE|OP_SSE,            &i386_device::sse_maxps,                   &i386_device::sse_maxps,               },
355   { 0x60,     OP_2BYTE|OP_MMX,            &i386_device::mmx_punpcklbw_r64_r64m32,    &i386_device::mmx_punpcklbw_r64_r64m32,},
356   { 0x61,     OP_2BYTE|OP_MMX,            &i386_device::mmx_punpcklwd_r64_r64m32,    &i386_device::mmx_punpcklwd_r64_r64m32,},
357   { 0x62,     OP_2BYTE|OP_MMX,            &i386_device::mmx_punpckldq_r64_r64m32,    &i386_device::mmx_punpckldq_r64_r64m32,},
358   { 0x63,     OP_2BYTE|OP_MMX,            &i386_device::mmx_packsswb_r64_rm64,       &i386_device::mmx_packsswb_r64_rm64,   },
359   { 0x64,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pcmpgtb_r64_rm64,        &i386_device::mmx_pcmpgtb_r64_rm64,    },
360   { 0x65,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pcmpgtw_r64_rm64,        &i386_device::mmx_pcmpgtw_r64_rm64,    },
361   { 0x66,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pcmpgtd_r64_rm64,        &i386_device::mmx_pcmpgtd_r64_rm64,    },
362   { 0x67,     OP_2BYTE|OP_MMX,            &i386_device::mmx_packuswb_r64_rm64,       &i386_device::mmx_packuswb_r64_rm64,   },
363   { 0x68,     OP_2BYTE|OP_MMX,            &i386_device::mmx_punpckhbw_r64_rm64,      &i386_device::mmx_punpckhbw_r64_rm64,  },
364   { 0x69,     OP_2BYTE|OP_MMX,            &i386_device::mmx_punpckhwd_r64_rm64,      &i386_device::mmx_punpckhwd_r64_rm64,  },
365   { 0x6a,     OP_2BYTE|OP_MMX,            &i386_device::mmx_punpckhdq_r64_rm64,      &i386_device::mmx_punpckhdq_r64_rm64,  },
366   { 0x6b,     OP_2BYTE|OP_MMX,            &i386_device::mmx_packssdw_r64_rm64,       &i386_device::mmx_packssdw_r64_rm64,   },
367   { 0x6e,     OP_2BYTE|OP_MMX,            &i386_device::mmx_movd_r64_rm32,           &i386_device::mmx_movd_r64_rm32,       },
368   { 0x6f,     OP_2BYTE|OP_MMX,            &i386_device::mmx_movq_r64_rm64,           &i386_device::mmx_movq_r64_rm64,       },
369   { 0x70,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pshufw_r64_rm64_i8,      &i386_device::mmx_pshufw_r64_rm64_i8,  },
370   { 0x71,     OP_2BYTE|OP_MMX,            &i386_device::mmx_group_0f71,              &i386_device::mmx_group_0f71,          },
371   { 0x72,     OP_2BYTE|OP_MMX,            &i386_device::mmx_group_0f72,              &i386_device::mmx_group_0f72,          },
372   { 0x73,     OP_2BYTE|OP_MMX,            &i386_device::mmx_group_0f73,              &i386_device::mmx_group_0f73,          },
373   { 0x74,     OP_2BYTE|OP_CYRIX,          &i386_device::i386_cyrix_unknown,          &i386_device::i386_cyrix_unknown,      },
374   { 0x74,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pcmpeqb_r64_rm64,        &i386_device::mmx_pcmpeqb_r64_rm64,    },
375   { 0x75,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pcmpeqw_r64_rm64,        &i386_device::mmx_pcmpeqw_r64_rm64,    },
376   { 0x76,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pcmpeqd_r64_rm64,        &i386_device::mmx_pcmpeqd_r64_rm64,    },
377   { 0x77,     OP_2BYTE|OP_MMX,            &i386_device::mmx_emms,                    &i386_device::mmx_emms,                },
378   { 0x7e,     OP_2BYTE|OP_MMX,            &i386_device::mmx_movd_rm32_r64,           &i386_device::mmx_movd_rm32_r64,       },
379   { 0x7f,     OP_2BYTE|OP_MMX,            &i386_device::mmx_movq_rm64_r64,           &i386_device::mmx_movq_rm64_r64,       },
380   { 0x80,     OP_2BYTE|OP_I386,           &i386_device::i386_jo_rel16,               &i386_device::i386_jo_rel32,           },
381   { 0x81,     OP_2BYTE|OP_I386,           &i386_device::i386_jno_rel16,              &i386_device::i386_jno_rel32,          },
382   { 0x82,     OP_2BYTE|OP_I386,           &i386_device::i386_jc_rel16,               &i386_device::i386_jc_rel32,           },
383   { 0x83,     OP_2BYTE|OP_I386,           &i386_device::i386_jnc_rel16,              &i386_device::i386_jnc_rel32,          },
384   { 0x84,     OP_2BYTE|OP_I386,           &i386_device::i386_jz_rel16,               &i386_device::i386_jz_rel32,           },
385   { 0x85,     OP_2BYTE|OP_I386,           &i386_device::i386_jnz_rel16,              &i386_device::i386_jnz_rel32,          },
386   { 0x86,     OP_2BYTE|OP_I386,           &i386_device::i386_jbe_rel16,              &i386_device::i386_jbe_rel32,          },
387   { 0x87,     OP_2BYTE|OP_I386,           &i386_device::i386_ja_rel16,               &i386_device::i386_ja_rel32,           },
388   { 0x88,     OP_2BYTE|OP_I386,           &i386_device::i386_js_rel16,               &i386_device::i386_js_rel32,           },
389   { 0x89,     OP_2BYTE|OP_I386,           &i386_device::i386_jns_rel16,              &i386_device::i386_jns_rel32,          },
390   { 0x8A,     OP_2BYTE|OP_I386,           &i386_device::i386_jp_rel16,               &i386_device::i386_jp_rel32,           },
391   { 0x8B,     OP_2BYTE|OP_I386,           &i386_device::i386_jnp_rel16,              &i386_device::i386_jnp_rel32,          },
392   { 0x8C,     OP_2BYTE|OP_I386,           &i386_device::i386_jl_rel16,               &i386_device::i386_jl_rel32,           },
393   { 0x8D,     OP_2BYTE|OP_I386,           &i386_device::i386_jge_rel16,              &i386_device::i386_jge_rel32,          },
394   { 0x8E,     OP_2BYTE|OP_I386,           &i386_device::i386_jle_rel16,              &i386_device::i386_jle_rel32,          },
395   { 0x8F,     OP_2BYTE|OP_I386,           &i386_device::i386_jg_rel16,               &i386_device::i386_jg_rel32,           },
396   { 0x90,     OP_2BYTE|OP_I386,           &i386_device::i386_seto_rm8,               &i386_device::i386_seto_rm8,           },
397   { 0x91,     OP_2BYTE|OP_I386,           &i386_device::i386_setno_rm8,              &i386_device::i386_setno_rm8,          },
398   { 0x92,     OP_2BYTE|OP_I386,           &i386_device::i386_setc_rm8,               &i386_device::i386_setc_rm8,           },
399   { 0x93,     OP_2BYTE|OP_I386,           &i386_device::i386_setnc_rm8,              &i386_device::i386_setnc_rm8,          },
400   { 0x94,     OP_2BYTE|OP_I386,           &i386_device::i386_setz_rm8,               &i386_device::i386_setz_rm8,           },
401   { 0x95,     OP_2BYTE|OP_I386,           &i386_device::i386_setnz_rm8,              &i386_device::i386_setnz_rm8,          },
402   { 0x96,     OP_2BYTE|OP_I386,           &i386_device::i386_setbe_rm8,              &i386_device::i386_setbe_rm8,          },
403   { 0x97,     OP_2BYTE|OP_I386,           &i386_device::i386_seta_rm8,               &i386_device::i386_seta_rm8,           },
404   { 0x98,     OP_2BYTE|OP_I386,           &i386_device::i386_sets_rm8,               &i386_device::i386_sets_rm8,           },
405   { 0x99,     OP_2BYTE|OP_I386,           &i386_device::i386_setns_rm8,              &i386_device::i386_setns_rm8,          },
406   { 0x9A,     OP_2BYTE|OP_I386,           &i386_device::i386_setp_rm8,               &i386_device::i386_setp_rm8,           },
407   { 0x9B,     OP_2BYTE|OP_I386,           &i386_device::i386_setnp_rm8,              &i386_device::i386_setnp_rm8,          },
408   { 0x9C,     OP_2BYTE|OP_I386,           &i386_device::i386_setl_rm8,               &i386_device::i386_setl_rm8,           },
409   { 0x9D,     OP_2BYTE|OP_I386,           &i386_device::i386_setge_rm8,              &i386_device::i386_setge_rm8,          },
410   { 0x9E,     OP_2BYTE|OP_I386,           &i386_device::i386_setle_rm8,              &i386_device::i386_setle_rm8,          },
411   { 0x9F,     OP_2BYTE|OP_I386,           &i386_device::i386_setg_rm8,               &i386_device::i386_setg_rm8,           },
412   { 0xA0,     OP_2BYTE|OP_I386,           &i386_device::i386_push_fs16,              &i386_device::i386_push_fs32,          },
413   { 0xA1,     OP_2BYTE|OP_I386,           &i386_device::i386_pop_fs16,               &i386_device::i386_pop_fs32,           },
414   { 0xA2,     OP_2BYTE|OP_I486,           &i386_device::i486_cpuid,                  &i386_device::i486_cpuid,              },
415   { 0xA3,     OP_2BYTE|OP_I386,           &i386_device::i386_bt_rm16_r16,            &i386_device::i386_bt_rm32_r32,        },
416   { 0xA4,     OP_2BYTE|OP_I386,           &i386_device::i386_shld16_i8,              &i386_device::i386_shld32_i8,          },
417   { 0xA5,     OP_2BYTE|OP_I386,           &i386_device::i386_shld16_cl,              &i386_device::i386_shld32_cl,          },
418   { 0xA8,     OP_2BYTE|OP_I386,           &i386_device::i386_push_gs16,              &i386_device::i386_push_gs32,          },
419   { 0xA9,     OP_2BYTE|OP_I386,           &i386_device::i386_pop_gs16,               &i386_device::i386_pop_gs32,           },
420   { 0xAA,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_rsm,                 &i386_device::pentium_rsm,             },
421   { 0xAB,     OP_2BYTE|OP_I386,           &i386_device::i386_bts_rm16_r16,           &i386_device::i386_bts_rm32_r32,       },
422   { 0xAC,     OP_2BYTE|OP_I386,           &i386_device::i386_shrd16_i8,              &i386_device::i386_shrd32_i8,          },
423   { 0xAD,     OP_2BYTE|OP_I386,           &i386_device::i386_shrd16_cl,              &i386_device::i386_shrd32_cl,          },
424   { 0xAE,     OP_2BYTE|OP_SSE,            &i386_device::sse_sse_group0fae,           &i386_device::sse_sse_group0fae,       },
425   { 0xAF,     OP_2BYTE|OP_I386,           &i386_device::i386_imul_r16_rm16,          &i386_device::i386_imul_r32_rm32,      },
426   { 0xB0,     OP_2BYTE|OP_I486,           &i386_device::i486_cmpxchg_rm8_r8,         &i386_device::i486_cmpxchg_rm8_r8,     },
427   { 0xB1,     OP_2BYTE|OP_I486,           &i386_device::i486_cmpxchg_rm16_r16,       &i386_device::i486_cmpxchg_rm32_r32,   },
428   { 0xB2,     OP_2BYTE|OP_I386,           &i386_device::i386_lss16,                  &i386_device::i386_lss32,              },
429   { 0xB3,     OP_2BYTE|OP_I386,           &i386_device::i386_btr_rm16_r16,           &i386_device::i386_btr_rm32_r32,       },
430   { 0xB4,     OP_2BYTE|OP_I386,           &i386_device::i386_lfs16,                  &i386_device::i386_lfs32,              },
431   { 0xB5,     OP_2BYTE|OP_I386,           &i386_device::i386_lgs16,                  &i386_device::i386_lgs32,              },
432   { 0xB6,     OP_2BYTE|OP_I386,           &i386_device::i386_movzx_r16_rm8,          &i386_device::i386_movzx_r32_rm8,      },
433   { 0xB7,     OP_2BYTE|OP_I386,           &i386_device::i386_invalid,                &i386_device::i386_movzx_r32_rm16,     },
434   { 0xBA,     OP_2BYTE|OP_I386,           &i386_device::i386_group0FBA_16,           &i386_device::i386_group0FBA_32,       },
435   { 0xBB,     OP_2BYTE|OP_I386,           &i386_device::i386_btc_rm16_r16,           &i386_device::i386_btc_rm32_r32,       },
436   { 0xBC,     OP_2BYTE|OP_I386,           &i386_device::i386_bsf_r16_rm16,           &i386_device::i386_bsf_r32_rm32,       },
437   { 0xBD,     OP_2BYTE|OP_I386,           &i386_device::i386_bsr_r16_rm16,           &i386_device::i386_bsr_r32_rm32,       },
438   { 0xBE,     OP_2BYTE|OP_I386,           &i386_device::i386_movsx_r16_rm8,          &i386_device::i386_movsx_r32_rm8,      },
439   { 0xBF,     OP_2BYTE|OP_I386,           &i386_device::i386_invalid,                &i386_device::i386_movsx_r32_rm16,     },
440   { 0xC0,     OP_2BYTE|OP_I486,           &i386_device::i486_xadd_rm8_r8,            &i386_device::i486_xadd_rm8_r8,        },
441   { 0xC1,     OP_2BYTE|OP_I486,           &i386_device::i486_xadd_rm16_r16,          &i386_device::i486_xadd_rm32_r32,      },
442   { 0xC2,     OP_2BYTE|OP_SSE,            &i386_device::sse_cmpps_r128_rm128_i8,     &i386_device::sse_cmpps_r128_rm128_i8, },
443   { 0xC3,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_movnti_m16_r16,      &i386_device::pentium_movnti_m32_r32,  },
444   { 0xC4,     OP_2BYTE|OP_SSE,            &i386_device::sse_pinsrw_r64_r16m16_i8,    &i386_device::sse_pinsrw_r64_r32m16_i8,},
445   { 0xC5,     OP_2BYTE|OP_SSE,            &i386_device::sse_pextrw_r16_r64_i8,       &i386_device::sse_pextrw_r32_r64_i8,   },
446   { 0xC6,     OP_2BYTE|OP_SSE,            &i386_device::sse_shufps,                  &i386_device::sse_shufps,              },
447   { 0xC7,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_cmpxchg8b_m64,       &i386_device::pentium_cmpxchg8b_m64,   },
448   { 0xC8,     OP_2BYTE|OP_I486,           &i386_device::i486_bswap_eax,              &i386_device::i486_bswap_eax,          },
449   { 0xC9,     OP_2BYTE|OP_I486,           &i386_device::i486_bswap_ecx,              &i386_device::i486_bswap_ecx,          },
450   { 0xCA,     OP_2BYTE|OP_I486,           &i386_device::i486_bswap_edx,              &i386_device::i486_bswap_edx,          },
451   { 0xCB,     OP_2BYTE|OP_I486,           &i386_device::i486_bswap_ebx,              &i386_device::i486_bswap_ebx,          },
452   { 0xCC,     OP_2BYTE|OP_I486,           &i386_device::i486_bswap_esp,              &i386_device::i486_bswap_esp,          },
453   { 0xCD,     OP_2BYTE|OP_I486,           &i386_device::i486_bswap_ebp,              &i386_device::i486_bswap_ebp,          },
454   { 0xCE,     OP_2BYTE|OP_I486,           &i386_device::i486_bswap_esi,              &i386_device::i486_bswap_esi,          },
455   { 0xCF,     OP_2BYTE|OP_I486,           &i386_device::i486_bswap_edi,              &i386_device::i486_bswap_edi,          },
456   { 0xD1,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psrlw_r64_rm64,          &i386_device::mmx_psrlw_r64_rm64,      },
457   { 0xD2,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psrld_r64_rm64,          &i386_device::mmx_psrld_r64_rm64,      },
458   { 0xD3,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psrlq_r64_rm64,          &i386_device::mmx_psrlq_r64_rm64,      },
459   { 0xD4,     OP_2BYTE|OP_MMX,            &i386_device::mmx_paddq_r64_rm64,          &i386_device::mmx_paddq_r64_rm64,      },
460   { 0xD5,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pmullw_r64_rm64,         &i386_device::mmx_pmullw_r64_rm64,     },
461   { 0xD7,     OP_2BYTE|OP_SSE,            &i386_device::sse_pmovmskb_r16_r64,        &i386_device::sse_pmovmskb_r32_r64,    },
462   { 0xD8,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psubusb_r64_rm64,        &i386_device::mmx_psubusb_r64_rm64,    },
463   { 0xD9,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psubusw_r64_rm64,        &i386_device::mmx_psubusw_r64_rm64,    },
464   { 0xDA,     OP_2BYTE|OP_SSE,            &i386_device::sse_pminub_r64_rm64,         &i386_device::sse_pminub_r64_rm64,     },
465   { 0xDB,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pand_r64_rm64,           &i386_device::mmx_pand_r64_rm64,       },
466   { 0xDC,     OP_2BYTE|OP_MMX,            &i386_device::mmx_paddusb_r64_rm64,        &i386_device::mmx_paddusb_r64_rm64,    },
467   { 0xDD,     OP_2BYTE|OP_MMX,            &i386_device::mmx_paddusw_r64_rm64,        &i386_device::mmx_paddusw_r64_rm64,    },
468   { 0xDE,     OP_2BYTE|OP_SSE,            &i386_device::sse_pmaxub_r64_rm64,         &i386_device::sse_pmaxub_r64_rm64,     },
469   { 0xDF,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pandn_r64_rm64,          &i386_device::mmx_pandn_r64_rm64,      },
470   { 0xE0,     OP_2BYTE|OP_SSE,            &i386_device::sse_pavgb_r64_rm64,          &i386_device::sse_pavgb_r64_rm64,      },
471   { 0xE1,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psraw_r64_rm64,          &i386_device::mmx_psraw_r64_rm64,      },
472   { 0xE2,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psrad_r64_rm64,          &i386_device::mmx_psrad_r64_rm64,      },
473   { 0xE3,     OP_2BYTE|OP_SSE,            &i386_device::sse_pavgw_r64_rm64,          &i386_device::sse_pavgw_r64_rm64,      },
474   { 0xE4,     OP_2BYTE|OP_SSE,            &i386_device::sse_pmulhuw_r64_rm64,        &i386_device::sse_pmulhuw_r64_rm64,    },
475   { 0xE5,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pmulhw_r64_rm64,         &i386_device::mmx_pmulhw_r64_rm64,     },
476   { 0xE7,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_movntq_m64_r64,      &i386_device::pentium_movntq_m64_r64,  },
477   { 0xE8,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psubsb_r64_rm64,         &i386_device::mmx_psubsb_r64_rm64,     },
478   { 0xE9,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psubsw_r64_rm64,         &i386_device::mmx_psubsw_r64_rm64,     },
479   { 0xEA,     OP_2BYTE|OP_SSE,            &i386_device::sse_pminsw_r64_rm64,         &i386_device::sse_pminsw_r64_rm64,     },
480   { 0xEB,     OP_2BYTE|OP_MMX,            &i386_device::mmx_por_r64_rm64,            &i386_device::mmx_por_r64_rm64,        },
481   { 0xEC,     OP_2BYTE|OP_MMX,            &i386_device::mmx_paddsb_r64_rm64,         &i386_device::mmx_paddsb_r64_rm64,     },
482   { 0xED,     OP_2BYTE|OP_MMX,            &i386_device::mmx_paddsw_r64_rm64,         &i386_device::mmx_paddsw_r64_rm64,     },
483   { 0xEE,     OP_2BYTE|OP_SSE,            &i386_device::sse_pmaxsw_r64_rm64,         &i386_device::sse_pmaxsw_r64_rm64,     },
484   { 0xEF,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pxor_r64_rm64,           &i386_device::mmx_pxor_r64_rm64,       },
485   { 0xF1,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psllw_r64_rm64,          &i386_device::mmx_psllw_r64_rm64,      },
486   { 0xF2,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pslld_r64_rm64,          &i386_device::mmx_pslld_r64_rm64,      },
487   { 0xF3,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psllq_r64_rm64,          &i386_device::mmx_psllq_r64_rm64,      },
488   { 0xF4,     OP_2BYTE|OP_SSE,            &i386_device::sse_pmuludq_r64_rm64,        &i386_device::sse_pmuludq_r64_rm64,    },
489   { 0xF5,     OP_2BYTE|OP_MMX,            &i386_device::mmx_pmaddwd_r64_rm64,        &i386_device::mmx_pmaddwd_r64_rm64,    },
490   { 0xF6,     OP_2BYTE|OP_SSE,            &i386_device::sse_psadbw_r64_rm64,         &i386_device::sse_psadbw_r64_rm64,     },
491   { 0xf7,     OP_2BYTE|OP_PENTIUM,        &i386_device::pentium_maskmovq_r64_r64,    &i386_device::pentium_maskmovq_r64_r64,},
492   { 0xF8,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psubb_r64_rm64,          &i386_device::mmx_psubb_r64_rm64,      },
493   { 0xF9,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psubw_r64_rm64,          &i386_device::mmx_psubw_r64_rm64,      },
494   { 0xFA,     OP_2BYTE|OP_MMX,            &i386_device::mmx_psubd_r64_rm64,          &i386_device::mmx_psubd_r64_rm64,      },
495   { 0xFB,     OP_2BYTE|OP_SSE,            &i386_device::sse_psubq_r64_rm64,          &i386_device::sse_psubq_r64_rm64,      },
496   { 0xFC,     OP_2BYTE|OP_MMX,            &i386_device::mmx_paddb_r64_rm64,          &i386_device::mmx_paddb_r64_rm64,      },
497   { 0xFD,     OP_2BYTE|OP_MMX,            &i386_device::mmx_paddw_r64_rm64,          &i386_device::mmx_paddw_r64_rm64,      },
498   { 0xFE,     OP_2BYTE|OP_MMX,            &i386_device::mmx_paddd_r64_rm64,          &i386_device::mmx_paddd_r64_rm64,      },
499499   /* F3 0F ?? */
500   { 0x10,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_movss_r128_rm128,        &i386_device::sse_movss_r128_rm128,    false},
501   { 0x11,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_movss_rm128_r128,        &i386_device::sse_movss_rm128_r128,    false},
502   { 0x12,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_movsldup_r128_rm128,     &i386_device::sse_movsldup_r128_rm128, false},
503   { 0x16,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_movshdup_r128_rm128,     &i386_device::sse_movshdup_r128_rm128, false},
504   { 0x2A,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_cvtsi2ss_r128_rm32,      &i386_device::sse_cvtsi2ss_r128_rm32,  false},
505   { 0x2C,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_cvttss2si_r32_r128m32,   &i386_device::sse_cvttss2si_r32_r128m32,false},
506   { 0x2D,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_cvtss2si_r32_r128m32,    &i386_device::sse_cvtss2si_r32_r128m32,false},
507   { 0x51,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_sqrtss_r128_r128m32,     &i386_device::sse_sqrtss_r128_r128m32, false},
508   { 0x52,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_rsqrtss_r128_r128m32,    &i386_device::sse_rsqrtss_r128_r128m32,false},
509   { 0x53,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_rcpss_r128_r128m32,      &i386_device::sse_rcpss_r128_r128m32,  false},
510   { 0x58,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_addss,                   &i386_device::sse_addss,               false},
511   { 0x59,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_mulss,                   &i386_device::sse_mulss,               false},
512   { 0x5A,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_cvtss2sd_r128_r128m32,   &i386_device::sse_cvtss2sd_r128_r128m32,false},
513   { 0x5B,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_cvttps2dq_r128_rm128,    &i386_device::sse_cvttps2dq_r128_rm128,false},
514   { 0x5C,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_subss,                   &i386_device::sse_subss,               false},
515   { 0x5D,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_minss_r128_r128m32,      &i386_device::sse_minss_r128_r128m32,  false},
516   { 0x5E,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_divss,                   &i386_device::sse_divss,               false},
517   { 0x5F,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_maxss_r128_r128m32,      &i386_device::sse_maxss_r128_r128m32,  false},
518   { 0x6F,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_movdqu_r128_rm128,       &i386_device::sse_movdqu_r128_rm128,   false},
519   { 0x70,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_pshufhw_r128_rm128_i8,   &i386_device::sse_pshufhw_r128_rm128_i8,false},
520   { 0x7E,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_movq_r128_r128m64,       &i386_device::sse_movq_r128_r128m64,   false},
521   { 0x7F,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_movdqu_rm128_r128,       &i386_device::sse_movdqu_rm128_r128,   false},
522   { 0xB8,     OP_3BYTEF3|OP_PENTIUM,      &i386_device::pentium_popcnt_r16_rm16,     &i386_device::pentium_popcnt_r32_rm32, false},
523   { 0xBC,     OP_3BYTEF3|OP_PENTIUM,      &i386_device::pentium_tzcnt_r16_rm16,      &i386_device::pentium_tzcnt_r32_rm32, false},
524   { 0xC2,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_cmpss_r128_r128m32_i8,   &i386_device::sse_cmpss_r128_r128m32_i8,false},
525   { 0xD6,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_movq2dq_r128_r64,        &i386_device::sse_movq2dq_r128_r64,    false},
526   { 0xE6,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_cvtdq2pd_r128_r128m64,   &i386_device::sse_cvtdq2pd_r128_r128m64,false}
500   { 0x10,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_movss_r128_rm128,        &i386_device::sse_movss_r128_rm128,    },
501   { 0x11,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_movss_rm128_r128,        &i386_device::sse_movss_rm128_r128,    },
502   { 0x12,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_movsldup_r128_rm128,     &i386_device::sse_movsldup_r128_rm128, },
503   { 0x16,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_movshdup_r128_rm128,     &i386_device::sse_movshdup_r128_rm128, },
504   { 0x2A,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_cvtsi2ss_r128_rm32,      &i386_device::sse_cvtsi2ss_r128_rm32,  },
505   { 0x2C,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_cvttss2si_r32_r128m32,   &i386_device::sse_cvttss2si_r32_r128m32,},
506   { 0x2D,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_cvtss2si_r32_r128m32,    &i386_device::sse_cvtss2si_r32_r128m32,},
507   { 0x51,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_sqrtss_r128_r128m32,     &i386_device::sse_sqrtss_r128_r128m32, },
508   { 0x52,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_rsqrtss_r128_r128m32,    &i386_device::sse_rsqrtss_r128_r128m32,},
509   { 0x53,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_rcpss_r128_r128m32,      &i386_device::sse_rcpss_r128_r128m32,  },
510   { 0x58,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_addss,                   &i386_device::sse_addss,               },
511   { 0x59,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_mulss,                   &i386_device::sse_mulss,               },
512   { 0x5A,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_cvtss2sd_r128_r128m32,   &i386_device::sse_cvtss2sd_r128_r128m32,},
513   { 0x5B,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_cvttps2dq_r128_rm128,    &i386_device::sse_cvttps2dq_r128_rm128,},
514   { 0x5C,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_subss,                   &i386_device::sse_subss,               },
515   { 0x5D,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_minss_r128_r128m32,      &i386_device::sse_minss_r128_r128m32,  },
516   { 0x5E,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_divss,                   &i386_device::sse_divss,               },
517   { 0x5F,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_maxss_r128_r128m32,      &i386_device::sse_maxss_r128_r128m32,  },
518   { 0x6F,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_movdqu_r128_rm128,       &i386_device::sse_movdqu_r128_rm128,   },
519   { 0x70,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_pshufhw_r128_rm128_i8,   &i386_device::sse_pshufhw_r128_rm128_i8,},
520   { 0x7E,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_movq_r128_r128m64,       &i386_device::sse_movq_r128_r128m64,   },
521   { 0x7F,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_movdqu_rm128_r128,       &i386_device::sse_movdqu_rm128_r128,   },
522   { 0xB8,     OP_3BYTEF3|OP_PENTIUM,      &i386_device::pentium_popcnt_r16_rm16,     &i386_device::pentium_popcnt_r32_rm32, },
523   { 0xBC,     OP_3BYTEF3|OP_PENTIUM,      &i386_device::pentium_tzcnt_r16_rm16,      &i386_device::pentium_tzcnt_r32_rm32, },
524   { 0xC2,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_cmpss_r128_r128m32_i8,   &i386_device::sse_cmpss_r128_r128m32_i8,},
525   { 0xD6,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_movq2dq_r128_r64,        &i386_device::sse_movq2dq_r128_r64,    },
526   { 0xE6,     OP_3BYTEF3|OP_SSE,          &i386_device::sse_cvtdq2pd_r128_r128m64,   &i386_device::sse_cvtdq2pd_r128_r128m64}
527527};
trunk/src/emu/cpu/i386/i386ops.inc
r241525r241526
24832483void i386_device::i386_lock()              // Opcode 0xf0
24842484{
24852485   // lock doesn't depend on iopl on 386
2486   m_lock = true;
2486   // TODO: lock causes UD on unlockable opcodes
24872487   CYCLES(CYCLES_LOCK);       // TODO: Determine correct cycle count
24882488   i386_decode_opcode();
24892489}
trunk/src/mame/drivers/jackie.c
r241525r241526
267267void jackie_state::show_out()
268268{
269269#ifdef MAME_DEBUG
270//  popmessage("%02x %02x %02x", m_out[0], m_out[1], m_out[2]);
270//  popmessage("%02x %02x %02x", state->m_out[0], state->m_out[1], state->m_out[2]);
271271   popmessage("520: %04x %04x %04x %04x %04x\n560: %04x %04x %04x %04x %04x\n5A0: %04x %04x %04x %04x %04x",
272272      m_unk_reg[0][0],m_unk_reg[0][1],m_unk_reg[0][2],m_unk_reg[0][3],m_unk_reg[0][4],
273273      m_unk_reg[1][0],m_unk_reg[1][1],m_unk_reg[1][2],m_unk_reg[1][3],m_unk_reg[1][4],
trunk/src/mame/drivers/konamigx.c
r241525r241526
106106
107107
108108
109
110static int konamigx_cfgport;
111
112static int gx_rdport1_3, gx_syncen;
113
114static emu_timer *dmadelay_timer;
115static emu_timer *boothack_timer;
116
109117/**********************************************************************************/
110118/*
111119   Konami ESC (E Security Chip) protection chip found on:
r241525r241526
171179
172180static void generate_sprites(address_space &space, UINT32 src, UINT32 spr, int count)
173181{
174   int scount = 0;
175   int ecount = 0;
182   int i;
183   int scount;
184   int ecount;
185   scount = 0;
186   ecount = 0;
176187
177   for(int i=0; i<count; i++) {
188   for(i=0; i<count; i++) {
178189      UINT32 adr = src + 0x100*i;
179190      int pri;
180191      if(!space.read_word(adr+2))
r241525r241526
189200   }
190201   //qsort(sprites, ecount, sizeof(struct sprite_entry), pri_comp);
191202
192   for(int i=0; i<ecount; i++) {
203   for(i=0; i<ecount; i++) {
193204      UINT32 adr = sprites[i].adr;
194205      if(adr) {
195206         UINT32 set =(space.read_word(adr) << 16)|space.read_word(adr+2);
r241525r241526
304315   }
305316}
306317
307void konamigx_state::tkmmpzdm_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4)
318static void tkmmpzdm_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4)
308319{
309   konamigx_esc_alert(m_workram, 0x0142, 0x100, 0);
320   konamigx_state* state = space.machine().driver_data<konamigx_state>();
321   state->konamigx_esc_alert(space.machine().driver_data<konamigx_state>()->m_workram, 0x0142, 0x100, 0);
310322}
311323
312void konamigx_state::dragoonj_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4)
324static void dragoonj_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4)
313325{
314   konamigx_esc_alert(m_workram, 0x5c00, 0x100, 0);
326   konamigx_state* state = space.machine().driver_data<konamigx_state>();
327   state->konamigx_esc_alert(space.machine().driver_data<konamigx_state>()->m_workram, 0x5c00, 0x100, 0);
315328}
316329
317void konamigx_state::sal2_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4)
330static void sal2_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4)
318331{
319   konamigx_esc_alert(m_workram, 0x1c8c, 0x172, 1);
332   konamigx_state* state = space.machine().driver_data<konamigx_state>();
333   state->konamigx_esc_alert(space.machine().driver_data<konamigx_state>()->m_workram, 0x1c8c, 0x172, 1);
320334}
321335
322void konamigx_state::sexyparo_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4)
336static void sexyparo_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4)
323337{
324338   // The d20000 should probably be p3
325339   generate_sprites(space, 0xc00604, 0xd20000, 0xfc);
326340}
327341
328void konamigx_state::tbyahhoo_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4)
342static void tbyahhoo_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4)
329343{
330344   generate_sprites(space, 0xc00000, 0xd20000, 0x100);
331345}
332346
333void konamigx_state::daiskiss_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4)
347static void daiskiss_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4)
334348{
335349   generate_sprites(space, 0xc00000, 0xd20000, 0x100);
336350}
337351
352static UINT8 esc_program[4096];
353static void (*esc_cb)(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4);
354
338355WRITE32_MEMBER(konamigx_state::esc_w)
339356{
340357   UINT32 opcode;
r241525r241526
369386         break;
370387      case 2: // Load program
371388         for(i=0; i<4096; i++)
372            m_esc_program[i] = space.read_byte(params+i);
389            esc_program[i] = space.read_byte(params+i);
373390/*
374391            {
375392                FILE *f;
r241525r241526
383400*/
384401         break;
385402      case 1: // Run program
386         if(m_esc_cb) {
403         if(esc_cb) {
387404            UINT32 p1 = (space.read_word(params+0)<<16) | space.read_word(params+2);
388405            UINT32 p2 = (space.read_word(params+4)<<16) | space.read_word(params+6);
389406            UINT32 p3 = (space.read_word(params+8)<<16) | space.read_word(params+10);
390407            UINT32 p4 = (space.read_word(params+12)<<16) | space.read_word(params+14);
391            (this->*m_esc_cb)(space, p1, p2, p3, p4);
408            esc_cb(space, p1, p2, p3, p4);
392409         }
393410         break;
394411      default:
r241525r241526
397414      }
398415      space.write_byte(data+9, ESTATE_END);
399416
400      if (m_gx_wrport1_1 & 0x10)
417      if (konamigx_wrport1_1 & 0x10)
401418      {
402         m_gx_rdport1_3 &= ~8;
419         gx_rdport1_3 &= ~8;
403420         m_maincpu->set_input_line(4, HOLD_LINE);
404421      }
405422   }
r241525r241526
422439
423440CUSTOM_INPUT_MEMBER(konamigx_state::gx_rdport1_3_r)
424441{
425   return (m_gx_rdport1_3 >> 1);
442   return (gx_rdport1_3 >> 1);
426443}
427444
428445WRITE32_MEMBER(konamigx_state::eeprom_w)
r241525r241526
445462
446463      m_eepromout->write(odata, 0xff);
447464
448      m_gx_wrport1_0 = odata;
465      konamigx_wrport1_0 = odata;
449466   }
450467
451468   if (ACCESSING_BITS_16_23)
r241525r241526
461478        bit 0 = CCU1-INT1 enable
462479      */
463480
464      m_gx_wrport1_1 = (data>>16)&0xff;
465//      logerror("write %x to IRQ register (PC=%x)\n", m_gx_wrport1_1, space.device().safe_pc());
481      konamigx_wrport1_1 = (data>>16)&0xff;
482//      logerror("write %x to IRQ register (PC=%x)\n", konamigx_wrport1_1, space.device().safe_pc());
466483
467      // m_gx_syncen is to ensure each IRQ is triggered at least once after being enabled
468      if (m_gx_wrport1_1 & 0x80)
469         m_gx_syncen |= m_gx_wrport1_1 & 0x1f;
484      // gx_syncen is to ensure each IRQ is trigger at least once after being enabled
485      if (konamigx_wrport1_1 & 0x80)
486         gx_syncen |= konamigx_wrport1_1 & 0x1f;
470487   }
471488}
472489
r241525r241526
509526
510527      m_k055673->k053246_set_objcha_line((data&0x100000) ? ASSERT_LINE : CLEAR_LINE);
511528
512      m_gx_wrport2 = (data>>16)&0xff;
529      konamigx_wrport2 = (data>>16)&0xff;
513530   }
514531}
515532
r241525r241526
517534/**********************************************************************************/
518535/* IRQ controllers */
519536
537static int suspension_active, resume_trigger;
538
520539READ32_MEMBER(konamigx_state::ccu_r)
521540{
522541   // the routine at 204abe in opengolf polls to see if we're in vblank (it wants values between 0x111 and 0x1df)
r241525r241526
540559      if (ACCESSING_BITS_24_31)
541560      {
542561         m_maincpu->set_input_line(1, CLEAR_LINE);
543         m_gx_syncen |= 0x20;
562         gx_syncen |= 0x20;
544563      }
545564
546565      // hblank interrupt ACK
547566      if (ACCESSING_BITS_8_15)
548567      {
549568         m_maincpu->set_input_line(2, CLEAR_LINE);
550         m_gx_syncen |= 0x40;
569         gx_syncen |= 0x40;
551570      }
552571   }
553572}
r241525r241526
569588TIMER_CALLBACK_MEMBER(konamigx_state::dmaend_callback)
570589{
571590   // foul-proof (CPU0 could be deactivated while we wait)
572   if (m_resume_trigger && m_suspension_active)
591   if (resume_trigger && suspension_active)
573592   {
574      m_suspension_active = 0;
575      machine().scheduler().trigger(m_resume_trigger);
593      suspension_active = 0;
594      machine().scheduler().trigger(resume_trigger);
576595   }
577596
578597   // DMA busy flag must be cleared before triggering IRQ 3
579   m_gx_rdport1_3 &= ~2;
598   gx_rdport1_3 &= ~2;
580599
581600   // IRQ 3 is the "object DMA end" IRQ also happens during vblank
582   if ((m_gx_wrport1_1 & 0x84) == 0x84 || (m_gx_syncen & 4))
601   if ((konamigx_wrport1_1 & 0x84) == 0x84 || (gx_syncen & 4))
583602   {
584      m_gx_syncen &= ~4;
603      gx_syncen &= ~4;
585604
586605      // lower OBJINT-REQ flag and trigger interrupt
587      m_gx_rdport1_3 &= ~0x80;
606      gx_rdport1_3 &= ~0x80;
588607      m_maincpu->set_input_line(3, HOLD_LINE);
589608   }
590609}
r241525r241526
592611void konamigx_state::dmastart_callback(int data)
593612{
594613   // raise the DMA busy flag
595   m_gx_rdport1_3 |= 2;
614   gx_rdport1_3 |= 2;
596615
597616   // begin transfer if DMAEN(bit4 of OBJSET1) is set (see p.48)
598617   if (m_k055673->k053246_read_register(5) & 0x10)
r241525r241526
602621   }
603622
604623   // simulate DMA delay
605   m_dmadelay_timer->adjust(attotime::from_usec(120));
624   dmadelay_timer->adjust(attotime::from_usec(120));
606625}
607626
608627
609628INTERRUPT_GEN_MEMBER(konamigx_state::konamigx_vbinterrupt)
610629{
611630   // lift idle suspension
612   if (m_resume_trigger && m_suspension_active)
631   if (resume_trigger && suspension_active)
613632   {
614      m_suspension_active = 0;
615      machine().scheduler().trigger(m_resume_trigger);
633      suspension_active = 0;
634      machine().scheduler().trigger(resume_trigger);
616635   }
617636
618637   // IRQ 1 is the main 60hz vblank interrupt
619   if (m_gx_syncen & 0x20)
638   if (gx_syncen & 0x20)
620639   {
621      m_gx_syncen &= ~0x20;
640      gx_syncen &= ~0x20;
622641
623      if ((m_gx_wrport1_1 & 0x81) == 0x81 || (m_gx_syncen & 1))
642      if ((konamigx_wrport1_1 & 0x81) == 0x81 || (gx_syncen & 1))
624643      {
625         m_gx_syncen &= ~1;
644         gx_syncen &= ~1;
626645         device.execute().set_input_line(1, HOLD_LINE);
627646      }
628647   }
r241525r241526
637656   if (scanline == 240)
638657   {
639658      // lift idle suspension
640      if (m_resume_trigger && m_suspension_active)
659      if (resume_trigger && suspension_active)
641660      {
642         m_suspension_active = 0;
643         machine().scheduler().trigger(m_resume_trigger);
661         suspension_active = 0;
662         machine().scheduler().trigger(resume_trigger);
644663      }
645664
646665      // IRQ 1 is the main 60hz vblank interrupt
647      // the m_gx_syncen & 0x20 test doesn't work on type 3 or 4 ROM boards, likely because the ROM board
666      // the gx_syncen & 0x20 test doesn't work on type 3 or 4 ROM boards, likely because the ROM board
648667      // generates the timing in those cases.  With this change, rushing heroes and rng2 boot :)
649668
650669      // maybe this interrupt should only be every 30fps, or maybe there are flags to prevent the game running too fast
651670      // the real hardware should output the display for each screen on alternate frames
652671      //  if(device->m_screen->frame_number() & 1)
653      if (1) // m_gx_syncen & 0x20)
672      if (1) // gx_syncen & 0x20)
654673      {
655         m_gx_syncen &= ~0x20;
674         gx_syncen &= ~0x20;
656675
657         if ((m_gx_wrport1_1 & 0x81) == 0x81 || (m_gx_syncen & 1))
676         if ((konamigx_wrport1_1 & 0x81) == 0x81 || (gx_syncen & 1))
658677         {
659            m_gx_syncen &= ~1;
678            gx_syncen &= ~1;
660679            m_maincpu->set_input_line(1, HOLD_LINE);
661680
662681         }
r241525r241526
667686   else if(scanline < 240) // hblank
668687   {
669688      // IRQ 2 is a programmable interrupt with scanline resolution
670      if (m_gx_syncen & 0x40)
689      if (gx_syncen & 0x40)
671690      {
672         m_gx_syncen &= ~0x40;
691         gx_syncen &= ~0x40;
673692
674         if ((m_gx_wrport1_1 & 0x82) == 0x82 || (m_gx_syncen & 2))
693         if ((konamigx_wrport1_1 & 0x82) == 0x82 || (gx_syncen & 2))
675694         {
676            m_gx_syncen &= ~2;
695            gx_syncen &= ~2;
677696            m_maincpu->set_input_line(2, HOLD_LINE);
678697         }
679698      }
r241525r241526
740759   return ROM[offset];
741760}
742761
762//static int sync_frame = 0;
763
743764READ32_MEMBER(konamigx_state::type3_sync_r)
744765{
745766   if(m_konamigx_current_frame==0)
r241525r241526
747768   else
748769      return 0;// return 0xfffffffe | 0;
749770}
771static int last_prot_op, last_prot_clk;
750772
751
752773/*
753774    Run and Gun 2, Rushing Heroes, Winning Spike, and Vs. Net Soccer contain a XILINX FPGA that serves as security.
754775
r241525r241526
823844    move.l  #$C10400,($C102EC).l       move.l  #$C10400,($C102EC).l
824845*/
825846
847//static int cc=0;
848
826849WRITE32_MEMBER(konamigx_state::type4_prot_w)
827850{
828851   int clk;
r241525r241526
830853
831854   if (offset == 1)
832855   {
833      m_last_prot_op = data>>16;
856      last_prot_op = data>>16;
834857   }
835858   else
836859   {
837860      data >>= 16;
838861
839862      clk = data & 0x200;
840      if ((clk == 0) && (m_last_prot_clk != 0))
863      if ((clk == 0) && (last_prot_clk != 0))
841864      {
842         if (m_last_prot_op != -1)
865         if (last_prot_op != -1)
843866         {
844//              osd_printf_debug("type 4 prot command: %x\n", m_last_prot_op);
867//              osd_printf_debug("type 4 prot command: %x\n", last_prot_op);
845868            /*
846869                known commands:
847870                rng2   rushhero  vsnet  winspike   what
r241525r241526
851874                       0d97  0515              parse big DMA list at c10200
852875                             57a       copy 4 bytes from c00f10 to c10f00 and 4 bytes from c00f30 to c0fe00
853876            */
854            if ((m_last_prot_op == 0xa56) || (m_last_prot_op == 0xd96) || (m_last_prot_op == 0xd14) || (m_last_prot_op == 0xd1c))
877            if ((last_prot_op == 0xa56) || (last_prot_op == 0xd96) || (last_prot_op == 0xd14) || (last_prot_op == 0xd1c))
855878            {
856879               // memcpy from c01000 to c01400 for 0x400 bytes (startup check for type 4 games)
857880               for (i = 0; i < 0x400; i += 2)
r241525r241526
859882                  space.write_word(0xc01400+i, space.read_word(0xc01000+i));
860883               }
861884            }
862            else if(m_last_prot_op == 0x57a)  // winspike
885            else if(last_prot_op == 0x57a)  // winspike
863886            {
864887               /* player 1 input buffer protection */
865888               space.write_dword(0xc10f00, space.read_dword(0xc00f10));
r241525r241526
871894               space.write_dword(0xc0fe00, space.read_dword(0xc00f30));
872895               space.write_dword(0xc0fe04, space.read_dword(0xc00f34));
873896            }
874            else if(m_last_prot_op == 0xd97)  // rushhero
897            else if(last_prot_op == 0xd97)  // rushhero
875898            {
876899               int src = 0xc09ff0;
877900               int dst = 0xd20000;
r241525r241526
894917               space.write_byte(0xc01cc4, ~space.read_byte(0xc00547));
895918               space.write_byte(0xc01cc5, ~space.read_byte(0xc00567));
896919            }
897            else if(m_last_prot_op == 0xb16) // slamdnk2
920            else if(last_prot_op == 0xb16) // slamdnk2
898921            {
899922               int src = 0xc01000;
900923               int dst = 0xd20000;
r241525r241526
909932
910933               //maybe here there's a [$d8001f] <- 0x31 write too?
911934            }
912            else if(m_last_prot_op == 0x515) // vsnetscr screen 1
935            else if(last_prot_op == 0x515) // vsnetscr screen 1
913936            {
914937               int adr;
915               //printf("GXT4: command %x %d (PC=%x)\n", m_last_prot_op, cc++, space.device().safe_pc());
938               //printf("GXT4: command %x %d (PC=%x)\n", last_prot_op, cc++, space.device().safe_pc());
916939               for (adr = 0; adr < 0x400; adr += 2)
917940                  space.write_word(0xc01c00+adr, space.read_word(0xc01800+adr));
918941            }
919            else if(m_last_prot_op == 0x115d) // vsnetscr screen 2
942            else if(last_prot_op == 0x115d) // vsnetscr screen 2
920943            {
921944               int adr;
922               //printf("GXT4: command %x %d (PC=%x)\n", m_last_prot_op, cc++, space.device().safe_pc());
945               //printf("GXT4: command %x %d (PC=%x)\n", last_prot_op, cc++, space.device().safe_pc());
923946               for (adr = 0; adr < 0x400; adr += 2)
924947                  space.write_word(0xc18c00+adr, space.read_word(0xc18800+adr));
925948            }
926949            else
927950            {
928               printf("GXT4: unknown protection command %x (PC=%x)\n", m_last_prot_op, space.device().safe_pc());
951               printf("GXT4: unknown protection command %x (PC=%x)\n", last_prot_op, space.device().safe_pc());
929952            }
930953
931            if (m_gx_wrport1_1 & 0x10)
954            if (konamigx_wrport1_1 & 0x10)
932955            {
933               m_gx_rdport1_3 &= ~8;
956               gx_rdport1_3 &= ~8;
934957               m_maincpu->set_input_line(4, HOLD_LINE);
935958            }
936959
937960            // don't accidentally do a phony command
938            m_last_prot_op = -1;
961            last_prot_op = -1;
939962         }
940963      }
941      m_last_prot_clk = clk;
964      last_prot_clk = clk;
942965   }
943966}
944967
r241525r241526
11571180
11581181   // note: racin' force expects bit 1 of the eeprom port to toggle
11591182   PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
1160   PORT_BIT( 0x000000fe, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, konamigx_state, gx_rdport1_3_r, NULL)
1183   PORT_BIT( 0x000000fe, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, konamigx_state,gx_rdport1_3_r, NULL)
11611184   PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_COIN1 )
11621185   PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_COIN2 )
11631186   PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN )
r241525r241526
35553578
35563579MACHINE_START_MEMBER(konamigx_state,konamigx)
35573580{
3558   save_item(NAME(m_gx_wrport1_1));
3581   save_item(NAME(konamigx_wrport1_1));
35593582}
35603583
35613584MACHINE_RESET_MEMBER(konamigx_state,konamigx)
35623585{
3563   m_gx_wrport1_0 = m_gx_wrport1_1 = 0;
3564   m_gx_wrport2 = 0;
3586   konamigx_wrport1_0 = konamigx_wrport1_1 = 0;
3587   konamigx_wrport2 = 0;
35653588
35663589/*
35673590    bit0  : EEPROM data(don't care)
35683591    bit1  : DMA busy   (cleared)
35693592    bit2-7: IRQ ready  (all set)
35703593*/
3571   m_gx_rdport1_3 = 0xfc;
3572   m_gx_syncen    = 0;
3573   m_suspension_active = 0;
3594   gx_rdport1_3 = 0xfc;
3595   gx_syncen    = 0;
3596   suspension_active = 0;
35743597
35753598   // Hold sound CPUs in reset
35763599   m_soundcpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
r241525r241526
36103633
36113634      // To hack around this, we underclock the 68020 for 10 seconds during POST
36123635      m_maincpu->set_clock_scale(0.66f);
3613      m_boothack_timer->adjust(attotime::from_seconds(10));
3636      boothack_timer->adjust(attotime::from_seconds(10));
36143637   }
36153638
36163639   if (!strcmp(setname, "le2") ||
r241525r241526
36853708   int i, match;
36863709   int readback = 0;
36873710
3688   m_gx_cfgport = -1;
3689   m_last_prot_op = -1;
3690   m_last_prot_clk = 0;
3711   konamigx_cfgport = -1;
3712   last_prot_op = -1;
3713   last_prot_clk = 0;
36913714
3692   m_esc_cb = NULL;
3693   m_resume_trigger = 0;
3715   esc_cb = 0;
3716   resume_trigger = 0;
36943717
3695   m_dmadelay_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(konamigx_state::dmaend_callback),this));
3696   m_boothack_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(konamigx_state::boothack_callback),this));
3718   dmadelay_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(konamigx_state::dmaend_callback),this));
3719   boothack_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(konamigx_state::boothack_callback),this));
36973720
36983721   i = match = 0;
36993722   while ((gameDefs[i].cfgport != -1) && (!match))
r241525r241526
37013724      if (!strcmp(machine().system().name, gameDefs[i].romname))
37023725      {
37033726         match = 1;
3704         m_gx_cfgport = gameDefs[i].cfgport;
3727         konamigx_cfgport = gameDefs[i].cfgport;
37053728         readback = gameDefs[i].readback;
37063729
37073730         switch (gameDefs[i].special)
r241525r241526
37223745               rom[0x810f1] &= ~1;      // fix checksum
37233746               rom[0x872ea] |= 0xe0000; // enable plane B,C,D
37243747
3725               m_esc_cb = &konamigx_state::tkmmpzdm_esc;
3748               esc_cb = tkmmpzdm_esc;
37263749               break;
37273750            }
37283751
37293752            case 3: // dragoon might
3730               m_esc_cb = &konamigx_state::dragoonj_esc;
3753               esc_cb = dragoonj_esc;
37313754               break;
37323755
37333756            case 4: // sexyparo
3734               m_esc_cb = &konamigx_state::sexyparo_esc;
3757               esc_cb = sexyparo_esc;
37353758               break;
37363759
37373760            case 5: // daiskiss
3738               m_esc_cb = &konamigx_state::daiskiss_esc;
3761               esc_cb = daiskiss_esc;
37393762               break;
37403763
37413764            case 6: // salamander 2
3742               m_esc_cb = &konamigx_state::sal2_esc;
3765               esc_cb = sal2_esc;
37433766               break;
37443767
37453768            case 7: // install type 4 Xilinx protection for non-type 3/4 games
r241525r241526
37473770               break;
37483771
37493772            case 8: // tbyahhoo
3750               m_esc_cb = &konamigx_state::tbyahhoo_esc;
3773               esc_cb = tbyahhoo_esc;
37513774               break;
37523775
37533776            case 9: // fantjour
trunk/src/mame/drivers/mystwarr.c
r241525r241526
850850   m_mw_irq_control = 0;
851851
852852   /* konamigx_mixer uses this, so better initialize it */
853   m_gx_wrport1_0 = 0;
853   konamigx_wrport1_0 = 0;
854854
855855   save_item(NAME(m_mw_irq_control));
856856   save_item(NAME(m_sound_ctrl));
trunk/src/mame/drivers/peplus.c
r241525r241526
206206
207207   peplus_state(const machine_config &mconfig, device_type type, const char *tag)
208208      : driver_device(mconfig, type, tag),
209      m_maincpu(*this, "maincpu"),
210      m_crtc(*this, "crtc"),
211      m_i2cmem(*this, "i2cmem"),
212      m_screen(*this, "screen"),
213      m_gfxdecode(*this, "gfxdecode"),
214      m_palette(*this, "palette"),
215      m_cmos_ram(*this, "cmos"),
209         m_cmos_ram(*this, "cmos") ,
216210      m_program_ram(*this, "prograram"),
217211      m_s3000_ram(*this, "s3000_ram"),
218212      m_s5000_ram(*this, "s5000_ram"),
r241525r241526
221215      m_sb000_ram(*this, "sb000_ram"),
222216      m_sd000_ram(*this, "sd000_ram"),
223217      m_sf000_ram(*this, "sf000_ram"),
224      m_io_port(*this, "io_port")
218      m_io_port(*this, "io_port"),
219      m_maincpu(*this, "maincpu"),
220      m_i2cmem(*this, "i2cmem"),
221      m_gfxdecode(*this, "gfxdecode"),
222      m_palette(*this, "palette")
225223   {
226224   }
227225
228   required_device<cpu_device> m_maincpu;
229   required_device<r6545_1_device> m_crtc;
230   required_device<i2cmem_device> m_i2cmem;
231   required_device<screen_device> m_screen;
232   required_device<gfxdecode_device> m_gfxdecode;
233   required_device<palette_device> m_palette;
234   
235226   required_shared_ptr<UINT8> m_cmos_ram;
236227   required_shared_ptr<UINT8> m_program_ram;
237228   required_shared_ptr<UINT8> m_s3000_ram;
r241525r241526
242233   required_shared_ptr<UINT8> m_sd000_ram;
243234   required_shared_ptr<UINT8> m_sf000_ram;
244235   required_shared_ptr<UINT8> m_io_port;
245   
246236   tilemap_t *m_bg_tilemap;
247237   UINT8 m_wingboard;
248238   UINT8 m_doorcycle;
r241525r241526
270260   UINT8 m_bv_data_bit;
271261   UINT8 m_bv_loop_count;
272262   UINT16 id023_data;
273   
274263   DECLARE_WRITE8_MEMBER(peplus_bgcolor_w);
275264   DECLARE_WRITE8_MEMBER(peplus_crtc_display_w);
265   DECLARE_WRITE8_MEMBER(peplus_io_w);
276266   DECLARE_WRITE8_MEMBER(peplus_duart_w);
277267   DECLARE_WRITE8_MEMBER(peplus_cmos_w);
268   DECLARE_WRITE8_MEMBER(peplus_s3000_w);
269   DECLARE_WRITE8_MEMBER(peplus_s5000_w);
270   DECLARE_WRITE8_MEMBER(peplus_s7000_w);
271   DECLARE_WRITE8_MEMBER(peplus_sb000_w);
272   DECLARE_WRITE8_MEMBER(peplus_sd000_w);
273   DECLARE_WRITE8_MEMBER(peplus_sf000_w);
278274   DECLARE_WRITE8_MEMBER(peplus_output_bank_a_w);
279275   DECLARE_WRITE8_MEMBER(peplus_output_bank_b_w);
280276   DECLARE_WRITE8_MEMBER(peplus_output_bank_c_w);
277   DECLARE_READ8_MEMBER(peplus_io_r);
281278   DECLARE_READ8_MEMBER(peplus_duart_r);
279   DECLARE_READ8_MEMBER(peplus_cmos_r);
280   DECLARE_READ8_MEMBER(peplus_s3000_r);
281   DECLARE_READ8_MEMBER(peplus_s5000_r);
282   DECLARE_READ8_MEMBER(peplus_s7000_r);
283   DECLARE_READ8_MEMBER(peplus_sb000_r);
284   DECLARE_READ8_MEMBER(peplus_sd000_r);
285   DECLARE_READ8_MEMBER(peplus_sf000_r);
282286   DECLARE_READ8_MEMBER(peplus_bgcolor_r);
283287   DECLARE_READ8_MEMBER(peplus_dropdoor_r);
284288   DECLARE_READ8_MEMBER(peplus_watchdog_r);
r241525r241526
299303   UINT32 screen_update_peplus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
300304   void peplus_load_superdata(const char *bank_name);
301305   DECLARE_PALETTE_INIT(peplus);
302   void handle_lightpen();
306   required_device<cpu_device> m_maincpu;
307   required_device<i2cmem_device> m_i2cmem;
308   required_device<gfxdecode_device> m_gfxdecode;
309   required_device<palette_device> m_palette;
303310
304311protected:
305312   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
r241525r241526
385392   switch (id)
386393   {
387394   case TIMER_ASSERT_LP:
388      m_crtc->assert_light_pen_input();
395      downcast<mc6845_device *>((device_t*)ptr)->assert_light_pen_input();
389396      break;
390397   default:
391398      assert_always(FALSE, "Unknown id in peplus_state::device_timer");
r241525r241526
393400}
394401
395402
396void peplus_state::handle_lightpen()
403static void handle_lightpen( mc6845_device *device )
397404{
398   int x_val = ioport("TOUCH_X")->read_safe(0x00);
399   int y_val = ioport("TOUCH_Y")->read_safe(0x00);
400   const rectangle &vis_area = m_screen->visible_area();
405   peplus_state *state = device->machine().driver_data<peplus_state>();
406   int x_val = device->machine().root_device().ioport("TOUCH_X")->read_safe(0x00);
407   int y_val = device->machine().root_device().ioport("TOUCH_Y")->read_safe(0x00);
408   const rectangle &vis_area = device->screen().visible_area();
401409   int xt, yt;
402410
403411   xt = x_val * vis_area.width() / 1024 + vis_area.min_x;
404412   yt = y_val * vis_area.height() / 1024 + vis_area.min_y;
405413
406   timer_set(m_screen->time_until_pos(yt, xt), TIMER_ASSERT_LP, 0);
414   state->timer_set(device->screen().time_until_pos(yt, xt), peplus_state::TIMER_ASSERT_LP, 0, device);
407415}
408416
409417WRITE_LINE_MEMBER(peplus_state::crtc_vsync)
410418{
419   mc6845_device *device = machine().device<mc6845_device>("crtc");
411420   m_maincpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
412   handle_lightpen();
421   handle_lightpen(device);
413422}
414423
415424WRITE8_MEMBER(peplus_state::peplus_crtc_display_w)
r241525r241526
422431   m_bg_tilemap->mark_tile_dirty(m_vid_address);
423432
424433   /* An access here triggers a device read !*/
425   m_crtc->register_r(space, 0);
434   machine().device<mc6845_device>("crtc")->register_r(space, 0);
426435}
427436
437WRITE8_MEMBER(peplus_state::peplus_io_w)
438{
439   m_io_port[offset] = data;
440}
441
428442WRITE8_MEMBER(peplus_state::peplus_duart_w)
429443{
430444   // Used for Slot Accounting System Communication
r241525r241526
444458   m_cmos_ram[offset] = data;
445459}
446460
461WRITE8_MEMBER(peplus_state::peplus_s3000_w)
462{
463   m_s3000_ram[offset] = data;
464}
465
466WRITE8_MEMBER(peplus_state::peplus_s5000_w)
467{
468   m_s5000_ram[offset] = data;
469}
470
471WRITE8_MEMBER(peplus_state::peplus_s7000_w)
472{
473   m_s7000_ram[offset] = data;
474}
475
476WRITE8_MEMBER(peplus_state::peplus_sb000_w)
477{
478   m_sb000_ram[offset] = data;
479}
480
481WRITE8_MEMBER(peplus_state::peplus_sd000_w)
482{
483   m_sd000_ram[offset] = data;
484}
485
486WRITE8_MEMBER(peplus_state::peplus_sf000_w)
487{
488   m_sf000_ram[offset] = data;
489}
490
447491WRITE8_MEMBER(peplus_state::peplus_output_bank_a_w)
448492{
449493   output_set_value("pe_bnka0",(data >> 0) & 1); /* Coin Lockout */
r241525r241526
498542* Read Handlers *
499543****************/
500544
545READ8_MEMBER(peplus_state::peplus_io_r)
546{
547   return m_io_port[offset];
548}
549
501550READ8_MEMBER(peplus_state::peplus_duart_r)
502551{
503552   // Used for Slot Accounting System Communication
504553   return 0x00;
505554}
506555
556READ8_MEMBER(peplus_state::peplus_cmos_r)
557{
558   return m_cmos_ram[offset];
559}
560
561READ8_MEMBER(peplus_state::peplus_s3000_r)
562{
563   return m_s3000_ram[offset];
564}
565
566READ8_MEMBER(peplus_state::peplus_s5000_r)
567{
568   return m_s5000_ram[offset];
569}
570
571READ8_MEMBER(peplus_state::peplus_s7000_r)
572{
573   return m_s7000_ram[offset];
574}
575
576READ8_MEMBER(peplus_state::peplus_sb000_r)
577{
578   return m_sb000_ram[offset];
579}
580
581READ8_MEMBER(peplus_state::peplus_sd000_r)
582{
583   return m_sd000_ram[offset];
584}
585
586READ8_MEMBER(peplus_state::peplus_sf000_r)
587{
588   return m_sf000_ram[offset];
589}
590
507591/* Last Color in Every Palette is bgcolor */
508592READ8_MEMBER(peplus_state::peplus_bgcolor_r)
509593{
r241525r241526
9721056
9731057static ADDRESS_MAP_START( peplus_iomap, AS_IO, 8, peplus_state )
9741058   // Battery-backed RAM (0x1000-0x01fff Extended RAM for Superboards Only)
975   AM_RANGE(0x0000, 0x1fff) AM_RAM_WRITE(peplus_cmos_w) AM_SHARE("cmos")
1059   AM_RANGE(0x0000, 0x1fff) AM_READWRITE(peplus_cmos_r, peplus_cmos_w) AM_SHARE("cmos")
9761060
9771061   // CRT Controller
9781062   AM_RANGE(0x2008, 0x2008) AM_WRITE(peplus_crtc_mode_w)
r241525r241526
9811065   AM_RANGE(0x2083, 0x2083) AM_DEVREAD("crtc", mc6845_device, register_r) AM_WRITE(peplus_crtc_display_w)
9821066
9831067   // Superboard Data
984   AM_RANGE(0x3000, 0x3fff) AM_RAM AM_SHARE("s3000_ram")
1068   AM_RANGE(0x3000, 0x3fff) AM_READWRITE(peplus_s3000_r, peplus_s3000_w) AM_SHARE("s3000_ram")
9851069
9861070   // Sound and Dipswitches
9871071   AM_RANGE(0x4000, 0x4000) AM_DEVWRITE("aysnd", ay8910_device, address_w)
9881072   AM_RANGE(0x4004, 0x4004) AM_READ_PORT("SW1")/* likely ay8910 input port, not direct */ AM_DEVWRITE("aysnd", ay8910_device, data_w)
9891073
9901074   // Superboard Data
991   AM_RANGE(0x5000, 0x5fff) AM_RAM AM_SHARE("s5000_ram")
1075   AM_RANGE(0x5000, 0x5fff) AM_READWRITE(peplus_s5000_r, peplus_s5000_w) AM_SHARE("s5000_ram")
9921076
9931077   // Background Color Latch
9941078   AM_RANGE(0x6000, 0x6000) AM_READ(peplus_bgcolor_r) AM_WRITE(peplus_bgcolor_w)
r241525r241526
9971081   AM_RANGE(0x06001, 0x06400) AM_RAM AM_SHARE("videoram")
9981082
9991083   // Superboard Data
1000   AM_RANGE(0x7000, 0x7fff) AM_RAM AM_SHARE("s7000_ram")
1084   AM_RANGE(0x7000, 0x7fff) AM_READWRITE(peplus_s7000_r, peplus_s7000_w) AM_SHARE("s7000_ram")
10011085
10021086   // Input Bank A, Output Bank C
10031087   AM_RANGE(0x8000, 0x8000) AM_READ(peplus_input_bank_a_r) AM_WRITE(peplus_output_bank_c_w)
r241525r241526
10091093   AM_RANGE(0xa000, 0xa000) AM_READ(peplus_input0_r) AM_WRITE(peplus_output_bank_b_w)
10101094
10111095   // Superboard Data
1012   AM_RANGE(0xb000, 0xbfff) AM_RAM AM_SHARE("sb000_ram")
1096   AM_RANGE(0xb000, 0xbfff) AM_READWRITE(peplus_sb000_r, peplus_sb000_w) AM_SHARE("sb000_ram")
10131097
10141098   // Output Bank A
10151099   AM_RANGE(0xc000, 0xc000) AM_READ(peplus_watchdog_r) AM_WRITE(peplus_output_bank_a_w)
10161100
10171101   // Superboard Data
1018   AM_RANGE(0xd000, 0xdfff) AM_RAM AM_SHARE("sd000_ram")
1102   AM_RANGE(0xd000, 0xdfff) AM_READWRITE(peplus_sd000_r, peplus_sd000_w) AM_SHARE("sd000_ram")
10191103
10201104   // DUART
10211105   AM_RANGE(0xe000, 0xe00f) AM_READWRITE(peplus_duart_r, peplus_duart_w)
10221106
10231107   // Superboard Data
1024   AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("sf000_ram")
1108   AM_RANGE(0xf000, 0xffff) AM_READWRITE(peplus_sf000_r, peplus_sf000_w) AM_SHARE("sf000_ram")
10251109
10261110   /* Ports start here */
1027   AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_RAM AM_SHARE("io_port")
1111   AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_READ(peplus_io_r) AM_WRITE(peplus_io_w) AM_SHARE("io_port")
10281112ADDRESS_MAP_END
10291113
10301114
trunk/src/mame/includes/konamigx.h
r241525r241526
1616      m_maincpu(*this,"maincpu"),
1717      m_soundcpu(*this, "soundcpu"),
1818      m_dasp(*this, "dasp"),
19      m_workram(*this,"workram"),
20      m_psacram(*this,"psacram"),
21      m_subpaletteram32(*this,"subpaletteram"),
1922      m_k055673(*this, "k055673"),
2023      m_k055555(*this, "k055555"),
2124      m_k056832(*this, "k056832"),
2225      m_k054338(*this, "k054338"),
23      m_k056800(*this, "k056800"),
24      m_k054539_1(*this,"k054539_1"),
25      m_k054539_2(*this,"k054539_2"),
26      m_gfxdecode(*this, "gfxdecode"),
27      m_screen(*this, "screen"),
28      m_palette(*this, "palette"),
29      m_workram(*this,"workram"),
30      m_psacram(*this,"psacram"),
31      m_subpaletteram32(*this,"subpaletteram"),
3226      m_k053936_0_ctrl(*this,"k053936_0_ctrl",32),
3327      m_k053936_0_linectrl(*this,"k053936_0_line",32),
3428      m_k053936_0_ctrl_16(*this,"k053936_0_ct16",16),
3529      m_k053936_0_linectrl_16(*this,"k053936_0_li16",16),
3630      m_konamigx_type3_psac2_bank(*this,"psac2_bank"),
37      m_generic_paletteram_32(*this, "paletteram"),
31      m_k056800(*this, "k056800"),
32      m_k054539_1(*this,"k054539_1"),
33      m_k054539_2(*this,"k054539_2"),
3834      m_an0(*this, "AN0"),
3935      m_an1(*this, "AN1"),
4036      m_light0_x(*this, "LIGHT0_X"),
4137      m_light0_y(*this, "LIGHT0_Y"),
4238      m_light1_x(*this, "LIGHT1_X"),
4339      m_light1_y(*this, "LIGHT1_Y"),
44      m_eepromout(*this, "EEPROMOUT")
40      m_eepromout(*this, "EEPROMOUT"),
41      m_gfxdecode(*this, "gfxdecode"),
42      m_screen(*this, "screen"),
43      m_palette(*this, "palette"),
44      m_generic_paletteram_32(*this, "paletteram")
4545      { }
4646
4747   required_device<cpu_device> m_maincpu;
4848   optional_device<cpu_device> m_soundcpu;
4949   optional_device<tms57002_device> m_dasp;
50
51   optional_shared_ptr<UINT32> m_workram;
52   optional_shared_ptr<UINT32> m_psacram;
53   optional_shared_ptr<UINT32> m_subpaletteram32;
5054   required_device<k055673_device> m_k055673;
5155   required_device<k055555_device> m_k055555;
5256   required_device<k056832_device> m_k056832;
5357   optional_device<k054338_device> m_k054338;
58   optional_shared_ptr<UINT16> m_k053936_0_ctrl;
59   optional_shared_ptr<UINT16> m_k053936_0_linectrl;
60   optional_shared_ptr<UINT16> m_k053936_0_ctrl_16;
61   optional_shared_ptr<UINT16> m_k053936_0_linectrl_16;
62   optional_shared_ptr<UINT32> m_konamigx_type3_psac2_bank;
5463   optional_device<k056800_device> m_k056800;
5564   optional_device<k054539_device> m_k054539_1;
5665   optional_device<k054539_device> m_k054539_2;
66   optional_ioport m_an0, m_an1, m_light0_x, m_light0_y, m_light1_x, m_light1_y, m_eepromout;
5767   required_device<gfxdecode_device> m_gfxdecode;
5868   required_device<screen_device> m_screen;
5969   required_device<palette_device> m_palette;
60
61   optional_shared_ptr<UINT32> m_workram;
62   optional_shared_ptr<UINT32> m_psacram;
63   optional_shared_ptr<UINT32> m_subpaletteram32;
64   optional_shared_ptr<UINT16> m_k053936_0_ctrl;
65   optional_shared_ptr<UINT16> m_k053936_0_linectrl;
66   optional_shared_ptr<UINT16> m_k053936_0_ctrl_16;
67   optional_shared_ptr<UINT16> m_k053936_0_linectrl_16;
68   optional_shared_ptr<UINT32> m_konamigx_type3_psac2_bank;
6970   optional_shared_ptr<UINT32> m_generic_paletteram_32;
70   
71   optional_ioport m_an0, m_an1, m_light0_x, m_light0_y, m_light1_x, m_light1_y, m_eepromout;
7271
7372   DECLARE_WRITE32_MEMBER(esc_w);
7473   DECLARE_WRITE32_MEMBER(eeprom_w);
r241525r241526
167166   void fantjour_dma_install();
168167
169168   void konamigx_mixer_primode(int mode);
170   
171   typedef void (konamigx_state::*esc_cb)(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4);
172   
173   void tkmmpzdm_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4);
174   void dragoonj_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4);
175   void sal2_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4);
176   void sexyparo_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4);
177   void tbyahhoo_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4);
178   void daiskiss_esc(address_space &space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4);
179   
180   inline int K053247GX_combine_c18(int attrib);
181   inline int K055555GX_decode_objcolor(int c18);
182   inline int K055555GX_decode_inpri(int c18);
183   int K055555GX_decode_vmixcolor(int layer, int *color);
184169
185170   UINT8 m_sound_ctrl;
186171   UINT8 m_sound_intck;
187172   UINT32 m_fantjour_dma[8];
188173   int m_konamigx_current_frame;
189174   int m_gx_objdma, m_gx_primode;
190   emu_timer *m_dmadelay_timer;
191   emu_timer *m_boothack_timer;
192   int m_gx_rdport1_3, m_gx_syncen;
193   int m_gx_cfgport;
194   int m_suspension_active, m_resume_trigger;
195   int m_last_prot_op, m_last_prot_clk;
196     
197   UINT8 m_esc_program[4096];
198   esc_cb m_esc_cb;
199   
200   UINT16 m_prot_data[0x20];
201   
202   // 1st-Tier GX/MW Variables
203   // frequently used registers
204   int m_k053247_vrcbk[4];
205   int m_k053247_coreg, m_k053247_coregshift, m_k053247_opset;
206   int m_opri, m_oinprion;
207   int m_vcblk[6], m_ocblk;
208   int m_vinmix, m_vmixon, m_osinmix, m_osmixon;
209   UINT8  m_gx_wrport1_0, m_gx_wrport1_1;
210   UINT16 m_gx_wrport2;
211   
212   // 2nd-Tier GX/MW Graphics Variables
213   UINT8 *m_gx_objzbuf, *m_gx_shdzbuf;
214   int m_layer_colorbase[4];
215   INT32 m_gx_tilebanks[8], m_gx_oldbanks[8];
216   int m_gx_tilemode, m_gx_rozenable, m_psac_colorbase, m_last_psac_colorbase;
217   int m_gx_specialrozenable; // type 1 roz, with voxel height-map, rendered from 2 source tilemaps (which include height data) to temp bitmap for further processing
218   int m_gx_rushingheroes_hack;
219   int m_gx_le2_textcolour_hack;
220   tilemap_t *m_gx_psac_tilemap, *m_gx_psac_tilemap2;
221   bitmap_ind16 *m_type3_roz_temp_bitmap;
222   tilemap_t *m_gx_psac_tilemap_alt;
223   int m_konamigx_has_dual_screen;
224   int m_konamigx_palformat;
225   bitmap_rgb32 *m_dualscreen_left_tempbitmap;
226   bitmap_rgb32 *m_dualscreen_right_tempbitmap;
227   
228   /* On Type-1 the K053936 output is rendered to these temporary bitmaps as raw data
229    the 'voxel' effect to give the pixels height is a post-process operation on the
230    output of the K053936 (this can clearly be seen in videos as large chunks of
231    scenary flicker when in the distance due to single pixels in the K053936 output
232    becoming visible / invisible due to drawing precision.
175};
233176
234    -- however, progress on this has stalled as our K053936 doesn't seem to give
235       the right output for post processing, I suspect the game is using some
236       unsupported flipping modes (probably due to the way it's hooked up to the
237       rest of the chips) which is causing entirely the wrong output.
238177
239    -- furthermore video/konamigx.c contains it's own implementation of
240       the K053936_zoom_draw named K053936GP_zoom_draw ...
178/*----------- defined in video/konamigx.c -----------*/
241179
242180
243    */
244   bitmap_ind16 *m_gxtype1_roz_dstbitmap;
245   bitmap_ind16 *m_gxtype1_roz_dstbitmap2;
246   rectangle m_gxtype1_roz_dstbitmapclip;
247};
181// 1st-Tier GX/MW Variables and Functions
182extern UINT8  konamigx_wrport1_0, konamigx_wrport1_1;
183extern UINT16 konamigx_wrport2;
248184
185
186
249187// Sprite Callbacks
250188
251189/* callbacks should return color codes in this format:
trunk/src/mame/machine/konamigx.c
r241525r241526
4141*/
4242
4343// K055550/K053990 protection chips, perform simple memset() and other game logic operations
44static UINT16 prot_data[0x20];
4445
4546
47
4648READ16_MEMBER(konamigx_state::K055550_word_r)
4749{
48   return(m_prot_data[offset]);
50   return(prot_data[offset]);
4951}
5052
5153WRITE16_MEMBER(konamigx_state::K055550_word_w)
r241525r241526
5456   int src, tgt, srcend, tgtend, skip, cx1, sx1, wx1, cy1, sy1, wy1, cz1, sz1, wz1, c2, s2, w2;
5557   int dx, dy, angle;
5658
57   COMBINE_DATA(m_prot_data+offset);
59   COMBINE_DATA(prot_data+offset);
5860
5961   if (offset == 0 && ACCESSING_BITS_8_15)
6062   {
r241525r241526
6365      {
6466         case 0x97: // memset() (Dadandarn at 0x639dc)
6567         case 0x9f: // memset() (Violent Storm at 0x989c)
66            adr   = (m_prot_data[7] << 16) | m_prot_data[8];
67            bsize = (m_prot_data[10] << 16) | m_prot_data[11];
68            count = (m_prot_data[0] & 0xff) + 1;
68            adr   = (prot_data[7] << 16) | prot_data[8];
69            bsize = (prot_data[10] << 16) | prot_data[11];
70            count = (prot_data[0] & 0xff) + 1;
6971
7072            lim = adr+bsize*count;
7173            for(i=adr; i<lim; i+=2)
72               space.write_word(i, m_prot_data[0x1a/2]);
74               space.write_word(i, prot_data[0x1a/2]);
7375         break;
7476
7577         // WARNING: The following cases are speculation based with questionable accuracy!(AAT)
r241525r241526
8082            // gameplay. It refers to a 32x8-word list at 0x210e00 and seems to
8183            // be tied with another 13x128-byte table at 0x205080.
8284            // Both tables appear "check-only" and have little effect on gameplay.
83            count =(m_prot_data[0] & 0xff) + 1;          // unknown ( byte 0x00)
84            i     = m_prot_data[1];                      // unknown ( byte 0x1f)
85            adr   = m_prot_data[7]<<16 | m_prot_data[8];   // address (dword 0x210e00)
86            lim   = m_prot_data[9];                      // unknown ( word 0x0010)
87            src   = m_prot_data[10]<<16 | m_prot_data[11]; // unknown (dword zero)
88            tgt   = m_prot_data[12]<<16 | m_prot_data[13]; // unknown (dword zero)
85            count =(prot_data[0] & 0xff) + 1;          // unknown ( byte 0x00)
86            i     = prot_data[1];                      // unknown ( byte 0x1f)
87            adr   = prot_data[7]<<16 | prot_data[8];   // address (dword 0x210e00)
88            lim   = prot_data[9];                      // unknown ( word 0x0010)
89            src   = prot_data[10]<<16 | prot_data[11]; // unknown (dword zero)
90            tgt   = prot_data[12]<<16 | prot_data[13]; // unknown (dword zero)
8991         break;
9092
9193         case 0xa0: // update collision detection table (Violent Storm at 0x018b42)
92            count = m_prot_data[0] & 0xff;             // number of objects - 1
93            skip  = m_prot_data[1]>>(8-1);             // words to skip in each entry to reach the "hit list"
94            adr   = m_prot_data[2]<<16 | m_prot_data[3]; // where the table is located
95            bsize = m_prot_data[5]<<16 | m_prot_data[6]; // object entry size in bytes
94            count = prot_data[0] & 0xff;             // number of objects - 1
95            skip  = prot_data[1]>>(8-1);             // words to skip in each entry to reach the "hit list"
96            adr   = prot_data[2]<<16 | prot_data[3]; // where the table is located
97            bsize = prot_data[5]<<16 | prot_data[6]; // object entry size in bytes
9698
9799            srcend = adr + bsize * count;
98100            tgtend = srcend + bsize;
r241525r241526
140142         break;
141143
142144         case 0xc0: // calculate object "homes-in" vector (Violent Storm at 0x03da9e)
143            dx = (short)m_prot_data[0xc];
144            dy = (short)m_prot_data[0xd];
145            dx = (short)prot_data[0xc];
146            dy = (short)prot_data[0xd];
145147
146148            // it's not necessary to use lookup tables because Violent Storm
147149            // only calls the service once per enemy per frame.
r241525r241526
163165            else
164166               i = machine().rand() & 0xff; // vector direction indeterminate
165167
166            m_prot_data[0x10] = i;
168            prot_data[0x10] = i;
167169         break;
168170
169171         default:
r241525r241526
181183   int mode, i, element_size = 1;
182184   UINT16 mod_val, mod_data;
183185
184   COMBINE_DATA(m_prot_data+offset);
186   COMBINE_DATA(prot_data+offset);
185187
186188   if (offset == 0x0c && ACCESSING_BITS_8_15)
187189   {
188      mode  = (m_prot_data[0x0d]<<8 & 0xff00) | (m_prot_data[0x0f] & 0xff);
190      mode  = (prot_data[0x0d]<<8 & 0xff00) | (prot_data[0x0f] & 0xff);
189191
190192      switch (mode)
191193      {
192194         case 0xffff: // word copy
193195            element_size = 2;
194196         case 0xff00: // byte copy
195            src_addr  = m_prot_data[0x0];
196            src_addr |= m_prot_data[0x1]<<16 & 0xff0000;
197            dst_addr  = m_prot_data[0x2];
198            dst_addr |= m_prot_data[0x3]<<16 & 0xff0000;
199            src_count = m_prot_data[0x8]>>8;
200            //dst_count = m_prot_data[0x9]>>8;
201            src_skip  = m_prot_data[0xa] & 0xff;
202            dst_skip  = m_prot_data[0xb] & 0xff;
197            src_addr  = prot_data[0x0];
198            src_addr |= prot_data[0x1]<<16 & 0xff0000;
199            dst_addr  = prot_data[0x2];
200            dst_addr |= prot_data[0x3]<<16 & 0xff0000;
201            src_count = prot_data[0x8]>>8;
202            //dst_count = prot_data[0x9]>>8;
203            src_skip  = prot_data[0xa] & 0xff;
204            dst_skip  = prot_data[0xb] & 0xff;
203205
204            if ((m_prot_data[0x8] & 0xff) == 2) src_count <<= 1;
206            if ((prot_data[0x8] & 0xff) == 2) src_count <<= 1;
205207            src_skip += element_size;
206208            dst_skip += element_size;
207209
r241525r241526
221223         break;
222224
223225         case 0x00ff: // sprite list modifier
224            src_addr  = m_prot_data[0x0];
225            src_addr |= m_prot_data[0x1]<<16 & 0xff0000;
226            src_skip  = m_prot_data[0x1]>>8;
227            dst_addr  = m_prot_data[0x2];
228            dst_addr |= m_prot_data[0x3]<<16 & 0xff0000;
229            dst_skip  = m_prot_data[0x3]>>8;
230            mod_addr  = m_prot_data[0x4];
231            mod_addr |= m_prot_data[0x5]<<16 & 0xff0000;
232            mod_skip  = m_prot_data[0x5]>>8;
233            mod_offs  = m_prot_data[0x8] & 0xff;
226            src_addr  = prot_data[0x0];
227            src_addr |= prot_data[0x1]<<16 & 0xff0000;
228            src_skip  = prot_data[0x1]>>8;
229            dst_addr  = prot_data[0x2];
230            dst_addr |= prot_data[0x3]<<16 & 0xff0000;
231            dst_skip  = prot_data[0x3]>>8;
232            mod_addr  = prot_data[0x4];
233            mod_addr |= prot_data[0x5]<<16 & 0xff0000;
234            mod_skip  = prot_data[0x5]>>8;
235            mod_offs  = prot_data[0x8] & 0xff;
234236            mod_offs<<= 1;
235237            mod_count = 0x100;
236238
trunk/src/mame/video/konamigx.c
r241525r241526
1111//#define GX_DEBUG
1212#define VERBOSE 0
1313
14/***************************************************************************/
15/*                                                                         */
16/*                     2nd-Tier GX/MW Graphics Functions                   */
17/*                                                                         */
18/***************************************************************************/
1419
20
21
22static UINT8 *gx_objzbuf, *gx_shdzbuf;
23
24
25
26static int layer_colorbase[4];
27static INT32 gx_tilebanks[8], gx_oldbanks[8];
28static int gx_tilemode, gx_rozenable, psac_colorbase, last_psac_colorbase;
29static int gx_specialrozenable; // type 1 roz, with voxel height-map, rendered from 2 source tilemaps (which include height data) to temp bitmap for further processing
30static int gx_rushingheroes_hack;
31static int gx_le2_textcolour_hack;
32static tilemap_t *gx_psac_tilemap, *gx_psac_tilemap2;
33static bitmap_ind16* type3_roz_temp_bitmap;
34static tilemap_t* gx_psac_tilemap_alt;
35
36static int konamigx_has_dual_screen;
1537INLINE void set_color_555(palette_device &palette, pen_t color, int rshift, int gshift, int bshift, UINT16 data);
38static int konamigx_palformat;
39static bitmap_rgb32* dualscreen_left_tempbitmap;
40static bitmap_rgb32* dualscreen_right_tempbitmap;
1641
42/* On Type-1 the K053936 output is rendered to these temporary bitmaps as raw data
43   the 'voxel' effect to give the pixels height is a post-process operation on the
44   output of the K053936 (this can clearly be seen in videos as large chunks of
45   scenary flicker when in the distance due to single pixels in the K053936 output
46   becoming visible / invisible due to drawing precision.
1747
48   -- however, progress on this has stalled as our K053936 doesn't seem to give
49      the right output for post processing, I suspect the game is using some
50      unsupported flipping modes (probably due to the way it's hooked up to the
51      rest of the chips) which is causing entirely the wrong output.
52
53   -- furthermore machine/konamigx.c (!) contains it's own implementation of
54      the K053936_zoom_draw named K053936GP_zoom_draw ... It really shouldn't do,
55      epsecially not in 'machine', which isn't meant to be video related.
56
57
58   */
59static bitmap_ind16 *gxtype1_roz_dstbitmap;
60static bitmap_ind16 *gxtype1_roz_dstbitmap2;
61static rectangle gxtype1_roz_dstbitmapclip;
62
63/***************************************************************************/
64/*                                                                         */
65/*                 1st-Tier GX/MW Variables and Functions                  */
66/*                                                                         */
67/***************************************************************************/
68
69// global system ports access
70UINT8  konamigx_wrport1_0, konamigx_wrport1_1;
71UINT16 konamigx_wrport2;
72
73// frequently used registers
74static int k053247_vrcbk[4];
75static int k053247_coreg, k053247_coregshift, k053247_opset;
76static int opri, oinprion;
77static int vcblk[6], ocblk;
78static int vinmix, vmixon, osinmix, osmixon;
79
80
1881void konamigx_state::konamigx_precache_registers(void)
1982{
2083   // (see sprite color coding scheme on p.46 & 47)
r241525r241526
2386   int i;
2487
2588   i = m_k055673->k053247_read_register(0x8/2);
26   m_k053247_vrcbk[0] = (i & 0x000f) << 14;
27   m_k053247_vrcbk[1] = (i & 0x0f00) << 6;
89   k053247_vrcbk[0] = (i & 0x000f) << 14;
90   k053247_vrcbk[1] = (i & 0x0f00) << 6;
2891   i = m_k055673->k053247_read_register(0xa/2);
29   m_k053247_vrcbk[2] = (i & 0x000f) << 14;
30   m_k053247_vrcbk[3] = (i & 0x0f00) << 6;
92   k053247_vrcbk[2] = (i & 0x000f) << 14;
93   k053247_vrcbk[3] = (i & 0x0f00) << 6;
3194
3295   // COREG == OBJSET2+1C == bit8-11 of OPSET ??? (see p.50 last table, needs p.49 to confirm)
33   m_k053247_opset = m_k055673->k053247_read_register(0xc/2);
96   k053247_opset = m_k055673->k053247_read_register(0xc/2);
3497
35   i = m_k053247_opset & 7; if (i > 4) i = 4;
98   i = k053247_opset & 7; if (i > 4) i = 4;
3699
37   m_k053247_coreg = m_k055673->k053247_read_register(0xc/2)>>8 & 0xf;
38   m_k053247_coreg =(m_k053247_coreg & coregmasks[i]) << 12;
100   k053247_coreg = m_k055673->k053247_read_register(0xc/2)>>8 & 0xf;
101   k053247_coreg =(k053247_coreg & coregmasks[i]) << 12;
39102
40   m_k053247_coregshift = coregshifts[i];
103   k053247_coregshift = coregshifts[i];
41104
42   m_opri     = m_k055555->K055555_read_register(K55_PRIINP_8);
43   m_oinprion = m_k055555->K055555_read_register(K55_OINPRI_ON);
44   m_vcblk[0] = m_k055555->K055555_read_register(K55_PALBASE_A);
45   m_vcblk[1] = m_k055555->K055555_read_register(K55_PALBASE_B);
46   m_vcblk[2] = m_k055555->K055555_read_register(K55_PALBASE_C);
47   m_vcblk[3] = m_k055555->K055555_read_register(K55_PALBASE_D);
48   m_vcblk[4] = m_k055555->K055555_read_register(K55_PALBASE_SUB1);
49   m_vcblk[5] = m_k055555->K055555_read_register(K55_PALBASE_SUB2);
50   m_ocblk    = m_k055555->K055555_read_register(K55_PALBASE_OBJ);
51   m_vinmix   = m_k055555->K055555_read_register(K55_BLEND_ENABLES);
52   m_vmixon   = m_k055555->K055555_read_register(K55_VINMIX_ON);
53   m_osinmix  = m_k055555->K055555_read_register(K55_OSBLEND_ENABLES);
54   m_osmixon  = m_k055555->K055555_read_register(K55_OSBLEND_ON);
105   opri     = m_k055555->K055555_read_register(K55_PRIINP_8);
106   oinprion = m_k055555->K055555_read_register(K55_OINPRI_ON);
107   vcblk[0] = m_k055555->K055555_read_register(K55_PALBASE_A);
108   vcblk[1] = m_k055555->K055555_read_register(K55_PALBASE_B);
109   vcblk[2] = m_k055555->K055555_read_register(K55_PALBASE_C);
110   vcblk[3] = m_k055555->K055555_read_register(K55_PALBASE_D);
111   vcblk[4] = m_k055555->K055555_read_register(K55_PALBASE_SUB1);
112   vcblk[5] = m_k055555->K055555_read_register(K55_PALBASE_SUB2);
113   ocblk    = m_k055555->K055555_read_register(K55_PALBASE_OBJ);
114   vinmix   = m_k055555->K055555_read_register(K55_BLEND_ENABLES);
115   vmixon   = m_k055555->K055555_read_register(K55_VINMIX_ON);
116   osinmix  = m_k055555->K055555_read_register(K55_OSBLEND_ENABLES);
117   osmixon  = m_k055555->K055555_read_register(K55_OSBLEND_ON);
55118}
56119
57inline int konamigx_state::K053247GX_combine_c18(int attrib) // (see p.46)
120INLINE int K053247GX_combine_c18(int attrib) // (see p.46)
58121{
59122   int c18;
60123
61   c18 = (attrib & 0xff)<<m_k053247_coregshift | m_k053247_coreg;
124   c18 = (attrib & 0xff)<<k053247_coregshift | k053247_coreg;
62125
63   if (m_gx_wrport2 & 4) c18 &= 0x3fff; else
64   if (!(m_gx_wrport2 & 8)) c18 = (c18 & 0x3fff) | (attrib<<6 & 0xc000);
126   if (konamigx_wrport2 & 4) c18 &= 0x3fff; else
127   if (!(konamigx_wrport2 & 8)) c18 = (c18 & 0x3fff) | (attrib<<6 & 0xc000);
65128
66129   return(c18);
67130}
68131
69inline int konamigx_state::K055555GX_decode_objcolor(int c18) // (see p.59 7.2.2)
132INLINE int K055555GX_decode_objcolor(int c18) // (see p.59 7.2.2)
70133{
71134   int ocb, opon;
72135
73   opon  = m_oinprion<<8 | 0xff;
74   ocb   = (m_ocblk & 7) << 10;
136   opon  = oinprion<<8 | 0xff;
137   ocb   = (ocblk & 7) << 10;
75138   c18  &= opon;
76139   ocb  &=~opon;
77140
78   return((ocb | c18) >> m_k053247_coregshift);
141   return((ocb | c18) >> k053247_coregshift);
79142}
80143
81inline int konamigx_state::K055555GX_decode_inpri(int c18) // (see p.59 7.2.2)
144INLINE int K055555GX_decode_inpri(int c18) // (see p.59 7.2.2)
82145{
83   int op = m_opri;
146   int op = opri;
84147
85148   c18 >>= 8;
86   op   &= m_oinprion;
87   c18  &=~m_oinprion;
149   op   &= oinprion;
150   c18  &=~oinprion;
88151
89152   return(c18 | op);
90153}
r241525r241526
94157   int num = *code;
95158   int c18 = *color;
96159
97   *code = m_k053247_vrcbk[num>>14] | (num & 0x3fff);
160   *code = k053247_vrcbk[num>>14] | (num & 0x3fff);
98161   c18 = K053247GX_combine_c18(c18);
99162   *color = K055555GX_decode_objcolor(c18);
100163   *priority_mask = K055555GX_decode_inpri(c18);
r241525r241526
105168   int num, op, pri, c18;
106169
107170   num = *code;
108   *code = m_k053247_vrcbk[num>>14] | (num & 0x3fff);
171   *code = k053247_vrcbk[num>>14] | (num & 0x3fff);
109172
110173   c18  = pri = *color;
111   op   = m_opri;
174   op   = opri;
112175   pri  = (pri & 0x200) ? 4 : pri>>4 & 0xf;
113   op  &= m_oinprion;
114   pri &=~m_oinprion;
176   op  &= oinprion;
177   pri &=~oinprion;
115178   *priority_mask = pri | op;
116179
117180   c18 = K053247GX_combine_c18(c18);
r241525r241526
123186   int num, op, pri, c18;
124187
125188   num = *code;
126   *code = m_k053247_vrcbk[num>>14] | (num & 0x3fff);
189   *code = k053247_vrcbk[num>>14] | (num & 0x3fff);
127190
128191   c18  = pri = *color;
129   op   = m_opri;
192   op   = opri;
130193   pri  = pri>>4 & 0x3f;
131   op  &= m_oinprion;
132   pri &=~m_oinprion;
194   op  &= oinprion;
195   pri &=~oinprion;
133196   *priority_mask = pri | op;
134197
135198   c18 = K053247GX_combine_c18(c18);
r241525r241526
141204   int num, op, pri;
142205
143206   num = *code;
144   *code = m_k053247_vrcbk[num>>14] | (num & 0x3fff);
207   *code = k053247_vrcbk[num>>14] | (num & 0x3fff);
145208
146209   pri = *color;
147210   *color &= 0x1f;
148211
149   op   = m_opri;
212   op   = opri;
150213   pri &= 0xf0;
151   op  &= m_oinprion;
152   pri &=~m_oinprion;
214   op  &= oinprion;
215   pri &=~oinprion;
153216   *priority_mask = pri | op;
154217}
155218
156int konamigx_state::K055555GX_decode_vmixcolor(int layer, int *color) // (see p.62 7.2.6 and p.27 3.3)
219static int K055555GX_decode_vmixcolor(int layer, int *color) // (see p.62 7.2.6 and p.27 3.3)
157220{
158221   int vcb, shift, pal, vmx, von, pl45, emx;
159222
160   vcb    =  m_vcblk[layer]<<6;
223   vcb    =  vcblk[layer]<<6;
161224   shift  =  layer<<1;
162225   pal    =  *color;
163   vmx    =  m_vinmix>>shift & 3;
164   von    =  m_vmixon>>shift & 3;
226   vmx    =  vinmix>>shift & 3;
227   von    =  vmixon>>shift & 3;
165228   emx    =  pl45 = pal>>4 & 3;
166229   pal   &=  0xf;
167230   pl45  &=  von;
r241525r241526
172235   emx   |=  vmx;
173236   pal   |=  vcb;
174237
175   if (m_gx_le2_textcolour_hack)
238   if (gx_le2_textcolour_hack)
176239      if (layer==0)
177240         pal |= 0x1c0;
178241
r241525r241526
189252
190253   shift  =  layer<<1;
191254   pal    =  *color;
192   osmx   =  m_osinmix>>shift & 3;
193   oson   =  m_osmixon>>shift & 3;
255   osmx   =  osinmix>>shift & 3;
256   oson   =  osmixon>>shift & 3;
194257
195258   if (layer)
196259   {
197260      // layer 1-3 are external tile layers
198      scb    =  m_vcblk[layer+3]<<6;
261      scb    =  vcblk[layer+3]<<6;
199262      emx    =  pl45 = pal>>4 & 3;
200263      pal   &=  0xf;
201264      pl45  &=  oson;
r241525r241526
229292   int w = visarea.width();
230293   int h = visarea.height();
231294
232   UINT8 *zptr = m_gx_objzbuf;
295   UINT8 *zptr = gx_objzbuf;
233296   int ecx = h;
234297
235298   do { memset(zptr, -1, w); zptr += GX_ZBUFW; } while (--ecx);
236299
237300   if (!noshadow)
238301   {
239      zptr = m_gx_shdzbuf;
302      zptr = gx_shdzbuf;
240303      w <<= 1;
241304      ecx = h;
242305      do { memset(zptr, -1, w); zptr += (GX_ZBUFW<<1); } while (--ecx);
r241525r241526
287350   m_gx_objdma = 0;
288351   m_gx_primode = 0;
289352
290   m_gx_objzbuf = &screen.priority().pix8(0);
291   m_gx_shdzbuf = auto_alloc_array(machine(), UINT8, GX_ZBUFSIZE);
353   gx_objzbuf = &screen.priority().pix8(0);
354   gx_shdzbuf = auto_alloc_array(machine(), UINT8, GX_ZBUFSIZE);
292355   gx_objpool = auto_alloc_array(machine(), struct GX_OBJ, GX_MAX_OBJECTS);
293356
294357   m_k054338->export_config(&K054338_shdRGB);
r241525r241526
330393   int cltc_shdpri, /*prflp,*/ disp;
331394
332395   // buffer can move when it's resized, so refresh the pointer
333   m_gx_objzbuf = &screen.priority().pix8(0);
396   gx_objzbuf = &screen.priority().pix8(0);
334397
335398   // abort if object database failed to initialize
336399   objpool = gx_objpool;
337400   if (!objpool) return;
338401
339402   // clear screen with backcolor and update flicker pulse
340   if (m_gx_wrport1_0 & 0x20)
403   if (konamigx_wrport1_0 & 0x20)
341404      m_k054338->fill_backcolor(bitmap,
342405                           cliprect,
343406                           m_palette->pens() + (m_k055555->K055555_read_register(0) << 9),
r241525r241526
501564      int zcode = gx_spriteram[offs] & 0xff;
502565
503566      // invert z-order when opset_pri is set (see p.51 OPSET PRI)
504      if (m_k053247_opset & 0x10) zcode = 0xff - zcode;
567      if (k053247_opset & 0x10) zcode = 0xff - zcode;
505568
506569      int code  = gx_spriteram[offs+1];
507570      int color = k = gx_spriteram[offs+6];
r241525r241526
572635         if (temp3)
573636         {
574637            // determine shadow priority
575            spri = (m_k053247_opset & 0x20) ? pri : shdpri[shadow]; // (see p.51 OPSET SDSEL)
638            spri = (k053247_opset & 0x20) ? pri : shdpri[shadow]; // (see p.51 OPSET SDSEL)
576639         }
577640      }
578641
r241525r241526
669732      if (j == GXMIX_BLEND_FORCE) { temp1 = 0x00; temp2 = mixerflags>>(i+16); temp3 = 3; }
670733      else
671734      {
672         temp1 = m_vinmix;
673         temp2 = m_vinmix>>i & 3;
674         temp3 = m_vmixon>>i & 3;
735         temp1 = vinmix;
736         temp2 = vinmix>>i & 3;
737         temp3 = vmixon>>i & 3;
675738      }
676739
677740      /* blend layer only when:
678          1) m_vinmix != 0xff
741          1) vinmix != 0xff
679742          2) its internal mix code is set
680743          3) all mix code bits are internal(overriden until tile blending has been implemented)
681744          4) 0 > alpha < 255;
r241525r241526
712775      if (j == GXMIX_BLEND_FORCE) { temp1 = 0x00; temp2 = mixerflags>>24; temp3 = 3; }
713776      else
714777      {
715         temp1 = m_osinmix;
716         temp2 = m_osinmix>>2 & 3;
717         temp3 = m_osmixon>>2 & 3;
778         temp1 = osinmix;
779         temp2 = osinmix>>2 & 3;
780         temp3 = osmixon>>2 & 3;
718781      }
719782
720783      if (temp1!=0xff && temp2 /*&& temp3==3*/)
r241525r241526
740803      }
741804      else
742805      {
743         machine().device<k053250_device>("k053250_1")->draw(bitmap, cliprect, m_vcblk[4]<<l, 0, screen.priority(), 0);
806         machine().device<k053250_device>("k053250_1")->draw(bitmap, cliprect, vcblk[4]<<l, 0, screen.priority(), 0);
744807      }
745808   }
746809}
r241525r241526
762825      if (j == GXMIX_BLEND_FORCE) { temp1 = 0x00; temp2 = mixerflags>>26; temp3 = 3; }
763826      else
764827      {
765         temp1 = m_osinmix;
766         temp2 = m_osinmix>>4 & 3;
767         temp3 = m_osmixon>>4 & 3;
828         temp1 = osinmix;
829         temp2 = osinmix>>4 & 3;
830         temp3 = osmixon>>4 & 3;
768831      }
769832
770833      if (temp1!=0xff && temp2 /*&& temp3==3*/)
r241525r241526
812875         }
813876      }
814877      else
815         machine().device<k053250_device>("k053250_2")->draw(bitmap, cliprect, m_vcblk[5]<<l, 0, screen.priority(), 0);
878         machine().device<k053250_device>("k053250_2")->draw(bitmap, cliprect, vcblk[5]<<l, 0, screen.priority(), 0);
816879   }
817880}
818881
r241525r241526
869932
870933
871934         m_k055673->k053247_draw_single_sprite_gxcore(bitmap, cliprect,
872            m_gx_objzbuf, m_gx_shdzbuf, code, gx_spriteram, offs,
935            gx_objzbuf, gx_shdzbuf, code, gx_spriteram, offs,
873936            color, alpha, drawmode, zcode, pri,
874937            /* non-gx only */
875938            0,0,NULL,NULL,0
r241525r241526
922985
923986   }
924987
925   colour = (m_psac_colorbase << 4) + col;
988   colour = (psac_colorbase << 4) + col;
926989
927990   SET_TILE_INFO_MEMBER(0, tileno, colour, TILE_FLIPYX(flip));
928991}
r241525r241526
9401003   /* handle this by creating 2 roz tilemaps instead, otherwise performance dies completely on dual screen mode
9411004   if (konamigx_type3_psac2_actual_bank!=konamigx_type3_psac2_actual_last_bank)
9421005   {
943       m_gx_psac_tilemap->mark_all_dirty();
1006       gx_psac_tilemap->mark_all_dirty();
9441007       konamigx_type3_psac2_actual_last_bank = konamigx_type3_psac2_actual_bank;
9451008   }
9461009   */
r241525r241526
10431106{
10441107   int d = *code;
10451108
1046   *code = (m_gx_tilebanks[(d & 0xe000)>>13]<<13) + (d & 0x1fff);
1109   *code = (gx_tilebanks[(d & 0xe000)>>13]<<13) + (d & 0x1fff);
10471110   K055555GX_decode_vmixcolor(layer, color);
10481111}
10491112
r241525r241526
10551118   mixcode = K055555GX_decode_vmixcolor(layer, color);
10561119
10571120   if (mixcode < 0)
1058      *code = (m_gx_tilebanks[(d & 0xe000)>>13]<<13) + (d & 0x1fff);
1121      *code = (gx_tilebanks[(d & 0xe000)>>13]<<13) + (d & 0x1fff);
10591122   else
10601123   {
10611124      /* save mixcode and mark tile alpha (unimplemented) */
r241525r241526
11021165
11031166   for (int i = 0; i < 8; i++)
11041167   {
1105      m_gx_tilebanks[i] = m_gx_oldbanks[i] = 0;
1168      gx_tilebanks[i] = gx_oldbanks[i] = 0;
11061169   }
11071170
1108   machine().save().save_item(NAME(m_gx_tilebanks));
1171   machine().save().save_item(NAME(gx_tilebanks));
11091172
1110   m_gx_tilemode = 0;
1173   gx_tilemode = 0;
11111174
1112   m_gx_rozenable = 0;
1113   m_gx_specialrozenable = 0;
1114   m_gx_rushingheroes_hack = 0;
1115   m_gx_le2_textcolour_hack = 0;
1175   gx_rozenable = 0;
1176   gx_specialrozenable = 0;
1177   gx_rushingheroes_hack = 0;
1178   gx_le2_textcolour_hack = 0;
11161179
11171180   // Documented relative offsets of non-flipped games are (-2, 0, 2, 3),(0, 0, 0, 0).
11181181   // (+ve values move layers to the right and -ve values move layers to the left)
r241525r241526
11241187   m_k056832->set_layer_offs(2,  2, 0);
11251188   m_k056832->set_layer_offs(3,  3, 0);
11261189
1127   m_konamigx_has_dual_screen = 0;
1190   konamigx_has_dual_screen = 0;
11281191   m_konamigx_current_frame = 0;
11291192}
11301193
r241525r241526
11341197   common_init();
11351198
11361199   if (!strcmp(machine().system().name,"tbyahhoo"))
1137      m_gx_tilemode = 1;
1200      gx_tilemode = 1;
11381201   else if (!strcmp(machine().system().name,"crzcross") || !strcmp(machine().system().name,"puzldama"))
11391202      konamigx_mixer_primode(5);
11401203   else if (!strcmp(machine().system().name,"daiskiss"))
r241525r241526
11571220
11581221   konamigx_mixer_primode(-1); // swapped layer B and C priorities?
11591222
1160   m_gx_le2_textcolour_hack = 1; // force text layer to use the right palette
1223   gx_le2_textcolour_hack = 1; // force text layer to use the right palette
11611224}
11621225
11631226VIDEO_START_MEMBER(konamigx_state, konamigx_6bpp)
r241525r241526
11711234   int width = m_screen->width();
11721235   int height = m_screen->height();
11731236
1174   m_dualscreen_left_tempbitmap = auto_bitmap_rgb32_alloc(machine(), width, height);
1175   m_dualscreen_right_tempbitmap = auto_bitmap_rgb32_alloc(machine(), width, height);
1237   dualscreen_left_tempbitmap = auto_bitmap_rgb32_alloc(machine(), width, height);
1238   dualscreen_right_tempbitmap = auto_bitmap_rgb32_alloc(machine(), width, height);
11761239
11771240   common_init();
11781241
1179   m_gx_psac_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac3_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 256, 256);
1180   m_gx_psac_tilemap_alt = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac3_alt_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 256, 256);
1242   gx_psac_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac3_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 256, 256);
1243   gx_psac_tilemap_alt = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac3_alt_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 256, 256);
11811244
1182   m_gx_rozenable = 0;
1183   m_gx_specialrozenable = 2;
1245   gx_rozenable = 0;
1246   gx_specialrozenable = 2;
11841247
11851248
11861249   /* set up tile layers */
1187   m_type3_roz_temp_bitmap = auto_bitmap_ind16_alloc(machine(), width, height);
1250   type3_roz_temp_bitmap = auto_bitmap_ind16_alloc(machine(), width, height);
11881251
11891252
1190   //m_gx_psac_tilemap->set_flip(TILEMAP_FLIPX| TILEMAP_FLIPY);
1253   //gx_psac_tilemap->set_flip(TILEMAP_FLIPX| TILEMAP_FLIPY);
11911254
11921255   K053936_wraparound_enable(0, 1);
11931256//  K053936GP_set_offset(0, -30, -1);
r241525r241526
11981261   m_k056832->set_layer_offs(2,  -48, 0);
11991262   m_k056832->set_layer_offs(3,  -48, 0);
12001263
1201   m_konamigx_has_dual_screen = 1;
1202   m_konamigx_palformat = 1;
1264   konamigx_has_dual_screen = 1;
1265   konamigx_palformat = 1;
12031266}
12041267
12051268VIDEO_START_MEMBER(konamigx_state, konamigx_type4)
r241525r241526
12071270   int width = m_screen->width();
12081271   int height = m_screen->height();
12091272
1210   m_dualscreen_left_tempbitmap = auto_bitmap_rgb32_alloc(machine(), width, height);
1211   m_dualscreen_right_tempbitmap = auto_bitmap_rgb32_alloc(machine(), width, height);
1273   dualscreen_left_tempbitmap = auto_bitmap_rgb32_alloc(machine(), width, height);
1274   dualscreen_right_tempbitmap = auto_bitmap_rgb32_alloc(machine(), width, height);
12121275
12131276   common_init();
12141277
1215   m_gx_psac_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 128, 128);
1216   m_gx_rozenable = 0;
1217   m_gx_specialrozenable = 3;
1278   gx_psac_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 128, 128);
1279   gx_rozenable = 0;
1280   gx_specialrozenable = 3;
12181281
12191282   m_k056832->set_layer_offs(0,  -27, 0);
12201283   m_k056832->set_layer_offs(1,  -25, 0);
r241525r241526
12241287   K053936_wraparound_enable(0, 0);
12251288   K053936GP_set_offset(0, -36, 1);
12261289
1227   m_gx_rushingheroes_hack = 1;
1228   m_konamigx_has_dual_screen = 1;
1229   m_konamigx_palformat = 0;
1290   gx_rushingheroes_hack = 1;
1291   konamigx_has_dual_screen = 1;
1292   konamigx_palformat = 0;
12301293
12311294}
12321295
r241525r241526
12351298   int width = m_screen->width();
12361299   int height = m_screen->height();
12371300
1238   m_dualscreen_left_tempbitmap = auto_bitmap_rgb32_alloc(machine(), width, height);
1239   m_dualscreen_right_tempbitmap = auto_bitmap_rgb32_alloc(machine(), width, height);
1301   dualscreen_left_tempbitmap = auto_bitmap_rgb32_alloc(machine(), width, height);
1302   dualscreen_right_tempbitmap = auto_bitmap_rgb32_alloc(machine(), width, height);
12401303
12411304   common_init();
12421305
1243   m_gx_psac_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 128, 128);
1244   m_gx_rozenable = 0;
1245   m_gx_specialrozenable = 3;
1306   gx_psac_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 128, 128);
1307   gx_rozenable = 0;
1308   gx_specialrozenable = 3;
12461309
12471310   m_k056832->set_layer_offs(0,  -52, 0);
12481311   m_k056832->set_layer_offs(1,  -48, 0);
r241525r241526
12521315   K053936_wraparound_enable(0, 1); // wraparound doesn't work properly with the custom drawing function anyway, see the crowd in vsnet and rushhero
12531316   K053936GP_set_offset(0, -30, 0);
12541317
1255   m_gx_rushingheroes_hack = 1;
1256   m_konamigx_has_dual_screen = 1;
1257   m_konamigx_palformat = 0;
1318   gx_rushingheroes_hack = 1;
1319   konamigx_has_dual_screen = 1;
1320   konamigx_palformat = 0;
12581321}
12591322
12601323VIDEO_START_MEMBER(konamigx_state, konamigx_type4_sd2)
r241525r241526
12621325   int width = m_screen->width();
12631326   int height = m_screen->height();
12641327
1265   m_dualscreen_left_tempbitmap = auto_bitmap_rgb32_alloc(machine(), width, height);
1266   m_dualscreen_right_tempbitmap = auto_bitmap_rgb32_alloc(machine(), width, height);
1328   dualscreen_left_tempbitmap = auto_bitmap_rgb32_alloc(machine(), width, height);
1329   dualscreen_right_tempbitmap = auto_bitmap_rgb32_alloc(machine(), width, height);
12671330
12681331   common_init();
12691332
1270   m_gx_psac_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 128, 128);
1271   m_gx_rozenable = 0;
1272   m_gx_specialrozenable = 3;
1333   gx_psac_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 128, 128);
1334   gx_rozenable = 0;
1335   gx_specialrozenable = 3;
12731336
12741337
12751338   m_k056832->set_layer_offs(0,  -29, -1);
r241525r241526
12811344   K053936_wraparound_enable(0, 0);
12821345   K053936GP_set_offset(0, -36, -1);
12831346
1284   m_gx_rushingheroes_hack = 1;
1285   m_konamigx_has_dual_screen = 1;
1286   m_konamigx_palformat = 0;
1347   gx_rushingheroes_hack = 1;
1348   konamigx_has_dual_screen = 1;
1349   konamigx_palformat = 0;
12871350
12881351}
12891352
r241525r241526
12961359   m_k056832->set_layer_offs(2,  2+1, 0);
12971360   m_k056832->set_layer_offs(3,  3+1, 0);
12981361
1299   m_gx_psac_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1a_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 128, 128);
1300   m_gx_psac_tilemap2 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1b_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 128, 128);
1362   gx_psac_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1a_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 128, 128);
1363   gx_psac_tilemap2 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1b_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 128, 128);
13011364
13021365   // transparency will be handled manually in post-processing
1303   //m_gx_psac_tilemap->set_transparent_pen(0);
1304   //m_gx_psac_tilemap2->set_transparent_pen(0);
1366   //gx_psac_tilemap->set_transparent_pen(0);
1367   //gx_psac_tilemap2->set_transparent_pen(0);
13051368
1306   m_gx_rozenable = 0;
1307   m_gx_specialrozenable = 1;
1369   gx_rozenable = 0;
1370   gx_specialrozenable = 1;
13081371
1309   m_gxtype1_roz_dstbitmap =  auto_bitmap_ind16_alloc(machine(),512,512); // BITMAP_FORMAT_IND16 because we NEED the raw pen data for post-processing
1310   m_gxtype1_roz_dstbitmap2 = auto_bitmap_ind16_alloc(machine(),512,512); // BITMAP_FORMAT_IND16 because we NEED the raw pen data for post-processing
1372   gxtype1_roz_dstbitmap =  auto_bitmap_ind16_alloc(machine(),512,512); // BITMAP_FORMAT_IND16 because we NEED the raw pen data for post-processing
1373   gxtype1_roz_dstbitmap2 = auto_bitmap_ind16_alloc(machine(),512,512); // BITMAP_FORMAT_IND16 because we NEED the raw pen data for post-processing
13111374
13121375
1313   m_gxtype1_roz_dstbitmapclip.set(0, 512-1, 0, 512-1);
1376   gxtype1_roz_dstbitmapclip.set(0, 512-1, 0, 512-1);
13141377
13151378
13161379   K053936_wraparound_enable(0, 1);
r241525r241526
13311394   m_k056832->set_layer_offs(2,  2+1, 0);
13321395   m_k056832->set_layer_offs(3,  3+1, 0);
13331396
1334   m_gx_psac_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1a_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 128, 128);
1335   m_gx_psac_tilemap2 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1b_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 128, 128);
1397   gx_psac_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1a_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 128, 128);
1398   gx_psac_tilemap2 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1b_tile_info),this), TILEMAP_SCAN_COLS,  16, 16, 128, 128);
13361399
13371400   // transparency will be handled manually in post-processing
1338   //m_gx_psac_tilemap->set_transparent_pen(0);
1339   //m_gx_psac_tilemap2->set_transparent_pen(0);
1401   //gx_psac_tilemap->set_transparent_pen(0);
1402   //gx_psac_tilemap2->set_transparent_pen(0);
13401403
1341   m_gx_rozenable = 0;
1342   m_gx_specialrozenable = 1;
1404   gx_rozenable = 0;
1405   gx_specialrozenable = 1;
13431406
1344   m_gxtype1_roz_dstbitmap =  auto_bitmap_ind16_alloc(machine(),512,512); // BITMAP_FORMAT_IND16 because we NEED the raw pen data for post-processing
1345   m_gxtype1_roz_dstbitmap2 = auto_bitmap_ind16_alloc(machine(),512,512); // BITMAP_FORMAT_IND16 because we NEED the raw pen data for post-processing
1407   gxtype1_roz_dstbitmap =  auto_bitmap_ind16_alloc(machine(),512,512); // BITMAP_FORMAT_IND16 because we NEED the raw pen data for post-processing
1408   gxtype1_roz_dstbitmap2 = auto_bitmap_ind16_alloc(machine(),512,512); // BITMAP_FORMAT_IND16 because we NEED the raw pen data for post-processing
13461409
13471410
1348   m_gxtype1_roz_dstbitmapclip.set(0, 512-1, 0, 512-1);
1411   gxtype1_roz_dstbitmapclip.set(0, 512-1, 0, 512-1);
13491412
13501413
13511414   K053936_wraparound_enable(0, 1);
r241525r241526
13651428   /* if any banks are different from last render, we need to flush the planes */
13661429   for (dirty = 0, i = 0; i < 8; i++)
13671430   {
1368      newbank = m_gx_tilebanks[i];
1369      if (m_gx_oldbanks[i] != newbank) { m_gx_oldbanks[i] = newbank; dirty = 1; }
1431      newbank = gx_tilebanks[i];
1432      if (gx_oldbanks[i] != newbank) { gx_oldbanks[i] = newbank; dirty = 1; }
13701433   }
13711434
1372   if (m_gx_tilemode == 0)
1435   if (gx_tilemode == 0)
13731436   {
13741437      // driver approximates tile update in mode 0 for speed
13751438      unchained = m_k056832->get_layer_association();
13761439      for (i=0; i<4; i++)
13771440      {
13781441         newbase = m_k055555->K055555_get_palette_index(i)<<6;
1379         if (m_layer_colorbase[i] != newbase)
1442         if (layer_colorbase[i] != newbase)
13801443         {
1381            m_layer_colorbase[i] = newbase;
1444            layer_colorbase[i] = newbase;
13821445
13831446            if (unchained)
13841447               m_k056832->mark_plane_dirty(i);
r241525r241526
13931456   }
13941457
13951458   // sub2 is PSAC colorbase on GX
1396   if (m_gx_rozenable)
1459   if (gx_rozenable)
13971460   {
1398      m_last_psac_colorbase = m_psac_colorbase;
1399      m_psac_colorbase = m_k055555->K055555_get_palette_index(6);
1461      last_psac_colorbase = psac_colorbase;
1462      psac_colorbase = m_k055555->K055555_get_palette_index(6);
14001463
1401      if (m_psac_colorbase != m_last_psac_colorbase)
1464      if (psac_colorbase != last_psac_colorbase)
14021465      {
1403         m_gx_psac_tilemap->mark_all_dirty();
1404         if (m_gx_rozenable == 3)
1466         gx_psac_tilemap->mark_all_dirty();
1467         if (gx_rozenable == 3)
14051468         {
1406            m_gx_psac_tilemap2->mark_all_dirty();
1469            gx_psac_tilemap2->mark_all_dirty();
14071470         }
14081471      }
14091472   }
r241525r241526
14111474   if (dirty) m_k056832->mark_all_tilemaps_dirty();
14121475
14131476   // Type-1
1414   if (m_gx_specialrozenable == 1)
1477   if (gx_specialrozenable == 1)
14151478   {
1416      K053936_0_zoom_draw(screen, *m_gxtype1_roz_dstbitmap, m_gxtype1_roz_dstbitmapclip,m_gx_psac_tilemap, 0,0,0); // height data
1417      K053936_0_zoom_draw(screen, *m_gxtype1_roz_dstbitmap2,m_gxtype1_roz_dstbitmapclip,m_gx_psac_tilemap2,0,0,0); // colour data (+ some voxel height data?)
1479      K053936_0_zoom_draw(screen, *gxtype1_roz_dstbitmap, gxtype1_roz_dstbitmapclip,gx_psac_tilemap, 0,0,0); // height data
1480      K053936_0_zoom_draw(screen, *gxtype1_roz_dstbitmap2,gxtype1_roz_dstbitmapclip,gx_psac_tilemap2,0,0,0); // colour data (+ some voxel height data?)
14181481   }
14191482
14201483
14211484
1422   if (m_gx_specialrozenable==3)
1485   if (gx_specialrozenable==3)
14231486   {
1424      konamigx_mixer(screen, bitmap, cliprect, m_gx_psac_tilemap, GXSUB_8BPP,0,0,  0, 0, m_gx_rushingheroes_hack);
1487      konamigx_mixer(screen, bitmap, cliprect, gx_psac_tilemap, GXSUB_8BPP,0,0,  0, 0, gx_rushingheroes_hack);
14251488   }
14261489   // hack, draw the roz tilemap if W is held
14271490   // todo: fix so that it works with the mixer without crashing(!)
1428   else if (m_gx_specialrozenable == 2)
1491   else if (gx_specialrozenable == 2)
14291492   {
14301493      // we're going to throw half of this away anyway in post-process, so only render what's needed
14311494      rectangle temprect;
14321495      temprect = cliprect;
14331496      temprect.max_x = cliprect.min_x+320;
14341497
1435      if (konamigx_type3_psac2_actual_bank == 1) K053936_0_zoom_draw(screen, *m_type3_roz_temp_bitmap, temprect,m_gx_psac_tilemap_alt, 0,0,0); // soccerss playfield
1436      else K053936_0_zoom_draw(screen, *m_type3_roz_temp_bitmap, temprect,m_gx_psac_tilemap, 0,0,0); // soccerss playfield
1498      if (konamigx_type3_psac2_actual_bank == 1) K053936_0_zoom_draw(screen, *type3_roz_temp_bitmap, temprect,gx_psac_tilemap_alt, 0,0,0); // soccerss playfield
1499      else K053936_0_zoom_draw(screen, *type3_roz_temp_bitmap, temprect,gx_psac_tilemap, 0,0,0); // soccerss playfield
14371500
14381501
1439      konamigx_mixer(screen, bitmap, cliprect, 0, 0, 0, 0, 0, m_type3_roz_temp_bitmap, m_gx_rushingheroes_hack);
1502      konamigx_mixer(screen, bitmap, cliprect, 0, 0, 0, 0, 0, type3_roz_temp_bitmap, gx_rushingheroes_hack);
14401503   }
14411504   else
14421505   {
1443      konamigx_mixer(screen, bitmap, cliprect, 0, 0, 0, 0, 0, 0, m_gx_rushingheroes_hack);
1506      konamigx_mixer(screen, bitmap, cliprect, 0, 0, 0, 0, 0, 0, gx_rushingheroes_hack);
14441507   }
14451508
14461509
14471510
14481511   /* Hack! draw type-1 roz layer here for testing purposes only */
1449   if (m_gx_specialrozenable == 1)
1512   if (gx_specialrozenable == 1)
14501513   {
14511514      const pen_t *paldata = m_palette->pens();
14521515
r241525r241526
14591522         {
14601523            for (y=0;y<256;y++)
14611524            {
1462               //UINT16* src = &m_gxtype1_roz_dstbitmap->pix16(y);
1525               //UINT16* src = &gxtype1_roz_dstbitmap->pix16(y);
14631526
14641527               //UINT32* dst = &bitmap.pix32(y);
14651528               // ths K053936 rendering should probably just be flipped
14661529               // this is just kludged to align the racing force 2d logo
1467               UINT16* src = &m_gxtype1_roz_dstbitmap2->pix16(y+30);
1530               UINT16* src = &gxtype1_roz_dstbitmap2->pix16(y+30);
14681531               UINT32* dst = &bitmap.pix32(256-y);
14691532
14701533               for (x=0;x<512;x++)
r241525r241526
14911554   {
14921555      int offset=0;
14931556
1494      if (m_konamigx_palformat==1)
1557      if (konamigx_palformat==1)
14951558      {
14961559         for (offset=0;offset<0x4000/4;offset++)
14971560         {
r241525r241526
15151578         }
15161579      }
15171580
1518      screen_update_konamigx( screen, downcast<bitmap_rgb32 &>(*m_dualscreen_left_tempbitmap), cliprect);
1519      copybitmap(bitmap, *m_dualscreen_left_tempbitmap, 0, 0, 0, 0, cliprect);
1581      screen_update_konamigx( screen, downcast<bitmap_rgb32 &>(*dualscreen_left_tempbitmap), cliprect);
1582      copybitmap(bitmap, *dualscreen_left_tempbitmap, 0, 0, 0, 0, cliprect);
15201583   }
15211584   else
15221585   {
1523      copybitmap(bitmap, *m_dualscreen_left_tempbitmap, 0, 0, 0, 0, cliprect);
1586      copybitmap(bitmap, *dualscreen_left_tempbitmap, 0, 0, 0, 0, cliprect);
15241587   }
15251588
15261589   return 0;
r241525r241526
15301593{
15311594   if (m_konamigx_current_frame==1)
15321595   {
1533      copybitmap(bitmap, *m_dualscreen_right_tempbitmap, 0, 0, 0, 0, cliprect);
1596      copybitmap(bitmap, *dualscreen_right_tempbitmap, 0, 0, 0, 0, cliprect);
15341597   }
15351598   else
15361599   {
15371600      int offset=0;
15381601
1539      if (m_konamigx_palformat==1)
1602      if (konamigx_palformat==1)
15401603      {
15411604         for (offset=0;offset<0x4000/4;offset++)
15421605         {
r241525r241526
15601623         }
15611624      }
15621625
1563      screen_update_konamigx(screen, downcast<bitmap_rgb32 &>(*m_dualscreen_right_tempbitmap), cliprect);
1564      copybitmap(bitmap, *m_dualscreen_right_tempbitmap, 0, 0, 0, 0, cliprect);
1626      screen_update_konamigx(screen, downcast<bitmap_rgb32 &>(*dualscreen_right_tempbitmap), cliprect);
1627      copybitmap(bitmap, *dualscreen_right_tempbitmap, 0, 0, 0, 0, cliprect);
15651628   }
15661629
15671630   return 0;
r241525r241526
16341697WRITE32_MEMBER(konamigx_state::konamigx_tilebank_w)
16351698{
16361699   if (ACCESSING_BITS_24_31)
1637      m_gx_tilebanks[offset*4] = (data>>24)&0xff;
1700      gx_tilebanks[offset*4] = (data>>24)&0xff;
16381701   if (ACCESSING_BITS_16_23)
1639      m_gx_tilebanks[offset*4+1] = (data>>16)&0xff;
1702      gx_tilebanks[offset*4+1] = (data>>16)&0xff;
16401703   if (ACCESSING_BITS_8_15)
1641      m_gx_tilebanks[offset*4+2] = (data>>8)&0xff;
1704      gx_tilebanks[offset*4+2] = (data>>8)&0xff;
16421705   if (ACCESSING_BITS_0_7)
1643      m_gx_tilebanks[offset*4+3] = data&0xff;
1706      gx_tilebanks[offset*4+3] = data&0xff;
16441707}
16451708
16461709// type 1 RAM-based PSAC tilemap
16471710WRITE32_MEMBER(konamigx_state::konamigx_t1_psacmap_w)
16481711{
16491712   COMBINE_DATA(&m_psacram[offset]);
1650   m_gx_psac_tilemap->mark_tile_dirty(offset/2);
1651   m_gx_psac_tilemap2->mark_tile_dirty(offset/2);
1713   gx_psac_tilemap->mark_tile_dirty(offset/2);
1714   gx_psac_tilemap2->mark_tile_dirty(offset/2);
16521715}
16531716
16541717// type 4 RAM-based PSAC tilemap
r241525r241526
16561719{
16571720   COMBINE_DATA(&m_psacram[offset]);
16581721
1659   m_gx_psac_tilemap->mark_tile_dirty(offset*2);
1660   m_gx_psac_tilemap->mark_tile_dirty((offset*2)+1);
1722   gx_psac_tilemap->mark_tile_dirty(offset*2);
1723   gx_psac_tilemap->mark_tile_dirty((offset*2)+1);
16611724}


Previous 199869 Revisions Next


© 1997-2024 The MAME Team