Previous 199869 Revisions Next

r32551 Sunday 5th October, 2014 at 11:51:41 UTC by Fabio Priuli
(MESS) wswan.c: converted to use slot devices for carts. [Fabio Priuli]

out of whatsnew: another case of on-cart SRAM & EEPROM pointers removed from the main system...
[hash]wscolor.xml wswan.xml
[src/emu/bus]bus.mak
[src/emu/bus/wswan]rom.c* rom.h* slot.c* slot.h*
[src/mess]mess.mak
[src/mess/drivers]wswan.c
[src/mess/includes]wswan.h
[src/mess/machine]wswan.c

trunk/hash/wscolor.xml
r32550r32551
1010      <info name="serial" value="SWJ-OMMC03"/>
1111      <info name="release" value="20001221"/>
1212      <info name="alt_title" value="アナザヘヴン ~memory of those days~"/>
13      <!-- 16k EEPROM -->
1413      <part name="cart" interface="wswan_cart">
14         <feature name="slot" value="ws_eeprom" />
1515         <dataarea name="rom" size="4194304">
1616            <rom name="swj-ommc03.bin" size="4194304" crc="d7a0ab74" sha1="caf4a8de853ded732b2a72619acf2784eeceafc7" offset="000000" />
1717         </dataarea>
18         <dataarea name="eeprom" size="0x800">
19         </dataarea>
1820      </part>
1921   </software>
2022
r32550r32551
2729      <info name="release" value="20020704"/>
2830      <info name="alt_title" value="アークザラッド 機神復活"/>
2931      <part name="cart" interface="wswan_cart">
32         <feature name="slot" value="ws_sram" />
3033         <dataarea name="rom" size="8388608">
3134            <rom name="swj-banc2a.bin" size="8388608" crc="e2317345" sha1="68981c05d8118d4189100eed462ee6639328dc59" offset="000000" />
3235         </dataarea>
36         <dataarea name="sram" size="0x8000">
37         </dataarea>
3338      </part>
3439   </software>
3540
r32550r32551
4247      <info name="release" value="20011025"/>
4348      <info name="alt_title" value="マリー&amp;エリー ~ふたりのアトリエ~"/>
4449      <part name="cart" interface="wswan_cart">
50         <feature name="slot" value="ws_sram" />
4551         <dataarea name="rom" size="4194304">
4652            <rom name="swj-htrc01.bin" size="4194304" crc="b18cdc0d" sha1="99d9d7f951ae589059f34e76aea7489ae4cd79f1" offset="000000" />
4753         </dataarea>
54         <dataarea name="sram" size="0x8000">
55         </dataarea>
4856      </part>
4957   </software>
5058
r32550r32551
5765      <info name="release" value="20021207"/>
5866      <info name="alt_title" value="バトルスピリット デジモンフロンティア"/>
5967      <part name="cart" interface="wswan_cart">
68         <feature name="slot" value="ws_sram" />
6069         <dataarea name="rom" size="4194304">
6170            <rom name="swj-banc31.bin" size="4194304" crc="8ba49dab" sha1="fffb1aea34e0a96113cd10ba9de515000d27bfe6" offset="000000" />
6271         </dataarea>
72         <dataarea name="sram" size="0x8000">
73         </dataarea>
6374      </part>
6475   </software>
6576
r32550r32551
7283      <info name="release" value="20010705"/>
7384      <info name="alt_title" value="ブルー ウイング ブリッツ"/>
7485      <part name="cart" interface="wswan_cart">
86         <feature name="slot" value="ws_sram" />
7587         <dataarea name="rom" size="2097152">
7688            <rom name="swj-sqrc05.bin" size="2097152" crc="99027238" sha1="02103fc5fc97c3a38834ced32a3cfe6523832535" offset="000000" />
7789         </dataarea>
90         <dataarea name="sram" size="0x8000">
91         </dataarea>
7892      </part>
7993   </software>
8094
r32550r32551
87101      <info name="release" value="20020810"/>
88102      <info name="alt_title" value="激闘! クラッシュギア ターボギアチャンピオンリーグ"/>
89103      <part name="cart" interface="wswan_cart">
104         <feature name="slot" value="ws_sram" />
90105         <dataarea name="rom" size="4194304">
91106            <rom name="swj-wizc01.bin" size="4194304" crc="8a8b827c" sha1="1bc1e831b9e2aefc59f2cac5f19f7d22be574fc1" offset="000000" />
92107         </dataarea>
108         <dataarea name="sram" size="0x2000">
109         </dataarea>
93110      </part>
94111   </software>
95112
r32550r32551
102119      <info name="release" value="20010315"/>
103120      <info name="alt_title" value="バトルゲート ダークアイズ"/>
104121      <part name="cart" interface="wswan_cart">
122         <feature name="slot" value="ws_sram" />
105123         <dataarea name="rom" size="4194304">
106124            <rom name="swj-banc08.bin" size="4194304" crc="12ae932c" sha1="c2188171dc0f78fb6a13bbb55b4e85bdf7b82fd5" offset="000000" />
107125         </dataarea>
126         <dataarea name="sram" size="0x8000">
127         </dataarea>
108128      </part>
109129   </software>
110130
r32550r32551
116136      <info name="release" value="20040531"/>
117137      <info name="alt_title" value="だいしんぐないと・ピリオド"/>
118138      <part name="cart" interface="wswan_cart">
139         <feature name="slot" value="ws_sram" />
140         <feature name="rtc" value="yes" />
119141         <dataarea name="rom" size="524288">
120142            <rom name="dicing knight. (japan).bin" size="524288" crc="d28dc930" sha1="79658575c736fcad18e9225aa0e62398b086093b" offset="000000" />
121143         </dataarea>
144         <dataarea name="sram" size="0x40000">
145         </dataarea>
122146      </part>
123147   </software>
124148
r32550r32551
130154      <info name="serial" value="SWJ-BANC03"/>
131155      <info name="release" value="20001209"/>
132156      <info name="alt_title" value="デジモンアドベンチャー02 ディーワンテイマーズ"/>
133      <!-- 256k SRAM -->
134157      <part name="cart" interface="wswan_cart">
158         <feature name="slot" value="ws_sram" />
135159         <dataarea name="rom" size="4194304">
136160            <rom name="swj-banc03.bin" size="4194304" crc="4d28637e" sha1="18d3dfe25d82964ab7bb61af363d368fd12f4d4b" offset="000000" />
137161         </dataarea>
162         <dataarea name="sram" size="0x8000">
163         </dataarea>
138164      </part>
139165   </software>
140166
r32550r32551
145171      <publisher>Bandai</publisher>
146172      <info name="serial" value="SWJ-BAN001"/>
147173      <part name="cart" interface="wswan_cart">
174         <feature name="slot" value="ws_sram" />
148175         <dataarea name="rom" size="4194304">
149176            <rom name="swj-ban001digiasia.bin" size="4194304" crc="77689273" sha1="7a6411cf8a4d91e8a4e0532779f11bdd25b92363" offset="000000" />
150177         </dataarea>
178         <dataarea name="sram" size="0x8000">
179         </dataarea>
151180      </part>
152181   </software>
153182
r32550r32551
160189      <info name="release" value="20020316"/>
161190      <info name="alt_title" value="デジタルモンスター カードゲーム バージョン ワンダースワンカラー"/>
162191      <part name="cart" interface="wswan_cart">
192         <feature name="slot" value="ws_eeprom" />
163193         <dataarea name="rom" size="4194304">
164194            <rom name="swj-banc22.bin" size="4194304" crc="603cb5e6" sha1="ba16a0770f7a71dd49e2879799fd04a4f04f7e60" offset="000000" />
165195         </dataarea>
196         <dataarea name="eeprom" size="0x800">
197         </dataarea>
166198      </part>
167199   </software>
168200
r32550r32551
175207      <info name="release" value="20020803"/>
176208      <info name="alt_title" value="デジタルモンスター ディープロジェクト"/>
177209      <part name="cart" interface="wswan_cart">
210         <feature name="slot" value="ws_sram" />
178211         <dataarea name="rom" size="4194304">
179212            <rom name="swj-banc2e.bin" size="4194304" crc="faaefbcb" sha1="3e8fffe1f607ea5f855397d9d877cecb285507f7" offset="000000" />
180213         </dataarea>
214         <dataarea name="sram" size="0x8000">
215         </dataarea>
181216      </part>
182217   </software>
183218
r32550r32551
190225      <info name="release" value="20020427"/>
191226      <info name="alt_title" value="デジモンテイマーズ バトルスピリット Ver.1.5"/>
192227      <part name="cart" interface="wswan_cart">
228         <feature name="slot" value="ws_sram" />
193229         <dataarea name="rom" size="8388608">
194230            <rom name="swj-banc30.bin" size="8388608" crc="6caad4a2" sha1="3f39ff494a3d8dd9d55a2e7cf86b47f1c8e8a156" offset="000000" />
195231         </dataarea>
232         <dataarea name="sram" size="0x8000">
233         </dataarea>
196234      </part>
197235   </software>
198236
r32550r32551
205243      <info name="release" value="20011006"/>
206244      <info name="alt_title" value="デジモンテイマーズ バトルスピリット"/>
207245      <part name="cart" interface="wswan_cart">
246         <feature name="slot" value="ws_sram" />
247         <feature name="rtc" value="yes" />
208248         <dataarea name="rom" size="4194304">
209249            <rom name="swj-banc1a.bin" size="4194304" crc="c927bfcb" sha1="757e92177385a14d979227edee1cb544b4c56bd6" offset="000000" />
210250         </dataarea>
251         <dataarea name="sram" size="0x8000">
252         </dataarea>
211253      </part>
212254   </software>
213255
r32550r32551
220262      <info name="release" value="20011229"/>
221263      <info name="alt_title" value="デジモンテイマーズ ブレイブテイマー"/>
222264      <part name="cart" interface="wswan_cart">
265         <feature name="slot" value="ws_eeprom" />
223266         <dataarea name="rom" size="4194304">
224267            <rom name="swj-banc1d.bin" size="4194304" crc="f1f4d41f" sha1="31a718cfbcff2dab56ab9606a0b5b2dfccecbbcb" offset="000000" />
225268         </dataarea>
269         <dataarea name="eeprom" size="0x800">
270         </dataarea>
226271      </part>
227272   </software>
228273
r32550r32551
235280      <info name="release" value="20010712"/>
236281      <info name="alt_title" value="デジモンテイマーズ デジモンメドレー"/>
237282      <part name="cart" interface="wswan_cart">
283         <feature name="slot" value="ws_eeprom" />
238284         <dataarea name="rom" size="4194304">
239285            <rom name="swj-banc14.bin" size="4194304" crc="fa92418d" sha1="8638737e5a35c6be05a888dc81e504e0d80fd756" offset="000000" />
240286         </dataarea>
287         <dataarea name="eeprom" size="0x800">
288         </dataarea>
241289      </part>
242290   </software>
243291
r32550r32551
249297      <info name="serial" value="SWJ-BECC01"/>
250298      <info name="release" value="20001214"/>
251299      <info name="alt_title" value="どこでもハムスター3 おでかけサフラン"/>
252      <!-- 256k SRAM -->
253300      <part name="cart" interface="wswan_cart">
301         <feature name="slot" value="ws_sram" />
302         <feature name="rtc" value="yes" />
254303         <dataarea name="rom" size="2097152">
255304            <rom name="swj-becc01.bin" size="2097152" crc="93e19f13" sha1="66b4bd15ef67dc324736a1cc78d6aca335f03389" offset="000000" />
256305         </dataarea>
306         <dataarea name="sram" size="0x8000">
307         </dataarea>
257308      </part>
258309   </software>
259310
r32550r32551
265316      <info name="serial" value="SWJ-BANC0D"/>
266317      <info name="release" value="20010524"/>
267318      <info name="alt_title" value="ポケットの中の ドラえもん"/>
268      <!-- 16k EEPROM -->
269319      <part name="cart" interface="wswan_cart">
320         <feature name="slot" value="ws_eeprom" />
270321         <dataarea name="rom" size="4194304">
271322            <rom name="swj-banc0d.bin" size="4194304" crc="2b61bb2b" sha1="57338999b949589c36ce116a30f433e9618685e4" offset="000000" />
272323         </dataarea>
324         <dataarea name="eeprom" size="0x800">
325         </dataarea>
273326      </part>
274327   </software>
275328
r32550r32551
282335      <info name="release" value="20031120"/>
283336      <info name="alt_title" value="ドラゴンボール"/>
284337      <part name="cart" interface="wswan_cart">
338         <feature name="slot" value="ws_rom" />
285339         <dataarea name="rom" size="2097152">
286340            <rom name="swj-banc3c.bin" size="2097152" crc="067238d1" sha1="5384f9974c66e5e26129a4709976de0bb1ae1f17" offset="000000" />
287341         </dataarea>
r32550r32551
296350      <info name="serial" value="SWJ-SQRC01"/>
297351      <info name="release" value="20001209"/>
298352      <info name="alt_title" value="ファイナルファンタジー"/>
299      <!-- 256k SRAM -->
300353      <part name="cart" interface="wswan_cart">
354         <feature name="slot" value="ws_sram" />
301355         <dataarea name="rom" size="4194304">
302356            <rom name="swj-sqrc01.bin" size="4194304" crc="b7243e88" sha1="26628eb76c16880b6faf2e706778d91a60144078" offset="000000" />
303357         </dataarea>
358         <dataarea name="sram" size="0x8000">
359         </dataarea>
304360      </part>
305361   </software>
306362
r32550r32551
312368      <info name="serial" value="SWJ-SQRC02"/>
313369      <info name="release" value="20010502"/>
314370      <info name="alt_title" value="ファイナルファンタジーII"/>
315      <!-- 256k SRAM -->
316371      <part name="cart" interface="wswan_cart">
372         <feature name="slot" value="ws_sram" />
317373         <dataarea name="rom" size="4194304">
318374            <rom name="swj-sqrc02.bin" size="4194304" crc="f09e752f" sha1="959321e3b971516e38a4cbf95b0fc3efc0b0a825" offset="000000" />
319375         </dataarea>
376         <dataarea name="sram" size="0x8000">
377         </dataarea>
320378      </part>
321379   </software>
322380
r32550r32551
329387      <info name="release" value="20020328"/>
330388      <info name="alt_title" value="ファイナルファンタジーIV"/>
331389      <part name="cart" interface="wswan_cart">
390         <feature name="slot" value="ws_sram" />
332391         <dataarea name="rom" size="4194304">
333392            <rom name="swj-sqrc09.bin" size="4194304" crc="f699d6d1" sha1="6d707e88c85d1b5ef708631e709668006a9ee244" offset="000000" />
334393         </dataarea>
394         <dataarea name="sram" size="0x8000">
395         </dataarea>
335396      </part>
336397   </software>
337398
r32550r32551
343404      <info name="serial" value="SWJ-BANC23"/>
344405      <info name="release" value="20011115"/>
345406      <info name="alt_title" value="ファイナルラップスペシャル"/>
346      <!-- TOOD -->
347407      <part name="cart" interface="wswan_cart">
408         <feature name="slot" value="ws_eeprom" />
348409         <dataarea name="rom" size="4194304">
349410            <rom name="swj-banc23.bin" size="4194304" crc="b07e6a56" sha1="4c3f092b095bdb0afdaf8d32d4c54b4d6c209c96" offset="000000" />
350411         </dataarea>
412         <dataarea name="eeprom" size="0x800">
413         </dataarea>
351414      </part>
352415   </software>
353416
r32550r32551
359422      <info name="serial" value="SWJ-KBSC01"/>
360423      <info name="release" value="20001228"/>
361424      <info name="alt_title" value="フラッシュ 恋人クン"/>
362      <!-- 16k EEPROM -->
363425      <part name="cart" interface="wswan_cart">
426         <feature name="slot" value="ws_eeprom" />
364427         <dataarea name="rom" size="2097152">
365428            <rom name="swj-kbsc01.bin" size="2097152" crc="69d8d433" sha1="a3d6717efdb8f243fe86b4c3d869a9734a2e02d3" offset="000000" />
366429         </dataarea>
430         <dataarea name="eeprom" size="0x800">
431         </dataarea>
367432      </part>
368433   </software>
369434
r32550r32551
376441      <info name="release" value="20020712"/>
377442      <info name="alt_title" value="フロントミッション"/>
378443      <part name="cart" interface="wswan_cart">
444         <feature name="slot" value="ws_sram" />
379445         <dataarea name="rom" size="8388608">
380446            <rom name="swj-sqrc10.bin" size="8388608" crc="2f9e2560" sha1="3c752694ab651f9a00ccd39c334a2e3ff78f5cb2" offset="000000" />
381447         </dataarea>
448         <dataarea name="sram" size="0x8000">
449         </dataarea>
382450      </part>
383451   </software>
384452
r32550r32551
390458      <info name="serial" value="SWJ-BANC2B"/>
391459      <info name="release" value="20020228"/>
392460      <part name="cart" interface="wswan_cart">
461         <feature name="slot" value="ws_eeprom" />
393462         <dataarea name="rom" size="4194304">
394463            <rom name="swj-banc2b.bin" size="4194304" crc="bc944a98" sha1="87661841ca63e99b04c0f6dc4ba3454c897e0c6d" offset="000000" />
395464         </dataarea>
465         <dataarea name="eeprom" size="0x80">
466         </dataarea>
396467      </part>
397468   </software>
398469
r32550r32551
405476      <info name="release" value="20010607"/>
406477      <info name="alt_title" value="幻想魔伝最遊記 Retribution ~陽のあたる場所で~"/>
407478      <part name="cart" interface="wswan_cart">
479         <feature name="slot" value="ws_eeprom" />
408480         <dataarea name="rom" size="2097152">
409481            <rom name="swj-sesc01.bin" size="2097152" crc="446e2581" sha1="adbe6e38a0bc6a2d19da64a444071977b771f14f" offset="000000" />
410482         </dataarea>
483         <dataarea name="eeprom" size="0x800">
484         </dataarea>
411485      </part>
412486   </software>
413487
r32550r32551
419493      <info name="serial" value="SWJ-SUMC07"/>
420494      <info name="release" value="20010125"/>
421495      <info name="alt_title" value="ギルティギア プチ"/>
422      <!-- 256k SRAM -->
423496      <part name="cart" interface="wswan_cart">
497         <feature name="slot" value="ws_sram" />
424498         <dataarea name="rom" size="2097152">
425499            <rom name="swj-sumc07.bin" size="2097152" crc="9750bc2a" sha1="6d8f8fd330f32374b55cf6b998196a7db2131073" offset="000000" />
426500         </dataarea>
501         <dataarea name="sram" size="0x8000">
502         </dataarea>
427503      </part>
428504   </software>
429505
r32550r32551
436512      <info name="release" value="20010927"/>
437513      <info name="alt_title" value="ギルティギア プチ2"/>
438514      <part name="cart" interface="wswan_cart">
515         <feature name="slot" value="ws_sram" />
439516         <dataarea name="rom" size="4194304">
440517            <rom name="swj-sumc08.bin" size="4194304" crc="d7a12bd5" sha1="f7aeab6724154f7ef6a389f9f18b7100045e1064" offset="000000" />
441518         </dataarea>
519         <dataarea name="sram" size="0x8000">
520         </dataarea>
442521      </part>
443522   </software>
444523
r32550r32551
451530      <info name="release" value="20020613"/>
452531      <info name="alt_title" value="グランスタ クロニクル"/>
453532      <part name="cart" interface="wswan_cart">
533         <feature name="slot" value="ws_sram" />
454534         <dataarea name="rom" size="8388608">
455535            <rom name="swj-mgtc01.bin" size="8388608" crc="af24f95c" sha1="3a4c5d1c08b74cf05b4cb64cbfd7c3dd8b1c3789" offset="000000" />
456536         </dataarea>
537         <dataarea name="sram" size="0x8000">
538         </dataarea>
457539      </part>
458540   </software>
459541
r32550r32551
466548      <info name="release" value="20030315"/>
467549      <info name="alt_title" value="機動戦士ガンダム シード"/>
468550      <part name="cart" interface="wswan_cart">
551         <feature name="slot" value="ws_sram" />
469552         <dataarea name="rom" size="4194304">
470553            <rom name="swj-banc36.bin" size="4194304" crc="bce15137" sha1="e933ff8eace56a462019ae4654b0bab1b21b1d6c" offset="000000" />
471554         </dataarea>
555         <dataarea name="sram" size="0x8000">
556         </dataarea>
472557      </part>
473558   </software>
474559
r32550r32551
481566      <info name="release" value="20030502"/>
482567      <info name="alt_title" value="機動戦士ガンダム ギレンの野望 特別編 蒼き星の覇者"/>
483568      <part name="cart" interface="wswan_cart">
569         <feature name="slot" value="ws_sram" />
484570         <dataarea name="rom" size="4194304">
485571            <rom name="swj-banc3a.bin" size="4194304" crc="d4061551" sha1="20b671bc14a8ab6373deecc641479d09658ac21f" offset="000000" />
486572         </dataarea>
573         <dataarea name="sram" size="0x8000">
574         </dataarea>
487575      </part>
488576   </software>
489577
r32550r32551
495583      <info name="serial" value="SWJ-BANC07"/>
496584      <info name="release" value="20010201"/>
497585      <info name="alt_title" value="機動戦士ガンダム Vol.1 サイドセブン"/>
498      <!-- 256k SRAM -->
499586      <part name="cart" interface="wswan_cart">
587         <feature name="slot" value="ws_sram" />
500588         <dataarea name="rom" size="4194304">
501589            <rom name="swj-banc07.bin" size="4194304" crc="08c0247b" sha1="29e72e7f96f145a0ff56e447f577310df2ec463b" offset="000000" />
502590         </dataarea>
591         <dataarea name="sram" size="0x8000">
592         </dataarea>
503593      </part>
504594   </software>
505595
r32550r32551
512602      <info name="release" value="20010816"/>
513603      <info name="alt_title" value="機動戦士ガンダム Vol.2 ジャブロー"/>
514604      <part name="cart" interface="wswan_cart">
605         <feature name="slot" value="ws_sram" />
515606         <dataarea name="rom" size="8388608">
516607            <rom name="swj-banc17.bin" size="8388608" crc="39a1391a" sha1="df1a794f7e3992b1e1e9de14141b607746202202" offset="000000" />
517608         </dataarea>
609         <dataarea name="sram" size="0x8000">
610         </dataarea>
518611      </part>
519612   </software>
520613
r32550r32551
527620      <info name="release" value="20020525"/>
528621      <info name="alt_title" value="機動戦士ガンダム Vol.3 ア・バオア・クー"/>
529622      <part name="cart" interface="wswan_cart">
623         <feature name="slot" value="ws_sram" />
530624         <dataarea name="rom" size="8388608">
531625            <rom name="swj-banc25.bin" size="8388608" crc="a9f5bf54" sha1="35443e2ef8a20a0ad82da1274b2768c16239dd46" offset="000000" />
532626         </dataarea>
627         <dataarea name="sram" size="0x8000">
628         </dataarea>
533629      </part>
534630   </software>
535631
r32550r32551
541637      <info name="serial" value="SWJ-BANC02"/>
542638      <info name="release" value="20001209"/>
543639      <info name="alt_title" value="グンペイEX"/>
544      <!-- 16k EEPROM -->
545640      <part name="cart" interface="wswan_cart">
641         <feature name="slot" value="ws_eeprom" />
546642         <dataarea name="rom" size="1048576">
547643            <rom name="swj-banc02.bin" size="1048576" crc="0c9cb12c" sha1="1eb729aa9ab0a7df6f8a3470a6fede59d7622d4a" offset="000000" />
548644         </dataarea>
645         <dataarea name="eeprom" size="0x800">
646         </dataarea>
549647      </part>
550648   </software>
551649
r32550r32551
558656      <info name="release" value="20020214"/>
559657      <info name="alt_title" value="はんじゅくヒーロー半熟英雄 ああ、世界よ半熟なれ...!!"/>
560658      <part name="cart" interface="wswan_cart">
659         <feature name="slot" value="ws_sram" />
561660         <dataarea name="rom" size="4194304">
562661            <rom name="swj-sqrc06.bin" size="4194304" crc="31e09bed" sha1="2e3f221d6965f53b29586d2019ee81dec6d1ac30" offset="000000" />
563662         </dataarea>
663         <dataarea name="sram" size="0x8000">
664         </dataarea>
564665      </part>
565666   </software>
566667
r32550r32551
573674      <info name="release" value="20000921"/>
574675      <info name="alt_title" value="はたらくチョコボ"/>
575676      <part name="cart" interface="wswan_cart">
677         <feature name="slot" value="ws_sram" />
576678         <dataarea name="rom" size="1048576">
577679            <rom name="swj-sqr004.bin" size="1048576" crc="7a29e9a6" sha1="9bd63ed48926b27be70333fbe07da2ceed56328a" offset="000000" />
578680         </dataarea>
681         <dataarea name="sram" size="0x8000">
682         </dataarea>
579683      </part>
580684   </software>
581685
r32550r32551
588692      <info name="release" value="20030424"/>
589693      <info name="alt_title" value="ハンター×ハンター グリードアイランド"/>
590694      <part name="cart" interface="wswan_cart">
695         <feature name="slot" value="ws_sram" />
591696         <dataarea name="rom" size="8388608">
592697            <rom name="swj-banc39.bin" size="8388608" crc="a487b7a8" sha1="f66335b5af87e7cb72ae311eb9b339534722f738" offset="000000" />
593698         </dataarea>
699         <dataarea name="sram" size="0x8000">
700         </dataarea>
594701      </part>
595702   </software>
596703
r32550r32551
603710      <info name="release" value="20010823"/>
604711      <info name="alt_title" value="ハンター×ハンター 導かれし者"/>
605712      <part name="cart" interface="wswan_cart">
713         <feature name="slot" value="ws_eeprom" />
606714         <dataarea name="rom" size="4194304">
607715            <rom name="swj-banc18.bin" size="4194304" crc="9402bca9" sha1="bc591fc24d3f8e94b70503fd8b6a35fa58151139" offset="000000" />
608716         </dataarea>
717         <dataarea name="eeprom" size="0x800">
718         </dataarea>
609719      </part>
610720   </software>
611721
r32550r32551
617727      <info name="serial" value="SWJ-BANC0F"/>
618728      <info name="release" value="20010426"/>
619729      <info name="alt_title" value="ハンター×ハンター ~それぞれの決意~"/>
620      <!-- 16k EEPROM -->
621730      <part name="cart" interface="wswan_cart">
731         <feature name="slot" value="ws_eeprom" />
622732         <dataarea name="rom" size="4194304">
623733            <rom name="swj-banc0f.bin" size="4194304" crc="d0b20c5a" sha1="2da2a9bcff4813abcb5b2c88095258d89a575378" offset="000000" />
624734         </dataarea>
735         <dataarea name="eeprom" size="0x800">
736         </dataarea>
625737      </part>
626738   </software>
627739
r32550r32551
634746      <info name="release" value="20020727"/>
635747      <info name="alt_title" value="犬夜叉 風雲絵巻"/>
636748      <part name="cart" interface="wswan_cart">
749         <feature name="slot" value="ws_sram" />
637750         <dataarea name="rom" size="4194304">
638751            <rom name="swj-banc26.bin" size="4194304" crc="3ff5791f" sha1="99d5bdde193685a1d09ea73bb79a54b4da82625d" offset="000000" />
639752         </dataarea>
753         <dataarea name="sram" size="0x8000">
754         </dataarea>
640755      </part>
641756   </software>
642757
r32550r32551
649764      <info name="release" value="20011102"/>
650765      <info name="alt_title" value="犬夜叉 かごめの戦国日記"/>
651766      <part name="cart" interface="wswan_cart">
767         <feature name="slot" value="ws_sram" />
768         <feature name="rtc" value="yes" />
652769         <dataarea name="rom" size="2097152">
653770            <rom name="swj-banc1b.bin" size="2097152" crc="0c23d551" sha1="b4fbea1a2c50d8566685f72820b360af4b54f82f" offset="000000" />
654771         </dataarea>
772         <dataarea name="sram" size="0x8000">
773         </dataarea>
655774      </part>
656775   </software>
657776
r32550r32551
664783      <info name="release" value="20021116"/>
665784      <info name="alt_title" value="犬夜叉 かごめの夢日記"/>
666785      <part name="cart" interface="wswan_cart">
786         <feature name="slot" value="ws_eeprom" />
667787         <dataarea name="rom" size="4194304">
668788            <rom name="swj-banc32.bin" size="4194304" crc="44453234" sha1="f7c8f8b6b6d036df8fc4bde72fcfac2846dffe35" offset="000000" />
669789         </dataarea>
790         <dataarea name="eeprom" size="0x800">
791         </dataarea>
670792      </part>
671793   </software>
672794
r32550r32551
677799      <publisher>Qute</publisher>
678800      <info name="release" value="20040205"/>
679801      <part name="cart" interface="wswan_cart">
802         <feature name="slot" value="ws_sram" />
803         <feature name="rtc" value="yes" />
680804         <dataarea name="rom" size="524288">
681805            <rom name="judgement silversword - rebirth edition (japan) (rev 4321).bin" size="524288" crc="60191872" sha1="657aea8377e207b9b5a182b13966a27f46633640" offset="000000" />
682806         </dataarea>
807         <dataarea name="sram" size="0x40000">
808         </dataarea>
683809      </part>
684810   </software>
685811
r32550r32551
690816      <publisher>Qute</publisher>
691817      <info name="release" value="20040205"/>
692818      <part name="cart" interface="wswan_cart">
819         <feature name="slot" value="ws_sram" />
820         <feature name="rtc" value="yes" />
693821         <dataarea name="rom" size="524288">
694822            <rom name="judgement silversword - rebirth edition (japan) (rev sc21).bin" size="524288" crc="4fce380d" sha1="a1d910123b6be0b941f699ef70c745d16350d029" offset="000000" />
695823         </dataarea>
824         <dataarea name="sram" size="0x40000">
825         </dataarea>
696826      </part>
697827   </software>
698828
r32550r32551
705835      <info name="release" value="20030130"/>
706836      <info name="alt_title" value="キン肉マンII世 超人聖戦史"/>
707837      <part name="cart" interface="wswan_cart">
838         <feature name="slot" value="ws_eeprom" />
708839         <dataarea name="rom" size="4194304">
709840            <rom name="swj-banc34.bin" size="4194304" crc="6142fd9d" sha1="efcf8f92357ffc6f6ec0e4aa960cd97a5070836e" offset="000000" />
710841         </dataarea>
842         <dataarea name="eeprom" size="0x800">
843         </dataarea>
711844      </part>
712845   </software>
713846
r32550r32551
720853      <info name="release" value="20020302"/>
721854      <info name="alt_title" value="キン肉マンII世 ドリームタッグマッチ"/>
722855      <part name="cart" interface="wswan_cart">
856         <feature name="slot" value="ws_eeprom" />
723857         <dataarea name="rom" size="2097152">
724858            <rom name="swj-banc20.bin" size="2097152" crc="462f9275" sha1="81dd3124cce8a1aafd423bfe0814187fb7c646cb" offset="000000" />
725859         </dataarea>
860         <dataarea name="eeprom" size="0x80">
861         </dataarea>
726862      </part>
727863   </software>
728864
r32550r32551
735871      <info name="release" value="20010614"/>
736872      <info name="alt_title" value="くるパラ!"/>
737873      <part name="cart" interface="wswan_cart">
874         <feature name="slot" value="ws_eeprom" />
738875         <dataarea name="rom" size="2097152">
739876            <rom name="swj-tmcc01.bin" size="2097152" crc="274719f5" sha1="9942d1b7d1c00126b9891e560e6a3e264f8fdc2e" offset="000000" />
740877         </dataarea>
878         <dataarea name="eeprom" size="0x800">
879         </dataarea>
741880      </part>
742881   </software>
743882
r32550r32551
750889      <info name="release" value="20010726"/>
751890      <info name="alt_title" value="ラストアライブ"/>
752891      <part name="cart" interface="wswan_cart">
892         <feature name="slot" value="ws_eeprom" />
753893         <dataarea name="rom" size="4194304">
754894            <rom name="swj-banc15.bin" size="4194304" crc="da4479bf" sha1="b019f41207e396d9fe3509dccdbe1cc6e7ac46bb" offset="000000" />
755895         </dataarea>
896         <dataarea name="eeprom" size="0x800">
897         </dataarea>
756898      </part>
757899   </software>
758900
r32550r32551
765907      <info name="release" value="20020320"/>
766908      <info name="alt_title" value="魔界塔士 サ・ガ"/>
767909      <part name="cart" interface="wswan_cart">
910         <feature name="slot" value="ws_sram" />
768911         <dataarea name="rom" size="4194304">
769912            <rom name="swj-sqrc08.bin" size="4194304" crc="1b6f5f30" sha1="6b7a9b810c932974cbda4de7178cf0ea5a90e628" offset="000000" />
770913         </dataarea>
914         <dataarea name="sram" size="0x8000">
915         </dataarea>
771916      </part>
772917   </software>
773918
r32550r32551
780925      <info name="release" value="20010405"/>
781926      <info name="alt_title" value="名探偵コナン ~夕暮れの皇女~"/>
782927      <part name="cart" interface="wswan_cart">
928         <feature name="slot" value="ws_sram" />
783929         <dataarea name="rom" size="4194304">
784930            <rom name="swj-banc0e.bin" size="4194304" crc="9f6e3f8d" sha1="36d8bc2ce7920d940943358d48f056f81055ab34" offset="000000" />
785931         </dataarea>
932         <dataarea name="sram" size="0x8000">
933         </dataarea>
786934      </part>
787935   </software>
788936
r32550r32551
794942      <info name="serial" value="SWJ-KDKC01"/>
795943      <info name="release" value="20010308"/>
796944      <info name="alt_title" value="メモリーズオフ フェスタ"/>
797      <!-- 256k SRAM -->
798945      <part name="cart" interface="wswan_cart">
946         <feature name="slot" value="ws_sram" />
799947         <dataarea name="rom" size="2097152">
800948            <rom name="swj-kdkc01.bin" size="2097152" crc="8e123373" sha1="f47b4ab9197999bbec351750601baa20fbbd7177" offset="000000" />
801949         </dataarea>
950         <dataarea name="sram" size="0x8000">
951         </dataarea>
802952      </part>
803953   </software>
804954
r32550r32551
810960      <info name="serial" value="SWJ-KBSC02"/>
811961      <info name="release" value="20010426"/>
812962      <info name="alt_title" value="サウンドコミック - 三毛猫ホームズ ゴーストパニック"/>
813      <!-- 16k EEPROM -->
814963      <part name="cart" interface="wswan_cart">
964         <feature name="slot" value="ws_eeprom" />
815965         <dataarea name="rom" size="4194304">
816966            <rom name="swj-kbsc02.bin" size="4194304" crc="d75effc2" sha1="2358701531e8a38419859cd70bf2fbbd967b6745" offset="000000" />
817967         </dataarea>
968         <dataarea name="eeprom" size="0x800">
969         </dataarea>
818970      </part>
819971   </software>
820972
r32550r32551
826978      <info name="serial" value="SWJ-NMCC01"/>
827979      <info name="release" value="20010405"/>
828980      <info name="alt_title" value="ミスタードリラー"/>
829      <!-- 256k SRAM -->
830981      <part name="cart" interface="wswan_cart">
982         <feature name="slot" value="ws_sram" />
831983         <dataarea name="rom" size="2097152">
832984            <rom name="swj-nmcc01.bin" size="2097152" crc="5555d95c" sha1="209232f1e91c05140529d466c0ef6b7ad3386de1" offset="000000" />
833985         </dataarea>
986         <dataarea name="sram" size="0x8000">
987         </dataarea>
834988      </part>
835989   </software>
836990
r32550r32551
843997      <info name="release" value="20030327"/>
844998      <info name="alt_title" value="Naruto ナルト- 木ノ葉忍法帖"/>
845999      <part name="cart" interface="wswan_cart">
1000         <feature name="slot" value="ws_sram" />
8461001         <dataarea name="rom" size="4194304">
8471002            <rom name="swj-banc38.bin" size="4194304" crc="71556e6a" sha1="dbaa50fd56e69e72fdfe49362ef5fe4437d66667" offset="000000" />
8481003         </dataarea>
1004         <dataarea name="sram" size="0x8000">
1005         </dataarea>
8491006      </part>
8501007   </software>
8511008
r32550r32551
8581015      <info name="release" value="20020712"/>
8591016      <info name="alt_title" value="フロムテレビアニメーション ワンピース グランドバトル スワンコロシアム"/>
8601017      <part name="cart" interface="wswan_cart">
1018         <feature name="slot" value="ws_sram" />
8611019         <dataarea name="rom" size="8388608">
8621020            <rom name="swj-banc29.bin" size="8388608" crc="f8a1dd2b" sha1="01e765bf356cdcb413bfd27c6321f7449465766a" offset="000000" />
8631021         </dataarea>
1022         <dataarea name="sram" size="0x8000">
1023         </dataarea>
8641024      </part>
8651025   </software>
8661026
r32550r32551
8731033      <info name="release" value="20031016"/>
8741034      <info name="alt_title" value="フロムテレビアニメーション ワンピース チョッパーの大冒険"/>
8751035      <part name="cart" interface="wswan_cart">
1036         <feature name="slot" value="ws_sram" />
8761037         <dataarea name="rom" size="4194304">
8771038            <rom name="swj-banc3b.bin" size="4194304" crc="8e120b5a" sha1="221f48e97ec2c6d0046213956e1f36e923c0dec2" offset="000000" />
8781039         </dataarea>
1040         <dataarea name="sram" size="0x8000">
1041         </dataarea>
8791042      </part>
8801043   </software>
8811044
r32550r32551
8881051      <info name="release" value="20010913"/>
8891052      <info name="alt_title" value="フロムテレビアニメーション ワンピース 虹の島伝説"/>
8901053      <part name="cart" interface="wswan_cart">
1054         <feature name="slot" value="ws_sram" />
8911055         <dataarea name="rom" size="4194304">
8921056            <rom name="swj-banc19.bin" size="4194304" crc="427056c4" sha1="2410690ad46667c52b63402df9e95fc8a75cee62" offset="000000" />
8931057         </dataarea>
1058         <dataarea name="sram" size="0x8000">
1059         </dataarea>
8941060      </part>
8951061   </software>
8961062
r32550r32551
9031069      <info name="release" value="20020103"/>
9041070      <info name="alt_title" value="フロムテレビアニメーション ワンピース トレジャーウォーズ"/>
9051071      <part name="cart" interface="wswan_cart">
1072         <feature name="slot" value="ws_sram" />
9061073         <dataarea name="rom" size="4194304">
9071074            <rom name="swj-banc1e.bin" size="4194304" crc="205503c3" sha1="dd1e6e5467b72fcb5848f07a9747aa66bb207d45" offset="000000" />
9081075         </dataarea>
1076         <dataarea name="sram" size="0x8000">
1077         </dataarea>
9091078      </part>
9101079   </software>
9111080
r32550r32551
9181087      <info name="release" value="20021220"/>
9191088      <info name="alt_title" value="フロムテレビアニメーション ワンピース トレジャーウォーズ2 バギーランドへようこそ"/>
9201089      <part name="cart" interface="wswan_cart">
1090         <feature name="slot" value="ws_sram" />
1091         <feature name="rtc" value="yes" />
9211092         <dataarea name="rom" size="8388608">
9221093            <rom name="swj-banc33.bin" size="8388608" crc="0d1048f0" sha1="b7775e8f60fd62dc07f2865f8fad29a11e12dbb5" offset="000000" />
9231094         </dataarea>
1095         <dataarea name="sram" size="0x8000">
1096         </dataarea>
9241097      </part>
9251098   </software>
9261099
r32550r32551
9331106      <info name="release" value="20010531"/>
9341107      <info name="alt_title" value="落雀"/>
9351108      <part name="cart" interface="wswan_cart">
1109         <feature name="slot" value="ws_eeprom" />
9361110         <dataarea name="rom" size="1048576">
9371111            <rom name="swj-banc10.bin" size="1048576" crc="fe4ff701" sha1="977d5830e45c78b9020e9d06a63a9ad6bc623745" offset="000000" />
9381112         </dataarea>
1113         <dataarea name="eeprom" size="0x80">
1114         </dataarea>
9391115      </part>
9401116   </software>
9411117
r32550r32551
9471123      <info name="serial" value="SWJ-BANC01"/>
9481124      <info name="release" value="20001209"/>
9491125      <info name="alt_title" value="ライムライダー ケロリカン"/>
950      <!-- 256k SRAM -->
9511126      <part name="cart" interface="wswan_cart">
1127         <feature name="slot" value="ws_sram" />
9521128         <dataarea name="rom" size="4194304">
9531129            <rom name="swj-banc01.bin" size="4194304" crc="60706555" sha1="5973306a864c3804ee10b209e45067807d39a4de" offset="000000" />
9541130         </dataarea>
1131         <dataarea name="sram" size="0x8000">
1132         </dataarea>
9551133      </part>
9561134   </software>
9571135
r32550r32551
9641142      <info name="release" value="20020712"/>
9651143      <info name="alt_title" value="Riviera ~約束の地 リヴィエラ~"/>
9661144      <part name="cart" interface="wswan_cart">
1145         <feature name="slot" value="ws_sram" />
9671146         <dataarea name="rom" size="8388608">
9681147            <rom name="swj-banc27.bin" size="8388608" crc="2460b45a" sha1="a8f8d3efc9b2d5741081e05f517d746ee5437f87" offset="000000" />
9691148         </dataarea>
1149         <dataarea name="sram" size="0x8000">
1150         </dataarea>
9701151      </part>
9711152   </software>
9721153
r32550r32551
9791160      <info name="release" value="20030717"/>
9801161      <info name="alt_title" value="スーパーロボット大戦 コンパクト3"/>
9811162      <part name="cart" interface="wswan_cart">
1163         <feature name="slot" value="ws_sram" />
9821164         <dataarea name="rom" size="8388608">
9831165            <rom name="swj-bprc09.bin" size="8388608" crc="6918c824" sha1="b579f204be604ebef4e8238e5883152b70399c4d" offset="000000" />
9841166         </dataarea>
1167         <dataarea name="sram" size="0x8000">
1168         </dataarea>
9851169      </part>
9861170   </software>
9871171
r32550r32551
9941178      <info name="release" value="20030717"/>
9951179      <info name="alt_title" value="スーパーロボット大戦 コンパクト3"/>
9961180      <part name="cart" interface="wswan_cart">
1181         <feature name="slot" value="ws_sram" />
9971182         <dataarea name="rom" size="8388608">
9981183            <rom name="swj-bprc09-1.bin" size="8388608" crc="188ca644" sha1="dd6fe0f278cdec2670d3be8552dbb0cf6a3a2841" offset="000000" />
9991184         </dataarea>
1185         <dataarea name="sram" size="0x8000">
1186         </dataarea>
10001187      </part>
10011188   </software>
10021189
r32550r32551
10091196      <info name="release" value="20011213"/>
10101197      <info name="alt_title" value="フォー ワンダースワンカラーコンパクト スーパーロボット大戦"/>
10111198      <part name="cart" interface="wswan_cart">
1199         <feature name="slot" value="ws_sram" />
10121200         <dataarea name="rom" size="4194304">
10131201            <rom name="swj-bprc08.bin" size="4194304" crc="16e0d929" sha1="bf212cecbbc51ee32ee2655a072f55e7bf70b9ec" offset="000000" />
10141202         </dataarea>
1203         <dataarea name="sram" size="0x8000">
1204         </dataarea>
10151205      </part>
10161206   </software>
10171207
r32550r32551
10241214      <info name="release" value="20030208"/>
10251215      <info name="alt_title" value="ロックマンエグゼ ワンダースワン"/>
10261216      <part name="cart" interface="wswan_cart">
1217         <feature name="slot" value="ws_sram" />
10271218         <dataarea name="rom" size="4194304">
10281219            <rom name="swj-banc35.bin" size="4194304" crc="658c4b98" sha1="b4a3ff3b72639f27d1a6f449b0335074aeb9e603" offset="000000" />
10291220         </dataarea>
1221         <dataarea name="sram" size="0x8000">
1222         </dataarea>
10301223      </part>
10311224   </software>
10321225
r32550r32551
10391232      <info name="release" value="20030808"/>
10401233      <info name="alt_title" value="ロックマンエグゼ N1バトル"/>
10411234      <part name="cart" interface="wswan_cart">
1235         <feature name="slot" value="ws_sram" />
10421236         <dataarea name="rom" size="4194304">
10431237            <rom name="swj-cpcc01.bin" size="4194304" crc="1f10ca75" sha1="9b4786adca7b83fe66a9d4b9fd4ffaf32abe7656" offset="000000" />
10441238         </dataarea>
1239         <dataarea name="sram" size="0x8000">
1240         </dataarea>
10451241      </part>
10461242   </software>
10471243
r32550r32551
10541250      <info name="release" value="20011220"/>
10551251      <info name="alt_title" value="ロマンシング サ・ガ"/>
10561252      <part name="cart" interface="wswan_cart">
1253         <feature name="slot" value="ws_sram" />
10571254         <dataarea name="rom" size="4194304">
10581255            <rom name="swj-sqrc07.bin" size="4194304" crc="9c98d97d" sha1="06fcc9aad3ae478db6eed27621af4f56a6488a67" offset="000000" />
10591256         </dataarea>
1257         <dataarea name="sram" size="0x8000">
1258         </dataarea>
10601259      </part>
10611260   </software>
10621261
r32550r32551
10691268      <info name="release" value="20020207"/>
10701269      <info name="alt_title" value="ランディム Return To Earth"/>
10711270      <part name="cart" interface="wswan_cart">
1271         <feature name="slot" value="ws_sram" />
10721272         <dataarea name="rom" size="2097152">
10731273            <rom name="swj-ddjc01.bin" size="2097152" crc="15c4552e" sha1="3a41a3b8fc126da07e2a82c21056a45c15efbc98" offset="000000" />
10741274         </dataarea>
1275         <dataarea name="sram" size="0x8000">
1276         </dataarea>
10751277      </part>
10761278   </software>
10771279
r32550r32551
10831285      <info name="serial" value="SWJ-BANC0A"/>
10841286      <info name="release" value="20010315"/>
10851287      <info name="alt_title" value="SDガンダム英雄伝 ~騎士伝説~"/>
1086      <!-- 256k SRAM -->
10871288      <part name="cart" interface="wswan_cart">
1289         <feature name="slot" value="ws_sram" />
10881290         <dataarea name="rom" size="4194304">
10891291            <rom name="swj-banc0a.bin" size="4194304" crc="c60e5162" sha1="ebd4b37ade6df717f7b637747a4d3c45a6cca037" offset="000000" />
10901292         </dataarea>
1293         <dataarea name="sram" size="0x8000">
1294         </dataarea>
10911295      </part>
10921296   </software>
10931297
r32550r32551
10991303      <info name="serial" value="SWJ-BANC0B"/>
11001304      <info name="release" value="20010315"/>
11011305      <info name="alt_title" value="SDガンダム英雄伝 ~武者伝説~"/>
1102      <!-- 256k SRAM -->
11031306      <part name="cart" interface="wswan_cart">
1307         <feature name="slot" value="ws_sram" />
11041308         <dataarea name="rom" size="4194304">
11051309            <rom name="swj-banc0b.bin" size="4194304" crc="18ecffb8" sha1="d8097e25431f0ad5183b2479ee0837599677a300" offset="000000" />
11061310         </dataarea>
1311         <dataarea name="sram" size="0x8000">
1312         </dataarea>
11071313      </part>
11081314   </software>
11091315
r32550r32551
11161322      <info name="release" value="20010614"/>
11171323      <info name="alt_title" value="SDガンダム Gジェネレーション ギャザービート2"/>
11181324      <part name="cart" interface="wswan_cart">
1325         <feature name="slot" value="ws_sram" />
11191326         <dataarea name="rom" size="8388608">
11201327            <rom name="swj-banc12.bin" size="8388608" crc="4d21a347" sha1="016ff46509cbfe57a7440a1755d3a41ef49c048f" offset="000000" />
11211328         </dataarea>
1329         <dataarea name="sram" size="0x8000">
1330         </dataarea>
11221331      </part>
11231332   </software>
11241333
r32550r32551
11311340      <info name="release" value="20020926"/>
11321341      <info name="alt_title" value="SDガンダム ジージェネレーション モノアイガンダムズ"/>
11331342      <part name="cart" interface="wswan_cart">
1343         <feature name="slot" value="ws_sram" />
11341344         <dataarea name="rom" size="8388608">
11351345            <rom name="swj-banc2f.bin" size="8388608" crc="6aca1f04" sha1="91e087056207fce21e782e25e383c203bc046897" offset="000000" />
11361346         </dataarea>
1347         <dataarea name="sram" size="0x8000">
1348         </dataarea>
11371349      </part>
11381350   </software>
11391351
r32550r32551
11461358      <info name="release" value="20020216"/>
11471359      <info name="alt_title" value="SDガンダム オペレーション U.C."/>
11481360      <part name="cart" interface="wswan_cart">
1361         <feature name="slot" value="ws_sram" />
11491362         <dataarea name="rom" size="2097152">
11501363            <rom name="swj-banc21.bin" size="2097152" crc="f0acda5c" sha1="152c4d63b1b17f2c717a43efc75d718b614f9ddc" offset="000000" />
11511364         </dataarea>
1365         <dataarea name="sram" size="0x8000">
1366         </dataarea>
11521367      </part>
11531368   </software>
11541369
r32550r32551
11601375      <info name="serial" value="SWJ-BANC04"/>
11611376      <info name="release" value="20001221"/>
11621377      <info name="alt_title" value="仙界伝 弐~TVアニメーション仙界伝封神演義より~"/>
1163      <!-- 256k SRAM -->
11641378      <part name="cart" interface="wswan_cart">
1379         <feature name="slot" value="ws_sram" />
11651380         <dataarea name="rom" size="4194304">
11661381            <rom name="swj-banc04.bin" size="4194304" crc="9f35d00f" sha1="df9e831842072d9af613effbee7162229849de58" offset="000000" />
11671382         </dataarea>
1383         <dataarea name="sram" size="0x8000">
1384         </dataarea>
11681385      </part>
11691386   </software>
11701387
r32550r32551
11771394      <info name="release" value="20020829"/>
11781395      <info name="alt_title" value="シャーマンキング 未来への意志"/>
11791396      <part name="cart" interface="wswan_cart">
1397         <feature name="slot" value="ws_sram" />
11801398         <dataarea name="rom" size="4194304">
11811399            <rom name="swj-banc2d-1.bin" size="4194304" crc="34908cb4" sha1="473195666a633573c777d3be98d7e8f46569c84b" offset="000000" />
11821400         </dataarea>
1401         <dataarea name="sram" size="0x8000">
1402         </dataarea>
11831403      </part>
11841404   </software>
11851405
r32550r32551
11921412      <info name="release" value="20020829"/>
11931413      <info name="alt_title" value="シャーマンキング 未来への意志"/>
11941414      <part name="cart" interface="wswan_cart">
1415         <feature name="slot" value="ws_sram" />
11951416         <dataarea name="rom" size="4194304">
11961417            <rom name="swj-banc2d.bin" size="4194304" crc="6c029674" sha1="1e735d1e83a7bfa06c5c717c7e8a386d55a8e3f0" offset="000000" />
11971418         </dataarea>
1419         <dataarea name="sram" size="0x8000">
1420         </dataarea>
11981421      </part>
11991422   </software>
12001423
r32550r32551
12061429      <info name="serial" value="SWJ-KGTC09"/>
12071430      <info name="release" value="20001209"/>
12081431      <info name="alt_title" value="そろばんぐ"/>
1209      <!-- 256k SRAM -->
12101432      <part name="cart" interface="wswan_cart">
1433         <feature name="slot" value="ws_sram" />
12111434         <dataarea name="rom" size="1048576">
12121435            <rom name="swj-kgtc09.bin" size="1048576" crc="0e467d97" sha1="983582fe8d18839df30b6d29fb75780a9e32f4ec" offset="000000" />
12131436         </dataarea>
1437         <dataarea name="sram" size="0x8000">
1438         </dataarea>
12141439      </part>
12151440   </software>
12161441
r32550r32551
12231448      <info name="release" value="20030731"/>
12241449      <info name="alt_title" value="聖闘士星矢 黄金伝説編 パーフェクトエディション"/>
12251450      <part name="cart" interface="wswan_cart">
1451         <feature name="slot" value="ws_rom" />
12261452         <dataarea name="rom" size="2097152">
12271453            <rom name="swj-banc3d.bin" size="2097152" crc="6e8a792d" sha1="8542649963efe0976015759382c180b7c056be9a" offset="000000" />
12281454         </dataarea>
r32550r32551
12381464      <info name="release" value="20010827"/>
12391465      <info name="alt_title" value="スターハーツ ~星と大地の使者~"/>
12401466      <part name="cart" interface="wswan_cart">
1467         <feature name="slot" value="ws_sram" />
12411468         <dataarea name="rom" size="4194304">
12421469            <rom name="swj-banc16.bin" size="4194304" crc="138d1018" sha1="2b2c2a0566646156bcdde2a00b728c5b8218aa23" offset="000000" />
12431470         </dataarea>
1471         <dataarea name="sram" size="0x2000">
1472         </dataarea>
12441473      </part>
12451474   </software>
12461475
r32550r32551
12501479      <year>2001</year>
12511480      <publisher>Bandai</publisher>
12521481      <part name="cart" interface="wswan_cart">
1482         <feature name="slot" value="ws_sram" />
12531483         <dataarea name="rom" size="4194304">
12541484            <rom name="star hearts - hoshi to daichi no shisha - taikenban (japan).bin" size="4194304" crc="9874e9a2" sha1="44940ae0140df1bd91d742a166c459df1b6c2339" offset="000000" />
12551485         </dataarea>
1486         <dataarea name="sram" size="0x2000">
1487         </dataarea>
12561488      </part>
12571489   </software>
12581490
r32550r32551
12651497      <info name="release" value="20021031"/>
12661498      <info name="alt_title" value="ナムコスーパーウォーズ"/>
12671499      <part name="cart" interface="wswan_cart">
1500         <feature name="slot" value="ws_sram" />
12681501         <dataarea name="rom" size="2097152">
12691502            <rom name="swj-banc28.bin" size="2097152" crc="8ce4652f" sha1="c48569fd0a46ab7b7ceafeb5698be90420cd4fbe" offset="000000" />
12701503         </dataarea>
1504         <dataarea name="sram" size="0x8000">
1505         </dataarea>
12711506      </part>
12721507   </software>
12731508
r32550r32551
12801515      <info name="release" value="20001221"/>
12811516      <info name="alt_title" value="テラーズ2"/>
12821517      <part name="cart" interface="wswan_cart">
1518         <feature name="slot" value="ws_eeprom" />
12831519         <dataarea name="rom" size="4194304">
12841520            <rom name="swj-banc05.bin" size="4194304" crc="9bd8f08c" sha1="9532113e14b03c95f034c015168e21273d42eff1" offset="000000" />
12851521         </dataarea>
1522         <dataarea name="eeprom" size="0x800">
1523         </dataarea>
12861524      </part>
12871525   </software>
12881526
r32550r32551
12951533      <info name="release" value="20020418"/>
12961534      <info name="alt_title" value="テトリス"/>
12971535      <part name="cart" interface="wswan_cart">
1536         <feature name="slot" value="ws_eeprom" />
12981537         <dataarea name="rom" size="1048576">
12991538            <rom name="swj-vgdc01.bin" size="1048576" crc="7b0caea9" sha1="1a86403d7896d60fcb7a4c09367f5a976c7ea5a5" offset="000000" />
13001539         </dataarea>
1540         <dataarea name="eeprom" size="0x80">
1541         </dataarea>
13011542      </part>
13021543   </software>
13031544
r32550r32551
13101551      <info name="release" value="20010628"/>
13111552      <info name="alt_title" value="東風荘"/>
13121553      <part name="cart" interface="wswan_cart">
1554         <feature name="slot" value="ws_eeprom" />
13131555         <dataarea name="rom" size="1048576">
13141556            <rom name="swj-banc13.bin" size="1048576" crc="47659b2c" sha1="fb53c28bd48174d3829467f1ab81d3f87f9a7f5b" offset="000000" />
13151557         </dataarea>
1558         <dataarea name="eeprom" size="0x80">
1559         </dataarea>
13161560      </part>
13171561   </software>
13181562
r32550r32551
13251569      <info name="release" value="20010208"/>
13261570      <info name="alt_title" value="宇宙戦艦ヤマト"/>
13271571      <part name="cart" interface="wswan_cart">
1572         <feature name="slot" value="ws_sram" />
13281573         <dataarea name="rom" size="4194304">
13291574            <rom name="swj-banc09.bin" size="4194304" crc="5793bdda" sha1="dd1878279a6667fb66dd1ac44a2cdb9a5acbe415" offset="000000" />
13301575         </dataarea>
1576         <dataarea name="sram" size="0x8000">
1577         </dataarea>
13311578      </part>
13321579   </software>
13331580
r32550r32551
13401587      <info name="release" value="20010621"/>
13411588      <info name="alt_title" value="ウルトラマン 光の国の使者"/>
13421589      <part name="cart" interface="wswan_cart">
1590         <feature name="slot" value="ws_sram" />
13431591         <dataarea name="rom" size="2097152">
13441592            <rom name="swj-banc11.bin" size="2097152" crc="de2208ab" sha1="bd107befe5ce6c5508d2da8be351b9984166ae1d" offset="000000" />
13451593         </dataarea>
1594         <dataarea name="sram" size="0x8000">
1595         </dataarea>
13461596      </part>
13471597   </software>
13481598
r32550r32551
13541604      <info name="serial" value="SWJ-BANC06"/>
13551605      <info name="release" value="20010118"/>
13561606      <info name="alt_title" value="ナムコワンダークラシック"/>
1357      <!-- 256k SRAM -->
13581607      <part name="cart" interface="wswan_cart">
1608         <feature name="slot" value="ws_sram" />
13591609         <dataarea name="rom" size="4194304">
13601610            <rom name="swj-banc06.bin" size="4194304" crc="12f10b27" sha1="55b54944efd6e277fa7140925ed2457a8cfb40b8" offset="000000" />
13611611         </dataarea>
1612         <dataarea name="sram" size="0x8000">
1613         </dataarea>
13621614      </part>
13631615   </software>
13641616
r32550r32551
13701622      <info name="serial" value="SWJ-SQRC04"/>
13711623      <info name="release" value="20010329"/>
13721624      <info name="alt_title" value="ワイルドカード"/>
1373      <!-- 256k SRAM -->
13741625      <part name="cart" interface="wswan_cart">
1626         <feature name="slot" value="ws_sram" />
13751627         <dataarea name="rom" size="2097152">
13761628            <rom name="swj-sqrc04.bin" size="2097152" crc="d9401f0a" sha1="ea878a485a20abd5251065fd66e82d9d8b8a669d" offset="000000" />
13771629         </dataarea>
1630         <dataarea name="sram" size="0x8000">
1631         </dataarea>
13781632      </part>
13791633   </software>
13801634
r32550r32551
13871641      <info name="release" value="20010125"/>
13881642      <info name="alt_title" value="ウィズ・ユー ~みつめていたい~"/>
13891643      <part name="cart" interface="wswan_cart">
1644         <feature name="slot" value="ws_eeprom" />
13901645         <dataarea name="rom" size="4194304">
13911646            <rom name="swj-shlc01.bin" size="4194304" crc="e14e9d36" sha1="6a4f4a03c367ccf00aa7462191c929a2736eb44b" offset="000000" />
13921647         </dataarea>
1648         <dataarea name="eeprom" size="0x800">
1649         </dataarea>
13931650      </part>
13941651   </software>
13951652
r32550r32551
14011658      <info name="serial" value="SWJ-BANC0C"/>
14021659      <info name="release" value="20010301"/>
14031660      <info name="alt_title" value="ウィザードリィ シナリオ1 狂王の試練場"/>
1404      <!-- 256k SRAM -->
14051661      <part name="cart" interface="wswan_cart">
1662         <feature name="slot" value="ws_sram" />
14061663         <dataarea name="rom" size="2097152">
14071664            <rom name="swj-banc0c.bin" size="2097152" crc="15e55706" sha1="c1ad383d337dba8a63295cfb8c7ca8470c893c67" offset="000000" />
14081665         </dataarea>
1666         <dataarea name="sram" size="0x8000">
1667         </dataarea>
14091668      </part>
14101669   </software>
14111670
r32550r32551
14181677      <info name="release" value="200206??"/>
14191678      <info name="alt_title" value="エックス カード オブ フェイト"/>
14201679      <part name="cart" interface="wswan_cart">
1680         <feature name="slot" value="ws_eeprom" />
14211681         <dataarea name="rom" size="4194304">
14221682            <rom name="swj-banc2c.bin" size="4194304" crc="66b617d5" sha1="c1ab4e24f261615ca59f937b866fcf7047b67796" offset="000000" />
14231683         </dataarea>
1684         <dataarea name="eeprom" size="0x800">
1685         </dataarea>
14241686      </part>
14251687   </software>
14261688
r32550r32551
14331695      <info name="release" value="20011220"/>
14341696      <info name="alt_title" value="サイ リトル"/>
14351697      <part name="cart" interface="wswan_cart">
1698         <feature name="slot" value="ws_sram" />
14361699         <dataarea name="rom" size="2097152">
14371700            <rom name="swj-banc1f.bin" size="2097152" crc="25e2ba75" sha1="97c29917a78918a6905fd61a1466971cfd2a33c6" offset="000000" />
14381701         </dataarea>
1702         <dataarea name="sram" size="0x8000">
1703         </dataarea>
14391704      </part>
14401705   </software>
14411706
trunk/hash/wswan.xml
r32550r32551
99      <info name="serial" value="SWJ-SUM004"/>
1010      <info name="release" value="19990624"/>
1111      <info name="alt_title" value="アンカーズ・フィールド"/>
12      <!-- 64k SRAM -->
1312      <part name="cart" interface="wswan_cart">
13         <feature name="slot" value="ws_sram" />
1414         <dataarea name="rom" size="1048576">
1515            <rom name="swj-sum004.bin" size="1048576" crc="425eb893" sha1="06447c248afce04c4f4a1c3b5f7a4ab6f383c94b" offset="000000" />
1616         </dataarea>
17         <dataarea name="sram" size="0x2000">
18         </dataarea>
1719      </part>
1820   </software>
1921
r32550r32551
2426      <info name="serial" value="SWJ-SUM003"/>
2527      <info name="release" value="19991118"/>
2628      <info name="alt_title" value="アーマードユニット"/>
27      <!-- 64k SRAM -->
2829      <part name="cart" interface="wswan_cart">
30         <feature name="slot" value="ws_sram" />
2931         <dataarea name="rom" size="524288">
3032            <rom name="swj-sum003.bin" size="524288" crc="c11639af" sha1="ae5e4f06f07fe13a48f414a1cd437a816e9ad2e7" offset="000000" />
3133         </dataarea>
34         <dataarea name="sram" size="0x2000">
35         </dataarea>
3236      </part>
3337   </software>
3438
r32550r32551
3943      <info name="serial" value="SWJ-KGT003"/>
4044      <info name="release" value="19991229"/>
4145      <info name="alt_title" value="爆走デコトラ伝説 フォー ワンダースワン"/>
42      <!-- 64k SRAM -->
4346      <part name="cart" interface="wswan_cart">
47         <feature name="slot" value="ws_sram" />
4448         <dataarea name="rom" size="2097152">
4549            <rom name="swj-kgt003.bin" size="2097152" crc="392dd813" sha1="821bb81917445b63ac663c706ab4ce27de28543f" offset="000000" />
4650         </dataarea>
51         <dataarea name="sram" size="0x2000">
52         </dataarea>
4753      </part>
4854   </software>
4955
r32550r32551
5460      <info name="serial" value="SWJ-KNM001"/>
5561      <info name="release" value="19990428"/>
5662      <info name="alt_title" value="ビートマニア for ワンダースワン"/>
57      <!-- 256k SRAM -->
5863      <part name="cart" interface="wswan_cart">
64         <feature name="slot" value="ws_sram" />
5965         <dataarea name="rom" size="16777216">
6066            <rom name="swj-knm001.bin" size="16777216" crc="324622c9" sha1="544e76133fa53fc0ae5e00e3465b9cf634f14fd0" offset="000000" />
6167         </dataarea>
68         <dataarea name="sram" size="0x8000">
69         </dataarea>
6270      </part>
6371   </software>
6472
r32550r32551
6977      <info name="serial" value="SWJ-BAN01B"/>
7078      <info name="release" value="19991209"/>
7179      <info name="alt_title" value="バッファーズエボリューション"/>
72      <!-- 16k EEPROM -->
7380      <part name="cart" interface="wswan_cart">
81         <feature name="slot" value="ws_eeprom" />
7482         <dataarea name="rom" size="4194304">
7583            <rom name="swj-ban01b.bin" size="4194304" crc="b25a0635" sha1="35eea568f756bacf533bb9aaad7e3239ba00e411" offset="000000" />
7684         </dataarea>
85         <dataarea name="eeprom" size="0x800">
86         </dataarea>
7787      </part>
7888   </software>
7989
r32550r32551
8595      <info name="release" value="19990729"/>
8696      <info name="alt_title" value="クレイジー・クライマー"/>
8797      <part name="cart" interface="wswan_cart">
98         <feature name="slot" value="ws_rom" />
8899         <dataarea name="rom" size="524288">
89100            <rom name="swj-nhb001.bin" size="524288" crc="c995274b" sha1="67a80b7fb00c3afe0ce9b0f8975c6d250a2cd49d" offset="000000" />
90101         </dataarea>
r32550r32551
98109      <info name="serial" value="SWJ-BAN01A"/>
99110      <info name="release" value="19991202"/>
100111      <info name="alt_title" value="カードキャプターさくら ~さくらとふしぎなクロウカード~"/>
101      <!-- 256k SRAM -->
102112      <part name="cart" interface="wswan_cart">
113         <feature name="slot" value="ws_sram" />
103114         <dataarea name="rom" size="2097152">
104115            <rom name="swj-ban01a.bin" size="2097152" crc="7f3a14c0" sha1="39e9a897b681b2c326b052827d7c534f22290286" offset="000000" />
105116         </dataarea>
117         <dataarea name="sram" size="0x8000">
118         </dataarea>
106119      </part>
107120   </software>
108121
r32550r32551
113126      <info name="serial" value="SWJ-BAN00B"/>
114127      <info name="release" value="19990610"/>
115128      <info name="alt_title" value="カオスギア 導かれし者"/>
116      <!-- 256k SRAM -->
117129      <part name="cart" interface="wswan_cart">
130         <feature name="slot" value="ws_sram" />
118131         <dataarea name="rom" size="2097152">
119132            <rom name="swj-ban00b.bin" size="2097152" crc="27b3cc18" sha1="e212bba4fac51bbfcf440966da0e67b1686dcfc5" offset="000000" />
120133         </dataarea>
134         <dataarea name="sram" size="0x8000">
135         </dataarea>
121136      </part>
122137   </software>
123138
r32550r32551
128143      <info name="serial" value="SWJ-BAN002"/>
129144      <info name="release" value="19990304"/>
130145      <info name="alt_title" value="チョコボの不思議なダンジョン for ワンダースワン"/>
131      <!-- 256k SRAM -->
132146      <part name="cart" interface="wswan_cart">
147         <feature name="slot" value="ws_sram" />
133148         <dataarea name="rom" size="2097152">
134149            <rom name="swj-ban002.bin" size="2097152" crc="ccaa4853" sha1="3b62fd2841602f1077270848ab7a3aad58712ee9" offset="000000" />
135150         </dataarea>
151         <dataarea name="sram" size="0x8000">
152         </dataarea>
136153      </part>
137154   </software>
138155
r32550r32551
143160      <info name="serial" value="SWJ-BAN023"/>
144161      <info name="release" value="20000210"/>
145162      <info name="alt_title" value="超兄貴 男の魂札"/>
146      <!-- 256k SRAM -->
147163      <part name="cart" interface="wswan_cart">
164         <feature name="slot" value="ws_sram" />
148165         <dataarea name="rom" size="1048576">
149166            <rom name="swj-ban023.bin" size="1048576" crc="7fff2520" sha1="eb538b82c5516fae8ce38778e41fb118aa5c830f" offset="000000" />
150167         </dataarea>
168         <dataarea name="sram" size="0x8000">
169         </dataarea>
151170      </part>
152171   </software>
153172
r32550r32551
159178      <info name="release" value="19991216"/>
160179      <info name="alt_title" value="超伝奇カードバトル 妖符魔界 菊地秀行"/>
161180      <part name="cart" interface="wswan_cart">
181         <feature name="slot" value="ws_sram" />
162182         <dataarea name="rom" size="2097152">
163183            <rom name="swj-kbs002.bin" size="2097152" crc="56e2c069" sha1="c4436a59fd830ba6af2d63462f71e1ab1cfa3212" offset="000000" />
164184         </dataarea>
185         <dataarea name="sram" size="0x2000">
186         </dataarea>
165187      </part>
166188   </software>
167189
r32550r32551
172194      <info name="serial" value="SWJ-KGT002"/>
173195      <info name="release" value="19991209"/>
174196      <info name="alt_title" value="クロックタワー フォー ワンダースワン"/>
175      <!-- 256k SRAM -->
176197      <part name="cart" interface="wswan_cart">
198         <feature name="slot" value="ws_sram" />
177199         <dataarea name="rom" size="2097152">
178200            <rom name="swj-kgt002.bin" size="2097152" crc="a9936941" sha1="4ba44f23d3b43ee730ce34d56f4cadaf429b6d1b" offset="000000" />
179201         </dataarea>
202         <dataarea name="sram" size="0x8000">
203         </dataarea>
180204      </part>
181205   </software>
182206
r32550r32551
188212      <info name="release" value="19991007"/>
189213      <info name="alt_title" value="電車でGO ! 2"/>
190214      <part name="cart" interface="wswan_cart">
215         <feature name="slot" value="ws_rom" />
191216         <dataarea name="rom" size="4194304">
192217            <rom name="swj-cft001.bin" size="4194304" crc="af9d8f42" sha1="c07f776ac4374b648d1a49efd9d6fcd0db2ac1fa" offset="000000" />
193218         </dataarea>
r32550r32551
202227      <info name="release" value="19990304"/>
203228      <info name="alt_title" value="電車でGO!"/>
204229      <part name="cart" interface="wswan_cart">
230         <feature name="slot" value="ws_rom" />
205231         <dataarea name="rom" size="4194304">
206232            <rom name="swj-tat001.bin" size="4194304" crc="b62e5dd0" sha1="d3da0ae529c6f78162682141154a95879f288ca7" offset="000000" />
207233         </dataarea>
r32550r32551
215241      <info name="serial" value="SWJ-BAN032"/>
216242      <info name="release" value="20000803"/>
217243      <info name="alt_title" value="デジモンアドベンチャー02 タッグテイマーズ"/>
218      <!-- 256k SRAM -->
219244      <part name="cart" interface="wswan_cart">
245         <feature name="slot" value="ws_sram" />
220246         <dataarea name="rom" size="2097152">
221247            <rom name="swj-ban032.bin" size="2097152" crc="6ededaf8" sha1="44a5502b70ea75926b87377e3f634c8093bc574a" offset="000000" />
222248         </dataarea>
249         <dataarea name="sram" size="0x8000">
250         </dataarea>
223251      </part>
224252   </software>
225253
r32550r32551
230258      <info name="serial" value="SWJ-BAN01C"/>
231259      <info name="release" value="19991216"/>
232260      <info name="alt_title" value="デジモンアドベンチャー アノードテイマー"/>
233      <!-- 256k SRAM -->
234261      <part name="cart" interface="wswan_cart">
262         <feature name="slot" value="ws_sram" />
235263         <dataarea name="rom" size="2097152">
236264            <rom name="swj-ban01c.bin" size="2097152" crc="6e9dd148" sha1="9db54826c2887dea07aac774bd15e092596e37af" offset="000000" />
237265         </dataarea>
266         <dataarea name="sram" size="0x8000">
267         </dataarea>
238268      </part>
239269   </software>
240270
r32550r32551
245275      <info name="serial" value="SWJ-BAN01D"/>
246276      <info name="release" value="20000120"/>
247277      <info name="alt_title" value="デジモンアドベンチャー カソードテイマー"/>
248      <!-- 256k SRAM -->
249278      <part name="cart" interface="wswan_cart">
279         <feature name="slot" value="ws_sram" />
250280         <dataarea name="rom" size="2097152">
251281            <rom name="swj-ban01d.bin" size="2097152" crc="42ad238b" sha1="0b54cc1d350ab92c42ce8214784389b994562bf6" offset="000000" />
252282         </dataarea>
283         <dataarea name="sram" size="0x8000">
284         </dataarea>
253285      </part>
254286   </software>
255287
r32550r32551
261293      <info name="release" value="19990325"/>
262294      <info name="alt_title" value="デジタルモンスター バージョン ワンダースワン"/>
263295      <part name="cart" interface="wswan_cart">
296         <feature name="slot" value="ws_sram" />
264297         <dataarea name="rom" size="2097152">
265298            <rom name="swj-ban005.bin" size="2097152" crc="ab59de2e" sha1="ecea24db6e65254ab4d6e312de0eb951c7df716f" offset="000000" />
266299         </dataarea>
300         <dataarea name="sram" size="0x8000">
301         </dataarea>
267302      </part>
268303   </software>
269304
r32550r32551
273308      <year>19??</year>
274309      <publisher>Bandai</publisher>
275310      <info name="serial" value="SWJ-BAN001"/>
276      <!-- 256k SRAM -->
277311      <part name="cart" interface="wswan_cart">
312         <feature name="slot" value="ws_sram" />
278313         <dataarea name="rom" size="2097152">
279314            <rom name="swj-ban001asia.bin" size="2097152" crc="94ea6ffc" sha1="5cc59ec1687fe83ec5fb048d3dfc37849747df34" offset="000000" />
280315         </dataarea>
316         <dataarea name="sram" size="0x8000">
317         </dataarea>
281318      </part>
282319   </software>
283320
r32550r32551
289326      <info name="release" value="20000525"/>
290327      <info name="alt_title" value="デジモンアドベンチャー02 デジタルパートナー"/>
291328      <part name="cart" interface="wswan_cart">
329         <feature name="slot" value="ws_sram" />
292330         <dataarea name="rom" size="2097152">
293331            <rom name="swj-ban02c.bin" size="2097152" crc="b5e675ae" sha1="c622f6742ca3f0129fc12dce0a1c17d292388ffb" offset="000000" />
294332         </dataarea>
333         <dataarea name="sram" size="0x2000">
334         </dataarea>
295335      </part>
296336   </software>
297337
r32550r32551
303343      <info name="release" value="20000106"/>
304344      <info name="alt_title" value="どこでもハムスター"/>
305345      <part name="cart" interface="wswan_cart">
346         <feature name="slot" value="ws_sram" />
306347         <dataarea name="rom" size="1048576">
307348            <rom name="sw-bec003.bin" size="1048576" crc="89e7d950" sha1="3d5a1ed77e721908eb1145aaedef17c0ee6355ae" offset="000000" />
308349         </dataarea>
350         <dataarea name="sram" size="0x8000">
351         </dataarea>
309352      </part>
310353   </software>
311354
r32550r32551
316359      <info name="serial" value="SWJ-BAN01E"/>
317360      <info name="release" value="19991222"/>
318361      <info name="alt_title" value="たねをまく鳥 / boxart: D'sGarage21公募ゲーム たねをまく鳥 (D's Garage 21 Koubo Game - Tane o Maku Tori)"/>
319      <!-- 1k EEPROM -->
320362      <part name="cart" interface="wswan_cart">
363         <feature name="slot" value="ws_eeprom" />
321364         <dataarea name="rom" size="1048576">
322365            <rom name="swj-ban01e.bin" size="1048576" crc="b1caec06" sha1="83e190af2e25fbb3e93b1d5835c52fe6f1d279ce" offset="000000" />
323366         </dataarea>
367         <dataarea name="eeprom" size="0x80">
368         </dataarea>
324369      </part>
325370   </software>
326371
r32550r32551
331376      <info name="serial" value="SWJ-NAP001"/>
332377      <info name="release" value="19991028"/>
333378      <info name="alt_title" value="えんがちょ! for ワンダースワン"/>
334      <!-- 1k EEPROM -->
335379      <part name="cart" interface="wswan_cart">
380         <feature name="slot" value="ws_eeprom" />
336381         <dataarea name="rom" size="1048576">
337382            <rom name="swj-nap001.bin" size="1048576" crc="4e467626" sha1="f79451034b6d844f0e10c825306bbc26f26a5466" offset="000000" />
338383         </dataarea>
384         <dataarea name="eeprom" size="0x80">
385         </dataarea>
339386      </part>
340387   </software>
341388
r32550r32551
346393      <info name="serial" value="SWJ-BAN00E"/>
347394      <info name="release" value="19990722"/>
348395      <info name="alt_title" value="新世紀エヴァンゲリオン シト育成"/>
349      <!-- 256k SRAM -->
350396      <part name="cart" interface="wswan_cart">
397         <feature name="slot" value="ws_sram" />
351398         <dataarea name="rom" size="2097152">
352399            <rom name="swj-ban00e.bin" size="2097152" crc="bf8d9212" sha1="ae31488cee1c91f383efbe3083b4abec092dda36" offset="000000" />
353400         </dataarea>
401         <dataarea name="sram" size="0x8000">
402         </dataarea>
354403      </part>
355404   </software>
356405
r32550r32551
361410      <info name="serial" value="SWJ-BEC002"/>
362411      <info name="release" value="19991209"/>
363412      <info name="alt_title" value="フィーバー サンキョー 公式パチンコシミュレーション フォー ワンダースワン"/>
364      <!-- 1k EEPROM -->
365413      <part name="cart" interface="wswan_cart">
414         <feature name="slot" value="ws_eeprom" />
366415         <dataarea name="rom" size="2097152">
367416            <rom name="swj-bec002.bin" size="2097152" crc="8922dd0b" sha1="f26b0215c49e04cb8ef6f031b627dff6a49d2015" offset="000000" />
368417         </dataarea>
418         <dataarea name="eeprom" size="0x80">
419         </dataarea>
369420      </part>
370421   </software>
371422
r32550r32551
376427      <info name="serial" value="SWJ-BEC004"/>
377428      <info name="release" value="20000224"/>
378429      <info name="alt_title" value="フィッシングフリークス バスライズ フォー ワンダースワン"/>
379      <!-- 256k SRAM -->
380430      <part name="cart" interface="wswan_cart">
431         <feature name="slot" value="ws_sram" />
381432         <dataarea name="rom" size="1048576">
382433            <rom name="swj-bec004.bin" size="1048576" crc="a1fb16fc" sha1="f8f077da30f227f3793e97c7f1d656559f08b9d4" offset="000000" />
383434         </dataarea>
435         <dataarea name="sram" size="0x8000">
436         </dataarea>
384437      </part>
385438   </software>
386439
r32550r32551
391444      <info name="serial" value="SWJ-BAN026"/>
392445      <info name="release" value="20000323"/>
393446      <info name="alt_title" value="ファイナルラップ2000"/>
394      <!-- 16k EEPROM -->
395447      <part name="cart" interface="wswan_cart">
448         <feature name="slot" value="ws_eeprom" />
396449         <dataarea name="rom" size="1048576">
397450            <rom name="swj-ban026.bin" size="1048576" crc="ce2f1a1d" sha1="cfcb14be6d2f1dbffdfcefb8c8d83b4f39bc102b" offset="000000" />
398451         </dataarea>
452         <dataarea name="eeprom" size="0x800">
453         </dataarea>
399454      </part>
400455   </software>
401456
r32550r32551
406461      <info name="serial" value="SWJ-KGT007"/>
407462      <info name="release" value="20000831"/>
408463      <info name="alt_title" value="ファイヤープロレスリング フォー ワンダースワン"/>
409      <!-- 256k SRAM -->
410464      <part name="cart" interface="wswan_cart">
465         <feature name="slot" value="ws_sram" />
411466         <dataarea name="rom" size="4194304">
412467            <rom name="swj-kgt007.bin" size="4194304" crc="f246a68e" sha1="fbb745b016cc710ff6f82ec3091a181415d8de61" offset="000000" />
413468         </dataarea>
469         <dataarea name="sram" size="0x8000">
470         </dataarea>
414471      </part>
415472   </software>
416473
r32550r32551
422479      <info name="release" value="19990415"/>
423480      <info name="alt_title" value="元祖じゃじゃ丸くん"/>
424481      <part name="cart" interface="wswan_cart">
482         <feature name="slot" value="ws_rom" />
425483         <dataarea name="rom" size="524288">
426484            <rom name="swj-jlc001.bin" size="524288" crc="a193458c" sha1="cbf6455e89b20a000b6121e5c485be1a20d1f726" offset="000000" />
427485         </dataarea>
r32550r32551
436494      <info name="release" value="20000629"/>
437495      <info name="alt_title" value="グローカルヘキサイト"/>
438496      <part name="cart" interface="wswan_cart">
497         <feature name="slot" value="ws_rom" />
439498         <dataarea name="rom" size="524288">
440499            <rom name="swj-kgt008.bin" size="524288" crc="8fcd6d2c" sha1="e100d54e5c63512dbd655f0439870e08ced439dd" offset="000000" />
441500         </dataarea>
r32550r32551
449508      <info name="serial" value="SWJ-SUM006"/>
450509      <info name="release" value="20000113"/>
451510      <info name="alt_title" value="五目並べ&amp;リバーシ 登龍門"/>
452      <!-- 256k SRAM -->
453511      <part name="cart" interface="wswan_cart">
512         <feature name="slot" value="ws_sram" />
454513         <dataarea name="rom" size="524288">
455514            <rom name="swj-sum006.bin" size="524288" crc="6cd1411e" sha1="867f23963e33b26a781aa96851748e483e41fcad" offset="000000" />
456515         </dataarea>
516         <dataarea name="sram" size="0x8000">
517         </dataarea>
457518      </part>
458519   </software>
459520
r32550r32551
465526      <info name="release" value="19990401"/>
466527      <info name="alt_title" value="語楽王 タンゴ !"/>
467528      <part name="cart" interface="wswan_cart">
529         <feature name="slot" value="ws_eeprom" />
468530         <dataarea name="rom" size="1048576">
469531            <rom name="swj-paw001.bin" size="1048576" crc="00137e86" sha1="af3fe9da3f5ee0f5a7b06b0440223db88fcb3bf2" offset="000000" />
470532         </dataarea>
533         <dataarea name="eeprom" size="0x400">
534         </dataarea>
471535      </part>
472536   </software>
473537
r32550r32551
478542      <info name="serial" value="SWJ-BAN015"/>
479543      <info name="release" value="19990826"/>
480544      <info name="alt_title" value="機動戦士ガンダム エムエスバーサス"/>
481      <!-- 256k SRAM -->
482545      <part name="cart" interface="wswan_cart">
546         <feature name="slot" value="ws_sram" />
483547         <dataarea name="rom" size="2097152">
484548            <rom name="swj-ban015.bin" size="2097152" crc="53b9fef8" sha1="2688ca67ac31ce3d5c3523b0e11cad55e70fa257" offset="000000" />
485549         </dataarea>
550         <dataarea name="sram" size="0x8000">
551         </dataarea>
486552      </part>
487553   </software>
488554
r32550r32551
493559      <info name="serial" value="SWJ-BAN010"/>
494560      <info name="release" value="19990304"/>
495561      <info name="alt_title" value="グンペイ"/>
496      <!-- 16k EEPROM -->
497562      <part name="cart" interface="wswan_cart">
563         <feature name="slot" value="ws_eeprom" />
498564         <dataarea name="rom" size="1048576">
499565            <rom name="swj-ban010.bin" size="1048576" crc="a1656bbb" sha1="ee4b777f029bac9561e60c19407d08360e733822" offset="000000" />
500566         </dataarea>
567         <dataarea name="eeprom" size="0x800">
568         </dataarea>
501569      </part>
502570   </software>
503571
r32550r32551
508576      <info name="serial" value="SWJ-KGT005"/>
509577      <info name="release" value="20000217"/>
510578      <info name="alt_title" value="花札しようよ"/>
511      <!-- 256k SRAM -->
512579      <part name="cart" interface="wswan_cart">
580         <feature name="slot" value="ws_sram" />
513581         <dataarea name="rom" size="524288">
514582            <rom name="swj-kgt005.bin" size="524288" crc="8e027330" sha1="4504b62212e1637dfd92e4f985a8497fa38941cd" offset="000000" />
515583         </dataarea>
584         <dataarea name="sram" size="0x8000">
585         </dataarea>
516586      </part>
517587   </software>
518588
r32550r32551
524594      <info name="release" value="19990513"/>
525595      <info name="alt_title" value="携帯魚群探知機 ワンダースワン ハンディーソナー"/>
526596      <part name="cart" interface="wswan_cart">
597         <feature name="slot" value="ws_rom" />
527598         <dataarea name="rom" size="1048576">
528599            <rom name="swj-ban00f.bin" size="1048576" crc="2ab9852d" sha1="70d65a936ee1dfc2b89c543312c205285d955efb" offset="000000" />
529600         </dataarea>
r32550r32551
537608      <info name="serial" value="SWJ-SRV001"/>
538609      <info name="release" value="19991007"/>
539610      <info name="alt_title" value="ハロボッツ"/>
540      <!-- 64k SRAM -->
541611      <part name="cart" interface="wswan_cart">
612         <feature name="slot" value="ws_sram" />
542613         <dataarea name="rom" size="2097152">
543614            <rom name="swj-srv001.bin" size="2097152" crc="aa525c04" sha1="1f42c5694a798de8ff3c68f63dfc7395be1669a5" offset="000000" />
544615         </dataarea>
616         <dataarea name="sram" size="0x2000">
617         </dataarea>
545618      </part>
546619   </software>
547620
r32550r32551
553626      <info name="release" value="20000601"/>
554627      <info name="alt_title" value="ハンター×ハンター 意志を継ぐ者"/>
555628      <part name="cart" interface="wswan_cart">
629         <feature name="slot" value="ws_eeprom" />
556630         <dataarea name="rom" size="4194304">
557631            <rom name="swj-ban02a.bin" size="4194304" crc="70aa800e" sha1="57b4278fc5812f52413ca65f45225922d4f2ec3d" offset="000000" />
558632         </dataarea>
633         <dataarea name="eeprom" size="0x800">
634         </dataarea>
559635      </part>
560636   </software>
561637
r32550r32551
567643      <info name="release" value="20000304"/>
568644      <info name="alt_title" value="うずまき 呪いシミュレーション"/>
569645      <part name="cart" interface="wswan_cart">
646         <feature name="slot" value="ws_eeprom" />
570647         <dataarea name="rom" size="2097152">
571648            <rom name="swj-omm002.bin" size="2097152" crc="ca3f0b00" sha1="38f708a4c0c4fcec0cf4d6ce051d1ff76466d617" offset="000000" />
572649         </dataarea>
650         <dataarea name="eeprom" size="0x800">
651         </dataarea>
573652      </part>
574653   </software>
575654
r32550r32551
581660      <info name="release" value="19990930"/>
582661      <info name="alt_title" value="格闘料理伝説 ビストロレシピ ワンダーバトル編"/>
583662      <part name="cart" interface="wswan_cart">
663         <feature name="slot" value="ws_sram" />
584664         <dataarea name="rom" size="1048576">
585665            <rom name="swj-bpr002.bin" size="1048576" crc="4d103236" sha1="b40fbc7b72921c9ac31330831c0f77e4133ec7d6" offset="000000" />
586666         </dataarea>
667         <dataarea name="sram" size="0x2000">
668         </dataarea>
587669      </part>
588670   </software>
589671
r32550r32551
595677      <info name="release" value="19990914"/>
596678      <info name="alt_title" value="競馬予想支援ソフト 予想進化論"/>
597679      <part name="cart" interface="wswan_cart">
680         <feature name="slot" value="ws_sram" />
598681         <dataarea name="rom" size="524288">
599682            <rom name="swj-mde001.bin" size="524288" crc="945fc213" sha1="461f87e6e301b0dbb6324d908d4ca7efd7518e20" offset="000000" />
600683         </dataarea>
684         <dataarea name="sram" size="0x8000">
685         </dataarea>
601686      </part>
602687   </software>
603688
r32550r32551
608693      <info name="serial" value="SWJ-KDX001"/>
609694      <info name="release" value="19991202"/>
610695      <info name="alt_title" value="キスより... ~シーサイドセレナーデ~"/>
611      <!-- 64k SRAM -->
612696      <part name="cart" interface="wswan_cart">
697         <feature name="slot" value="ws_sram" />
613698         <dataarea name="rom" size="2097152">
614699            <rom name="swj-kdx001.bin" size="2097152" crc="3b4c60c6" sha1="9ef89b6fe68c5a06d34344e8c783ec24114ad959" offset="000000" />
615700         </dataarea>
701         <dataarea name="sram" size="0x2000">
702         </dataarea>
616703      </part>
617704   </software>
618705
r32550r32551
623710      <info name="serial" value="SWJ-BAN008"/>
624711      <info name="release" value="19990520"/>
625712      <info name="alt_title" value="風のクロノアムーンライトミュージアム"/>
626      <!-- 64k SRAM -->
627713      <part name="cart" interface="wswan_cart">
714         <feature name="slot" value="ws_sram" />
628715         <dataarea name="rom" size="1048576">
629716            <rom name="swj-ban008.bin" size="1048576" crc="80c6ef12" sha1="207a3ceb9a09eabca6e455deeb7035e7e04c9795" offset="000000" />
630717         </dataarea>
718         <dataarea name="sram" size="0x2000">
719         </dataarea>
631720      </part>
632721   </software>
633722
r32550r32551
639728      <info name="release" value="19990415"/>
640729      <info name="alt_title" value="子育てクイズ どこでもマイエンジェル"/>
641730      <part name="cart" interface="wswan_cart">
731         <feature name="slot" value="ws_sram" />
642732         <dataarea name="rom" size="2097152">
643733            <rom name="swj-ban007.bin" size="2097152" crc="4c48624c" sha1="52b154a3e36d01357649a9f7f614139ce6cc46b8" offset="000000" />
644734         </dataarea>
735         <dataarea name="sram" size="0x2000">
736         </dataarea>
645737      </part>
646738   </software>
647739
r32550r32551
653745      <info name="release" value="19991118"/>
654746      <info name="alt_title" value="競走馬育成シミュレーション ケイバ"/>
655747      <part name="cart" interface="wswan_cart">
748         <feature name="slot" value="ws_sram" />
656749         <dataarea name="rom" size="1048576">
657750            <rom name="swj-bec001.bin" size="1048576" crc="ecfbcb1d" sha1="a309a430fbbed6c42f41d8ccaf4aba82e96d6a7b" offset="000000" />
658751         </dataarea>
752         <dataarea name="sram" size="0x8000">
753         </dataarea>
659754      </part>
660755   </software>
661756
r32550r32551
666761      <info name="serial" value="SWJ-BAN024"/>
667762      <info name="release" value="20000309"/>
668763      <info name="alt_title" value="ラングリッサーミレニアム WS ~The LastCentury~"/>
669      <!-- 256k SRAM -->
670764      <part name="cart" interface="wswan_cart">
765         <feature name="slot" value="ws_sram" />
671766         <dataarea name="rom" size="1048576">
672767            <rom name="swj-ban024.bin" size="1048576" crc="9e0854e2" sha1="9fdf3f5821f2a4488139525fe49e87b23de4571f" offset="000000" />
673768         </dataarea>
769         <dataarea name="sram" size="0x8000">
770         </dataarea>
674771      </part>
675772   </software>
676773
r32550r32551
682779      <info name="release" value="19990527"/>
683780      <info name="alt_title" value="ラストスタンド"/>
684781      <part name="cart" interface="wswan_cart">
782         <feature name="slot" value="ws_sram" />
685783         <dataarea name="rom" size="2097152">
686784            <rom name="sw-ban009.bin" size="2097152" crc="cccaf8a1" sha1="d524da01f2bfad92c2fa080950229955a3030ef2" offset="000000" />
687785         </dataarea>
786         <dataarea name="sram" size="0x8000">
787         </dataarea>
688788      </part>
689789   </software>
690790
r32550r32551
696796      <info name="release" value="20000420"/>
697797      <info name="alt_title" value="ロードランナー フォー ワンダースワン"/>
698798      <part name="cart" interface="wswan_cart">
799         <feature name="slot" value="ws_eeprom" />
699800         <dataarea name="rom" size="524288">
700801            <rom name="swj-bpr004.bin" size="524288" crc="e407cabf" sha1="91595cd5d5192db50eda883157852ff81994990c" offset="000000" />
701802         </dataarea>
803         <dataarea name="eeprom" size="0x800">
804         </dataarea>
702805      </part>
703806   </software>
704807
r32550r32551
710813      <info name="release" value="20000323"/>
711814      <info name="alt_title" value="超時空要塞マクロス トゥルーラブソング"/>
712815      <part name="cart" interface="wswan_cart">
816         <feature name="slot" value="ws_sram" />
713817         <dataarea name="rom" size="4194304">
714818            <rom name="swj-lay001.bin" size="4194304" crc="62d419cd" sha1="211e051db3fd4d7ae1ea143e043f87cfbcec5f1c" offset="000000" />
715819         </dataarea>
820         <dataarea name="sram" size="0x8000">
821         </dataarea>
716822      </part>
717823   </software>
718824
r32550r32551
724830      <info name="release" value="19991014"/>
725831      <info name="alt_title" value="マジカルドロップ for ワンダースワン"/>
726832      <part name="cart" interface="wswan_cart">
833         <feature name="slot" value="ws_rom" />
727834         <dataarea name="rom" size="1048576">
728835            <rom name="swj-dte002.bin" size="1048576" crc="637ada93" sha1="a25944969068ee495254f94c2c48dfffcb66ce8d" offset="000000" />
729836         </dataarea>
r32550r32551
738845      <info name="release" value="19990311"/>
739846      <info name="alt_title" value="麻雀 登龍門"/>
740847      <part name="cart" interface="wswan_cart">
848         <feature name="slot" value="ws_sram" />
741849         <dataarea name="rom" size="1048576">
742850            <rom name="swj-sum001.bin" size="1048576" crc="e7e7fd4c" sha1="281079b22cb213ee4dda5c304b5b5be028130929" offset="000000" />
743851         </dataarea>
852         <dataarea name="sram" size="0x8000">
853         </dataarea>
744854      </part>
745855   </software>
746856
r32550r32551
751861      <info name="serial" value="SWJ-BAN011"/>
752862      <info name="release" value="19990722"/>
753863      <info name="alt_title" value="魔界村 for ワンダースワン"/>
754      <!-- 256k SRAM -->
755864      <part name="cart" interface="wswan_cart">
865         <feature name="slot" value="ws_sram" />
756866         <dataarea name="rom" size="2097152">
757867            <rom name="swj-ban011.bin" size="2097152" crc="00b31fbb" sha1="5eaeab859e5f647fac354dad285a311387ea126b" offset="000000" />
758868         </dataarea>
869         <dataarea name="sram" size="0x8000">
870         </dataarea>
759871      </part>
760872   </software>
761873
r32550r32551
766878      <info name="serial" value="SWJ-BAN012"/>
767879      <info name="release" value="19990805"/>
768880      <info name="alt_title" value="名探偵コナン 魔術師の挑戦状!"/>
769      <!-- 256k SRAM -->
770881      <part name="cart" interface="wswan_cart">
882         <feature name="slot" value="ws_sram" />
771883         <dataarea name="rom" size="1048576">
772884            <rom name="swj-ban012.bin" size="1048576" crc="92fbf7fb" sha1="8f3f97be31f3bd0e6922ab7795aa6f04bc5cfe2a" offset="000000" />
773885         </dataarea>
886         <dataarea name="sram" size="0x8000">
887         </dataarea>
774888      </part>
775889   </software>
776890
r32550r32551
782896      <info name="release" value="20000727"/>
783897      <info name="alt_title" value="名探偵コナン 西の名探偵 最大の危機!?"/>
784898      <part name="cart" interface="wswan_cart">
899         <feature name="slot" value="ws_sram" />
785900         <dataarea name="rom" size="2097152">
786901            <rom name="swj-ban027.bin" size="2097152" crc="e226863b" sha1="e5684789e81f9d739010db575022a12a448b5509" offset="000000" />
787902         </dataarea>
903         <dataarea name="sram" size="0x8000">
904         </dataarea>
788905      </part>
789906   </software>
790907
r32550r32551
796913      <info name="release" value="19990504"/>
797914      <info name="alt_title" value="メダロット パーフェクトエディション - カブトバージョン"/>
798915      <part name="cart" interface="wswan_cart">
916         <feature name="slot" value="ws_sram" />
799917         <dataarea name="rom" size="1048576">
800918            <rom name="swj-mga001.bin" size="1048576" crc="12fb8b28" sha1="509e5748e5efdfb56093c78ae886153dd1838215" offset="000000" />
801919         </dataarea>
920         <dataarea name="sram" size="0x8000">
921         </dataarea>
802922      </part>
803923   </software>
804924
r32550r32551
810930      <info name="release" value="19990504"/>
811931      <info name="alt_title" value="メダロット パーフェクトエディション - クワガタバージョン"/>
812932      <part name="cart" interface="wswan_cart">
933         <feature name="slot" value="ws_sram" />
813934         <dataarea name="rom" size="1048576">
814935            <rom name="swj-mga002.bin" size="1048576" crc="2b40745d" sha1="315061e4739e947175d6ad7f006498cd61a33f8c" offset="000000" />
815936         </dataarea>
937         <dataarea name="sram" size="0x8000">
938         </dataarea>
816939      </part>
817940   </software>
818941
r32550r32551
824947      <info name="release" value="19991102"/>
825948      <info name="alt_title" value="ミングルマグネット"/>
826949      <part name="cart" interface="wswan_cart">
950         <feature name="slot" value="ws_rom" />
827951         <dataarea name="rom" size="524288">
828952            <rom name="swj-hal002.bin" size="524288" crc="9baac7bb" sha1="c7230ef709f6ceaef9a220541c8cdc05c0cd549f" offset="000000" />
829953         </dataarea>
r32550r32551
838962      <info name="release" value="19991007"/>
839963      <info name="alt_title" value="プロ麻雀 極 フォー ワンダースワン"/>
840964      <part name="cart" interface="wswan_cart">
965         <feature name="slot" value="ws_sram" />
841966         <dataarea name="rom" size="1048576">
842967            <rom name="swj-atn001.bin" size="1048576" crc="90f7e6d6" sha1="32013a7a745a3aa2fd63cc9427c5e1f2635655ed" offset="000000" />
843968         </dataarea>
969         <dataarea name="sram" size="0x2000">
970         </dataarea>
844971      </part>
845972   </software>
846973
r32550r32551
852979      <info name="release" value="19990715"/>
853980      <info name="alt_title" value="日本プロ麻雀連盟公認 徹萬"/>
854981      <part name="cart" interface="wswan_cart">
982         <feature name="slot" value="ws_sram" />
855983         <dataarea name="rom" size="1048576">
856984            <rom name="swj-kgt001.bin" size="1048576" crc="44b3e67c" sha1="4eefc5a51008c2ab33e8d04064ec9bdcbc03d036" offset="000000" />
857985         </dataarea>
986         <dataarea name="sram" size="0x8000">
987         </dataarea>
858988      </part>
859989   </software>
860990
861991   <software name="mobilewg">
862      <!-- Alt title: -->
863992      <description>MobileWonderGate</description>
864993      <year>19??</year>
865994      <publisher>&lt;unknown&gt;</publisher>
866995      <part name="cart" interface="wswan_cart">
996         <feature name="slot" value="ws_sram" />
867997         <dataarea name="rom" size="2097152">
868998            <rom name="mobilewondergate (japan).bin" size="2097152" crc="80de367d" sha1="92d4a6ff6f2b1152d8935025f38f910155e5d709" offset="000000" />
869999         </dataarea>
1000         <dataarea name="sram" size="0x10000">
1001         </dataarea>
8701002      </part>
8711003   </software>
8721004
r32550r32551
8781010      <info name="release" value="20000330"/>
8791011      <info name="alt_title" value="燃えろ!!プロ野球 ルーキーズ"/>
8801012      <part name="cart" interface="wswan_cart">
1013         <feature name="slot" value="ws_sram" />
8811014         <dataarea name="rom" size="1048576">
8821015            <rom name="swj-jlc002.bin" size="1048576" crc="eb995e86" sha1="e88e659cc04fc08a04b8c881f62fe086c5cdab06" offset="000000" />
8831016         </dataarea>
1017         <dataarea name="sram" size="0x2000">
1018         </dataarea>
8841019      </part>
8851020   </software>
8861021
r32550r32551
8921027      <info name="release" value="19991102"/>
8931028      <info name="alt_title" value="森田将棋 フォー ワンダースワン"/>
8941029      <part name="cart" interface="wswan_cart">
1030         <feature name="slot" value="ws_sram" />
8951031         <dataarea name="rom" size="524288">
8961032            <rom name="swj-yke001.bin" size="524288" crc="b159c30d" sha1="d70fbc6be9a9a0f12cea8a9f7c98aa415e41aafd" offset="000000" />
8971033         </dataarea>
1034         <dataarea name="sram" size="0x8000">
1035         </dataarea>
8981036      </part>
8991037   </software>
9001038
r32550r32551
9061044      <info name="release" value="20000323"/>
9071045      <info name="alt_title" value="メタコミセラピー ねぇ聞いて!"/>
9081046      <part name="cart" interface="wswan_cart">
1047         <feature name="slot" value="ws_sram" />
9091048         <dataarea name="rom" size="2097152">
9101049            <rom name="swj-kgt006.bin" size="2097152" crc="a3ead689" sha1="dc94e17a942acfdc1eb0c38d91bf72460a4bb8f9" offset="000000" />
9111050         </dataarea>
1051         <dataarea name="sram" size="0x8000">
1052         </dataarea>
9121053      </part>
9131054   </software>
9141055
r32550r32551
9191060      <info name="serial" value="SWJ-BVL001"/>
9201061      <info name="release" value="19991118"/>
9211062      <info name="alt_title" value="謎王 Pocket"/>
922      <!-- 16k EEPROM -->
9231063      <part name="cart" interface="wswan_cart">
1064         <feature name="slot" value="ws_eeprom" />
9241065         <dataarea name="rom" size="1048576">
9251066            <rom name="swj-bvl001.bin" size="1048576" crc="4ed8820c" sha1="b358c65bae818c4b3de6bf668d16c311534036c2" offset="000000" />
9261067         </dataarea>
1068         <dataarea name="eeprom" size="0x800">
1069         </dataarea>
9271070      </part>
9281071   </software>
9291072
r32550r32551
9341077      <info name="serial" value="SWJ-SUM002"/>
9351078      <info name="release" value="19990408"/>
9361079      <info name="alt_title" value="ナイスオン"/>
937      <!-- 16k EEPROM -->
9381080      <part name="cart" interface="wswan_cart">
1081         <feature name="slot" value="ws_eeprom" />
9391082         <dataarea name="rom" size="1048576">
9401083            <rom name="swj-sum002.bin" size="1048576" crc="b5dbcf12" sha1="6a479ee45e69cd3d6cc6cdda5a60eff3077953b0" offset="000000" />
9411084         </dataarea>
1085         <dataarea name="eeprom" size="0x800">
1086         </dataarea>
9421087      </part>
9431088   </software>
9441089
r32550r32551
9491094      <info name="serial" value="SWJ-KEX001"/>
9501095      <info name="release" value="19990311"/>
9511096      <info name="alt_title" value="信長の野望 for ワンダースワン"/>
952      <!-- TOOD -->
9531097      <part name="cart" interface="wswan_cart">
1098         <feature name="slot" value="ws_sram" />
9541099         <dataarea name="rom" size="524288">
9551100            <rom name="swj-kex001.bin" size="524288" crc="c1734309" sha1="b143cece1e7db9d9f660f4e9ca3a95b02a71dcd3" offset="000000" />
9561101         </dataarea>
1102         <dataarea name="sram" size="0x8000">
1103         </dataarea>
9571104      </part>
9581105   </software>
9591106
r32550r32551
9641111      <info name="serial" value="SWJ-SUN004"/>
9651112      <info name="release" value="20000106"/>
9661113      <info name="alt_title" value="おーちゃんのお絵かきロジック"/>
967      <!-- 16k EEPROM -->
9681114      <part name="cart" interface="wswan_cart">
1115         <feature name="slot" value="ws_eeprom" />
9691116         <dataarea name="rom" size="524288">
9701117            <rom name="swj-sun004.bin" size="524288" crc="631bd97a" sha1="0f73d3112b1184f74e728cf1252ffbee6a146fa6" offset="000000" />
9711118         </dataarea>
1119         <dataarea name="eeprom" size="0x800">
1120         </dataarea>
9721121      </part>
9731122   </software>
9741123
r32550r32551
9791128      <info name="serial" value="SWJ-BAN02B"/>
9801129      <info name="release" value="20000719"/>
9811130      <info name="alt_title" value="フロムテレビアニメーション ワンピース めざせ海賊王!"/>
982      <!-- 16k EEPROM -->
9831131      <part name="cart" interface="wswan_cart">
1132         <feature name="slot" value="ws_eeprom" />
9841133         <dataarea name="rom" size="1048576">
9851134            <rom name="swj-ban02b.bin" size="1048576" crc="f2e362b8" sha1="99c831c27c478064e3d3fa8f9f089cc28f0e946f" offset="000000" />
9861135         </dataarea>
1136         <dataarea name="eeprom" size="0x800">
1137         </dataarea>
9871138      </part>
9881139   </software>
9891140
r32550r32551
9941145      <info name="serial" value="SWJ-SUN003"/>
9951146      <info name="release" value="19990701"/>
9961147      <info name="alt_title" value="パズルボブル"/>
997      <!-- 1k EEPROM -->
9981148      <part name="cart" interface="wswan_cart">
1149         <feature name="slot" value="ws_eeprom" />
9991150         <dataarea name="rom" size="524288">
10001151            <rom name="swj-sun003.bin" size="524288" crc="302499b9" sha1="5e7dabb66b0ca580481aa79ee8b8a5b0c6ce6592" offset="000000" />
10011152         </dataarea>
1153         <dataarea name="eeprom" size="0x80">
1154         </dataarea>
10021155      </part>
10031156   </software>
10041157
r32550r32551
10091162      <info name="serial" value="SWJ-BAN00A"/>
10101163      <info name="release" value="20000406"/>
10111164      <info name="alt_title" value="ポケットファイター"/>
1012      <!-- 256k SRAM -->
10131165      <part name="cart" interface="wswan_cart">
1166         <feature name="slot" value="ws_sram" />
10141167         <dataarea name="rom" size="2097152">
10151168            <rom name="swj-ban00a.bin" size="2097152" crc="35361250" sha1="fb8d0f4e58a4192989ec71eb6e392d182aaa3eec" offset="000000" />
10161169         </dataarea>
1170         <dataarea name="sram" size="0x8000">
1171         </dataarea>
10171172      </part>
10181173   </software>
10191174
r32550r32551
10251180      <info name="release" value="19990311"/>
10261181      <info name="alt_title" value="ぷよぷよ通"/>
10271182      <part name="cart" interface="wswan_cart">
1183         <feature name="slot" value="ws_rom" />
10281184         <dataarea name="rom" size="1048576">
10291185            <rom name="swj-ban004.bin" size="1048576" crc="5a41a7ba" sha1="d72c1221c2ce3e281a0ee288a3d079aa8e1b714b" offset="000000" />
10301186         </dataarea>
r32550r32551
10381194      <info name="serial" value="SWJ-MGH003"/>
10391195      <info name="release" value="20000629"/>
10401196      <info name="alt_title" value="レインボーアイランド パティーズ☆パーティ!"/>
1041      <!-- 256k SRAM -->
10421197      <part name="cart" interface="wswan_cart">
1198         <feature name="slot" value="ws_sram" />
10431199         <dataarea name="rom" size="2097152">
10441200            <rom name="swj-mgh003.bin" size="2097152" crc="8f8608ad" sha1="759deb79a3fc3befed705d7264e4b88adbadacc7" offset="000000" />
10451201         </dataarea>
1202         <dataarea name="sram" size="0x8000">
1203         </dataarea>
10461204      </part>
10471205   </software>
10481206
r32550r32551
10531211      <info name="serial" value="SWJ-KDK001"/>
10541212      <info name="release" value="20000810"/>
10551213      <info name="alt_title" value="リング インフィニティ"/>
1056      <!-- 16k EEPROM -->
10571214      <part name="cart" interface="wswan_cart">
1215         <feature name="slot" value="ws_eeprom" />
10581216         <dataarea name="rom" size="4194304">
10591217            <rom name="swj-kdk001.bin" size="4194304" crc="14adbd4b" sha1="9896d93c97381dc06b6f044de6c9bd112ca0c94b" offset="000000" />
10601218         </dataarea>
1219         <dataarea name="eeprom" size="0x800">
1220         </dataarea>
10611221      </part>
10621222   </software>
10631223
r32550r32551
10691229      <info name="release" value="20000330"/>
10701230      <info name="alt_title" value="スーパーロボット大戦 コンパクト2 第1部:地上激闘篇"/>
10711231      <part name="cart" interface="wswan_cart">
1232         <feature name="slot" value="ws_sram" />
10721233         <dataarea name="rom" size="4194304">
10731234            <rom name="swj-bpr003.bin" size="4194304" crc="782877bc" sha1="e6911e5bb0a742ba299e05b20ee81f2faa4854a5" offset="000000" />
10741235         </dataarea>
1236         <dataarea name="sram" size="0x8000">
1237         </dataarea>
10751238      </part>
10761239   </software>
10771240
r32550r32551
10821245      <info name="serial" value="SWJ-BPR006"/>
10831246      <info name="release" value="20000914"/>
10841247      <info name="alt_title" value="スーパーロボット大戦 コンパクト2 第2部:宇宙激震篇"/>
1085      <!-- 256k SRAM -->
10861248      <part name="cart" interface="wswan_cart">
1249         <feature name="slot" value="ws_sram" />
10871250         <dataarea name="rom" size="4194304">
10881251            <rom name="swj-bpr006.bin" size="4194304" crc="ecbb46de" sha1="6014ac0b8978e710f26c9cc41180cdf788584743" offset="000000" />
10891252         </dataarea>
1253         <dataarea name="sram" size="0x8000">
1254         </dataarea>
10901255      </part>
10911256   </software>
10921257
r32550r32551
10971262      <info name="serial" value="SWJ-BPR007"/>
10981263      <info name="release" value="20010118"/>
10991264      <info name="alt_title" value="スーパーロボット大戦 コンパクト2 第3部:銀河決戦篇"/>
1100      <!-- 256k SRAM -->
11011265      <part name="cart" interface="wswan_cart">
1266         <feature name="slot" value="ws_sram" />
11021267         <dataarea name="rom" size="4194304">
11031268            <rom name="swj-bpr007.bin" size="4194304" crc="0b0f8981" sha1="d24d8cea57c5c487e877eaa523eefb0dd184556d" offset="000000" />
11041269         </dataarea>
1270         <dataarea name="sram" size="0x8000">
1271         </dataarea>
11051272      </part>
11061273   </software>
11071274
r32550r32551
11121279      <info name="serial" value="SWJ-BPR001"/>
11131280      <info name="release" value="19990428"/>
11141281      <info name="alt_title" value="スーパーロボット大戦 コンパクト"/>
1115      <!-- 256k SRAM -->
11161282      <part name="cart" interface="wswan_cart">
1283         <feature name="slot" value="ws_sram" />
11171284         <dataarea name="rom" size="2097152">
11181285            <rom name="swj-bpr001.bin" size="2097152" crc="7021d54f" sha1="e93d58ab5819992e54223f5d1c4d5aeb6983d6a3" offset="000000" />
11191286         </dataarea>
1287         <dataarea name="sram" size="0x8000">
1288         </dataarea>
11201289      </part>
11211290   </software>
11221291
r32550r32551
11281297      <info name="release" value="20000804"/>
11291298      <info name="alt_title" value="ワンダーボーグ 完"/>
11301299      <part name="cart" interface="wswan_cart">
1300         <feature name="slot" value="ws_sram" />
1301         <feature name="rtc" value="yes" />
11311302         <dataarea name="rom" size="1048576">
11321303            <rom name="swj-ban033.bin" size="1048576" crc="6adf0e32" sha1="4d4d4a3fde6b1dbbc8f008fbd035fb59624dfba7" offset="000000" />
11331304         </dataarea>
1305         <dataarea name="sram" size="0x8000">
1306         </dataarea>
11341307      </part>
11351308   </software>
11361309
r32550r32551
11421315      <info name="release" value="20000804"/>
11431316      <info name="alt_title" value="ワンダーボーグ 完"/>
11441317      <part name="cart" interface="wswan_cart">
1318         <feature name="slot" value="ws_sram" />
1319         <feature name="rtc" value="yes" />
11451320         <dataarea name="rom" size="1048576">
11461321            <rom name="swj-ban033asia.bin" size="1048576" crc="be6be690" sha1="2117ed92e8cb4ae61868535f1d4d16851b480890" offset="000000" />
11471322         </dataarea>
1323         <dataarea name="sram" size="0x8000">
1324         </dataarea>
11481325      </part>
11491326   </software>
11501327
r32550r32551
11551332      <info name="serial" value="SWJ-BAN013"/>
11561333      <info name="release" value="19991028"/>
11571334      <info name="alt_title" value="ロックマン&amp;フォルテ 未来からの挑戦者"/>
1158      <!-- 256k SRAM -->
11591335      <part name="cart" interface="wswan_cart">
1336         <feature name="slot" value="ws_sram" />
11601337         <dataarea name="rom" size="2097152">
11611338            <rom name="swj-ban013.bin" size="2097152" crc="cd206a9e" sha1="9f8829aa8ea523e8370cbb2acd2acce056bb7958" offset="000000" />
11621339         </dataarea>
1340         <dataarea name="sram" size="0x8000">
1341         </dataarea>
11631342      </part>
11641343   </software>
11651344
r32550r32551
11701349      <info name="serial" value="SWJ-KEX002"/>
11711350      <info name="release" value="19990401"/>
11721351      <info name="alt_title" value="三国志 for ワンダースワン"/>
1173      <!-- 256k SRAM -->
11741352      <part name="cart" interface="wswan_cart">
1353         <feature name="slot" value="ws_sram" />
11751354         <dataarea name="rom" size="524288">
11761355            <rom name="swj-kex002.bin" size="524288" crc="e385ee88" sha1="d064b94f31b15564c9a3dbd3a68690244ea043ac" offset="000000" />
11771356         </dataarea>
1357         <dataarea name="sram" size="0x8000">
1358         </dataarea>
11781359      </part>
11791360   </software>
11801361
r32550r32551
11861367      <info name="release" value="20000406"/>
11871368      <info name="alt_title" value="三国志II フォー ワンダースワン"/>
11881369      <part name="cart" interface="wswan_cart">
1370         <feature name="slot" value="ws_sram" />
11891371         <dataarea name="rom" size="524288">
11901372            <rom name="swj-kex004.bin" size="524288" crc="812b720d" sha1="59d904149c3f405357b2715468d509095388a194" offset="000000" />
11911373         </dataarea>
1374         <dataarea name="sram" size="0x8000">
1375         </dataarea>
11921376      </part>
11931377   </software>
11941378
r32550r32551
11991383      <info name="serial" value="SWJ-BAN006"/>
12001384      <info name="release" value="19990527"/>
12011385      <info name="alt_title" value="SDガンダム エモーショナルジャム"/>
1202      <!-- 256k SRAM -->
12031386      <part name="cart" interface="wswan_cart">
1387         <feature name="slot" value="ws_sram" />
12041388         <dataarea name="rom" size="2097152">
12051389            <rom name="swj-ban006.bin" size="2097152" crc="ae83f873" sha1="ae54a1f8916a2d37a1e0c82c5a9b5d8fe0eeae51" offset="000000" />
12061390         </dataarea>
1391         <dataarea name="sram" size="0x8000">
1392         </dataarea>
12071393      </part>
12081394   </software>
12091395
r32550r32551
12151401      <info name="release" value="19991229"/>
12161402      <info name="alt_title" value="SD ガンダム ガシャポン戦記 -エピソード1-"/>
12171403      <part name="cart" interface="wswan_cart">
1404         <feature name="slot" value="ws_sram" />
12181405         <dataarea name="rom" size="1048576">
12191406            <rom name="swj-ban020.bin" size="1048576" crc="21eb4c59" sha1="e6899de5b53f73c8978e3330dca0f2daaf95f140" offset="000000" />
12201407         </dataarea>
1408         <dataarea name="sram" size="0x8000">
1409         </dataarea>
12211410      </part>
12221411   </software>
12231412
r32550r32551
12281417      <info name="serial" value="SWJ-BAN030"/>
12291418      <info name="release" value="20000713"/>
12301419      <info name="alt_title" value="SDガンダム Gジェネレーション ギャザービート"/>
1231      <!-- 256k SRAM -->
12321420      <part name="cart" interface="wswan_cart">
1421         <feature name="slot" value="ws_sram" />
12331422         <dataarea name="rom" size="4194304">
12341423            <rom name="swj-ban030.bin" size="4194304" crc="e4eb3ab1" sha1="5e5db8b066e1b41c5c12a2d4ffa97b73ed6c3f03" offset="000000" />
12351424         </dataarea>
1425         <dataarea name="sram" size="0x8000">
1426         </dataarea>
12361427      </part>
12371428   </software>
12381429
r32550r32551
12431434      <info name="serial" value="SWJ-BAN022"/>
12441435      <info name="release" value="20000224"/>
12451436      <info name="alt_title" value="仙界伝 ~TVアニメーション仙界伝封神演義より~"/>
1246      <!-- 256k SRAM -->
12471437      <part name="cart" interface="wswan_cart">
1438         <feature name="slot" value="ws_sram" />
12481439         <dataarea name="rom" size="2097152">
12491440            <rom name="swj-ban022.bin" size="2097152" crc="07a3dd46" sha1="fc8b0b9b7efeac54812e7ae54153b7ae0cb9c12f" offset="000000" />
12501441         </dataarea>
1442         <dataarea name="sram" size="0x8000">
1443         </dataarea>
12511444      </part>
12521445   </software>
12531446
r32550r32551
12581451      <info name="serial" value="SWJ-BAN025"/>
12591452      <info name="release" value="20000316"/>
12601453      <info name="alt_title" value="線脳 ミレニアム"/>
1261      <!-- 1k EEPROM -->
12621454      <part name="cart" interface="wswan_cart">
1455         <feature name="slot" value="ws_eeprom" />
12631456         <dataarea name="rom" size="1048576">
12641457            <rom name="swj-ban025.bin" size="1048576" crc="301436ac" sha1="708288e70b3186f6c0ef07acaef1b50fe6b7ab22" offset="000000" />
12651458         </dataarea>
1459         <dataarea name="eeprom" size="0x80">
1460         </dataarea>
12661461      </part>
12671462   </software>
12681463
r32550r32551
12741469      <info name="release" value="19990401"/>
12751470      <info name="alt_title" value="上海 ポケット"/>
12761471      <part name="cart" interface="wswan_cart">
1472         <feature name="slot" value="ws_sram" />
12771473         <dataarea name="rom" size="524288">
12781474            <rom name="swj-sun001.bin" size="524288" crc="1c489351" sha1="d64b9b2d567d1cea5960f64e5bdf83d4514446da" offset="000000" />
12791475         </dataarea>
1476         <dataarea name="sram" size="0x8000">
1477         </dataarea>
12801478      </part>
12811479   </software>
12821480
r32550r32551
12881486      <info name="release" value="19990304"/>
12891487      <info name="alt_title" value="新日本プロレスリング 闘魂烈伝"/>
12901488      <part name="cart" interface="wswan_cart">
1489         <feature name="slot" value="ws_eeprom" />
12911490         <dataarea name="rom" size="1048576">
12921491            <rom name="swj-tmy001.bin" size="1048576" crc="5b76f901" sha1="7324c5939b8b64858c96bd9726f5b5c483a11e22" offset="000000" />
12931492         </dataarea>
1493         <dataarea name="eeprom" size="0x80">
1494         </dataarea>
12941495      </part>
12951496   </software>
12961497
r32550r32551
13021503      <info name="release" value="19991028"/>
13031504      <info name="alt_title" value="将棋 登龍門"/>
13041505      <part name="cart" interface="wswan_cart">
1506         <feature name="slot" value="ws_sram" />
13051507         <dataarea name="rom" size="524288">
13061508            <rom name="swj-sum005.bin" size="524288" crc="fff1c0d6" sha1="c42339590a6d7864cb4f5728b84c4cce09779f0a" offset="000000" />
13071509         </dataarea>
1510         <dataarea name="sram" size="0x8000">
1511         </dataarea>
13081512      </part>
13091513   </software>
13101514
r32550r32551
13161520      <info name="release" value="19991125"/>
13171521      <info name="alt_title" value="サイドポケット for ワンダースワン"/>
13181522      <part name="cart" interface="wswan_cart">
1523         <feature name="slot" value="ws_rom" />
13191524         <dataarea name="rom" size="1048576">
13201525            <rom name="swj-dte001.bin" size="1048576" crc="8655269e" sha1="4a756dab81e0101475dc2e5494270f3df7dac1e6" offset="000000" />
13211526         </dataarea>
r32550r32551
13291534      <info name="serial" value="SWJ-BAN029"/>
13301535      <info name="release" value="20000420"/>
13311536      <info name="alt_title" value="スリザーリンク"/>
1332      <!-- 1k EEPROM -->
13331537      <part name="cart" interface="wswan_cart">
1538         <feature name="slot" value="ws_eeprom" />
13341539         <dataarea name="rom" size="524288">
13351540            <rom name="swj-ban029.bin" size="524288" crc="f00a0330" sha1="3e31beaca985ac5041c6e95e0d07f163168e190d" offset="000000" />
13361541         </dataarea>
1542         <dataarea name="eeprom" size="0x80">
1543         </dataarea>
13371544      </part>
13381545   </software>
13391546
r32550r32551
13451552      <info name="release" value="19990812"/>
13461553      <info name="alt_title" value="サッカーやろう! チャレンジ・ザ・ワールド"/>
13471554      <part name="cart" interface="wswan_cart">
1555         <feature name="slot" value="ws_rom" />
13481556         <dataarea name="rom" size="524288">
13491557            <rom name="swj-ccj002.bin" size="524288" crc="d7438e58" sha1="6eec04244f4d85807988a2331e7031d0c3549646" offset="000000" />
13501558         </dataarea>
r32550r32551
13581566      <info name="serial" value="SWJ-BVL002"/>
13591567      <info name="release" value="19991216"/>
13601568      <info name="alt_title" value="卒業 フォー ワンダースワン"/>
1361      <!-- 256k SRAM -->
13621569      <part name="cart" interface="wswan_cart">
1570         <feature name="slot" value="ws_sram" />
13631571         <dataarea name="rom" size="2097152">
13641572            <rom name="swj-bvl002.bin" size="2097152" crc="f016dfe1" sha1="e461762566d529d1b103f119da50353902d180d7" offset="000000" />
13651573         </dataarea>
1574         <dataarea name="sram" size="0x8000">
1575         </dataarea>
13661576      </part>
13671577   </software>
13681578
r32550r32551
13741584      <info name="release" value="19990513"/>
13751585      <info name="alt_title" value="スペースインベーダー"/>
13761586      <part name="cart" interface="wswan_cart">
1587         <feature name="slot" value="ws_rom" />
13771588         <dataarea name="rom" size="1048576">
13781589            <rom name="swj-sun002.bin" size="1048576" crc="8d83014f" sha1="54dd6e3fe81a8a384a0ffdd7a39211a5de9174c7" offset="000000" />
13791590         </dataarea>
r32550r32551
13881599      <info name="release" value="20000427"/>
13891600      <info name="alt_title" value="ワサビ プロデュース ストリートダンサー"/>
13901601      <part name="cart" interface="wswan_cart">
1602         <feature name="slot" value="ws_sram" />
13911603         <dataarea name="rom" size="4194304">
13921604            <rom name="swj-ban028.bin" size="4194304" crc="1860b655" sha1="672cfc0e4547b2721d11b67476391b6e6cca81ae" offset="000000" />
13931605         </dataarea>
1606         <dataarea name="sram" size="0x8000">
1607         </dataarea>
13941608      </part>
13951609   </software>
13961610
r32550r32551
14021616      <info name="release" value="20000224"/>
14031617      <info name="alt_title" value="対局囲碁 平成棋院"/>
14041618      <part name="cart" interface="wswan_cart">
1619         <feature name="slot" value="ws_sram" />
14051620         <dataarea name="rom" size="524288">
14061621            <rom name="swj-kgt004.bin" size="524288" crc="9597f37f" sha1="813f296b5b0ddaa34f1d3e5aa9955b1db1918f7d" offset="000000" />
14071622         </dataarea>
1623         <dataarea name="sram" size="0x20000">
1624         </dataarea>
14081625      </part>
14091626   </software>
14101627
r32550r32551
14271644      <info name="serial" value="SWJ-BVL003"/>
14281645      <info name="release" value="20000224"/>
14291646      <info name="alt_title" value="誕生 デビュー フォー ワンダースワン"/>
1430      <!-- 256k SRAM -->
14311647      <part name="cart" interface="wswan_cart">
1648         <feature name="slot" value="ws_sram" />
14321649         <dataarea name="rom" size="2097152">
14331650            <rom name="swj-bvl003.bin" size="2097152" crc="8b74f59a" sha1="2f35d250b8ddeb98ca3a2704a4ad85713f4c71b0" offset="000000" />
14341651         </dataarea>
1652         <dataarea name="sram" size="0x8000">
1653         </dataarea>
14351654      </part>
14361655   </software>
14371656
r32550r32551
14421661      <info name="serial" value="SWJ-BAN00D"/>
14431662      <info name="release" value="19990617"/>
14441663      <info name="alt_title" value="鉄拳カードチャレンジ"/>
1445      <!-- 64k SRAM -->
14461664      <part name="cart" interface="wswan_cart">
1665         <feature name="slot" value="ws_sram" />
14471666         <dataarea name="rom" size="1048576">
14481667            <rom name="swj-ban00d.bin" size="1048576" crc="e7c608e5" sha1="96a9ce5e56dc0c9648027ad4454e6f35e88d9a07" offset="000000" />
14491668         </dataarea>
1669         <dataarea name="sram" size="0x2000">
1670         </dataarea>
14501671      </part>
14511672   </software>
14521673
r32550r32551
14571678      <info name="serial" value="SWJ-BAN014"/>
14581679      <info name="release" value="19990508"/>
14591680      <info name="alt_title" value="テラーズ"/>
1460      <!-- 256k SRAM -->
14611681      <part name="cart" interface="wswan_cart">
1682         <feature name="slot" value="ws_sram" />
14621683         <dataarea name="rom" size="4194304">
14631684            <rom name="swj-ban014.bin" size="4194304" crc="ef5b6b82" sha1="7148d750f12b5da9a0efd99f5a5a7ccadecbdf60" offset="000000" />
14641685         </dataarea>
1686         <dataarea name="sram" size="0x8000">
1687         </dataarea>
14651688      </part>
14661689   </software>
14671690
r32550r32551
14721695      <info name="serial" value="SWJ-MGH001"/>
14731696      <info name="release" value="19991222"/>
14741697      <info name="alt_title" value="鉄人28号"/>
1475      <!-- 1k EEPROM -->
14761698      <part name="cart" interface="wswan_cart">
1699         <feature name="slot" value="ws_eeprom" />
14771700         <dataarea name="rom" size="4194304">
14781701            <rom name="swj-mgh001.bin" size="4194304" crc="6f304dca" sha1="65c4c6aaa36328bba5d56419af59af5d3420ed78" offset="000000" />
14791702         </dataarea>
1703         <dataarea name="eeprom" size="0x80">
1704         </dataarea>
14801705      </part>
14811706   </software>
14821707
r32550r32551
14871712      <info name="serial" value="SWJ-BPR005"/>
14881713      <info name="release" value="20000427"/>
14891714      <info name="alt_title" value="タイム ボカン シリーズ ボカン伝説 ブタもおだてりゃドロンボー"/>
1490      <!-- 256k SRAM -->
14911715      <part name="cart" interface="wswan_cart">
1716         <feature name="slot" value="ws_sram" />
14921717         <dataarea name="rom" size="1048576">
14931718            <rom name="swj-bpr005.bin" size="1048576" crc="7da6acb9" sha1="ad77d2e8429d5ed926d514d926050086f4edbeee" offset="000000" />
14941719         </dataarea>
1720         <dataarea name="sram" size="0x8000">
1721         </dataarea>
14951722      </part>
14961723   </software>
14971724
r32550r32551
15021729      <info name="serial" value="SWJ-AAE001"/>
15031730      <info name="release" value="20001012"/>
15041731      <info name="alt_title" value="東京魔人学園 符咒封録"/>
1505      <!-- 256k SRAM -->
15061732      <part name="cart" interface="wswan_cart">
1733         <feature name="slot" value="ws_sram" />
15071734         <dataarea name="rom" size="8388608">
15081735            <rom name="swj-aae001.bin" size="8388608" crc="91117d1b" sha1="866c67737a4fbb5f09a0b13bbdb89397bcab1f55" offset="000000" />
15091736         </dataarea>
1737         <dataarea name="sram" size="0x8000">
1738         </dataarea>
15101739      </part>
15111740   </software>
15121741
r32550r32551
15181747      <info name="release" value="19991209"/>
15191748      <info name="alt_title" value="たれぱんだのぐんぺい"/>
15201749      <part name="cart" interface="wswan_cart">
1750         <feature name="slot" value="ws_eeprom" />
15211751         <dataarea name="rom" size="1048576">
15221752            <rom name="swj-ban01f.bin" size="1048576" crc="a5643aa3" sha1="9622c65c939f05a9dfae288919ec5bd15c348f14" offset="000000" />
15231753         </dataarea>
1754         <dataarea name="eeprom" size="0x800">
1755         </dataarea>
15241756      </part>
15251757   </software>
15261758
r32550r32551
15321764      <info name="release" value="20000928"/>
15331765      <info name="alt_title" value="トランプコレクション ボトムアップ的トランプ生活"/>
15341766      <part name="cart" interface="wswan_cart">
1767         <feature name="slot" value="ws_rom" />
15351768         <dataarea name="rom" size="524288">
15361769            <rom name="swj-btm002.bin" size="524288" crc="a18aa7af" sha1="64a3053c0f92681eb514e55adabc8ba0da1cb1a1" offset="000000" />
15371770         </dataarea>
r32550r32551
15581791      <info name="release" value="19990701"/>
15591792      <info name="alt_title" value="トランプコレクション2 ボトムアップ的世界一周の旅"/>
15601793      <part name="cart" interface="wswan_cart">
1794         <feature name="slot" value="ws_rom" />
15611795         <dataarea name="rom" size="524288">
15621796            <rom name="swj-btm001.bin" size="524288" crc="07a3b862" sha1="ab3c925bf1bfd36403335af0c0365be8a2950ca8" offset="000000" />
15631797         </dataarea>
r32550r32551
15711805      <info name="serial" value="SWJ-BAN017"/>
15721806      <info name="release" value="19991125"/>
15731807      <info name="alt_title" value="タ→ンテ→ブリスト DJバトル"/>
1574      <!-- 16k EEPROM -->
15751808      <part name="cart" interface="wswan_cart">
1809         <feature name="slot" value="ws_eeprom" />
15761810         <dataarea name="rom" size="4194304">
15771811            <rom name="swj-ban017.bin" size="4194304" crc="0d5171f0" sha1="858f1f57b5522a1701cc8a0abae43cec948e26a6" offset="000000" />
15781812         </dataarea>
1813         <dataarea name="eeprom" size="0x800">
1814         </dataarea>
15791815      </part>
15801816   </software>
15811817
r32550r32551
15871823      <info name="release" value="19990401"/>
15881824      <info name="alt_title" value="海釣りに行こう!"/>
15891825      <part name="cart" interface="wswan_cart">
1826         <feature name="slot" value="ws_rom" />
15901827         <dataarea name="rom" size="524288">
15911828            <rom name="swj-ccj001.bin" size="524288" crc="86b56511" sha1="4f739292d11a45490851eaf40c0a7081824ad75a" offset="000000" />
15921829         </dataarea>
r32550r32551
16011838      <info name="release" value="20000203"/>
16021839      <info name="alt_title" value="うずまき ~電視怪奇篇~"/>
16031840      <part name="cart" interface="wswan_cart">
1841         <feature name="slot" value="ws_eeprom" />
16041842         <dataarea name="rom" size="2097152">
16051843            <rom name="swj-omm001.bin" size="2097152" crc="812020ef" sha1="4c8166e0632bdb8c098d586a7b1522ed7b63b5f7" offset="000000" />
16061844         </dataarea>
1845         <dataarea name="eeprom" size="0x80">
1846         </dataarea>
16071847      </part>
16081848   </software>
16091849
r32550r32551
16141854      <info name="serial" value="SWJ-BAN00C"/>
16151855      <info name="release" value="19990624"/>
16161856      <info name="alt_title" value="ヴァイツブレイド"/>
1617      <!-- 256k SRAM -->
16181857      <part name="cart" interface="wswan_cart">
1858         <feature name="slot" value="ws_sram" />
16191859         <dataarea name="rom" size="4194304">
16201860            <rom name="swj-ban00c.bin" size="4194304" crc="8fc9e145" sha1="cfb877f0988920c8fe4da5cdd7583197799df621" offset="000000" />
16211861         </dataarea>
1862         <dataarea name="sram" size="0x8000">
1863         </dataarea>
16221864      </part>
16231865   </software>
16241866
r32550r32551
16291871      <info name="serial" value="SWJ-BAN019"/>
16301872      <info name="release" value="1999-09"/>
16311873      <info name="alt_title" value="ワンダースタジアム'99"/>
1632      <!-- 64k SRAM -->
16331874      <part name="cart" interface="wswan_cart">
1875         <feature name="slot" value="ws_sram" />
16341876         <dataarea name="rom" size="1048576">
16351877            <rom name="swj-ban019.bin" size="1048576" crc="e252919d" sha1="bb138765346d9f4d77615444d090b1328a59818a" offset="000000" />
16361878         </dataarea>
1879         <dataarea name="sram" size="0x2000">
1880         </dataarea>
16371881      </part>
16381882   </software>
16391883
r32550r32551
16441888      <info name="serial" value="SWJ-BAN003"/>
16451889      <info name="release" value="1999-03"/>
16461890      <info name="alt_title" value="ワンダースタジアム"/>
1647      <!-- 64k SRAM -->
16481891      <part name="cart" interface="wswan_cart">
1892         <feature name="slot" value="ws_sram" />
16491893         <dataarea name="rom" size="1048576">
16501894            <rom name="swj-ban003.bin" size="1048576" crc="23bc0309" sha1="cb9454a8277bb2a7d5a6e3b4ddc84194fcbb1231" offset="000000" />
16511895         </dataarea>
1896         <dataarea name="sram" size="0x2000">
1897         </dataarea>
16521898      </part>
16531899   </software>
16541900
trunk/src/mess/drivers/wswan.c
r32550r32551
3535#include "wswan.lh"
3636
3737static ADDRESS_MAP_START (wswan_mem, AS_PROGRAM, 8, wswan_state)
38   AM_RANGE(0x00000, 0x03fff) AM_RAM       /* 16kb RAM / 4 colour tiles */
39   AM_RANGE(0x04000, 0x0ffff) AM_NOP       /* nothing */
40   AM_RANGE(0x10000, 0x1ffff) AM_READWRITE(wswan_sram_r, wswan_sram_w) /* SRAM bank */
41   AM_RANGE(0x20000, 0x2ffff) AM_ROMBANK("rom1")  /* ROM bank 1 */
42   AM_RANGE(0x30000, 0x3ffff) AM_ROMBANK("rom2")  /* ROM bank 2 */
43   AM_RANGE(0x40000, 0x4ffff) AM_ROMBANK("rom3")  /* ROM bank 3 */
44   AM_RANGE(0x50000, 0x5ffff) AM_ROMBANK("rom4")  /* ROM bank 4 */
45   AM_RANGE(0x60000, 0x6ffff) AM_ROMBANK("rom5")  /* ROM bank 5 */
46   AM_RANGE(0x70000, 0x7ffff) AM_ROMBANK("rom6")  /* ROM bank 6 */
47   AM_RANGE(0x80000, 0x8ffff) AM_ROMBANK("rom7")  /* ROM bank 7 */
48   AM_RANGE(0x90000, 0x9ffff) AM_ROMBANK("rom8")  /* ROM bank 8 */
49   AM_RANGE(0xa0000, 0xaffff) AM_ROMBANK("rom9")  /* ROM bank 9 */
50   AM_RANGE(0xb0000, 0xbffff) AM_ROMBANK("rom10") /* ROM bank 10 */
51   AM_RANGE(0xc0000, 0xcffff) AM_ROMBANK("rom11") /* ROM bank 11 */
52   AM_RANGE(0xd0000, 0xdffff) AM_ROMBANK("rom12") /* ROM bank 12 */
53   AM_RANGE(0xe0000, 0xeffff) AM_ROMBANK("rom13") /* ROM bank 13 */
54   AM_RANGE(0xf0000, 0xfffff) AM_ROMBANK("rom14") /* ROM bank 14 */
38   AM_RANGE(0x00000, 0x03fff) AM_RAM       // 16kb RAM / 4 colour tiles
39   AM_RANGE(0x04000, 0x0ffff) AM_NOP       // nothing
40   //AM_RANGE(0x10000, 0xeffff)    // cart range, setup at machine_start
41   AM_RANGE(0xf0000, 0xfffff) AM_READ(bios_r)
5542ADDRESS_MAP_END
5643
5744static ADDRESS_MAP_START (wscolor_mem, AS_PROGRAM, 8, wswan_state)
58   AM_RANGE(0x00000, 0x0ffff) AM_RAM       /* 16kb RAM / 4 colour tiles, 16 colour tiles + palettes */
59   AM_RANGE(0x10000, 0x1ffff) AM_READWRITE(wswan_sram_r, wswan_sram_w) /* SRAM bank */
60   AM_RANGE(0x20000, 0x2ffff) AM_ROMBANK("rom1")  /* ROM bank 1 */
61   AM_RANGE(0x30000, 0x3ffff) AM_ROMBANK("rom2")  /* ROM bank 2 */
62   AM_RANGE(0x40000, 0x4ffff) AM_ROMBANK("rom3")  /* ROM bank 3 */
63   AM_RANGE(0x50000, 0x5ffff) AM_ROMBANK("rom4")  /* ROM bank 4 */
64   AM_RANGE(0x60000, 0x6ffff) AM_ROMBANK("rom5")  /* ROM bank 5 */
65   AM_RANGE(0x70000, 0x7ffff) AM_ROMBANK("rom6")  /* ROM bank 6 */
66   AM_RANGE(0x80000, 0x8ffff) AM_ROMBANK("rom7")  /* ROM bank 7 */
67   AM_RANGE(0x90000, 0x9ffff) AM_ROMBANK("rom8")  /* ROM bank 8 */
68   AM_RANGE(0xa0000, 0xaffff) AM_ROMBANK("rom9")  /* ROM bank 9 */
69   AM_RANGE(0xb0000, 0xbffff) AM_ROMBANK("rom10") /* ROM bank 10 */
70   AM_RANGE(0xc0000, 0xcffff) AM_ROMBANK("rom11") /* ROM bank 11 */
71   AM_RANGE(0xd0000, 0xdffff) AM_ROMBANK("rom12") /* ROM bank 12 */
72   AM_RANGE(0xe0000, 0xeffff) AM_ROMBANK("rom13") /* ROM bank 13 */
73   AM_RANGE(0xf0000, 0xfffff) AM_ROMBANK("rom14") /* ROM bank 14 */
45   AM_RANGE(0x00000, 0x0ffff) AM_RAM       // 16kb RAM / 4 colour tiles, 16 colour tiles + palettes
46   //AM_RANGE(0x10000, 0xeffff)    // cart range, setup at machine_start
47   AM_RANGE(0xf0000, 0xfffff) AM_READ(bios_r)
7448ADDRESS_MAP_END
7549
7650static ADDRESS_MAP_START (wswan_io, AS_IO, 8, wswan_state)
77   AM_RANGE(0x00, 0xff) AM_READWRITE(wswan_port_r, wswan_port_w)   /* I/O ports */
51   AM_RANGE(0x00, 0xff) AM_READWRITE(port_r, port_w)   // I/O ports
7852ADDRESS_MAP_END
7953
8054static INPUT_PORTS_START( wswan )
81   PORT_START("CURSX")     /* Cursors (X1-X4) */
55   PORT_START("CURSX")
8256   PORT_BIT( 0x1, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_NAME("X1 - Up")
8357   PORT_BIT( 0x4, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_NAME("X3 - Down")
8458   PORT_BIT( 0x8, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_NAME("X4 - Left")
8559   PORT_BIT( 0x2, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_NAME("X2 - Right")
8660
87   PORT_START("BUTTONS")   /* Buttons */
61   PORT_START("BUTTONS")
8862   PORT_BIT( 0x2, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Start")
8963   PORT_BIT( 0x4, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Button A")
9064   PORT_BIT( 0x8, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Button B")
9165
92   PORT_START("CURSY")     /* Cursors (Y1-Y4) */
66   PORT_START("CURSY")
9367   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Y1 - Up") PORT_CODE(KEYCODE_W)
9468   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Y3 - Down") PORT_CODE(KEYCODE_S)
9569   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Y4 - Left") PORT_CODE(KEYCODE_A)
r32550r32551
10276/* WonderSwan can display 16 shades of grey */
10377PALETTE_INIT_MEMBER(wswan_state, wswan)
10478{
105   int ii;
106   for (ii = 0; ii < 16; ii++)
79   for (int i = 0; i < 16; i++)
10780   {
108      UINT8 shade = ii * (256 / 16);
109      palette.set_pen_color(15 - ii, shade, shade, shade);
81      UINT8 shade = i * (256 / 16);
82      palette.set_pen_color(15 - i, shade, shade, shade);
11083   }
11184}
11285
11386PALETTE_INIT_MEMBER(wswan_state,wscolor)
11487{
115   int i;
116   for (i = 0; i < 4096; i++)
88   for (int i = 0; i < 4096; i++)
11789   {
11890      int r = (i & 0x0f00) >> 8;
11991      int g = (i & 0x00f0) >> 4;
r32550r32551
12294   }
12395}
12496
97static SLOT_INTERFACE_START(wswan_cart)
98   SLOT_INTERFACE_INTERNAL("ws_rom",         WS_ROM_STD)
99   SLOT_INTERFACE_INTERNAL("ws_sram",        WS_ROM_SRAM)
100   SLOT_INTERFACE_INTERNAL("ws_eeprom",      WS_ROM_EEPROM)
101SLOT_INTERFACE_END
102
125103static MACHINE_CONFIG_START( wswan, wswan_state )
126104   /* Basic machine hardware */
127105   MCFG_CPU_ADD("maincpu", V30MZ, 3072000)
r32550r32551
142120
143121   MCFG_NVRAM_ADD_1FILL("nvram")
144122
145
146123   MCFG_GFXDECODE_ADD("gfxdecode", "palette", wswan)
147124   MCFG_PALETTE_ADD("palette", 16)
148125   MCFG_PALETTE_INIT_OWNER(wswan_state, wswan)
r32550r32551
154131   MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
155132
156133   /* cartridge */
157   MCFG_CARTSLOT_ADD("cart")
158   MCFG_CARTSLOT_EXTENSION_LIST("ws,wsc,bin")
159   MCFG_CARTSLOT_MANDATORY
160   MCFG_CARTSLOT_INTERFACE("wswan_cart")
161   MCFG_CARTSLOT_LOAD(wswan_state,wswan_cart)
134   MCFG_WSWAN_CARTRIDGE_ADD("cartslot", wswan_cart, NULL)
162135
163136   /* software lists */
164137   MCFG_SOFTWARE_LIST_ADD("cart_list","wswan")
r32550r32551
174147   MCFG_PALETTE_ENTRIES(4096)
175148   MCFG_PALETTE_INIT_OWNER(wswan_state, wscolor )
176149
177
178150   /* software lists */
179151   MCFG_DEVICE_REMOVE("cart_list")
180152   MCFG_DEVICE_REMOVE("wsc_list")
r32550r32551
199171ROM_END
200172
201173/*     YEAR  NAME     PARENT  COMPAT  MACHINE  INPUT  INIT COMPANY   FULLNAME*/
202CONS( 1999, wswan,   0,      0,      wswan,   wswan, wswan_state, wswan,    "Bandai", "WonderSwan",       GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
203CONS( 2000, wscolor, wswan,  0,      wscolor, wswan, wswan_state, wswan,    "Bandai", "WonderSwan Color", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
174CONS( 1999, wswan,   0,      0,      wswan,   wswan, driver_device, 0,    "Bandai", "WonderSwan",       GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
175CONS( 2000, wscolor, wswan,  0,      wscolor, wswan, driver_device, 0,    "Bandai", "WonderSwan Color", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
trunk/src/mess/mess.mak
r32550r32551
633633BUSES += VTECH_IOEXP
634634BUSES += VTECH_MEMEXP
635635BUSES += WANGPC
636BUSES += WSWAN
636637BUSES += X68K
637638BUSES += Z88
638639BUSES += ZORRO
trunk/src/mess/machine/wswan.c
r32550r32551
2020#define INTERNAL_EEPROM_SIZE    1024
2121
2222enum enum_system { TYPE_WSWAN=0, TYPE_WSC };
23enum enum_sram { SRAM_NONE=0, SRAM_64K, SRAM_256K, SRAM_512K, SRAM_1M, SRAM_2M, EEPROM_1K, EEPROM_16K, EEPROM_8K, SRAM_UNKNOWN };
24static const char *const wswan_sram_str[] = { "none", "64Kbit SRAM", "256Kbit SRAM", "512Kbit SRAM", "1Mbit SRAM", "2Mbit SRAM", "1Kbit EEPROM", "16Kbit EEPROM", "8Kbit EEPROM", "Unknown" };
25static const int wswan_sram_size[] = { 0, 64*1024/8, 256*1024/8, 512*1024/8, 1024*1024/8, 2*1024*1024/8,  1024/8, 16*1024/8, 8*1024/8, 0 };
2623
2724
28
29
3025static const UINT8 ws_portram_init[256] =
3126{
3227   0x00, 0x00, 0x00/*?*/, 0xbb, 0x00, 0x00, 0x00, 0x26, 0xfe, 0xde, 0xf9, 0xfb, 0xdb, 0xd7, 0x7f, 0xf5,
r32550r32551
138133   wswan_handle_irqs();
139134}
140135
141TIMER_CALLBACK_MEMBER(wswan_state::wswan_rtc_callback)
142{
143   /* A second passed */
144   m_rtc.second = m_rtc.second + 1;
145   if ( ( m_rtc.second & 0x0F ) > 9 )
146   {
147      m_rtc.second = ( m_rtc.second & 0xF0 ) + 0x10;
148   }
149
150   /* Check for minute passed */
151   if ( m_rtc.second >= 0x60 )
152   {
153      m_rtc.second = 0;
154      m_rtc.minute = m_rtc.minute + 1;
155      if ( ( m_rtc.minute & 0x0F ) > 9 )
156      {
157         m_rtc.minute = ( m_rtc.minute & 0xF0 ) + 0x10;
158      }
159   }
160
161   /* Check for hour passed */
162   if ( m_rtc.minute >= 0x60 )
163   {
164      m_rtc.minute = 0;
165      m_rtc.hour = m_rtc.hour + 1;
166      if ( ( m_rtc.hour & 0x0F ) > 9 )
167      {
168         m_rtc.hour = ( m_rtc.hour & 0xF0 ) + 0x10;
169      }
170      if ( m_rtc.hour == 0x12 )
171      {
172         m_rtc.hour |= 0x80;
173      }
174   }
175
176   /* Check for day passed */
177   if ( m_rtc.hour >= 0x24 )
178   {
179      m_rtc.hour = 0;
180      m_rtc.day = m_rtc.day + 1;
181   }
182}
183
184void wswan_state::wswan_machine_stop()
185{
186   device_image_interface *image = dynamic_cast<device_image_interface *>(machine().device("cart"));
187   if ( m_eeprom.size )
188   {
189      image->battery_save(m_eeprom.data, m_eeprom.size );
190   }
191}
192
193void wswan_state::wswan_setup_bios()
194{
195   if ( m_ws_bios_bank == NULL )
196   {
197      m_ws_bios_bank = auto_alloc_array(machine(), UINT8, 0x10000 );
198      memcpy( m_ws_bios_bank + 0xffc0, ws_fake_bios_code, 0x40 );
199   }
200}
201
202void wswan_state::wswan_setup_banks()
203{
204   static const char *rom_bank_tags[14] = { "rom1", "rom2", "rom3", "rom4", "rom5", "rom6", "rom7",
205      "rom8", "rom9", "rom10", "rom11", "rom12", "rom13", "rom14" };
206   for (int i = 0; i < 14; i++)
207      m_rom_bank[i] = membank(rom_bank_tags[i]);
208}
209
210136void wswan_state::wswan_register_save()
211137{
212138   save_item(NAME(m_ws_portram));
213139   save_item(NAME(m_internal_eeprom));
214140   save_item(NAME(m_bios_disabled));
215141   save_item(NAME(m_rotate));
216   save_item(NAME(m_bank_base));
217142
218143   save_item(NAME(m_vdp.layer_bg_enable));
219144   save_item(NAME(m_vdp.layer_fg_enable));
r32550r32551
254179   save_item(NAME(m_vdp.timer_vblank_count));
255180   save_item(NAME(m_vdp.main_palette));
256181
257   save_item(NAME(m_eeprom.mode));
258   save_item(NAME(m_eeprom.address));
259   save_item(NAME(m_eeprom.command));
260   save_item(NAME(m_eeprom.start));
261   save_item(NAME(m_eeprom.write_enabled));
262   save_item(NAME(m_eeprom.size));
263   if (m_eeprom.size)
264      save_pointer(NAME(m_eeprom.data), m_eeprom.size);
265
266   save_item(NAME(m_rtc.present));
267   save_item(NAME(m_rtc.setting));
268   save_item(NAME(m_rtc.year));
269   save_item(NAME(m_rtc.month));
270   save_item(NAME(m_rtc.day));
271   save_item(NAME(m_rtc.day_of_week));
272   save_item(NAME(m_rtc.hour));
273   save_item(NAME(m_rtc.minute));
274   save_item(NAME(m_rtc.second));
275   save_item(NAME(m_rtc.index));
276
277182   save_item(NAME(m_sound_dma.source));
278183   save_item(NAME(m_sound_dma.size));
279184   save_item(NAME(m_sound_dma.enable));
280185
186   if (m_cart->exists())
187      m_cart->save_nvram();
188
281189   machine().save().register_postload(save_prepost_delegate(FUNC(wswan_state::wswan_postload), this));
282190}
283191
r32550r32551
286194   address_space &space = m_maincpu->space(AS_PROGRAM);
287195   // restore the vdp pointers
288196   m_vdp.vram = (UINT8*)space.get_read_ptr(0);
289   m_vdp.palette_vram = (UINT8*)space.get_read_ptr(( m_system_type == TYPE_WSC ) ? 0xFE00 : 0 );
290   // restore banks
291   for (int i = 0; i < 14; i++)
292      m_rom_bank[i]->set_entry(m_bank_base[i]);
197   m_vdp.palette_vram = (UINT8*)space.get_read_ptr((m_system_type == TYPE_WSC) ? 0xfe00 : 0);
293198}
294199
200void wswan_state::common_start()
201{
202   m_ws_bios_bank = auto_alloc_array(machine(), UINT8, 0x10000);
203   memcpy(m_ws_bios_bank + 0xffc0, ws_fake_bios_code, 0x40);
204   
205   m_vdp.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(wswan_state::wswan_scanline_interrupt),this), &m_vdp);
206   m_vdp.timer->adjust(attotime::from_ticks(256, 3072000), 0, attotime::from_ticks(256, 3072000));
207   
208   wswan_register_save();
209   
210   machine().device<nvram_device>("nvram")->set_base(m_internal_eeprom, INTERNAL_EEPROM_SIZE);
211   
212   if (m_cart->exists())
213   {     
214      // ROM
215      m_maincpu->space(AS_PROGRAM).install_read_handler(0x20000, 0x2ffff, read8_delegate(FUNC(ws_cart_slot_device::read_rom20),(ws_cart_slot_device*)m_cart));
216      m_maincpu->space(AS_PROGRAM).install_read_handler(0x30000, 0x3ffff, read8_delegate(FUNC(ws_cart_slot_device::read_rom30),(ws_cart_slot_device*)m_cart));
217      m_maincpu->space(AS_PROGRAM).install_read_handler(0x40000, 0xeffff, read8_delegate(FUNC(ws_cart_slot_device::read_rom40),(ws_cart_slot_device*)m_cart));
218     
219      // SRAM
220      if (m_cart->get_type() == WS_SRAM)
221      {
222         m_maincpu->space(AS_PROGRAM).install_read_handler(0x10000, 0x1ffff, read8_delegate(FUNC(ws_cart_slot_device::read_ram),(ws_cart_slot_device*)m_cart));
223         m_maincpu->space(AS_PROGRAM).install_write_handler(0x10000, 0x1ffff, write8_delegate(FUNC(ws_cart_slot_device::write_ram),(ws_cart_slot_device*)m_cart));
224      }
225   }
226}
295227
296228void wswan_state::machine_start()
297229{
298   m_ws_bios_bank = NULL;
230   common_start();
299231   m_system_type = TYPE_WSWAN;
300   machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(wswan_state::wswan_machine_stop),this));
301   m_vdp.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(wswan_state::wswan_scanline_interrupt),this), &m_vdp );
302   m_vdp.timer->adjust( attotime::from_ticks( 256, 3072000 ), 0, attotime::from_ticks( 256, 3072000 ) );
303
304   wswan_setup_bios();
305   wswan_setup_banks();
306   wswan_register_save();
307
308   /* Set up RTC timer */
309   if (m_rtc.present)
310      machine().scheduler().timer_pulse(attotime::from_seconds(1), timer_expired_delegate(FUNC(wswan_state::wswan_rtc_callback),this));
311
312   machine().device<nvram_device>("nvram")->set_base(m_internal_eeprom, INTERNAL_EEPROM_SIZE);
313232}
314233
315234MACHINE_START_MEMBER(wswan_state,wscolor)
316235{
317   m_ws_bios_bank = NULL;
236   common_start();
318237   m_system_type = TYPE_WSC;
319   machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(wswan_state::wswan_machine_stop),this));
320   m_vdp.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(wswan_state::wswan_scanline_interrupt),this), &m_vdp );
321   m_vdp.timer->adjust( attotime::from_ticks( 256, 3072000 ), 0, attotime::from_ticks( 256, 3072000 ) );
322
323   wswan_setup_bios();
324   wswan_setup_banks();
325   wswan_register_save();
326
327   /* Set up RTC timer */
328   if (m_rtc.present)
329      machine().scheduler().timer_pulse(attotime::from_seconds(1), timer_expired_delegate(FUNC(wswan_state::wswan_rtc_callback),this));
330
331   machine().device<nvram_device>("nvram")->set_base(m_internal_eeprom, INTERNAL_EEPROM_SIZE);
332238}
333239
334240void wswan_state::machine_reset()
335241{
336242   address_space &space = m_maincpu->space(AS_PROGRAM);
337243
244   m_bios_disabled = 0;
245
246   m_ws_ram = (UINT8*) m_maincpu->space(AS_PROGRAM).get_read_ptr(0);
247   memset(m_ws_ram, 0, 0xffff);
248
249   if (m_cart->exists())
250      m_rotate = m_cart->get_is_rotated();
251   else
252      m_rotate = 0;     
253
338254   /* Intialize ports */
339255   memcpy(m_ws_portram, ws_portram_init, 256);
340256
r32550r32551
353269
354270   /* Initialize sound DMA */
355271   memset(&m_sound_dma, 0, sizeof(m_sound_dma));
356
357   /* Switch in the banks */
358   for (int bank = 0; bank < 14; bank++)
359   {
360      for (int i = 0; i < m_ROMBanks; i++)
361         m_rom_bank[bank]->configure_entries(i, 1, m_ROMMap[i], 0x10000);
362   }
363   m_rom_bank[13]->configure_entries(m_ROMBanks, 1, m_ws_bios_bank, 0x10000);
364
365   m_bank_base[0] = (m_ROMBanks - 1) & (m_ROMBanks - 1);
366   m_bank_base[1] = (m_ROMBanks - 1) & (m_ROMBanks - 1);
367   m_bank_base[2] = (m_ROMBanks - 12) & (m_ROMBanks - 1);
368   m_bank_base[3] = (m_ROMBanks - 11) & (m_ROMBanks - 1);
369   m_bank_base[4] = (m_ROMBanks - 10) & (m_ROMBanks - 1);
370   m_bank_base[5] = (m_ROMBanks - 9) & (m_ROMBanks - 1);
371   m_bank_base[6] = (m_ROMBanks - 8) & (m_ROMBanks - 1);
372   m_bank_base[7] = (m_ROMBanks - 7) & (m_ROMBanks - 1);
373   m_bank_base[8] = (m_ROMBanks - 6) & (m_ROMBanks - 1);
374   m_bank_base[9] = (m_ROMBanks - 5) & (m_ROMBanks - 1);
375   m_bank_base[10] = (m_ROMBanks - 4) & (m_ROMBanks - 1);
376   m_bank_base[11] = (m_ROMBanks - 3) & (m_ROMBanks - 1);
377   m_bank_base[12] = (m_ROMBanks - 2) & (m_ROMBanks - 1);
378   m_bank_base[13] = m_ROMBanks; // the last bank is mapped to bios at start!
379
380   m_bios_disabled = 0;
381
382   for (int i = 0; i < 14; i++)
383      m_rom_bank[i]->set_entry(m_bank_base[i]);
384272}
385273
386READ8_MEMBER( wswan_state::wswan_sram_r )
274READ8_MEMBER( wswan_state::bios_r )
387275{
388   if ( m_eeprom.data == NULL )
389   {
390      return 0xFF;
391   }
392   return m_eeprom.page[ offset & ( m_eeprom.size - 1 ) ];
276   if (!m_bios_disabled)
277      return m_ws_bios_bank[offset];
278   else
279      return m_cart->read_rom40(space, offset + 0xb0000);
393280}
394281
395WRITE8_MEMBER( wswan_state::wswan_sram_w )
282READ8_MEMBER( wswan_state::port_r )
396283{
397   if ( m_eeprom.data == NULL )
398   {
399      return;
400   }
401   m_eeprom.page[ offset & ( m_eeprom.size - 1 ) ] = data;
402}
403
404READ8_MEMBER( wswan_state::wswan_port_r )
405{
406284   UINT8 value = m_ws_portram[offset];
407285
408   if ( offset != 2 )
409      logerror( "PC=%X: port read %02X\n", m_maincpu->pc(), offset );
410   switch( offset )
286   if (offset != 2)
287      logerror("PC=%X: port read %02X\n", m_maincpu->pc(), offset);
288   switch (offset)
411289   {
412      case 0x02:      /* Current line */
290      case 0x02:      // Current line
413291         value = m_vdp.current_line;
414292         break;
415      case 0x4A:      /* Sound DMA source address (low) */
416         value = m_sound_dma.source & 0xFF;
293      case 0x4a:      // Sound DMA source address (low)
294         value = m_sound_dma.source & 0xff;
417295         break;
418      case 0x4B:      /* Sound DMA source address (high) */
419         value = ( m_sound_dma.source >> 8 ) & 0xFF;
296      case 0x4b:      // Sound DMA source address (high)
297         value = (m_sound_dma.source >> 8) & 0xff;
420298         break;
421      case 0x4C:      /* Sound DMA source memory segment */
422         value = ( m_sound_dma.source >> 16 ) & 0xFF;
299      case 0x4c:      // Sound DMA source memory segment
300         value = (m_sound_dma.source >> 16) & 0xff;
423301         break;
424      case 0x4E:      /* Sound DMA transfer size (low) */
425         value = m_sound_dma.size & 0xFF;
302      case 0x4e:      // Sound DMA transfer size (low)
303         value = m_sound_dma.size & 0xff;
426304         break;
427      case 0x4F:      /* Sound DMA transfer size (high) */
428         value = ( m_sound_dma.size >> 8 ) & 0xFF;
305      case 0x4f:      // Sound DMA transfer size (high)
306         value = (m_sound_dma.size >> 8) & 0xff;
429307         break;
430      case 0x52:      /* Sound DMA start/stop */
308      case 0x52:      // Sound DMA start/stop
431309         value = m_sound_dma.enable;
432310         break;
433      case 0xA0:      /* Hardware type */
434               /* Bit 0 - Disable/enable Bios */
435               /* Bit 1 - Determine mono/color */
436               /* Bit 2 - Determine color/crystal */
311      case 0xa0:      // Hardware type
312               // Bit 0 - Disable/enable Bios
313               // Bit 1 - Determine mono/color
314               // Bit 2 - Determine color/crystal
437315         value = value & ~ 0x02;
438         if ( m_system_type == TYPE_WSC )
439         {
316         if (m_system_type == TYPE_WSC)
440317            value |= 2;
441         }
442318         break;
443      case 0xA8:
444         value = m_vdp.timer_hblank_count & 0xFF;
319      case 0xa8:
320         value = m_vdp.timer_hblank_count & 0xff;
445321         break;
446      case 0xA9:
322      case 0xa9:
447323         value = m_vdp.timer_hblank_count >> 8;
448324         break;
449      case 0xAA:
450         value = m_vdp.timer_vblank_count & 0xFF;
325      case 0xaa:
326         value = m_vdp.timer_vblank_count & 0xff;
451327         break;
452      case 0xAB:
328      case 0xab:
453329         value = m_vdp.timer_vblank_count >> 8;
454330         break;
455      case 0xCB:      /* RTC data */
456         if ( m_ws_portram[0xca] == 0x95 && ( m_rtc.index < 7 ) )
457         {
458            switch( m_rtc.index )
459            {
460            case 0: value = m_rtc.year; break;
461            case 1: value = m_rtc.month; break;
462            case 2: value = m_rtc.day; break;
463            case 3: value = m_rtc.day_of_week; break;
464            case 4: value = m_rtc.hour; break;
465            case 5: value = m_rtc.minute; break;
466            case 6: value = m_rtc.second; break;
467            }
468            m_rtc.index++;
469         }
331      case 0xc0:
332      case 0xc1:
333      case 0xc2:
334      case 0xc3:
335      case 0xc4:   // EEPROM data
336      case 0xc5:   // EEPROM data
337      case 0xc6:
338      case 0xc7:
339      case 0xc8:
340      case 0xc9:
341      case 0xca:
342      case 0xcb:   // RTC data
343      case 0xcc:
344      case 0xcd:
345      case 0xce:
346      case 0xcf:
347         value = m_cart->read_io(space, offset & 0x0f);
348         break;
470349   }
471350
472351   return value;
473352}
474353
475WRITE8_MEMBER( wswan_state::wswan_port_w )
354WRITE8_MEMBER( wswan_state::port_w )
476355{
477356   address_space &mem = m_maincpu->space(AS_PROGRAM);
478357   UINT8 input;
479   logerror( "PC=%X: port write %02X <- %02X\n", m_maincpu->pc(), offset, data );
480   switch( offset )
358   logerror("PC=%X: port write %02X <- %02X\n", m_maincpu->pc(), offset, data);
359   switch (offset)
481360   {
482361      case 0x00:  /* Display control
483362                   Bit 0   - Background layer enable
r32550r32551
555434                */
556435         m_vdp.window_fg_top = data;
557436         break;
558      case 0x0A:  /* Right coordinate of foreground window
437      case 0x0a:  /* Right coordinate of foreground window
559438                   Bit 0-7 - Right coordinate of foreground window area
560439                */
561440         m_vdp.window_fg_right = data;
562441         break;
563      case 0x0B:  /* Bottom coordinate of foreground window
442      case 0x0b:  /* Bottom coordinate of foreground window
564443                   Bit 0-7 - Bottom coordinate of foreground window area
565444                */
566445         m_vdp.window_fg_bottom = data;
567446         break;
568      case 0x0C:  /* Left coordinate of sprite window
447      case 0x0c:  /* Left coordinate of sprite window
569448                   Bit 0-7 - Left coordinate of sprite window area
570449                */
571450         m_vdp.window_sprites_left = data;
572451         break;
573      case 0x0D:  /* Top coordinate of sprite window
452      case 0x0d:  /* Top coordinate of sprite window
574453                   Bit 0-7 - Top coordinate of sprite window area
575454                */
576455         m_vdp.window_sprites_top = data;
577456         break;
578      case 0x0E:  /* Right coordinate of sprite window
457      case 0x0e:  /* Right coordinate of sprite window
579458                   Bit 0-7 - Right coordinate of sprite window area
580459                */
581460         m_vdp.window_sprites_right = data;
582461         break;
583      case 0x0F:  /* Bottom coordinate of sprite window
462      case 0x0f:  /* Bottom coordinate of sprite window
584463                   Bit 0-7 - Bottom coordiante of sprite window area
585464                */
586465         m_vdp.window_sprites_bottom = data;
r32550r32551
626505                   Bit 0-3 - Gray tone setting for main palette index 0
627506                   Bit 4-7 - Gray tone setting for main palette index 1
628507                */
629         if ( m_system_type == TYPE_WSC )
508         if (m_system_type == TYPE_WSC)
630509         {
631510            int i = 15 - ( data & 0x0F );
632511            int j = 15 - ( ( data & 0xF0 ) >> 4 );
r32550r32551
643522                   Bit 0-3 - Gray tone setting for main palette index 2
644523                   Bit 4-7 - Gray tone setting for main palette index 3
645524                */
646         if ( m_system_type == TYPE_WSC )
525         if (m_system_type == TYPE_WSC)
647526         {
648527            int i = 15 - ( data & 0x0F );
649528            int j = 15 - ( ( data & 0xF0 ) >> 4 );
r32550r32551
660539                   Bit 0-3 - Gray tone setting for main palette index 4
661540                   Bit 4-7 - Gray tone setting for main paeltte index 5
662541                */
663         if ( m_system_type == TYPE_WSC )
542         if (m_system_type == TYPE_WSC)
664543         {
665544            int i = 15 - ( data & 0x0F );
666545            int j = 15 - ( ( data & 0xF0 ) >> 4 );
r32550r32551
677556                   Bit 0-3 - Gray tone setting for main palette index 6
678557                   Bit 4-7 - Gray tone setting for main palette index 7
679558                */
680         if ( m_system_type == TYPE_WSC )
559         if (m_system_type == TYPE_WSC)
681560         {
682561            int i = 15 - ( data & 0x0F );
683562            int j = 15 - ( ( data & 0xF0 ) >> 4 );
r32550r32551
711590                   Bit 4-7 - Palette 4 index 1 */
712591      case 0x29:  /* Bit 0-3 - Palette 4 index 2
713592                   Bit 4-7 - Palette 4 index 3 */
714      case 0x2A:  /* Bit 0-3 - Palette 5 index 0
593      case 0x2a:  /* Bit 0-3 - Palette 5 index 0
715594                   Bit 4-7 - Palette 5 index 1 */
716      case 0x2B:  /* Bit 0-3 - Palette 5 index 2
595      case 0x2b:  /* Bit 0-3 - Palette 5 index 2
717596                   Bit 4-7 - Palette 5 index 3 */
718      case 0x2C:  /* Bit 0-3 - Palette 6 index 0
597      case 0x2c:  /* Bit 0-3 - Palette 6 index 0
719598                   Bit 4-7 - Palette 6 index 1 */
720      case 0x2D:  /* Bit 0-3 - Palette 6 index 2
599      case 0x2d:  /* Bit 0-3 - Palette 6 index 2
721600                   Bit 4-7 - Palette 6 index 3 */
722      case 0x2E:  /* Bit 0-3 - Palette 7 index 0
601      case 0x2e:  /* Bit 0-3 - Palette 7 index 0
723602                   Bit 4-7 - Palette 7 index 1 */
724      case 0x2F:  /* Bit 0-3 - Palette 7 index 2
603      case 0x2f:  /* Bit 0-3 - Palette 7 index 2
725604                   Bit 4-7 - Palette 7 index 3 */
726605      case 0x30:  /* Bit 0-3 - Palette 8 / Sprite Palette 0 index 0
727606                   Bit 4-7 - Palette 8 / Sprite Palette 0 index 1 */
r32550r32551
743622                   Bit 4-7 - Palette 12 / Sprite Palette 4 index 1 */
744623      case 0x39:  /* Bit 0-3 - Palette 12 / Sprite Palette 4 index 2
745624                   Bit 4-7 - Palette 12 / Sprite Palette 4 index 3 */
746      case 0x3A:  /* Bit 0-3 - Palette 13 / Sprite Palette 5 index 0
625      case 0x3a:  /* Bit 0-3 - Palette 13 / Sprite Palette 5 index 0
747626                   Bit 4-7 - Palette 13 / Sprite Palette 5 index 1 */
748      case 0x3B:  /* Bit 0-3 - Palette 13 / Sprite Palette 5 index 2
627      case 0x3b:  /* Bit 0-3 - Palette 13 / Sprite Palette 5 index 2
749628                   Bit 4-7 - Palette 13 / Sprite Palette 5 index 3 */
750      case 0x3C:  /* Bit 0-3 - Palette 14 / Sprite Palette 6 index 0
629      case 0x3c:  /* Bit 0-3 - Palette 14 / Sprite Palette 6 index 0
751630                   Bit 4-7 - Palette 14 / Sprite Palette 6 index 1 */
752      case 0x3D:  /* Bit 0-3 - Palette 14 / Sprite Palette 6 index 2
631      case 0x3d:  /* Bit 0-3 - Palette 14 / Sprite Palette 6 index 2
753632                   Bit 4-7 - Palette 14 / Sprite Palette 6 index 3 */
754      case 0x3E:  /* Bit 0-3 - Palette 15 / Sprite Palette 7 index 0
633      case 0x3e:  /* Bit 0-3 - Palette 15 / Sprite Palette 7 index 0
755634                   Bit 4-7 - Palette 15 / Sprite Palette 7 index 1 */
756      case 0x3F:  /* Bit 0-3 - Palette 15 / Sprite Palette 7 index 2
635      case 0x3f:  /* Bit 0-3 - Palette 15 / Sprite Palette 7 index 2
757636                   Bit 4-7 - Palette 15 / Sprite Palette 7 index 3 */
758637         break;
759638      case 0x40:  /* DMA source address (low)
r32550r32551
785664                   Bit 0-6 - Unknown
786665                   Bit 7   - DMA stop/start
787666                */
788         if( data & 0x80 )
667         if (data & 0x80)
789668         {
790669            UINT32 src, dst;
791670            UINT16 length;
r32550r32551
793672            src = m_ws_portram[0x40] + (m_ws_portram[0x41] << 8) + (m_ws_portram[0x42] << 16);
794673            dst = m_ws_portram[0x44] + (m_ws_portram[0x45] << 8) + (m_ws_portram[0x43] << 16);
795674            length = m_ws_portram[0x46] + (m_ws_portram[0x47] << 8);
796            for( ; length > 0; length-- )
675            for ( ; length > 0; length--)
797676            {
798               mem.write_byte(dst, mem.read_byte(src ) );
677               mem.write_byte(dst, mem.read_byte(src));
799678               src++;
800679               dst++;
801680            }
802681#ifdef MAME_DEBUG
803               logerror( "DMA  src:%X dst:%X length:%d\n", src, dst, length );
682               logerror("DMA  src:%X dst:%X length:%d\n", src, dst, length);
804683#endif
805            m_ws_portram[0x40] = src & 0xFF;
806            m_ws_portram[0x41] = ( src >> 8 ) & 0xFF;
807            m_ws_portram[0x44] = dst & 0xFF;
808            m_ws_portram[0x45] = ( dst >> 8 ) & 0xFF;
809            m_ws_portram[0x46] = length & 0xFF;
810            m_ws_portram[0x47] = ( length >> 8 ) & 0xFF;
811            data &= 0x7F;
684            m_ws_portram[0x40] = src & 0xff;
685            m_ws_portram[0x41] = (src >> 8) & 0xff;
686            m_ws_portram[0x44] = dst & 0xff;
687            m_ws_portram[0x45] = (dst >> 8) & 0xff;
688            m_ws_portram[0x46] = length & 0xff;
689            m_ws_portram[0x47] = (length >> 8) & 0xff;
690            data &= 0x7f;
812691         }
813692         break;
814      case 0x4A:  /* Sound DMA source address (low)
693      case 0x4a:  /* Sound DMA source address (low)
815694                   Bit 0-7 - Sound DMA source address bit 0-7
816695                */
817         m_sound_dma.source = ( m_sound_dma.source & 0x0FFF00 ) | data;
696         m_sound_dma.source = (m_sound_dma.source & 0x0fff00) | data;
818697         break;
819      case 0x4B:  /* Sound DMA source address (high)
698      case 0x4b:  /* Sound DMA source address (high)
820699                   Bit 0-7 - Sound DMA source address bit 8-15
821700                */
822         m_sound_dma.source = ( m_sound_dma.source & 0x0F00FF ) | ( data << 8 );
701         m_sound_dma.source = (m_sound_dma.source & 0x0f00ff) | (data << 8);
823702         break;
824      case 0x4C:  /* Sound DMA source memory segment
703      case 0x4c:  /* Sound DMA source memory segment
825704                   Bit 0-3 - Sound DMA source address segment
826705                   Bit 4-7 - Unknown
827706                */
828         m_sound_dma.source = ( m_sound_dma.source & 0xFFFF ) | ( ( data & 0x0F ) << 16 );
707         m_sound_dma.source = (m_sound_dma.source & 0xffff) | ((data & 0x0f) << 16);
829708         break;
830      case 0x4D:  /* Unknown */
709      case 0x4d:  /* Unknown */
831710         break;
832      case 0x4E:  /* Sound DMA transfer size (low)
711      case 0x4e:  /* Sound DMA transfer size (low)
833712                   Bit 0-7 - Sound DMA transfer size bit 0-7
834713                */
835         m_sound_dma.size = ( m_sound_dma.size & 0xFF00 ) | data;
714         m_sound_dma.size = (m_sound_dma.size & 0xff00) | data;
836715         break;
837      case 0x4F:  /* Sound DMA transfer size (high)
716      case 0x4f:  /* Sound DMA transfer size (high)
838717                   Bit 0-7 - Sound DMA transfer size bit 8-15
839718                */
840         m_sound_dma.size = ( m_sound_dma.size & 0xFF ) | ( data << 8 );
719         m_sound_dma.size = (m_sound_dma.size & 0xff) | (data << 8);
841720         break;
842721      case 0x50:  /* Unknown */
843722      case 0x51:  /* Unknown */
r32550r32551
864743          * 001  - packed, 4 color, use 2000, monochrome
865744          * 000  - not packed, 4 color, use 2000, monochrome - Regular WS monochrome
866745          */
867         if ( m_system_type == TYPE_WSC )
746         if (m_system_type == TYPE_WSC)
868747         {
869748            m_vdp.color_mode = data & 0x80;
870749            m_vdp.colors_16 = data & 0x40;
r32550r32551
903782                   Bit 0-3 - Right volume audio channel 2
904783                   Bit 4-7 - Left volume audio channel 2
905784                */
906      case 0x8A:  /* Audio 3 volume
785      case 0x8a:  /* Audio 3 volume
907786                   Bit 0-3 - Right volume audio channel 3
908787                   Bit 4-7 - Left volume audio channel 3
909788                */
910      case 0x8B:  /* Audio 4 volume
789      case 0x8b:  /* Audio 4 volume
911790                   Bit 0-3 - Right volume audio channel 4
912791                   Bit 4-7 - Left volume audio channel 4
913792                */
914      case 0x8C:  /* Sweep step
793      case 0x8c:  /* Sweep step
915794                   Bit 0-7 - Sweep step
916795                */
917      case 0x8D:  /* Sweep time
796      case 0x8d:  /* Sweep time
918797                   Bit 0-7 - Sweep time
919798                */
920      case 0x8E:  /* Noise control
799      case 0x8e:  /* Noise control
921800                   Bit 0-2 - Noise generator type
922801                   Bit 3   - Reset
923802                   Bit 4   - Enable
924803                   Bit 5-7 - Unknown
925804                */
926      case 0x8F:  /* Sample location
805      case 0x8f:  /* Sample location
927806                   Bit 0-7 - Sample address location 0 00xxxxxx xx000000
928807                */
929808      case 0x90:  /* Audio control
r32550r32551
954833                   Bit 0-3 - Master volume
955834                   Bit 4-7 - Unknown
956835                */
957         m_sound->port_w( space, offset, data );
836         m_sound->port_w(space, offset, data);
958837         break;
959838      case 0xa0:  /* Hardware type - this is probably read only
960839                   Bit 0   - Enable cartridge slot and/or disable bios
r32550r32551
962841                   Bit 2-7 - Unknown
963842                */
964843         if ((data & 0x01) && !m_bios_disabled)
965         {
966844            m_bios_disabled = 1;
967            m_bank_base[13] = (((m_ws_portram[0xc0] & 0x0f) << 4) | 15) & (m_ROMBanks - 1);
968            m_rom_bank[13]->set_entry(m_bank_base[13]);
969         }
970845         break;
971846      case 0xa2:  /* Timer control
972847                   Bit 0   - HBlank Timer enable
r32550r32551
975850                   Bit 3   - VBlank Timer mode: 0 = one shot, 1 = auto reset
976851                   Bit 4-7 - Unknown
977852                */
978         m_vdp.timer_hblank_enable = data & 0x1;
979         m_vdp.timer_hblank_mode = (data & 0x2) >> 1;
980         m_vdp.timer_vblank_enable = (data & 0x4) >> 2;
981         m_vdp.timer_vblank_mode = (data & 0x8) >> 3;
853         m_vdp.timer_hblank_enable = BIT(data, 0);
854         m_vdp.timer_hblank_mode =   BIT(data, 1);
855         m_vdp.timer_vblank_enable = BIT(data, 2);
856         m_vdp.timer_vblank_mode =   BIT(data, 3);
982857         break;
983858      case 0xa4:  /* HBlank timer frequency (low) - reload value
984859                   Bit 0-7 - HBlank timer reload value bit 0-7
r32550r32551
1051926                   bit 7   - Receive data interrupt generation
1052927                */
1053928//          data |= 0x02;
1054         m_ws_portram[0xb1] = 0xFF;
1055         if ( data & 0x80 )
929         m_ws_portram[0xb1] = 0xff;
930         if (data & 0x80)
1056931         {
1057932//              m_ws_portram[0xb1] = 0x00;
1058933            data |= 0x04;
1059934         }
1060         if (data & 0x20 )
935         if (data & 0x20)
1061936         {
1062937//              data |= 0x01;
1063938         }
r32550r32551
1070945                             100 - Read START,A,B buttons
1071946                   Bit 7   - Unknown
1072947                */
1073         data = data & 0xF0;
1074         switch( data )
948         data = data & 0xf0;
949         switch (data)
1075950         {
1076951            case 0x10:  /* Read Y cursors: Y1 - Y2 - Y3 - Y4 */
1077952               input = m_cursy->read();
r32550r32551
1113988                   Bit 7   - HBlank timer interrupt acknowledge
1114989                */
1115990         wswan_clear_irq_line(data);
1116         data = m_ws_portram[0xB6];
991         data = m_ws_portram[0xb6];
1117992         break;
1118993      case 0xba:  /* Internal EEPROM data (low)
1119994                   Bit 0-7 - Internal EEPROM data transfer bit 0-7
r32550r32551
11401015                   Bit 6   - Protect
11411016                   Bit 7   - Initialize
11421017                */
1143         if ( data & 0x20 )
1018         if (data & 0x20)
11441019         {
11451020            UINT16 addr = ( ( ( m_ws_portram[0xbd] << 8 ) | m_ws_portram[0xbc] ) << 1 ) & 0x1FF;
11461021            m_internal_eeprom[ addr ] = m_ws_portram[0xba];
r32550r32551
11591034            logerror( "Unsupported internal EEPROM command: %X\n", data );
11601035         }
11611036         break;
1162      case 0xc0:
1163         // Bit 0-3 - ROM bank base register for rom3-rom14
1164         // Bit 4-7 - Unknown
1165         m_bank_base[2] =  (((data & 0x0f) << 4) |  4) & (m_ROMBanks - 1);
1166         m_bank_base[3] =  (((data & 0x0f) << 4) |  5) & (m_ROMBanks - 1);
1167         m_bank_base[4] =  (((data & 0x0f) << 4) |  6) & (m_ROMBanks - 1);
1168         m_bank_base[5] =  (((data & 0x0f) << 4) |  7) & (m_ROMBanks - 1);
1169         m_bank_base[6] =  (((data & 0x0f) << 4) |  8) & (m_ROMBanks - 1);
1170         m_bank_base[7] =  (((data & 0x0f) << 4) |  9) & (m_ROMBanks - 1);
1171         m_bank_base[8] =  (((data & 0x0f) << 4) | 10) & (m_ROMBanks - 1);
1172         m_bank_base[9] =  (((data & 0x0f) << 4) | 11) & (m_ROMBanks - 1);
1173         m_bank_base[10] = (((data & 0x0f) << 4) | 12) & (m_ROMBanks - 1);
1174         m_bank_base[11] = (((data & 0x0f) << 4) | 13) & (m_ROMBanks - 1);
1175         m_bank_base[12] = (((data & 0x0f) << 4) | 14) & (m_ROMBanks - 1);
1176         for (int i = 2; i < 13; i++)
1177            m_rom_bank[i]->set_entry(m_bank_base[i]);
1178
1179         m_bank_base[13] = m_ROMBanks; // the last bank is mapped to bios at start!
1180         if (m_bios_disabled)
1181         {
1182            m_bank_base[13] = (((data & 0x0f) << 4) | 14) & (m_ROMBanks - 1);
1183            m_rom_bank[13]->set_entry(m_bank_base[13]);
1184         }
1037      case 0xc0:   // ROM bank $40000-$fffff
1038      case 0xc1:   // SRAM bank
1039      case 0xc2:   // ROM bank $20000-$2ffff
1040      case 0xc3:   // ROM bank $30000-$3ffff
1041      case 0xc4:
1042      case 0xc5:
1043      case 0xc6:   // EEPROM address / command
1044      case 0xc7:   // EEPROM address / command
1045      case 0xc8:   // EEPROM command
1046      case 0xc9:
1047      case 0xca:   // RTC command
1048      case 0xcb:   // RTC data
1049      case 0xcc:
1050      case 0xcd:
1051      case 0xce:
1052      case 0xcf:
1053         m_cart->write_io(space, offset & 0x0f, data);
11851054         break;
1186      case 0xc1:  /* SRAM bank select
1187                   Bit 0-7 - SRAM bank to select
1188                */
1189         if ( m_eeprom.mode == SRAM_64K || m_eeprom.mode == SRAM_256K || m_eeprom.mode == SRAM_512K || m_eeprom.mode == SRAM_1M || m_eeprom.mode == SRAM_2M )
1190         {
1191            m_eeprom.page = &m_eeprom.data[ ( data * 64 * 1024 ) & ( m_eeprom.size - 1 ) ];
1192         }
1193         break;
1194      case 0xc2:
1195         // Bit 0-7 - ROM bank for segment 2 (0x20000 - 0x2ffff)
1196         m_bank_base[0] =  data & (m_ROMBanks - 1);
1197         m_rom_bank[0]->set_entry(m_bank_base[0]);
1198         break;
1199      case 0xc3:
1200         // Bit 0-7 - ROM bank for segment 3 (0x30000 - 0x3ffff)
1201         m_bank_base[1] =  data & (m_ROMBanks - 1);
1202         m_rom_bank[1]->set_entry(m_bank_base[1]);
1203         break;
1204      case 0xc6:  /* EEPROM address lower bits port/EEPROM address and command port
1205                   1KBit EEPROM:
1206                   Bit 0-5 - EEPROM address bit 1-6
1207                   Bit 6-7 - Command
1208                             00 - Extended command address bit 4-5:
1209                                  00 - Write disable
1210                                  01 - Write all
1211                                  10 - Erase all
1212                                  11 - Write enable
1213                             01 - Write
1214                             10 - Read
1215                             11 - Erase
1216                   16KBit EEPROM:
1217                   Bit 0-7 - EEPROM address bit 1-8
1218                */
1219         switch( m_eeprom.mode )
1220         {
1221         case EEPROM_1K:
1222            m_eeprom.address = data & 0x3F;
1223            m_eeprom.command = data >> 4;
1224            if ( ( m_eeprom.command & 0x0C ) != 0x00 )
1225            {
1226               m_eeprom.command = m_eeprom.command & 0x0C;
1227            }
1228            break;
1229         case EEPROM_16K:
1230            m_eeprom.address = ( m_eeprom.address & 0xFF00 ) | data;
1231            break;
1232         default:
1233            logerror( "Write EEPROM address/register register C6 for unsupported EEPROM type\n" );
1234            break;
1235         }
1236         break;
1237      case 0xc7:  /* EEPROM higher bits/command bits port
1238                   1KBit EEPROM:
1239                   Bit 0   - Start
1240                   Bit 1-7 - Unknown
1241                   16KBit EEPROM:
1242                   Bit 0-1 - EEPROM address bit 9-10
1243                   Bit 2-3 - Command
1244                             00 - Extended command address bit 0-1:
1245                                  00 - Write disable
1246                                  01 - Write all
1247                                  10 - Erase all
1248                                  11 - Write enable
1249                             01 - Write
1250                             10 - Read
1251                         11 - Erase
1252                   Bit 4   - Start
1253                   Bit 5-7 - Unknown
1254                */
1255         switch( m_eeprom.mode )
1256         {
1257         case EEPROM_1K:
1258            m_eeprom.start = data & 0x01;
1259            break;
1260         case EEPROM_16K:
1261            m_eeprom.address = ( ( data & 0x03 ) << 8 ) | ( m_eeprom.address & 0xFF );
1262            m_eeprom.command = data & 0x0F;
1263            if ( ( m_eeprom.command & 0x0C ) != 0x00 )
1264            {
1265               m_eeprom.command = m_eeprom.command & 0x0C;
1266            }
1267            m_eeprom.start = ( data >> 4 ) & 0x01;
1268            break;
1269         default:
1270            logerror( "Write EEPROM address/command register C7 for unsupported EEPROM type\n" );
1271            break;
1272         }
1273         break;
1274      case 0xc8:  /* EEPROM command
1275                   Bit 0   - Read complete (read only)
1276                   Bit 1   - Write complete (read only)
1277                   Bit 2-3 - Unknown
1278                   Bit 4   - Read
1279                   Bit 5   - Write
1280                   Bit 6   - Protect
1281                   Bit 7   - Initialize
1282                */
1283         if ( m_eeprom.mode == EEPROM_1K || m_eeprom.mode == EEPROM_16K )
1284         {
1285            if ( data & 0x80 )
1286            {   /* Initialize */
1287               logerror( "Unsupported EEPROM command 'Initialize'\n" );
1288            }
1289            if ( data & 0x40 )
1290            {   /* Protect */
1291               switch( m_eeprom.command )
1292               {
1293               case 0x00:
1294                  m_eeprom.write_enabled = 0;
1295                  data |= 0x02;
1296                  break;
1297               case 0x03:
1298                  m_eeprom.write_enabled = 1;
1299                  data |= 0x02;
1300                  break;
1301               default:
1302                  logerror( "Unsupported 'Protect' command %X\n", m_eeprom.command );
1303               }
1304            }
1305            if ( data & 0x20 )
1306            {   /* Write */
1307               if ( m_eeprom.write_enabled )
1308               {
1309                  switch( m_eeprom.command )
1310                  {
1311                  case 0x04:
1312                     m_eeprom.data[ ( m_eeprom.address << 1 ) + 1 ] = m_ws_portram[0xc4];
1313                     m_eeprom.data[ m_eeprom.address << 1 ] = m_ws_portram[0xc5];
1314                     data |= 0x02;
1315                     break;
1316                  default:
1317                     logerror( "Unsupported 'Write' command %X\n", m_eeprom.command );
1318                  }
1319               }
1320            }
1321            if ( data & 0x10 )
1322            {   /* Read */
1323               m_ws_portram[0xc4] = m_eeprom.data[ ( m_eeprom.address << 1 ) + 1 ];
1324               m_ws_portram[0xc5] = m_eeprom.data[ m_eeprom.address << 1 ];
1325               data |= 0x01;
1326            }
1327         }
1328         else
1329         {
1330            logerror( "EEPROM command for unknown EEPROM type\n" );
1331         }
1332         break;
1333      case 0xca:  /* RTC Command
1334                   Bit 0-4 - RTC command
1335                             10000 - Reset
1336                             10010 - Write timer settings (alarm)
1337                             10011 - Read timer settings (alarm)
1338                             10100 - Set time/date
1339                             10101 - Get time/date
1340                   Bit 5-6 - Unknown
1341                   Bit 7   - Command done (read only)
1342                */
1343         switch( data )
1344         {
1345         case 0x10:  /* Reset */
1346            m_rtc.index = 8;
1347            m_rtc.year = 0;
1348            m_rtc.month = 1;
1349            m_rtc.day = 1;
1350            m_rtc.day_of_week = 0;
1351            m_rtc.hour = 0;
1352            m_rtc.minute = 0;
1353            m_rtc.second = 0;
1354            m_rtc.setting = 0xFF;
1355            data |= 0x80;
1356            break;
1357         case 0x12:  /* Write Timer Settings (Alarm) */
1358            m_rtc.index = 8;
1359            m_rtc.setting = m_ws_portram[0xcb];
1360            data |= 0x80;
1361            break;
1362         case 0x13:  /* Read Timer Settings (Alarm) */
1363            m_rtc.index = 8;
1364            m_ws_portram[0xcb] = m_rtc.setting;
1365            data |= 0x80;
1366            break;
1367         case 0x14:  /* Set Time/Date */
1368            m_rtc.year = m_ws_portram[0xcb];
1369            m_rtc.index = 1;
1370            data |= 0x80;
1371            break;
1372         case 0x15:  /* Get Time/Date */
1373            m_rtc.index = 0;
1374            data |= 0x80;
1375            m_ws_portram[0xcb] = m_rtc.year;
1376            break;
1377         default:
1378            logerror( "%X: Unknown RTC command (%X) requested\n", mem.device().safe_pc(), data );
1379         }
1380         break;
1381      case 0xcb:  /* RTC Data */
1382         if ( m_ws_portram[0xca] == 0x94 && m_rtc.index < 7 )
1383         {
1384            switch( m_rtc.index )
1385            {
1386            case 0: m_rtc.year = data; break;
1387            case 1: m_rtc.month = data; break;
1388            case 2: m_rtc.day = data; break;
1389            case 3: m_rtc.day_of_week = data; break;
1390            case 4: m_rtc.hour = data; break;
1391            case 5: m_rtc.minute = data; break;
1392            case 6: m_rtc.second = data; break;
1393            }
1394            m_rtc.index++;
1395         }
1396         break;
13971055      default:
13981056         logerror( "Write to unsupported port: %X - %X\n", offset, data );
13991057         break;
r32550r32551
14031061   m_ws_portram[offset] = data;
14041062}
14051063
1406const char* wswan_state::wswan_determine_sram(UINT8 data )
1407{
1408   m_eeprom.write_enabled = 0;
1409   m_eeprom.mode = SRAM_UNKNOWN;
1410   switch( data )
1411   {
1412   case 0x00: m_eeprom.mode = SRAM_NONE; break;
1413   case 0x01: m_eeprom.mode = SRAM_64K; break;
1414   case 0x02: m_eeprom.mode = SRAM_256K; break;
1415   case 0x03: m_eeprom.mode = SRAM_1M; break;
1416   case 0x04: m_eeprom.mode = SRAM_2M; break;
1417   case 0x05: m_eeprom.mode = SRAM_512K; break;
1418   case 0x10: m_eeprom.mode = EEPROM_1K; break;
1419   case 0x20: m_eeprom.mode = EEPROM_16K; break;
1420   case 0x50: m_eeprom.mode = EEPROM_8K; break;
1421   }
1422   m_eeprom.size = wswan_sram_size[ m_eeprom.mode ];
1423   return wswan_sram_str[ m_eeprom.mode ];
1424}
14251064
1426enum enum_romsize { ROM_4M=0, ROM_8M, ROM_16M, ROM_32M, ROM_64M, ROM_128M, ROM_UNKNOWN };
1427static const char *const wswan_romsize_str[] = {
1428   "4Mbit", "8Mbit", "16Mbit", "32Mbit", "64Mbit", "128Mbit", "Unknown"
1429};
1430
1431const char* wswan_state::wswan_determine_romsize( UINT8 data )
1432{
1433   switch( data )
1434   {
1435   case 0x02:  return wswan_romsize_str[ ROM_4M ];
1436   case 0x03:  return wswan_romsize_str[ ROM_8M ];
1437   case 0x04:  return wswan_romsize_str[ ROM_16M ];
1438   case 0x06:  return wswan_romsize_str[ ROM_32M ];
1439   case 0x08:  return wswan_romsize_str[ ROM_64M ];
1440   case 0x09:  return wswan_romsize_str[ ROM_128M ];
1441   }
1442   return wswan_romsize_str[ ROM_UNKNOWN ];
1443}
1444
1445
1446DRIVER_INIT_MEMBER(wswan_state, wswan)
1447{
1448   /* Initialize EEPROM structure */
1449   memset( &m_eeprom, 0, sizeof( m_eeprom ) );
1450   m_eeprom.data = NULL;
1451   m_eeprom.page = NULL;
1452
1453   /* Initialize RTC structure */
1454   m_rtc.present = 0;
1455   m_rtc.index = 0;
1456   m_rtc.year = 0;
1457   m_rtc.month = 0;
1458   m_rtc.day = 0;
1459   m_rtc.day_of_week = 0;
1460   m_rtc.hour = 0;
1461   m_rtc.minute = 0;
1462   m_rtc.second = 0;
1463   m_rtc.setting = 0xFF;
1464}
1465
1466
1467DEVICE_IMAGE_LOAD_MEMBER(wswan_state,wswan_cart)
1468{
1469   UINT32 size;
1470   const char *sram_str;
1471
1472   if (image.software_entry() == NULL)
1473      size = image.length();
1474   else
1475      size = image.get_software_region_length("rom");
1476
1477   m_ws_ram = (UINT8*) m_maincpu->space(AS_PROGRAM).get_read_ptr(0);
1478   memset(m_ws_ram, 0, 0xffff);
1479   m_ROMBanks = size / 65536;
1480
1481   for (int i = 0; i < m_ROMBanks; i++)
1482   {
1483      if ((m_ROMMap[i] = auto_alloc_array(machine(), UINT8, 0x10000)))
1484      {
1485         if (image.software_entry() == NULL)
1486         {
1487            if (image.fread( m_ROMMap[i], 0x10000) != 0x10000)
1488            {
1489               image.seterror(IMAGE_ERROR_INVALIDIMAGE, "Wrongly sized ROM");
1490               image.message(" Wrongly sized ROM");
1491               logerror("Error while reading loading rom!\n");
1492               return IMAGE_INIT_FAIL;
1493            }
1494         }
1495         else
1496            memcpy(m_ROMMap[i], image.get_software_region("rom") + i * 0x10000, 0x10000);
1497      }
1498      else
1499      {
1500         image.seterror(IMAGE_ERROR_INVALIDIMAGE, "Unable to allocate memory for ROM");
1501         image.message(" Unable to allocate memory for ROM");
1502         logerror("Memory allocation failed reading rom!\n");
1503         return IMAGE_INIT_FAIL;
1504      }
1505   }
1506
1507   sram_str = wswan_determine_sram(m_ROMMap[m_ROMBanks - 1][0xfffb]);
1508
1509   m_rtc.present = m_ROMMap[m_ROMBanks - 1][0xfffd] ? 1 : 0;
1510   m_rotate = m_ROMMap[m_ROMBanks-1][0xfffc] & 0x01;
1511
1512   {
1513      int sum = 0;
1514      /* Spit out some info */
1515      logerror("ROM DETAILS\n" );
1516      logerror("\tDeveloper ID: %X\n", m_ROMMap[m_ROMBanks - 1][0xfff6]);
1517      logerror("\tMinimum system: %s\n", m_ROMMap[m_ROMBanks - 1][0xfff7] ? "WonderSwan Color" : "WonderSwan");
1518      logerror("\tCart ID: %X\n", m_ROMMap[m_ROMBanks - 1][0xfff8]);
1519      logerror("\tROM size: %s\n", wswan_determine_romsize(m_ROMMap[m_ROMBanks - 1][0xfffa]));
1520      logerror("\tSRAM size: %s\n", sram_str);
1521      logerror("\tFeatures: %X\n", m_ROMMap[m_ROMBanks - 1][0xfffc]);
1522      logerror("\tRTC: %s\n", m_ROMMap[m_ROMBanks - 1][0xfffd] ? "yes" : "no");
1523      for (int i = 0; i < m_ROMBanks; i++)
1524      {
1525         int count;
1526         for (count = 0; count < 0x10000; count++)
1527         {
1528            sum += m_ROMMap[i][count];
1529         }
1530      }
1531      sum -= m_ROMMap[m_ROMBanks - 1][0xffff];
1532      sum -= m_ROMMap[m_ROMBanks - 1][0xfffe];
1533      sum &= 0xffff;
1534      logerror("\tChecksum: %X%X (calculated: %04X)\n", m_ROMMap[m_ROMBanks - 1][0xffff], m_ROMMap[m_ROMBanks - 1][0xfffe], sum);
1535   }
1536
1537   if (m_eeprom.size != 0)
1538   {
1539      m_eeprom.data = auto_alloc_array(machine(), UINT8, m_eeprom.size);
1540      image.battery_load(m_eeprom.data, m_eeprom.size, 0x00);
1541      m_eeprom.page = m_eeprom.data;
1542   }
1543
1544   if (image.software_entry() == NULL)
1545   {
1546      logerror("Image Name: %s\n", image.longname());
1547      logerror("Image Year: %s\n", image.year());
1548      logerror("Image Manufacturer: %s\n", image.manufacturer());
1549   }
1550
1551   /* All done */
1552   return IMAGE_INIT_PASS;
1553}
1554
15551065TIMER_CALLBACK_MEMBER(wswan_state::wswan_scanline_interrupt)
15561066{
15571067   if( m_vdp.current_line < 144 )
r32550r32551
15841094   {
15851095      address_space &space = m_maincpu->space(AS_PROGRAM );
15861096      /* TODO: Output sound DMA byte */
1587      wswan_port_w( space, 0x89, space.read_byte(m_sound_dma.source ) );
1097      port_w( space, 0x89, space.read_byte(m_sound_dma.source ) );
15881098      m_sound_dma.size--;
15891099      m_sound_dma.source = ( m_sound_dma.source + 1 ) & 0x0FFFFF;
15901100      if ( m_sound_dma.size == 0 )
trunk/src/mess/includes/wswan.h
r32550r32551
1717
1818#include "emu.h"
1919#include "cpu/v30mz/v30mz.h"
20#include "imagedev/cartslot.h"
2120#include "machine/nvram.h"
21#include "bus/wswan/slot.h"
22#include "bus/wswan/rom.h"
2223
2324
24struct EEPROM
25{
26   UINT8   mode;       /* eeprom mode */
27   UINT16  address;    /* Read/write address */
28   UINT8   command;    /* Commands: 00, 01, 02, 03, 04, 08, 0C */
29   UINT8   start;      /* start bit */
30   UINT8   write_enabled;  /* write enabled yes/no */
31   int size;       /* size of eeprom/sram area */
32   UINT8   *data;      /* pointer to start of sram/eeprom data */
33   UINT8   *page;      /* pointer to current sram/eeprom page */
34};
35
36struct RTC
37{
38   UINT8   present;    /* Is an RTC present */
39   UINT8   setting;    /* Timer setting byte */
40   UINT8   year;       /* Year */
41   UINT8   month;      /* Month */
42   UINT8   day;        /* Day */
43   UINT8   day_of_week;    /* Day of the week */
44   UINT8   hour;       /* Hour, high bit = 0 => AM, high bit = 1 => PM */
45   UINT8   minute;     /* Minute */
46   UINT8   second;     /* Second */
47   UINT8   index;      /* index for reading/writing of current of alarm time */
48};
49
5025struct SoundDMA
5126{
5227   UINT32  source;     /* Source address */
r32550r32551
11085      : driver_device(mconfig, type, tag),
11186      m_maincpu(*this, "maincpu"),
11287      m_sound(*this, "custom"),
88      m_cart(*this, "cartslot"),
11389      m_cursx(*this, "CURSX"),
11490      m_cursy(*this, "CURSY"),
11591      m_buttons(*this, "BUTTONS") { }
r32550r32551
12096
12197   required_device<cpu_device> m_maincpu;
12298   required_device<wswan_sound_device> m_sound;
123   DECLARE_READ8_MEMBER(wswan_port_r);
124   DECLARE_WRITE8_MEMBER(wswan_port_w);
125   DECLARE_READ8_MEMBER(wswan_sram_r);
126   DECLARE_WRITE8_MEMBER(wswan_sram_w);
99   required_device<ws_cart_slot_device> m_cart;
100   DECLARE_READ8_MEMBER(bios_r);
101   DECLARE_READ8_MEMBER(port_r);
102   DECLARE_WRITE8_MEMBER(port_w);
127103
128104   VDP m_vdp;
129105   UINT8 m_ws_portram[256];
130   UINT8 *m_ROMMap[256];
131   UINT32 m_ROMBanks;
132106   UINT8 m_internal_eeprom[INTERNAL_EEPROM_SIZE];
133107   UINT8 m_system_type;
134   EEPROM m_eeprom;
135   RTC m_rtc;
136108   SoundDMA m_sound_dma;
137109   UINT8 *m_ws_ram;
138110   UINT8 *m_ws_bios_bank;
r32550r32551
140112   int m_pal[16][16];
141113   bitmap_ind16 m_bitmap;
142114   UINT8 m_rotate;
143   UINT8 m_bank_base[14];
144115
145116   void wswan_clear_irq_line(int irq);
117   void common_start();
146118   virtual void machine_start();
147119   virtual void machine_reset();
148120   DECLARE_PALETTE_INIT(wswan);
149121   DECLARE_MACHINE_START(wscolor);
150122   DECLARE_PALETTE_INIT(wscolor);
151   TIMER_CALLBACK_MEMBER(wswan_rtc_callback);
152123   TIMER_CALLBACK_MEMBER(wswan_scanline_interrupt);
153   void wswan_machine_stop();
154   DECLARE_DRIVER_INIT( wswan );
155   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( wswan_cart );
156124
157125protected:
158126   /* Interrupt flags */
r32550r32551
178146   required_ioport m_cursx;
179147   required_ioport m_cursy;
180148   required_ioport m_buttons;
181   memory_bank *m_rom_bank[14];
182149
183   void wswan_setup_bios();
184   void wswan_setup_banks();
185150   void wswan_register_save();
186151   void wswan_postload();
187152   void wswan_handle_irqs();
r32550r32551
193158   void wswan_draw_foreground_3();
194159   void wswan_handle_sprites( int mask );
195160   void wswan_refresh_scanline( );
196   const char* wswan_determine_sram( UINT8 data );
197   const char* wswan_determine_romsize( UINT8 data );
198161};
199162
200163
trunk/src/emu/bus/wswan/rom.h
r0r32551
1#ifndef __WS_ROM_H
2#define __WS_ROM_H
3
4#include "slot.h"
5
6
7// ======================> ws_rom_device
8
9class ws_rom_device : public device_t,
10                  public device_ws_cart_interface
11{
12public:
13   // construction/destruction
14   ws_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);
15   ws_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
16
17   // device-level overrides
18   virtual void device_start();
19   virtual void device_reset();
20   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
21
22   // reading and writing
23   virtual DECLARE_READ8_MEMBER(read_rom20);
24   virtual DECLARE_READ8_MEMBER(read_rom30);
25   virtual DECLARE_READ8_MEMBER(read_rom40);
26   virtual DECLARE_READ8_MEMBER(read_io);
27   virtual DECLARE_WRITE8_MEMBER(write_io);
28
29protected:
30   UINT8 m_io_regs[0x10];
31   UINT32 m_base20, m_base30, m_base40;
32
33   // RTC
34   UINT8   m_rtc_setting;    /* Timer setting byte */
35   UINT8   m_rtc_year;       /* Year */
36   UINT8   m_rtc_month;      /* Month */
37   UINT8   m_rtc_day;        /* Day */
38   UINT8   m_rtc_day_of_week;    /* Day of the week */
39   UINT8   m_rtc_hour;       /* Hour, high bit = 0 => AM, high bit = 1 => PM */
40   UINT8   m_rtc_minute;     /* Minute */
41   UINT8   m_rtc_second;     /* Second */
42   UINT8   m_rtc_index;      /* index for reading/writing of current of alarm time */
43
44   static const device_timer_id TIMER_RTC = 0;
45   emu_timer *rtc_timer;
46};
47
48
49// ======================> ws_rom_sram_device
50
51class ws_rom_sram_device : public ws_rom_device
52{
53public:
54   // construction/destruction
55   ws_rom_sram_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
56   
57   // device-level overrides
58   virtual void device_start();
59   virtual void device_reset();
60   
61   // reading and writing
62   virtual DECLARE_READ8_MEMBER(read_ram);
63   virtual DECLARE_WRITE8_MEMBER(write_ram);
64   virtual DECLARE_WRITE8_MEMBER(write_io);
65
66private:
67   UINT32 m_nvram_base;
68};
69
70
71// ======================> ws_rom_eeprom_device
72
73class ws_rom_eeprom_device : public ws_rom_device
74{
75public:
76   // construction/destruction
77   ws_rom_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
78   
79   // device-level overrides
80   virtual void device_start();
81   virtual void device_reset();
82   
83   // reading and writing
84   virtual DECLARE_READ8_MEMBER(read_ram);
85   virtual DECLARE_WRITE8_MEMBER(write_ram);
86   virtual DECLARE_READ8_MEMBER(read_io);
87   virtual DECLARE_WRITE8_MEMBER(write_io);
88
89private:
90   UINT8   m_eeprom_mode;       /* eeprom mode */
91   UINT16  m_eeprom_address;    /* Read/write address */
92   UINT8   m_eeprom_command;    /* Commands: 00, 01, 02, 03, 04, 08, 0C */
93   UINT8   m_eeprom_start;      /* start bit */
94   UINT8   m_eeprom_write_enabled;  /* write enabled yes/no */
95   int     m_eeprom_size;       /* size of eeprom/sram area */
96};
97
98
99
100// device type definition
101extern const device_type WS_ROM_STD;
102extern const device_type WS_ROM_SRAM;
103extern const device_type WS_ROM_EEPROM;
104
105
106#endif
Property changes on: trunk/src/emu/bus/wswan/rom.h
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/plain
trunk/src/emu/bus/wswan/slot.h
r0r32551
1#ifndef __WS_SLOT_H
2#define __WS_SLOT_H
3
4/***************************************************************************
5 TYPE DEFINITIONS
6 ***************************************************************************/
7
8
9/* PCB */
10enum
11{
12   WS_STD = 0,
13   WS_SRAM,
14   WS_EEPROM
15};
16
17
18// ======================> device_ws_cart_interface
19
20class device_ws_cart_interface : public device_slot_card_interface
21{
22public:
23   // construction/destruction
24   device_ws_cart_interface(const machine_config &mconfig, device_t &device);
25   virtual ~device_ws_cart_interface();
26
27   // reading and writing
28   virtual DECLARE_READ8_MEMBER(read_rom20) { return 0xff; }
29   virtual DECLARE_READ8_MEMBER(read_rom30) { return 0xff; }
30   virtual DECLARE_READ8_MEMBER(read_rom40) { return 0xff; }
31   virtual DECLARE_READ8_MEMBER(read_ram) { return 0xff; }
32   virtual DECLARE_WRITE8_MEMBER(write_ram) {}
33   virtual DECLARE_READ8_MEMBER(read_io) { return 0xff; }
34   virtual DECLARE_WRITE8_MEMBER(write_io) {}
35
36   void rom_alloc(UINT32 size, const char *tag);
37   void nvram_alloc(UINT32 size);
38   UINT8* get_rom_base() { return m_rom; }
39   UINT8* get_nvram_base() { return m_nvram; }
40   UINT32 get_rom_size() { return m_rom_size; }
41   UINT32 get_nvram_size() { return m_nvram.count(); }
42
43   void save_nvram()   { device().save_item(NAME(m_nvram)); }
44   void set_has_rtc(bool val) { m_has_rtc = val; }
45   void set_is_rotated(bool val) { m_is_rotated = val; }
46   int get_is_rotated() { return m_is_rotated ? 1 : 0; }
47
48protected:
49   // internal state
50   UINT8 *m_rom;
51   UINT32 m_rom_size;
52   dynamic_buffer m_nvram;
53   int m_bank_mask;
54
55   bool m_has_rtc, m_is_rotated;
56};
57
58
59// ======================> ws_cart_slot_device
60
61class ws_cart_slot_device : public device_t,
62                        public device_image_interface,
63                        public device_slot_interface
64{
65public:
66   // construction/destruction
67   ws_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
68   virtual ~ws_cart_slot_device();
69
70   // device-level overrides
71   virtual void device_start();
72   virtual void device_config_complete();
73
74   // image-level overrides
75   virtual bool call_load();
76   virtual void call_unload();
77   virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry);
78
79   int get_type() { return m_type; }
80   int get_is_rotated() { return m_cart->get_is_rotated(); }
81   int get_cart_type(UINT8 *ROM, UINT32 len, UINT32 &nvram_len);
82   void internal_header_logging(UINT8 *ROM, UINT32 len);
83
84   void save_nvram()   { if (m_cart && m_cart->get_nvram_size()) m_cart->save_nvram(); }
85
86   virtual iodevice_t image_type() const { return IO_CARTSLOT; }
87   virtual bool is_readable()  const { return 1; }
88   virtual bool is_writeable() const { return 0; }
89   virtual bool is_creatable() const { return 0; }
90   virtual bool must_be_loaded() const { return 1; }
91   virtual bool is_reset_on_load() const { return 1; }
92   virtual const option_guide *create_option_guide() const { return NULL; }
93   virtual const char *image_interface() const { return "wswan_cart"; }
94   virtual const char *file_extensions() const { return "ws,wsc,bin"; }
95
96   // slot interface overrides
97   virtual void get_default_card_software(astring &result);
98
99   // reading and writing
100   virtual DECLARE_READ8_MEMBER(read_rom20);
101   virtual DECLARE_READ8_MEMBER(read_rom30);
102   virtual DECLARE_READ8_MEMBER(read_rom40);
103   virtual DECLARE_READ8_MEMBER(read_ram);
104   virtual DECLARE_WRITE8_MEMBER(write_ram);
105   virtual DECLARE_READ8_MEMBER(read_io);
106   virtual DECLARE_WRITE8_MEMBER(write_io);
107
108protected:
109
110   int m_type;
111   device_ws_cart_interface*       m_cart;
112};
113
114
115
116// device type definition
117extern const device_type WS_CART_SLOT;
118
119
120/***************************************************************************
121 DEVICE CONFIGURATION MACROS
122 ***************************************************************************/
123
124#define WSSLOT_ROM_REGION_TAG ":cart:rom"
125
126#define MCFG_WSWAN_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \
127   MCFG_DEVICE_ADD(_tag, WS_CART_SLOT, 0) \
128   MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \
129
130#endif
Property changes on: trunk/src/emu/bus/wswan/slot.h
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/emu/bus/wswan/rom.c
r0r32551
1/***********************************************************************************************************
2
3
4 Bandai Wonderswan / Wonderswan Color cart emulation
5
6
7 ***********************************************************************************************************/
8
9
10#include "emu.h"
11#include "rom.h"
12
13enum
14{
15   EEPROM_1K, EEPROM_8K, EEPROM_16K
16};
17
18//-------------------------------------------------
19//  ws_rom_device - constructor
20//-------------------------------------------------
21
22const device_type WS_ROM_STD = &device_creator<ws_rom_device>;
23const device_type WS_ROM_SRAM = &device_creator<ws_rom_sram_device>;
24const device_type WS_ROM_EEPROM = &device_creator<ws_rom_eeprom_device>;
25
26
27ws_rom_device::ws_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)
28               : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
29                  device_ws_cart_interface( mconfig, *this )
30{
31}
32
33ws_rom_device::ws_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
34               : device_t(mconfig, WS_ROM_STD, "Wonderswan Standard Carts", tag, owner, clock, "ws_rom", __FILE__),
35                  device_ws_cart_interface( mconfig, *this )
36{
37}
38
39ws_rom_sram_device::ws_rom_sram_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
40               : ws_rom_device(mconfig, WS_ROM_SRAM, "Wonderswan Carts w/SRAM", tag, owner, clock, "ws_sram", __FILE__)
41{
42}
43
44
45ws_rom_eeprom_device::ws_rom_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
46               : ws_rom_device(mconfig, WS_ROM_EEPROM, "Wonderswan Carts w/EEPROM", tag, owner, clock, "ws_eeprom", __FILE__)
47{
48}
49
50
51//-------------------------------------------------
52//  device_start - device-specific startup
53//-------------------------------------------------
54
55void ws_rom_device::device_start()
56{
57   save_item(NAME(m_base20));
58   save_item(NAME(m_base30));
59   save_item(NAME(m_base40));
60   save_item(NAME(m_io_regs));
61
62   // Set up RTC timer
63   if (m_has_rtc)
64   {
65      rtc_timer = timer_alloc(TIMER_RTC);
66      rtc_timer->adjust(attotime::zero, 0, attotime::from_seconds(1));
67   }
68
69   save_item(NAME(m_rtc_setting));
70   save_item(NAME(m_rtc_year));
71   save_item(NAME(m_rtc_month));
72   save_item(NAME(m_rtc_day));
73   save_item(NAME(m_rtc_day_of_week));
74   save_item(NAME(m_rtc_hour));
75   save_item(NAME(m_rtc_minute));
76   save_item(NAME(m_rtc_second));
77   save_item(NAME(m_rtc_index));
78}
79
80void ws_rom_device::device_reset()
81{
82   m_base20 = ((0xff & m_bank_mask) << 16) & (m_rom_size - 1);
83   m_base30 = ((0xff & m_bank_mask) << 16) & (m_rom_size - 1);
84   m_base40 = (((0xf0 & m_bank_mask) | 4) << 16) & (m_rom_size - 1);
85   printf("%x - %x - %x\n", m_base20, m_base30, m_base40);
86
87   memset(m_io_regs, 0, sizeof(m_io_regs));
88
89   // Initialize RTC
90   m_rtc_index = 0;
91   m_rtc_year = 0;
92   m_rtc_month = 0;
93   m_rtc_day = 0;
94   m_rtc_day_of_week = 0;
95   m_rtc_hour = 0;
96   m_rtc_minute = 0;
97   m_rtc_second = 0;
98   m_rtc_setting = 0xff;
99}
100
101void ws_rom_sram_device::device_start()
102{
103   save_item(NAME(m_nvram_base));
104   ws_rom_device::device_start();
105}
106
107void ws_rom_sram_device::device_reset()
108{
109   m_nvram_base = 0;
110   ws_rom_device::device_reset();
111}
112
113void ws_rom_eeprom_device::device_start()
114{
115   ws_rom_device::device_start();
116
117   save_item(NAME(m_eeprom_address));
118   save_item(NAME(m_eeprom_command));
119   save_item(NAME(m_eeprom_start));
120   save_item(NAME(m_eeprom_write_enabled));
121}
122
123void ws_rom_eeprom_device::device_reset()
124{
125   m_eeprom_address = 0;
126   m_eeprom_command = 0;
127   m_eeprom_start = 0;
128   m_eeprom_write_enabled = 0;
129   switch (m_nvram.count())
130   {
131      case 0x80:
132         m_eeprom_mode = EEPROM_1K;
133         break;
134      case 0x400:
135         m_eeprom_mode = EEPROM_8K;
136         break;
137      case 0x800:
138         m_eeprom_mode = EEPROM_16K;
139         break;
140   }
141   ws_rom_device::device_reset();
142}
143
144
145
146//-------------------------------------------------
147//  device_timer - handler timer events
148//-------------------------------------------------
149
150void ws_rom_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
151{
152   if (id == TIMER_RTC)
153   {
154      // a second passed
155      m_rtc_second++;
156      if ((m_rtc_second & 0x0f) > 9)
157         m_rtc_second = (m_rtc_second & 0xf0) + 0x10;
158     
159      // check for minute passed
160      if (m_rtc_second >= 0x60)
161      {
162         m_rtc_second = 0;
163         m_rtc_minute++;
164         if ((m_rtc_minute & 0x0f) > 9)
165            m_rtc_minute = (m_rtc_minute & 0xf0) + 0x10;
166      }
167     
168      // check for hour passed
169      if (m_rtc_minute >= 0x60)
170      {
171         m_rtc_minute = 0;
172         m_rtc_hour++;
173         if ((m_rtc_hour & 0x0f) > 9)
174            m_rtc_hour = (m_rtc_hour & 0xf0) + 0x10;
175         if (m_rtc_hour == 0x12)
176            m_rtc_hour |= 0x80;
177      }
178     
179      // check for day passed
180      if (m_rtc_hour >= 0x24)
181      {
182         m_rtc_hour = 0;
183         m_rtc_day++;
184      }
185   }
186}
187
188
189/*-------------------------------------------------
190 mapper specific handlers
191 -------------------------------------------------*/
192
193READ8_MEMBER(ws_rom_device::read_rom20)
194{
195   return m_rom[offset + m_base20];
196}
197
198
199READ8_MEMBER(ws_rom_device::read_rom30)
200{
201   return m_rom[offset + m_base30];
202}
203
204
205READ8_MEMBER(ws_rom_device::read_rom40)
206{
207   // we still need to mask in some cases, e.g. when game is 512K
208   return m_rom[(offset + m_base40) & (m_rom_size - 1)];
209}
210
211
212READ8_MEMBER(ws_rom_device::read_io)
213{
214   UINT8 value = m_io_regs[offset];
215
216   switch (offset)
217   {
218      case 0x0b:      // RTC data
219         if (!m_has_rtc)
220            break;
221         
222         if (m_io_regs[0x0a] == 0x95 && (m_rtc_index < 7))
223         {
224            switch (m_rtc_index)
225            {
226               case 0: value = m_rtc_year; break;
227               case 1: value = m_rtc_month; break;
228               case 2: value = m_rtc_day; break;
229               case 3: value = m_rtc_day_of_week; break;
230               case 4: value = m_rtc_hour; break;
231               case 5: value = m_rtc_minute; break;
232               case 6: value = m_rtc_second; break;
233            }
234            m_rtc_index++;
235         }
236         break;
237   }
238
239   return value;
240}
241
242WRITE8_MEMBER(ws_rom_device::write_io)
243{
244   switch (offset)
245   {
246      case 0x00:
247         // Bit 0-3 - ROM bank base register for segments 3-15
248         // Bit 4-7 - Unknown
249         data = ((data & 0x0f) << 4) | 4;
250         m_base40 = ((data & m_bank_mask) << 16) & (m_rom_size - 1);
251         break;
252      case 0x02: // ROM bank for segment 2 (0x20000 - 0x2ffff)
253         m_base20 = ((data & m_bank_mask) << 16) & (m_rom_size - 1);
254         break;
255      case 0x03: // ROM bank for segment 3 (0x30000 - 0x3ffff)
256         m_base30 = ((data & m_bank_mask) << 16) & (m_rom_size - 1);
257         break;
258      case 0x0a:  // RTC Command
259               // Bit 0-4 - RTC command
260               //   10000 - Reset
261               //   10010 - Write timer settings (alarm)
262               //   10011 - Read timer settings (alarm)
263               //   10100 - Set time/date
264               //   10101 - Get time/date
265               // Bit 5-6 - Unknown
266               // Bit 7   - Command done (read only)
267         if (!m_has_rtc)
268            break;
269
270         switch (data)
271         {
272            case 0x10:  // Reset
273               m_rtc_index = 8;
274               m_rtc_year = 0;
275               m_rtc_month = 1;
276               m_rtc_day = 1;
277               m_rtc_day_of_week = 0;
278               m_rtc_hour = 0;
279               m_rtc_minute = 0;
280               m_rtc_second = 0;
281               m_rtc_setting = 0xff;
282               data |= 0x80;
283               break;
284            case 0x12:  // Write Timer Settings (Alarm)
285               m_rtc_index = 8;
286               m_rtc_setting = m_io_regs[0x0b];
287               data |= 0x80;
288               break;
289            case 0x13:  // Read Timer Settings (Alarm)
290               m_rtc_index = 8;
291               m_io_regs[0x0b] = m_rtc_setting;
292               data |= 0x80;
293               break;
294            case 0x14:  // Set Time/Date
295               m_rtc_year = m_io_regs[0x0b];
296               m_rtc_index = 1;
297               data |= 0x80;
298               break;
299            case 0x15:  // Get Time/Date
300               m_rtc_index = 0;
301               data |= 0x80;
302               m_io_regs[0x0b] = m_rtc_year;
303               break;
304            default:
305               logerror( "Unknown RTC command (%X) requested\n", data);
306         }
307         break;
308      case 0x0b:  // RTC Data
309         if (!m_has_rtc)
310            break;
311         
312         if (m_io_regs[0x0a] == 0x94 && m_rtc_index < 7)
313         {
314            switch (m_rtc_index)
315            {
316               case 0: m_rtc_year = data; break;
317               case 1: m_rtc_month = data; break;
318               case 2: m_rtc_day = data; break;
319               case 3: m_rtc_day_of_week = data; break;
320               case 4: m_rtc_hour = data; break;
321               case 5: m_rtc_minute = data; break;
322               case 6: m_rtc_second = data; break;
323            }
324            m_rtc_index++;
325         }
326         break;
327   }
328
329   m_io_regs[offset] = data;
330}
331
332READ8_MEMBER(ws_rom_sram_device::read_ram)
333{
334   return m_nvram[m_nvram_base + offset];
335}
336
337WRITE8_MEMBER(ws_rom_sram_device::write_ram)
338{
339   m_nvram[m_nvram_base + offset] = data;
340}
341
342WRITE8_MEMBER(ws_rom_sram_device::write_io)
343{   
344   switch (offset)
345   {
346      case 0x01:  // SRAM bank to select
347         m_nvram_base = (data * 0x10000) & (m_nvram.count() -  1);
348      default:
349         ws_rom_device::write_io(space, offset, data);
350         break;
351   }
352
353   m_io_regs[offset] = data;
354}
355
356READ8_MEMBER(ws_rom_eeprom_device::read_ram)
357{
358   return m_nvram[offset & (m_nvram.count() - 1)];
359}
360
361WRITE8_MEMBER(ws_rom_eeprom_device::write_ram)
362{
363   m_nvram[offset & (m_nvram.count() - 1)] = data;
364}
365
366
367READ8_MEMBER(ws_rom_eeprom_device::read_io)
368{
369   UINT8 value = m_io_regs[offset];
370   
371   switch (offset)
372   {
373      case 0x04:
374      case 0x05:
375      case 0x06:
376      case 0x07:
377      case 0x08:
378         // EEPROM reads, taken from regs
379         break;
380      default:
381         value = ws_rom_device::read_io(space, offset);
382         break;
383   }
384   
385   return value;
386}
387
388WRITE8_MEMBER(ws_rom_eeprom_device::write_io)
389{   
390   switch (offset)
391   {
392      case 0x06:  /* EEPROM address lower bits port/EEPROM address and command port
393                1KBit EEPROM:
394                Bit 0-5 - EEPROM address bit 1-6
395                Bit 6-7 - Command
396                00 - Extended command address bit 4-5:
397                00 - Write disable
398                01 - Write all
399                10 - Erase all
400                11 - Write enable
401                01 - Write
402                10 - Read
403                11 - Erase
404                16KBit EEPROM:
405                Bit 0-7 - EEPROM address bit 1-8
406                */
407         switch (m_eeprom_mode)
408         {
409            case EEPROM_1K:
410                  m_eeprom_address = data & 0x3f;
411                  m_eeprom_command = data >> 4;
412               if ((m_eeprom_command & 0x0c) != 0x00)
413                  m_eeprom_command = m_eeprom_command & 0x0c;
414               break;
415
416            case EEPROM_8K:
417            case EEPROM_16K:
418               m_eeprom_address = (m_eeprom_address & 0xff00) | data;
419               break;
420
421            default:
422               logerror( "Write EEPROM address/register register C6 for unsupported EEPROM type\n" );
423               break;
424         }
425         break;
426
427      case 0x07:  /* EEPROM higher bits/command bits port
428                1KBit EEPROM:
429                Bit 0   - Start
430                Bit 1-7 - Unknown
431                16KBit EEPROM:
432                Bit 0-1 - EEPROM address bit 9-10
433                Bit 2-3 - Command
434                00 - Extended command address bit 0-1:
435                00 - Write disable
436                01 - Write all
437                10 - Erase all
438                11 - Write enable
439                01 - Write
440                10 - Read
441                11 - Erase
442                Bit 4   - Start
443                Bit 5-7 - Unknown
444                */
445         switch (m_eeprom_mode)
446         {
447            case EEPROM_1K:
448               m_eeprom_start = data & 0x01;
449               break;
450
451            case EEPROM_8K:
452               m_eeprom_address = ((data & 0x01) << 8) | (m_eeprom_address & 0xff);
453               m_eeprom_command = data & 0x0f;
454               if ((m_eeprom_command & 0x0c) != 0x00)
455                  m_eeprom_command = m_eeprom_command & 0x0c;
456               m_eeprom_start = (data >> 4) & 0x01;
457               break;
458
459            case EEPROM_16K:
460               m_eeprom_address = ((data & 0x03) << 8) | (m_eeprom_address & 0xff);
461               m_eeprom_command = data & 0x0f;
462               if ((m_eeprom_command & 0x0c) != 0x00)
463                  m_eeprom_command = m_eeprom_command & 0x0c;
464               m_eeprom_start = (data >> 4) & 0x01;
465               break;
466               
467            default:
468               logerror( "Write EEPROM address/command register C7 for unsupported EEPROM type\n" );
469            break;
470         }
471         break;
472
473      case 0x08:  /* EEPROM command
474                Bit 0   - Read complete (read only)
475                Bit 1   - Write complete (read only)
476                Bit 2-3 - Unknown
477                Bit 4   - Read
478                Bit 5   - Write
479                Bit 6   - Protect
480                Bit 7   - Initialize
481                */
482         if (data & 0x80)   // Initialize
483            logerror("Unsupported EEPROM command 'Initialize'\n");
484
485         if (data & 0x40)   // Protect
486         {   
487            switch (m_eeprom_command)
488            {
489               case 0x00:
490                  m_eeprom_write_enabled = 0;
491                  data |= 0x02;
492                  break;
493               case 0x03:
494                  m_eeprom_write_enabled = 1;
495                  data |= 0x02;
496                  break;
497               default:
498                  logerror("Unsupported 'Protect' command %X\n", m_eeprom_command);
499                  break;
500            }
501         }
502
503         if (data & 0x20)   // Write
504         {
505            if (m_eeprom_write_enabled)
506            {
507               switch (m_eeprom_command)
508               {
509                  case 0x04:
510                     m_nvram[(m_eeprom_address << 1) + 1] = m_io_regs[0x04];
511                     m_nvram[m_eeprom_address << 1] = m_io_regs[0x05];
512                     data |= 0x02;
513                     break;
514                  default:
515                     logerror("Unsupported 'Write' command %X\n", m_eeprom_command);
516                     break;
517               }
518            }
519         }
520
521         if (data & 0x10)   // Read
522         {
523            m_io_regs[0x04] = m_nvram[(m_eeprom_address << 1) + 1];
524            m_io_regs[0x05] = m_nvram[m_eeprom_address << 1];
525            data |= 0x01;
526         }
527         break;
528
529      default:
530         ws_rom_device::write_io(space, offset, data);
531         break;
532   }
533
534   m_io_regs[offset] = data;
535}
Property changes on: trunk/src/emu/bus/wswan/rom.c
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/emu/bus/wswan/slot.c
r0r32551
1/***********************************************************************************************************
2
3    Bandai Wonderswan / Wonderswan Color cart emulation
4    (through slot devices)
5
6 ***********************************************************************************************************/
7
8
9#include "emu.h"
10#include "slot.h"
11
12//**************************************************************************
13//  GLOBAL VARIABLES
14//**************************************************************************
15
16const device_type WS_CART_SLOT = &device_creator<ws_cart_slot_device>;
17
18//**************************************************************************
19//    Wonderswan Cartridges Interface
20//**************************************************************************
21
22//-------------------------------------------------
23//  device_ws_cart_interface - constructor
24//-------------------------------------------------
25
26device_ws_cart_interface::device_ws_cart_interface(const machine_config &mconfig, device_t &device)
27   : device_slot_card_interface(mconfig, device),
28      m_rom(NULL),
29      m_rom_size(0),
30      m_bank_mask(0),
31      m_has_rtc(false),
32      m_is_rotated(false)
33{
34}
35
36
37//-------------------------------------------------
38//  ~device_ws_cart_interface - destructor
39//-------------------------------------------------
40
41device_ws_cart_interface::~device_ws_cart_interface()
42{
43}
44
45//-------------------------------------------------
46//  rom_alloc - alloc the space for the cart
47//-------------------------------------------------
48
49void device_ws_cart_interface::rom_alloc(UINT32 size, const char *tag)
50{
51   if (m_rom == NULL)
52   {
53      astring tempstring(tag);
54      tempstring.cat(WSSLOT_ROM_REGION_TAG);
55      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
56      m_rom_size = size;
57      m_bank_mask = ((m_rom_size >> 16) - 1);
58   }
59}
60
61
62//-------------------------------------------------
63//  nvram_alloc - alloc the space for the ram
64//-------------------------------------------------
65
66void device_ws_cart_interface::nvram_alloc(UINT32 size)
67{
68   m_nvram.resize(size);
69}
70
71
72//**************************************************************************
73//  LIVE DEVICE
74//**************************************************************************
75
76//-------------------------------------------------
77//  ws_cart_slot_device - constructor
78//-------------------------------------------------
79ws_cart_slot_device::ws_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
80                  device_t(mconfig, WS_CART_SLOT, "Wonderswan Cartridge Slot", tag, owner, clock, "ws_cart_slot", __FILE__),
81                  device_image_interface(mconfig, *this),
82                  device_slot_interface(mconfig, *this),
83                  m_type(WS_STD)
84{
85}
86
87
88//-------------------------------------------------
89//  ws_cart_slot_device - destructor
90//-------------------------------------------------
91
92ws_cart_slot_device::~ws_cart_slot_device()
93{
94}
95
96//-------------------------------------------------
97//  device_start - device-specific startup
98//-------------------------------------------------
99
100void ws_cart_slot_device::device_start()
101{
102   m_cart = dynamic_cast<device_ws_cart_interface *>(get_card_device());
103}
104
105//-------------------------------------------------
106//  device_config_complete - perform any
107//  operations now that the configuration is
108//  complete
109//-------------------------------------------------
110
111void ws_cart_slot_device::device_config_complete()
112{
113   // set brief and instance name
114   update_names();
115}
116
117
118//-------------------------------------------------
119//  WSWAN PCB
120//-------------------------------------------------
121
122struct ws_slot
123{
124   int                     pcb_id;
125   const char              *slot_option;
126};
127
128// Here, we take the feature attribute from .xml (i.e. the PCB name) and we assign a unique ID to it
129static const ws_slot slot_list[] =
130{
131   { WS_STD,      "ws_rom" },
132   { WS_SRAM,     "ws_sram" },
133   { WS_EEPROM,   "ws_eeprom" }
134};
135
136static int ws_get_pcb_id(const char *slot)
137{
138   for (int i = 0; i < ARRAY_LENGTH(slot_list); i++)
139   {
140      if (!core_stricmp(slot_list[i].slot_option, slot))
141         return slot_list[i].pcb_id;
142   }
143
144   return 0;
145}
146
147static const char *ws_get_slot(int type)
148{
149   for (int i = 0; i < ARRAY_LENGTH(slot_list); i++)
150   {
151      if (slot_list[i].pcb_id == type)
152         return slot_list[i].slot_option;
153   }
154
155   return "std";
156}
157
158
159/*-------------------------------------------------
160 call load
161 -------------------------------------------------*/
162
163bool ws_cart_slot_device::call_load()
164{
165   if (m_cart)
166   {
167      UINT8 *ROM;
168      UINT32 size = (software_entry() == NULL) ? length() : get_software_region_length("rom");
169      UINT32 nvram_size = 0;
170     
171      m_cart->rom_alloc(size, tag());
172      ROM = m_cart->get_rom_base();
173         
174      if (software_entry() == NULL)
175         fread(ROM, size);
176      else
177         memcpy(ROM, get_software_region("rom"), size);
178
179      if (software_entry() == NULL)
180      {
181         int chunks = size / 0x10000;
182         // get cart type and nvram length
183         m_type = get_cart_type(ROM, size, nvram_size);
184
185         if (ROM[(chunks - 1) * 0x10000 + 0xfffd])
186            m_cart->set_has_rtc(true);
187         if (ROM[(chunks - 1) * 0x10000 + 0xfffc] & 0x01)
188            m_cart->set_is_rotated(true);
189      }
190      else
191      {
192         const char *pcb_name = get_feature("slot");
193         if (pcb_name)
194            m_type = ws_get_pcb_id(pcb_name);
195
196         if (m_type == WS_SRAM)
197            nvram_size = get_software_region_length("sram");
198         if (m_type == WS_EEPROM)
199            nvram_size = get_software_region_length("eeprom");
200
201         if (get_feature("rtc"))
202         {
203            if (!core_stricmp(get_feature("rtc"), "yes"))
204               m_cart->set_has_rtc(true);
205         }
206         if (get_feature("rotated"))
207         {
208            if (!core_stricmp(get_feature("rotated"), "yes"))
209               m_cart->set_is_rotated(true);
210         }
211      }
212
213      //printf("Type: %s\n", ws_get_slot(m_type));
214
215      if (nvram_size)
216      {
217         // allocate NVRAM
218         m_cart->nvram_alloc(nvram_size);
219         // and load possible battery save
220         battery_load(m_cart->get_nvram_base(), m_cart->get_nvram_size(), 0x00);
221      }
222
223      internal_header_logging(ROM, size);
224   }
225
226   return IMAGE_INIT_PASS;
227}
228
229/*-------------------------------------------------
230 call_unload
231 -------------------------------------------------*/
232
233void ws_cart_slot_device::call_unload()
234{
235   if (m_cart && m_cart->get_nvram_size())
236      battery_save(m_cart->get_nvram_base(), m_cart->get_nvram_size());
237}
238
239
240/*-------------------------------------------------
241 call softlist load
242 -------------------------------------------------*/
243
244bool ws_cart_slot_device::call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry)
245{
246   load_software_part_region(*this, swlist, swname, start_entry);
247   return TRUE;
248}
249
250
251/*-------------------------------------------------
252 get cart type from cart file
253 -------------------------------------------------*/
254
255int ws_cart_slot_device::get_cart_type(UINT8 *ROM, UINT32 len, UINT32 &nvram_len)
256{
257   int chunks = len / 0x10000;
258   int type = WS_STD;
259
260   switch (ROM[(chunks - 1) * 0x10000 + 0xfffb])
261   {
262      case 0x00:
263         break;
264      case 0x01:   // SRAM 64Kbit
265         type = WS_SRAM;
266         nvram_len = 0x2000;
267         break;
268      case 0x02:   // SRAM 256Kbit
269         type = WS_SRAM;
270         nvram_len = 0x8000;
271         break;
272      case 0x05:   // SRAM 512Kbit
273         type = WS_SRAM;
274         nvram_len = 0x10000;
275         break;
276      case 0x03:   // SRAM 1Mbit
277         type = WS_SRAM;
278         nvram_len = 0x20000;
279         break;
280      case 0x04:   // SRAM 2Mbit
281         type = WS_SRAM;
282         nvram_len = 0x40000;
283         break;
284      case 0x10:   // EEPROM 1Kbit
285         type = WS_EEPROM;
286         nvram_len = 0x80;
287         break;
288      case 0x50:   // EEPROM 8Kbit
289         type = WS_EEPROM;
290         nvram_len = 0x400;
291         break;
292      case 0x20:   // EEPROM 16Kbit
293         type = WS_EEPROM;
294         nvram_len = 0x800;
295         break;
296      default:
297         printf("Unknown RAM size [0x%X]\n", ROM[(chunks - 1) * 0x10000 + 0xfffb]);
298         logerror("Unknown RAM size [0x%X]\n", ROM[(chunks - 1) * 0x10000 + 0xfffb]);
299         break;
300   }
301   
302   return type;
303}
304
305/*-------------------------------------------------
306 get default card software
307 -------------------------------------------------*/
308
309void ws_cart_slot_device::get_default_card_software(astring &result)
310{
311   if (open_image_file(mconfig().options()))
312   {
313      const char *slot_string = "ws_rom";
314      UINT32 size = core_fsize(m_file);
315      dynamic_buffer rom(size);
316      int type;
317      UINT32 nvram;
318     
319      core_fread(m_file, rom, size);
320
321      // nvram size is not really used here, but we set it up nevertheless
322      type = get_cart_type(rom, size, nvram);
323      slot_string = ws_get_slot(type);
324
325      //printf("type: %s\n", slot_string);
326      clear();
327
328      result.cpy(slot_string);
329      return;
330   }
331
332   software_get_default_slot(result, "ws_rom");
333}
334
335/*-------------------------------------------------
336 read_rom20
337 -------------------------------------------------*/
338
339READ8_MEMBER(ws_cart_slot_device::read_rom20)
340{
341   if (m_cart)
342      return m_cart->read_rom20(space, offset);
343   else
344      return 0xff;
345}
346
347/*-------------------------------------------------
348 read_rom30
349 -------------------------------------------------*/
350
351READ8_MEMBER(ws_cart_slot_device::read_rom30)
352{
353   if (m_cart)
354      return m_cart->read_rom30(space, offset);
355   else
356      return 0xff;
357}
358
359/*-------------------------------------------------
360 read_rom40
361 -------------------------------------------------*/
362
363READ8_MEMBER(ws_cart_slot_device::read_rom40)
364{
365   if (m_cart)
366      return m_cart->read_rom40(space, offset);
367   else
368      return 0xff;
369}
370
371/*-------------------------------------------------
372 read_ram
373 -------------------------------------------------*/
374
375READ8_MEMBER(ws_cart_slot_device::read_ram)
376{
377   if (m_cart)
378      return m_cart->read_ram(space, offset);
379   else
380      return 0xff;
381}
382
383/*-------------------------------------------------
384 write_ram
385 -------------------------------------------------*/
386
387WRITE8_MEMBER(ws_cart_slot_device::write_ram)
388{
389   if (m_cart)
390      m_cart->write_ram(space, offset, data);
391}
392
393/*-------------------------------------------------
394 read_io
395 -------------------------------------------------*/
396
397READ8_MEMBER(ws_cart_slot_device::read_io)
398{
399   if (m_cart)
400      return m_cart->read_io(space, offset);
401   else
402      return 0xff;
403}
404
405/*-------------------------------------------------
406 write_io
407 -------------------------------------------------*/
408
409WRITE8_MEMBER(ws_cart_slot_device::write_io)
410{
411   if (m_cart)
412      m_cart->write_io(space, offset, data);
413}
414
415
416
417/*-------------------------------------------------
418 Internal header logging
419 -------------------------------------------------*/
420
421void ws_cart_slot_device::internal_header_logging(UINT8 *ROM, UINT32 len)
422{
423#if 0
424   enum enum_sram { SRAM_NONE=0, SRAM_64K, SRAM_256K, SRAM_512K, SRAM_1M, SRAM_2M, EEPROM_1K, EEPROM_16K, EEPROM_8K, SRAM_UNKNOWN };
425   static const char *const wswan_sram_str[] = { "none", "64Kbit SRAM", "256Kbit SRAM", "512Kbit SRAM", "1Mbit SRAM", "2Mbit SRAM", "1Kbit EEPROM", "16Kbit EEPROM", "8Kbit EEPROM", "Unknown" };
426   static const int wswan_sram_size[] = { 0, 64*1024/8, 256*1024/8, 512*1024/8, 1024*1024/8, 2*1024*1024/8,  1024/8, 16*1024/8, 8*1024/8, 0 };
427   
428   int sum = 0;
429   /* Spit out some info */
430   logerror("ROM DETAILS\n" );
431   logerror("\tDeveloper ID: %X\n", m_ROMMap[m_ROMBanks - 1][0xfff6]);
432   logerror("\tMinimum system: %s\n", m_ROMMap[m_ROMBanks - 1][0xfff7] ? "WonderSwan Color" : "WonderSwan");
433   logerror("\tCart ID: %X\n", m_ROMMap[m_ROMBanks - 1][0xfff8]);
434   logerror("\tROM size: %s\n", wswan_determine_romsize(m_ROMMap[m_ROMBanks - 1][0xfffa]));
435   logerror("\tSRAM size: %s\n", sram_str);
436   logerror("\tFeatures: %X\n", m_ROMMap[m_ROMBanks - 1][0xfffc]);
437   logerror("\tRTC: %s\n", m_ROMMap[m_ROMBanks - 1][0xfffd] ? "yes" : "no");
438   for (int i = 0; i < m_ROMBanks; i++)
439   {
440      int count;
441      for (count = 0; count < 0x10000; count++)
442      {
443         sum += m_ROMMap[i][count];
444      }
445   }
446   sum -= m_ROMMap[m_ROMBanks - 1][0xffff];
447   sum -= m_ROMMap[m_ROMBanks - 1][0xfffe];
448   sum &= 0xffff;
449   logerror("\tChecksum: %X%X (calculated: %04X)\n", m_ROMMap[m_ROMBanks - 1][0xffff], m_ROMMap[m_ROMBanks - 1][0xfffe], sum);
450
451   const char* wswan_state::wswan_determine_sram(UINT8 data )
452   {
453      m_eeprom.write_enabled = 0;
454      m_eeprom.mode = SRAM_UNKNOWN;
455      switch( data )
456      {
457         case 0x00: m_eeprom.mode = SRAM_NONE; break;
458         case 0x01: m_eeprom.mode = SRAM_64K; break;
459         case 0x02: m_eeprom.mode = SRAM_256K; break;
460         case 0x03: m_eeprom.mode = SRAM_1M; break;
461         case 0x04: m_eeprom.mode = SRAM_2M; break;
462         case 0x05: m_eeprom.mode = SRAM_512K; break;
463         case 0x10: m_eeprom.mode = EEPROM_1K; break;
464         case 0x20: m_eeprom.mode = EEPROM_16K; break;
465         case 0x50: m_eeprom.mode = EEPROM_8K; break;
466      }
467      m_eeprom.size = wswan_sram_size[ m_eeprom.mode ];
468      return wswan_sram_str[ m_eeprom.mode ];
469   }
470   
471   enum enum_romsize { ROM_4M=0, ROM_8M, ROM_16M, ROM_32M, ROM_64M, ROM_128M, ROM_UNKNOWN };
472   static const char *const wswan_romsize_str[] = {
473      "4Mbit", "8Mbit", "16Mbit", "32Mbit", "64Mbit", "128Mbit", "Unknown"
474   };
475   
476   const char* wswan_state::wswan_determine_romsize( UINT8 data )
477   {
478      switch( data )
479      {
480         case 0x02:  return wswan_romsize_str[ ROM_4M ];
481         case 0x03:  return wswan_romsize_str[ ROM_8M ];
482         case 0x04:  return wswan_romsize_str[ ROM_16M ];
483         case 0x06:  return wswan_romsize_str[ ROM_32M ];
484         case 0x08:  return wswan_romsize_str[ ROM_64M ];
485         case 0x09:  return wswan_romsize_str[ ROM_128M ];
486      }
487      return wswan_romsize_str[ ROM_UNKNOWN ];
488   }
489   
490#endif
491}
Property changes on: trunk/src/emu/bus/wswan/slot.c
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/emu/bus/bus.mak
r32550r32551
13931393BUSOBJS += $(BUSOBJ)/vtech/ioexp/joystick.o
13941394BUSOBJS += $(BUSOBJ)/vtech/ioexp/printer.o
13951395endif
1396
1397#-------------------------------------------------
1398#
1399#@src/emu/bus/wswan/slot.h,BUSES += WSWAN
1400#-------------------------------------------------
1401
1402ifneq ($(filter WSWAN,$(BUSES)),)
1403OBJDIRS += $(BUSOBJ)/wswan
1404BUSOBJS += $(BUSOBJ)/wswan/slot.o
1405BUSOBJS += $(BUSOBJ)/wswan/rom.o
1406endif
1407

Previous 199869 Revisions Next


© 1997-2024 The MAME Team