Previous 199869 Revisions Next

r32941 Saturday 25th October, 2014 at 08:31:47 UTC by Miodrag Milanović
Merge branch 'ti85_changes_for_upstream' of https://github.com/Jonimoose/mame into Jonimoose-ti85_changes_for_upstream
[hash]astrocde.xml vsmile_cart.xml
[src/emu/bus]bus.mak
[src/emu/bus/astrocde]rom.c* rom.h* slot.c* slot.h*
[src/emu/cpu/powerpc]ppc.h ppccom.c
[src/emu/video]upd7220.c
[src/mame/drivers]cobra.c firebeat.c gts3.c gts3a.c gts80.c gts80a.c gts80b.c hornet.c inder.c spinb.c vamphalf.c
[src/mess]mess.mak
[src/mess/drivers]a5105.c alphasma.c apc.c astrocde.c dmv.c mz3500.c pc9801.c qx10.c vt240.c

trunk/hash/astrocde.xml
r241452r241453
55   <software name="280zzap">
66      <description>280 Zzzap / Dodgem</description>
77      <year>1978</year>
8      <publisher>Bally Mfg. Corp.</publisher>
8      <publisher>Bally</publisher>
99      <part name="cart" interface="astrocde_cart">
1010         <dataarea name="rom" size="2048">
1111            <rom name="280zzap.bin" size="2048" crc="e4d285e5" sha1="0de670d6f78e3011e84fefc65f70544cdad3320e" offset="0" />
r241452r241453
2828      <description>ADS System Monitor (Prototype)</description>
2929<!-- <note>This prototype was found in the collection of Arcadian editor Bob Fabris.</note> -->
3030      <year>19??</year>
31      <publisher>Larry Hanson</publisher>
31      <publisher>&lt;unknown&gt;</publisher>
3232      <part name="cart" interface="astrocde_cart">
3333         <dataarea name="rom" size="2048">
3434            <rom name="adssm.bin" size="2048" crc="b8d4df61" sha1="93ffa31d308e62a1f0b09f20489bd620a08de37b" offset="0" />
r241452r241453
3939   <software name="amazmaze">
4040      <description>Amazing Maze / Tic-Tac-Toe</description>
4141      <year>1979</year>
42      <publisher>Bally Mfg. Corp.</publisher>
42      <publisher>Bally</publisher>
4343      <part name="cart" interface="astrocde_cart">
4444         <dataarea name="rom" size="2048">
4545            <rom name="amazmaze.bin" size="2048" crc="cd57c485" sha1="8c833f077830db847caad91a3f040ac7ddcd33f8" offset="0" />
r241452r241453
5050   <software name="artiduel">
5151      <description>Artillery Duel</description>
5252      <year>1982</year>
53      <publisher>Astrocade Inc.</publisher>
53      <publisher>Astrocade</publisher>
5454      <part name="cart" interface="astrocde_cart">
5555         <dataarea name="rom" size="4096">
5656            <rom name="artiduel.bin" size="4096" crc="4f372019" sha1="24f6accc59301773e7471a831a5e3312c61694b0" offset="0" />
r241452r241453
5858      </part>
5959   </software>
6060
61   <software name="artiduelp1" cloneof="artiduel">
62      <description>Artillery Duel (Prototype 19820523)</description>
63      <year>1982</year>
64      <publisher>Astrocade</publisher>
65      <part name="cart" interface="astrocde_cart">
66         <dataarea name="rom" size="4096">
67            <rom name="artillery duel (5-23) (1982)(astrocade inc.)(proto).bin" size="4096" crc="2227f488" sha1="e8b9a13b5b712ff5e2269813271777956d69be3c" offset="0" />
68         </dataarea>
69      </part>
70   </software>
71
72   <software name="artiduelp2" cloneof="artiduel">
73      <description>Artillery Duel (Prototype Alt)</description>
74      <year>1982</year>
75      <publisher>Astrocade</publisher>
76      <part name="cart" interface="astrocde_cart">
77         <dataarea name="rom" size="4096">
78            <rom name="artillery duel (1982)(astrocade inc.)(proto).bin" size="4096" crc="53f75720" sha1="376027b2974aa73e523dc0c139f723168a379ece" offset="0" />
79         </dataarea>
80      </part>
81   </software>
82
83   <software name="artiduelp3" cloneof="artiduel">
84      <description>Artillery Duel (Prototype Alt 2)</description>
85      <year>1982</year>
86      <publisher>Astrocade</publisher>
87      <part name="cart" interface="astrocde_cart">
88         <dataarea name="rom" size="2048">
89            <rom name="artillery duel (1982)(astrocade inc.)(proto)[a].bin" size="2048" crc="2521a6ec" sha1="4b02162dd5503e08479929be36de5a6648410310" offset="0" />
90         </dataarea>
91      </part>
92   </software>
93
6194   <software name="artjello" supported="no">
6295      <description>Artillery Duel / O-Jello</description>
6396<!-- <note>This is one of several BASIC conversions sold by Mike White.  It requires cartridge swapping.</note> -->
r241452r241453
73106   <software name="astrobat">
74107      <description>Astro Battle</description>
75108      <year>1979</year>
76      <publisher>Bally Mfg. Corp.</publisher>
109      <publisher>Bally</publisher>
77110      <part name="cart" interface="astrocde_cart">
78111         <dataarea name="rom" size="4096">
79112            <rom name="astrobat.bin" size="4096" crc="0b5298bc" sha1="cdf7a2a8608c3e90d0cc8a4b751276b76de72f8c" offset="0" />
r241452r241453
85118      <description>Bally BASIC</description>
86119<!-- <note>The original release of BASIC used an external 300 baud interface (not emulated) to load and save programs.</note> -->
87120      <year>1978</year>
88      <publisher>Bally Mfg. Corp.</publisher>
121      <publisher>Bally</publisher>
89122      <part name="cart" interface="astrocde_cart">
90123         <dataarea name="rom" size="4096">
91124            <rom name="bbasic.bin" size="4096" crc="90e276aa" sha1="abb85bc19419a1d81c698884f81a53d85806885d" offset="0" />
r241452r241453
97130      <description>Bally BASIC (Astrovision)</description>
98131<!-- <note>The updated release of BASIC used an internal 2000 baud interface (not emulated) to load and save programs.</note> -->
99132      <year>1981</year>
100      <publisher>Astrovision Inc.</publisher>
133      <publisher>Astrovision</publisher>
101134      <part name="cart" interface="astrocde_cart">
102135         <dataarea name="rom" size="4096">
103136            <rom name="astrobas.bin" size="4096" crc="70514687" sha1="a2ac8995a6217b7190aa9b18f49261c0ed3c6b5a" offset="0" />
r241452r241453
108141   <software name="bbasdemo">
109142      <description>Bally BASIC Demo</description>
110143      <year>1978</year>
111      <publisher>Bally Mfg. Corp.</publisher>
144      <publisher>Bally</publisher>
112145      <part name="cart" interface="astrocde_cart">
113146         <dataarea name="rom" size="8192">
114147            <rom name="bbasdemo.bin" size="8192" crc="007e70d5" sha1="6ed1f49e6581ecea5328e3c5f99026afd7f1f7e4" offset="0" />
r241452r241453
142175
143176   <software name="colorbas">
144177      <description>Bally Color BASIC (Prototype)</description>
145<!-- <note>This prototype comes from the collection of Arcadian editor Bob Fabris. While the name Color BASIC was sometimes used to refer to what eventually became Hot Rod Bally BASIC by Jay Fenton (eventually sold on tape in limited quantities), this appears to be an unrelated modification of Bally BASIC by Larry Hanson. Support for the 300 baud interface isn't fully enabled in this version.</note> -->
178<!-- <note>This prototype was sent to Arcadian editor Bob Fabris from Jay Fenton. Support for the 300 baud interface isn't fully enabled in this version.</note> -->
146179      <year>19??</year>
147      <publisher>Larry Hanson and Bally Mfg. Corp.</publisher>
180      <publisher>Bally</publisher>
148181      <part name="cart" interface="astrocde_cart">
149182         <dataarea name="rom" size="4096">
150183            <rom name="colorbas.bin" size="4096" crc="e1c30ede" sha1="7b5fa4cd585081c5d51127d32d02a33ed44b5843" offset="0" />
r241452r241453
155188   <software name="ballypin">
156189      <description>Bally Pin</description>
157190      <year>1979</year>
158      <publisher>Bally Mfg. Corp.</publisher>
191      <publisher>Bally</publisher>
159192      <part name="cart" interface="astrocde_cart">
160193         <dataarea name="rom" size="4096">
161194            <rom name="ballypin.bin" size="4096" crc="3f431613" sha1="05b680777aa9639620c790f0590d96416d49bf94" offset="0" />
r241452r241453
178211   <software name="biorhy">
179212      <description>BioRhythm</description>
180213      <year>1981</year>
181      <publisher>Astrovision Inc.</publisher>
214      <publisher>Astrovision</publisher>
182215      <part name="cart" interface="astrocde_cart">
183216         <dataarea name="rom" size="4096">
184217            <rom name="biorhy.bin" size="4096" crc="fc4bd27c" sha1="1ba84a04ea5d7d87c213d978fecc188a4a8517a6" offset="0" />
r241452r241453
189222   <software name="blckjack">
190223      <description>Black Jack / Acey Deucey / Poker</description>
191224      <year>1979</year>
192      <publisher>Bally Mfg. Corp.</publisher>
225      <publisher>Bally</publisher>
193226      <part name="cart" interface="astrocde_cart">
194227         <dataarea name="rom" size="4096">
195228            <rom name="blckjack.bin" size="4096" crc="78d45a11" sha1="7b92e3ad161e31926a730780d1f28015310dd7d7" offset="0" />
r241452r241453
197230      </part>
198231   </software>
199232
200   <software name="brbsic10">
233   <software name="brb10p" cloneof="brb10">
234      <description>Blue RAM BASIC 1.0 (Prototype)</description>
235      <!-- <note>Requires RAM expansion</note> -->
236      <year>1980</year>
237      <publisher>Perkins Engineering</publisher>
238      <part name="cart" interface="astrocde_cart">
239         <dataarea name="rom" size="4096">
240            <rom name="blue ram basic 1.0 (1980)(perkins engineering)(proto)[not playable].bin" size="4096" crc="2fa59f1e" sha1="ef27b8863b05afe58259fdf5755e919699485e4f" offset="0" />
241         </dataarea>
242      </part>
243   </software>
244
245   <software name="brb10">
201246      <description>Blue RAM BASIC 1.0</description>
202247      <!-- <note>Requires RAM expansion</note> -->
203248      <year>1980</year>
r241452r241453
209254      </part>
210255   </software>
211256
212   <software name="brbsic11">
257   <software name="brb11">
213258      <description>Blue RAM BASIC 1.1</description>
214259      <!-- <note>Requires RAM expansion</note> -->
215260      <year>1981</year>
r241452r241453
247292   <software name="bowling">
248293      <description>Bowling (Prototype)</description>
249294      <year>198?</year>
250      <publisher>Astrocade Inc.</publisher>
295      <publisher>Astrocade</publisher>
251296      <part name="cart" interface="astrocde_cart">
252297         <dataarea name="rom" size="4096">
253298            <rom name="bowling.bin" size="4096" crc="1f8bc8ba" sha1="de27100803a414989d538ca34fc1b3e122dfac78" offset="0" />
r241452r241453
258303   <software name="brckyard">
259304      <description>Brickyard / Clowns</description>
260305      <year>1978</year>
261      <publisher>Bally Mfg. Corp.</publisher>
306      <publisher>Bally</publisher>
262307      <part name="cart" interface="astrocde_cart">
263308         <dataarea name="rom" size="4096">
264309            <rom name="brckyard.bin" size="4096" crc="28f9e502" sha1="4c1a9efcd4435f6a79dc2212c4d0d17ea753809c" offset="0" />
r241452r241453
292337   <software name="checkers">
293338      <description>Checkers (Prototype)</description>
294339      <year>19??</year>
295      <publisher>Bally Mfg. Corp.</publisher>
340      <publisher>Bally</publisher>
296341      <part name="cart" interface="astrocde_cart">
297342         <dataarea name="rom" size="2048">
298343            <rom name="checkers.bin" size="2048" crc="757bab8f" sha1="9ef927e88e3f799276966b569c2402f6b25be416" offset="0" />
r241452r241453
339384   <software name="colbook">
340385      <description>Coloring Book (Prototype)</description>
341386      <year>198?</year>
342      <publisher>Astrocade Inc.</publisher>
387      <publisher>Astrocade</publisher>
343388      <part name="cart" interface="astrocde_cart">
344389         <dataarea name="rom" size="8192">
345390            <rom name="colbook.bin" size="8192" crc="14f36aba" sha1="41eaaa061ed47996219b70bc0ed7d6a19c4b3c28" offset="0" />
r241452r241453
349394
350395   <software name="conan">
351396      <description>Conan The Barbarian!</description>
352<!-- <note>While Astrocade Inc. never completed Conan, it was eventually published in incomplete form by Dave Carson Software, which added its own copyright screen.</note> -->
397<!-- <note>While Astrocade never completed Conan, it was eventually published in incomplete form by Dave Carson Software, which added its own copyright screen.</note> -->
353398      <year>1985</year>
354      <publisher>Astrocade Inc. and Dave Carson Software</publisher>
399      <publisher>Astrocade and Dave Carson Software</publisher>
355400      <part name="cart" interface="astrocde_cart">
356401         <dataarea name="rom" size="8192">
357402            <rom name="conan.bin" size="8192" crc="8a6adbfe" sha1="8b0d3125b805d57b9958b0e7a4f0e9d1a70f6353" offset="0" />
r241452r241453
362407   <software name="conanp" cloneof="conan">
363408      <description>Conan The Barbarian! (Prototype)</description>
364409      <year>1982</year>
365      <publisher>Astrocade Inc.</publisher>
410      <publisher>Astrocade</publisher>
366411      <part name="cart" interface="astrocde_cart">
367412         <dataarea name="rom" size="8192">
368413            <rom name="conanp.bin" size="8192" crc="15b1afea" sha1="bc4f757271fca69e0de3973f43d363c4474e2fb7" offset="0" />
r241452r241453
385430   <software name="cosmicrd">
386431      <description>Cosmic Raiders</description>
387432      <year>1983</year>
388      <publisher>Astrocade Inc.</publisher>
433      <publisher>Astrocade</publisher>
389434      <part name="cart" interface="astrocde_cart">
390435         <dataarea name="rom" size="8192">
391436            <rom name="cosmicrd.bin" size="8192" crc="2a77b3fb" sha1="09ae145e3dbfd132f5130a0cbb508f4fbcf35bee" offset="0" />
r241452r241453
396441   <software name="cosmicrda" cloneof="cosmicrd">
397442      <description>Cosmic Raiders (Proto, Alt)</description>
398443      <year>198?</year>
399      <publisher>Astrocade Inc.</publisher>
444      <publisher>Astrocade</publisher>
400445      <part name="cart" interface="astrocde_cart">
401446         <dataarea name="rom" size="8192">
402447            <rom name="cosmicra.bin" size="8192" crc="869b692e" sha1="b71b81eeaf10b59efb1b51d88b1e758305d5f1e4" offset="0" />
r241452r241453
407452   <software name="cosmicrdb" cloneof="cosmicrd">
408453      <description>Cosmic Raiders (Proto, Alt 2)</description>
409454      <year>198?</year>
410      <publisher>Astrocade Inc.</publisher>
455      <publisher>Astrocade</publisher>
411456      <part name="cart" interface="astrocde_cart">
412457         <dataarea name="rom" size="8192">
413458            <rom name="cosmica2.bin" size="8192" crc="37670f78" sha1="30044130dd3b41295351fa3905d53e26e52b3745" offset="0" />
r241452r241453
419464      <description>Cosmic Raiders (Proto v3.5)</description>
420465<!-- <note>An identical ROM was dumped from a cart labeled version 2.8.</note> -->
421466      <year>198?</year>
422      <publisher>Astrocade Inc.</publisher>
467      <publisher>Astrocade</publisher>
423468      <part name="cart" interface="astrocde_cart">
424469         <dataarea name="rom" size="8192">
425470            <rom name="cosmic35.bin" size="8192" crc="e3d723a0" sha1="337cdffe2260dc6d36d674fa35047cb5a3598bf9" offset="0" />
r241452r241453
430475   <software name="cosmicrd36" cloneof="cosmicrd">
431476      <description>Cosmic Raiders (Proto v3.6)</description>
432477      <year>198?</year>
433      <publisher>Astrocade Inc.</publisher>
478      <publisher>Astrocade</publisher>
434479      <part name="cart" interface="astrocde_cart">
435480         <dataarea name="rom" size="8192">
436481            <rom name="cosmic36.bin" size="8192" crc="00b6fe88" sha1="5a3772b8524361b174c761ef759659b4a63166fa" offset="0" />
r241452r241453
438483      </part>
439484   </software>
440485
486   <software name="cclimber">
487      <description>Crazy Climber</description>
488      <year>2011</year>
489      <publisher>Riff Raff Games</publisher>
490      <part name="cart" interface="astrocde_cart">
491         <dataarea name="rom" size="8192">
492            <rom name="crazy climber (2011)(riff raff games)[ccv054f].bin" size="8187" crc="bf864c44" sha1="3fc71a3061ddc39788920b27ce11d0ea545e3da6" offset="0" />
493         </dataarea>
494      </part>
495   </software>
496
441497   <software name="dealdemo">
442498      <description>Dealer Demo</description>
443499      <year>1978</year>
444      <publisher>Bally Mfg. Corp.</publisher>
500      <publisher>Bally</publisher>
445501      <part name="cart" interface="astrocde_cart">
446502         <dataarea name="rom" size="4096">
447503            <rom name="dealdemo.bin" size="4096" crc="16b77b44" sha1="302ad18ea17b12a474ebbba1a882d8aad8cf5e94" offset="0" />
r241452r241453
452508   <software name="dogpatch">
453509      <description>Dogpatch</description>
454510      <year>1980</year>
455      <publisher>Bally Mfg. Corp.</publisher>
511      <publisher>Bally</publisher>
456512      <part name="cart" interface="astrocde_cart">
457513         <dataarea name="rom" size="2048">
458514            <rom name="dogpatch.bin" size="2048" crc="77bed6ba" sha1="263e6372392bc37a2228eb455d1477dcd41d9104" offset="0" />
r241452r241453
472528   </software>
473529
474530   <software name="fawn">
475      <description>Fawn Dungeon (Prototype)</description>
531      <description>Fawn Dungeon (Prototype, first version)</description>
476532<!-- <note>Barry McCleave sent two prototype versions of this game to Arcadian editor Bob Fabris, but it was never completed.</note> -->
477533      <year>1981</year>
478534      <publisher>Barry McCleave</publisher>
r241452r241453
484540   </software>
485541
486542   <software name="fawna" cloneof="fawn">
487      <description>Fawn Dungeon (Prototype, Alt)</description>
543      <description>Fawn Dungeon (Prototype, second version)</description>
488544<!-- <note>Barry McCleave sent two prototype versions of this game to Arcadian editor Bob Fabris, but it was never completed.</note> -->
489545      <year>1981</year>
490546      <publisher>Barry McCleave</publisher>
r241452r241453
510566   <software name="football">
511567      <description>Football</description>
512568      <year>1978</year>
513      <publisher>Bally Mfg. Corp.</publisher>
569      <publisher>Bally</publisher>
514570      <part name="cart" interface="astrocde_cart">
515571         <dataarea name="rom" size="4096">
516572            <rom name="football.bin" size="4096" crc="fc8998a9" sha1="1d07b45162fab5497fe0a3d4ccb1b33bfd47177a" offset="0" />
r241452r241453
519575   </software>
520576
521577   <software name="ziggyjx">
522      <description>Fun With Vectors - Ziggy (JX label) (Prototype)</description>
578      <description>Fun With Vectors - Ziggy (Prototype JX label)</description>
523579<!-- <note>This demo comes from a collection of old ROMs released by Richard Degler.</note> -->
524580      <year>1985</year>
525581      <publisher>Richard Degler</publisher>
r241452r241453
531587   </software>
532588
533589   <software name="ziggymo">
534      <description>Fun With Vectors - Ziggy (MO label) (Prototype)</description>
590      <description>Fun With Vectors - Ziggy (Prototype MO label)</description>
535591<!-- <note>This demo comes from a collection of old ROMs released by Richard Degler.</note> -->
536592      <year>1985</year>
537593      <publisher>Richard Degler</publisher>
r241452r241453
545601   <software name="galactic">
546602      <description>Galactic Invasion</description>
547603      <year>1981</year>
548      <publisher>Astrovision Inc.</publisher>
604      <publisher>Astrovision</publisher>
549605      <part name="cart" interface="astrocde_cart">
550606         <dataarea name="rom" size="4096">
551607            <rom name="galactic.bin" size="4096" crc="ba558eb7" sha1="939857d621715b831d558bcb2fd2f0f9e9b37676" offset="0" />
r241452r241453
556612   <software name="galaxian">
557613      <description>Galaxian</description>
558614      <year>1981</year>
559      <publisher>Astrovision Inc.</publisher>
615      <publisher>Astrovision</publisher>
560616      <part name="cart" interface="astrocde_cart">
561617         <dataarea name="rom" size="4096">
562618            <rom name="galaxian.bin" size="4096" crc="d75e9672" sha1="fb13e40c9ebadcb68beb7294a732ecf1b2f2ec30" offset="0" />
r241452r241453
564620      </part>
565621   </software>
566622
623   <software name="golddig">
624      <description>Golddigger, Goldrush (Prototype, 19840811))</description>
625      <year>1984</year>
626      <publisher>Dave Carson and Ken Lill</publisher>
627      <part name="cart" interface="astrocde_cart">
628         <dataarea name="rom" size="2048">
629            <rom name="golddigger, goldrush (8-11-84) (1984)(dave carson and ken lill)(proto).bin" size="2048" crc="20755476" sha1="3537ded59d46a539e05a5f178a409346f1673bd9" offset="0" />
630         </dataarea>
631      </part>
632   </software>
633
634   <software name="golddiga" cloneof="golddig">
635      <description>Golddigger, Goldrush (Prototype Alt)</description>
636      <year>198?</year>
637      <publisher>Dave Carson and Ken Lill</publisher>
638      <part name="cart" interface="astrocde_cart">
639         <dataarea name="rom" size="2048">
640            <rom name="golddigger, goldrush (198x)(dave carson and ken lill)(proto).bin" size="2048" crc="994661a1" sha1="ca71326eb5cd243d2240804bb314235d96b45380" offset="0" />
641         </dataarea>
642      </part>
643   </software>
644
645   <software name="golddigb" cloneof="golddig">
646      <description>Golddigger, Goldrush (Prototype Alt 2)</description>
647      <year>198?</year>
648      <publisher>Dave Carson and Ken Lill</publisher>
649      <part name="cart" interface="astrocde_cart">
650         <dataarea name="rom" size="2048">
651            <rom name="golddigger, goldrush (198x)(dave carson and ken lill)(proto)[a].bin" size="2048" crc="face3b05" sha1="a54d2eb5f304fb83ad125560b0e555b0d1beb9ae" offset="0" />
652         </dataarea>
653      </part>
654   </software>
655
567656   <software name="grandprx">
568657      <description>Grand Prix</description>
569658      <year>1981</year>
570      <publisher>Astrovision Inc.</publisher>
659      <publisher>Astrovision</publisher>
571660      <part name="cart" interface="astrocde_cart">
572661         <dataarea name="rom" size="4096">
573662            <rom name="grandprx.bin" size="4096" crc="7b3b7b70" sha1="fd133dc402b6ecbcc718ffb895a16e07979ab329" offset="0" />
r241452r241453
636725   <software name="lttrmtch">
637726      <description>Letter Match / Spell 'n Score / Crosswords</description>
638727      <year>1978</year>
639      <publisher>Bally Mfg. Corp.</publisher>
728      <publisher>Bally</publisher>
640729      <part name="cart" interface="astrocde_cart">
641730         <dataarea name="rom" size="4096">
642731            <rom name="lttrmtch.bin" size="4096" crc="2cf68f93" sha1="266f6978b8f9e6bad36dc21031193ca93cd55be4" offset="0" />
r241452r241453
678767      </part>
679768   </software>
680769
770   <software name="mazemanp" cloneof="mazeman">
771      <description>Mazeman (Prototype)</description>
772      <year>1984</year>
773      <publisher>Dave Carson Software</publisher>
774      <part name="cart" interface="astrocde_cart">
775         <dataarea name="rom" size="4096">
776            <rom name="mazeman (1984)(dave carson software)(proto).bin" size="4096" crc="af649678" sha1="f296ebdfe1a8c4f1dacf06914be1918b92f4d2b3" offset="0" />
777         </dataarea>
778      </part>
779   </software>
780
681781   <software name="matk">
682782      <description>Missile Attack</description>
683783      <!-- <note>Mike White sold a version of ICBM Attack hacked to work with a regular controller.</note> -->
r241452r241453
703803
704804   <software name="muncher">
705805      <description>Muncher</description>
706      <!-- <note>This Pac-Man clone was originally developed by Astrocade Inc., but never released by them due to legal challenges.  Phillip Harris and Alternative Engineering took the prototype, changed the name to Muncher, and manufactured some for sale through the Arcadian newsletter.  More copies were later sold by Esoterica.</note> -->
806      <!-- <note>This Pac-Man clone was originally developed by Astrocade, but never released by them due to legal challenges.  Phillip Harris and Alternative Engineering took the prototype, changed the name to Muncher, and manufactured some for sale through the Arcadian newsletter.  More copies were later sold by Esoterica.</note> -->
707807      <year>1983</year>
708      <publisher>Astrocade Inc., Phillip Harris, and Alternative Engineering</publisher>
808      <publisher>Astrocade, Phillip Harris, and Alternative Engineering</publisher>
709809      <part name="cart" interface="astrocde_cart">
710810         <dataarea name="rom" size="8192">
711811            <rom name="muncher.bin" size="8192" crc="e4726657" sha1="02f37ded48b1fb9ba0a2d7e45f5b0a85eaecb1c8" offset="0" />
r241452r241453
715815
716816   <software name="musicmak">
717817      <description>Music Maker</description>
718<!-- <note>While Astrocade Inc. never released Music Maker, it was eventually published by Dave Carson Software, which added its own copyright screen.</note> -->
818<!-- <note>While Astrocade never released Music Maker, it was eventually published by Dave Carson Software, which added its own copyright screen.</note> -->
719819      <year>1985</year>
720      <publisher>Astrocade Inc. and Dave Carson Software</publisher>
820      <publisher>Astrocade and Dave Carson Software</publisher>
721821      <part name="cart" interface="astrocde_cart">
722822         <dataarea name="rom" size="8192">
723823            <rom name="musicmak.bin" size="8192" crc="b242ef84" sha1="8101424ebbc2a31d7e750b6d00f01e657fd97cf8" offset="0" />
r241452r241453
726826   </software>
727827
728828   <software name="musicmakp" cloneof="musicmak">
729      <description>Music Maker v3.7 (Prototype)</description>
829      <description>Music Maker (Prototype v3.7)</description>
730830      <year>1982</year>
731      <publisher>Astrocade Inc.</publisher>
831      <publisher>Astrocade</publisher>
732832      <part name="cart" interface="astrocde_cart">
733833         <dataarea name="rom" size="8192">
734834            <rom name="musicmap.bin" size="8192" crc="a76828d0" sha1="924cecf006f91bf49f2bcc1e14c55646a0ee93ff" offset="0" />
r241452r241453
736836      </part>
737837   </software>
738838
739   <software name="nodie">
740      <description>No-Die!</description>
741<!-- <note>Dave Carson detailed how to hack Muncher to give infinite lives in the Arcadian newsletter.  Mike White sold this hacked version as No-Die!.</note> -->
742      <year>1984</year>
743      <publisher>Astrocade Inc., Dave Carson, and Mike White</publisher>
839   <software name="musicmakp2" cloneof="musicmak">
840      <description>Music Maker (Prototype Alt)</description>
841      <year>1982</year>
842      <publisher>Astrocade</publisher>
744843      <part name="cart" interface="astrocde_cart">
745844         <dataarea name="rom" size="8192">
746            <rom name="nodie.bin" size="8192" crc="784b256a" sha1="8dd34f2428a65ac590a26b25904a96e6f04e01d2" offset="0" />
845            <rom name="music maker (1981)(astrocade inc.)(proto).bin" size="7376" crc="cc97a150" sha1="6a35509709497151f4f810a958fc5abf3852afc6" offset="0" />
747846         </dataarea>
748847      </part>
749848   </software>
750849
751   <software name="pacman">
752      <description>Pac-Man (Prototype)</description>
753<!-- <note>This prototype was eventually renamed Muncher and sold through the Arcadian newsletter.</note> -->
754      <year>198?</year>
755      <publisher>Astrocade Inc.</publisher>
850   <software name="nodie">
851      <description>No-Die!</description>
852<!-- <note>Dave Carson detailed how to hack Muncher to give infinite lives in the Arcadian newsletter.  Mike White sold this hacked version as No-Die!.</note> -->
853      <year>1984</year>
854      <publisher>Astrocade, Dave Carson, and Mike White</publisher>
756855      <part name="cart" interface="astrocde_cart">
757856         <dataarea name="rom" size="8192">
758            <rom name="pacman.bin" size="8192" crc="17363546" sha1="3d0e2b3fc4adfd0297a609bd78eb8b557414ea23" offset="0" />
857            <rom name="nodie.bin" size="8192" crc="784b256a" sha1="8dd34f2428a65ac590a26b25904a96e6f04e01d2" offset="0" />
759858         </dataarea>
760859      </part>
761860   </software>
r241452r241453
784883      </part>
785884   </software>
786885
886   <software name="pacman">
887      <description>Pac-Man (Prototype)</description>
888<!-- <note>This prototype was eventually renamed Muncher and sold through the Arcadian newsletter.</note> -->
889      <year>198?</year>
890      <publisher>Astrocade</publisher>
891      <part name="cart" interface="astrocde_cart">
892         <dataarea name="rom" size="8192">
893            <rom name="pacman.bin" size="8192" crc="17363546" sha1="3d0e2b3fc4adfd0297a609bd78eb8b557414ea23" offset="0" />
894         </dataarea>
895      </part>
896   </software>
897
898   <software name="pacmana" cloneof="pacman">
899      <description>Pac-Man (Prototype Alt)</description>
900      <year>198?</year>
901      <publisher>Astrocade</publisher>
902      <part name="cart" interface="astrocde_cart">
903         <dataarea name="rom" size="8192">
904            <rom name="pac-man (198x)(astrocade inc.)(proto)[a].bin" size="8192" crc="ca3a67dd" sha1="fc5cd6ec56e0f2d3acf7acfd4dbc560bdf63c768" offset="0" />
905         </dataarea>
906      </part>
907   </software>
908
909   <software name="pacmaze">
910      <description>Pacmaze (Prototype)</description>
911      <year>198?</year>
912      <publisher>Dave Carson Software</publisher>
913      <part name="cart" interface="astrocde_cart">
914         <dataarea name="rom" size="4096">
915            <rom name="pacmaze (198x)(dave carson software)(proto).bin" size="4096" crc="cff3a6cc" sha1="f8d1b6eb9c4e148b76a46bda7ca3e976abeba056" offset="0" />
916         </dataarea>
917      </part>
918   </software>
919
787920   <software name="paperbck">
788921      <description>Paperback Writer (Prototype)</description>
789922      <year>1986</year>
r241452r241453
798931   <software name="pirate">
799932      <description>Pirate's Chase</description>
800933      <year>1982</year>
801      <publisher>Astrocade Inc.</publisher>
934      <publisher>Astrocade</publisher>
802935      <part name="cart" interface="astrocde_cart">
803936         <dataarea name="rom" size="4096">
804937            <rom name="pirate.bin" size="4096" crc="7b1b206a" sha1="3ad79a4381441c7f28479ad6b50c9105ca1ba7e4" offset="0" />
r241452r241453
826959
827960   <software name="rainbow2">
828961      <description>Rainbow v2 (Prototype)</description>
829<!-- <note>This prototype was found in the collection of Arcadian editor Bob Fabris. The first version has not been found.</note> -->
962<!-- <note>This prototype was found in the collection of Arcadian editor Bob Fabris. The full name of the author is unknown, and the first version has not been found.</note> -->
830963      <year>19??</year>
831      <publisher>Larry Hanson</publisher>
964      <publisher>Hanson</publisher>
832965      <part name="cart" interface="astrocde_cart">
833966         <dataarea name="rom" size="2048">
834967            <rom name="rainbow2.bin" size="2048" crc="3883484a" sha1="888d0de155b53606466393560119ea355edd11ce" offset="0" />
r241452r241453
839972   <software name="redbaron">
840973      <description>Red Baron / Panzer Attack</description>
841974      <year>1978</year>
842      <publisher>Bally Mfg. Corp.</publisher>
975      <publisher>Bally</publisher>
843976      <part name="cart" interface="astrocde_cart">
844977         <dataarea name="rom" size="4096">
845978            <rom name="redbaron.bin" size="4096" crc="a1c7e129" sha1="e0602c7485f511d6aa29d669967b101de79ddb15" offset="0" />
r241452r241453
8731006   <software name="seawolf">
8741007      <description>Seawolf / Missile</description>
8751008      <year>1978</year>
876      <publisher>Bally Mfg. Corp.</publisher>
1009      <publisher>Bally</publisher>
8771010      <part name="cart" interface="astrocde_cart">
8781011         <dataarea name="rom" size="2048">
8791012            <rom name="seawolf.bin" size="2048" crc="a021735e" sha1="4c2ca46ab5a00dc2eb252ee900b2760b758a2162" offset="0" />
r241452r241453
9421075   <software name="soccerp">
9431076      <description>Soccer (Prototype)</description>
9441077      <year>198?</year>
945      <publisher>Astrocade Inc.</publisher>
1078      <publisher>Astrocade</publisher>
9461079      <part name="cart" interface="astrocde_cart">
9471080         <dataarea name="rom" size="8192">
9481081            <rom name="soccerp.bin" size="8192" crc="7de08d9a" sha1="955b138b4db95e8a7c35ff958724440bd75d5fc2" offset="0" />
r241452r241453
9541087      <description>Soccer (Prototype, Alt)</description>
9551088<!-- <note>Dumped from a cart labeled 'Soccer / Dribbling'.</note> -->
9561089      <year>198?</year>
957      <publisher>Astrocade Inc.</publisher>
1090      <publisher>Astrocade</publisher>
9581091      <part name="cart" interface="astrocde_cart">
9591092         <dataarea name="rom" size="4096">
9601093            <rom name="soccera.bin" size="4096" crc="fd633ca9" sha1="39ac51f18eb6ceb8e1f766f4d13d4c0ed7af1f85" offset="0" />
r241452r241453
9661099      <description>Soccer (Prototype, Alt 2)</description>
9671100<!-- <note>Dumped from a cart labeled 'Soccer 8-5'.</note> -->
9681101      <year>198?</year>
969      <publisher>Astrocade Inc.</publisher>
1102      <publisher>Astrocade</publisher>
9701103      <part name="cart" interface="astrocde_cart">
9711104         <dataarea name="rom" size="8192">
9721105            <rom name="soccera2.bin" size="8192" crc="7c2858dd" sha1="a6fd25d85124e4c3f005f25c067a0b60a7a617c3" offset="0" />
r241452r241453
9771110   <software name="soccera3">
9781111      <description>Soccer (Prototype, Alt 3)</description>
9791112      <year>198?</year>
980      <publisher>Astrocade Inc.</publisher>
1113      <publisher>Astrocade</publisher>
9811114      <part name="cart" interface="astrocde_cart">
9821115         <dataarea name="rom" size="8192">
9831116            <rom name="soccera3.bin" size="8192" crc="5cb41426" sha1="a6cee6a0bc7a7bfe506b1089b431629e8b57dc04" offset="0" />
r241452r241453
9881121   <software name="soccera4">
9891122      <description>Soccer (Prototype, Alt 4)</description>
9901123      <year>198?</year>
991      <publisher>Astrocade Inc.</publisher>
1124      <publisher>Astrocade</publisher>
9921125      <part name="cart" interface="astrocde_cart">
9931126         <dataarea name="rom" size="8192">
9941127            <rom name="soccera4.bin" size="8192" crc="4f5e93d5" sha1="5ea2b708df06b09abd63b58e03229efecb98d464" offset="0" />
r241452r241453
9991132   <software name="solarcnq">
10001133      <description>Solar Conqueror</description>
10011134      <year>1983</year>
1002      <publisher>Astrocade Inc.</publisher>
1135      <publisher>Astrocade</publisher>
10031136      <part name="cart" interface="astrocde_cart">
10041137         <dataarea name="rom" size="8192">
10051138            <rom name="scnquer.bin" size="8192" crc="d15ce025" sha1="3185285687a1b4f643329bea94cba398e1b3ed4b" offset="0" />
r241452r241453
10101143   <software name="solarcnqp28" cloneof="solarcnq">
10111144      <description>Solar Conqueror (Prototype v2.8)</description>
10121145      <year>198?</year>
1013      <publisher>Astrocade Inc.</publisher>
1146      <publisher>Astrocade</publisher>
10141147      <part name="cart" interface="astrocde_cart">
10151148         <dataarea name="rom" size="8192">
10161149            <rom name="scquer28.bin" size="8192" crc="0709b022" sha1="90900ec2c1fb9d476db22fd479400a6315230f9f" offset="0" />
r241452r241453
10211154   <software name="solarcnqp39" cloneof="solarcnq">
10221155      <description>Solar Conqueror (Prototype v3.9)</description>
10231156      <year>198?</year>
1024      <publisher>Astrocade Inc.</publisher>
1157      <publisher>Astrocade</publisher>
10251158      <part name="cart" interface="astrocde_cart">
10261159         <dataarea name="rom" size="8192">
10271160            <rom name="scquer39.bin" size="8192" crc="8612cc7a" sha1="eba87f0296ff0759eb25a094ea98fd05d9eb91b6" offset="0" />
r241452r241453
10331166      <description>Solar Conqueror (Prototype)</description>
10341167<!-- <note>Dumped from a cart labeled 'Solar Conquer CES Chicago 1982'.</note> -->
10351168      <year>1982</year>
1036      <publisher>Astrocade Inc.</publisher>
1169      <publisher>Astrocade</publisher>
10371170      <part name="cart" interface="astrocde_cart">
10381171         <dataarea name="rom" size="8192">
10391172            <rom name="scquerp.bin" size="8192" crc="4a229478" sha1="99139da1e5b8a52251033de6902b537d3f9ab6bc" offset="0" />
r241452r241453
10441177   <software name="songs">
10451178      <description>Songs (Prototype)</description>
10461179      <year>19??</year>
1047      <publisher>Bally Mfg. Corp.</publisher>
1180      <publisher>Bally</publisher>
10481181      <part name="cart" interface="astrocde_cart">
10491182         <dataarea name="rom" size="4096">
10501183            <rom name="songs.bin" size="4096" crc="fe6182b3" sha1="a269b21309b7849b6a3e248417be9316db31e4e6" offset="0" />
r241452r241453
10521185      </part>
10531186   </software>
10541187
1188   <software name="songsa" cloneof="songs">
1189      <description>Songs (Prototype Alt)</description>
1190      <year>19??</year>
1191      <publisher>Bally</publisher>
1192      <part name="cart" interface="astrocde_cart">
1193         <dataarea name="rom" size="8192">
1194            <rom name="songs (19xx)(bally mfg. corp.)(proto)[a].bin" size="8192" crc="36a3d077" sha1="892720fb69a1d7bb158d857176374c113ab545ca" offset="0" />
1195         </dataarea>
1196      </part>
1197   </software>
1198
10551199   <software name="songsu" cloneof="songs">
10561200      <description>Songs (Prototype, Unfinished)</description>
10571201<!-- <note>This was dumped from a ROM in Richard Degler's collection.  At some point, it's had data from the Blue RAM Utility added to the end of it.</note> -->
10581202      <year>19??</year>
1059      <publisher>Bally Mfg. Corp.</publisher>
1203      <publisher>Bally</publisher>
10601204      <part name="cart" interface="astrocde_cart">
10611205         <dataarea name="rom" size="8192">
10621206            <rom name="songsu.bin" size="8192" crc="16326f8c" sha1="c2f980f59367f4ff80c96fc173c83c0b29c1bc8f" offset="0" />
r241452r241453
10671211   <software name="spacefrt">
10681212      <description>Space Fortress</description>
10691213      <year>1981</year>
1070      <publisher>Astrocade Inc.</publisher>
1214      <publisher>Astrocade</publisher>
10711215      <part name="cart" interface="astrocde_cart">
10721216         <dataarea name="rom" size="4096">
10731217            <rom name="spacefrt.bin" size="4096" crc="519cc707" sha1="d1d4527128cad5446cdd4d4f0dfa7194cb50aaef" offset="0" />
r241452r241453
10751219      </part>
10761220   </software>
10771221
1078   <software name="invaders">
1222   <software name="spacefrtp" cloneof="spacefrt">
1223      <description>Space Fortress (Prototype)</description>
1224      <year>1981</year>
1225      <publisher>Astrocade</publisher>
1226      <part name="cart" interface="astrocde_cart">
1227         <dataarea name="rom" size="2048">
1228            <rom name="space fortress (1981)(astrocade inc.)(proto).bin" size="2048" crc="cf5012bd" sha1="08510e05c81192908bb62330dc825e1f63052584" offset="0" />
1229         </dataarea>
1230      </part>
1231   </software>
1232
1233   <software name="spaceinv">
10791234      <description>Space Invaders</description>
10801235      <year>1979</year>
1081      <publisher>Bally Mfg. Corp.</publisher>
1236      <publisher>Bally</publisher>
10821237      <part name="cart" interface="astrocde_cart">
10831238         <dataarea name="rom" size="4096">
10841239            <rom name="invaders.bin" size="4096" crc="52964c1f" sha1="aecaa45ed1d74ebf882120da75c006ae502e94c1" offset="0" />
r241452r241453
10861241      </part>
10871242   </software>
10881243
1244   <software name="spaceinvp" cloneof="spaceinv">
1245      <description>Space Invaders (Prototype)</description>
1246      <year>197?</year>
1247      <publisher>Bally</publisher>
1248      <part name="cart" interface="astrocde_cart">
1249         <dataarea name="rom" size="2048">
1250            <rom name="space invaders (197x)(bally mfg. corp.)(proto).bin" size="2048" crc="a542f4b2" sha1="46b2396ce3223a8e709a819e674726e6bf0d026e" offset="0" />
1251         </dataarea>
1252      </part>
1253   </software>
1254
10891255   <software name="spedmath">
10901256      <description>Speed Math / Bingo Math</description>
10911257      <year>1978</year>
1092      <publisher>Bally Mfg. Corp.</publisher>
1258      <publisher>Bally</publisher>
10931259      <part name="cart" interface="astrocde_cart">
10941260         <dataarea name="rom" size="2048">
10951261            <rom name="spedmath.bin" size="2048" crc="7d30312a" sha1="8f500f1e2144169bb94214eaa2863dcf6590b926" offset="0" />
r241452r241453
11001266   <software name="starbttl">
11011267      <description>Star Battle</description>
11021268      <year>1979</year>
1103      <publisher>Bally Mfg. Corp.</publisher>
1269      <publisher>Bally</publisher>
11041270      <part name="cart" interface="astrocde_cart">
11051271         <dataarea name="rom" size="2048">
11061272            <rom name="starbttl.bin" size="2048" crc="d54a74c8" sha1="00f8c65ed73f6ce134c1e4e0af7c5aa91a287951" offset="0" />
r241452r241453
11121278      <description>Stweek</description>
11131279<!-- <note>This was an internal tool for developing sound effects.</note> -->
11141280      <year>19??</year>
1115      <publisher>Bally Mfg. Corp.</publisher>
1281      <publisher>Bally</publisher>
11161282      <part name="cart" interface="astrocde_cart">
11171283         <dataarea name="rom" size="2048">
11181284            <rom name="stweek.bin" size="2048" crc="e4f3766a" sha1="a8170dba7126ff6acb56686a46362bb36bebd799" offset="0" />
r241452r241453
11361302      <description>Tests</description>
11371303<!-- <note>This was an internal tool for testing hardware.</note> -->
11381304      <year>19??</year>
1139      <publisher>Bally Mfg. Corp.</publisher>
1305      <publisher>Bally</publisher>
11401306      <part name="cart" interface="astrocde_cart">
11411307         <dataarea name="rom" size="4096">
11421308            <rom name="tests.bin" size="4096" crc="49df19eb" sha1="581f592845ffca65f1336b521d03c57309a6f91c" offset="0" />
r241452r241453
11591325   <software name="wizard">
11601326      <description>The Incredible Wizard</description>
11611327      <year>1982</year>
1162      <publisher>Astrocade Inc.</publisher>
1328      <publisher>Astrocade</publisher>
11631329      <part name="cart" interface="astrocde_cart">
11641330         <dataarea name="rom" size="8192">
11651331            <rom name="wizard.bin" size="8192" crc="1395b130" sha1="da366390c91e24206b5034bc525e98f2a3ce5f86" offset="0" />
r241452r241453
11681334   </software>
11691335
11701336   <software name="wizardp" cloneof="wizard" supported="no">
1171      <description>The Incredible Wizard (Prototype)</description>
1337      <description>The Incredible Wizard (Prototype, Bad Dump)</description>
11721338<!-- <note>This was dumped from a working prototype cart, but the cart was sold before it was realized that the dump was bad.</note> -->
11731339      <year>198?</year>
1174      <publisher>Astrocade Inc.</publisher>
1340      <publisher>Astrocade</publisher>
11751341      <part name="cart" interface="astrocde_cart">
11761342         <dataarea name="rom" size="8192">
11771343            <rom name="wizardp.bin" size="8192" crc="a0cba256" sha1="262c731967b193ece4e1d395e7cb3e8ce9c4fc2c" offset="0" status="baddump"/>
r241452r241453
11821348   <software name="baseball">
11831349      <description>Tornado Baseball / Handball / Hockey / Tennis</description>
11841350      <year>1978</year>
1185      <publisher>Bally Mfg. Corp.</publisher>
1351      <publisher>Bally</publisher>
11861352      <part name="cart" interface="astrocde_cart">
11871353         <dataarea name="rom" size="4096">
11881354            <rom name="baseball.bin" size="4096" crc="5be548cc" sha1="4dda98d6cf257652fd179eca137b69b67e38b8c6" offset="0" />
r241452r241453
12491415      </part>
12501416   </software>
12511417
1418   <software name="war">
1419      <description>War (Second Printing)</description>
1420      <year>2012</year>
1421      <publisher>Riff Raff Games</publisher>
1422      <part name="cart" interface="astrocde_cart">
1423         <dataarea name="rom" size="8192">
1424            <rom name="war (2012)(riff raff games)[second printing].bin" size="7931" crc="c1faf1bf" sha1="bca64e756b1f1c23a6b78d90a14541e44161371b" offset="0" />
1425         </dataarea>
1426      </part>
1427   </software>
1428
12521429   <software name="yahtgold" supported="no">
12531430      <description>Yahtzee / Golddigger</description>
12541431<!-- <note>This is one of several BASIC conversions sold by Mike White.  It requires cartridge swapping and a RAM expansion.</note> -->
r241452r241453
12621439   </software>
12631440
12641441   <software name="yesternv">
1265      <description>Yesterday (no vibrato) (Prototype)</description>
1442      <description>Yesterday (Prototype, no vibrato)</description>
12661443<!-- <note>Of all Richard Degler's adaptations of George Moses' Beatles tape programs, only this one was actually sold in limited quantities.  The version sold hadn't had vibrato added yet, though.</note> -->
12671444      <year>1986</year>
12681445      <publisher>Richard Degler and George Moses</publisher>
r241452r241453
12741451   </software>
12751452
12761453   <software name="yesterv">
1277      <description>Yesterday (with vibrato) (Prototype)</description>
1454      <description>Yesterday (Prototype, with vibrato)</description>
12781455      <year>1986</year>
12791456      <publisher>Richard Degler and George Moses</publisher>
12801457      <part name="cart" interface="astrocde_cart">
r241452r241453
12851462   </software>
12861463
12871464</softwarelist>
1288
1289
trunk/hash/vsmile_cart.xml
r241452r241453
77
88<!--
99
10- Known V.Smile games (thanks to Team Europe and Cowering)
10- Known V.Smile Edutainment Smartridges (thanks to Cowering and Team Europe)
1111
1212
1313V.Smile Motion:               80-08****  (Smartridges are orange)
1414V.Smile Smartbook Software:   80-089***  (Smartridges are red)
1515V.Smile:                      80-09****  (Smartridges are purple, some are gray because of plastic defects)
16V.Smile Baby                  80-099***  (Smartridges are yellow, incompatible with TV based V.Smile consoles)
1617
1718Addons (w/ yellow Smartridges)
18V.Smile Smart Keyboard    80-091440 (US)
19V.Smile Smart Keyboard    80-091443 (UK)
20V.Smile PC Pal            80-03600 (US)
21V.Smile Art Studio        80-67000 (US)
22V.Smile Art Studio        80-67003 (UK)
23V.Smile Jamming Gym Class 80-91320 (US)
24V.Smile Dance'n'Learn     80-91323 (UK)
19V.Smile Smart Keyboard    80-091440(US)
20V.Smile Smart Keyboard    80-091443(UK)
21V.Smile PC Pal            80-03600(US)
22V.Smile Art Studio        80-67000(US)
23V.Smile Art Studio        80-67003(UK)
24V.Smile Jamming Gym Class 80-91320(US)
25V.Smile Dance'n'Learn     80-91323(UK)
26V.Smile Defi Gym          80-91325(GE)
2527
2628- Not compatible with V.Smile games, left as documentation
2729V.Flash (V.Smile Pro):        80-093***
r241452r241453
3032
3133Language:
3234********0 = US
33********1 =
35********1 = Italy
3436********2 = Netherlands
3537********3 = UK
3638********4 = Germany
3739********5 = France
40********6 =
3841********7 = Spain
3942
4043
4144
424580-084000(US)   | Action Mania
4380-084004(GER)  | Sportskanone
4480-084005(FRA)  | Sporti Folies
4680-084004(GE)   | Sportskanone
4780-084005(FR)   | Sporti Folies
454880-084020(US)   | Dora's Fix It Adventure
4980-084022(NL)   | Dora's Reparatie Avontuur
465080-084023(UK)   | Dora's Fix-It Adventure
4780-084025(FRA)  | Les Adventures De Dora Apprentie Mecano
4880-084024(GER)  | Doras Reparatur-Abenteuer
4980-084040(US)   | Scooby-Doo! - Funland Frenzy
5180-084025(FR)   | Les Adventures De Dora Apprentie Mecano
5280-084024(GE)   | Doras Reparatur-Abenteuer
5380-084040(US)   | Scooby-Doo! - Funland Frenzy (is V.Motion)
505480-084043(UK)   | Scooby-Doo! - Funland Frenzy
5180-084045(FRA)  | Scooby-Doo - Panique A Funland
5580-084044(US)   | Scooby-Doo! - Im Lernpark
5680-084045(FR)   | Scooby-Doo - Panique A Funland
525780-084060(US)   | Thomas and Friends - Engines Working Together
535880-084063(UK)   | Thomas and Friends - Engines Working Together
5480-084064(GER)  | Thomas - Freunde halten zusammen
5980-084064(GE)   | Thomas - Freunde halten zusammen
556080-084080(US)   | Wall-E
566180-084083(UK)   | Wall-E
5780-084084(GER)  | Wall-E
5880-084085(FRA)  | Wall-E
5980-084087(SPA)  | Wall-E
6280-084084(GE)   | Wall-E
6380-084085(FR)   | Wall-E
6480-084087(SP)   | Wall-E
606580-084100(US)   | Wonder Pets - Save the Animals!
616680-084103(UK)   | Wonder Pets - Save the Animals!
6280-084120(US)   | Kung Fu Panda
6380-084124(GER)  | Kung Fu Panda - Der Weg des Panda
6480-084125(FRA)  | Kung Fu Panda - La mission de Po
6780-084120(US)   | Kung Fu Panda - Path of the Panda
6880-084123(UK)   | Kung Fu Panda - Path of the Panda
6980-084124(GE)   | Kung Fu Panda - Der Weg des Panda
7080-084125(FR)   | Kung Fu Panda - La mission de Po
657180-084140(US)   | Spidey & Friends
6680-084144(GER)  | Spider-Man & Freunde - Geheime Missionen
7280-084144(GE)   | Spider-Man & Freunde - Geheime Missionen
73-
677480-084160(US)   | Little Einsteins
6880-084164(GER)  | Kleine Einsteins
7580-084164(GE)   | Kleine Einsteins
7680-084167(SP)   | Little Einsteins
77-
697880-084180(US)   | Mickey Mouse Clubhouse
7080-084184(GER)  | Micky Maus Wunderhaus
7980-084184(GE)   | Micky Maus Wunderhaus
80-
718180-084200(US)   | Nascar Academy - Race Car Superstar
82-
728380-084220(US)   | Snow Park Challenge
7380-084224(GER)  | Wintersport
8480-084224(GE)   | Wintersport
85-
748680-084240(US)   | Ni Hao Kai Lan
87-
758880-084260(US)   | My Pet Puppy (unreleased??)
768980-084263(UK)   | My Pet Puppy
7780-084264(GER)  | Mein erster Hund
9080-084264(GE)   | Mein erster Hund
9180-084267(SP)   | Dakota y su mascota
92-
789380-084280(US)   | Wild Waves
9480-084285(FR)   | Martin le Dauphin
95-
799680-084300(US)   | Soccer Challenge
8080-084304(GER)  | Fußball Meisterschaft
8180-084305(FRE)  | Football Challenge
9780-084304(GE)   | Fußball Meisterschaft
9880-084305(FR)   | Football Challenge
99-
8210080-084320(US)   | Disney Fairies: Tinker Bell
8310180-084323(UK)   | TinkerBell
8480-084324(GER)  | TinkerBell
8580-084325(FRE)  | La fée Clochette
10280-084324(GE)   | TinkerBell
10380-084325(FR)   | La fée Clochette
104-
8610580-084340(US)   | Up!
8780-084344(GER)  | Oben
8880-084345(FRE)  | La-Haut
10680-084344(GE)   | Oben
10780-084342(NL)   | Up!  (with motion?)
10880-084345(FR)   | La-Haut
109-
8911080-084360(US)   | Handy Manny
9011180-084363(UK)   | Handy Manny
9180-084364(GER)  | Meister Manny's Werkzeugkiste
11280-084364(GE)   | Meister Manny's Werkzeugkiste
11380-084365(FR)   | Manny Et Ses Outils
11480-084367(SP)   | Manny Manitas
115-
9211680-084380(US)   | Winnie the Pooh - The Honey Hunt
9311780-084383(UK)   | Winnie the Pooh - The Honey Hunt
9480-084384(GER)  | Winnie Puuh - Die Honigjagd
118         (ITA)  | Winnie the Pooh - e la caccia al miele
11980-084384(GE)   | Winnie Puuh - Die Honigjagd
12080-084385(FR)   | Winnie Rourson - La Chasse au miel de Winnie
12180-084387(SP)   | Winnie the Pooh - En busca de la miel
122-
9512380-084400(US)   | Cars - Rev it up in Radiator Springs
9612480-084403(UK)   | Cars - Rev it up in Radiator Springs
9780-084404(GER)  | Cars - Vollgas in Radiator Springs
12580-084404(GE)   | Cars - Vollgas in Radiator Springs
12680-084407(SP)   | Cars - Acelera el Motor en Radiador Springs
127-
9812880-084420(US)   | Toy Story 3
9980-084423(US)   | Toy Story 3
10080-084424(GER)  | Toy Story 3
10180-084440(US)   | Monsters vs. Aliens
10280-084444(GER)  | Monsters vs. Aliens
12980-084423(UK)   | Toy Story 3
13080-084424(GE)   | Toy Story 3
131-
13280-084440(US)   | Monsters vs. Aliens  (Actually a v.motion cart)
13380-084444(GE)   | Monsters vs. Aliens
10313480-084460(US)   | Noddy (unreleased??)
10480-084467(SPA)  | Noddy - Detective por un Dia
13580-084467(SP)   | Noddy - Detective por un Dia
136-
10513780-084480(US)   | The Princess and the Frog
10613880-084483(UK)   | The Princess and the Frog
10780-084484(GER)  | Küss den Frosch
13980-084484(GE)   | Küss den Frosch
14080-084485(FR)   | La Princesse Et La Grenouille
141-
10814280-084500(US)   | Shrek 4
10980-084504(GER)  | Für immer Shrek
14380-084504(GE)   | Für immer Shrek
14480-084505(FR)   | Shrek 4 - Il Etait une Fin
145-
11014680-084520(US)   | <Unknown>
147-
11114880-084540(US)   | Super Why to the Rescue! The Beach Day Mystery
149-
11215080-084560(US)   | <Unknown>
151-
11315280-084580(US)   | Cars 2
15380-084584(GE)   | Cars 2
11415480-084583(UK)   | Cars 2
155-
11515680-084600(US)   | <Unknown> would be Cinderella - Cinderella's Magic Wishes
11615780-084603(UK)   | Cinderella - Cinderella's Magic Wishes
11780-084604(GER)  | Cinderella - Lernen im Märchenland
11880-084624(GER)  | Findet Nemo - Nemos Unterwasserabenteuer
15880-084604(GE)   | Cinderella - Lernen im Märchenland
159-
16080-084620(US)   | <Unknown>
16180-084624(GE)   | Findet Nemo - Nemos Unterwasserabenteuer
16280-084644(GE)   | Spongebob Schwammkopf - Der Tag des Schwamms
16380-084647(SP)   | Bob Epsonja - Un dia en la vida de una esponja
119164
120
12116580-089000(US)   | Spider-Man &amp; Friends Where is Hulk?
12216680-089020(US)   | Toy Story 2
12316780-089040(US)   | Dora's Fix It Adventure
12416880-089060(US)   | Scooby-Doo! - A Night of Fright is no Delight
125169
12617080-090000(US)   | Up
12780-090000(GER)  | Oben
17180-090004(GE)   | Oben
172-
12817380-090020(US)   | Handy Manny
12980-090024(GER)  | Meister Manny's Werkzeugkiste
17480-090024(GE)   | Meister Manny's Werkzeugkiste
17580-090025(FR)   | Manny Et Ses Outils
176-
13017780-090040(US)   | Wow Wow Wubbzy
13180-090144(GER)  | Mein erster Hund
13280-090164(GER)  | Monsters vs. Aliens
17880-090144(GE)   | Mein erster Hund
17980-090145(FR)   | Mon Toutou Tout Fou!
180-
18180-090160(US)   | <unknown> Should be Monsters vs. Aliens #80-084440
18280-090164(GE)   | Monsters vs. Aliens
18380-090165(FR)   | Monsters Contre Aliens
184-
18580-090180(US)   | <Unknown>
13318680-090183(UK)   | Wonder Pets! - Save the Animals
13480-090224(GER)  | Dolphis Wasserabenteuer
187-
18880-090200(US)   | <Unknown>
189-
19080-090220(US)   | <Unknown>
19180-090224(GE)   | Dolphis Wasserabenteuer
13519280-090260(US)   | Disney Fairies: Tinker Bell
136193
13719480-092000(US)   | Alphabet Park Adventure (Red Haired Girl Version)
13819580-092000(US)   | Alphabet Park Adventure (Blond Haired Girl Version)
13980-092004(GER)  | Abenteuer im ABC Park
19680-092004(GE)   | Abenteuer im ABC Park
19780-092005(FR)   | ABC Land Aventure
19880-092007(SP)   | Aventuras en el Parque Alfabeto
199-
14020080-092020(US)   | The Adventures of Little Red Riding Hood
14180-092024(GER)  | Entdecke die Welt von Rotkäppchen
20180-092024(GE)   | Entdecke die Welt von Rotkäppchen
202-
14220380-092060(US)   | Winnie The Pooh: The Honey Hunt
14380-092064(GER)  | Winnie Puuh - Die Honigjagd
20480-092064(GE)   | My Friends Tigger and Pooh - Die Honigjagd
205-
14420680-092080(US)   | Mickey Mouse - Mickey's Magical Adventures
14580-092087(SPA)  | Mickey - La Aventura Magica de Mickey
14680-092084(GER)  | Micky - Mickys magisches Abenteuer
207         (ITA)  | Topolino - Le Magiche Avventure di Topolino
20880-092084(GE)   | Micky - Mickys magisches Abenteuer
20980-092085(FR)   | Mickey - Mickey a la recherche de Pluto
21080-092087(SP)   | Mickey - La Aventura Magica de Mickey
211-
14721280-092100(US)   | The Lion King: Simba's Big Adventure
14880-092104(GER)  | Der König der Löwen - Simbas großes Abenteuer
21380-092104(GE)   | Der König der Löwen - Simbas großes Abenteuer
214-
14921580-092120(US)   | The Little Mermaid - Ariel's Majestic Journey
15080-092124(GER)  | Arielle die Meerjungfrau - Arielles aufregendes Abenteuer
15180-092127(SPA)  | La Sirenita - El Vieje Fantástico de Ariel
21680-092124(GE)   | Arielle die Meerjungfrau - Arielles aufregendes Abenteuer
21780-092125(FR)   | La Petite Sirene - Ariel devient une princesse
21880-092127(SP)   | La Sirenita - El Vieje Fantástico de Ariel
219-
15222080-092140(US)   | Spider-Man & Friends - Secret Missions
15380-092144(GER)  | Spider-Man & Freunde - Geheime Missionen
22180-092144(GE)   | Spider-Man & Freunde - Geheime Missionen
222-
15422380-092160(US)   | Scooby-Doo! - Funland Frenzy
15522480-092163(UK)   | Scooby-Doo! - Funland Frenzy
15622580-092163-293(UK)   | Scooby-Doo! - Funland Frenzy (ALT)
15780-092167(SPA)  | Scooby-Doo - Mysterio En El Parque
22680-092167(SP)   | Scooby-Doo - Mysterio En El Parque
227-
15822880-092180(US)   | Care Bears - A Lesson in Caring
15922980-092200(US)   | Aladdin - Aladdin's Wonders of the World
16080-092207(SPA)  | Aladdin - El Maravilloso Mundo de Aladdin
23080-092204(GE)   | Aladdin - Aladdins Welt der Wunder
23180-092207(SP)   | Aladdin - El Maravilloso Mundo de Aladdin
16123280-092220(US)   | Toy Story 2
23380-092224(GE)   | Toy Story 2 - Woodys Spannende Rettung
234         (ITA)  | Toy Story 2 - Operazione: Salvataggio di Woody!
23580-092225(FR)   | Toy Story 2 - Buzz à la Rescousse
236-
16223780-092240(US)   | Cinderella - Cinderella's Magic Wishes
16323880-092243(UK)   | Cinderella - Cinderella's Magic Wishes
16480-092244(GER)  | Cinderella - Lernen im Märchenland | 2007
23980-092243-103(UK)   | Cinderella - Cinderella's Magic Wishes | 2007
240         (ITA)  | Cenerentala - I desideri magici di Cenerentala
24180-092244(GE)   | Cinderella - Lernen im Märchenland | 2005
24280-092244-104(GE)   | Cinderella - Lernen im Märchenland | 2007
24380-092245-105(FR)   | Cendrillon - Le rêve enchanté de Cendrillon
244-
16524580-092260(US)   | Elmo's World - Elmo's Big Discoveries
16680-092264(GER)  | Elmo's großes Abenteuer
16780-092265(FRA)  | Le Monde d'ELMO - Les Grandes Decouvertes D'Elmo
24680-092264(GE)   | Elmo's großes Abenteuer
24780-092265(FR)   | Le Monde d'ELMO - Les Grandes Decouvertes D'Elmo
248-
16824980-092280(US)   | Dora The Explorer
25080-092284(GE)   | Dora - Doras Reparatur-Abenteuer
25180-092285(FR)   | Dora L'Exploratrice - Les aventures de Dora Apprentie Mecano
252-
16925380-092300(US)   | Bob the Builder: Bob's Busy Day
17080-092305(FRA)  | Bob Bricoleur: Les P'tits Chantiers de Bob
17180-092304(GER)  | Bob der Baumeister - Achtung Baustelle
25480-092305(FR)   | Bob Bricoleur: Les P'tits Chantiers de Bob
25580-092304(GE)   | Bob der Baumeister - Achtung Baustelle
25680-092304-104(GE)   | Bob der Baumeister - Bobs Spannender Arbeitstag
257-
17225880-092320(US)   | The Wiggles - It's Wiggle Time!
259-
17326080-092340(US)   | Thomas The Tank: Engines Working Together
17426180-092340-101(US)   | Thomas The Tank: Engines Working Together (ALT)
17526280-092343(UK)   | Thomas and Friends: Engines Working Together
26380-092344(GE)   | Thomas and Seine Freunde - Freunde Halten Zusammen
26480-092347(SP)   | Thomas and Friends: Juego de Aprendizaje
265-
17626680-092360(US)   | Zayzoo My Alien Classmate
26780-092363(UK)   | Zayzoo My Alien Classmate
26880-092365(FR)   | Zezou : Notre ami venu d'ailleurs
17726980-092360-101(US)   | Zayzoo - An Earth Adventure
27080-092363-101(UK)   | Zayzoo - An Earth Adventure
27180-092364(GE)   | Zayzoo Lernall
272-
17827380-092380(US)   | Barney - The Land of Make Believe
17980-092384(GER)  | Barney - Erlebnis-Reise
27480-092384(GE)   | Barney - Erlebnis-Reise
275-
18027680-092400(US)   | Blue's Clues Collection Day
277-
18127880-092420(US)   | Finding Nemo
18280-092424(GER)  | Findet Nemo
27980-092424(GE)   | Findet Nemo
280-
18328180-092440(US)   | Spongebob Squarepants: A Day In The Life of A Sponge
18428280-092443(UK)   | Spongebob Squarepants: A Day In The Life of A Sponge
28380-092444(GE)   | Spongebob Schwammkopf - Der Tag des Schwamms
284-
18528580-092460(US)   | Sesame Street
28680-092464(GE)   | Sesame Street : Ernie and Berts Fantastisches Abenteuer
287-
18628880-092480(US)   | Batman: Gotham City Rescue
28980-092485(FR)   | Batman: Panique a Gotham City
29080-092484(GE)   | Batman - Rettung von Gotham City
29180-09248?(ITA)  | Batman: Il Salvataggio di Gotham City
292-
18729380-092500(US)   | Whiz Kid Wheels
29480-092503(UK)   | Whiz Kid Wheels
29580-092504(GE)   | Flitzers Schlaue Staedtetour (diff color!?)
29680-092505(FR)   | Mission Pilote
29780-092507(SP)   | Conduccion Divertida
298-
18829980-092520(US)   | Spider-Man & Friends Doc Ock's Challenge
300         (ITA)  | Spider-Man la sfida del dottor Ock
30180-092524(GE)   | Spider-Man & Freunde Wettkampf im Space Labor
302-
18930380-092540(US)   | Noddy - Detective for a Day
19080-092540(UK)   | Noddy - Detective for a Day
19180-092540-103(UK)   | Noddy - Detective for a Day (ALT)
19280-092544(GER)  | Noddy
19380-092564(GER)  | 101 Dalmatiner
30480-092543(UK)   | Noddy - Detective for a Day
30580-092543-103(UK)   | Noddy - Detective for a Day (ALT)
30680-092544(GE)   | Noddy
30780-092564(GE)   | 101 Dalmatiner
308-
19430980-092580(US)   | Backyardigans - Viking Voyage
19531080-092600(US)   | Shrek - Dragon's Tale
31180-092604(GE)   | Shrek - Die Geschichte des Drachen
19631280-092620(US)   | Lil' Bratz - Friends, Fashion and Fun
313-
19731480-092640(US)   | Superman - The Greatest Hero
19880-092643(US)   | Superman - The Greatest Hero
31580-092643(UK)   | Superman - The Greatest Hero
316-
19931780-092660(US)   | Cars: Rev It Up In Radiator Springs
20031880-092662(NL)   | Cars - Spektakel in Radiator Springs
20180-092666(SPA)  | Cars: Acelera El Motor En Radiador Springs
20280-092664(GER)  | Cars
31980-092664(GE)   | Cars: Vollgas in Radiator Springs
320         (ITA)  | Cars: Motori Ruggenti
32180-092665(GE)   | Cars: Quatre Roues
32280-092667(SP)   | Cars: Acelera El Motor En Radiador Springs
323-
20332480-092820(US)   | Soccer Challenge
20432580-092823(UK)   | Football Challenge
20580-092824(GER)  | Fußball Schule
32680-092824(GE)   | Fußball Schule
32780-092831(IT)   | Football Club
328-
20632980-092840(US)   | Wall-E
20733080-092843(UK)   | Wall-E
33180-092844(GE)   | Wall-E
332         (ITA)  | Wall-E
20833380-092860(US)   | Shrek the Third: Arthur's School Day Adventure
20933480-092863(UK)   | Shrek the Third: Arthur's School Day Adventure
21080-092880(US)   | Ratatouille
335         (ITA)  | Shrek Terzo L'Advventura Do Artu in un Giorno do Scuola
33680-092864(GE)   | Shrek der Dritte - Ein Spannender Schultag
33780-092865(FR)   | Shrek Troisieme : L'aventure d'Arthur
33880-092880(US)   | Ratatouille - Remy's New Recipes
21133980-092882(NL)   | Ratatouille
21280-092884(GER)  | Ratatouille - Remys neue Rezepte
21380-092885(FRA)  | Ratatouille - Les nouvelles recettes de Rémy
34080-092883(UK)   | Ratatouille - Remy's New Recipes
34180-092884(GE)   | Ratatouille - Remys neue Rezepte
34280-092884-104(GE)   | Ratatouille - Remys neue Rezepte (ALT)
34380-092885(FR)   | Ratatouille - Les nouvelles recettes de Rémy
21434480-092900(US)   | Go Diego Go - Save the Animal Familes!
21534580-092920(US)   | Cranium - Partyland Park
346
34780-092944(GE)   | Micky Maus Wunderhaus
348         (ITA)  | La Casa di Topolino
34980-092945(FR)   | La Maison de Mickey
21635080-092960(US)   | Kung Fu Panda - Path of the Panda
35180-092964(GE)   | Kung Fu Panda - Der Weg des Panda
21735280-092980(US)   | Little Einsteins
35380-092984(GE)   | Kleine Einsteins
218354
355
356V.Flash
357
21935880-093000(US)   | The Crystal Ball Adventure
22035980-093020(US)   | The Incredibles - Mission Incredibles
22180-093040(US)   | Spongebob - Idea Sponge
22280-093044(GER)  | SpongeBob - Ein Schwamm voller Ideen
36080-093040(US)   | SpongeBob - Idea Sponge
36180-093044(GE)   | SpongeBob - Ein Schwamm voller Ideen
22336280-093060(US)   | The Amazing Spider-Man - Countdown to Doom
22436380-093080(US)   | Scooby-Doo! - Ancient Adventure
22536480-093100(US)   | Cars - In The Fast Lane
22680-093104(GER)  | Cars - Auf der Überholspur
36580-093104(GE)   | Cars - Auf der Überholspur
36680-093105(FR)   | Cars - A Fond la Caisse!
22736780-093120(US)   | Wacky Race on Jumpin' Bean Island
22880-093124(GER)  | Das verrückte Rennen auf der Hüpf-Bohnen-Insel
36880-093124(GE)   | Das verrückte Rennen auf der Hüpf-Bohnen-Insel
22936980-093140(US)   | Shrek 3
23080-093144(GER)  | Shrek - Der Dritte
37080-093144(GE)   | Shrek - Der Dritte
23137180-093160(US)   | Bratz - The Secret Necklace
23237280-093180(US)   | <Unknown>
23337380-093200(US)   | Ratatouille (according to vtech site, can't confirm)
23480-093204(GER)  | Multisports
37480-093204(GE)   | Multisports
23537580-093220(US)   | National Geographic Kids
236376
377
378V.Baby
379
38080-099000(US)   | Learn and Discover Home (white background on title) (the packin)
38180-099000(US)   | Learn and Discover Home (green background on title) (standalone)
38280-099020(US)   | Pooh's Hundred Acre Wood Adventure
38380-099040(US)   | Baby Einstein - World of Discoveries
38480-099040(US)   | Baby Einstein - World of Discoveries (no # on front label)
38580-099060(US)   | A Day On The Farm
38680-099080(US)   | <Unknown>
38780-099100(US)   | Noah's Ark Animal Adventure
38880-099120(US)   | Barney
38980-099140(US)   | Teletubbies
39080-099160(US)   | Baby Mickey
39180-099180(US)   |Bailey Goes To Town (Included Bailey Plush Bear Controller)
39280-099200(US)   | Mother Goose
39380-099220(US)   | Care Bears Play Day
39480-099240(US)   | Backyardigans: Big Backyard Adventures
395
39680-220000(US)   | The World of Eric Carle - The Very Hungry Caterpillar
39780-107100-001(US) | Meet Me at the Zoo (Orange, V.Baby V2 packin)
398
399
400V.Reader
401
23740280-280000(US)   | Animated E-Book Cartridge - Shrek's Vacation
23840380-280100(US)   | Animated E-Book Cartridge - Toy Story 3
23940480-280200(US)   | Animated E-Book Cartridge - Mr. Men/Little Miss
r241452r241453
262427-->
263428
264429   <software name="aladdin">
265      <description>Aladdin - Aladdins Welt der Wunder (Ger)</description>
430      <description>Aladdin - Aladdins Welt der Wunder (GE) </description>
266431      <year>200?</year>
267432      <publisher>VTech</publisher>
268433      <part name="cart" interface="vsmile_cart">
r241452r241453
273438   </software>
274439
275440   <software name="ariel">
276      <description>Arielle Die Meerjungfrau - Arielles aufregendes Abenteuer (Ger)</description>
441      <description>Arielle Die Meerjungfrau - Arielles aufregendes Abenteuer (GE) </description>
277442      <year>200?</year>
278443      <publisher>VTech</publisher>
279444      <part name="cart" interface="vsmile_cart">
r241452r241453
284449   </software>
285450
286451   <software name="bobbuild">
287      <description>Bob der Baumeister - Bobs spannender Arbeitstag (Ger)</description>
452      <description>Bob der Baumeister - Bobs spannender Arbeitstag (GE) </description>
288453      <year>200?</year>
289454      <publisher>VTech</publisher>
290455      <part name="cart" interface="vsmile_cart">
r241452r241453
317482   </software>
318483
319484   <software name="footschl">
320      <description>Fußball Schule (Ger)</description>
485      <description>Fußball Schule (GE) </description>
321486      <year>200?</year>
322487      <publisher>VTech</publisher>
323488      <part name="cart" interface="vsmile_cart">
r241452r241453
328493   </software>
329494
330495   <software name="fred">
331      <description>Freds Zahlen Rallye (Ger)</description>
496      <description>Freds Zahlen Rallye (GE) </description>
332497      <year>200?</year>
333498      <publisher>VTech</publisher>
334499      <part name="cart" interface="vsmile_cart">
r241452r241453
339504   </software>
340505
341506   <software name="manny">
342      <description>Meister Manny's Werkzeugkiste (Ger)</description>
507      <description>Meister Manny's Werkzeugkiste (GE) </description>
343508      <year>200?</year>
344509      <publisher>VTech</publisher>
345510      <part name="cart" interface="vsmile_cart">
r241452r241453
350515   </software>
351516
352517   <software name="monstaln">
353      <description>Monsters vs Aliens (Ger)</description>
518      <description>Monsters vs Aliens (GE) </description>
354519      <year>200?</year>
355520      <publisher>VTech</publisher>
356521      <part name="cart" interface="vsmile_cart">
r241452r241453
361526   </software>
362527
363528   <software name="oben">
364      <description>Oben (Ger)</description>
529      <description>Oben (GE) </description>
365530      <year>200?</year>
366531      <publisher>VTech</publisher>
367532      <part name="cart" interface="vsmile_cart">
r241452r241453
372537   </software>
373538
374539   <software name="ratat">
375      <description>Ratatouille - Remys Neue Rezepte (Ger)</description>
540      <description>Ratatouille - Remys Neue Rezepte (GE) </description>
376541      <year>200?</year>
377542      <publisher>VTech</publisher>
378543      <part name="cart" interface="vsmile_cart">
r241452r241453
383548   </software>
384549
385550   <software name="shrek">
386      <description>Shrek - Die Geschichte des Drache (Ger)</description>
551      <description>Shrek - Die Geschichte des Drache (GE) </description>
387552      <year>200?</year>
388553      <publisher>VTech</publisher>
389554      <part name="cart" interface="vsmile_cart">
r241452r241453
405570   </software>
406571
407572   <software name="spongeb1" cloneof="spongeb">
408      <description>Spongebob Schwammkopf - Der Tag des Schwamms (Ger)</description>
573      <description>Spongebob Schwammkopf - Der Tag des Schwamms (GE) </description>
409574      <year>200?</year>
410575      <publisher>VTech</publisher>
411576      <part name="cart" interface="vsmile_cart">
r241452r241453
416581   </software>
417582
418583   <software name="superman">
419      <description>Superman - Der Superheld (Ger)</description>
584      <description>Superman - Der Superheld (GE) </description>
420585      <year>200?</year>
421586      <publisher>VTech</publisher>
422587      <part name="cart" interface="vsmile_cart">
r241452r241453
427592   </software>
428593
429594   <software name="thomas">
430      <description>Thomas &amp; seine Freunde - Freunde halten zusammen (Ger)</description>
595      <description>Thomas &amp; seine Freunde - Freunde halten zusammen (GE) </description>
431596      <year>200?</year>
432597      <publisher>VTech</publisher>
433598      <part name="cart" interface="vsmile_cart">
r241452r241453
438603   </software>
439604
440605   <software name="toystor2">
441      <description>Toy Story 2 - Woodys Spannende Rettung (Ger)</description>
606      <description>Toy Story 2 - Woodys Spannende Rettung (GE) </description>
442607      <year>200?</year>
443608      <publisher>VTech</publisher>
444609      <part name="cart" interface="vsmile_cart">
r241452r241453
449614   </software>
450615
451616   <software name="walle">
452      <description>Wall-E (Ger)</description>
617      <description>Wall-E (GE) </description>
453618      <year>200?</year>
454619      <publisher>VTech</publisher>
455620      <part name="cart" interface="vsmile_cart">
r241452r241453
460625   </software>
461626
462627   <software name="pooh">
463      <description>Winnie Puhh - Die Honigjagd (Ger)</description>
628      <description>Winnie Puhh - Die Honigjagd (GE) </description>
464629      <year>19??</year>
465630      <publisher>&lt;unknown&gt;</publisher>
466631      <part name="cart" interface="vsmile_cart">
trunk/src/emu/bus/astrocde/rom.c
r0r241453
1// license:BSD-3-Clause
2// copyright-holders:etabeta
3/***********************************************************************************************************
4
5
6 Bally Astrocade cart emulation
7
8
9 ***********************************************************************************************************/
10
11
12#include "emu.h"
13#include "rom.h"
14
15
16//-------------------------------------------------
17//  astrocade_rom_device - constructor
18//-------------------------------------------------
19
20const device_type ASTROCADE_ROM_STD = &device_creator<astrocade_rom_device>;
21const device_type ASTROCADE_ROM_256K = &device_creator<astrocade_rom_256k_device>;
22const device_type ASTROCADE_ROM_512K = &device_creator<astrocade_rom_512k_device>;
23
24
25astrocade_rom_device::astrocade_rom_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)
26               : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
27                  device_astrocade_cart_interface(mconfig, *this)
28{
29}
30
31astrocade_rom_device::astrocade_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
32               : device_t(mconfig, ASTROCADE_ROM_STD, "Bally Astrocade Standard Carts", tag, owner, clock, "astrocade_rom", __FILE__),
33                  device_astrocade_cart_interface(mconfig, *this)
34{
35}
36
37astrocade_rom_256k_device::astrocade_rom_256k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
38               : astrocade_rom_device(mconfig, ASTROCADE_ROM_256K, "Bally Astrocade 256K Carts", tag, owner, clock, "astrocade_256k", __FILE__)
39{
40}
41
42astrocade_rom_512k_device::astrocade_rom_512k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
43               : astrocade_rom_device(mconfig, ASTROCADE_ROM_512K, "Bally Astrocade 512K Carts", tag, owner, clock, "astrocade_512k", __FILE__)
44{
45}
46
47
48void astrocade_rom_256k_device::device_start()
49{
50   save_item(NAME(m_base_bank));
51}
52
53void astrocade_rom_256k_device::device_reset()
54{
55   m_base_bank = 0;
56}
57
58void astrocade_rom_512k_device::device_start()
59{
60   save_item(NAME(m_base_bank));
61}
62
63void astrocade_rom_512k_device::device_reset()
64{
65   m_base_bank = 0;
66}
67
68
69/*-------------------------------------------------
70 mapper specific handlers
71 -------------------------------------------------*/
72
73READ8_MEMBER(astrocade_rom_device::read_rom)
74{
75   if (offset < m_rom_size)
76      return m_rom[offset];
77   else
78      return 0xff;
79}
80
81READ8_MEMBER(astrocade_rom_256k_device::read_rom)
82{
83   if (offset < 0x1000)   // 0x2000-0x2fff
84      return m_rom[offset + 0x1000 * 0x3f];
85   else if (offset < 0x1fc0)   // 0x3000-0x3fbf
86      return m_rom[(offset & 0xfff) + (0x1000 * m_base_bank)];
87   else   // 0x3fc0-0x3fff
88      return m_base_bank = offset & 0x3f;
89}
90
91READ8_MEMBER(astrocade_rom_512k_device::read_rom)
92{
93   if (offset < 0x1000)   // 0x2000-0x2fff
94      return m_rom[offset + 0x1000 * 0x7f];
95   else if (offset < 0x1f80)   // 0x3000-0x3fbf
96      return m_rom[(offset & 0xfff) + (0x1000 * m_base_bank)];
97   else   // 0x3fc0-0x3fff
98      return m_base_bank = offset & 0x7f;
99}
100
trunk/src/emu/bus/astrocde/rom.h
r0r241453
1// license:BSD-3-Clause
2// copyright-holders:etabeta
3#ifndef __ASTROCADE_ROM_H
4#define __ASTROCADE_ROM_H
5
6#include "slot.h"
7
8
9// ======================> astrocade_rom_device
10
11class astrocade_rom_device : public device_t,
12                  public device_astrocade_cart_interface
13{
14public:
15   // construction/destruction
16   astrocade_rom_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);
17   astrocade_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
18
19   // device-level overrides
20   virtual void device_start() {}
21   virtual void device_reset() {}
22
23   // reading and writing
24   virtual DECLARE_READ8_MEMBER(read_rom);
25};
26
27// ======================> astrocade_rom_256k_device
28
29class astrocade_rom_256k_device : public astrocade_rom_device
30{
31public:
32   // construction/destruction
33   astrocade_rom_256k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
34   
35   virtual void device_start();
36   virtual void device_reset();
37
38   // reading and writing
39   virtual DECLARE_READ8_MEMBER(read_rom);
40   
41private:
42   UINT8 m_base_bank;
43};
44
45// ======================> astrocade_rom_512k_device
46
47class astrocade_rom_512k_device : public astrocade_rom_device
48{
49public:
50   // construction/destruction
51   astrocade_rom_512k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
52   
53   virtual void device_start();
54   virtual void device_reset();
55   
56   // reading and writing
57   virtual DECLARE_READ8_MEMBER(read_rom);
58   
59private:
60   UINT8 m_base_bank;
61};
62
63
64
65
66
67// device type definition
68extern const device_type ASTROCADE_ROM_STD;
69extern const device_type ASTROCADE_ROM_256K;
70extern const device_type ASTROCADE_ROM_512K;
71
72
73#endif
trunk/src/emu/bus/astrocde/slot.c
r0r241453
1// license:BSD-3-Clause
2// copyright-holders:etabeta
3/***********************************************************************************************************
4
5    Bally Astrocade cart emulation
6    (through slot devices)
7
8 ***********************************************************************************************************/
9
10
11#include "emu.h"
12#include "slot.h"
13
14//**************************************************************************
15//  GLOBAL VARIABLES
16//**************************************************************************
17
18const device_type ASTROCADE_CART_SLOT = &device_creator<astrocade_cart_slot_device>;
19
20//**************************************************************************
21//    Astrocade Cartridges Interface
22//**************************************************************************
23
24//-------------------------------------------------
25//  device_astrocade_cart_interface - constructor
26//-------------------------------------------------
27
28device_astrocade_cart_interface::device_astrocade_cart_interface(const machine_config &mconfig, device_t &device)
29   : device_slot_card_interface(mconfig, device),
30      m_rom(NULL),
31      m_rom_size(0)
32{
33}
34
35
36//-------------------------------------------------
37//  ~device_astrocade_cart_interface - destructor
38//-------------------------------------------------
39
40device_astrocade_cart_interface::~device_astrocade_cart_interface()
41{
42}
43
44//-------------------------------------------------
45//  rom_alloc - alloc the space for the cart
46//-------------------------------------------------
47
48void device_astrocade_cart_interface::rom_alloc(UINT32 size, const char *tag)
49{
50   if (m_rom == NULL)
51   {
52      astring tempstring(tag);
53      tempstring.cat(ASTROCADESLOT_ROM_REGION_TAG);
54      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
55      m_rom_size = size;
56   }
57}
58
59
60//**************************************************************************
61//  LIVE DEVICE
62//**************************************************************************
63
64//-------------------------------------------------
65//  astrocade_cart_slot_device - constructor
66//-------------------------------------------------
67astrocade_cart_slot_device::astrocade_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
68                  device_t(mconfig, ASTROCADE_CART_SLOT, "Bally Astrocade Cartridge Slot", tag, owner, clock, "astrocade_cart_slot", __FILE__),
69                  device_image_interface(mconfig, *this),
70                  device_slot_interface(mconfig, *this),
71                  m_type(ASTROCADE_STD)
72{
73}
74
75
76//-------------------------------------------------
77//  astrocade_cart_slot_device - destructor
78//-------------------------------------------------
79
80astrocade_cart_slot_device::~astrocade_cart_slot_device()
81{
82}
83
84//-------------------------------------------------
85//  device_start - device-specific startup
86//-------------------------------------------------
87
88void astrocade_cart_slot_device::device_start()
89{
90   m_cart = dynamic_cast<device_astrocade_cart_interface *>(get_card_device());
91}
92
93//-------------------------------------------------
94//  device_config_complete - perform any
95//  operations now that the configuration is
96//  complete
97//-------------------------------------------------
98
99void astrocade_cart_slot_device::device_config_complete()
100{
101   // set brief and instance name
102   update_names();
103}
104
105
106//-------------------------------------------------
107//  ASTROCADE PCB
108//-------------------------------------------------
109
110struct astrocade_slot
111{
112   int                     pcb_id;
113   const char              *slot_option;
114};
115
116// Here, we take the feature attribute from .xml (i.e. the PCB name) and we assign a unique ID to it
117static const astrocade_slot slot_list[] =
118{
119   { ASTROCADE_STD,  "rom" },
120   { ASTROCADE_256K, "rom_256k" },
121   { ASTROCADE_512K, "rom_512k" }
122};
123
124static int astrocade_get_pcb_id(const char *slot)
125{
126   for (int i = 0; i < ARRAY_LENGTH(slot_list); i++)
127   {
128      if (!core_stricmp(slot_list[i].slot_option, slot))
129         return slot_list[i].pcb_id;
130   }
131
132   return 0;
133}
134
135static const char *astrocade_get_slot(int type)
136{
137   for (int i = 0; i < ARRAY_LENGTH(slot_list); i++)
138   {
139      if (slot_list[i].pcb_id == type)
140         return slot_list[i].slot_option;
141   }
142
143   return "std";
144}
145
146
147/*-------------------------------------------------
148 call load
149 -------------------------------------------------*/
150
151bool astrocade_cart_slot_device::call_load()
152{
153   if (m_cart)
154   {
155      UINT32 size = (software_entry() == NULL) ? length() : get_software_region_length("rom");
156      m_cart->rom_alloc(size, tag());
157
158      if (software_entry() == NULL)
159         fread(m_cart->get_rom_base(), size);
160      else
161         memcpy(m_cart->get_rom_base(), get_software_region("rom"), size);
162
163      if (software_entry() == NULL)
164      {
165         m_type = ASTROCADE_STD;
166
167         if (size == 0x40000)
168            m_type = ASTROCADE_256K;
169         if (size == 0x80000)
170            m_type = ASTROCADE_512K;
171      }
172      else
173      {
174         const char *pcb_name = get_feature("slot");
175         if (pcb_name)
176            m_type = astrocade_get_pcb_id(pcb_name);
177      }
178
179      //printf("Type: %s\n", astrocade_get_slot(m_type));
180
181      return IMAGE_INIT_PASS;
182   }
183
184   return IMAGE_INIT_PASS;
185}
186
187
188/*-------------------------------------------------
189 call softlist load
190 -------------------------------------------------*/
191
192bool astrocade_cart_slot_device::call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry)
193{
194   load_software_part_region(*this, swlist, swname, start_entry);
195   return TRUE;
196}
197
198
199/*-------------------------------------------------
200 get default card software
201 -------------------------------------------------*/
202
203void astrocade_cart_slot_device::get_default_card_software(astring &result)
204{
205   if (open_image_file(mconfig().options()))
206   {
207      const char *slot_string = "rom";
208      UINT32 size = core_fsize(m_file);
209      int type = ASTROCADE_STD;
210     
211      if (size == 0x40000)
212         type = ASTROCADE_256K;
213      if (size == 0x80000)
214         type = ASTROCADE_512K;
215
216      slot_string = astrocade_get_slot(type);
217
218      //printf("type: %s\n", slot_string);
219      clear();
220
221      result.cpy(slot_string);
222      return;
223   }
224
225   software_get_default_slot(result, "rom");
226}
227
228/*-------------------------------------------------
229 read
230 -------------------------------------------------*/
231
232READ8_MEMBER(astrocade_cart_slot_device::read_rom)
233{
234   if (m_cart)
235      return m_cart->read_rom(space, offset);
236   else
237      return 0xff;
238}
239
trunk/src/emu/bus/astrocde/slot.h
r0r241453
1// license:BSD-3-Clause
2// copyright-holders:etabeta
3#ifndef __ASTROCADE_SLOT_H
4#define __ASTROCADE_SLOT_H
5
6/***************************************************************************
7 TYPE DEFINITIONS
8 ***************************************************************************/
9
10
11/* PCB */
12enum
13{
14   ASTROCADE_STD = 0,
15   ASTROCADE_256K,
16   ASTROCADE_512K
17};
18
19
20// ======================> device_astrocade_cart_interface
21
22class device_astrocade_cart_interface : public device_slot_card_interface
23{
24public:
25   // construction/destruction
26   device_astrocade_cart_interface(const machine_config &mconfig, device_t &device);
27   virtual ~device_astrocade_cart_interface();
28
29   // reading and writing
30   virtual DECLARE_READ8_MEMBER(read_rom) { return 0xff; }
31
32   void rom_alloc(UINT32 size, const char *tag);
33   void ram_alloc(UINT32 size);
34   UINT8* get_rom_base() { return m_rom; }
35   UINT32 get_rom_size() { return m_rom_size; }
36
37protected:
38   // internal state
39   UINT8 *m_rom;
40   UINT32 m_rom_size;
41};
42
43
44// ======================> astrocade_cart_slot_device
45
46class astrocade_cart_slot_device : public device_t,
47                        public device_image_interface,
48                        public device_slot_interface
49{
50public:
51   // construction/destruction
52   astrocade_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
53   virtual ~astrocade_cart_slot_device();
54
55   // device-level overrides
56   virtual void device_start();
57   virtual void device_config_complete();
58
59   // image-level overrides
60   virtual bool call_load();
61   virtual void call_unload() {}
62   virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry);
63
64   int get_type() { return m_type; }
65
66   virtual iodevice_t image_type() const { return IO_CARTSLOT; }
67   virtual bool is_readable()  const { return 1; }
68   virtual bool is_writeable() const { return 0; }
69   virtual bool is_creatable() const { return 0; }
70   virtual bool must_be_loaded() const { return 0; }
71   virtual bool is_reset_on_load() const { return 1; }
72   virtual const option_guide *create_option_guide() const { return NULL; }
73   virtual const char *image_interface() const { return "astrocde_cart"; }
74   virtual const char *file_extensions() const { return "bin"; }
75
76   // slot interface overrides
77   virtual void get_default_card_software(astring &result);
78
79   // reading and writing
80   virtual DECLARE_READ8_MEMBER(read_rom);
81
82protected:
83
84   int m_type;
85   device_astrocade_cart_interface*       m_cart;
86};
87
88
89
90// device type definition
91extern const device_type ASTROCADE_CART_SLOT;
92
93
94/***************************************************************************
95 DEVICE CONFIGURATION MACROS
96 ***************************************************************************/
97
98#define ASTROCADESLOT_ROM_REGION_TAG ":cart:rom"
99
100#define MCFG_ASTROCADE_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \
101   MCFG_DEVICE_ADD(_tag, ASTROCADE_CART_SLOT, 0) \
102   MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
103#endif
trunk/src/emu/bus/bus.mak
r241452r241453
122122
123123#-------------------------------------------------
124124#
125#@src/emu/bus/astrocde/slot.h,BUSES += ASTROCADE
126#-------------------------------------------------
127
128ifneq ($(filter ASTROCADE,$(BUSES)),)
129OBJDIRS += $(BUSOBJ)/astrocde
130BUSOBJS += $(BUSOBJ)/astrocde/slot.o
131BUSOBJS += $(BUSOBJ)/astrocde/rom.o
132endif
133
134
135#-------------------------------------------------
136#
125137#@src/emu/bus/bw2/exp.h,BUSES += BW2
126138#-------------------------------------------------
127139
trunk/src/emu/cpu/powerpc/ppc.h
r241452r241453
159159#define PPCDRC_COMPATIBLE_OPTIONS   (PPCDRC_STRICT_VERIFY | PPCDRC_FLUSH_PC | PPCDRC_ACCURATE_SINGLES)
160160#define PPCDRC_FASTEST_OPTIONS      (0)
161161
162
163
164/***************************************************************************
165    STRUCTURES AND TYPEDEFS
166***************************************************************************/
167
168typedef void (*ppc4xx_spu_tx_handler)(device_t *device, UINT8 data);
169
170
171typedef void (*ppc_dcstore_handler)(device_t *device, UINT32 address);
172typedef UINT32 (*ppc4xx_dma_read_handler)(device_t *device, int width);
173typedef void (*ppc4xx_dma_write_handler)(device_t *device, int width, UINT32 data);
174
175
176/***************************************************************************
177    PUBLIC FUNCTIONS
178***************************************************************************/
179
162 
163 
164/***************************************************************************
165    PUBLIC FUNCTIONS
166***************************************************************************/
167 
180168#define MCFG_PPC_BUS_FREQUENCY(_frequency) \
181169   ppc_device::set_bus_frequency(*device, _frequency);
182170
r241452r241453
225213public:
226214   // construction/destruction
227215   ppc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, int address_bits, int data_bits, powerpc_flavor flavor, UINT32 cap, UINT32 tb_divisor, address_map_constructor internal_map);
216 
217   static void set_bus_frequency(device_t &device, UINT32 bus_frequency) { downcast<ppc_device &>(device).c_bus_frequency = bus_frequency; }
218 
219   void ppc_set_dcstore_callback(write32_delegate callback);
220   
221   void ppcdrc_set_options(UINT32 options);
222   void ppcdrc_add_fastram(offs_t start, offs_t end, UINT8 readonly, void *base);
223   void ppcdrc_add_hotspot(offs_t pc, UINT32 opcode, UINT32 cycles);
228224
229   static void set_bus_frequency(device_t &device, UINT32 bus_frequency) { downcast<ppc_device &>(device).c_bus_frequency = bus_frequency; }
230
231   void ppc_set_dcstore_callback(ppc_dcstore_handler handler);
232
233   void ppcdrc_set_options(UINT32 options);
234   void ppcdrc_add_fastram(offs_t start, offs_t end, UINT8 readonly, void *base);
235   void ppcdrc_add_hotspot(offs_t pc, UINT32 opcode, UINT32 cycles);
236
237225   TIMER_CALLBACK_MEMBER(decrementer_int_callback);
238226   TIMER_CALLBACK_MEMBER(ppc4xx_buffered_dma_callback);
239227   TIMER_CALLBACK_MEMBER(ppc4xx_fit_callback);
r241452r241453
491479      UINT8           regs[9];
492480      UINT8           txbuf;
493481      UINT8           rxbuf;
494      emu_timer *     timer;
495      UINT8           rxbuffer[256];
496      UINT32          rxin, rxout;
497      ppc4xx_spu_tx_handler tx_handler;
498   };
499
500   ppc4xx_spu_state m_spu;
482      emu_timer *     timer;
483      UINT8           rxbuffer[256];
484      UINT32          rxin, rxout;
485      write8_delegate tx_cb;
486   };
487 
488   ppc4xx_spu_state m_spu;
501489   emu_timer *     m_fit_timer;
502490   emu_timer *     m_pit_timer;
503491   emu_timer *     m_wdog_timer;
r241452r241453
515503   UINT64          m_dec_zero_cycles;
516504   emu_timer *     m_decrementer_int_timer;
517505
518   read32_delegate  m_dcr_read_func;
519   write32_delegate m_dcr_write_func;
520
521   ppc_dcstore_handler m_dcstore_handler;
522
523   ppc4xx_dma_read_handler m_ext_dma_read_handler[4];
524   ppc4xx_dma_write_handler m_ext_dma_write_handler[4];
525
526   /* PowerPC function pointers for memory accesses/exceptions */
527   jmp_buf m_exception_jmpbuf;
506   read32_delegate  m_dcr_read_func;
507   write32_delegate m_dcr_write_func;
508 
509   write32_delegate m_dcstore_cb;
510 
511   read32_delegate m_ext_dma_read_cb[4];
512   write32_delegate m_ext_dma_write_cb[4];
513 
514   /* PowerPC function pointers for memory accesses/exceptions */
515   jmp_buf m_exception_jmpbuf;
528516   UINT8 (*m_ppcread8)(address_space &space, offs_t address);
529517   UINT16 (*m_ppcread16)(address_space &space, offs_t address);
530518   UINT32 (*m_ppcread32)(address_space &space, offs_t address);
r241452r241453
763751
764752class ppc4xx_device : public ppc_device
765753{
766public:
767   ppc4xx_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, powerpc_flavor flavor, UINT32 cap, UINT32 tb_divisor);
768
769   void ppc4xx_spu_set_tx_handler(ppc4xx_spu_tx_handler handler);
770   void ppc4xx_spu_receive_byte(UINT8 byteval);
771
772   void ppc4xx_set_dma_read_handler(int channel, ppc4xx_dma_read_handler handler, int rate);
773   void ppc4xx_set_dma_write_handler(int channel, ppc4xx_dma_write_handler handler, int rate);
774   void ppc4xx_set_dcr_read_handler(read32_delegate dcr_read_func);
775   void ppc4xx_set_dcr_write_handler(write32_delegate dcr_write_func);
776
754public:
755   ppc4xx_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, powerpc_flavor flavor, UINT32 cap, UINT32 tb_divisor);
756 
757   void ppc4xx_spu_set_tx_handler(write8_delegate callback);
758   void ppc4xx_spu_receive_byte(UINT8 byteval);
759 
760   void ppc4xx_set_dma_read_handler(int channel, read32_delegate callback, int rate);
761   void ppc4xx_set_dma_write_handler(int channel, write32_delegate callback, int rate);
762   void ppc4xx_set_dcr_read_handler(read32_delegate dcr_read_func);
763   void ppc4xx_set_dcr_write_handler(write32_delegate dcr_write_func);
764 
777765   DECLARE_READ8_MEMBER( ppc4xx_spu_r );
778766   DECLARE_WRITE8_MEMBER( ppc4xx_spu_w );
779767
trunk/src/emu/cpu/powerpc/ppccom.c
r241452r241453
214214   , m_core(NULL)
215215   , m_bus_freq_multiplier(1)
216216   , m_vtlb(NULL)
217   , m_flavor(flavor)
218   , m_cap(cap)
219   , m_tb_divisor(tb_divisor)
220   , m_dcstore_handler(NULL)
221   , m_cache(CACHE_SIZE + sizeof(internal_ppc_state))
222   , m_drcuml(NULL)
223   , m_drcfe(NULL)
217   , m_flavor(flavor)
218   , m_cap(cap)
219   , m_tb_divisor(tb_divisor)
220   , m_cache(CACHE_SIZE + sizeof(internal_ppc_state))
221   , m_drcuml(NULL)
222   , m_drcfe(NULL)
224223   , m_drcoptions(0)
225{
226   m_program_config.m_logaddr_width = 32;
227   m_program_config.m_page_shift = POWERPC_MIN_PAGE_SHIFT;
228   memset(m_ext_dma_read_handler, 0, sizeof(m_ext_dma_read_handler));
229   memset(m_ext_dma_write_handler, 0, sizeof(m_ext_dma_write_handler));
230}
231
232//ppc403_device::ppc403_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
224{
225   m_program_config.m_logaddr_width = 32;
226   m_program_config.m_page_shift = POWERPC_MIN_PAGE_SHIFT;
227}
228 
229//ppc403_device::ppc403_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
233230//  : ppc_device(mconfig, PPC403, "PPC403", tag, owner, clock, "ppc403", 32?, 64?)
234231//{
235232//}
r241452r241453
12411238    ppccom_dcstore_callback - call the dcstore
12421239    callback if installed
12431240-------------------------------------------------*/
1241 
1242void ppc_device::ppccom_dcstore_callback()
1243{
1244   if (!m_dcstore_cb.isnull())
1245   {
1246      m_dcstore_cb(*m_program, m_core->param0, 0, 0xffffffff);
1247   }
1248}
1249 
12441250
1245void ppc_device::ppccom_dcstore_callback()
1246{
1247   if (m_dcstore_handler != NULL)
1248   {
1249      m_dcstore_handler(this, m_core->param0);
1250   }
1251}
1252
1253
12541251/***************************************************************************
12551252    TLB HANDLING
12561253***************************************************************************/
r241452r241453
20612058
20622059/*-------------------------------------------------
20632060    ppc_set_dcstore_callback - installs a callback
2064    for detecting datacache stores with dcbst
2065-------------------------------------------------*/
2066
2067void ppc_device::ppc_set_dcstore_callback(ppc_dcstore_handler handler)
2068{
2069   m_dcstore_handler = handler;
2070}
2071
2072
2061    for detecting datacache stores with dcbst
2062-------------------------------------------------*/
2063 
2064void ppc_device::ppc_set_dcstore_callback(write32_delegate callback)
2065{
2066   m_dcstore_cb = callback;
2067}
2068 
2069 
20732070void ppc_device::execute_set_input(int inputnum, int state)
20742071{
20752072   switch (inputnum)
r241452r241453
22882285      {
22892286         /* byte transfer */
22902287         case 1:
2291         do
2292         {
2293            UINT8 data = 0;
2294            if (m_ext_dma_read_handler[dmachan] != NULL)
2295               data = (*m_ext_dma_read_handler[dmachan])(this, 1);
2296            m_program->write_byte(dmaregs[DCR4XX_DMADA0], data);
2297            dmaregs[DCR4XX_DMADA0] += destinc;
2298         } while (!ppc4xx_dma_decrement_count(dmachan));
2288         do
2289         {
2290            UINT8 data = 0;
2291            if (!m_ext_dma_read_cb[dmachan].isnull())
2292               data = (m_ext_dma_read_cb[dmachan])(*m_program, 1, 0xffffffff);
2293            m_program->write_byte(dmaregs[DCR4XX_DMADA0], data);
2294            dmaregs[DCR4XX_DMADA0] += destinc;
2295         } while (!ppc4xx_dma_decrement_count(dmachan));
22992296         break;
23002297
23012298         /* word transfer */
23022299         case 2:
2303         do
2304         {
2305            UINT16 data = 0;
2306            if (m_ext_dma_read_handler[dmachan] != NULL)
2307               data = (*m_ext_dma_read_handler[dmachan])(this, 2);
2308            m_program->write_word(dmaregs[DCR4XX_DMADA0], data);
2309            dmaregs[DCR4XX_DMADA0] += destinc;
2310         } while (!ppc4xx_dma_decrement_count(dmachan));
2300         do
2301         {
2302            UINT16 data = 0;
2303            if (!m_ext_dma_read_cb[dmachan].isnull())
2304               data = (m_ext_dma_read_cb[dmachan])(*m_program, 2, 0xffffffff);
2305            m_program->write_word(dmaregs[DCR4XX_DMADA0], data);
2306            dmaregs[DCR4XX_DMADA0] += destinc;
2307         } while (!ppc4xx_dma_decrement_count(dmachan));
23112308         break;
23122309
23132310         /* dword transfer */
23142311         case 4:
2315         do
2316         {
2317            UINT32 data = 0;
2318            if (m_ext_dma_read_handler[dmachan] != NULL)
2319               data = (*m_ext_dma_read_handler[dmachan])(this, 4);
2320            m_program->write_dword(dmaregs[DCR4XX_DMADA0], data);
2321            dmaregs[DCR4XX_DMADA0] += destinc;
2322         } while (!ppc4xx_dma_decrement_count(dmachan));
2312         do
2313         {
2314            UINT32 data = 0;
2315            if (!m_ext_dma_read_cb[dmachan].isnull())
2316               data = (m_ext_dma_read_cb[dmachan])(*m_program, 4, 0xffffffff);
2317            m_program->write_dword(dmaregs[DCR4XX_DMADA0], data);
2318            dmaregs[DCR4XX_DMADA0] += destinc;
2319         } while (!ppc4xx_dma_decrement_count(dmachan));
23232320         break;
23242321      }
23252322   }
r241452r241453
23322329      {
23332330         /* byte transfer */
23342331         case 1:
2335         do
2336         {
2337            UINT8 data = m_program->read_byte(dmaregs[DCR4XX_DMADA0]);
2338            if (m_ext_dma_write_handler[dmachan] != NULL)
2339               (*m_ext_dma_write_handler[dmachan])(this, 1, data);
2340            dmaregs[DCR4XX_DMADA0] += destinc;
2341         } while (!ppc4xx_dma_decrement_count(dmachan));
2342         break;
2332         do
2333         {
2334            UINT8 data = m_program->read_byte(dmaregs[DCR4XX_DMADA0]);
2335            if (!m_ext_dma_write_cb[dmachan].isnull())
2336               (m_ext_dma_write_cb[dmachan])(*m_program, 1, data, 0xffffffff);
2337            dmaregs[DCR4XX_DMADA0] += destinc;
2338         } while (!ppc4xx_dma_decrement_count(dmachan));
2339         break;
23432340
23442341         /* word transfer */
23452342         case 2:
2346         do
2347         {
2348            UINT16 data = m_program->read_word(dmaregs[DCR4XX_DMADA0]);
2349            if (m_ext_dma_write_handler[dmachan] != NULL)
2350               (*m_ext_dma_write_handler[dmachan])(this, 2, data);
2351            dmaregs[DCR4XX_DMADA0] += destinc;
2352         } while (!ppc4xx_dma_decrement_count(dmachan));
2353         break;
2343         do
2344         {
2345            UINT16 data = m_program->read_word(dmaregs[DCR4XX_DMADA0]);
2346            if (!m_ext_dma_write_cb[dmachan].isnull())
2347               (m_ext_dma_write_cb[dmachan])(*m_program, 2, data, 0xffffffff);
2348            dmaregs[DCR4XX_DMADA0] += destinc;
2349         } while (!ppc4xx_dma_decrement_count(dmachan));
2350         break;
23542351
23552352         /* dword transfer */
23562353         case 4:
2357         do
2358         {
2359            UINT32 data = m_program->read_dword(dmaregs[DCR4XX_DMADA0]);
2360            if (m_ext_dma_write_handler[dmachan] != NULL)
2361               (*m_ext_dma_write_handler[dmachan])(this, 4, data);
2362            dmaregs[DCR4XX_DMADA0] += destinc;
2363         } while (!ppc4xx_dma_decrement_count(dmachan));
2364         break;
2354         do
2355         {
2356            UINT32 data = m_program->read_dword(dmaregs[DCR4XX_DMADA0]);
2357            if (!m_ext_dma_write_cb[dmachan].isnull())
2358               (m_ext_dma_write_cb[dmachan])(*m_program, 4, data, 0xffffffff);
2359            dmaregs[DCR4XX_DMADA0] += destinc;
2360         } while (!ppc4xx_dma_decrement_count(dmachan));
2361         break;
23652362      }
23662363   }
23672364}
r241452r241453
26772674      int operation = (m_spu.regs[SPU4XX_TX_COMMAND] >> 5) & 3;
26782675
26792676      /* if we have data to transmit, do it now */
2680      if (!(m_spu.regs[SPU4XX_LINE_STATUS] & 0x04))
2681      {
2682         /* if we have a transmit handler, send it that way */
2683         if (m_spu.tx_handler != NULL)
2684            (*m_spu.tx_handler)(this, m_spu.txbuf);
2685
2686         /* indicate that we have moved it to the shift register */
2687         m_spu.regs[SPU4XX_LINE_STATUS] |= 0x04;
2677      if (!(m_spu.regs[SPU4XX_LINE_STATUS] & 0x04))
2678      {
2679         /* if we have a transmit handler, send it that way */
2680         if (!m_spu.tx_cb.isnull())
2681            (m_spu.tx_cb)(*m_program, 0, m_spu.txbuf, 0xff);
2682 
2683         /* indicate that we have moved it to the shift register */
2684         m_spu.regs[SPU4XX_LINE_STATUS] |= 0x04;
26882685         m_spu.regs[SPU4XX_LINE_STATUS] &= ~0x02;
26892686      }
26902687
r241452r241453
28232820
28242821/*-------------------------------------------------
28252822    ppc4xx_spu_set_tx_handler - PowerPC 4XX-
2826    specific TX handler configuration
2827-------------------------------------------------*/
2828
2829void ppc4xx_device::ppc4xx_spu_set_tx_handler(ppc4xx_spu_tx_handler handler)
2830{
2831   m_spu.tx_handler = handler;
2832}
2833
2834
2823    specific TX handler configuration
2824-------------------------------------------------*/
2825 
2826void ppc4xx_device::ppc4xx_spu_set_tx_handler(write8_delegate callback)
2827{
2828   m_spu.tx_cb = callback;
2829}
2830 
2831 
28352832/*-------------------------------------------------
28362833    ppc4xx_spu_receive_byte - PowerPC 4XX-
28372834    specific serial byte receive
r241452r241453
28442841
28452842/*-------------------------------------------------
28462843    ppc4xx_set_dma_read_handler - PowerPC 4XX-
2847    specific external DMA read handler configuration
2848-------------------------------------------------*/
2849
2850void ppc4xx_device::ppc4xx_set_dma_read_handler(int channel, ppc4xx_dma_read_handler handler, int rate)
2851{
2852   m_ext_dma_read_handler[channel] = handler;
2853   m_buffered_dma_rate[channel] = rate;
2854}
2855
2844    specific external DMA read handler configuration
2845-------------------------------------------------*/
2846 
2847void ppc4xx_device::ppc4xx_set_dma_read_handler(int channel, read32_delegate callback, int rate)
2848{
2849   m_ext_dma_read_cb[channel] = callback;
2850   m_buffered_dma_rate[channel] = rate;
2851}
2852 
28562853/*-------------------------------------------------
28572854    ppc4xx_set_dma_write_handler - PowerPC 4XX-
2858    specific external DMA write handler configuration
2859-------------------------------------------------*/
2860
2861void ppc4xx_device::ppc4xx_set_dma_write_handler(int channel, ppc4xx_dma_write_handler handler, int rate)
2862{
2863   m_ext_dma_write_handler[channel] = handler;
2864   m_buffered_dma_rate[channel] = rate;
2865}
2866
2855    specific external DMA write handler configuration
2856-------------------------------------------------*/
2857 
2858void ppc4xx_device::ppc4xx_set_dma_write_handler(int channel, write32_delegate callback, int rate)
2859{
2860   m_ext_dma_write_cb[channel] = callback;
2861   m_buffered_dma_rate[channel] = rate;
2862}
2863 
28672864/*-------------------------------------------------
28682865    ppc4xx_set_dcr_read_handler
28692866-------------------------------------------------*/
trunk/src/emu/video/upd7220.c
r241452r241453
965965   int isize,psize;
966966   UINT16 tile_data = 0;
967967
968   LOG(("uPD7220 char check: %d %d %02x %08x %d %d\n",x,y,m_figs.m_dir,m_ead,m_figs.m_d,m_figs.m_dc));
968   LOG(("uPD7220 char check: %d %d %02x %08x %d %d %02x\n",x,y,m_figs.m_dir,m_ead,m_figs.m_d,m_figs.m_dc,m_figs.m_figure_type));
969969
970970   isize = m_figs.m_d & 0x3ff;
971971   /* Guess: D has presumably upper bits for ysize, QX-10 relies on this (TODO: check this on any real HW) */
r241452r241453
985985               curpixel++;
986986            }
987987         }
988         x += x_dir[(m_figs.m_dir + 2) & 7];
989         y += y_dir[(m_figs.m_dir + 2) & 7];
988         if(m_figs.m_figure_type == 2)
989         {
990            x += x_dir[(m_figs.m_dir + 2) & 7];
991            y += y_dir[(m_figs.m_dir + 2) & 7];
992         }
993         else
994         {
995            x += x_dir[(m_figs.m_dir + 1) & 7];
996            y += y_dir[(m_figs.m_dir + 1) & 7];
997         }
990998      }
991999   }
9921000
r241452r241453
13321340      break;
13331341
13341342   case COMMAND_GCHRD: /* graphics character draw and area filling start */
1335      if(m_figs.m_figure_type == 2)
1343      if((m_figs.m_figure_type & 0xf) == 2)
13361344         draw_char(((m_ead % eff_pitch) << 4) | (m_dad & 0xf),(m_ead / eff_pitch));
13371345      else
13381346         logerror("uPD7220 '%s' Unimplemented command GCHRD %02x\n", tag(),m_figs.m_figure_type);
r241452r241453
13501358      break;
13511359
13521360   case COMMAND_CURD: /* cursor address read */
1361   {
1362      UINT16 dad = 1 << m_dad;
13531363      fifo_set_direction(FIFO_READ);
13541364
13551365      queue(m_ead & 0xff, 0);
13561366      queue((m_ead >> 8) & 0xff, 0);
13571367      queue(m_ead >> 16, 0);
1358      queue(m_dad & 0xff, 0);
1359      queue(m_dad >> 8, 0);
1368      queue(dad & 0xff, 0);
1369      queue(dad >> 8, 0);
13601370
13611371      m_sr |= UPD7220_SR_DATA_READY;
13621372      break;
1373   }
13631374
13641375   case COMMAND_LPRD: /* light pen address read */
13651376      fifo_set_direction(FIFO_READ);
r241452r241453
15301541         addr = sad + (y * m_pitch);
15311542
15321543         if (!m_draw_text_cb.isnull())
1533            m_draw_text_cb(bitmap, addr, y, wd, m_pitch, m_lr, m_dc, m_ead);
1544            m_draw_text_cb(bitmap, addr, (y * m_lr), wd, m_pitch, m_lr, m_dc, m_ead);
15341545      }
15351546
15361547      sy = y + 1;
r241452r241453
16011612               addr = (sad & 0x3ffff) + ((y / m_lr) * m_pitch);
16021613
16031614               if (!m_draw_text_cb.isnull())
1604                  m_draw_text_cb(bitmap, addr, (y + tsy) / m_lr, wd, m_pitch, m_lr, m_dc, m_ead);
1615                  m_draw_text_cb(bitmap, addr, y + tsy, wd, m_pitch, m_lr, m_dc, m_ead);
16051616            }
16061617         }
16071618      }
trunk/src/mame/drivers/cobra.c
r241452r241453
630630   DECLARE_READ64_MEMBER(main_comram_r);
631631   DECLARE_WRITE64_MEMBER(main_comram_w);
632632   DECLARE_READ64_MEMBER(main_fifo_r);
633   DECLARE_WRITE64_MEMBER(main_fifo_w);
634   DECLARE_READ64_MEMBER(main_mpc106_r);
635   DECLARE_WRITE64_MEMBER(main_mpc106_w);
636
637   DECLARE_READ32_MEMBER(sub_comram_r);
638   DECLARE_WRITE32_MEMBER(sub_comram_w);
639   DECLARE_READ32_MEMBER(sub_sound_r);
633   DECLARE_WRITE64_MEMBER(main_fifo_w);
634   DECLARE_READ64_MEMBER(main_mpc106_r);
635   DECLARE_WRITE64_MEMBER(main_mpc106_w);
636   DECLARE_WRITE32_MEMBER(main_cpu_dc_store);
637   
638   DECLARE_READ32_MEMBER(sub_comram_r);
639   DECLARE_WRITE32_MEMBER(sub_comram_w);
640   DECLARE_READ32_MEMBER(sub_sound_r);
640641   DECLARE_WRITE32_MEMBER(sub_sound_w);
641642   DECLARE_READ32_MEMBER(sub_unk7e_r);
642643   DECLARE_WRITE32_MEMBER(sub_debug_w);
r241452r241453
650651   DECLARE_WRITE16_MEMBER(sub_ata0_w);
651652   DECLARE_READ16_MEMBER(sub_ata1_r);
652653   DECLARE_WRITE16_MEMBER(sub_ata1_w);
653   DECLARE_READ32_MEMBER(sub_psac2_r);
654   DECLARE_WRITE32_MEMBER(sub_psac2_w);
655   DECLARE_WRITE32_MEMBER(sub_psac_palette_w);
656
657   DECLARE_WRITE64_MEMBER(gfx_fifo0_w);
658   DECLARE_WRITE64_MEMBER(gfx_fifo1_w);
654   DECLARE_READ32_MEMBER(sub_psac2_r);
655   DECLARE_WRITE32_MEMBER(sub_psac2_w);
656   DECLARE_WRITE32_MEMBER(sub_psac_palette_w);
657   DECLARE_WRITE32_MEMBER(sub_sound_dma_w);
658 
659   DECLARE_WRITE64_MEMBER(gfx_fifo0_w);
660   DECLARE_WRITE64_MEMBER(gfx_fifo1_w);
659661   DECLARE_WRITE64_MEMBER(gfx_fifo2_w);
660662   DECLARE_WRITE64_MEMBER(gfx_debug_state_w);
661663   DECLARE_READ64_MEMBER(gfx_unk1_r);
662   DECLARE_WRITE64_MEMBER(gfx_unk1_w);
663   DECLARE_READ64_MEMBER(gfx_fifo_r);
664   DECLARE_WRITE64_MEMBER(gfx_buf_w);
665
666   DECLARE_WRITE_LINE_MEMBER(ide_interrupt);
667
664   DECLARE_WRITE64_MEMBER(gfx_unk1_w);
665   DECLARE_READ64_MEMBER(gfx_fifo_r);
666   DECLARE_WRITE64_MEMBER(gfx_buf_w);
667   DECLARE_WRITE32_MEMBER(gfx_cpu_dc_store);
668   
669   DECLARE_WRITE8_MEMBER(sub_jvs_w);
670 
671   DECLARE_WRITE_LINE_MEMBER(ide_interrupt);
672 
668673   cobra_renderer *m_renderer;
669674
670675   cobra_fifo *m_gfxfifo_in;
r241452r241453
15961601   UINT32 m2 = (UINT32)(mem_mask);
15971602
15981603   m_comram[page][(offset << 1) + 0] = (w1 & ~m1) | (d1 & m1);
1599   m_comram[page][(offset << 1) + 1] = (w2 & ~m2) | (d2 & m2);
1600}
1601
1602static void main_cpu_dc_store(device_t *device, UINT32 address)
1603{
1604   cobra_state *cobra = device->machine().driver_data<cobra_state>();
1605
1606   if ((address & 0xf0000000) == 0xc0000000)
1607   {
1608      // force sync when writing to GFX board main ram
1609      cobra->m_maincpu->spin_until_time(attotime::from_usec(80));
1610   }
1611}
1612
1604   m_comram[page][(offset << 1) + 1] = (w2 & ~m2) | (d2 & m2);
1605}
1606 
1607WRITE32_MEMBER(cobra_state::main_cpu_dc_store)
1608{
1609   if ((offset & 0xf0000000) == 0xc0000000)
1610   {
1611      // force sync when writing to GFX board main ram
1612      m_maincpu->spin_until_time(attotime::from_usec(80));
1613   }
1614}
1615 
16131616static ADDRESS_MAP_START( cobra_main_map, AS_PROGRAM, 64, cobra_state )
16141617   AM_RANGE(0x00000000, 0x003fffff) AM_RAM
16151618   AM_RANGE(0x07c00000, 0x07ffffff) AM_RAM
r241452r241453
18851888}
18861889
18871890WRITE32_MEMBER(cobra_state::sub_psac2_w)
1888{
1889}
1890
1891static void sub_sound_dma_w(device_t *device, int width, UINT32 data)
1892{
1893   //printf("DMA write to unknown: size %d, data %08X\n", width, data);
1894
1895   /*
1896   static FILE *out;
1891{
1892}
1893 
1894WRITE32_MEMBER(cobra_state::sub_sound_dma_w)
1895{
1896   //printf("DMA write to unknown: size %d, data %08X\n", address, data);
1897 
1898   /*
1899   static FILE *out;
18971900   if (out == NULL)
18981901       out = fopen("sound.bin", "wb");
18991902
19001903   fputc((data >> 24) & 0xff, out);
19011904   fputc((data >> 16) & 0xff, out);
19021905   fputc((data >> 8) & 0xff, out);
1903   fputc((data >> 0) & 0xff, out);
1904   */
1905
1906   cobra_state *cobra = device->machine().driver_data<cobra_state>();
1907
1908   INT16 ldata = (INT16)(data >> 16);
1909   INT16 rdata = (INT16)(data);
1910
1911   cobra->m_sound_dma_buffer_l[cobra->m_sound_dma_ptr] = ldata;
1912   cobra->m_sound_dma_buffer_r[cobra->m_sound_dma_ptr] = rdata;
1913   cobra->m_sound_dma_ptr++;
1914
1915   if (cobra->m_sound_dma_ptr >= DMA_SOUND_BUFFER_SIZE)
1916   {
1917      cobra->m_sound_dma_ptr = 0;
1918
1919      dmadac_transfer(&cobra->m_dmadac[0], 1, 0, 1, DMA_SOUND_BUFFER_SIZE, cobra->m_sound_dma_buffer_l);
1920      dmadac_transfer(&cobra->m_dmadac[1], 1, 0, 1, DMA_SOUND_BUFFER_SIZE, cobra->m_sound_dma_buffer_r);
1921   }
1922}
1923
1924static void sub_jvs_w(device_t *device, UINT8 data)
1925{
1926   cobra_state *cobra = device->machine().driver_data<cobra_state>();
1927   cobra_jvs_host *jvs = downcast<cobra_jvs_host *>(device->machine().device("cobra_jvs_host"));
1928
1929#if LOG_JVS
1930   printf("sub_jvs_w: %02X\n", data);
1906   fputc((data >> 0) & 0xff, out);
1907   */
1908 
1909   INT16 ldata = (INT16)(data >> 16);
1910   INT16 rdata = (INT16)(data);
1911 
1912   m_sound_dma_buffer_l[m_sound_dma_ptr] = ldata;
1913   m_sound_dma_buffer_r[m_sound_dma_ptr] = rdata;
1914   m_sound_dma_ptr++;
1915 
1916   if (m_sound_dma_ptr >= DMA_SOUND_BUFFER_SIZE)
1917   {
1918      m_sound_dma_ptr = 0;
1919 
1920      dmadac_transfer(&m_dmadac[0], 1, 0, 1, DMA_SOUND_BUFFER_SIZE, m_sound_dma_buffer_l);
1921      dmadac_transfer(&m_dmadac[1], 1, 0, 1, DMA_SOUND_BUFFER_SIZE, m_sound_dma_buffer_r);
1922   }
1923}
1924 
1925WRITE8_MEMBER(cobra_state::sub_jvs_w)
1926{
1927   cobra_jvs_host *jvs = machine().device<cobra_jvs_host>("cobra_jvs_host");
1928 
1929#if LOG_JVS
1930   printf("sub_jvs_w: %02X\n", data);
19311931#endif
19321932
19331933   const UINT8 *rec_data;
r241452r241453
19451945      }
19461946      printf("\n");
19471947#endif
1948 
1949      for (int i=0; i < rec_size; i++)
1950      {
1951         m_subcpu->ppc4xx_spu_receive_byte(rec_data[i]);
1952      }
1953   }
1954}
19481955
1949      for (int i=0; i < rec_size; i++)
1950      {
1951         cobra->m_subcpu->ppc4xx_spu_receive_byte(rec_data[i]);
1952      }
1953   }
1954}
1955
19561956static ADDRESS_MAP_START( cobra_sub_map, AS_PROGRAM, 32, cobra_state )
19571957   AM_RANGE(0x00000000, 0x003fffff) AM_MIRROR(0x80000000) AM_RAM                                           // Main RAM
19581958   AM_RANGE(0x70000000, 0x7003ffff) AM_MIRROR(0x80000000) AM_READWRITE(sub_comram_r, sub_comram_w)         // Double buffered shared RAM between Main and Sub
r241452r241453
29882988      // prc_read always expects a value...
29892989
29902990      m_gfxfifo_out->push(&space.device(), 0);
2991   }
2992}
2993
2994static void gfx_cpu_dc_store(device_t *device, UINT32 address)
2995{
2996   cobra_state *cobra = device->machine().driver_data<cobra_state>();
2997
2998   UINT32 addr = address >> 24;
2999   if (addr == 0x10 || addr == 0x18 || addr == 0x1e)
3000   {
3001      UINT64 i = (UINT64)(cobra->m_gfx_fifo_cache_addr) << 32;
3002      cobra_fifo *fifo_in = cobra->m_gfxfifo_in;
3003
3004      UINT32 a = (address / 8) & 0xff;
3005
3006      fifo_in->push(device, (UINT32)(cobra->m_gfx_fifo_mem[a+0] >> 32) | i);
3007      fifo_in->push(device, (UINT32)(cobra->m_gfx_fifo_mem[a+0] >>  0) | i);
3008      fifo_in->push(device, (UINT32)(cobra->m_gfx_fifo_mem[a+1] >> 32) | i);
3009      fifo_in->push(device, (UINT32)(cobra->m_gfx_fifo_mem[a+1] >>  0) | i);
3010      fifo_in->push(device, (UINT32)(cobra->m_gfx_fifo_mem[a+2] >> 32) | i);
3011      fifo_in->push(device, (UINT32)(cobra->m_gfx_fifo_mem[a+2] >>  0) | i);
3012      fifo_in->push(device, (UINT32)(cobra->m_gfx_fifo_mem[a+3] >> 32) | i);
3013      fifo_in->push(device, (UINT32)(cobra->m_gfx_fifo_mem[a+3] >>  0) | i);
3014
3015      cobra->m_renderer->gfx_fifo_exec();
3016   }
3017   else
3018   {
3019      logerror("gfx: data cache store at %08X\n", address);
3020   }
3021}
3022
2991   }
2992}
2993 
2994WRITE32_MEMBER(cobra_state::gfx_cpu_dc_store)
2995{
2996   UINT32 addr = offset >> 24;
2997   if (addr == 0x10 || addr == 0x18 || addr == 0x1e)
2998   {
2999      UINT64 i = (UINT64)(m_gfx_fifo_cache_addr) << 32;
3000      cobra_fifo *fifo_in = m_gfxfifo_in;
3001 
3002      UINT32 a = (offset / 8) & 0xff;
3003 
3004      fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+0] >> 32) | i);
3005      fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+0] >>  0) | i);
3006      fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+1] >> 32) | i);
3007      fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+1] >>  0) | i);
3008      fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+2] >> 32) | i);
3009      fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+2] >>  0) | i);
3010      fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+3] >> 32) | i);
3011      fifo_in->push(&space.device(), (UINT32)(m_gfx_fifo_mem[a+3] >>  0) | i);
3012 
3013      m_renderer->gfx_fifo_exec();
3014   }
3015   else
3016   {
3017      logerror("gfx: data cache store at %08X\n", offset);
3018   }
3019}
3020 
30233021WRITE64_MEMBER(cobra_state::gfx_debug_state_w)
30243022{
30253023   if (ACCESSING_BITS_40_47)
r241452r241453
32603258                        2048,
32613259                        "S2MFIFO",
32623260                        S2MFIFO_VERBOSE != 0,
3263                        cobra_fifo::event_delegate(FUNC(cobra_state::s2mfifo_event_callback), this))
3264                        );
3265
3266   m_maincpu->ppc_set_dcstore_callback(main_cpu_dc_store);
3267
3268   m_gfxcpu->ppc_set_dcstore_callback(gfx_cpu_dc_store);
3269
3270   m_subcpu->ppc4xx_set_dma_write_handler(0, sub_sound_dma_w, 44100);
3271   m_subcpu->ppc4xx_spu_set_tx_handler(sub_jvs_w);
3272
3273
3274   m_comram[0] = auto_alloc_array(machine(), UINT32, 0x40000/4);
3261                        cobra_fifo::event_delegate(FUNC(cobra_state::s2mfifo_event_callback), this))
3262                        );
3263 
3264   m_maincpu->ppc_set_dcstore_callback(write32_delegate(FUNC(cobra_state::main_cpu_dc_store),this));
3265 
3266   m_gfxcpu->ppc_set_dcstore_callback(write32_delegate(FUNC(cobra_state::gfx_cpu_dc_store), this));
3267 
3268   m_subcpu->ppc4xx_set_dma_write_handler(0, write32_delegate(FUNC(cobra_state::sub_sound_dma_w), this), 44100);
3269   m_subcpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(cobra_state::sub_jvs_w), this));
3270 
3271 
3272   m_comram[0] = auto_alloc_array(machine(), UINT32, 0x40000/4);
32753273   m_comram[1] = auto_alloc_array(machine(), UINT32, 0x40000/4);
32763274
32773275   m_comram_page = 0;
trunk/src/mame/drivers/firebeat.c
r241452r241453
256256   void gcu_exec_display_list(bitmap_ind16 &bitmap, const rectangle &cliprect, int chip, UINT32 address);
257257   UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int chip);
258258   UINT32 GCU_r(int chip, UINT32 offset, UINT32 mem_mask);
259   void GCU_w(int chip, UINT32 offset, UINT32 data, UINT32 mem_mask);
260   void set_ibutton(UINT8 *data);
261   int ibutton_w(UINT8 data);
262   void init_lights(write32_delegate out1, write32_delegate out2, write32_delegate out3);
263   void init_firebeat();
264   void init_keyboard();
259   void GCU_w(int chip, UINT32 offset, UINT32 data, UINT32 mem_mask);
260   void set_ibutton(UINT8 *data);
261   int ibutton_w(UINT8 data);
262   DECLARE_WRITE8_MEMBER(security_w);
263   void init_lights(write32_delegate out1, write32_delegate out2, write32_delegate out3);
264   void init_firebeat();
265   void init_keyboard();
265266   DECLARE_WRITE_LINE_MEMBER(sound_irq_callback);
266267   DECLARE_WRITE_LINE_MEMBER(midi_uart_ch0_irq_callback);
267268   DECLARE_WRITE_LINE_MEMBER(midi_uart_ch1_irq_callback);
r241452r241453
19461947      }
19471948   }
19481949
1949   return r;
1950}
1950   return r;
1951}
1952 
1953WRITE8_MEMBER(firebeat_state::security_w)
1954{
1955   int r = ibutton_w(data);
1956   if (r >= 0)
1957      m_maincpu->ppc4xx_spu_receive_byte(r);
1958}
1959 
1960/*****************************************************************************/
19511961
1952static void security_w(device_t *device, UINT8 data)
1953{
1954   firebeat_state *state = device->machine().driver_data<firebeat_state>();
1955   int r = state->ibutton_w(data);
1956   if (r >= 0)
1957      state->m_maincpu->ppc4xx_spu_receive_byte(r);
1958}
1959
1960/*****************************************************************************/
1961
19621962void firebeat_state::init_lights(write32_delegate out1, write32_delegate out2, write32_delegate out3)
19631963{
19641964   if(out1.isnull()) out1 = write32_delegate(FUNC(firebeat_state::lamp_output_w),this);
r241452r241453
19791979
19801980   m_extend_board_irq_enable = 0x3f;
19811981   m_extend_board_irq_active = 0x00;
1982
1983   m_cur_cab_data = cab_data;
1984
1985   m_maincpu->ppc4xx_spu_set_tx_handler(security_w);
1986
1987   set_ibutton(rom);
1988
1982 
1983   m_cur_cab_data = cab_data;
1984 
1985   m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(firebeat_state::security_w), this));
1986 
1987   set_ibutton(rom);
1988 
19891989   init_lights(write32_delegate(), write32_delegate(), write32_delegate());
19901990}
19911991
trunk/src/mame/drivers/gts3.c
r241452r241453
1// license:MAME
2// copyright-holders:Robbbert
13/****************************************************************************************************
24
35  PINBALL
trunk/src/mame/drivers/gts3a.c
r241452r241453
1// license:MAME
2// copyright-holders:Robbbert
13/****************************************************************************************************
24
35  PINBALL
trunk/src/mame/drivers/gts80.c
r241452r241453
1// license:MAME
2// copyright-holders:Robbbert
13/***********************************************************************************************************
24
35  PINBALL
trunk/src/mame/drivers/gts80a.c
r241452r241453
1// license:MAME
2// copyright-holders:Robbbert
13/****************************************************************************************************************
24
35  PINBALL
trunk/src/mame/drivers/gts80b.c
r241452r241453
1// license:MAME
2// copyright-holders:Robbbert
13/****************************************************************************************************************
24
35  PINBALL
trunk/src/mame/drivers/hornet.c
r241452r241453
402402   DECLARE_WRITE32_MEMBER(dsp_dataram1_w);
403403   DECLARE_WRITE_LINE_MEMBER(voodoo_vblank_0);
404404   DECLARE_WRITE_LINE_MEMBER(voodoo_vblank_1);
405   DECLARE_WRITE16_MEMBER(soundtimer_en_w);
406   DECLARE_WRITE16_MEMBER(soundtimer_count_w);
407   ADC12138_IPT_CONVERT_CB(adc12138_input_callback);
408
409   DECLARE_DRIVER_INIT(hornet);
410   DECLARE_DRIVER_INIT(hornet_2board);
405   DECLARE_WRITE16_MEMBER(soundtimer_en_w);
406   DECLARE_WRITE16_MEMBER(soundtimer_count_w);
407   ADC12138_IPT_CONVERT_CB(adc12138_input_callback);
408   DECLARE_WRITE8_MEMBER(jamma_jvs_w);
409 
410   DECLARE_DRIVER_INIT(hornet);
411   DECLARE_DRIVER_INIT(hornet_2board);
411412   virtual void machine_start();
412413   virtual void machine_reset();
413414   DECLARE_MACHINE_RESET(hornet_2board);
r241452r241453
11351136   MCFG_EEPROM_SERIAL_93C46_ADD("lan_eeprom")
11361137MACHINE_CONFIG_END
11371138
1138
1139/*****************************************************************************/
1140
1141static void jamma_jvs_w(device_t *device, UINT8 data)
1139 
1140/*****************************************************************************/
1141 
1142WRITE8_MEMBER(hornet_state::jamma_jvs_w)
1143{
1144   if (m_jvs_sdata_ptr == 0 && data != 0xe0)
1145      return;
1146   m_jvs_sdata[m_jvs_sdata_ptr] = data;
1147   m_jvs_sdata_ptr++;
1148 
1149   if (m_jvs_sdata_ptr >= 3 && m_jvs_sdata_ptr >= 3 + m_jvs_sdata[2])
1150      jamma_jvs_cmd_exec();
1151}
1152 
1153int hornet_state::jvs_encode_data(UINT8 *in, int length)
11421154{
1143   hornet_state *state = device->machine().driver_data<hornet_state>();
1144   if (state->m_jvs_sdata_ptr == 0 && data != 0xe0)
1145      return;
1146   state->m_jvs_sdata[state->m_jvs_sdata_ptr] = data;
1147   state->m_jvs_sdata_ptr++;
1148
1149   if (state->m_jvs_sdata_ptr >= 3 && state->m_jvs_sdata_ptr >= 3 + state->m_jvs_sdata[2])
1150      state->jamma_jvs_cmd_exec();
1151}
1152
1153int hornet_state::jvs_encode_data(UINT8 *in, int length)
1154{
11551155   int inptr = 0;
11561156   int sum = 0;
11571157
r241452r241453
12801280
12811281DRIVER_INIT_MEMBER(hornet_state,hornet)
12821282{
1283   m_konppc->set_cgboard_texture_bank(0, "bank5", memregion("user5")->base());
1284   m_led_reg0 = m_led_reg1 = 0x7f;
1285
1286   m_maincpu->ppc4xx_spu_set_tx_handler(jamma_jvs_w);
1287}
1288
1289DRIVER_INIT_MEMBER(hornet_state,hornet_2board)
1283   m_konppc->set_cgboard_texture_bank(0, "bank5", memregion("user5")->base());
1284   m_led_reg0 = m_led_reg1 = 0x7f;
1285 
1286   m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(hornet_state::jamma_jvs_w), this));
1287}
1288 
1289DRIVER_INIT_MEMBER(hornet_state,hornet_2board)
12901290{
12911291   m_konppc->set_cgboard_texture_bank(0, "bank5", memregion("user5")->base());
1292   m_konppc->set_cgboard_texture_bank(1, "bank6", memregion("user5")->base());
1293   m_led_reg0 = m_led_reg1 = 0x7f;
1292   m_konppc->set_cgboard_texture_bank(1, "bank6", memregion("user5")->base());
1293   m_led_reg0 = m_led_reg1 = 0x7f;
1294 
1295   m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(FUNC(hornet_state::jamma_jvs_w), this));
1296}
1297 
1298/*****************************************************************************/
12941299
1295   m_maincpu->ppc4xx_spu_set_tx_handler(jamma_jvs_w);
1296}
1297
1298/*****************************************************************************/
1299
13001300ROM_START(sscope)
13011301   ROM_REGION32_BE(0x400000, "user1", 0)   /* PowerPC program */
13021302   ROM_LOAD16_WORD_SWAP("830d01.27p", 0x200000, 0x200000, CRC(de9b3dfa) SHA1(660652a5f745cb04687481c3626d8a43cd169193) )
trunk/src/mame/drivers/inder.c
r241452r241453
1// license:MAME
2// copyright-holders:Robbbert
13/*******************************************************************************************************
24
35  PINBALL
trunk/src/mame/drivers/spinb.c
r241452r241453
1// license:MAME
2// copyright-holders:Robbbert
13/***************************************************************************************************
24
35  PINBALL
r241452r241453
572574   if (m_game)
573575   {
574576      ma = ((ma - 0x200) & 0x1c00) + 0x200;
577      if (ma > 0x1c00) return 1; // not initialised yet
575578
576579      for(y=0; y<32; y++)
577580      {
578581         UINT16 *p = &bitmap.pix16(sy++);
579582         for(x = 0; x < 16; x++)
580583         {
581            assert((ma + 0x200) > 0 && (ma + 0x200) < ARRAY_LENGTH(m_dmdram));
582584            gfx = m_dmdram[ma+0x200];
583585            gfx1 = m_dmdram[ma++];
584586
trunk/src/mame/drivers/vamphalf.c
r241452r241453
167167   DECLARE_WRITE32_MEMBER(yorizori_1c_w);
168168   DECLARE_READ32_MEMBER(yorizori_10_r);
169169
170
171
172170   DECLARE_READ8_MEMBER(qs1000_p1_r);
173171   DECLARE_WRITE8_MEMBER(qs1000_p3_w);
174172   DECLARE_DRIVER_INIT(vamphalf);
r241452r241453
192190   DECLARE_DRIVER_INIT(yorizori);
193191   UINT32 screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
194192   UINT32 screen_update_aoh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
193   void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap);
194   void draw_sprites_aoh(screen_device &screen, bitmap_ind16 &bitmap);
195   void handle_flipped_visible_area(screen_device &screen);
195196};
196197
197198READ16_MEMBER(vamphalf_state::eeprom_r)
r241452r241453
608609Offset+3
609610-------x xxxxxxxx X offs
610611*/
611static void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap)
612void vamphalf_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap)
612613{
613   vamphalf_state *state = screen.machine().driver_data<vamphalf_state>();
614   gfx_element *gfx = state->m_gfxdecode->gfx(0);
614   gfx_element *gfx = m_gfxdecode->gfx(0);
615615   UINT32 cnt;
616616   int block, offs;
617617   int code,color,x,y,fx,fy;
r241452r241453
622622
623623   for (block=0; block<0x8000; block+=0x800)
624624   {
625      if(state->m_flipscreen)
625      if(m_flipscreen)
626626      {
627627         clip.min_y = 256 - (16-(block/0x800))*16;
628628         clip.max_y = 256 - ((16-(block/0x800))*16)+15;
r241452r241453
644644         offs = (block + cnt) / 2;
645645
646646         // 16bit version
647         if(state->m_tiles != NULL)
647         if(m_tiles != NULL)
648648         {
649            if(state->m_tiles[offs] & 0x0100) continue;
649            if(m_tiles[offs] & 0x0100) continue;
650650
651            code  = state->m_tiles[offs+1];
652            color = (state->m_tiles[offs+2] >> state->m_palshift) & 0x7f;
651            code  = m_tiles[offs+1];
652            color = (m_tiles[offs+2] >> m_palshift) & 0x7f;
653653
654654            // boonggab
655            if(state->m_has_extra_gfx)
655            if(m_has_extra_gfx)
656656            {
657               code  |= ((state->m_tiles[offs+2] & 0x100) << 8);
657               code  |= ((m_tiles[offs+2] & 0x100) << 8);
658658            }
659659
660            x = state->m_tiles[offs+3] & 0x01ff;
661            y = 256 - (state->m_tiles[offs] & 0x00ff);
660            x = m_tiles[offs+3] & 0x01ff;
661            y = 256 - (m_tiles[offs] & 0x00ff);
662662
663            fx = state->m_tiles[offs] & 0x8000;
664            fy = state->m_tiles[offs] & 0x4000;
663            fx = m_tiles[offs] & 0x8000;
664            fy = m_tiles[offs] & 0x4000;
665665         }
666666         // 32bit version
667667         else
668668         {
669669            offs /= 2;
670670
671            if(state->m_tiles32[offs] & 0x01000000) continue;
671            if(m_tiles32[offs] & 0x01000000) continue;
672672
673            code  = state->m_tiles32[offs] & 0xffff;
674            color = ((state->m_tiles32[offs+1] >> state->m_palshift) & 0x7f0000) >> 16;
673            code  = m_tiles32[offs] & 0xffff;
674            color = ((m_tiles32[offs+1] >> m_palshift) & 0x7f0000) >> 16;
675675
676            x = state->m_tiles32[offs+1] & 0x01ff;
677            y = 256 - ((state->m_tiles32[offs] & 0x00ff0000) >> 16);
676            x = m_tiles32[offs+1] & 0x01ff;
677            y = 256 - ((m_tiles32[offs] & 0x00ff0000) >> 16);
678678
679            fx = state->m_tiles32[offs] & 0x80000000;
680            fy = state->m_tiles32[offs] & 0x40000000;
679            fx = m_tiles32[offs] & 0x80000000;
680            fy = m_tiles32[offs] & 0x40000000;
681681         }
682682
683         if(state->m_flipscreen)
683         if(m_flipscreen)
684684         {
685685            fx = !fx;
686686            fy = !fy;
r241452r241453
694694   }
695695}
696696
697static void draw_sprites_aoh(screen_device &screen, bitmap_ind16 &bitmap)
697void vamphalf_state::draw_sprites_aoh(screen_device &screen, bitmap_ind16 &bitmap)
698698{
699   vamphalf_state *state = screen.machine().driver_data<vamphalf_state>();
700   gfx_element *gfx = state->m_gfxdecode->gfx(0);
699   gfx_element *gfx = m_gfxdecode->gfx(0);
701700   UINT32 cnt;
702701   int block, offs;
703702   int code,color,x,y,fx,fy;
r241452r241453
708707
709708   for (block=0; block<0x8000; block+=0x800)
710709   {
711      if(state->m_flipscreen)
710      if(m_flipscreen)
712711      {
713712         clip.min_y = 256 - (16-(block/0x800))*16;
714713         clip.max_y = 256 - ((16-(block/0x800))*16)+15;
r241452r241453
731730         offs = (block + cnt) / 2;
732731         {
733732            offs /= 2;
734            code  = (state->m_tiles32[offs] & 0xffff) | ((state->m_tiles32[offs] & 0x3000000) >> 8);
735            color = ((state->m_tiles32[offs+1] >> state->m_palshift) & 0x7f0000) >> 16;
733            code  = (m_tiles32[offs] & 0xffff) | ((m_tiles32[offs] & 0x3000000) >> 8);
734            color = ((m_tiles32[offs+1] >> m_palshift) & 0x7f0000) >> 16;
736735
737            x = state->m_tiles32[offs+1] & 0x01ff;
738            y = 256 - ((state->m_tiles32[offs] & 0x00ff0000) >> 16);
736            x = m_tiles32[offs+1] & 0x01ff;
737            y = 256 - ((m_tiles32[offs] & 0x00ff0000) >> 16);
739738
740            fx = state->m_tiles32[offs] & 0x4000000;
741            fy = 0; // not used ? or it's state->m_tiles32[offs] & 0x8000000?
739            fx = m_tiles32[offs] & 0x4000000;
740            fy = 0; // not used ? or it's m_tiles32[offs] & 0x8000000?
742741         }
743742
744         if(state->m_flipscreen)
743         if(m_flipscreen)
745744         {
746745            fx = !fx;
747746            fy = !fy;
r241452r241453
756755}
757756
758757
759void vamphalf_handle_flipped_visible_area( screen_device &screen )
758void vamphalf_state::handle_flipped_visible_area( screen_device &screen )
760759{
761   vamphalf_state *state = screen.machine().driver_data<vamphalf_state>();
762760   // are there actually registers to handle this?
763   if(!state->m_flipscreen)
761   if(!m_flipscreen)
764762   {
765763      rectangle visarea;
766764      visarea.set(31, 350, 16, 251);
r241452r241453
777775
778776UINT32 vamphalf_state::screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
779777{
780   vamphalf_handle_flipped_visible_area(screen);
778   handle_flipped_visible_area(screen);
781779   bitmap.fill(0, cliprect);
782780   draw_sprites(screen, bitmap);
783781   return 0;
r241452r241453
785783
786784UINT32 vamphalf_state::screen_update_aoh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
787785{
788//  vamphalf_handle_flipped_visible_area(screen); // not on this?
786//  handle_flipped_visible_area(screen); // not on this?
789787   bitmap.fill(0, cliprect);
790788   draw_sprites_aoh(screen, bitmap);
791789   return 0;
trunk/src/mess/drivers/a5105.c
r241452r241453
136136            int pen = (tile_data >> xi) & 1 ? color : 0;
137137
138138            res_x = x * 8 + xi;
139            res_y = y * lr + yi;
139            res_y = y + yi;
140140
141141            if(yi >= 8) { pen = 0; }
142142
143            /* TODO: pitch is currently 40, this should actually go in the upd7220 device */
144            if(!machine().first_screen()->visible_area().contains(res_x*2+0, res_y))
143            if(!machine().first_screen()->visible_area().contains(res_x+0, res_y))
145144               continue;
146145
147            bitmap.pix32(res_y, res_x*2+0) = palette[pen];
148
149            if(!machine().first_screen()->visible_area().contains(res_x*2+1, res_y))
150               continue;
151
152            bitmap.pix32(res_y, res_x*2+1) = palette[pen];
146            bitmap.pix32(res_y, res_x) = palette[pen];
153147         }
154148      }
155149   }
trunk/src/mess/drivers/alphasma.c
r241452r241453
2828         m_lcdc1(*this, "ks0066_1"),
2929         m_nvram(*this, "nvram"),
3030         m_rambank(*this, "rambank"),
31         m_io_col0(*this, "COL0"),
32         m_io_col1(*this, "COL1"),
33         m_io_col2(*this, "COL2"),
34         m_io_col3(*this, "COL3"),
35         m_io_col4(*this, "COL4"),
36         m_io_col5(*this, "COL5"),
37         m_io_col6(*this, "COL6"),
38         m_io_col7(*this, "COL7"),
39         m_io_col8(*this, "COL8"),
40         m_io_col9(*this, "COL9"),
41         m_io_cola(*this, "COLA"),
42         m_io_colb(*this, "COLB"),
43         m_io_colc(*this, "COLC"),
44         m_io_cold(*this, "COLD"),
45         m_io_cole(*this, "COLE"),
46         m_io_colf(*this, "COLF"),
31         m_keyboard(*this, "COL"),
4732         m_battery_status(*this, "BATTERY")
4833      { }
4934
r241452r241453
5237   required_device<hd44780_device> m_lcdc1;
5338   required_device<nvram_device> m_nvram;
5439   required_memory_bank m_rambank;
55   required_ioport m_io_col0;
56   required_ioport m_io_col1;
57   required_ioport m_io_col2;
58   required_ioport m_io_col3;
59   required_ioport m_io_col4;
60   required_ioport m_io_col5;
61   required_ioport m_io_col6;
62   required_ioport m_io_col7;
63   required_ioport m_io_col8;
64   required_ioport m_io_col9;
65   required_ioport m_io_cola;
66   required_ioport m_io_colb;
67   required_ioport m_io_colc;
68   required_ioport m_io_cold;
69   required_ioport m_io_cole;
70   required_ioport m_io_colf;
40   required_ioport_array<16> m_keyboard;
7141   required_ioport m_battery_status;
7242
7343   virtual void machine_start();
r241452r241453
8050   DECLARE_WRITE8_MEMBER(kb_matrixl_w);
8151   DECLARE_WRITE8_MEMBER(kb_matrixh_w);
8252   DECLARE_READ8_MEMBER(port_a_r);
83   DECLARE_WRITE8_MEMBER(port_a_w);
53   virtual DECLARE_WRITE8_MEMBER(port_a_w);
8454   DECLARE_READ8_MEMBER(port_d_r);
8555   DECLARE_WRITE8_MEMBER(port_d_w);
56   void update_lcdc(address_space &space, bool lcdc0, bool lcdc1);
8657
87private:
58protected:
8859   UINT8           m_matrix[2];
8960   UINT8           m_port_a;
9061   UINT8           m_port_d;
9162   bitmap_ind16 *  m_tmp_bitmap;
9263};
9364
65class asma2k_state : public alphasmart_state
66{
67public:
68   asma2k_state(const machine_config &mconfig, device_type type, const char *tag)
69      : alphasmart_state(mconfig, type, tag),
70         m_intram(*this, "internal_ram")
71      { }
72
73   required_shared_ptr<UINT8> m_intram;
74
75   DECLARE_READ8_MEMBER(io_r);
76   DECLARE_WRITE8_MEMBER(io_w);
77   DECLARE_WRITE8_MEMBER(port_a_w);
78
79private:
80   UINT8 m_lcd_ctrl;
81};
82
9483INPUT_CHANGED_MEMBER(alphasmart_state::kb_irq)
9584{
9685   m_maincpu->set_input_line(MC68HC11_IRQ_LINE, HOLD_LINE);
r241452r241453
9887
9988READ8_MEMBER(alphasmart_state::kb_r)
10089{
101   ioport_port* portnames[] =
102   {
103      m_io_col0, m_io_col1, m_io_col2, m_io_col3, m_io_col4, m_io_col5, m_io_col6, m_io_col7,
104      m_io_col8, m_io_col9, m_io_cola, m_io_colb, m_io_colc, m_io_cold, m_io_cole, m_io_colf
105   };
106
10790   UINT16 matrix = (m_matrix[1]<<8) | m_matrix[0];
10891   UINT8 data = 0xff;
10992
11093   for(int i=0; i<16; i++)
11194      if (!(matrix & (1<<i)))
112         data &= portnames[i]->read();
95         data &= m_keyboard[i]->read();
11396
11497   return data;
11598}
r241452r241453
129112   return (m_port_a & 0xfd) | (m_battery_status->read() << 1);
130113}
131114
132WRITE8_MEMBER(alphasmart_state::port_a_w)
115void alphasmart_state::update_lcdc(address_space &space, bool lcdc0, bool lcdc1)
133116{
134   if ((m_matrix[1] & 0x04))
117   if (m_matrix[1] & 0x04)
135118   {
136119      UINT8 lcdc_data = 0;
137120
138      if ((m_port_a ^ data) & 0x80)
121      if (lcdc0)
139122         lcdc_data |= m_lcdc0->read(space, BIT(m_matrix[1], 1));
140123
141      if ((m_port_a ^ data) & 0x20)
124      if (lcdc1)
142125         lcdc_data |= m_lcdc1->read(space, BIT(m_matrix[1], 1));
143126
144127      m_port_d = (m_port_d & 0xc3) | (lcdc_data>>2);
r241452r241453
147130   {
148131      UINT8 lcdc_data = (m_port_d<<2) & 0xf0;
149132
150      if ((m_port_a ^ data) & data & 0x80)
133      if (lcdc0)
151134         m_lcdc0->write(space, BIT(m_matrix[1], 1), lcdc_data);
152135
153      if ((m_port_a ^ data) & data & 0x20)
136      if (lcdc1)
154137         m_lcdc1->write(space, BIT(m_matrix[1], 1), lcdc_data);
155138   }
139}
156140
141WRITE8_MEMBER(alphasmart_state::port_a_w)
142{
143   UINT8 changed = (m_port_a ^ data) & data;
144   update_lcdc(space, changed & 0x80, changed & 0x20);
157145   m_rambank->set_entry(((data>>3) & 0x01) | ((data>>4) & 0x02));
158146   m_port_a = data;
159147}
r241452r241453
184172   AM_RANGE( MC68HC11_IO_PORTD, MC68HC11_IO_PORTD ) AM_READWRITE(port_d_r, port_d_w)
185173ADDRESS_MAP_END
186174
187static ADDRESS_MAP_START(asma2k_mem, AS_PROGRAM, 8, alphasmart_state)
175READ8_MEMBER(asma2k_state::io_r)
176{
177   if (offset == 0x2000)
178      return kb_r(space, offset);
179
180   //else printf("unknown r: %x\n", offset);
181
182   return 0;
183}
184
185WRITE8_MEMBER(asma2k_state::io_w)
186{
187   if (offset == 0x2000)
188      kb_matrixh_w(space, offset, data);
189   else if (offset == 0x4000)
190   {
191      UINT8 changed = (m_lcd_ctrl ^ data) & data;
192      update_lcdc(space, changed & 0x01, changed & 0x02);
193      m_lcd_ctrl = data;
194   }
195
196   //else printf("unknown w: %x %x\n", offset, data);
197}
198
199WRITE8_MEMBER(asma2k_state::port_a_w)
200{
201   if ((m_port_a ^ data) & 0x40)
202   {
203      address_space &space = m_maincpu->space(AS_PROGRAM);
204
205      if (data & 0x40)
206         space.install_readwrite_bank(0x0000, 0x7fff, "rambank");
207      else
208         space.install_readwrite_handler(0x0000, 0x7fff, read8_delegate(FUNC(asma2k_state::io_r), this), write8_delegate(FUNC(asma2k_state::io_w), this));
209
210      // internal registers / RAM
211      space.nop_readwrite(0x00, 0x3f);
212      space.install_ram(0x40, 0xff, m_intram.target());
213   }
214
215   m_rambank->set_entry(((data>>4) & 0x03));
216   m_port_a = data;
217}
218
219
220static ADDRESS_MAP_START(asma2k_mem, AS_PROGRAM, 8, asma2k_state)
188221   ADDRESS_MAP_UNMAP_HIGH
189222   AM_RANGE( 0x0000, 0x003f ) AM_NOP   // internal registers
190   AM_RANGE( 0x0040, 0x00ff ) AM_RAM   // internal RAM
223   AM_RANGE( 0x0040, 0x00ff ) AM_RAM AM_SHARE("internal_ram")   // internal RAM
191224   AM_RANGE( 0x0000, 0x7fff ) AM_RAMBANK("rambank")
225   AM_RANGE( 0x9000, 0x9000 ) AM_WRITE(kb_matrixl_w)
192226   AM_RANGE( 0x8000, 0xffff ) AM_ROM   AM_REGION("maincpu", 0)
193227ADDRESS_MAP_END
194228
195229/* Input ports */
196230static INPUT_PORTS_START( alphasmart )
197   PORT_START("COL0")
231   PORT_START("COL.0")
198232   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F8)    PORT_CHAR(UCHAR_MAMEKEY(F1))   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
199233   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
200234   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F7)    PORT_CHAR(UCHAR_MAMEKEY(F7))   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241452r241453
203237   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9)     PORT_CHAR('9') PORT_CHAR('(')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
204238   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O)     PORT_CHAR('o') PORT_CHAR('O')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
205239   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP)  PORT_CHAR('.') PORT_CHAR('>')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
206   PORT_START("COL1")
240   PORT_START("COL.1")
207241   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5)     PORT_CHAR('5') PORT_CHAR('%')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
208242   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G)     PORT_CHAR('g') PORT_CHAR('G')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
209243   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T)     PORT_CHAR('t') PORT_CHAR('T')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241452r241453
212246   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4)     PORT_CHAR('4') PORT_CHAR('$')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
213247   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R)     PORT_CHAR('r') PORT_CHAR('R')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
214248   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V)     PORT_CHAR('v') PORT_CHAR('V')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
215   PORT_START("COL2")
249   PORT_START("COL.2")
216250   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6)     PORT_CHAR('6') PORT_CHAR('^')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
217251   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H)     PORT_CHAR('h') PORT_CHAR('H')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
218252   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y)     PORT_CHAR('y') PORT_CHAR('Y')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241452r241453
221255   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7)     PORT_CHAR('7') PORT_CHAR('&')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
222256   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U)     PORT_CHAR('u') PORT_CHAR('U')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
223257   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M)     PORT_CHAR('m') PORT_CHAR('M')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
224   PORT_START("COL3")
258   PORT_START("COL.3")
225259   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
226260   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'')    PORT_CHAR('\"') PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
227261   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241452r241453
230264   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0)     PORT_CHAR('0') PORT_CHAR(')')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
231265   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P)     PORT_CHAR('p') PORT_CHAR('P')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
232266   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED)
233   PORT_START("COL4")
267   PORT_START("COL.4")
234268   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Enter") PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
235269   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
236270   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
r241452r241453
239273   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED)
240274   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
241275   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED)
242   PORT_START("COL5")
276   PORT_START("COL.5")
243277   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
244278   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
245279   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
r241452r241453
248282   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED)
249283   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
250284   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_END)  PORT_CHAR(UCHAR_MAMEKEY(END))    PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
251   PORT_START("COL6")
285   PORT_START("COL.6")
252286   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
253287   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LWIN) PORT_CODE(KEYCODE_PGUP)  PORT_NAME("Left Command") PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
254288   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
r241452r241453
257291   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_DEL)  PORT_NAME("Clear File") PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
258292   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME))   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
259293   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED)
260   PORT_START("COL7")
294   PORT_START("COL.7")
261295   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F12) PORT_NAME("Send") PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
262296   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
263297   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
r241452r241453
266300   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED)
267301   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
268302   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_INSERT)   PORT_CHAR(UCHAR_MAMEKEY(INSERT)) PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
269   PORT_START("COL8")
303   PORT_START("COL.8")
270304   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
271305   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
272306   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
r241452r241453
275309   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED)
276310   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
277311   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED)
278   PORT_START("COL9")
312   PORT_START("COL.9")
279313   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LALT) PORT_NAME("Left Alt/Option") PORT_CHAR(UCHAR_MAMEKEY(LALT))   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
280314   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
281315   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED)
r241452r241453
284318   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED)
285319   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
286320   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_RALT) PORT_NAME("Right Alt/Option") PORT_CHAR(UCHAR_MAMEKEY(LALT))   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
287   PORT_START("COLA")
321   PORT_START("COL.10")
288322   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=')    PORT_CHAR('+') PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
289323   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F6)   PORT_CHAR(UCHAR_MAMEKEY(F6)) PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
290324   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']')    PORT_CHAR('}') PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241452r241453
293327   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8)    PORT_CHAR('8')  PORT_CHAR('*')   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
294328   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I)    PORT_CHAR('i')  PORT_CHAR('I')   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
295329   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
296   PORT_START("COLB")
330   PORT_START("COL.11")
297331   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F9)   PORT_NAME("Pause") PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
298332   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F5)        PORT_CHAR(UCHAR_MAMEKEY(F5))     PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
299333   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("Backspace") PORT_CHAR(UCHAR_MAMEKEY(BACKSPACE)) PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241452r241453
302336   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F10)  PORT_NAME("ScrLk") PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
303337   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
304338   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER)   PORT_NAME("Return") PORT_CHAR(13) PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
305   PORT_START("COLC")
339   PORT_START("COL.12")
306340   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F2)   PORT_CHAR(UCHAR_MAMEKEY(F2))    PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
307341   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F4)   PORT_CHAR(UCHAR_MAMEKEY(F4))    PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
308342   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F3)   PORT_CHAR(UCHAR_MAMEKEY(F3))    PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241452r241453
311345   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3)    PORT_CHAR('3')  PORT_CHAR('#')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
312346   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E)    PORT_CHAR('e')  PORT_CHAR('E')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
313347   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C)    PORT_CHAR('c')  PORT_CHAR('C')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
314   PORT_START("COLD")
348   PORT_START("COL.13")
315349   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F1)   PORT_CHAR(UCHAR_MAMEKEY(F1))    PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
316350   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
317351   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241452r241453
320354   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2)    PORT_CHAR('2')  PORT_CHAR('@')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
321355   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W)    PORT_CHAR('w')  PORT_CHAR('W')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
322356   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X)    PORT_CHAR('x')  PORT_CHAR('X')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
323   PORT_START("COLE")
357   PORT_START("COL.14")
324358   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('`') PORT_CHAR('~')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
325359   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ESC)  PORT_CHAR(UCHAR_MAMEKEY(ESC))   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
326360   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TAB)  PORT_CHAR('\t')   PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241452r241453
329363   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1)    PORT_CHAR('1')  PORT_CHAR('!')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
330364   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q)    PORT_CHAR('q')  PORT_CHAR('Q')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
331365   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z)    PORT_CHAR('z')  PORT_CHAR('Z')  PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
332   PORT_START("COLF")
366   PORT_START("COL.15")
333367   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED)
334368   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED)
335369   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) PORT_CHANGED_MEMBER(DEVICE_SELF, alphasmart_state, kb_irq, NULL)
r241452r241453
406440   MCFG_NVRAM_ADD_0FILL("nvram")
407441MACHINE_CONFIG_END
408442
409static MACHINE_CONFIG_DERIVED( asma2k, alphasmart )
443static MACHINE_CONFIG_DERIVED_CLASS( asma2k, alphasmart, asma2k_state )
410444   MCFG_CPU_MODIFY("maincpu")
411445   MCFG_CPU_PROGRAM_MAP(asma2k_mem)
412446MACHINE_CONFIG_END
trunk/src/mess/drivers/apc.c
r241452r241453
230230            int res_x,res_y;
231231
232232            res_x = (x*8+xi);
233            res_y = y*lr+yi;
233            res_y = y+yi;
234234
235235            if(!machine().first_screen()->visible_area().contains(res_x, res_y))
236236               continue;
trunk/src/mess/drivers/astrocde.c
r241452r241453
1212#include "includes/astrocde.h"
1313#include "machine/ram.h"
1414#include "sound/astrocde.h"
15#include "bus/generic/slot.h"
16#include "bus/generic/carts.h"
15#include "bus/astrocde/slot.h"
16#include "bus/astrocde/rom.h"
1717
1818class astrocde_mess_state : public astrocde_state
1919{
r241452r241453
2323      m_cart(*this, "cartslot")
2424      { }
2525
26   required_device<generic_slot_device> m_cart;
26   required_device<astrocade_cart_slot_device> m_cart;
2727   void get_ram_expansion_settings(int &ram_expansion_installed, int &write_protect_on, int &expansion_ram_start, int &expansion_ram_end, int &shadow_ram_end);
2828   DECLARE_MACHINE_START(astrocde);
2929   DECLARE_MACHINE_RESET(astrocde);
r241452r241453
251251 *
252252 *************************************/
253253
254static SLOT_INTERFACE_START(astrocade_cart)
255   SLOT_INTERFACE_INTERNAL("rom",       ASTROCADE_ROM_STD)
256   SLOT_INTERFACE_INTERNAL("rom_256k",  ASTROCADE_ROM_256K)
257   SLOT_INTERFACE_INTERNAL("rom_512k",  ASTROCADE_ROM_512K)
258SLOT_INTERFACE_END
259
260
254261static MACHINE_CONFIG_START( astrocde, astrocde_mess_state )
255262   /* basic machine hardware */
256263   MCFG_CPU_ADD("maincpu", Z80, ASTROCADE_CLOCK/4)        /* 1.789 MHz */
r241452r241453
279286   MCFG_RAM_DEFAULT_SIZE("32k")
280287
281288   /* cartridge */
282   MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "astrocde_cart")
289   MCFG_ASTROCADE_CARTRIDGE_ADD("cartslot", astrocade_cart, NULL)
283290
284291   /* Software lists */
285292   MCFG_SOFTWARE_LIST_ADD("cart_list","astrocde")
r241452r241453
321328MACHINE_START_MEMBER(astrocde_mess_state, astrocde)
322329{
323330   if (m_cart->exists())
324      m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x3fff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
331      m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x3fff, read8_delegate(FUNC(astrocade_cart_slot_device::read_rom),(astrocade_cart_slot_device*)m_cart));
325332}
326333
327334MACHINE_RESET_MEMBER(astrocde_mess_state, astrocde)
trunk/src/mess/drivers/dmv.c
r241452r241453
314314            int pen = (tile_data >> xi) & 1 ? 1 : 0;
315315
316316            res_x = x * 8 + xi;
317            res_y = y * lr + yi;
317            res_y = y + yi;
318318
319319            if(!machine().first_screen()->visible_area().contains(res_x, res_y))
320320               continue;
trunk/src/mess/drivers/mz3500.c
r241452r241453
215215            }
216216
217217            res_x = x * 8 + xi;
218            res_y = y * lr + yi;
218            res_y = y + yi;
219219
220220            if(pen != -1)
221221            {
trunk/src/mess/drivers/pc9801.c
r241452r241453
926926               int res_x,res_y;
927927
928928               res_x = ((x+kanji_lr)*8+xi) * (m_video_ff[WIDTH40_REG]+1);
929               res_y = y*lr+yi - (m_txt_scroll_reg[3] & 0xf);
929               res_y = y+yi - (m_txt_scroll_reg[3] & 0xf);
930930
931931               if(!machine().first_screen()->visible_area().contains(res_x, res_y))
932932                  continue;
trunk/src/mess/drivers/qx10.c
r241452r241453
216216            int res_x,res_y;
217217
218218            res_x = x * 8 + xi;
219            res_y = y * lr + yi;
219            res_y = y + yi;
220220
221221            if(!machine().first_screen()->visible_area().contains(res_x, res_y))
222222               continue;
trunk/src/mess/drivers/vt240.c
r241452r241453
7979            if(yi >= 8) { pen = 0; }
8080
8181            res_x = x * 8 + xi;
82            res_y = y * lr + yi;
82            res_y = y + yi;
8383
8484            if(res_x > screen_max_x || res_y > screen_max_y)
8585               continue;
trunk/src/mess/mess.mak
r241452r241453
570570BUSES += ADAMNET
571571BUSES += APF
572572BUSES += ARCADIA
573BUSES += ASTROCADE
573574BUSES += BML3
574575BUSES += BW2
575576BUSES += C64


Previous 199869 Revisions Next


© 1997-2024 The MAME Team