Previous 199869 Revisions Next

r32936 Saturday 25th October, 2014 at 06:23:15 UTC by Fabio Priuli
(MESS) astrocde.c: added support for 256K and 512K carts
with bankswitch. [Fabio Priuli]
[hash]astrocde.xml
[src/emu/bus]bus.mak
[src/emu/bus/astrocde]rom.c* rom.h* slot.c* slot.h*
[src/mess]mess.mak
[src/mess/drivers]astrocde.c

trunk/hash/astrocde.xml
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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> -->
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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>
r241447r241448
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>
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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>
r241447r241448
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>
r241447r241448
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" />
r241447r241448
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>
r241447r241448
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>
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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> -->
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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>
r241447r241448
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>
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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" />
r241447r241448
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"/>
r241447r241448
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" />
r241447r241448
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> -->
r241447r241448
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>
r241447r241448
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">
trunk/src/emu/bus/astrocde/rom.c
r0r241448
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
r0r241448
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
r0r241448
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
r0r241448
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
r241447r241448
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/mess/drivers/astrocde.c
r241447r241448
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{
r241447r241448
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);
r241447r241448
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 */
r241447r241448
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")
r241447r241448
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/mess.mak
r241447r241448
570570BUSES += ADAMNET
571571BUSES += APF
572572BUSES += ARCADIA
573BUSES += ASTROCADE
573574BUSES += BML3
574575BUSES += BW2
575576BUSES += C64


Previous 199869 Revisions Next


© 1997-2024 The MAME Team